From 2eff08bf26d56c5c99775dbad5613d649dfd29ad Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 27 Sep 2024 12:31:03 -0300 Subject: [PATCH 01/24] refactor: :art: moved runtime apis into their own file --- client/common/src/types.rs | 10 +- node/src/service.rs | 2 +- runtime/src/apis.rs | 340 +++++++++++++++++++++++++++++++++++++ runtime/src/lib.rs | 323 +---------------------------------- 4 files changed, 345 insertions(+), 330 deletions(-) create mode 100644 runtime/src/apis.rs diff --git a/client/common/src/types.rs b/client/common/src/types.rs index 0a33112a8..30e077056 100644 --- a/client/common/src/types.rs +++ b/client/common/src/types.rs @@ -48,17 +48,11 @@ pub type KeyProofs = BTreeMap; pub type Balance = pallet_storage_providers::types::BalanceOf; #[cfg(not(feature = "runtime-benchmarks"))] -type HostFunctions = ( - // TODO: change this to `cumulus_client_service::ParachainHostFunctions` once it is part of the next release - sp_io::SubstrateHostFunctions, - cumulus_client_service::storage_proof_size::HostFunctions, -); +type HostFunctions = (cumulus_client_service::ParachainHostFunctions); #[cfg(feature = "runtime-benchmarks")] type HostFunctions = ( - // TODO: change this to `cumulus_client_service::ParachainHostFunctions` once it is part of the next release - sp_io::SubstrateHostFunctions, - cumulus_client_service::storage_proof_size::HostFunctions, + cumulus_client_service::ParachainHostFunctions, frame_benchmarking::benchmarking::HostFunctions, ); diff --git a/node/src/service.rs b/node/src/service.rs index 83e7af4b7..700cce6ea 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -21,8 +21,8 @@ use sp_consensus_aura::Slot; use sp_core::H256; // Local Runtime Types use storage_hub_runtime::{ + apis::RuntimeApi, opaque::{Block, Hash}, - RuntimeApi, }; // Cumulus Imports diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs new file mode 100644 index 000000000..357939182 --- /dev/null +++ b/runtime/src/apis.rs @@ -0,0 +1,340 @@ +use frame_support::{ + genesis_builder_helper::{build_config, create_default_config}, + weights::Weight, +}; +use pallet_aura::Authorities; +use sp_api::impl_runtime_apis; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + traits::Block as BlockT, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; +use sp_std::prelude::Vec; +use sp_version::RuntimeVersion; + +// Local module imports +use super::{ + AccountId, Aura, Balance, Block, Executive, InherentDataExt, Nonce, ParachainSystem, Runtime, + RuntimeCall, RuntimeGenesisConfig, SessionKeys, System, TransactionPayment, VERSION, +}; + +impl_runtime_apis! { + /// Allows the collator client to query its runtime to determine whether it should author a block + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + configs::ConsensusHook::can_build_upon(included_hash, slot) + } + } + + 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 sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { + 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, configs::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::{BenchmarkError, Benchmarking, BenchmarkBatch}; + + 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 frame_support::traits::WhitelistedStorageKeys; + let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); + + 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) + } + } + + impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { + fn query_earliest_file_volunteer_block(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { + FileSystem::query_earliest_file_volunteer_block(bsp_id, file_key) + } + + fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { + FileSystem::query_bsp_confirm_chunks_to_prove_for_file(bsp_id, file_key) + } + } + + impl pallet_payment_streams_runtime_api::PaymentStreamsApi, Balance, AccountId> for Runtime { + fn get_users_with_debt_over_threshold(provider_id: &ProviderIdFor, threshold: Balance) -> Result, GetUsersWithDebtOverThresholdError> { + PaymentStreams::get_users_with_debt_over_threshold(provider_id, threshold) + } + fn get_users_of_payment_streams_of_provider(provider_id: &ProviderIdFor) -> Vec { + PaymentStreams::get_users_of_payment_streams_of_provider(provider_id) + } + } + + impl pallet_proofs_dealer_runtime_api::ProofsDealerApi, BlockNumber, KeyFor, RandomnessOutputFor, TrieRemoveMutation> for Runtime { + fn get_last_tick_provider_submitted_proof(provider_id: &ProviderIdFor) -> Result { + ProofsDealer::get_last_tick_provider_submitted_proof(provider_id) + } + + fn get_last_checkpoint_challenge_tick() -> BlockNumber { + ProofsDealer::get_last_checkpoint_challenge_tick() + } + + fn get_checkpoint_challenges( + tick: BlockNumber + ) -> Result, Option)>, GetCheckpointChallengesError> { + ProofsDealer::get_checkpoint_challenges(tick) + } + + fn get_challenge_seed(tick: BlockNumber) -> Result, GetChallengeSeedError> { + ProofsDealer::get_challenge_seed(tick) + } + + fn get_challenge_period(provider_id: &ProviderIdFor) -> Result { + ProofsDealer::get_challenge_period(provider_id) + } + + fn get_checkpoint_challenge_period() -> BlockNumber { + ProofsDealer::get_checkpoint_challenge_period() + } + + fn get_challenges_from_seed(seed: &RandomnessOutputFor, provider_id: &ProviderIdFor, count: u32) -> Vec> { + ProofsDealer::get_challenges_from_seed(seed, provider_id, count) + } + + fn get_forest_challenges_from_seed(seed: &RandomnessOutputFor, provider_id: &ProviderIdFor) -> Vec> { + ProofsDealer::get_forest_challenges_from_seed(seed, provider_id) + } + + fn get_current_tick() -> BlockNumber { + ProofsDealer::get_current_tick() + } + + fn get_next_deadline_tick(provider_id: &ProviderIdFor) -> Result { + ProofsDealer::get_next_deadline_tick(provider_id) + } + } + + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { + fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { + Providers::get_bsp_info(bsp_id) + } + + fn get_storage_provider_id(who: &AccountId) -> Option> { + Providers::get_storage_provider_id(who) + } + + fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result { + Providers::query_storage_provider_capacity(provider_id) + } + + fn query_available_storage_capacity(provider_id: &ProviderId) -> Result { + Providers::query_available_storage_capacity(provider_id) + } + + fn query_earliest_change_capacity_block(provider_id: &BackupStorageProviderId) -> Result { + Providers::query_earliest_change_capacity_block(provider_id) + } + } +} diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 2bc8c3582..b306ed5e9 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -6,6 +6,7 @@ #[cfg(feature = "std")] include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); +pub mod apis; mod configs; mod weights; @@ -187,7 +188,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { authoring_version: 1, spec_version: 1, impl_version: 0, - apis: RUNTIME_API_VERSIONS, + apis: apis::RUNTIME_API_VERSIONS, transaction_version: 1, state_version: 1, }; @@ -302,326 +303,6 @@ mod benches { ); } -// TODO: move this to an `apis` module. -impl_runtime_apis! { - /// Allows the collator client to query its runtime to determine whether it should author a block - impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { - fn can_build_upon( - included_hash: ::Hash, - slot: cumulus_primitives_aura::Slot, - ) -> bool { - configs::ConsensusHook::can_build_upon(included_hash, slot) - } - } - - 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 sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { - 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, configs::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::{BenchmarkError, Benchmarking, BenchmarkBatch}; - - 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 frame_support::traits::WhitelistedStorageKeys; - let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); - - 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) - } - } - - impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { - fn query_earliest_file_volunteer_block(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { - FileSystem::query_earliest_file_volunteer_block(bsp_id, file_key) - } - - fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { - FileSystem::query_bsp_confirm_chunks_to_prove_for_file(bsp_id, file_key) - } - } - - impl pallet_payment_streams_runtime_api::PaymentStreamsApi, Balance, AccountId> for Runtime { - fn get_users_with_debt_over_threshold(provider_id: &ProviderIdFor, threshold: Balance) -> Result, GetUsersWithDebtOverThresholdError> { - PaymentStreams::get_users_with_debt_over_threshold(provider_id, threshold) - } - fn get_users_of_payment_streams_of_provider(provider_id: &ProviderIdFor) -> Vec { - PaymentStreams::get_users_of_payment_streams_of_provider(provider_id) - } - } - - impl pallet_proofs_dealer_runtime_api::ProofsDealerApi, BlockNumber, KeyFor, RandomnessOutputFor, TrieRemoveMutation> for Runtime { - fn get_last_tick_provider_submitted_proof(provider_id: &ProviderIdFor) -> Result { - ProofsDealer::get_last_tick_provider_submitted_proof(provider_id) - } - - fn get_last_checkpoint_challenge_tick() -> BlockNumber { - ProofsDealer::get_last_checkpoint_challenge_tick() - } - - fn get_checkpoint_challenges( - tick: BlockNumber - ) -> Result, Option)>, GetCheckpointChallengesError> { - ProofsDealer::get_checkpoint_challenges(tick) - } - - fn get_challenge_seed(tick: BlockNumber) -> Result, GetChallengeSeedError> { - ProofsDealer::get_challenge_seed(tick) - } - - fn get_challenge_period(provider_id: &ProviderIdFor) -> Result { - ProofsDealer::get_challenge_period(provider_id) - } - - fn get_checkpoint_challenge_period() -> BlockNumber { - ProofsDealer::get_checkpoint_challenge_period() - } - - fn get_challenges_from_seed(seed: &RandomnessOutputFor, provider_id: &ProviderIdFor, count: u32) -> Vec> { - ProofsDealer::get_challenges_from_seed(seed, provider_id, count) - } - - fn get_forest_challenges_from_seed(seed: &RandomnessOutputFor, provider_id: &ProviderIdFor) -> Vec> { - ProofsDealer::get_forest_challenges_from_seed(seed, provider_id) - } - - fn get_current_tick() -> BlockNumber { - ProofsDealer::get_current_tick() - } - - fn get_next_deadline_tick(provider_id: &ProviderIdFor) -> Result { - ProofsDealer::get_next_deadline_tick(provider_id) - } - } - - impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { - fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { - Providers::get_bsp_info(bsp_id) - } - - fn get_storage_provider_id(who: &AccountId) -> Option> { - Providers::get_storage_provider_id(who) - } - - fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result { - Providers::query_storage_provider_capacity(provider_id) - } - - fn query_available_storage_capacity(provider_id: &ProviderId) -> Result { - Providers::query_available_storage_capacity(provider_id) - } - - fn query_earliest_change_capacity_block(provider_id: &BackupStorageProviderId) -> Result { - Providers::query_earliest_change_capacity_block(provider_id) - } - } -} - cumulus_pallet_parachain_system::register_validate_block! { Runtime = Runtime, BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, From 303feb3cfef7b970f3dce6218e6017317f293f24 Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 27 Sep 2024 18:03:29 -0300 Subject: [PATCH 02/24] fix: :arrow_up: fix upgrade to polkadot-sdk v1.10.0 --- Cargo.lock | 2576 ++++++++--------- Cargo.toml | 198 +- client/common/src/types.rs | 4 +- pallets/file-system/src/lib.rs | 17 - pallets/file-system/src/tests.rs | 153 +- pallets/proofs-dealer/src/lib.rs | 9 - primitives/file-key-verifier/src/lib.rs | 2 +- runtime/Cargo.toml | 2 + runtime/src/apis.rs | 25 +- runtime/src/configs/mod.rs | 42 +- runtime/src/configs/xcm_config.rs | 4 + runtime/src/lib.rs | 28 - xcm-simulator/Cargo.toml | 1 + xcm-simulator/src/parachain/xcm_config/mod.rs | 3 + xcm-simulator/src/relay_chain/mod.rs | 1 + .../src/relay_chain/xcm_config/mod.rs | 3 + xcm-simulator/src/storagehub/apis.rs | 351 +++ xcm-simulator/src/storagehub/configs/mod.rs | 38 +- .../src/storagehub/configs/xcm_config.rs | 3 + xcm-simulator/src/storagehub/mod.rs | 247 +- .../src/system_chain/xcm_config/mod.rs | 3 + xcm-simulator/src/tests.rs | 23 +- 22 files changed, 1938 insertions(+), 1795 deletions(-) create mode 100644 xcm-simulator/src/storagehub/apis.rs diff --git a/Cargo.lock b/Cargo.lock index c7f285fee..7173ec763 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,7 +235,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -798,7 +798,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -939,7 +939,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "log", @@ -972,7 +972,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1156,12 +1156,12 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -1451,7 +1451,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1499,7 +1499,7 @@ dependencies = [ "nom", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1894,7 +1894,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "clap", "parity-scale-codec", @@ -1903,15 +1903,15 @@ dependencies = [ "sc-client-api", "sc-service", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "url", ] [[package]] name = "cumulus-client-collator" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1926,15 +1926,15 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1958,16 +1958,16 @@ dependencies = [ "sc-telemetry", "schnellru", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "tracing", @@ -1976,7 +1976,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1994,10 +1994,10 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -2005,22 +2005,22 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", "sp-consensus", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "cumulus-client-network" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2034,16 +2034,16 @@ dependencies = [ "sc-client-api", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2056,18 +2056,18 @@ dependencies = [ "sp-api 26.0.0", "sp-crypto-hashing 0.0.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2084,14 +2084,14 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2119,15 +2119,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-pallet-parachain-system", "frame-support 28.0.0", @@ -2136,16 +2137,16 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-benchmarking 28.0.0", @@ -2154,16 +2155,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2182,14 +2183,14 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "staging-xcm 7.0.0", "trie-db 0.28.0", @@ -2198,48 +2199,48 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2253,10 +2254,10 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -2264,63 +2265,63 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-primitives 7.0.0", "sp-api 26.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-core" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2330,14 +2331,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -2346,9 +2347,9 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -2357,7 +2358,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2373,15 +2374,15 @@ dependencies = [ "sc-tracing", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2392,14 +2393,14 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-blockchain", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -2410,7 +2411,7 @@ dependencies = [ "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-chain-api", @@ -2432,7 +2433,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "tokio", "tracing", @@ -2441,7 +2442,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2465,10 +2466,10 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -2480,15 +2481,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -2528,7 +2529,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2568,7 +2569,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2585,7 +2586,7 @@ checksum = "35de3b547387863c8f82013c4f79f1c2162edee956383e4089e1d04c18c4f16c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2690,7 +2691,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2703,7 +2704,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2792,7 +2793,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2848,7 +2849,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.75", + "syn 2.0.79", "termcolor", "toml 0.8.19", "walkdir", @@ -3029,7 +3030,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3040,7 +3041,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3149,7 +3150,7 @@ dependencies = [ "prettyplease 0.2.20", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3338,7 +3339,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", ] @@ -3361,7 +3362,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-support-procedural 23.0.0", @@ -3373,13 +3374,13 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", ] @@ -3412,7 +3413,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -3442,17 +3443,17 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "thousands", ] @@ -3466,35 +3467,35 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "frame-election-provider-solution-type" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "frame-election-provider-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3518,7 +3519,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aquamarine 0.3.3", "frame-support 28.0.0", @@ -3527,11 +3528,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3549,7 +3550,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "indicatif", @@ -3557,11 +3558,11 @@ dependencies = [ "log", "parity-scale-codec", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "spinners", "substrate-rpc-client", "tokio", @@ -3571,7 +3572,7 @@ dependencies = [ [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aquamarine 0.5.0", "array-bytes 6.2.3", @@ -3591,20 +3592,20 @@ dependencies = [ "serde_json", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing-proc-macro 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", "tt-call", ] @@ -3654,20 +3655,20 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse 0.1.5", + "derive-syn-parse 0.2.0", "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", "sp-crypto-hashing 0.0.0", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3687,7 +3688,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3700,19 +3701,19 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3723,23 +3724,23 @@ checksum = "68672b9ec6fe72d259d3879dc212c5e42e977588cdac830c76f54d9f492aeb58" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "frame-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cfg-if", "docify", @@ -3748,12 +3749,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3780,22 +3781,22 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -3804,13 +3805,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3933,7 +3934,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -4809,7 +4810,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -4864,9 +4865,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -5601,7 +5602,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5615,7 +5616,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5626,7 +5627,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5637,7 +5638,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5824,7 +5825,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "log", @@ -5835,24 +5836,24 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "mmr-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6007,7 +6008,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "synstructure 0.13.1", ] @@ -6061,7 +6062,7 @@ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6424,7 +6425,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6432,26 +6433,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-asset-rate" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6473,7 +6474,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6482,16 +6483,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-assets" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6499,15 +6500,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6515,26 +6516,26 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-authority-discovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6557,15 +6558,15 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6586,7 +6587,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6597,14 +6598,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6635,7 +6636,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aquamarine 0.5.0", "docify", @@ -6647,17 +6648,17 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-balances" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -6666,8 +6667,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6690,7 +6691,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6701,16 +6702,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-beefy-mmr" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -6725,17 +6726,17 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6744,16 +6745,16 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-broker" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -6761,10 +6762,10 @@ dependencies = [ "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6803,18 +6804,18 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] [[package]] name = "pallet-child-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6824,16 +6825,16 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6844,15 +6845,15 @@ dependencies = [ "parity-scale-codec", "rand", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6860,16 +6861,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-conviction-voting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -6878,15 +6879,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-democracy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6895,16 +6896,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -6915,13 +6916,13 @@ dependencies = [ "parity-scale-codec", "rand", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "strum 0.24.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "strum 0.26.3", ] [[package]] @@ -6951,15 +6952,15 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6980,7 +6981,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6988,18 +6989,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-fast-unstake" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7009,10 +7010,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7056,11 +7057,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7071,13 +7072,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-grandpa" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7087,20 +7088,20 @@ dependencies = [ "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-identity" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7109,9 +7110,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7135,7 +7136,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7144,35 +7145,35 @@ dependencies = [ "pallet-authorship 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-indices" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-membership" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7180,16 +7181,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-message-queue" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -7198,12 +7199,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7230,7 +7231,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7238,17 +7239,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-multisig" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7256,15 +7257,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7273,32 +7274,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nis" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nomination-pools" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7306,18 +7307,18 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7328,27 +7329,27 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-offences" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7357,15 +7358,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-offences-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7381,9 +7382,9 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7401,9 +7402,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7414,14 +7415,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-preimage" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7429,10 +7430,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7449,10 +7450,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7463,23 +7464,23 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-proxy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7494,16 +7495,16 @@ dependencies = [ "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-ranked-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7512,32 +7513,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-recovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-referenda" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7547,31 +7548,31 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-root-testing" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-scheduler" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7580,16 +7581,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-session" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7598,14 +7599,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7634,7 +7635,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7643,15 +7644,15 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "rand", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-society" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7660,16 +7661,16 @@ dependencies = [ "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-staking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7682,11 +7683,11 @@ dependencies = [ "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7715,21 +7716,21 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "pallet-staking-reward-fn" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7745,7 +7746,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -7755,7 +7756,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7763,10 +7764,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7784,9 +7785,9 @@ dependencies = [ "serde", "shp-constants", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7797,13 +7798,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-sudo" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7811,15 +7812,15 @@ dependencies = [ "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-timestamp" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7829,10 +7830,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", ] @@ -7860,7 +7861,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7870,26 +7871,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-transaction-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7912,35 +7913,35 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "pallet-transaction-payment 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-treasury" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7951,9 +7952,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7979,7 +7980,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7987,30 +7988,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-utility" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-vesting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8018,8 +8019,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -8041,7 +8042,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8049,14 +8050,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "frame-benchmarking 28.0.0", @@ -8067,19 +8068,20 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", + "xcm-fee-payment-runtime-api", ] [[package]] name = "pallet-xcm-benchmarks" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8087,9 +8089,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8098,7 +8100,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8116,10 +8118,10 @@ dependencies = [ "polkadot-primitives 7.0.0", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", @@ -8347,7 +8349,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -8388,7 +8390,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -8439,7 +8441,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "futures", @@ -8459,7 +8461,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "always-assert", "futures", @@ -8475,7 +8477,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "derive_more", "fatality", @@ -8489,8 +8491,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "rand", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8498,7 +8500,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "fatality", @@ -8521,7 +8523,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cfg-if", "clap", @@ -8537,11 +8539,11 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -8550,7 +8552,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -8561,9 +8563,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tokio-util", "tracing-gum", @@ -8572,25 +8574,25 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -8609,7 +8611,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "derive_more", "fatality", @@ -8625,8 +8627,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-network", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8634,21 +8636,21 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives 7.0.0", "reed-solomon-novelpoly", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "polkadot-gossip-support" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "futures-timer", @@ -8660,17 +8662,17 @@ dependencies = [ "rand_chacha 0.3.1", "sc-network", "sc-network-common", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "always-assert", "async-trait", @@ -8693,7 +8695,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "parity-scale-codec", @@ -8702,7 +8704,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-maybe-compressed-blob", "thiserror", "tracing-gum", @@ -8711,7 +8713,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "derive_more", @@ -8733,10 +8735,10 @@ dependencies = [ "sc-keystore", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8744,7 +8746,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "futures", @@ -8766,7 +8768,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -8778,7 +8780,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "polkadot-statement-table", "schnellru", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8786,13 +8788,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", "wasm-timer", @@ -8801,7 +8803,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -8822,7 +8824,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-metrics", @@ -8836,7 +8838,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "futures-timer", @@ -8853,7 +8855,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "fatality", "futures", @@ -8872,7 +8874,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -8889,7 +8891,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -8906,7 +8908,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -8924,7 +8926,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -8936,7 +8938,7 @@ dependencies = [ "libc", "parity-scale-codec", "pin-project", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-node-core-pvf-common", "polkadot-node-metrics", "polkadot-node-primitives", @@ -8945,9 +8947,9 @@ dependencies = [ "polkadot-primitives 7.0.0", "rand", "slotmap", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tempfile", "thiserror", "tokio", @@ -8957,7 +8959,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-primitives", @@ -8965,7 +8967,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8973,7 +8975,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cfg-if", "cpu-time", @@ -8988,11 +8990,11 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "seccompiler", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -9000,7 +9002,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-metrics", @@ -9015,7 +9017,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "lazy_static", "log", @@ -9025,7 +9027,7 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives 7.0.0", "sc-network", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tokio", ] @@ -9033,7 +9035,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bs58 0.5.1", "futures", @@ -9052,7 +9054,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9068,7 +9070,7 @@ dependencies = [ "rand", "sc-authority-discovery", "sc-network", - "strum 0.24.1", + "strum 0.26.3", "thiserror", "tracing-gum", ] @@ -9076,7 +9078,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "bounded-vec", @@ -9086,12 +9088,12 @@ dependencies = [ "polkadot-primitives 7.0.0", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "zstd 0.12.4", ] @@ -9099,7 +9101,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9109,7 +9111,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "bitvec", @@ -9129,7 +9131,7 @@ dependencies = [ "sp-authority-discovery 26.0.0", "sp-blockchain", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -9137,7 +9139,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "derive_more", @@ -9162,9 +9164,9 @@ dependencies = [ "rand", "sc-client-api", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -9172,7 +9174,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -9186,7 +9188,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-client-api", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -9194,18 +9196,18 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "derive_more", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -9229,28 +9231,28 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "hex-literal", "log", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -9284,7 +9286,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9308,8 +9310,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] @@ -9317,7 +9319,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -9351,14 +9353,14 @@ dependencies = [ "serde_derive", "slot-range-helper 7.0.0", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -9434,14 +9436,14 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bs58 0.5.1", "frame-benchmarking 28.0.0", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -9461,7 +9463,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9482,7 +9484,7 @@ dependencies = [ "pallet-timestamp 27.0.0", "pallet-vesting 28.0.0", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-metrics 7.0.0", @@ -9492,16 +9494,16 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", "static_assertions", @@ -9559,7 +9561,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "bitvec", @@ -9576,7 +9578,6 @@ dependencies = [ "log", "mmr-gadget", "pallet-babe 28.0.0", - "pallet-im-online", "pallet-staking 28.0.0", "pallet-transaction-payment 28.0.0", "pallet-transaction-payment-rpc-runtime-api", @@ -9588,7 +9589,7 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -9654,31 +9655,33 @@ dependencies = [ "sp-consensus-babe 0.32.0", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "sp-transaction-pool", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "staging-xcm 7.0.0", "substrate-prometheus-endpoint", "thiserror", "tracing-gum", "westend-runtime", + "xcm-fee-payment-runtime-api", ] [[package]] name = "polkadot-statement-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -9692,7 +9695,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", "thiserror", "tracing-gum", @@ -9701,11 +9704,11 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing-gum", ] @@ -9758,7 +9761,7 @@ dependencies = [ "polkavm-common", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -9768,7 +9771,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -9914,7 +9917,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -10006,7 +10009,7 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -10052,7 +10055,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -10114,7 +10117,7 @@ dependencies = [ "prost 0.12.6", "prost-types 0.12.6", "regex", - "syn 2.0.75", + "syn 2.0.79", "tempfile", ] @@ -10141,7 +10144,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -10245,9 +10248,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -10431,7 +10434,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -10624,7 +10627,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "binary-merkle-tree", "frame-benchmarking 28.0.0", @@ -10651,7 +10654,6 @@ dependencies = [ "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity 28.0.0", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue 31.0.0", @@ -10692,22 +10694,22 @@ dependencies = [ "serde_derive", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -10715,20 +10717,21 @@ dependencies = [ "staging-xcm-executor 7.0.0", "static_assertions", "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", ] [[package]] name = "rococo-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -11016,24 +11019,25 @@ dependencies = [ [[package]] name = "sc-allocator" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", "futures-timer", "ip_network", "libp2p", + "linked_hash_set", "log", "multihash 0.18.1", "multihash-codetable", @@ -11046,9 +11050,9 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11056,7 +11060,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "futures-timer", @@ -11069,31 +11073,31 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-chain-spec" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "docify", @@ -11108,29 +11112,29 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", "sp-genesis-builder 0.7.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-chain-spec-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sc-cli" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -11158,11 +11162,11 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -11171,7 +11175,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "fnv", "futures", @@ -11184,21 +11188,21 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "kvdb", @@ -11212,19 +11216,19 @@ dependencies = [ "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-consensus" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -11239,9 +11243,9 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11249,7 +11253,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -11261,16 +11265,16 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11278,7 +11282,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "fork-tree", @@ -11296,17 +11300,17 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool-api", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11314,7 +11318,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "jsonrpsee", @@ -11323,20 +11327,20 @@ dependencies = [ "sc-rpc-api", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11353,16 +11357,16 @@ dependencies = [ "sc-network-sync", "sc-utils", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11372,7 +11376,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "jsonrpsee", @@ -11383,28 +11387,28 @@ dependencies = [ "sc-rpc", "serde", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-consensus-grandpa" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.3", @@ -11431,15 +11435,15 @@ dependencies = [ "sc-utils", "serde_json", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11447,7 +11451,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "finality-grandpa", "futures", @@ -11459,15 +11463,15 @@ dependencies = [ "sc-rpc", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "assert_matches", "async-trait", @@ -11490,10 +11494,10 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "thiserror", @@ -11502,7 +11506,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -11512,20 +11516,20 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-executor" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11534,26 +11538,26 @@ dependencies = [ "sc-executor-wasmtime", "schnellru", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "wasm-instrument", ] @@ -11561,18 +11565,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-executor-wasmtime" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "anyhow", "cfg-if", @@ -11582,15 +11586,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ansi_term", "futures", @@ -11601,27 +11605,27 @@ dependencies = [ "sc-network-common", "sc-network-sync", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-keystore" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.6", @@ -11640,17 +11644,17 @@ dependencies = [ "sc-transaction-pool-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mixnet", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-network" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11677,10 +11681,10 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11693,7 +11697,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-channel 1.9.0", "cid", @@ -11705,7 +11709,7 @@ dependencies = [ "sc-client-api", "sc-network", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "unsigned-varint", ] @@ -11713,7 +11717,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11724,13 +11728,13 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-network-gossip" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ahash 0.8.11", "futures", @@ -11741,7 +11745,7 @@ dependencies = [ "sc-network-common", "sc-network-sync", "schnellru", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -11749,7 +11753,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11762,15 +11766,15 @@ dependencies = [ "sc-client-api", "sc-network", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-network-sync" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11791,12 +11795,12 @@ dependencies = [ "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11806,7 +11810,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "futures", @@ -11818,14 +11822,14 @@ dependencies = [ "sc-network-sync", "sc-utils", "sp-consensus", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-offchain" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -11847,11 +11851,11 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "threadpool", "tracing", ] @@ -11859,7 +11863,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -11868,7 +11872,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "jsonrpsee", @@ -11886,11 +11890,11 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-offchain", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-statement-store", "sp-version 29.0.0", @@ -11900,7 +11904,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11910,9 +11914,9 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", ] @@ -11920,7 +11924,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "governor", @@ -11938,7 +11942,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "futures", @@ -11957,9 +11961,9 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -11969,7 +11973,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "directories", @@ -12010,16 +12014,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "static_init", "substrate-prometheus-endpoint", @@ -12033,23 +12037,23 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-storage-monitor" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "clap", "fs4", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tokio", ] @@ -12057,7 +12061,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12069,14 +12073,14 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-sysinfo" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "derive_more", "futures", @@ -12088,16 +12092,16 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-telemetry" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "chrono", "futures", @@ -12116,7 +12120,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ansi_term", "chrono", @@ -12133,10 +12137,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", "tracing-log 0.1.4", @@ -12146,18 +12150,18 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sc-transaction-pool" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -12172,10 +12176,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -12184,7 +12188,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -12192,15 +12196,15 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-utils" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-channel 1.9.0", "futures", @@ -12209,7 +12213,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -12415,9 +12419,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] @@ -12433,13 +12437,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -12513,6 +12517,7 @@ dependencies = [ "pallet-randomness", "pallet-session 28.0.0", "pallet-storage-providers", + "pallet-storage-providers-runtime-api", "pallet-sudo", "pallet-timestamp 27.0.0", "pallet-transaction-payment 28.0.0", @@ -12536,19 +12541,19 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", @@ -12635,8 +12640,8 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tokio", ] @@ -12679,9 +12684,9 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "storage-hub-runtime", "substrate-frame-rpc-system", "tokio", @@ -12710,10 +12715,10 @@ dependencies = [ "shp-file-metadata", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "storage-hub-runtime", "trie-db 0.29.1", @@ -12733,9 +12738,9 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "trie-db 0.29.1", @@ -12784,9 +12789,9 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "tokio", @@ -12804,9 +12809,9 @@ dependencies = [ "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "tokio", ] @@ -12821,8 +12826,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -12838,10 +12843,10 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -12855,9 +12860,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -12870,10 +12875,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -12885,11 +12890,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -12900,10 +12905,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -12969,13 +12974,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13176,21 +13181,21 @@ dependencies = [ [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", "sp-api-proc-macro 15.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", ] @@ -13220,7 +13225,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13228,7 +13233,7 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -13243,33 +13248,33 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -13289,7 +13294,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "integer-sqrt", @@ -13297,21 +13302,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", ] [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ + "docify", "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -13351,14 +13357,13 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13378,18 +13383,17 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "sp-api 26.0.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "log", @@ -13399,59 +13403,57 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sp-consensus" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-slots 0.32.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", ] [[package]] name = "sp-consensus-babe" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", ] @@ -13478,28 +13480,27 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "lazy_static", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "strum 0.24.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "finality-grandpa", "log", @@ -13507,22 +13508,20 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-consensus-slots" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", "sp-timestamp 26.0.0", ] @@ -13542,7 +13541,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -13572,14 +13571,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", "w3f-bls", @@ -13589,7 +13588,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -13619,14 +13618,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "thiserror", "tracing", "w3f-bls", @@ -13636,7 +13635,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", @@ -13749,7 +13748,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "blake2b_simd", "byteorder", @@ -13789,7 +13788,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "blake2b_simd", "byteorder", @@ -13802,11 +13801,11 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "quote", "sp-crypto-hashing 0.0.0", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -13817,13 +13816,13 @@ checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -13837,27 +13836,27 @@ checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -13867,28 +13866,27 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -13916,12 +13914,11 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "serde_json", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13939,14 +13936,13 @@ dependencies = [ [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] @@ -13968,7 +13964,7 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bytes", "ed25519-dalek", @@ -13978,15 +13974,15 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-crypto-hashing 0.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", "tracing-core", ] @@ -13994,7 +13990,7 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "ed25519-dalek", @@ -14004,15 +14000,15 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "tracing", "tracing-core", ] @@ -14046,33 +14042,33 @@ dependencies = [ [[package]] name = "sp-keyring" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "strum 0.24.1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "strum 0.26.3", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14091,7 +14087,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14112,30 +14108,28 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", ] [[package]] name = "sp-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-mmr-primitives" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14143,25 +14137,23 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sp-npos-elections" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14182,11 +14174,11 @@ dependencies = [ [[package]] name = "sp-offchain" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14203,7 +14195,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "backtrace", "lazy_static", @@ -14213,7 +14205,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "backtrace", "lazy_static", @@ -14223,17 +14215,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "rustc-hash", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "either", @@ -14246,18 +14238,18 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "either", @@ -14270,12 +14262,12 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14306,38 +14298,38 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", ] [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -14390,33 +14382,33 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "expander 2.2.1", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "expander 2.2.1", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -14429,22 +14421,21 @@ dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-session" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", ] [[package]] @@ -14466,15 +14457,14 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14495,7 +14485,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "log", @@ -14503,19 +14493,19 @@ dependencies = [ "parking_lot 0.12.3", "rand", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", - "trie-db 0.29.1", + "trie-db 0.28.0", ] [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hash-db", "log", @@ -14523,14 +14513,13 @@ dependencies = [ "parking_lot 0.12.3", "rand", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "thiserror", "tracing", - "trie-db 0.28.0", + "trie-db 0.29.1", ] [[package]] @@ -14558,7 +14547,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", @@ -14569,13 +14558,12 @@ dependencies = [ "scale-info", "sha2 0.10.8", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "x25519-dalek 2.0.1", ] @@ -14589,12 +14577,12 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" [[package]] name = "sp-std" @@ -14604,26 +14592,25 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14655,13 +14642,12 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] @@ -14695,24 +14681,23 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.2.25", ] [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", "tracing", "tracing-core", - "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.18", ] [[package]] @@ -14729,31 +14714,30 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-transaction-storage-proof" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ahash 0.8.11", "hash-db", @@ -14765,18 +14749,18 @@ dependencies = [ "rand", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", - "trie-db 0.29.1", + "trie-db 0.28.0", "trie-root", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ahash 0.8.11", "hash-db", @@ -14788,19 +14772,18 @@ dependencies = [ "rand", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "thiserror", "tracing", - "trie-db 0.28.0", + "trie-db 0.29.1", "trie-root", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "ahash 0.8.11", "hash-db", @@ -14848,7 +14831,7 @@ dependencies = [ [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14856,9 +14839,9 @@ dependencies = [ "scale-info", "serde", "sp-crypto-hashing-proc-macro 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] @@ -14889,18 +14872,18 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -14920,24 +14903,23 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ + "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", + "wasmtime", ] [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "wasmtime", ] [[package]] @@ -14953,30 +14935,29 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -15061,21 +15042,21 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "staging-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -15086,7 +15067,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "xcm-procedural 7.0.0", ] @@ -15112,7 +15093,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -15122,11 +15103,11 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives 6.0.0", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -15157,7 +15138,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -15166,12 +15147,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] @@ -15315,12 +15296,12 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "staging-xcm 7.0.0", @@ -15391,14 +15372,15 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", "staging-parachain-info", @@ -15441,6 +15423,9 @@ name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] [[package]] name = "strum_macros" @@ -15465,7 +15450,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -15484,7 +15469,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15496,7 +15481,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15508,7 +15493,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15520,12 +15505,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -15537,14 +15522,14 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hyper", "log", @@ -15556,37 +15541,37 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "jsonrpsee", "log", "sc-rpc-api", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "trie-db 0.28.0", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "build-helper", "cargo_metadata", @@ -15595,7 +15580,7 @@ dependencies = [ "parity-wasm", "polkavm-linker", "sp-maybe-compressed-blob", - "strum 0.24.1", + "strum 0.26.3", "tempfile", "toml 0.8.19", "walkdir", @@ -15633,9 +15618,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.75" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -15662,7 +15647,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -15762,7 +15747,7 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -15773,7 +15758,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -15916,7 +15901,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -16107,7 +16092,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -16133,7 +16118,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "coarsetime", "polkadot-primitives 7.0.0", @@ -16144,13 +16129,13 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "expander 2.2.1", "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -16329,7 +16314,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "clap", @@ -16345,19 +16330,19 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus-aura", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "sp-transaction-storage-proof", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-rpc-client", "zstd 0.12.4", ] @@ -16604,7 +16589,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -16638,7 +16623,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -16990,7 +16975,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "binary-merkle-tree", "bitvec", @@ -17021,7 +17006,6 @@ dependencies = [ "pallet-fast-unstake 27.0.0", "pallet-grandpa", "pallet-identity 28.0.0", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue 31.0.0", @@ -17066,24 +17050,24 @@ dependencies = [ "serde_derive", "smallvec", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", "sp-npos-elections 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -17091,20 +17075,21 @@ dependencies = [ "staging-xcm-executor 7.0.0", "substrate-wasm-builder", "westend-runtime-constants", + "xcm-fee-payment-runtime-api", ] [[package]] name = "westend-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -17488,15 +17473,30 @@ dependencies = [ "time", ] +[[package]] +name = "xcm-fee-payment-runtime-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +dependencies = [ + "frame-support 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "staging-xcm 7.0.0", +] + [[package]] name = "xcm-procedural" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -17508,22 +17508,22 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "paste", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -17570,7 +17570,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -17590,7 +17590,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index d38c8eb1e..6bafbfa2c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,120 +57,122 @@ scale-info = { version = "2.11.0", default-features = false, features = [ thiserror = "1.0.48" tokio = "1.36.0" trie-db = { version = "0.29.1", default-features = false } -serde = { version = "1.0.206", default-features = false } +serde = { version = "1.0.210", default-features = false } serde_json = "1.0.108" smallvec = "1.11.0" # Substrate -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } # latest version containing trie-db upgrade (double ended iterator) sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", version = "29.0.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.9.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } +# CRITICAL TODO: Remove this after upgrading to polkadot sdk v1.13.0 +sp-trie-polkadot-sdk = { package = "sp-trie", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.10.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", features = [ +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", features = [ "rococo-native", ] } polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.9.0", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.9.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.10.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.10.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.1", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0" } -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false, features = [ +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false, features = [ "parameterized-consensus-hook", ] } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.9.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } # Local Pallets pallet-bucket-nfts = { path = "pallets/bucket-nfts", default-features = false } diff --git a/client/common/src/types.rs b/client/common/src/types.rs index 30e077056..14a95f8d6 100644 --- a/client/common/src/types.rs +++ b/client/common/src/types.rs @@ -11,7 +11,7 @@ use sp_core::Hasher; use sp_runtime::{traits::Block as BlockT, KeyTypeId}; use sp_std::collections::btree_map::BTreeMap; use sp_trie::CompactProof; -use storage_hub_runtime::{opaque::Block, Runtime, RuntimeApi}; +use storage_hub_runtime::{apis::RuntimeApi, opaque::Block, Runtime}; use trie_db::TrieLayout; /// The hash type of trie node keys @@ -48,7 +48,7 @@ pub type KeyProofs = BTreeMap; pub type Balance = pallet_storage_providers::types::BalanceOf; #[cfg(not(feature = "runtime-benchmarks"))] -type HostFunctions = (cumulus_client_service::ParachainHostFunctions); +type HostFunctions = cumulus_client_service::ParachainHostFunctions; #[cfg(feature = "runtime-benchmarks")] type HostFunctions = ( diff --git a/pallets/file-system/src/lib.rs b/pallets/file-system/src/lib.rs index 32d557e5d..8d27289a2 100644 --- a/pallets/file-system/src/lib.rs +++ b/pallets/file-system/src/lib.rs @@ -254,7 +254,6 @@ pub mod pallet { pub struct Pallet(_); #[pallet::storage] - #[pallet::getter(fn storage_requests)] pub type StorageRequests = StorageMap<_, Blake2_128Concat, MerkleHash, StorageRequestMetadata>; @@ -265,7 +264,6 @@ pub mod pallet { /// /// When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. #[pallet::storage] - #[pallet::getter(fn storage_request_bsps)] pub type StorageRequestBsps = StorageDoubleMap< _, Blake2_128Concat, @@ -278,7 +276,6 @@ pub mod pallet { /// Bookkeeping of the buckets containing open storage requests. #[pallet::storage] - #[pallet::getter(fn storage_request_buckets)] pub type BucketsWithStorageRequests = StorageDoubleMap< _, Blake2_128Concat, @@ -291,7 +288,6 @@ pub mod pallet { /// A map of blocks to expired storage requests. #[pallet::storage] - #[pallet::getter(fn storage_request_expirations)] pub type StorageRequestExpirations = StorageMap< _, Blake2_128Concat, @@ -302,7 +298,6 @@ pub mod pallet { /// A map of blocks to expired file deletion requests. #[pallet::storage] - #[pallet::getter(fn file_deletion_request_expirations)] pub type FileDeletionRequestExpirations = StorageMap< _, Blake2_128Concat, @@ -313,7 +308,6 @@ pub mod pallet { /// A map of blocks to expired move bucket requests. #[pallet::storage] - #[pallet::getter(fn move_bucket_request_expirations)] pub type MoveBucketRequestExpirations = StorageMap< _, Blake2_128Concat, @@ -326,7 +320,6 @@ pub mod pallet { /// /// This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. #[pallet::storage] - #[pallet::getter(fn next_available_storage_request_expiration_block)] pub type NextAvailableStorageRequestExpirationBlock = StorageValue<_, BlockNumberFor, ValueQuery>; @@ -334,7 +327,6 @@ pub mod pallet { /// /// This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. #[pallet::storage] - #[pallet::getter(fn next_available_file_deletion_request_expiration_block)] pub type NextAvailableFileDeletionRequestExpirationBlock = StorageValue<_, BlockNumberFor, ValueQuery>; @@ -342,7 +334,6 @@ pub mod pallet { /// /// This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. #[pallet::storage] - #[pallet::getter(fn next_available_move_bucket_request_expiration_block)] pub type NextAvailableMoveBucketRequestExpirationBlock = StorageValue<_, BlockNumberFor, ValueQuery>; @@ -352,14 +343,12 @@ pub mod pallet { /// attempt to accelerate this block pointer as close to or up to the current block number. This /// will execute provided that there is enough remaining weight to do so. #[pallet::storage] - #[pallet::getter(fn next_starting_block_to_clean_up)] pub type NextStartingBlockToCleanUp = StorageValue<_, BlockNumberFor, ValueQuery>; /// Pending file deletion requests. /// /// A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. #[pallet::storage] - #[pallet::getter(fn pending_file_deletion_requests)] pub type PendingFileDeletionRequests = StorageMap< _, Blake2_128Concat, @@ -375,7 +364,6 @@ pub mod pallet { /// The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges /// of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. #[pallet::storage] - #[pallet::getter(fn pending_stop_storing_requests)] pub type PendingStopStoringRequests = StorageDoubleMap< _, Blake2_128Concat, @@ -390,7 +378,6 @@ pub mod pallet { /// A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. /// The value is the user who requested the move. #[pallet::storage] - #[pallet::getter(fn pending_move_bucket_requests)] pub type PendingMoveBucketRequests = StorageDoubleMap< _, Blake2_128Concat, @@ -402,7 +389,6 @@ pub mod pallet { /// BSP data servers for move bucket requests. #[pallet::storage] - #[pallet::getter(fn data_servers_for_move_bucket)] pub type DataServersForMoveBucket = StorageDoubleMap< _, Blake2_128Concat, @@ -414,7 +400,6 @@ pub mod pallet { /// Bookkeeping of buckets that are pending to be moved to a new MSP. #[pallet::storage] - #[pallet::getter(fn pending_buckets_to_move)] pub type PendingBucketsToMove = StorageMap<_, Blake2_128Concat, BucketIdFor, (), ValueQuery>; @@ -422,12 +407,10 @@ pub mod pallet { /// /// This is also used as a default value if the BSPs required are not specified when creating a storage request. #[pallet::storage] - #[pallet::getter(fn replication_target)] pub type ReplicationTarget = StorageValue<_, ReplicationTargetType, ValueQuery>; /// Number of blocks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. #[pallet::storage] - #[pallet::getter(fn block_range_to_maximum_threshold)] pub type BlockRangeToMaximumThreshold = StorageValue<_, BlockNumberFor, ValueQuery>; diff --git a/pallets/file-system/src/tests.rs b/pallets/file-system/src/tests.rs index a7be56fe6..9abdf000d 100644 --- a/pallets/file-system/src/tests.rs +++ b/pallets/file-system/src/tests.rs @@ -1,4 +1,5 @@ use crate::{ + self as file_system, mock::*, types::{ BucketIdFor, BucketMoveRequestResponse, BucketNameFor, FileLocation, @@ -1403,7 +1404,7 @@ mod request_storage { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -1476,7 +1477,7 @@ mod request_storage { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -1514,7 +1515,7 @@ mod request_storage { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -1620,7 +1621,7 @@ mod request_storage { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -1650,17 +1651,17 @@ mod request_storage { let expiration_block = System::block_number() + storage_request_ttl; // Assert that the next starting block to clean up is set to 0 initially - assert_eq!(FileSystem::next_starting_block_to_clean_up(), 0); + assert_eq!(file_system::NextStartingBlockToCleanUp::::get(), 0); // Assert that the next expiration block number is the storage request ttl since a single storage request was made assert_eq!( - FileSystem::next_available_storage_request_expiration_block(), + file_system::NextAvailableStorageRequestExpirationBlock::::get(), expiration_block ); // Assert that the storage request expiration was appended to the list at `StorageRequestTtl` assert_eq!( - FileSystem::storage_request_expirations(expiration_block), + file_system::StorageRequestExpirations::::get(expiration_block), vec![file_key] ); @@ -1668,7 +1669,7 @@ mod request_storage { // Assert that the storage request expiration was removed from the list at `StorageRequestTtl` assert_eq!( - FileSystem::storage_request_expirations(expiration_block), + file_system::StorageRequestExpirations::::get(expiration_block), vec![] ); }); @@ -1726,7 +1727,10 @@ mod request_storage { // Assert that the storage request expirations storage is at max capacity assert_eq!( - FileSystem::storage_request_expirations(expected_expiration_block_number).len(), + file_system::StorageRequestExpirations::::get( + expected_expiration_block_number + ) + .len(), max_expired_items_in_block as usize ); @@ -1735,7 +1739,9 @@ mod request_storage { // Assert that the storage request expiration was removed from the list at `StorageRequestTtl` assert_eq!( - FileSystem::storage_request_expirations(expected_expiration_block_number), + file_system::StorageRequestExpirations::::get( + expected_expiration_block_number + ), vec![] ); }); @@ -1797,11 +1803,14 @@ mod request_storage { expected_expiration_block_number.into(); // Assert that the `NextExpirationInsertionBlockNumber` storage is set to 0 initially - assert_eq!(FileSystem::next_starting_block_to_clean_up(), 0); + assert_eq!(file_system::NextStartingBlockToCleanUp::::get(), 0); // Assert that the storage request expirations storage is at max capacity assert_eq!( - FileSystem::storage_request_expirations(expected_expiration_block_number).len(), + file_system::StorageRequestExpirations::::get( + expected_expiration_block_number + ) + .len(), max_storage_request_expiry as usize ); @@ -1813,25 +1822,30 @@ mod request_storage { // Assert that the storage request expirations storage is at max capacity // TODO: Fix this test... assert_eq!( - FileSystem::storage_request_expirations(expected_expiration_block_number).len(), + file_system::StorageRequestExpirations::::get( + expected_expiration_block_number + ) + .len(), max_storage_request_expiry as usize ); // Assert that the `NextExpirationInsertionBlockNumber` storage did not update - assert_eq!(FileSystem::next_starting_block_to_clean_up(), 0); + assert_eq!(file_system::NextStartingBlockToCleanUp::::get(), 0); // Go to block number after which the storage request expirations should be removed roll_to(expected_expiration_block_number + 1); // Assert that the storage request expiration was removed from the list at `StorageRequestTtl` assert_eq!( - FileSystem::storage_request_expirations(expected_expiration_block_number), + file_system::StorageRequestExpirations::::get( + expected_expiration_block_number + ), vec![] ); // Assert that the `NextExpirationInsertionBlockNumber` storage is set to the next block number assert_eq!( - FileSystem::next_starting_block_to_clean_up(), + file_system::NextStartingBlockToCleanUp::::get(), System::block_number() + 1 ); }); @@ -1942,11 +1956,11 @@ mod revoke_storage_request { let expiration_block = System::block_number() + storage_request_ttl; // Assert that the NextExpirationInsertionBlockNumber storage is set to 0 initially - assert_eq!(FileSystem::next_starting_block_to_clean_up(), 0); + assert_eq!(file_system::NextStartingBlockToCleanUp::::get(), 0); // Assert that the storage request expiration was appended to the list at `StorageRequestTtl` assert_eq!( - FileSystem::storage_request_expirations(expiration_block), + file_system::StorageRequestExpirations::::get(expiration_block), vec![file_key] ); @@ -2008,7 +2022,7 @@ mod revoke_storage_request { // Check StorageRequestBsps storage for confirmed BSPs assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: false, @@ -2159,7 +2173,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key).unwrap().msp, + file_system::StorageRequests::::get(file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2258,7 +2272,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(first_file_key).unwrap().msp, + file_system::StorageRequests::::get(first_file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2299,7 +2313,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(second_file_key).unwrap().msp, + file_system::StorageRequests::::get(second_file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2408,7 +2422,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(first_file_key).unwrap().msp, + file_system::StorageRequests::::get(first_file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2449,7 +2463,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(second_file_key).unwrap().msp, + file_system::StorageRequests::::get(second_file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2562,7 +2576,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(first_file_key).unwrap().msp, + file_system::StorageRequests::::get(first_file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2603,7 +2617,7 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(second_file_key).unwrap().msp, + file_system::StorageRequests::::get(second_file_key).unwrap().msp, Some((msp_id, true)) ); @@ -2712,8 +2726,11 @@ mod msp_accept_storage_request { )); // Storage request should be removed - assert!(FileSystem::storage_requests(file_key).is_none()); - assert!(FileSystem::storage_request_buckets(bucket_id, file_key).is_none()); + assert!(file_system::StorageRequests::::get(file_key).is_none()); + assert!( + file_system::BucketsWithStorageRequests::::get(bucket_id, file_key) + .is_none() + ); }); } } @@ -3535,7 +3552,7 @@ mod bsp_volunteer { // Assert that the RequestStorageBsps has the correct value assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: false, @@ -4008,7 +4025,7 @@ mod bsp_confirm { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4027,7 +4044,7 @@ mod bsp_confirm { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4206,7 +4223,7 @@ mod bsp_stop_storing { // Assert that the RequestStorageBsps now contains the BSP under the location assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4216,7 +4233,7 @@ mod bsp_stop_storing { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4325,7 +4342,7 @@ mod bsp_stop_storing { // Assert that the RequestStorageBsps now contains the BSP under the location assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4335,7 +4352,7 @@ mod bsp_stop_storing { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4462,7 +4479,7 @@ mod bsp_stop_storing { // Assert that the RequestStorageBsps now contains the BSP under the location assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4472,7 +4489,7 @@ mod bsp_stop_storing { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4513,11 +4530,11 @@ mod bsp_stop_storing { )); // Assert that the RequestStorageBsps has the correct value - assert!(FileSystem::storage_request_bsps(file_key, bsp_id).is_none()); + assert!(file_system::StorageRequestBsps::::get(file_key, bsp_id).is_none()); // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4632,7 +4649,7 @@ mod bsp_stop_storing { // Assert that the RequestStorageBsps now contains the BSP under the location assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4642,7 +4659,7 @@ mod bsp_stop_storing { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4683,11 +4700,11 @@ mod bsp_stop_storing { )); // Assert that the RequestStorageBsps has the correct value - assert!(FileSystem::storage_request_bsps(file_key, bsp_id).is_none()); + assert!(file_system::StorageRequestBsps::::get(file_key, bsp_id).is_none()); // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4786,7 +4803,7 @@ mod bsp_stop_storing { // Assert that the RequestStorageBsps now contains the BSP under the location assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4796,7 +4813,7 @@ mod bsp_stop_storing { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4837,11 +4854,11 @@ mod bsp_stop_storing { )); // Assert that the RequestStorageBsps has the correct value - assert!(FileSystem::storage_request_bsps(file_key, bsp_id).is_none()); + assert!(file_system::StorageRequestBsps::::get(file_key, bsp_id).is_none()); // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4990,11 +5007,11 @@ mod bsp_stop_storing { )); // Assert that the RequestStorageBsps has the correct value - assert!(FileSystem::storage_request_bsps(file_key, bsp_id).is_none()); + assert!(file_system::StorageRequestBsps::::get(file_key, bsp_id).is_none()); // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -5095,7 +5112,7 @@ mod bsp_stop_storing { // Assert that the storage request bsps_required was incremented assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -5182,7 +5199,7 @@ mod bsp_stop_storing { // Assert that the storage request was created with one bsps_required assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 5, owner: owner_account_id.clone(), @@ -5422,7 +5439,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was added to storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id.clone()), + file_system::PendingFileDeletionRequests::::get(owner_account_id.clone()), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::try_from( vec![(file_key, bucket_id)] ) @@ -5450,7 +5467,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was not removed from storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id), + file_system::PendingFileDeletionRequests::::get(owner_account_id), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::try_from( vec![(file_key, bucket_id)] ) @@ -5615,7 +5632,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was added to storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id.clone()), + file_system::PendingFileDeletionRequests::::get(owner_account_id.clone()), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::try_from( vec![(file_key, bucket_id)] ) @@ -5630,7 +5647,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was added to storage assert_eq!( - FileSystem::file_deletion_request_expirations(expiration_block), + file_system::FileDeletionRequestExpirations::::get(expiration_block), vec![( owner_account_id.clone(), file_key @@ -5642,13 +5659,13 @@ mod delete_file_and_pending_deletions_tests { // Item expiration should be removed assert_eq!( - FileSystem::file_deletion_request_expirations(expiration_block), + file_system::FileDeletionRequestExpirations::::get(expiration_block), vec![] ); // Asser that the pending file deletion request was removed from storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id.clone()), + file_system::PendingFileDeletionRequests::::get(owner_account_id.clone()), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::default() ); @@ -5696,7 +5713,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was added to storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id.clone()), + file_system::PendingFileDeletionRequests::::get(owner_account_id.clone()), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::try_from( vec![(file_key, bucket_id)] ) @@ -5736,7 +5753,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was removed from storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id), + file_system::PendingFileDeletionRequests::::get(owner_account_id), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::default() ); }); @@ -5779,7 +5796,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was added to storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id.clone()), + file_system::PendingFileDeletionRequests::::get(owner_account_id.clone()), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::try_from( vec![(file_key, bucket_id)] ) @@ -5821,7 +5838,7 @@ mod delete_file_and_pending_deletions_tests { // Assert that the pending file deletion request was removed from storage assert_eq!( - FileSystem::pending_file_deletion_requests(owner_account_id), + file_system::PendingFileDeletionRequests::::get(owner_account_id), BoundedVec::<_, ::MaxUserPendingDeletionRequests>::default() ); }); @@ -5939,7 +5956,7 @@ mod compute_threshold { ) .unwrap(); - let storage_request = FileSystem::storage_requests(file_key).unwrap(); + let storage_request = file_system::StorageRequests::::get(file_key).unwrap(); FileSystem::set_global_parameters(RuntimeOrigin::root(), None, Some(1)).unwrap(); @@ -6154,7 +6171,7 @@ mod stop_storing_for_insolvent_user { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -6173,7 +6190,7 @@ mod stop_storing_for_insolvent_user { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -6377,7 +6394,7 @@ mod stop_storing_for_insolvent_user { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -6396,7 +6413,7 @@ mod stop_storing_for_insolvent_user { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -6578,7 +6595,7 @@ mod stop_storing_for_insolvent_user { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -6597,7 +6614,7 @@ mod stop_storing_for_insolvent_user { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, diff --git a/pallets/proofs-dealer/src/lib.rs b/pallets/proofs-dealer/src/lib.rs index 6710e4e17..c8835f35c 100644 --- a/pallets/proofs-dealer/src/lib.rs +++ b/pallets/proofs-dealer/src/lib.rs @@ -190,7 +190,6 @@ pub mod pallet { /// This is used to keep track of the challenges' seed in the past. /// This mapping goes back only `ChallengeHistoryLength` blocks. Previous challenges are removed. #[pallet::storage] - #[pallet::getter(fn tick_to_challenges)] pub type TickToChallengesSeed = StorageMap<_, Blake2_128Concat, BlockNumberFor, RandomnessOutputFor>; @@ -201,7 +200,6 @@ pub mod pallet { /// The vector is bounded by `MaxCustomChallengesPerBlockFor`. /// This mapping goes back only `ChallengeHistoryLength` ticks. Previous challenges are removed. #[pallet::storage] - #[pallet::getter(fn tick_to_checkpoint_challenges)] pub type TickToCheckpointChallenges = StorageMap< _, Blake2_128Concat, @@ -216,7 +214,6 @@ pub mod pallet { /// challenge rounds have to be answered by ALL Providers, and this is enforced by the /// `submit_proof` extrinsic. #[pallet::storage] - #[pallet::getter(fn last_checkpoint_tick)] pub type LastCheckpointTick = StorageValue<_, BlockNumberFor, ValueQuery>; /// A mapping from challenge tick to a vector of challenged Providers for that tick. @@ -228,7 +225,6 @@ pub mod pallet { /// Those who are still in the entry by the time the tick is reached are considered to /// have failed to submit a proof and subject to slashing. #[pallet::storage] - #[pallet::getter(fn tick_to_challenged_providers)] pub type ChallengeTickToChallengedProviders = StorageDoubleMap< _, Blake2_128Concat, @@ -248,7 +244,6 @@ pub mod pallet { /// If the Provider fails to submit a proof in time and is slashed, this will still get updated /// to the tick it should have submitted a proof for. #[pallet::storage] - #[pallet::getter(fn last_tick_provider_submitted_proof_for)] pub type LastTickProviderSubmittedAProofFor = StorageMap<_, Blake2_128Concat, ProviderIdFor, BlockNumberFor>; @@ -259,7 +254,6 @@ pub mod pallet { /// A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait /// is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. #[pallet::storage] - #[pallet::getter(fn challenges_queue)] pub type ChallengesQueue = StorageValue<_, BoundedVec, ChallengesQueueLengthFor>, ValueQuery>; @@ -274,7 +268,6 @@ pub mod pallet { /// A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait /// is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. #[pallet::storage] - #[pallet::getter(fn priority_challenges_queue)] pub type PriorityChallengesQueue = StorageValue< _, BoundedVec<(KeyFor, Option), ChallengesQueueLengthFor>, @@ -288,11 +281,9 @@ pub mod pallet { /// so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). /// During MBMsm, the block number increases, but `ChallengesTicker` does not. #[pallet::storage] - #[pallet::getter(fn challenges_ticker)] pub type ChallengesTicker = StorageValue<_, BlockNumberFor, ValueQuery>; #[pallet::storage] - #[pallet::getter(fn slashable_providers)] pub type SlashableProviders = StorageMap<_, Blake2_128Concat, ProviderIdFor, u32>; /// A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. diff --git a/primitives/file-key-verifier/src/lib.rs b/primitives/file-key-verifier/src/lib.rs index f7085a1fe..8448eb0c2 100644 --- a/primitives/file-key-verifier/src/lib.rs +++ b/primitives/file-key-verifier/src/lib.rs @@ -4,8 +4,8 @@ use frame_support::sp_runtime::DispatchError; use shp_file_metadata::ChunkId; use shp_traits::CommitmentVerifier; use sp_std::collections::btree_set::BTreeSet; +use sp_trie::Trie; use sp_trie::{TrieDBBuilder, TrieLayout}; -use trie_db::Trie; use types::FileKeyProof; #[cfg(test)] diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 6a530598c..75f51e107 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -73,6 +73,8 @@ sp-session = { workspace = true } sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-trie = { workspace = true } +# CRITICAL TODO: Remove this after upgrading to polkadot sdk v1.13.0 +sp-trie-polkadot-sdk = { workspace = true } sp-version = { workspace = true } # Polkadot diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index 357939182..bbad3e01a 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -1,22 +1,33 @@ +use crate::*; use frame_support::{ genesis_builder_helper::{build_config, create_default_config}, weights::Weight, }; use pallet_aura::Authorities; +use pallet_file_system_runtime_api::*; +use pallet_payment_streams_runtime_api::*; +use pallet_proofs_dealer::types::{KeyFor, ProviderIdFor, RandomnessOutputFor}; +use pallet_proofs_dealer_runtime_api::*; +use pallet_storage_providers::types::{ + BackupStorageProvider, BackupStorageProviderId, ProviderId, StorageDataUnit, StorageProviderId, +}; +use pallet_storage_providers_runtime_api::*; +use shp_file_metadata::ChunkId; +use shp_traits::TrieRemoveMutation; use sp_api::impl_runtime_apis; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H256}; use sp_runtime::{ traits::Block as BlockT, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, + ApplyExtrinsicResult, ExtrinsicInclusionMode, }; use sp_std::prelude::Vec; use sp_version::RuntimeVersion; // Local module imports use super::{ - AccountId, Aura, Balance, Block, Executive, InherentDataExt, Nonce, ParachainSystem, Runtime, + AccountId, Balance, Block, Executive, InherentDataExt, Nonce, ParachainSystem, Runtime, RuntimeCall, RuntimeGenesisConfig, SessionKeys, System, TransactionPayment, VERSION, }; @@ -37,7 +48,7 @@ impl_runtime_apis! { } fn authorities() -> Vec { - Aura::authorities().into_inner() + Authorities::::get().into_inner() } } @@ -316,7 +327,7 @@ impl_runtime_apis! { } } - impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { Providers::get_bsp_info(bsp_id) } @@ -325,11 +336,11 @@ impl_runtime_apis! { Providers::get_storage_provider_id(who) } - fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result { + fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result, QueryStorageProviderCapacityError> { Providers::query_storage_provider_capacity(provider_id) } - fn query_available_storage_capacity(provider_id: &ProviderId) -> Result { + fn query_available_storage_capacity(provider_id: &ProviderId) -> Result, QueryAvailableStorageCapacityError> { Providers::query_available_storage_capacity(provider_id) } diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 2689c4263..f79ce9959 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -65,6 +65,8 @@ use sp_runtime::{ use sp_std::collections::btree_set::BTreeSet; use sp_std::vec; use sp_trie::{CompactProof, LayoutV1, TrieConfiguration, TrieLayout}; +// CRITICAL TODO: Remove after upgrading to polkadot v1.13.0 +use sp_trie_polkadot_sdk::StorageProof; use sp_version::RuntimeVersion; use xcm::latest::prelude::BodyId; @@ -236,6 +238,9 @@ impl parachain_info::Config for Runtime {} parameter_types! { pub MessageQueueServiceWeight: Weight = Perbill::from_percent(35) * RuntimeBlockWeights::get().max_block; + // TODO: Set appropiate weight limit + // The maximum weight to be used from remaining weight for processing enqueued messages on idle + // pub const IdleMaxServiceWeight: Weight = Some(Weight); } impl pallet_message_queue::Config for Runtime { @@ -258,6 +263,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); // TODO: Set appropiate weight limit } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -299,7 +305,6 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } @@ -376,11 +381,15 @@ impl pallet_nfts::Config for Runtime { /// Only callable after `set_validation_data` is called which forms this proof the same way fn relay_chain_state_proof() -> RelayChainStateProof { - let relay_storage_root = ParachainSystem::validation_data() - .expect("set in `set_validation_data`") - .relay_parent_storage_root; - let relay_chain_state = - ParachainSystem::relay_state_proof().expect("set in `set_validation_data`"); + // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 + let relay_storage_root = H256::zero(); + /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; */ + let root_vec: vec::Vec> = vec![relay_storage_root.as_bytes().to_vec()]; + let relay_chain_state = StorageProof::new(root_vec); + /* let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() + .expect("set in `set_validation_data`"); */ RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") } @@ -391,8 +400,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_epoch_index() -> u64 { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - let _relay_storage_root = ParachainSystem::validation_data(); - let _relay_chain_state = ParachainSystem::relay_state_proof(); + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 + /* let _relay_storage_root = + cumulus_pallet_parachain_system::ValidationData::::get(); + let _relay_chain_state = + cumulus_pallet_parachain_system::RelayStateProof::::get(); */ const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } @@ -405,8 +417,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - let _relay_storage_root = ParachainSystem::validation_data(); - let _relay_chain_state = ParachainSystem::relay_state_proof(); + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 + /* let _relay_storage_root = + cumulus_pallet_parachain_system::ValidationData::::get(); + let _relay_chain_state = + cumulus_pallet_parachain_system::RelayStateProof::::get(); */ let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } @@ -419,8 +434,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - let _relay_storage_root = ParachainSystem::validation_data(); - let _relay_chain_state = ParachainSystem::relay_state_proof(); + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 + /* let _relay_storage_root = + cumulus_pallet_parachain_system::ValidationData::::get(); + let _relay_chain_state = + cumulus_pallet_parachain_system::RelayStateProof::::get(); */ let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } diff --git a/runtime/src/configs/xcm_config.rs b/runtime/src/configs/xcm_config.rs index 768d41d37..e663939e2 100644 --- a/runtime/src/configs/xcm_config.rs +++ b/runtime/src/configs/xcm_config.rs @@ -182,6 +182,10 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + // TODO: Implement these handlers if needed + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); } /// Converts a local signed origin into an XCM location. diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index b306ed5e9..42c259b8e 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -10,10 +10,7 @@ pub mod apis; mod configs; mod weights; -use shp_file_metadata::ChunkId; use smallvec::smallvec; -use sp_api::impl_runtime_apis; -use sp_core::H256; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{BlakeTwo256, IdentifyAccount, Verify}, @@ -25,7 +22,6 @@ use sp_std::prelude::*; use sp_version::NativeVersion; use sp_version::RuntimeVersion; -use frame_support::genesis_builder_helper::{build_config, create_default_config}; use frame_support::{ construct_runtime, weights::{ @@ -35,33 +31,9 @@ use frame_support::{ }; pub use parachains_common::BlockNumber; pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - traits::Block as BlockT, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, ExtrinsicInclusionMode, -}; pub use sp_runtime::{MultiAddress, Perbill, Permill}; use sp_std::prelude::Vec; -use pallet_file_system_runtime_api::{ - QueryBspConfirmChunksToProveForFileError, QueryFileEarliestVolunteerBlockError, -}; -use pallet_payment_streams_runtime_api::GetUsersWithDebtOverThresholdError; -use pallet_proofs_dealer::types::{KeyFor, ProviderIdFor, RandomnessOutputFor}; -use pallet_proofs_dealer_runtime_api::{ - GetChallengePeriodError, GetChallengeSeedError, GetCheckpointChallengesError, - GetLastTickProviderSubmittedProofError, GetNextDeadlineTickError, -}; -use pallet_storage_providers::types::{ - BackupStorageProvider, BackupStorageProviderId, ProviderId, StorageProviderId, -}; -use pallet_storage_providers_runtime_api::{ - GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, - QueryStorageProviderCapacityError, -}; -use shp_traits::TrieRemoveMutation; - #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; diff --git a/xcm-simulator/Cargo.toml b/xcm-simulator/Cargo.toml index 917eab136..ca6468ecb 100644 --- a/xcm-simulator/Cargo.toml +++ b/xcm-simulator/Cargo.toml @@ -26,6 +26,7 @@ scale-info = { workspace = true } pallet-file-system = { workspace = true } pallet-file-system-runtime-api = { workspace = true } pallet-storage-providers = { workspace = true } +pallet-storage-providers-runtime-api = { workspace = true } pallet-proofs-dealer = { workspace = true } pallet-proofs-dealer-runtime-api = { workspace = true } pallet-randomness = { workspace = true } diff --git a/xcm-simulator/src/parachain/xcm_config/mod.rs b/xcm-simulator/src/parachain/xcm_config/mod.rs index 3709ca49e..5ddeb03a2 100644 --- a/xcm-simulator/src/parachain/xcm_config/mod.rs +++ b/xcm-simulator/src/parachain/xcm_config/mod.rs @@ -57,4 +57,7 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); } diff --git a/xcm-simulator/src/relay_chain/mod.rs b/xcm-simulator/src/relay_chain/mod.rs index d1da723f2..283d07e1d 100644 --- a/xcm-simulator/src/relay_chain/mod.rs +++ b/xcm-simulator/src/relay_chain/mod.rs @@ -164,6 +164,7 @@ impl pallet_message_queue::Config for Runtime { type QueueChangeHandler = (); type QueuePausedQuery = (); type WeightInfo = (); + type IdleMaxServiceWeight = (); } construct_runtime!( diff --git a/xcm-simulator/src/relay_chain/xcm_config/mod.rs b/xcm-simulator/src/relay_chain/xcm_config/mod.rs index 2ea3711b2..230b05040 100644 --- a/xcm-simulator/src/relay_chain/xcm_config/mod.rs +++ b/xcm-simulator/src/relay_chain/xcm_config/mod.rs @@ -76,4 +76,7 @@ impl Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); } diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs new file mode 100644 index 000000000..1b1d7ef5e --- /dev/null +++ b/xcm-simulator/src/storagehub/apis.rs @@ -0,0 +1,351 @@ +use crate::storagehub::*; +use frame_support::{ + genesis_builder_helper::{build_config, create_default_config}, + weights::Weight, +}; +use pallet_aura::Authorities; +use pallet_file_system_runtime_api::*; +use pallet_payment_streams_runtime_api::*; +use pallet_proofs_dealer::types::{KeyFor, ProviderIdFor, RandomnessOutputFor}; +use pallet_proofs_dealer_runtime_api::*; +use pallet_storage_providers::types::{ + BackupStorageProvider, BackupStorageProviderId, ProviderId, StorageDataUnit, StorageProviderId, +}; +use pallet_storage_providers_runtime_api::*; +use shp_file_metadata::ChunkId; +use shp_traits::TrieRemoveMutation; +use sp_api::impl_runtime_apis; +use sp_consensus_aura::sr25519::AuthorityId as AuraId; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H256}; +use sp_runtime::{ + traits::Block as BlockT, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, ExtrinsicInclusionMode, +}; +use sp_std::prelude::Vec; +use sp_version::RuntimeVersion; + +// Local module imports +use super::{ + AccountId, Balance, Block, Executive, InherentDataExt, Nonce, ParachainSystem, Runtime, + RuntimeCall, RuntimeGenesisConfig, SessionKeys, System, TransactionPayment, VERSION, +}; + +impl_runtime_apis! { + /// Allows the collator client to query its runtime to determine whether it should author a block + impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { + fn can_build_upon( + included_hash: ::Hash, + slot: cumulus_primitives_aura::Slot, + ) -> bool { + configs::ConsensusHook::can_build_upon(included_hash, slot) + } + } + + 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 { + Authorities::::get().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) -> ExtrinsicInclusionMode { + 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, configs::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::{BenchmarkError, Benchmarking, BenchmarkBatch}; + + 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 frame_support::traits::WhitelistedStorageKeys; + let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); + + 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) + } + } + + impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { + fn query_earliest_file_volunteer_block(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { + FileSystem::query_earliest_file_volunteer_block(bsp_id, file_key) + } + + fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { + FileSystem::query_bsp_confirm_chunks_to_prove_for_file(bsp_id, file_key) + } + } + + impl pallet_payment_streams_runtime_api::PaymentStreamsApi, Balance, AccountId> for Runtime { + fn get_users_with_debt_over_threshold(provider_id: &ProviderIdFor, threshold: Balance) -> Result, GetUsersWithDebtOverThresholdError> { + PaymentStreams::get_users_with_debt_over_threshold(provider_id, threshold) + } + fn get_users_of_payment_streams_of_provider(provider_id: &ProviderIdFor) -> Vec { + PaymentStreams::get_users_of_payment_streams_of_provider(provider_id) + } + } + + impl pallet_proofs_dealer_runtime_api::ProofsDealerApi, BlockNumber, KeyFor, RandomnessOutputFor, TrieRemoveMutation> for Runtime { + fn get_last_tick_provider_submitted_proof(provider_id: &ProviderIdFor) -> Result { + ProofsDealer::get_last_tick_provider_submitted_proof(provider_id) + } + + fn get_last_checkpoint_challenge_tick() -> BlockNumber { + ProofsDealer::get_last_checkpoint_challenge_tick() + } + + fn get_checkpoint_challenges( + tick: BlockNumber + ) -> Result, Option)>, GetCheckpointChallengesError> { + ProofsDealer::get_checkpoint_challenges(tick) + } + + fn get_challenge_seed(tick: BlockNumber) -> Result, GetChallengeSeedError> { + ProofsDealer::get_challenge_seed(tick) + } + + fn get_challenge_period(provider_id: &ProviderIdFor) -> Result { + ProofsDealer::get_challenge_period(provider_id) + } + + fn get_checkpoint_challenge_period() -> BlockNumber { + ProofsDealer::get_checkpoint_challenge_period() + } + + fn get_challenges_from_seed(seed: &RandomnessOutputFor, provider_id: &ProviderIdFor, count: u32) -> Vec> { + ProofsDealer::get_challenges_from_seed(seed, provider_id, count) + } + + fn get_forest_challenges_from_seed(seed: &RandomnessOutputFor, provider_id: &ProviderIdFor) -> Vec> { + ProofsDealer::get_forest_challenges_from_seed(seed, provider_id) + } + + fn get_current_tick() -> BlockNumber { + ProofsDealer::get_current_tick() + } + + fn get_next_deadline_tick(provider_id: &ProviderIdFor) -> Result { + ProofsDealer::get_next_deadline_tick(provider_id) + } + } + + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { + fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { + Providers::get_bsp_info(bsp_id) + } + + fn get_storage_provider_id(who: &AccountId) -> Option> { + Providers::get_storage_provider_id(who) + } + + fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result, QueryStorageProviderCapacityError> { + Providers::query_storage_provider_capacity(provider_id) + } + + fn query_available_storage_capacity(provider_id: &ProviderId) -> Result, QueryAvailableStorageCapacityError> { + Providers::query_available_storage_capacity(provider_id) + } + + fn query_earliest_change_capacity_block(provider_id: &BackupStorageProviderId) -> Result { + Providers::query_earliest_change_capacity_block(provider_id) + } + } +} diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index 0b187b20b..395b9eaee 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -58,6 +58,7 @@ use polkadot_runtime_common::{ }; use shp_file_metadata::ChunkId; use shp_traits::{CommitmentVerifier, MaybeDebug, TrieMutation, TrieProofDeltaApplier}; +use sp_api::StorageProof; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{Get, Hasher, H256}; use sp_runtime::{ @@ -260,6 +261,7 @@ impl pallet_message_queue::Config for Runtime { type HeapSize = sp_core::ConstU32<{ 64 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; + type IdleMaxServiceWeight = (); } impl cumulus_pallet_aura_ext::Config for Runtime {} @@ -301,7 +303,6 @@ impl pallet_aura::Config for Runtime { type DisabledValidators = (); type MaxAuthorities = ConstU32<100_000>; type AllowMultipleBlocksPerSlot = ConstBool; - #[cfg(feature = "experimental")] type SlotDuration = ConstU64; } @@ -378,11 +379,15 @@ impl pallet_nfts::Config for Runtime { /// Only callable after `set_validation_data` is called which forms this proof the same way fn relay_chain_state_proof() -> RelayChainStateProof { - let relay_storage_root = ParachainSystem::validation_data() - .expect("set in `set_validation_data`") - .relay_parent_storage_root; - let relay_chain_state = - ParachainSystem::relay_state_proof().expect("set in `set_validation_data`"); + // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 + let relay_storage_root = H256::zero(); + /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; */ + let root_vec: Vec> = vec![relay_storage_root.as_bytes().to_vec()]; + let relay_chain_state = StorageProof::new(root_vec); + /* let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() + .expect("set in `set_validation_data`"); */ RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") } @@ -393,8 +398,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_epoch_index() -> u64 { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - let _relay_storage_root = ParachainSystem::validation_data(); - let _relay_chain_state = ParachainSystem::relay_state_proof(); + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 + /* let _relay_storage_root = + cumulus_pallet_parachain_system::ValidationData::::get(); + let _relay_chain_state = + cumulus_pallet_parachain_system::RelayStateProof::::get(); */ const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } @@ -407,8 +415,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - let _relay_storage_root = ParachainSystem::validation_data(); - let _relay_chain_state = ParachainSystem::relay_state_proof(); + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 + /* let _relay_storage_root = + cumulus_pallet_parachain_system::ValidationData::::get(); + let _relay_chain_state = + cumulus_pallet_parachain_system::RelayStateProof::::get(); */ let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } @@ -421,8 +432,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - let _relay_storage_root = ParachainSystem::validation_data(); - let _relay_chain_state = ParachainSystem::relay_state_proof(); + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 + /* let _relay_storage_root = + cumulus_pallet_parachain_system::ValidationData::::get(); + let _relay_chain_state = + cumulus_pallet_parachain_system::RelayStateProof::::get(); */ let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } diff --git a/xcm-simulator/src/storagehub/configs/xcm_config.rs b/xcm-simulator/src/storagehub/configs/xcm_config.rs index ff184be1f..ec6bba882 100644 --- a/xcm-simulator/src/storagehub/configs/xcm_config.rs +++ b/xcm-simulator/src/storagehub/configs/xcm_config.rs @@ -182,6 +182,9 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); } /// Converts a local signed origin into an XCM location. diff --git a/xcm-simulator/src/storagehub/mod.rs b/xcm-simulator/src/storagehub/mod.rs index 360e875f5..1888455f9 100644 --- a/xcm-simulator/src/storagehub/mod.rs +++ b/xcm-simulator/src/storagehub/mod.rs @@ -1,11 +1,11 @@ #![cfg_attr(not(feature = "std"), no_std)] #![allow(dead_code)] +pub mod apis; pub mod configs; mod weights; use crate::mock_message_queue; use smallvec::smallvec; -use sp_api::impl_runtime_apis; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, traits::{BlakeTwo256, IdentifyAccount, Verify}, @@ -17,7 +17,6 @@ use sp_std::prelude::*; use sp_version::NativeVersion; use sp_version::RuntimeVersion; -use frame_support::genesis_builder_helper::{build_config, create_default_config}; use frame_support::{ construct_runtime, weights::{ @@ -26,13 +25,6 @@ use frame_support::{ }, }; pub use parachains_common::BlockNumber; -pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; -use sp_runtime::{ - traits::Block as BlockT, - transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, ExtrinsicInclusionMode, -}; pub use sp_runtime::{MultiAddress, Perbill}; use sp_std::prelude::Vec; @@ -157,7 +149,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { authoring_version: 1, spec_version: 1, impl_version: 0, - apis: RUNTIME_API_VERSIONS, + apis: apis::RUNTIME_API_VERSIONS, transaction_version: 1, state_version: 1, }; @@ -271,241 +263,6 @@ frame_benchmarking::define_benchmarks!( [cumulus_pallet_xcmp_queue, XcmpQueue] ); -// TODO: move this to an `apis` module. -impl_runtime_apis! { - /// Allows the collator client to query its runtime to determine whether it should author a block - impl cumulus_primitives_aura::AuraUnincludedSegmentApi for Runtime { - fn can_build_upon( - included_hash: ::Hash, - slot: cumulus_primitives_aura::Slot, - ) -> bool { - configs::ConsensusHook::can_build_upon(included_hash, slot) - } - } - - 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 sp_api::Core for Runtime { - fn version() -> RuntimeVersion { - VERSION - } - - fn execute_block(block: Block) { - Executive::execute_block(block) - } - - fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { - 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, configs::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::{BenchmarkError, Benchmarking, BenchmarkBatch}; - - 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 frame_support::traits::WhitelistedStorageKeys; - let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); - - 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/xcm-simulator/src/system_chain/xcm_config/mod.rs b/xcm-simulator/src/system_chain/xcm_config/mod.rs index 0cc3aac14..d96e9ecbf 100644 --- a/xcm-simulator/src/system_chain/xcm_config/mod.rs +++ b/xcm-simulator/src/system_chain/xcm_config/mod.rs @@ -57,4 +57,7 @@ impl xcm_executor::Config for XcmConfig { type SafeCallFilter = Everything; type Aliasers = Nothing; type TransactionalProcessor = FrameTransactionalProcessor; + type HrmpNewChannelOpenRequestHandler = (); + type HrmpChannelAcceptedHandler = (); + type HrmpChannelClosingHandler = (); } diff --git a/xcm-simulator/src/tests.rs b/xcm-simulator/src/tests.rs index 80a8ca58e..23188891b 100644 --- a/xcm-simulator/src/tests.rs +++ b/xcm-simulator/src/tests.rs @@ -15,6 +15,7 @@ use codec::Encode; use frame_support::dispatch::GetDispatchInfo; use frame_support::BoundedVec; use pallet_balances; +use pallet_file_system; use pallet_storage_providers::types::{MaxMultiAddressAmount, MultiAddress}; use shp_traits::{ReadBucketsInterface, ReadProvidersInterface}; use sp_core::H256; @@ -1319,7 +1320,10 @@ mod users { // We check that the storage request exists in StorageHub and volunteer Bob StorageHub::execute_with(|| { // Check that the storage request exists - assert!(storagehub::FileSystem::storage_requests(file_key.clone()).is_some()); + assert!( + pallet_file_system::StorageRequests::::get(file_key.clone()) + .is_some() + ); // Advance enough blocks to make sure Bob can volunteer according to the threshold storagehub::System::set_block_number(storagehub::System::block_number() + 1); // In the config we set to reach the maximum threshold after 1 block @@ -1389,7 +1393,7 @@ mod users { // We check now that there's a pending file deletion request for this file StorageHub::execute_with(|| { assert_eq!( - storagehub::FileSystem::pending_file_deletion_requests( + pallet_file_system::PendingFileDeletionRequests::::get( parachain_account_in_sh.clone() ) .len(), @@ -1401,7 +1405,7 @@ mod users { > = BoundedVec::new(); file_deletion_requests_vec.force_push((file_key.clone(), bucket_id.clone())); assert_eq!( - storagehub::FileSystem::pending_file_deletion_requests( + pallet_file_system::PendingFileDeletionRequests::::get( parachain_account_in_sh.clone() ), file_deletion_requests_vec @@ -1554,9 +1558,9 @@ mod users { ] .into(), ); - assert_ok!(parachain::PolkadotXcm::execute( + assert_ok!(parachain::PolkadotXcm::execute_blob( parachain::RuntimeOrigin::signed(CHARLIE.into()), - message.into(), + message.encode().try_into().unwrap(), Weight::MAX )); }); @@ -1692,7 +1696,10 @@ mod users { // We check that the storage request exists in StorageHub and volunteer Bob StorageHub::execute_with(|| { // Check that the storage request exists - assert!(storagehub::FileSystem::storage_requests(file_key.clone()).is_some()); + assert!( + pallet_file_system::StorageRequests::::get(file_key.clone()) + .is_some() + ); // Advance enough blocks to make sure Bob can volunteer according to the threshold storagehub::System::set_block_number(storagehub::System::block_number() + 1); // In the config we set to reach the maximum threshold after 1 block @@ -1773,7 +1780,7 @@ mod users { // We check now that there's a pending file deletion request for this file StorageHub::execute_with(|| { assert_eq!( - storagehub::FileSystem::pending_file_deletion_requests( + pallet_file_system::PendingFileDeletionRequests::::get( charlie_parachain_account_in_sh.clone() ) .len(), @@ -1785,7 +1792,7 @@ mod users { > = BoundedVec::new(); file_deletion_requests_vec.force_push((file_key.clone(), bucket_id.clone())); assert_eq!( - storagehub::FileSystem::pending_file_deletion_requests( + pallet_file_system::PendingFileDeletionRequests::::get( charlie_parachain_account_in_sh.clone() ), file_deletion_requests_vec From 3e4328d48d2535c7a717c4f0429e82a90433ac79 Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 27 Sep 2024 18:15:32 -0300 Subject: [PATCH 03/24] fix: :bug: add removed runtime api `get_worst_case_scenario_slashable_amount` --- runtime/src/apis.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index bbad3e01a..37f126fcb 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -346,6 +346,10 @@ impl_runtime_apis! { fn query_earliest_change_capacity_block(provider_id: &BackupStorageProviderId) -> Result { Providers::query_earliest_change_capacity_block(provider_id) + } + + fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option { + Providers::get_worst_case_scenario_slashable_amount(&provider_id).ok() } } } From 3605611fc1cd748ce1754f62d42e4a0801ed1e68 Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 27 Sep 2024 18:38:10 -0300 Subject: [PATCH 04/24] fix: :bug: add missing generic in storage providers runtime api --- Cargo.lock | 508 ++++++++++++--------------- runtime/src/apis.rs | 4 +- xcm-simulator/src/storagehub/apis.rs | 6 +- 3 files changed, 237 insertions(+), 281 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fa3a2eb15..51ead33b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,19 +23,13 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" dependencies = [ - "gimli 0.29.0", + "gimli 0.31.0", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -197,9 +191,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" [[package]] name = "approx" @@ -527,6 +521,20 @@ dependencies = [ "rayon", ] +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + [[package]] name = "ark-transcript" version = "0.0.2" @@ -567,9 +575,9 @@ checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -656,13 +664,13 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.0" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-lite 2.3.0", "slab", ] @@ -712,7 +720,7 @@ dependencies = [ "futures-lite 2.3.0", "parking", "polling 3.7.3", - "rustix 0.38.34", + "rustix 0.38.37", "slab", "tracing", "windows-sys 0.59.0", @@ -762,7 +770,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.34", + "rustix 0.38.37", "windows-sys 0.48.0", ] @@ -778,7 +786,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.34", + "rustix 0.38.37", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -792,9 +800,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", @@ -828,23 +836,23 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ - "addr2line 0.22.0", - "cc", + "addr2line 0.24.1", "cfg-if", "libc", - "miniz_oxide 0.7.4", - "object 0.36.3", + "miniz_oxide", + "object 0.36.4", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -978,7 +986,7 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.20", + "prettyplease 0.2.22", "proc-macro2", "quote", "regex", @@ -1086,7 +1094,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1097,7 +1105,7 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1110,7 +1118,7 @@ dependencies = [ "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.0", + "constant_time_eq 0.3.1", ] [[package]] @@ -1220,9 +1228,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] name = "byteorder" @@ -1232,9 +1240,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" [[package]] name = "bzip2-sys" @@ -1291,9 +1299,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.13" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" +checksum = "9540e661f81799159abee814118cc139a2004b3a3aa3ea37724a1b66530b90e0" dependencies = [ "jobserver", "libc", @@ -1433,9 +1441,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -1443,9 +1451,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -1456,9 +1464,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1550,7 +1558,7 @@ dependencies = [ [[package]] name = "common" version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" +source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" dependencies = [ "ark-ec", "ark-ff", @@ -1559,8 +1567,7 @@ dependencies = [ "ark-std", "fflonk", "getrandom_or_panic", - "merlin", - "rand_chacha 0.3.1", + "rand_core 0.6.4", ] [[package]] @@ -1625,9 +1632,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "constcat" @@ -1687,9 +1694,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -2213,7 +2220,7 @@ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -2559,9 +2566,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.126" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4eae4b7fc8dcb0032eb3b1beee46b38d371cdeaf2d0c64b9944f6f69ad7755" +checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" dependencies = [ "cc", "cxxbridge-flags", @@ -2571,9 +2578,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.126" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c822bf7fb755d97328d6c337120b6f843678178751cba33c9da25cf522272e0" +checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" dependencies = [ "cc", "codespan-reporting", @@ -2586,15 +2593,15 @@ dependencies = [ [[package]] name = "cxxbridge-flags" -version = "1.0.126" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719d6197dc016c88744aff3c0d0340a01ecce12e8939fc282e7c8f583ee64bc6" +checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" [[package]] name = "cxxbridge-macro" -version = "1.0.126" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35de3b547387863c8f82013c4f79f1c2162edee956383e4089e1d04c18c4f16c" +checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" dependencies = [ "proc-macro2", "quote", @@ -2622,42 +2629,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.75", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2668,7 +2640,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2786,7 +2758,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2828,7 +2800,7 @@ dependencies = [ "dsl_auto_type", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2837,7 +2809,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" dependencies = [ - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3011,7 +2983,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3294,7 +3266,7 @@ dependencies = [ "blake2 0.10.6", "file-guard", "fs-err", - "prettyplease 0.2.20", + "prettyplease 0.2.22", "proc-macro2", "quote", "syn 2.0.79", @@ -3323,9 +3295,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "fatality" @@ -3413,9 +3385,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", @@ -3459,13 +3431,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.32" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide 0.8.0", + "miniz_oxide", ] [[package]] @@ -3611,7 +3583,7 @@ version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -3622,7 +3594,7 @@ name = "frame-election-provider-solution-type" version = "13.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -3845,7 +3817,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3363df38464c47a73eb521a4f648bfcc7537a82d70347ef8af3f73b6d019e910" dependencies = [ "frame-support-procedural-tools-derive 11.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -3857,7 +3829,7 @@ version = "10.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -3986,7 +3958,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.34", + "rustix 0.38.37", "windows-sys 0.48.0", ] @@ -4066,7 +4038,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-core", "futures-io", "parking", @@ -4235,9 +4207,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" [[package]] name = "glob" @@ -4288,7 +4260,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -4561,9 +4533,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4699,9 +4671,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -4790,9 +4762,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "is-terminal" @@ -4807,9 +4779,9 @@ dependencies = [ [[package]] name = "is_executable" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" +checksum = "4ba3d8548b8b04dafdf2f4cc6f5e379db766d0a6d9aac233ad4c9a92ea892233" dependencies = [ "winapi", ] @@ -4897,7 +4869,7 @@ dependencies = [ "http", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.2", + "rustls-native-certs 0.7.3", "rustls-pki-types", "soketto", "thiserror", @@ -4960,7 +4932,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" dependencies = [ "heck 0.4.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -5114,9 +5086,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libloading" @@ -5535,7 +5507,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.6", ] [[package]] @@ -5605,9 +5577,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.19" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "pkg-config", @@ -5719,19 +5691,18 @@ dependencies = [ [[package]] name = "lz4" -version = "1.26.0" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" +checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" dependencies = [ - "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.10.0" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ "cc", "libc", @@ -5862,7 +5833,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.34", + "rustix 0.38.37", ] [[package]] @@ -5876,9 +5847,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -5930,15 +5901,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - [[package]] name = "miniz_oxide" version = "0.8.0" @@ -6491,9 +6453,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.3" +version = "0.36.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" dependencies = [ "memchr", ] @@ -6561,10 +6523,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ "expander 2.2.1", - "indexmap 2.4.0", + "indexmap 2.5.0", "itertools 0.11.0", "petgraph", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7886,7 +7848,7 @@ name = "pallet-staking-reward-curve" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -7955,10 +7917,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -8354,7 +8316,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -8374,9 +8336,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -8421,7 +8383,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall 0.5.6", "smallvec", "windows-targets 0.52.6", ] @@ -8491,9 +8453,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", "thiserror", @@ -8502,9 +8464,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0" dependencies = [ "pest", "pest_generator", @@ -8512,9 +8474,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e" dependencies = [ "pest", "pest_meta", @@ -8525,9 +8487,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f" dependencies = [ "once_cell", "pest", @@ -8541,7 +8503,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.5.0", ] [[package]] @@ -8607,7 +8569,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.0", + "fastrand 2.1.1", "futures-io", ] @@ -8623,9 +8585,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polkadot-approval-distribution" @@ -8806,7 +8768,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.4.0", + "indexmap 2.5.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -9877,7 +9839,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.4.0", + "indexmap 2.5.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -10010,7 +9972,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite 0.2.14", - "rustix 0.38.34", + "rustix 0.38.37", "tracing", "windows-sys 0.59.0", ] @@ -10040,9 +10002,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" [[package]] name = "postgres-protocol" @@ -10139,9 +10101,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", "syn 2.0.79", @@ -10197,11 +10159,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.1.0" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" dependencies = [ - "toml_edit 0.21.1", + "toml_edit 0.22.22", ] [[package]] @@ -10340,7 +10302,7 @@ dependencies = [ "multimap 0.10.0", "once_cell", "petgraph", - "prettyplease 0.2.20", + "prettyplease 0.2.22", "prost 0.12.6", "prost-types 0.12.6", "regex", @@ -10394,9 +10356,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" dependencies = [ "cc", ] @@ -10614,9 +10576,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b" dependencies = [ "bitflags 2.6.0", ] @@ -10788,18 +10750,18 @@ dependencies = [ [[package]] name = "ring" version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" +source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" dependencies = [ "ark-ec", "ark-ff", "ark-poly", "ark-serialize", "ark-std", + "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.7.6", "blake2 0.10.6", "common 0.1.0 (git+https://github.com/w3f/ring-proof)", "fflonk", - "merlin", ] [[package]] @@ -11025,9 +10987,9 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver 1.0.23", ] @@ -11071,9 +11033,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -11115,7 +11077,7 @@ dependencies = [ "log", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki 0.102.8", "subtle 2.6.1", "zeroize", ] @@ -11134,9 +11096,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", "rustls-pemfile 2.1.3", @@ -11166,9 +11128,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-webpki" @@ -11182,9 +11144,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.6" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -11329,7 +11291,7 @@ dependencies = [ "array-bytes 6.2.3", "docify", "log", - "memmap2 0.9.4", + "memmap2 0.9.5", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -11352,7 +11314,7 @@ name = "sc-chain-spec-derive" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -12379,7 +12341,7 @@ name = "sc-tracing-proc-macro" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -12463,7 +12425,7 @@ version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 1.0.109", @@ -12471,11 +12433,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -12622,9 +12584,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -12685,9 +12647,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", "memchr", @@ -12697,9 +12659,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -13090,8 +13052,8 @@ dependencies = [ "shc-indexer-db", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "storage-hub-runtime", "substrate-frame-rpc-system", "thiserror", @@ -13530,7 +13492,7 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -13545,7 +13507,7 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -14028,7 +13990,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -14162,7 +14124,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "proc-macro2", "quote", @@ -14192,7 +14154,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "environmental", "parity-scale-codec", @@ -14636,7 +14598,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -14679,7 +14641,7 @@ checksum = "cfaf6e85b2ec12a4b99cd6d8d57d083e30c94b7f1b0d8f93547121495aae6f0c" dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -14692,7 +14654,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10. dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -14705,7 +14667,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0b dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -14714,11 +14676,11 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -14887,7 +14849,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0b [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" [[package]] name = "sp-storage" @@ -14916,7 +14878,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "impl-serde", "parity-scale-codec", @@ -15003,7 +14965,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ "parity-scale-codec", "tracing", @@ -15225,8 +15187,9 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" dependencies = [ + "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -15320,9 +15283,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.47.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" +checksum = "43fce22ed1df64d04b262351c8f9d5c6da4f76f79f25ad15529792f893fad25d" dependencies = [ "Inflector", "num-format", @@ -16003,9 +15966,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", - "fastrand 2.1.0", + "fastrand 2.1.1", "once_cell", - "rustix 0.38.34", + "rustix 0.38.37", "windows-sys 0.59.0", ] @@ -16024,7 +15987,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.34", + "rustix 0.38.37", "windows-sys 0.48.0", ] @@ -16036,9 +15999,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] @@ -16065,9 +16028,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", @@ -16190,9 +16153,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -16214,7 +16177,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -16277,9 +16240,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite 0.2.14", @@ -16289,9 +16252,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -16319,7 +16282,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.20", + "toml_edit 0.22.22", ] [[package]] @@ -16337,33 +16300,22 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.18", + "winnow 0.6.20", ] [[package]] @@ -16471,7 +16423,7 @@ version = "5.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "expander 2.2.1", - "proc-macro-crate 3.1.0", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.79", @@ -16736,9 +16688,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" @@ -16757,15 +16709,15 @@ checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -17454,7 +17406,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.34", + "rustix 0.38.37", ] [[package]] @@ -17463,7 +17415,7 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ - "redox_syscall 0.5.3", + "redox_syscall 0.5.6", "wasite", "web-sys", ] @@ -17768,9 +17720,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index 37f126fcb..a056c6d7f 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -327,7 +327,7 @@ impl_runtime_apis! { } } - impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit, Balance> for Runtime { fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { Providers::get_bsp_info(bsp_id) } @@ -348,7 +348,7 @@ impl_runtime_apis! { Providers::query_earliest_change_capacity_block(provider_id) } - fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option { + fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option { Providers::get_worst_case_scenario_slashable_amount(&provider_id).ok() } } diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs index 1b1d7ef5e..a7d64fa35 100644 --- a/xcm-simulator/src/storagehub/apis.rs +++ b/xcm-simulator/src/storagehub/apis.rs @@ -327,7 +327,7 @@ impl_runtime_apis! { } } - impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit> for Runtime { + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit, Balance> for Runtime { fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { Providers::get_bsp_info(bsp_id) } @@ -347,5 +347,9 @@ impl_runtime_apis! { fn query_earliest_change_capacity_block(provider_id: &BackupStorageProviderId) -> Result { Providers::query_earliest_change_capacity_block(provider_id) } + + fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option { + Providers::get_worst_case_scenario_slashable_amount(&provider_id).ok() + } } } From 3659377f5d3957d53830c88ac7df5c1d9fd17f3b Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 27 Sep 2024 18:39:44 -0300 Subject: [PATCH 05/24] chore: :label: run typegen --- api-augment/dist/interfaces/lookup.js | 220 +++++++++-------- api-augment/dist/interfaces/lookup.js.map | 2 +- .../types/interfaces/augment-api-consts.d.ts | 30 ++- .../types/interfaces/augment-api-errors.d.ts | 9 + .../types/interfaces/augment-api-query.d.ts | 20 +- .../dist/types/interfaces/augment-api-tx.d.ts | 67 +++++- api-augment/dist/types/interfaces/lookup.d.ts | 196 ++++++++------- .../dist/types/interfaces/registry.d.ts | 32 +-- .../dist/types/interfaces/types-lookup.d.ts | 220 ++++++++--------- .../src/interfaces/augment-api-consts.ts | 30 ++- .../src/interfaces/augment-api-errors.ts | 9 + .../src/interfaces/augment-api-query.ts | 20 +- api-augment/src/interfaces/augment-api-tx.ts | 58 ++++- api-augment/src/interfaces/lookup.ts | 220 +++++++++-------- api-augment/src/interfaces/registry.ts | 32 +-- api-augment/src/interfaces/types-lookup.ts | 224 +++++++++--------- api-augment/storagehub.json | 2 +- 17 files changed, 777 insertions(+), 614 deletions(-) diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index 21e4a21b1..76d4808c8 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -2083,7 +2083,7 @@ export default { CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** * Lookup189: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth @@ -2101,9 +2101,9 @@ export default { totalBytes: "u32" }, /** - * Lookup196: polkadot_primitives::v6::UpgradeGoAhead + * Lookup196: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** @@ -2112,21 +2112,21 @@ export default { CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** - * Lookup198: polkadot_primitives::v6::PersistedValidationData + * Lookup198: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32" }, /** - * Lookup201: polkadot_primitives::v6::UpgradeRestriction + * Lookup201: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: ["Present"] }, /** @@ -2142,8 +2142,8 @@ export default { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>" + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" }, /** * Lookup205: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity @@ -2153,9 +2153,9 @@ export default { remainingSize: "u32" }, /** - * Lookup208: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup208: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", maxMessageSize: "u32", @@ -2164,9 +2164,9 @@ export default { mqcHead: "Option" }, /** - * Lookup209: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup209: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", maxUpwardQueueCount: "u32", @@ -2176,12 +2176,12 @@ export default { hrmpMaxMessageNumPerCandidate: "u32", validationUpgradeCooldown: "u32", validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV6AsyncBackingAsyncBackingParams" + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" }, /** - * Lookup210: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup210: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, @@ -2216,7 +2216,7 @@ export default { * Lookup219: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV6PersistedValidationData", + validationData: "PolkadotPrimitivesV7PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>" @@ -2511,13 +2511,9 @@ export default { /** * Lookup257: sp_consensus_aura::sr25519::app_sr25519::Public **/ - SpConsensusAuraSr25519AppSr25519Public: "SpCoreSr25519Public", + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup258: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: "[u8;32]", - /** - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup258: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2545,7 +2541,7 @@ export default { } }, /** - * Lookup260: pallet_xcm::pallet::Call + * Lookup259: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2609,11 +2605,19 @@ export default { claim_assets: { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" + }, + execute_blob: { + encodedMessage: "Bytes", + maxWeight: "SpWeightsWeightV2Weight" + }, + send_blob: { + dest: "XcmVersionedLocation", + encodedMessage: "Bytes" } } }, /** - * Lookup261: xcm::VersionedXcm + * Lookup260: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2625,11 +2629,11 @@ export default { } }, /** - * Lookup262: xcm::v2::Xcm + * Lookup261: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup264: xcm::v2::Instruction + * Lookup263: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2727,7 +2731,7 @@ export default { } }, /** - * Lookup265: xcm::v2::Response + * Lookup264: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2738,7 +2742,7 @@ export default { } }, /** - * Lookup268: xcm::v2::traits::Error + * Lookup267: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2771,7 +2775,7 @@ export default { } }, /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup268: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2780,7 +2784,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup269: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2792,13 +2796,13 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup270: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup272: xcm::v2::WeightLimit + * Lookup271: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2807,11 +2811,11 @@ export default { } }, /** - * Lookup273: xcm::v3::Xcm + * Lookup272: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup275: xcm::v3::Instruction + * Lookup274: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2953,7 +2957,7 @@ export default { } }, /** - * Lookup276: xcm::v3::Response + * Lookup275: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2966,7 +2970,7 @@ export default { } }, /** - * Lookup278: xcm::v3::PalletInfo + * Lookup277: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2977,7 +2981,7 @@ export default { patch: "Compact" }, /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup281: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -2985,7 +2989,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup282: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2994,7 +2998,7 @@ export default { } }, /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup283: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3012,7 +3016,7 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup284: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] @@ -3588,25 +3592,13 @@ export default { **/ SpRuntimeMultiSignature: { _enum: { - Ed25519: "SpCoreEd25519Signature", - Sr25519: "SpCoreSr25519Signature", - Ecdsa: "SpCoreEcdsaSignature" + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" } }, /** - * Lookup331: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: "[u8;64]", - /** - * Lookup333: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: "[u8;64]", - /** - * Lookup334: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: "[u8;65]", - /** - * Lookup336: pallet_nfts::types::PreSignedAttributes + * Lookup333: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3616,20 +3608,20 @@ export default { deadline: "u32" }, /** - * Lookup337: pallet_sudo::pallet::Error + * Lookup334: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup340: pallet_collator_selection::pallet::CandidateInfo + * Lookup337: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup342: pallet_collator_selection::pallet::Error + * Lookup339: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3653,17 +3645,17 @@ export default { ] }, /** - * Lookup346: sp_core::crypto::KeyTypeId + * Lookup343: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup347: pallet_session::pallet::Error + * Lookup344: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3673,13 +3665,13 @@ export default { lastIndex: "u16" }, /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState + * Lookup354: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup359: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3687,13 +3679,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup360: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup361: pallet_xcm::pallet::QueryStatus + * Lookup358: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3714,7 +3706,7 @@ export default { } }, /** - * Lookup365: xcm::VersionedResponse + * Lookup362: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3726,7 +3718,7 @@ export default { } }, /** - * Lookup371: pallet_xcm::pallet::VersionMigrationStage + * Lookup368: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3737,7 +3729,7 @@ export default { } }, /** - * Lookup374: xcm::VersionedAssetId + * Lookup371: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3749,7 +3741,7 @@ export default { } }, /** - * Lookup375: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3758,7 +3750,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup382: pallet_xcm::pallet::Error + * Lookup379: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3786,11 +3778,13 @@ export default { "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete" + "LocalExecutionIncomplete", + "UnableToDecode", + "XcmTooLarge" ] }, /** - * Lookup383: pallet_message_queue::BookState + * Lookup380: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3804,14 +3798,14 @@ export default { size_: "u64" }, /** - * Lookup385: pallet_message_queue::Neighbours + * Lookup382: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup387: pallet_message_queue::Page + * Lookup384: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3822,7 +3816,7 @@ export default { heap: "Bytes" }, /** - * Lookup389: pallet_message_queue::pallet::Error + * Lookup386: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3838,7 +3832,7 @@ export default { ] }, /** - * Lookup391: pallet_storage_providers::types::StorageProvider + * Lookup388: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3847,7 +3841,7 @@ export default { } }, /** - * Lookup392: pallet_storage_providers::types::BackupStorageProvider + * Lookup389: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3860,7 +3854,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup393: pallet_storage_providers::types::MainStorageProvider + * Lookup390: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3873,7 +3867,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup395: pallet_storage_providers::types::Bucket + * Lookup392: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3887,7 +3881,7 @@ export default { size_: "u64" }, /** - * Lookup398: pallet_storage_providers::pallet::Error + * Lookup395: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3921,7 +3915,7 @@ export default { ] }, /** - * Lookup399: pallet_file_system::types::StorageRequestMetadata + * Lookup396: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3941,19 +3935,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup404: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup401: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup413: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup410: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup414: pallet_file_system::pallet::Error + * Lookup411: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4018,7 +4012,7 @@ export default { ] }, /** - * Lookup420: pallet_proofs_dealer::pallet::Error + * Lookup417: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4047,7 +4041,7 @@ export default { ] }, /** - * Lookup423: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup420: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4056,7 +4050,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup424: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup421: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4065,14 +4059,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup425: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup422: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup426: pallet_payment_streams::pallet::Error + * Lookup423: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4095,7 +4089,7 @@ export default { ] }, /** - * Lookup427: pallet_bucket_nfts::pallet::Error + * Lookup424: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4106,7 +4100,7 @@ export default { ] }, /** - * Lookup428: pallet_nfts::types::CollectionDetails + * Lookup425: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4117,13 +4111,13 @@ export default { attributes: "u32" }, /** - * Lookup433: pallet_nfts::types::CollectionRole + * Lookup430: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup434: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup431: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4131,42 +4125,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup435: pallet_nfts::types::ItemDeposit + * Lookup432: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup440: pallet_nfts::types::CollectionMetadata + * Lookup437: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup441: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup438: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup442: pallet_nfts::types::ItemMetadataDeposit + * Lookup439: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup445: pallet_nfts::types::AttributeDeposit + * Lookup442: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup449: pallet_nfts::types::PendingSwap, Deadline> + * Lookup446: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4175,7 +4169,7 @@ export default { deadline: "u32" }, /** - * Lookup451: pallet_nfts::types::PalletFeature + * Lookup448: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4191,7 +4185,7 @@ export default { ] }, /** - * Lookup452: pallet_nfts::pallet::Error + * Lookup449: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4243,39 +4237,39 @@ export default { ] }, /** - * Lookup455: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup452: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup456: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup453: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup457: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup454: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup458: frame_system::extensions::check_genesis::CheckGenesis + * Lookup455: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup461: frame_system::extensions::check_nonce::CheckNonce + * Lookup458: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup462: frame_system::extensions::check_weight::CheckWeight + * Lookup459: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup463: pallet_transaction_payment::ChargeTransactionPayment + * Lookup460: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup464: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup461: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup465: storage_hub_runtime::Runtime + * Lookup462: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index 8bd4eabbd..035fec5ce 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/augment-api-consts.d.ts b/api-augment/dist/types/interfaces/augment-api-consts.d.ts index e5047d391..0ddc5244e 100644 --- a/api-augment/dist/types/interfaces/augment-api-consts.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-consts.d.ts @@ -13,6 +13,19 @@ import type { export type __AugmentedConst = AugmentedConst; declare module "@polkadot/api-base/types/consts" { interface AugmentedConsts { + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; balances: { /** * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! @@ -32,10 +45,14 @@ declare module "@polkadot/api-base/types/consts" { /** * The maximum number of locks that should exist on an account. * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` **/ maxLocks: u32 & AugmentedConst; /** * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` **/ maxReserves: u32 & AugmentedConst; /** @@ -113,6 +130,14 @@ declare module "@polkadot/api-base/types/consts" { * size is slightly lower than this as defined by [`MaxMessageLenOf`]. **/ heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; /** * The maximum number of stale pages (i.e. of overweight messages) allowed before culling * can happen. Once there are more stale pages than this, then historical pages may be @@ -121,10 +146,11 @@ declare module "@polkadot/api-base/types/consts" { maxStale: u32 & AugmentedConst; /** * The amount of weight (if any) which should be provided to the message queue for - * servicing enqueued items. + * servicing enqueued items `on_initialize`. * * This may be legitimately `None` in the case that you will call - * `ServiceQueues::service_queues` manually. + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. **/ serviceWeight: Option & AugmentedConst; /** diff --git a/api-augment/dist/types/interfaces/augment-api-errors.d.ts b/api-augment/dist/types/interfaces/augment-api-errors.d.ts index ebd29fd03..203e0ba99 100644 --- a/api-augment/dist/types/interfaces/augment-api-errors.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-errors.d.ts @@ -830,6 +830,10 @@ declare module "@polkadot/api-base/types/errors" { * Too many assets with different reserve locations have been attempted for transfer. **/ TooManyReserves: AugmentedError; + /** + * Could not decode XCM. + **/ + UnableToDecode: AugmentedError; /** * The desired destination was unreachable, generally because there is a no way of routing * to it. @@ -839,6 +843,11 @@ declare module "@polkadot/api-base/types/errors" { * The message's weight could not be determined. **/ UnweighableMessage: AugmentedError; + /** + * XCM encoded length is too large. + * Returned when an XCM encoded length is larger than `MaxXcmEncodedSize`. + **/ + XcmTooLarge: AugmentedError; /** * Generic error **/ diff --git a/api-augment/dist/types/interfaces/augment-api-query.d.ts b/api-augment/dist/types/interfaces/augment-api-query.d.ts index 9f8e66c23..ef41f5cce 100644 --- a/api-augment/dist/types/interfaces/augment-api-query.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-query.d.ts @@ -61,10 +61,10 @@ import type { PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV6AbridgedHostConfiguration, - PolkadotPrimitivesV6PersistedValidationData, - PolkadotPrimitivesV6UpgradeGoAhead, - PolkadotPrimitivesV6UpgradeRestriction, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, ShpTraitsTrieRemoveMutation, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, @@ -206,6 +206,8 @@ declare module "@polkadot/api-base/types/storage" { /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` **/ locks: AugmentedQuery< ApiType, @@ -215,6 +217,8 @@ declare module "@polkadot/api-base/types/storage" { QueryableStorageEntry; /** * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` **/ reserves: AugmentedQuery< ApiType, @@ -766,7 +770,7 @@ declare module "@polkadot/api-base/types/storage" { **/ hostConfiguration: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; @@ -912,7 +916,7 @@ declare module "@polkadot/api-base/types/storage" { **/ upgradeGoAhead: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; @@ -927,7 +931,7 @@ declare module "@polkadot/api-base/types/storage" { **/ upgradeRestrictionSignal: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; @@ -950,7 +954,7 @@ declare module "@polkadot/api-base/types/storage" { **/ validationData: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; diff --git a/api-augment/dist/types/interfaces/augment-api-tx.d.ts b/api-augment/dist/types/interfaces/augment-api-tx.d.ts index 8dc588c31..c520e8c3f 100644 --- a/api-augment/dist/types/interfaces/augment-api-tx.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-tx.d.ts @@ -288,7 +288,7 @@ declare module "@polkadot/api-base/types/submittable" { * * This will waive the transaction fee if at least all but 10% of the accounts needed to * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibililty of churn). + * possibility of churn). **/ upgradeAccounts: AugmentedSubmittable< ( @@ -2521,6 +2521,9 @@ declare module "@polkadot/api-base/types/submittable" { * No more than `max_weight` will be used in its attempted execution. If this is less than * the maximum amount of weight that the message could take to be executed, then no * execution attempt will be made. + * + * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob` + * instead. **/ execute: AugmentedSubmittable< ( @@ -2548,6 +2551,32 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedXcm, SpWeightsWeightV2Weight] >; + /** + * Execute an XCM from a local, signed, origin. + * + * An event is deposited indicating whether the message could be executed completely + * or only partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + * + * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. + **/ + executeBlob: AugmentedSubmittable< + ( + encodedMessage: Bytes | string | Uint8Array, + maxWeight: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [Bytes, SpWeightsWeightV2Weight] + >; /** * Set a safe XCM version (the version that XCM should be encoded with if the most recent * version a destination can accept is unknown). @@ -2660,7 +2689,7 @@ declare module "@polkadot/api-base/types/submittable" { * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the assets send may be + * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. @@ -2735,7 +2764,7 @@ declare module "@polkadot/api-base/types/submittable" { * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the assets send may be + * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. @@ -2882,6 +2911,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] >; + /** + * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead. + **/ send: AugmentedSubmittable< ( dest: @@ -2913,6 +2945,33 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm] >; + /** + * Send an XCM from a local, signed, origin. + * + * The destination, `dest`, will receive this message with a `DescendOrigin` instruction + * that makes the origin of the message be the origin on this system. + * + * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. + **/ + sendBlob: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + encodedMessage: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, Bytes] + >; /** * Teleport some assets from the local chain to some destination chain. * @@ -2985,7 +3044,7 @@ declare module "@polkadot/api-base/types/submittable" { * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the - * operation will fail and the assets sent may be at risk. + * operation will fail and the sent assets may be at risk. * * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable * to `dest`, no limitations imposed on `fees`. diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index 351c7a255..8e3ee6b21 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -2077,9 +2077,9 @@ declare const _default: { totalBytes: string; }; /** - * Lookup196: polkadot_primitives::v6::UpgradeGoAhead + * Lookup196: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: string[]; }; /** @@ -2091,18 +2091,18 @@ declare const _default: { consumedGoAheadSignal: string; }; /** - * Lookup198: polkadot_primitives::v6::PersistedValidationData + * Lookup198: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: string; relayParentNumber: string; relayParentStorageRoot: string; maxPovSize: string; }; /** - * Lookup201: polkadot_primitives::v6::UpgradeRestriction + * Lookup201: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: string[]; }; /** @@ -2128,9 +2128,9 @@ declare const _default: { remainingSize: string; }; /** - * Lookup208: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup208: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: string; maxTotalSize: string; maxMessageSize: string; @@ -2139,9 +2139,9 @@ declare const _default: { mqcHead: string; }; /** - * Lookup209: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup209: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: string; maxHeadDataSize: string; maxUpwardQueueCount: string; @@ -2154,9 +2154,9 @@ declare const _default: { asyncBackingParams: string; }; /** - * Lookup210: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup210: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: string; allowedAncestryLen: string; }; @@ -2466,11 +2466,7 @@ declare const _default: { **/ SpConsensusAuraSr25519AppSr25519Public: string; /** - * Lookup258: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: string; - /** - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup258: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2498,7 +2494,7 @@ declare const _default: { }; }; /** - * Lookup260: pallet_xcm::pallet::Call + * Lookup259: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2563,10 +2559,18 @@ declare const _default: { assets: string; beneficiary: string; }; + execute_blob: { + encodedMessage: string; + maxWeight: string; + }; + send_blob: { + dest: string; + encodedMessage: string; + }; }; }; /** - * Lookup261: xcm::VersionedXcm + * Lookup260: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2578,11 +2582,11 @@ declare const _default: { }; }; /** - * Lookup262: xcm::v2::Xcm + * Lookup261: xcm::v2::Xcm **/ XcmV2Xcm: string; /** - * Lookup264: xcm::v2::Instruction + * Lookup263: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2680,7 +2684,7 @@ declare const _default: { }; }; /** - * Lookup265: xcm::v2::Response + * Lookup264: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2691,7 +2695,7 @@ declare const _default: { }; }; /** - * Lookup268: xcm::v2::traits::Error + * Lookup267: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2724,7 +2728,7 @@ declare const _default: { }; }; /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup268: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2733,7 +2737,7 @@ declare const _default: { }; }; /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup269: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2745,13 +2749,13 @@ declare const _default: { }; }; /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup270: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup272: xcm::v2::WeightLimit + * Lookup271: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2760,11 +2764,11 @@ declare const _default: { }; }; /** - * Lookup273: xcm::v3::Xcm + * Lookup272: xcm::v3::Xcm **/ XcmV3Xcm: string; /** - * Lookup275: xcm::v3::Instruction + * Lookup274: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2906,7 +2910,7 @@ declare const _default: { }; }; /** - * Lookup276: xcm::v3::Response + * Lookup275: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2919,7 +2923,7 @@ declare const _default: { }; }; /** - * Lookup278: xcm::v3::PalletInfo + * Lookup277: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: string; @@ -2930,7 +2934,7 @@ declare const _default: { patch: string; }; /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup281: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: string; @@ -2938,7 +2942,7 @@ declare const _default: { maxWeight: string; }; /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup282: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2947,7 +2951,7 @@ declare const _default: { }; }; /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup283: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -2965,7 +2969,7 @@ declare const _default: { }; }; /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup284: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: string[]; @@ -3529,19 +3533,7 @@ declare const _default: { }; }; /** - * Lookup331: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: string; - /** - * Lookup333: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: string; - /** - * Lookup334: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: string; - /** - * Lookup336: pallet_nfts::types::PreSignedAttributes + * Lookup333: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3551,36 +3543,36 @@ declare const _default: { deadline: string; }; /** - * Lookup337: pallet_sudo::pallet::Error + * Lookup334: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup340: pallet_collator_selection::pallet::CandidateInfo + * Lookup337: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup342: pallet_collator_selection::pallet::Error + * Lookup339: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup346: sp_core::crypto::KeyTypeId + * Lookup343: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup347: pallet_session::pallet::Error + * Lookup344: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3590,13 +3582,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState + * Lookup354: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup359: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3604,13 +3596,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup360: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup361: pallet_xcm::pallet::QueryStatus + * Lookup358: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3631,7 +3623,7 @@ declare const _default: { }; }; /** - * Lookup365: xcm::VersionedResponse + * Lookup362: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3643,7 +3635,7 @@ declare const _default: { }; }; /** - * Lookup371: pallet_xcm::pallet::VersionMigrationStage + * Lookup368: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3654,7 +3646,7 @@ declare const _default: { }; }; /** - * Lookup374: xcm::VersionedAssetId + * Lookup371: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3666,7 +3658,7 @@ declare const _default: { }; }; /** - * Lookup375: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: string; @@ -3675,13 +3667,13 @@ declare const _default: { consumers: string; }; /** - * Lookup382: pallet_xcm::pallet::Error + * Lookup379: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: string[]; }; /** - * Lookup383: pallet_message_queue::BookState + * Lookup380: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3695,14 +3687,14 @@ declare const _default: { size_: string; }; /** - * Lookup385: pallet_message_queue::Neighbours + * Lookup382: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: string; next: string; }; /** - * Lookup387: pallet_message_queue::Page + * Lookup384: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: string; @@ -3713,13 +3705,13 @@ declare const _default: { heap: string; }; /** - * Lookup389: pallet_message_queue::pallet::Error + * Lookup386: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: string[]; }; /** - * Lookup391: pallet_storage_providers::types::StorageProvider + * Lookup388: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3728,7 +3720,7 @@ declare const _default: { }; }; /** - * Lookup392: pallet_storage_providers::types::BackupStorageProvider + * Lookup389: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: string; @@ -3741,7 +3733,7 @@ declare const _default: { reputationWeight: string; }; /** - * Lookup393: pallet_storage_providers::types::MainStorageProvider + * Lookup390: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: string; @@ -3754,7 +3746,7 @@ declare const _default: { paymentAccount: string; }; /** - * Lookup395: pallet_storage_providers::types::Bucket + * Lookup392: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3768,13 +3760,13 @@ declare const _default: { size_: string; }; /** - * Lookup398: pallet_storage_providers::pallet::Error + * Lookup395: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: string[]; }; /** - * Lookup399: pallet_file_system::types::StorageRequestMetadata + * Lookup396: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3794,31 +3786,31 @@ declare const _default: { bspsVolunteered: string; }; /** - * Lookup404: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup401: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: string; }; /** - * Lookup413: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup410: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: string; }; /** - * Lookup414: pallet_file_system::pallet::Error + * Lookup411: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: string[]; }; /** - * Lookup420: pallet_proofs_dealer::pallet::Error + * Lookup417: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: string[]; }; /** - * Lookup423: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup420: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: string; @@ -3827,7 +3819,7 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup424: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup421: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: string; @@ -3836,26 +3828,26 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup425: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup422: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: string; priceIndex: string; }; /** - * Lookup426: pallet_payment_streams::pallet::Error + * Lookup423: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: string[]; }; /** - * Lookup427: pallet_bucket_nfts::pallet::Error + * Lookup424: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: string[]; }; /** - * Lookup428: pallet_nfts::types::CollectionDetails + * Lookup425: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: string; @@ -3866,13 +3858,13 @@ declare const _default: { attributes: string; }; /** - * Lookup433: pallet_nfts::types::CollectionRole + * Lookup430: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: string[]; }; /** - * Lookup434: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup431: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: string; @@ -3880,42 +3872,42 @@ declare const _default: { deposit: string; }; /** - * Lookup435: pallet_nfts::types::ItemDeposit + * Lookup432: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: string; amount: string; }; /** - * Lookup440: pallet_nfts::types::CollectionMetadata + * Lookup437: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: string; data: string; }; /** - * Lookup441: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup438: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: string; data: string; }; /** - * Lookup442: pallet_nfts::types::ItemMetadataDeposit + * Lookup439: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: string; amount: string; }; /** - * Lookup445: pallet_nfts::types::AttributeDeposit + * Lookup442: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: string; amount: string; }; /** - * Lookup449: pallet_nfts::types::PendingSwap, Deadline> + * Lookup446: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: string; @@ -3924,51 +3916,51 @@ declare const _default: { deadline: string; }; /** - * Lookup451: pallet_nfts::types::PalletFeature + * Lookup448: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: string[]; }; /** - * Lookup452: pallet_nfts::pallet::Error + * Lookup449: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: string[]; }; /** - * Lookup455: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup452: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: string; /** - * Lookup456: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup453: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: string; /** - * Lookup457: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup454: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: string; /** - * Lookup458: frame_system::extensions::check_genesis::CheckGenesis + * Lookup455: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: string; /** - * Lookup461: frame_system::extensions::check_nonce::CheckNonce + * Lookup458: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: string; /** - * Lookup462: frame_system::extensions::check_weight::CheckWeight + * Lookup459: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: string; /** - * Lookup463: pallet_transaction_payment::ChargeTransactionPayment + * Lookup460: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: string; /** - * Lookup464: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup461: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup465: storage_hub_runtime::Runtime + * Lookup462: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/registry.d.ts b/api-augment/dist/types/interfaces/registry.d.ts index dbd2d7f45..2baef0021 100644 --- a/api-augment/dist/types/interfaces/registry.d.ts +++ b/api-augment/dist/types/interfaces/registry.d.ts @@ -145,12 +145,12 @@ import type { PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV6AbridgedHostConfiguration, - PolkadotPrimitivesV6AbridgedHrmpChannel, - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams, - PolkadotPrimitivesV6PersistedValidationData, - PolkadotPrimitivesV6UpgradeGoAhead, - PolkadotPrimitivesV6UpgradeRestriction, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7AbridgedHrmpChannel, + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, ShpFileKeyVerifierFileKeyProof, ShpFileMetadataFileMetadata, ShpFileMetadataFingerprint, @@ -158,10 +158,6 @@ import type { SpArithmeticArithmeticError, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, - SpCoreEcdsaSignature, - SpCoreEd25519Signature, - SpCoreSr25519Public, - SpCoreSr25519Signature, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, @@ -392,12 +388,12 @@ declare module "@polkadot/types/types/registry" { PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; - PolkadotPrimitivesV6AbridgedHostConfiguration: PolkadotPrimitivesV6AbridgedHostConfiguration; - PolkadotPrimitivesV6AbridgedHrmpChannel: PolkadotPrimitivesV6AbridgedHrmpChannel; - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; - PolkadotPrimitivesV6PersistedValidationData: PolkadotPrimitivesV6PersistedValidationData; - PolkadotPrimitivesV6UpgradeGoAhead: PolkadotPrimitivesV6UpgradeGoAhead; - PolkadotPrimitivesV6UpgradeRestriction: PolkadotPrimitivesV6UpgradeRestriction; + PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; + PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; + PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; + PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; @@ -405,10 +401,6 @@ declare module "@polkadot/types/types/registry" { SpArithmeticArithmeticError: SpArithmeticArithmeticError; SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; - SpCoreEcdsaSignature: SpCoreEcdsaSignature; - SpCoreEd25519Signature: SpCoreEd25519Signature; - SpCoreSr25519Public: SpCoreSr25519Public; - SpCoreSr25519Signature: SpCoreSr25519Signature; SpRuntimeDigest: SpRuntimeDigest; SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; SpRuntimeDispatchError: SpRuntimeDispatchError; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index c8c4cc0f0..593f9c303 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -2587,7 +2587,7 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (189) */ interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { @@ -2603,8 +2603,8 @@ declare module "@polkadot/types/lookup" { readonly msgCount: u32; readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV6UpgradeGoAhead (196) */ - interface PolkadotPrimitivesV6UpgradeGoAhead extends Enum { + /** @name PolkadotPrimitivesV7UpgradeGoAhead (196) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; @@ -2613,17 +2613,17 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV6PersistedValidationData (198) */ - interface PolkadotPrimitivesV6PersistedValidationData extends Struct { + /** @name PolkadotPrimitivesV7PersistedValidationData (198) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV6UpgradeRestriction (201) */ - interface PolkadotPrimitivesV6UpgradeRestriction extends Enum { + /** @name PolkadotPrimitivesV7UpgradeRestriction (201) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } @@ -2635,8 +2635,8 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; } /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (205) */ interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity @@ -2644,8 +2644,8 @@ declare module "@polkadot/types/lookup" { readonly remainingCount: u32; readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV6AbridgedHrmpChannel (208) */ - interface PolkadotPrimitivesV6AbridgedHrmpChannel extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (208) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; readonly maxMessageSize: u32; @@ -2653,8 +2653,8 @@ declare module "@polkadot/types/lookup" { readonly totalSize: u32; readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV6AbridgedHostConfiguration (209) */ - interface PolkadotPrimitivesV6AbridgedHostConfiguration extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (209) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; readonly maxUpwardQueueCount: u32; @@ -2664,10 +2664,10 @@ declare module "@polkadot/types/lookup" { readonly hrmpMaxMessageNumPerCandidate: u32; readonly validationUpgradeCooldown: u32; readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV6AsyncBackingAsyncBackingParams (210) */ - interface PolkadotPrimitivesV6AsyncBackingAsyncBackingParams extends Struct { + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (210) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } @@ -2703,7 +2703,7 @@ declare module "@polkadot/types/lookup" { } /** @name CumulusPrimitivesParachainInherentParachainInherentData (219) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV6PersistedValidationData; + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; @@ -2964,10 +2964,8 @@ declare module "@polkadot/types/lookup" { readonly aura: SpConsensusAuraSr25519AppSr25519Public; } /** @name SpConsensusAuraSr25519AppSr25519Public (257) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} - /** @name SpCoreSr25519Public (258) */ - interface SpCoreSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (259) */ + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} + /** @name CumulusPalletXcmpQueueCall (258) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -2990,7 +2988,7 @@ declare module "@polkadot/types/lookup" { | "UpdateDropThreshold" | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (260) */ + /** @name PalletXcmCall (259) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3066,6 +3064,16 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; + readonly isExecuteBlob: boolean; + readonly asExecuteBlob: { + readonly encodedMessage: Bytes; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSendBlob: boolean; + readonly asSendBlob: { + readonly dest: XcmVersionedLocation; + readonly encodedMessage: Bytes; + } & Struct; readonly type: | "Send" | "TeleportAssets" @@ -3079,9 +3087,11 @@ declare module "@polkadot/types/lookup" { | "LimitedTeleportAssets" | "ForceSuspension" | "TransferAssets" - | "ClaimAssets"; + | "ClaimAssets" + | "ExecuteBlob" + | "SendBlob"; } - /** @name XcmVersionedXcm (261) */ + /** @name XcmVersionedXcm (260) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3091,9 +3101,9 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Xcm; readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (262) */ + /** @name XcmV2Xcm (261) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (264) */ + /** @name XcmV2Instruction (263) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3240,7 +3250,7 @@ declare module "@polkadot/types/lookup" { | "SubscribeVersion" | "UnsubscribeVersion"; } - /** @name XcmV2Response (265) */ + /** @name XcmV2Response (264) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3251,7 +3261,7 @@ declare module "@polkadot/types/lookup" { readonly asVersion: u32; readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (268) */ + /** @name XcmV2TraitsError (267) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3309,7 +3319,7 @@ declare module "@polkadot/types/lookup" { | "Barrier" | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (269) */ + /** @name XcmV2MultiassetMultiAssetFilter (268) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3317,7 +3327,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV2MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (270) */ + /** @name XcmV2MultiassetWildMultiAsset (269) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3327,22 +3337,22 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (271) */ + /** @name XcmV2MultiassetWildFungibility (270) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (272) */ + /** @name XcmV2WeightLimit (271) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; readonly asLimited: Compact; readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (273) */ + /** @name XcmV3Xcm (272) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (275) */ + /** @name XcmV3Instruction (274) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3571,7 +3581,7 @@ declare module "@polkadot/types/lookup" { | "AliasOrigin" | "UnpaidExecution"; } - /** @name XcmV3Response (276) */ + /** @name XcmV3Response (275) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3592,7 +3602,7 @@ declare module "@polkadot/types/lookup" { | "PalletsInfo" | "DispatchResult"; } - /** @name XcmV3PalletInfo (278) */ + /** @name XcmV3PalletInfo (277) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3601,13 +3611,13 @@ declare module "@polkadot/types/lookup" { readonly minor: Compact; readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (282) */ + /** @name XcmV3QueryResponseInfo (281) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (283) */ + /** @name XcmV3MultiassetMultiAssetFilter (282) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3615,7 +3625,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV3MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (284) */ + /** @name XcmV3MultiassetWildMultiAsset (283) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3633,7 +3643,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (285) */ + /** @name XcmV3MultiassetWildFungibility (284) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; @@ -4299,20 +4309,14 @@ declare module "@polkadot/types/lookup" { /** @name SpRuntimeMultiSignature (330) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; - readonly asEd25519: SpCoreEd25519Signature; + readonly asEd25519: U8aFixed; readonly isSr25519: boolean; - readonly asSr25519: SpCoreSr25519Signature; + readonly asSr25519: U8aFixed; readonly isEcdsa: boolean; - readonly asEcdsa: SpCoreEcdsaSignature; + readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name SpCoreEd25519Signature (331) */ - interface SpCoreEd25519Signature extends U8aFixed {} - /** @name SpCoreSr25519Signature (333) */ - interface SpCoreSr25519Signature extends U8aFixed {} - /** @name SpCoreEcdsaSignature (334) */ - interface SpCoreEcdsaSignature extends U8aFixed {} - /** @name PalletNftsPreSignedAttributes (336) */ + /** @name PalletNftsPreSignedAttributes (333) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4320,17 +4324,17 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletSudoError (337) */ + /** @name PalletSudoError (334) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (340) */ + /** @name PalletCollatorSelectionCandidateInfo (337) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (342) */ + /** @name PalletCollatorSelectionError (339) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4368,9 +4372,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (346) */ + /** @name SpCoreCryptoKeyTypeId (343) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (347) */ + /** @name PalletSessionError (344) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4384,7 +4388,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4392,26 +4396,26 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (357) */ + /** @name CumulusPalletXcmpQueueOutboundState (354) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (359) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (356) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (360) */ + /** @name CumulusPalletXcmpQueueError (357) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (361) */ + /** @name PalletXcmQueryStatus (358) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4432,7 +4436,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (365) */ + /** @name XcmVersionedResponse (362) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4442,7 +4446,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (371) */ + /** @name PalletXcmVersionMigrationStage (368) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4455,7 +4459,7 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (374) */ + /** @name XcmVersionedAssetId (371) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4463,14 +4467,14 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4AssetAssetId; readonly type: "V3" | "V4"; } - /** @name PalletXcmRemoteLockedFungibleRecord (375) */ + /** @name PalletXcmRemoteLockedFungibleRecord (372) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; readonly locker: XcmVersionedLocation; readonly consumers: Vec>; } - /** @name PalletXcmError (382) */ + /** @name PalletXcmError (379) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4497,6 +4501,8 @@ declare module "@polkadot/types/lookup" { readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; + readonly isUnableToDecode: boolean; + readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4522,9 +4528,11 @@ declare module "@polkadot/types/lookup" { | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete"; + | "LocalExecutionIncomplete" + | "UnableToDecode" + | "XcmTooLarge"; } - /** @name PalletMessageQueueBookState (383) */ + /** @name PalletMessageQueueBookState (380) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4533,12 +4541,12 @@ declare module "@polkadot/types/lookup" { readonly messageCount: u64; readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (385) */ + /** @name PalletMessageQueueNeighbours (382) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (387) */ + /** @name PalletMessageQueuePage (384) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4547,7 +4555,7 @@ declare module "@polkadot/types/lookup" { readonly last: u32; readonly heap: Bytes; } - /** @name PalletMessageQueueError (389) */ + /** @name PalletMessageQueueError (386) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4569,7 +4577,7 @@ declare module "@polkadot/types/lookup" { | "QueuePaused" | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (391) */ + /** @name PalletStorageProvidersStorageProvider (388) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4577,7 +4585,7 @@ declare module "@polkadot/types/lookup" { readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (392) */ + /** @name PalletStorageProvidersBackupStorageProvider (389) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4588,7 +4596,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (393) */ + /** @name PalletStorageProvidersMainStorageProvider (390) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4599,7 +4607,7 @@ declare module "@polkadot/types/lookup" { readonly ownerAccount: AccountId32; readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (395) */ + /** @name PalletStorageProvidersBucket (392) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4608,7 +4616,7 @@ declare module "@polkadot/types/lookup" { readonly readAccessGroupId: Option; readonly size_: u64; } - /** @name PalletStorageProvidersError (398) */ + /** @name PalletStorageProvidersError (395) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4666,7 +4674,7 @@ declare module "@polkadot/types/lookup" { | "InvalidEncodedAccountId" | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (399) */ + /** @name PalletFileSystemStorageRequestMetadata (396) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4681,15 +4689,15 @@ declare module "@polkadot/types/lookup" { readonly bspsConfirmed: u32; readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (404) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (401) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (413) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (410) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (414) */ + /** @name PalletFileSystemError (411) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -4809,7 +4817,7 @@ declare module "@polkadot/types/lookup" { | "BspDataServersExceeded" | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (420) */ + /** @name PalletProofsDealerError (417) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -4857,26 +4865,26 @@ declare module "@polkadot/types/lookup" { | "FailedToUpdateProviderAfterKeyRemoval" | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (423) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (420) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (424) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (421) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (425) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (422) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (426) */ + /** @name PalletPaymentStreamsError (423) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -4912,7 +4920,7 @@ declare module "@polkadot/types/lookup" { | "UserNotFlaggedAsWithoutFunds" | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (427) */ + /** @name PalletBucketNftsError (424) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -4924,7 +4932,7 @@ declare module "@polkadot/types/lookup" { | "NoCorrespondingCollection" | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (428) */ + /** @name PalletNftsCollectionDetails (425) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -4933,52 +4941,52 @@ declare module "@polkadot/types/lookup" { readonly itemConfigs: u32; readonly attributes: u32; } - /** @name PalletNftsCollectionRole (433) */ + /** @name PalletNftsCollectionRole (430) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; readonly isAdmin: boolean; readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (434) */ + /** @name PalletNftsItemDetails (431) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (435) */ + /** @name PalletNftsItemDeposit (432) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (440) */ + /** @name PalletNftsCollectionMetadata (437) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (441) */ + /** @name PalletNftsItemMetadata (438) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (442) */ + /** @name PalletNftsItemMetadataDeposit (439) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (445) */ + /** @name PalletNftsAttributeDeposit (442) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (449) */ + /** @name PalletNftsPendingSwap (446) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; readonly price: Option; readonly deadline: u32; } - /** @name PalletNftsPalletFeature (451) */ + /** @name PalletNftsPalletFeature (448) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -4986,7 +4994,7 @@ declare module "@polkadot/types/lookup" { readonly isSwaps: boolean; readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (452) */ + /** @name PalletNftsError (449) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5080,22 +5088,22 @@ declare module "@polkadot/types/lookup" { | "CollectionNotEmpty" | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (455) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (452) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (456) */ + /** @name FrameSystemExtensionsCheckSpecVersion (453) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (457) */ + /** @name FrameSystemExtensionsCheckTxVersion (454) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (458) */ + /** @name FrameSystemExtensionsCheckGenesis (455) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (461) */ + /** @name FrameSystemExtensionsCheckNonce (458) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (462) */ + /** @name FrameSystemExtensionsCheckWeight (459) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (463) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (460) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (464) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (461) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (465) */ + /** @name StorageHubRuntimeRuntime (462) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/src/interfaces/augment-api-consts.ts b/api-augment/src/interfaces/augment-api-consts.ts index 419864676..bc4f7bbbe 100644 --- a/api-augment/src/interfaces/augment-api-consts.ts +++ b/api-augment/src/interfaces/augment-api-consts.ts @@ -21,6 +21,19 @@ export type __AugmentedConst = AugmentedConst declare module "@polkadot/api-base/types/consts" { interface AugmentedConsts { + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; balances: { /** * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! @@ -40,10 +53,14 @@ declare module "@polkadot/api-base/types/consts" { /** * The maximum number of locks that should exist on an account. * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` **/ maxLocks: u32 & AugmentedConst; /** * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` **/ maxReserves: u32 & AugmentedConst; /** @@ -121,6 +138,14 @@ declare module "@polkadot/api-base/types/consts" { * size is slightly lower than this as defined by [`MaxMessageLenOf`]. **/ heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; /** * The maximum number of stale pages (i.e. of overweight messages) allowed before culling * can happen. Once there are more stale pages than this, then historical pages may be @@ -129,10 +154,11 @@ declare module "@polkadot/api-base/types/consts" { maxStale: u32 & AugmentedConst; /** * The amount of weight (if any) which should be provided to the message queue for - * servicing enqueued items. + * servicing enqueued items `on_initialize`. * * This may be legitimately `None` in the case that you will call - * `ServiceQueues::service_queues` manually. + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. **/ serviceWeight: Option & AugmentedConst; /** diff --git a/api-augment/src/interfaces/augment-api-errors.ts b/api-augment/src/interfaces/augment-api-errors.ts index cfbaca59f..828821816 100644 --- a/api-augment/src/interfaces/augment-api-errors.ts +++ b/api-augment/src/interfaces/augment-api-errors.ts @@ -838,6 +838,10 @@ declare module "@polkadot/api-base/types/errors" { * Too many assets with different reserve locations have been attempted for transfer. **/ TooManyReserves: AugmentedError; + /** + * Could not decode XCM. + **/ + UnableToDecode: AugmentedError; /** * The desired destination was unreachable, generally because there is a no way of routing * to it. @@ -847,6 +851,11 @@ declare module "@polkadot/api-base/types/errors" { * The message's weight could not be determined. **/ UnweighableMessage: AugmentedError; + /** + * XCM encoded length is too large. + * Returned when an XCM encoded length is larger than `MaxXcmEncodedSize`. + **/ + XcmTooLarge: AugmentedError; /** * Generic error **/ diff --git a/api-augment/src/interfaces/augment-api-query.ts b/api-augment/src/interfaces/augment-api-query.ts index 12379981c..824b6fe7e 100644 --- a/api-augment/src/interfaces/augment-api-query.ts +++ b/api-augment/src/interfaces/augment-api-query.ts @@ -67,10 +67,10 @@ import type { PalletXcmRemoteLockedFungibleRecord, PalletXcmVersionMigrationStage, PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV6AbridgedHostConfiguration, - PolkadotPrimitivesV6PersistedValidationData, - PolkadotPrimitivesV6UpgradeGoAhead, - PolkadotPrimitivesV6UpgradeRestriction, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, ShpTraitsTrieRemoveMutation, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, @@ -214,6 +214,8 @@ declare module "@polkadot/api-base/types/storage" { /** * Any liquidity locks on some account balances. * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` **/ locks: AugmentedQuery< ApiType, @@ -223,6 +225,8 @@ declare module "@polkadot/api-base/types/storage" { QueryableStorageEntry; /** * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` **/ reserves: AugmentedQuery< ApiType, @@ -754,7 +758,7 @@ declare module "@polkadot/api-base/types/storage" { **/ hostConfiguration: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; @@ -900,7 +904,7 @@ declare module "@polkadot/api-base/types/storage" { **/ upgradeGoAhead: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; @@ -915,7 +919,7 @@ declare module "@polkadot/api-base/types/storage" { **/ upgradeRestrictionSignal: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; @@ -938,7 +942,7 @@ declare module "@polkadot/api-base/types/storage" { **/ validationData: AugmentedQuery< ApiType, - () => Observable>, + () => Observable>, [] > & QueryableStorageEntry; diff --git a/api-augment/src/interfaces/augment-api-tx.ts b/api-augment/src/interfaces/augment-api-tx.ts index 70e017d29..86a2636a5 100644 --- a/api-augment/src/interfaces/augment-api-tx.ts +++ b/api-augment/src/interfaces/augment-api-tx.ts @@ -226,7 +226,7 @@ declare module "@polkadot/api-base/types/submittable" { * * This will waive the transaction fee if at least all but 10% of the accounts needed to * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibililty of churn). + * possibility of churn). **/ upgradeAccounts: AugmentedSubmittable< ( @@ -2168,6 +2168,9 @@ declare module "@polkadot/api-base/types/submittable" { * No more than `max_weight` will be used in its attempted execution. If this is less than * the maximum amount of weight that the message could take to be executed, then no * execution attempt will be made. + * + * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob` + * instead. **/ execute: AugmentedSubmittable< ( @@ -2180,6 +2183,29 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedXcm, SpWeightsWeightV2Weight] >; + /** + * Execute an XCM from a local, signed, origin. + * + * An event is deposited indicating whether the message could be executed completely + * or only partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + * + * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. + **/ + executeBlob: AugmentedSubmittable< + ( + encodedMessage: Bytes | string | Uint8Array, + maxWeight: + | SpWeightsWeightV2Weight + | { refTime?: any; proofSize?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [Bytes, SpWeightsWeightV2Weight] + >; /** * Set a safe XCM version (the version that XCM should be encoded with if the most recent * version a destination can accept is unknown). @@ -2273,7 +2299,7 @@ declare module "@polkadot/api-base/types/submittable" { * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the assets send may be + * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. @@ -2326,7 +2352,7 @@ declare module "@polkadot/api-base/types/submittable" { * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the assets send may be + * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. @@ -2433,6 +2459,9 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] >; + /** + * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead. + **/ send: AugmentedSubmittable< ( dest: @@ -2446,6 +2475,27 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm] >; + /** + * Send an XCM from a local, signed, origin. + * + * The destination, `dest`, will receive this message with a `DescendOrigin` instruction + * that makes the origin of the message be the origin on this system. + * + * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. + **/ + sendBlob: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + encodedMessage: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, Bytes] + >; /** * Teleport some assets from the local chain to some destination chain. * @@ -2500,7 +2550,7 @@ declare module "@polkadot/api-base/types/submittable" { * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the - * operation will fail and the assets sent may be at risk. + * operation will fail and the sent assets may be at risk. * * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable * to `dest`, no limitations imposed on `fees`. diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index 4df4f738b..5e214c952 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -2085,7 +2085,7 @@ export default { CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** * Lookup189: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth @@ -2103,9 +2103,9 @@ export default { totalBytes: "u32" }, /** - * Lookup196: polkadot_primitives::v6::UpgradeGoAhead + * Lookup196: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** @@ -2114,21 +2114,21 @@ export default { CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** - * Lookup198: polkadot_primitives::v6::PersistedValidationData + * Lookup198: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32" }, /** - * Lookup201: polkadot_primitives::v6::UpgradeRestriction + * Lookup201: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: ["Present"] }, /** @@ -2144,8 +2144,8 @@ export default { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>" + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" }, /** * Lookup205: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity @@ -2155,9 +2155,9 @@ export default { remainingSize: "u32" }, /** - * Lookup208: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup208: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", maxMessageSize: "u32", @@ -2166,9 +2166,9 @@ export default { mqcHead: "Option" }, /** - * Lookup209: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup209: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", maxUpwardQueueCount: "u32", @@ -2178,12 +2178,12 @@ export default { hrmpMaxMessageNumPerCandidate: "u32", validationUpgradeCooldown: "u32", validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV6AsyncBackingAsyncBackingParams" + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" }, /** - * Lookup210: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup210: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, @@ -2218,7 +2218,7 @@ export default { * Lookup219: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV6PersistedValidationData", + validationData: "PolkadotPrimitivesV7PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>" @@ -2513,13 +2513,9 @@ export default { /** * Lookup257: sp_consensus_aura::sr25519::app_sr25519::Public **/ - SpConsensusAuraSr25519AppSr25519Public: "SpCoreSr25519Public", + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup258: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: "[u8;32]", - /** - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup258: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2547,7 +2543,7 @@ export default { } }, /** - * Lookup260: pallet_xcm::pallet::Call + * Lookup259: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2611,11 +2607,19 @@ export default { claim_assets: { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" + }, + execute_blob: { + encodedMessage: "Bytes", + maxWeight: "SpWeightsWeightV2Weight" + }, + send_blob: { + dest: "XcmVersionedLocation", + encodedMessage: "Bytes" } } }, /** - * Lookup261: xcm::VersionedXcm + * Lookup260: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2627,11 +2631,11 @@ export default { } }, /** - * Lookup262: xcm::v2::Xcm + * Lookup261: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup264: xcm::v2::Instruction + * Lookup263: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2729,7 +2733,7 @@ export default { } }, /** - * Lookup265: xcm::v2::Response + * Lookup264: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2740,7 +2744,7 @@ export default { } }, /** - * Lookup268: xcm::v2::traits::Error + * Lookup267: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2773,7 +2777,7 @@ export default { } }, /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup268: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2782,7 +2786,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup269: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2794,13 +2798,13 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup270: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup272: xcm::v2::WeightLimit + * Lookup271: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2809,11 +2813,11 @@ export default { } }, /** - * Lookup273: xcm::v3::Xcm + * Lookup272: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup275: xcm::v3::Instruction + * Lookup274: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2955,7 +2959,7 @@ export default { } }, /** - * Lookup276: xcm::v3::Response + * Lookup275: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2968,7 +2972,7 @@ export default { } }, /** - * Lookup278: xcm::v3::PalletInfo + * Lookup277: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2979,7 +2983,7 @@ export default { patch: "Compact" }, /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup281: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -2987,7 +2991,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup282: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2996,7 +3000,7 @@ export default { } }, /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup283: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3014,7 +3018,7 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup284: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] @@ -3590,25 +3594,13 @@ export default { **/ SpRuntimeMultiSignature: { _enum: { - Ed25519: "SpCoreEd25519Signature", - Sr25519: "SpCoreSr25519Signature", - Ecdsa: "SpCoreEcdsaSignature" + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" } }, /** - * Lookup331: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: "[u8;64]", - /** - * Lookup333: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: "[u8;64]", - /** - * Lookup334: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: "[u8;65]", - /** - * Lookup336: pallet_nfts::types::PreSignedAttributes + * Lookup333: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3618,20 +3610,20 @@ export default { deadline: "u32" }, /** - * Lookup337: pallet_sudo::pallet::Error + * Lookup334: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup340: pallet_collator_selection::pallet::CandidateInfo + * Lookup337: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup342: pallet_collator_selection::pallet::Error + * Lookup339: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3655,17 +3647,17 @@ export default { ] }, /** - * Lookup346: sp_core::crypto::KeyTypeId + * Lookup343: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup347: pallet_session::pallet::Error + * Lookup344: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3675,13 +3667,13 @@ export default { lastIndex: "u16" }, /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState + * Lookup354: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup359: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3689,13 +3681,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup360: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup361: pallet_xcm::pallet::QueryStatus + * Lookup358: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3716,7 +3708,7 @@ export default { } }, /** - * Lookup365: xcm::VersionedResponse + * Lookup362: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3728,7 +3720,7 @@ export default { } }, /** - * Lookup371: pallet_xcm::pallet::VersionMigrationStage + * Lookup368: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3739,7 +3731,7 @@ export default { } }, /** - * Lookup374: xcm::VersionedAssetId + * Lookup371: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3751,7 +3743,7 @@ export default { } }, /** - * Lookup375: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3760,7 +3752,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup382: pallet_xcm::pallet::Error + * Lookup379: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3788,11 +3780,13 @@ export default { "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete" + "LocalExecutionIncomplete", + "UnableToDecode", + "XcmTooLarge" ] }, /** - * Lookup383: pallet_message_queue::BookState + * Lookup380: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3806,14 +3800,14 @@ export default { size_: "u64" }, /** - * Lookup385: pallet_message_queue::Neighbours + * Lookup382: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup387: pallet_message_queue::Page + * Lookup384: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3824,7 +3818,7 @@ export default { heap: "Bytes" }, /** - * Lookup389: pallet_message_queue::pallet::Error + * Lookup386: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3840,7 +3834,7 @@ export default { ] }, /** - * Lookup391: pallet_storage_providers::types::StorageProvider + * Lookup388: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3849,7 +3843,7 @@ export default { } }, /** - * Lookup392: pallet_storage_providers::types::BackupStorageProvider + * Lookup389: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3862,7 +3856,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup393: pallet_storage_providers::types::MainStorageProvider + * Lookup390: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3875,7 +3869,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup395: pallet_storage_providers::types::Bucket + * Lookup392: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3889,7 +3883,7 @@ export default { size_: "u64" }, /** - * Lookup398: pallet_storage_providers::pallet::Error + * Lookup395: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3923,7 +3917,7 @@ export default { ] }, /** - * Lookup399: pallet_file_system::types::StorageRequestMetadata + * Lookup396: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3943,19 +3937,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup404: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup401: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup413: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup410: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup414: pallet_file_system::pallet::Error + * Lookup411: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4020,7 +4014,7 @@ export default { ] }, /** - * Lookup420: pallet_proofs_dealer::pallet::Error + * Lookup417: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4049,7 +4043,7 @@ export default { ] }, /** - * Lookup423: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup420: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4058,7 +4052,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup424: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup421: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4067,14 +4061,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup425: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup422: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup426: pallet_payment_streams::pallet::Error + * Lookup423: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4097,7 +4091,7 @@ export default { ] }, /** - * Lookup427: pallet_bucket_nfts::pallet::Error + * Lookup424: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4108,7 +4102,7 @@ export default { ] }, /** - * Lookup428: pallet_nfts::types::CollectionDetails + * Lookup425: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4119,13 +4113,13 @@ export default { attributes: "u32" }, /** - * Lookup433: pallet_nfts::types::CollectionRole + * Lookup430: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup434: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup431: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4133,42 +4127,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup435: pallet_nfts::types::ItemDeposit + * Lookup432: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup440: pallet_nfts::types::CollectionMetadata + * Lookup437: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup441: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup438: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup442: pallet_nfts::types::ItemMetadataDeposit + * Lookup439: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup445: pallet_nfts::types::AttributeDeposit + * Lookup442: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup449: pallet_nfts::types::PendingSwap, Deadline> + * Lookup446: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4177,7 +4171,7 @@ export default { deadline: "u32" }, /** - * Lookup451: pallet_nfts::types::PalletFeature + * Lookup448: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4193,7 +4187,7 @@ export default { ] }, /** - * Lookup452: pallet_nfts::pallet::Error + * Lookup449: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4245,39 +4239,39 @@ export default { ] }, /** - * Lookup455: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup452: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup456: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup453: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup457: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup454: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup458: frame_system::extensions::check_genesis::CheckGenesis + * Lookup455: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup461: frame_system::extensions::check_nonce::CheckNonce + * Lookup458: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup462: frame_system::extensions::check_weight::CheckWeight + * Lookup459: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup463: pallet_transaction_payment::ChargeTransactionPayment + * Lookup460: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup464: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup461: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup465: storage_hub_runtime::Runtime + * Lookup462: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/registry.ts b/api-augment/src/interfaces/registry.ts index 04e956ce2..0007bf6ee 100644 --- a/api-augment/src/interfaces/registry.ts +++ b/api-augment/src/interfaces/registry.ts @@ -151,12 +151,12 @@ import type { PolkadotCorePrimitivesInboundDownwardMessage, PolkadotCorePrimitivesInboundHrmpMessage, PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV6AbridgedHostConfiguration, - PolkadotPrimitivesV6AbridgedHrmpChannel, - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams, - PolkadotPrimitivesV6PersistedValidationData, - PolkadotPrimitivesV6UpgradeGoAhead, - PolkadotPrimitivesV6UpgradeRestriction, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7AbridgedHrmpChannel, + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, ShpFileKeyVerifierFileKeyProof, ShpFileMetadataFileMetadata, ShpFileMetadataFingerprint, @@ -164,10 +164,6 @@ import type { SpArithmeticArithmeticError, SpConsensusAuraSr25519AppSr25519Public, SpCoreCryptoKeyTypeId, - SpCoreEcdsaSignature, - SpCoreEd25519Signature, - SpCoreSr25519Public, - SpCoreSr25519Signature, SpRuntimeDigest, SpRuntimeDigestDigestItem, SpRuntimeDispatchError, @@ -399,12 +395,12 @@ declare module "@polkadot/types/types/registry" { PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; - PolkadotPrimitivesV6AbridgedHostConfiguration: PolkadotPrimitivesV6AbridgedHostConfiguration; - PolkadotPrimitivesV6AbridgedHrmpChannel: PolkadotPrimitivesV6AbridgedHrmpChannel; - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; - PolkadotPrimitivesV6PersistedValidationData: PolkadotPrimitivesV6PersistedValidationData; - PolkadotPrimitivesV6UpgradeGoAhead: PolkadotPrimitivesV6UpgradeGoAhead; - PolkadotPrimitivesV6UpgradeRestriction: PolkadotPrimitivesV6UpgradeRestriction; + PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; + PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; + PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; + PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; @@ -412,10 +408,6 @@ declare module "@polkadot/types/types/registry" { SpArithmeticArithmeticError: SpArithmeticArithmeticError; SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; - SpCoreEcdsaSignature: SpCoreEcdsaSignature; - SpCoreEd25519Signature: SpCoreEd25519Signature; - SpCoreSr25519Public: SpCoreSr25519Public; - SpCoreSr25519Signature: SpCoreSr25519Signature; SpRuntimeDigest: SpRuntimeDigest; SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; SpRuntimeDispatchError: SpRuntimeDispatchError; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index 65c380a49..b562abafa 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -2701,7 +2701,7 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (189) */ @@ -2720,8 +2720,8 @@ declare module "@polkadot/types/lookup" { readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV6UpgradeGoAhead (196) */ - interface PolkadotPrimitivesV6UpgradeGoAhead extends Enum { + /** @name PolkadotPrimitivesV7UpgradeGoAhead (196) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; @@ -2731,19 +2731,19 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV6PersistedValidationData (198) */ - interface PolkadotPrimitivesV6PersistedValidationData extends Struct { + /** @name PolkadotPrimitivesV7PersistedValidationData (198) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV6UpgradeRestriction (201) */ - interface PolkadotPrimitivesV6UpgradeRestriction extends Enum { + /** @name PolkadotPrimitivesV7UpgradeRestriction (201) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } @@ -2757,8 +2757,8 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; } /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (205) */ @@ -2768,8 +2768,8 @@ declare module "@polkadot/types/lookup" { readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV6AbridgedHrmpChannel (208) */ - interface PolkadotPrimitivesV6AbridgedHrmpChannel extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (208) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; readonly maxMessageSize: u32; @@ -2778,8 +2778,8 @@ declare module "@polkadot/types/lookup" { readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV6AbridgedHostConfiguration (209) */ - interface PolkadotPrimitivesV6AbridgedHostConfiguration extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (209) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; readonly maxUpwardQueueCount: u32; @@ -2789,11 +2789,11 @@ declare module "@polkadot/types/lookup" { readonly hrmpMaxMessageNumPerCandidate: u32; readonly validationUpgradeCooldown: u32; readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV6AsyncBackingAsyncBackingParams (210) */ - interface PolkadotPrimitivesV6AsyncBackingAsyncBackingParams extends Struct { + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (210) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } @@ -2832,7 +2832,7 @@ declare module "@polkadot/types/lookup" { /** @name CumulusPrimitivesParachainInherentParachainInherentData (219) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV6PersistedValidationData; + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; @@ -3114,12 +3114,9 @@ declare module "@polkadot/types/lookup" { } /** @name SpConsensusAuraSr25519AppSr25519Public (257) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name SpCoreSr25519Public (258) */ - interface SpCoreSr25519Public extends U8aFixed {} - - /** @name CumulusPalletXcmpQueueCall (259) */ + /** @name CumulusPalletXcmpQueueCall (258) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -3143,7 +3140,7 @@ declare module "@polkadot/types/lookup" { | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (260) */ + /** @name PalletXcmCall (259) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3219,6 +3216,16 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; + readonly isExecuteBlob: boolean; + readonly asExecuteBlob: { + readonly encodedMessage: Bytes; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSendBlob: boolean; + readonly asSendBlob: { + readonly dest: XcmVersionedLocation; + readonly encodedMessage: Bytes; + } & Struct; readonly type: | "Send" | "TeleportAssets" @@ -3232,10 +3239,12 @@ declare module "@polkadot/types/lookup" { | "LimitedTeleportAssets" | "ForceSuspension" | "TransferAssets" - | "ClaimAssets"; + | "ClaimAssets" + | "ExecuteBlob" + | "SendBlob"; } - /** @name XcmVersionedXcm (261) */ + /** @name XcmVersionedXcm (260) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3246,10 +3255,10 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (262) */ + /** @name XcmV2Xcm (261) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (264) */ + /** @name XcmV2Instruction (263) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3397,7 +3406,7 @@ declare module "@polkadot/types/lookup" { | "UnsubscribeVersion"; } - /** @name XcmV2Response (265) */ + /** @name XcmV2Response (264) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3409,7 +3418,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (268) */ + /** @name XcmV2TraitsError (267) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3468,7 +3477,7 @@ declare module "@polkadot/types/lookup" { | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (269) */ + /** @name XcmV2MultiassetMultiAssetFilter (268) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3477,7 +3486,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (270) */ + /** @name XcmV2MultiassetWildMultiAsset (269) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3488,14 +3497,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (271) */ + /** @name XcmV2MultiassetWildFungibility (270) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (272) */ + /** @name XcmV2WeightLimit (271) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; @@ -3503,10 +3512,10 @@ declare module "@polkadot/types/lookup" { readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (273) */ + /** @name XcmV3Xcm (272) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (275) */ + /** @name XcmV3Instruction (274) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3736,7 +3745,7 @@ declare module "@polkadot/types/lookup" { | "UnpaidExecution"; } - /** @name XcmV3Response (276) */ + /** @name XcmV3Response (275) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3758,7 +3767,7 @@ declare module "@polkadot/types/lookup" { | "DispatchResult"; } - /** @name XcmV3PalletInfo (278) */ + /** @name XcmV3PalletInfo (277) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3768,14 +3777,14 @@ declare module "@polkadot/types/lookup" { readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (282) */ + /** @name XcmV3QueryResponseInfo (281) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (283) */ + /** @name XcmV3MultiassetMultiAssetFilter (282) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3784,7 +3793,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (284) */ + /** @name XcmV3MultiassetWildMultiAsset (283) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3803,7 +3812,7 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (285) */ + /** @name XcmV3MultiassetWildFungibility (284) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; @@ -4491,24 +4500,15 @@ declare module "@polkadot/types/lookup" { /** @name SpRuntimeMultiSignature (330) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; - readonly asEd25519: SpCoreEd25519Signature; + readonly asEd25519: U8aFixed; readonly isSr25519: boolean; - readonly asSr25519: SpCoreSr25519Signature; + readonly asSr25519: U8aFixed; readonly isEcdsa: boolean; - readonly asEcdsa: SpCoreEcdsaSignature; + readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name SpCoreEd25519Signature (331) */ - interface SpCoreEd25519Signature extends U8aFixed {} - - /** @name SpCoreSr25519Signature (333) */ - interface SpCoreSr25519Signature extends U8aFixed {} - - /** @name SpCoreEcdsaSignature (334) */ - interface SpCoreEcdsaSignature extends U8aFixed {} - - /** @name PalletNftsPreSignedAttributes (336) */ + /** @name PalletNftsPreSignedAttributes (333) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4517,19 +4517,19 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletSudoError (337) */ + /** @name PalletSudoError (334) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (340) */ + /** @name PalletCollatorSelectionCandidateInfo (337) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (342) */ + /** @name PalletCollatorSelectionError (339) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4568,10 +4568,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (346) */ + /** @name SpCoreCryptoKeyTypeId (343) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (347) */ + /** @name PalletSessionError (344) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4586,7 +4586,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4595,21 +4595,21 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (357) */ + /** @name CumulusPalletXcmpQueueOutboundState (354) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (359) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (356) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (360) */ + /** @name CumulusPalletXcmpQueueError (357) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -4617,7 +4617,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (361) */ + /** @name PalletXcmQueryStatus (358) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4639,7 +4639,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (365) */ + /** @name XcmVersionedResponse (362) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4650,7 +4650,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (371) */ + /** @name PalletXcmVersionMigrationStage (368) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4664,7 +4664,7 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (374) */ + /** @name XcmVersionedAssetId (371) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4673,7 +4673,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V3" | "V4"; } - /** @name PalletXcmRemoteLockedFungibleRecord (375) */ + /** @name PalletXcmRemoteLockedFungibleRecord (372) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; @@ -4681,7 +4681,7 @@ declare module "@polkadot/types/lookup" { readonly consumers: Vec>; } - /** @name PalletXcmError (382) */ + /** @name PalletXcmError (379) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4708,6 +4708,8 @@ declare module "@polkadot/types/lookup" { readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; + readonly isUnableToDecode: boolean; + readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4733,10 +4735,12 @@ declare module "@polkadot/types/lookup" { | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete"; + | "LocalExecutionIncomplete" + | "UnableToDecode" + | "XcmTooLarge"; } - /** @name PalletMessageQueueBookState (383) */ + /** @name PalletMessageQueueBookState (380) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4746,13 +4750,13 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (385) */ + /** @name PalletMessageQueueNeighbours (382) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (387) */ + /** @name PalletMessageQueuePage (384) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4762,7 +4766,7 @@ declare module "@polkadot/types/lookup" { readonly heap: Bytes; } - /** @name PalletMessageQueueError (389) */ + /** @name PalletMessageQueueError (386) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4785,7 +4789,7 @@ declare module "@polkadot/types/lookup" { | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (391) */ + /** @name PalletStorageProvidersStorageProvider (388) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4794,7 +4798,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (392) */ + /** @name PalletStorageProvidersBackupStorageProvider (389) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4806,7 +4810,7 @@ declare module "@polkadot/types/lookup" { readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (393) */ + /** @name PalletStorageProvidersMainStorageProvider (390) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4818,7 +4822,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (395) */ + /** @name PalletStorageProvidersBucket (392) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4828,7 +4832,7 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletStorageProvidersError (398) */ + /** @name PalletStorageProvidersError (395) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4887,7 +4891,7 @@ declare module "@polkadot/types/lookup" { | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (399) */ + /** @name PalletFileSystemStorageRequestMetadata (396) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4903,17 +4907,17 @@ declare module "@polkadot/types/lookup" { readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (404) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (401) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (413) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (410) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (414) */ + /** @name PalletFileSystemError (411) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -5034,7 +5038,7 @@ declare module "@polkadot/types/lookup" { | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (420) */ + /** @name PalletProofsDealerError (417) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -5083,7 +5087,7 @@ declare module "@polkadot/types/lookup" { | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (423) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (420) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; @@ -5091,7 +5095,7 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (424) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (421) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; @@ -5099,13 +5103,13 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (425) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (422) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (426) */ + /** @name PalletPaymentStreamsError (423) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5142,7 +5146,7 @@ declare module "@polkadot/types/lookup" { | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (427) */ + /** @name PalletBucketNftsError (424) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -5155,7 +5159,7 @@ declare module "@polkadot/types/lookup" { | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (428) */ + /** @name PalletNftsCollectionDetails (425) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -5165,7 +5169,7 @@ declare module "@polkadot/types/lookup" { readonly attributes: u32; } - /** @name PalletNftsCollectionRole (433) */ + /** @name PalletNftsCollectionRole (430) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; @@ -5173,44 +5177,44 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (434) */ + /** @name PalletNftsItemDetails (431) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (435) */ + /** @name PalletNftsItemDeposit (432) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (440) */ + /** @name PalletNftsCollectionMetadata (437) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (441) */ + /** @name PalletNftsItemMetadata (438) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (442) */ + /** @name PalletNftsItemMetadataDeposit (439) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (445) */ + /** @name PalletNftsAttributeDeposit (442) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (449) */ + /** @name PalletNftsPendingSwap (446) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; @@ -5218,7 +5222,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletNftsPalletFeature (451) */ + /** @name PalletNftsPalletFeature (448) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5227,7 +5231,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (452) */ + /** @name PalletNftsError (449) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5322,30 +5326,30 @@ declare module "@polkadot/types/lookup" { | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (455) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (452) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (456) */ + /** @name FrameSystemExtensionsCheckSpecVersion (453) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (457) */ + /** @name FrameSystemExtensionsCheckTxVersion (454) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (458) */ + /** @name FrameSystemExtensionsCheckGenesis (455) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (461) */ + /** @name FrameSystemExtensionsCheckNonce (458) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (462) */ + /** @name FrameSystemExtensionsCheckWeight (459) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (463) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (460) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (464) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (461) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (465) */ + /** @name StorageHubRuntimeRuntime (462) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 966f35967..976dd67d6 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e4907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000120304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876365c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876364c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087636644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f72207468655c706f73736962696c696c7479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004000904013c737232353531393a3a5075626c6963000009040c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001341073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e74206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e000180626c6f636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c04045400010c246368616c6c656e676504010c6b65793401244b6579466f723c543e00002068496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732e1d01526567756c6172207573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c2077686963681901676f657320746f207468652054726561737572792e20556e6c65737320746865206f6e652063616c6c696e67206973206120726567697374657265642050726f76696465722e000901544f444f3a20436f6e736964657220636865636b696e6720616c736f206966207468657265207761732061207265717565737420746f206368616e6765204d53502e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b20746865795d017375626d697474656420612070726f6f6620666f722028604c6173745469636b50726f76696465725375626d697474656450726f6f66466f7260292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a75012d2050757368657320666f7277617264207468652050726f766964657220696e2074686520604368616c6c656e67655469636b546f4368616c6c656e67656450726f766964657273602053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174614105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c53723235353139040035050148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e6174757265000200002d050c1c73705f636f72651c65643235353139245369676e617475726500000400310501205b75383b2036345d0000310500000340000000080035050c1c73705f636f72651c73723235353139245369676e617475726500000400310501205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d0500000341000000080041050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000045050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e49050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e00004d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015105045300000400550501185665633c543e000051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000550500000251050059050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d05000002610500610500000408000104006505000004086905380069050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00006d050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e71050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400750501185665633c543e000075050000020504007905084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007d05000004087905100081050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008505012c42547265655365743c543e000085050420425472656553657404045401e90100040089050000008905000002e901008d050000029105009105086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465950501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600009505086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000990500000408e901e502009d05086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000a1050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea5050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a90501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679ad0501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365b505014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a90504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000ad0504184f7074696f6e04045401b1050108104e6f6e6500000010536f6d650400b1050000010000b10500000408080800b505080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b9050000040810d90100bd050000040c30281000c1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c505045300000400c90501185665633c543e0000c50500000408d9011000c905000002c50500cd050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400d105013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000d10504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000d5050000040c1000d90500d905080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000dd050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273e10501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e50500000408981800e905000002e50500ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f1050000040818d90100f505000002f10500f9050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd05085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273010601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000010604184f7074696f6e0404540105060108104e6f6e6500000010536f6d650400050600000100000506085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000090600000408e50110000d06085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561701106019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000011060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1906000004081d0610001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400210601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400250601584d61696e53746f7261676550726f76696465723c543e0001000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000025060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473290601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d06045300000400310601185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000031060000022d060035060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000039060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e673d060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f6174100144426c6f636b4e756d626572466f723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370410601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073490601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000410604184f7074696f6e0404540145060108104e6f6e6500000010536f6d6504004506000001000045060000040834200049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060000040834340051060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000055060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d06045300000400610601185665633c543e00005d060000040800340061060000025d060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400690601185665633c543e000069060000024d06006d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400690601185665633c543e000071060000040810300075060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000079060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e87c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e58427370735265717569726564457863656564734d617800050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e684661696c6564546f436f6e76657274426c6f636b4e756d626572001704b04661696c656420746f20636f6e7665727420626c6f636b206e756d62657220746f207468726573686f6c642e605468726573686f6c6441726974686d657469634572726f72001804a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001904904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f001a043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001b04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001c041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001d04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001e0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001f047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f6600200415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600210405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002204c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002304d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002404d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0025048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002604d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002704f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002804c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0029046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002a04804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2ea0426c6f636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002c04c0426c6f636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002d049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002e0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002f04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74003004a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003104a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003204ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700033049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400340498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003504a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003604cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003704e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003804f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003904910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d060000040810340081060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000085060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e000089060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008d06012c42547265655365743c543e00008d06042042547265655365740404540134000400190200000091060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9506000004083410009906000004083400009d060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a9060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c0455024572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970652028544f444f3a206d617962652077652073686f756c64207573652073617475726174696e672061726974686d6574696320696e7374656164294055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67ad060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b5060000040c00101000b90600000408001000bd0600000408100000c1060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c506000400080138436f6c6c656374696f6e526f6c650000c5060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c9060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401cd0624417070726f76616c7301d106000c01146f776e65720001244163636f756e744964000124617070726f76616c73d1060124417070726f76616c7300011c6465706f736974cd06011c4465706f7369740000cd060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000d1060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400d506013842547265654d61703c4b2c20563e0000d506042042547265654d617008044b01000456010d02000400d906000000d906000002dd0600dd0600000408000d0200e1060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e5060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e9062c537472696e674c696d6974000008011c6465706f736974e906011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e9060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000ed0600000410100d0281027d0200f106000004087502f50600f5060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f90600000408189c00fd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004000107012c42547265655365743c543e00000107042042547265655365740404540100000400a400000005070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000009070c2c70616c6c65745f6e66747314747970657320426974466c616773040454010d0700040030013450616c6c65744665617475726500000d070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000011070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1507102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e6174757265012905144578747261011907000400380000001907000004241d072107250729072d07350739073d074107001d0710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000210710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000250710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000290710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000002d0710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003107010c45726100003107102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000350710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000390710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003d07086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000410708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004507084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200a903040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000145050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100490504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c69737401004d050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000015905151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301005d050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405650500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016d05161041757261011041757261082c417574686f726974696573010071050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010079052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000171c41757261457874011c41757261457874082c417574686f72697469657301007105040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f00007d0504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010081050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301008d050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205990538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009d05302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e01a1051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230a5050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b90510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b90530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b905bd0504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100c10504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000cd050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202d505dd05040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200ed05040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f9051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501fd0574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e145061676573000108050509060d060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e1010c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e011506212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001906040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023425060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342d06040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234350604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023421060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013906282846696c6553797374656d012846696c6553797374656d443c53746f72616765526571756573747300010402343d060400004853746f72616765526571756573744273707300010802024d0651060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f72616765526571756573747300010802024d0698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402105506040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105906040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402106506040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e526571756573747301010402006d0604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e67526571756573747300010802024d067106040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b6574526571756573747300010802024d067506040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b657400010802024d0698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e70426c6f636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004f101204e756d626572206f6620626c6f636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017906293050726f6f66734465616c6572013050726f6f66734465616c65722c505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e79012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e6774686020626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732eec2054686520766563746f7220697320626f756e64656420627920604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72602e75012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e67746860207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0061012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e646d0120605072696f726974794368616c6c656e67657351756575656020696e2074686520605469636b546f436865636b706f696e744368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e884368616c6c656e67655469636b546f4368616c6c656e67656450726f76696465727300010802027d069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e3d0120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d697474656450726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501008106040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501008506040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e2d0120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604368616c6c656e6765735469636b65726020646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210890604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c617374206665779101207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c61737420605461726765745469636b7353746f726167654f665375626d69747465727360207469636b732069732067756172616e746565642ea50120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f7567682074686520605265616450726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b10120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e009d012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e01c904011d02306052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e59012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d20605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e0191062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000095060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000095060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d73000108020299069d0604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802029906a10604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a50650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a9062c284275636b65744e6674730001d504016d020001ad062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210b106040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b50698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b9069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202bd06c106040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02c906040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210e10604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02e50604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202ed06f106040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02f906040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02fd0604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d0205070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573090720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e011107321507042448436865636b4e6f6e5a65726f53656e6465721d079840436865636b5370656356657273696f6e21071038436865636b547856657273696f6e25071030436865636b47656e6573697329073438436865636b4d6f7274616c6974792d073428436865636b4e6f6e63653507982c436865636b576569676874390798604368617267655472616e73616374696f6e5061796d656e743d07985053746f726167655765696768745265636c61696d4107984507","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e3d07000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000120304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400090401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d04000d0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000009040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c2870616c6c65745f78636d1870616c6c65741043616c6c04045400013c1073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676511040154426f783c56657273696f6e656458636d3c28293e3e00000455015741524e494e473a20444550524543415445442e206073656e64602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e20557365206073656e645f626c6f626020696e73746561642e3c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765750401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428011857656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e0049015741524e494e473a20444550524543415445442e206065786563757465602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e205573652060657865637574655f626c6f626020696e73746561642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e30657865637574655f626c6f6208013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e0001286d61785f776569676874280118576569676874000d28b04578656375746520616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004501416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220746865206d65737361676520636f756c6420626520657865637574656420636f6d706c6574656c79486f72206f6e6c79207061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e2473656e645f626c6f6208011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e000e18a453656e6420616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e0055015468652064657374696e6174696f6e2c206064657374602c2077696c6c20726563656976652074686973206d65737361676520776974682061206044657363656e644f726967696e6020696e737472756374696f6e090174686174206d616b657320746865206f726967696e206f6620746865206d65737361676520626520746865206f726967696e206f6e20746869732073797374656d2e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001504015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000015040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400190401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000019040000021d04001d040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000021040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400250401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000250404184f7074696f6e0404540129040108104e6f6e6500000010536f6d65040029040000010000290400000408102d04002d04100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003104100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003504013857696c644d756c74694173736574000100003504100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3904013c57696c6446756e676962696c697479000100003904100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100003d040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000041040c0c78636d0876330c58636d041043616c6c00000400450401585665633c496e737472756374696f6e3c43616c6c3e3e0000450400000249040049040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004104012458636d3c43616c6c3e0015002c536574417070656e64697804004104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00004d040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040051040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000051040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540155040453000004005d0401185665633c543e000055040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d04000002550400610404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000065040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006904100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404006d04013857696c644d756c74694173736574000100006d04100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007104100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009504015076343a3a58636d3c52756e74696d6543616c6c3e0004000079040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004007d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00007d0400000281040081040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c85040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000085040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000089040c0c78636d0876330c58636d041043616c6c000004008d0401585665633c496e737472756374696f6e3c43616c6c3e3e00008d0400000291040091040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008904012458636d3c43616c6c3e0015002c536574417070656e64697804008904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000095040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400990401585665633c496e737472756374696f6e3c43616c6c3e3e000099040000029d04009d040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009504012458636d3c43616c6c3e0015002c536574417070656e64697804009504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e000180626c6f636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c04045400010c246368616c6c656e676504010c6b65793401244b6579466f723c543e00002068496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732e1d01526567756c6172207573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c2077686963681901676f657320746f207468652054726561737572792e20556e6c65737320746865206f6e652063616c6c696e67206973206120726567697374657265642050726f76696465722e000901544f444f3a20436f6e736964657220636865636b696e6720616c736f206966207468657265207761732061207265717565737420746f206368616e6765204d53502e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b20746865795d017375626d697474656420612070726f6f6620666f722028604c6173745469636b50726f76696465725375626d697474656450726f6f66466f7260292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a75012d2050757368657320666f7277617264207468652050726f766964657220696e2074686520604368616c6c656e67655469636b546f4368616c6c656e67656450726f766964657273602053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613505016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c5372323535313904002d050148737232353531393a3a5369676e617475726500010014456364736104003105014065636473613a3a5369676e6174757265000200002d05000003400000000800310500000341000000080035050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000039050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e3d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000041050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014505045300000400490501185665633c543e000045050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000049050000024505004d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5105000002550500550500000408000104005905000004085d0538005d050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000061050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e65050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400690501185665633c543e000069050000020504006d05084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007105000004086d05100075050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007905012c42547265655365743c543e000079050420425472656553657404045401e9010004007d050000007d05000002e9010081050000028505008505086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465890501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600008905086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e646564000100008d0500000408e901e502009105086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000095050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f717565726965729d0501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a10501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365a905014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d626572000200009d0504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a10504184f7074696f6e04045401a5050108104e6f6e6500000010536f6d650400a5050000010000a50500000408080800a905080c78636d4456657273696f6e6564526573706f6e736500010c08563204002104013076323a3a526573706f6e736500020008563304004d04013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000ad050000040810d90100b1050000040c30281000b5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b90500000408d9011000bd05000002b90500c1050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c505013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c50504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000c9050000040c1000cd0500cd05080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000d1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d905045300000400dd0501185665633c543e0000d90500000408981800dd05000002d90500e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e5050000040818d90100e905000002e50500ed050c2870616c6c65745f78636d1870616c6c6574144572726f7204045400016c2c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e38556e61626c65546f4465636f646500190454436f756c64206e6f74206465636f64652058434d2e2c58636d546f6f4c61726765001a088058434d20656e636f646564206c656e67746820697320746f6f206c617267652e1d0152657475726e6564207768656e20616e2058434d20656e636f646564206c656e677468206973206c6172676572207468616e20604d617858636d456e636f64656453697a65602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef105085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f50501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f50504184f7074696f6e04045401f9050108104e6f6e6500000010536f6d650400f9050000010000f905085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000fd0500000408e50110000106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000005060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000009060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d06000004081106100011060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400150601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400190601584d61696e53746f7261676550726f76696465723c543e0001000015060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000019060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574731d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400001d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012106045300000400250601185665633c543e000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000250600000221060029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6731060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f6174100144426c6f636b4e756d626572466f723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370350601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370733d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000350604184f7074696f6e0404540139060108104e6f6e6500000010536f6d650400390600000100003906000004083420003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000041060000040834340045060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015106045300000400550601185665633c543e0000510600000408003400550600000251060059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e00005d0600000241060061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e000065060000040810300069060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400006d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e87c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e58427370735265717569726564457863656564734d617800050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e684661696c6564546f436f6e76657274426c6f636b4e756d626572001704b04661696c656420746f20636f6e7665727420626c6f636b206e756d62657220746f207468726573686f6c642e605468726573686f6c6441726974686d657469634572726f72001804a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001904904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f001a043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001b04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001c041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001d04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001e0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001f047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f6600200415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600210405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002204c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002304d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002404d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0025048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002604d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002704f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002804c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0029046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002a04804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2ea0426c6f636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002c04c0426c6f636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002d049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002e0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002f04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74003004a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003104a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003204ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700033049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400340498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003504a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003604cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003704e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003804f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003904910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e71060000040810340075060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008106012c42547265655365743c543e00008106042042547265655365740404540134000400190200000085060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8906000004083410008d060000040834000091060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000095060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000099060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e00009d060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c0455024572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970652028544f444f3a206d617962652077652073686f756c64207573652073617475726174696e672061726974686d6574696320696e7374656164294055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a1060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea5060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000a9060000040c00101000ad0600000408001000b10600000408100000b5060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401b906000400080138436f6c6c656374696f6e526f6c650000b9060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000bd060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c10624417070726f76616c7301c506000c01146f776e65720001244163636f756e744964000124617070726f76616c73c5060124417070726f76616c7300011c6465706f736974c106011c4465706f7369740000c1060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000c5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400c906013842547265654d61703c4b2c20563e0000c906042042547265654d617008044b01000456010d02000400cd06000000cd06000002d10600d10600000408000d0200d5060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000d9060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401dd062c537472696e674c696d6974000008011c6465706f736974dd06011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000dd060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e10600000410100d0281027d0200e506000004087502e90600e9060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000ed0600000408189c00f1060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f506012c42547265655365743c543e0000f506042042547265655365740404540100000400a4000000f9060c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000fd060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401010700040030013450616c6c657446656174757265000001070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000005070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0907102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e6174757265012905144578747261010d07000400380000000d07000004241107150719071d07210729072d073107350700110710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000150710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000190710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000210710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002507010c45726100002507102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000290710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e636500002d0710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003107086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000350708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000003907084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a90304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000139050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301003d0504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010041050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000014d05151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010051050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405590500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016105161041757261011041757261082c417574686f726974696573010065050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f7401006d052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006505040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000710504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010075050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010081050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802058d0538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009105302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01090401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0195051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104023099050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502ad0510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502ad0530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502ad05b10504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b50504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c1050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202c905d105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e010d0401b00001ed051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f10574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505fd0501060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c5020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402000d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023419060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234290604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023415060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e012d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023431060400004853746f7261676552657175657374427370730001080202410645060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202410698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402104d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200610604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020241066506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020241066906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202410698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e70426c6f636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004f101204e756d626572206f6620626c6f636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e016d06293050726f6f66734465616c6572013050726f6f66734465616c65722c505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e79012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e6774686020626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732eec2054686520766563746f7220697320626f756e64656420627920604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72602e75012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e67746860207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0061012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e646d0120605072696f726974794368616c6c656e67657351756575656020696e2074686520605469636b546f436865636b706f696e744368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e884368616c6c656e67655469636b546f4368616c6c656e67656450726f766964657273000108020271069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e3d0120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d697474656450726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e2d0120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604368616c6c656e6765735469636b65726020646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402107d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c617374206665779101207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c61737420605461726765745469636b7353746f726167654f665375626d69747465727360207469636b732069732067756172616e746565642ea50120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f7567682074686520605265616450726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b10120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e009d012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e01c904011d02306052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e59012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d20605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e0185062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000089060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000089060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802028d06910604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802028d06950604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234990650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e019d062c284275636b65744e6674730001d504016d020001a1062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210a506040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202a90698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202ad069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b106b506040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02bd06040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210d50604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02d90604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e106e506040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02ed06040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02f10604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d02f9060400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573fd0620000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010507320907042448436865636b4e6f6e5a65726f53656e64657211079840436865636b5370656356657273696f6e15071038436865636b547856657273696f6e19071030436865636b47656e657369731d073438436865636b4d6f7274616c69747921073428436865636b4e6f6e63652907982c436865636b5765696768742d0798604368617267655472616e73616374696f6e5061796d656e743107985053746f726167655765696768745265636c61696d3507983907","id":"1"} \ No newline at end of file From c1219f1f5ce89e7b4dce7a52b915f9bec9b0f867 Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 27 Sep 2024 18:41:31 -0300 Subject: [PATCH 06/24] style: :rotating_light: run cargo fmt --- pallets/file-system/src/tests.rs | 162 +++++++++++++++---------------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/pallets/file-system/src/tests.rs b/pallets/file-system/src/tests.rs index 3fd565bf2..78be355b9 100644 --- a/pallets/file-system/src/tests.rs +++ b/pallets/file-system/src/tests.rs @@ -6607,34 +6607,34 @@ mod stop_storing_for_insolvent_user { .unwrap(), )); - // Assert that the storage was updated - assert_eq!( - file_system::StorageRequests::::get(file_key), - Some(StorageRequestMetadata { - requested_at: 1, - owner: owner_account_id.clone(), - bucket_id, - location: location.clone(), - fingerprint, - size, - msp: Some((msp_id, false)), - user_peer_ids: peer_ids.clone(), - data_server_sps: BoundedVec::default(), - bsps_required: ReplicationTarget::::get(), - bsps_confirmed: 1, - bsps_volunteered: 1, - }) - ); + // Assert that the storage was updated + assert_eq!( + file_system::StorageRequests::::get(file_key), + Some(StorageRequestMetadata { + requested_at: 1, + owner: owner_account_id.clone(), + bucket_id, + location: location.clone(), + fingerprint, + size, + msp: Some((msp_id, false)), + user_peer_ids: peer_ids.clone(), + data_server_sps: BoundedVec::default(), + bsps_required: ReplicationTarget::::get(), + bsps_confirmed: 1, + bsps_volunteered: 1, + }) + ); - // Assert that the RequestStorageBsps was updated - assert_eq!( - file_system::StorageRequestBsps::::get(file_key, bsp_id) - .expect("BSP should exist in storage"), - StorageRequestBspsMetadata:: { - confirmed: true, - _phantom: Default::default() - } - ); + // Assert that the RequestStorageBsps was updated + assert_eq!( + file_system::StorageRequestBsps::::get(file_key, bsp_id) + .expect("BSP should exist in storage"), + StorageRequestBspsMetadata:: { + confirmed: true, + _phantom: Default::default() + } + ); let file_key = FileSystem::compute_file_key( owner_account_id.clone(), @@ -7186,34 +7186,34 @@ mod stop_storing_for_insolvent_user { .unwrap(), )); - // Assert that the storage was updated - assert_eq!( - file_system::StorageRequests::::get(file_key), - Some(StorageRequestMetadata { - requested_at: 1, - owner: owner_account_id.clone(), - bucket_id, - location: location.clone(), - fingerprint, - size, - msp: Some((msp_id, false)), - user_peer_ids: peer_ids.clone(), - data_server_sps: BoundedVec::default(), - bsps_required: ReplicationTarget::::get(), - bsps_confirmed: 1, - bsps_volunteered: 1, - }) - ); + // Assert that the storage was updated + assert_eq!( + file_system::StorageRequests::::get(file_key), + Some(StorageRequestMetadata { + requested_at: 1, + owner: owner_account_id.clone(), + bucket_id, + location: location.clone(), + fingerprint, + size, + msp: Some((msp_id, false)), + user_peer_ids: peer_ids.clone(), + data_server_sps: BoundedVec::default(), + bsps_required: ReplicationTarget::::get(), + bsps_confirmed: 1, + bsps_volunteered: 1, + }) + ); - // Assert that the RequestStorageBsps was updated - assert_eq!( - file_system::StorageRequestBsps::::get(file_key, bsp_id) - .expect("BSP should exist in storage"), - StorageRequestBspsMetadata:: { - confirmed: true, - _phantom: Default::default() - } - ); + // Assert that the RequestStorageBsps was updated + assert_eq!( + file_system::StorageRequestBsps::::get(file_key, bsp_id) + .expect("BSP should exist in storage"), + StorageRequestBspsMetadata:: { + confirmed: true, + _phantom: Default::default() + } + ); let file_key = FileSystem::compute_file_key( owner_account_id.clone(), @@ -7387,34 +7387,34 @@ mod stop_storing_for_insolvent_user { .unwrap(), )); - // Assert that the storage was updated - assert_eq!( - file_system::StorageRequests::::get(file_key), - Some(StorageRequestMetadata { - requested_at: 1, - owner: owner_account_id.clone(), - bucket_id, - location: location.clone(), - fingerprint, - size, - msp: Some((msp_id, false)), - user_peer_ids: peer_ids.clone(), - data_server_sps: BoundedVec::default(), - bsps_required: ReplicationTarget::::get(), - bsps_confirmed: 1, - bsps_volunteered: 1, - }) - ); + // Assert that the storage was updated + assert_eq!( + file_system::StorageRequests::::get(file_key), + Some(StorageRequestMetadata { + requested_at: 1, + owner: owner_account_id.clone(), + bucket_id, + location: location.clone(), + fingerprint, + size, + msp: Some((msp_id, false)), + user_peer_ids: peer_ids.clone(), + data_server_sps: BoundedVec::default(), + bsps_required: ReplicationTarget::::get(), + bsps_confirmed: 1, + bsps_volunteered: 1, + }) + ); - // Assert that the RequestStorageBsps was updated - assert_eq!( - file_system::StorageRequestBsps::::get(file_key, bsp_id) - .expect("BSP should exist in storage"), - StorageRequestBspsMetadata:: { - confirmed: true, - _phantom: Default::default() - } - ); + // Assert that the RequestStorageBsps was updated + assert_eq!( + file_system::StorageRequestBsps::::get(file_key, bsp_id) + .expect("BSP should exist in storage"), + StorageRequestBspsMetadata:: { + confirmed: true, + _phantom: Default::default() + } + ); let file_key = FileSystem::compute_file_key( owner_account_id.clone(), From 5ac02587ee375124c04183e7c8506b8b3e96ac83 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Fri, 27 Sep 2024 22:53:14 -0300 Subject: [PATCH 07/24] fix: :art: fix cargo clippy --- client/blockchain-service/src/utils.rs | 2 +- pallets/file-system/src/utils.rs | 3 +-- primitives/forest-verifier/src/lib.rs | 4 ++-- xcm-simulator/src/storagehub/apis.rs | 5 +++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/client/blockchain-service/src/utils.rs b/client/blockchain-service/src/utils.rs index 9c62941c3..e47c74efd 100644 --- a/client/blockchain-service/src/utils.rs +++ b/client/blockchain-service/src/utils.rs @@ -249,7 +249,7 @@ impl BlockchainService { storage_hub_runtime::Address::Id(>::into(caller_pub_key)), - polkadot_primitives::Signature::Sr25519(signature.clone()), + polkadot_primitives::Signature::Sr25519(signature), extra.clone(), ) } diff --git a/pallets/file-system/src/utils.rs b/pallets/file-system/src/utils.rs index 25682aa9e..aec52e50a 100644 --- a/pallets/file-system/src/utils.rs +++ b/pallets/file-system/src/utils.rs @@ -598,10 +598,9 @@ where // Check that the sender corresponds to the MSP in the storage request and that it hasn't yet confirmed storing the file. let (request_msp_id, confirm_status) = storage_request_metadata .msp - .clone() .ok_or(Error::::RequestWithoutMsp)?; ensure!(request_msp_id == sp_id, Error::::NotSelectedMsp); - ensure!(confirm_status == false, Error::::MspAlreadyConfirmed); + ensure!(!confirm_status, Error::::MspAlreadyConfirmed); // Get the bucket ID from the storage request metadata let bucket_id = storage_request_metadata.bucket_id; diff --git a/primitives/forest-verifier/src/lib.rs b/primitives/forest-verifier/src/lib.rs index 1e26bf6e9..6198d4fa1 100644 --- a/primitives/forest-verifier/src/lib.rs +++ b/primitives/forest-verifier/src/lib.rs @@ -252,7 +252,7 @@ where (key, TrieMutation::Add(mutation)) => { trie.insert(key.as_ref(), &mutation.value) .map_err(|_| "Failed to insert key into trie.")?; - mutated_keys_and_values.push((key.clone(), Some(mutation.value.clone()))); + mutated_keys_and_values.push((*key, Some(mutation.value.clone()))); } (key, TrieMutation::Remove(_)) => { let node_value = trie @@ -273,7 +273,7 @@ where } else { None }; - mutated_keys_and_values.push((key.clone(), previous_value)); + mutated_keys_and_values.push((*key, previous_value)); } } } diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs index a7d64fa35..a8fc9347b 100644 --- a/xcm-simulator/src/storagehub/apis.rs +++ b/xcm-simulator/src/storagehub/apis.rs @@ -1,4 +1,5 @@ use crate::storagehub::*; +use crate::*; use frame_support::{ genesis_builder_helper::{build_config, create_default_config}, weights::Weight, @@ -38,13 +39,13 @@ impl_runtime_apis! { included_hash: ::Hash, slot: cumulus_primitives_aura::Slot, ) -> bool { - configs::ConsensusHook::can_build_upon(included_hash, slot) + storagehub::configs::ConsensusHook::can_build_upon(included_hash, slot) } } 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(storagehub::SLOT_DURATION) } fn authorities() -> Vec { From 91ae6016dfd7a804657d755392d043f39f0c3029 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Sat, 28 Sep 2024 00:54:18 -0300 Subject: [PATCH 08/24] fix: :ambulance: fix mocked relay chain randomness --- Cargo.lock | 623 ++++++++++---------- api-augment/dist/interfaces/lookup.js.map | 2 +- api-augment/storagehub.json | 2 +- runtime/src/configs/mod.rs | 42 +- xcm-simulator/src/storagehub/configs/mod.rs | 44 +- 5 files changed, 371 insertions(+), 342 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 51ead33b6..de07bc2dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,13 +23,19 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.24.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ - "gimli 0.31.0", + "gimli 0.29.0", ] +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + [[package]] name = "adler2" version = "2.0.0" @@ -191,9 +197,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "approx" @@ -229,7 +235,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -521,20 +527,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "ark-transcript" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", -] - [[package]] name = "ark-transcript" version = "0.0.2" @@ -575,9 +567,9 @@ checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" -version = "0.3.9" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" @@ -664,13 +656,13 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" dependencies = [ "async-task", "concurrent-queue", - "fastrand 2.1.1", + "fastrand 2.1.0", "futures-lite 2.3.0", "slab", ] @@ -720,7 +712,7 @@ dependencies = [ "futures-lite 2.3.0", "parking", "polling 3.7.3", - "rustix 0.38.37", + "rustix 0.38.34", "slab", "tracing", "windows-sys 0.59.0", @@ -770,7 +762,7 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.37", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -786,7 +778,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 0.38.37", + "rustix 0.38.34", "signal-hook-registry", "slab", "windows-sys 0.59.0", @@ -800,13 +792,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.83" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -836,23 +828,23 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.4.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ - "addr2line 0.24.1", + "addr2line 0.22.0", + "cc", "cfg-if", "libc", - "miniz_oxide", - "object 0.36.4", + "miniz_oxide 0.7.4", + "object 0.36.3", "rustc-demangle", - "windows-targets 0.52.6", ] [[package]] @@ -986,13 +978,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.22", + "prettyplease 0.2.20", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -1094,7 +1086,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] @@ -1105,7 +1097,7 @@ checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] @@ -1118,7 +1110,7 @@ dependencies = [ "arrayvec 0.7.6", "cc", "cfg-if", - "constant_time_eq 0.3.1", + "constant_time_eq 0.3.0", ] [[package]] @@ -1228,9 +1220,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.18.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" +checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" [[package]] name = "byteorder" @@ -1240,9 +1232,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.2" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "bzip2-sys" @@ -1299,9 +1291,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.22" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9540e661f81799159abee814118cc139a2004b3a3aa3ea37724a1b66530b90e0" +checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" dependencies = [ "jobserver", "libc", @@ -1441,9 +1433,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.18" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", @@ -1451,9 +1443,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.18" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -1464,14 +1456,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.18" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -1519,7 +1511,7 @@ dependencies = [ "nom", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -1558,7 +1550,7 @@ dependencies = [ [[package]] name = "common" version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" +source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" dependencies = [ "ark-ec", "ark-ff", @@ -1567,7 +1559,8 @@ dependencies = [ "ark-std", "fflonk", "getrandom_or_panic", - "rand_core 0.6.4", + "merlin", + "rand_chacha 0.3.1", ] [[package]] @@ -1632,9 +1625,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "constcat" @@ -1694,9 +1687,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.14" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -2220,10 +2213,10 @@ name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2548,7 +2541,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2566,9 +2559,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.128" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" +checksum = "3c4eae4b7fc8dcb0032eb3b1beee46b38d371cdeaf2d0c64b9944f6f69ad7755" dependencies = [ "cc", "cxxbridge-flags", @@ -2578,9 +2571,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.128" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" +checksum = "6c822bf7fb755d97328d6c337120b6f843678178751cba33c9da25cf522272e0" dependencies = [ "cc", "codespan-reporting", @@ -2588,24 +2581,24 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] name = "cxxbridge-flags" -version = "1.0.128" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" +checksum = "719d6197dc016c88744aff3c0d0340a01ecce12e8939fc282e7c8f583ee64bc6" [[package]] name = "cxxbridge-macro" -version = "1.0.128" +version = "1.0.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" +checksum = "35de3b547387863c8f82013c4f79f1c2162edee956383e4089e1d04c18c4f16c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2629,7 +2622,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2640,7 +2633,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2745,7 +2738,7 @@ checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2758,7 +2751,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2800,7 +2793,7 @@ dependencies = [ "dsl_auto_type", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2809,7 +2802,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" dependencies = [ - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2898,7 +2891,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -2954,7 +2947,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.79", + "syn 2.0.75", "termcolor", "toml 0.8.19", "walkdir", @@ -2983,7 +2976,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3149,7 +3142,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3160,7 +3153,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3266,10 +3259,10 @@ dependencies = [ "blake2 0.10.6", "file-guard", "fs-err", - "prettyplease 0.2.22", + "prettyplease 0.2.20", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3295,9 +3288,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fatality" @@ -3385,9 +3378,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" dependencies = [ "cfg-if", "libc", @@ -3431,13 +3424,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.34" +version = "1.0.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide", + "miniz_oxide 0.8.0", ] [[package]] @@ -3583,10 +3576,10 @@ version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3594,10 +3587,10 @@ name = "frame-election-provider-solution-type" version = "13.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3787,7 +3780,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing 0.0.0", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3807,7 +3800,7 @@ dependencies = [ "proc-macro2", "quote", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3817,10 +3810,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3363df38464c47a73eb521a4f648bfcc7537a82d70347ef8af3f73b6d019e910" dependencies = [ "frame-support-procedural-tools-derive 11.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3829,10 +3822,10 @@ version = "10.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3843,7 +3836,7 @@ checksum = "68672b9ec6fe72d259d3879dc212c5e42e977588cdac830c76f54d9f492aeb58" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3853,7 +3846,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10. dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -3958,7 +3951,7 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.37", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -4038,7 +4031,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.1.1", + "fastrand 2.1.0", "futures-core", "futures-io", "parking", @@ -4053,7 +4046,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -4207,9 +4200,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.31.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "glob" @@ -4260,7 +4253,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.5.0", + "indexmap 2.4.0", "slab", "tokio", "tokio-util", @@ -4533,9 +4526,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.61" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -4671,9 +4664,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.5.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -4762,9 +4755,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.10.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" @@ -4779,9 +4772,9 @@ dependencies = [ [[package]] name = "is_executable" -version = "1.0.3" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ba3d8548b8b04dafdf2f4cc6f5e379db766d0a6d9aac233ad4c9a92ea892233" +checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" dependencies = [ "winapi", ] @@ -4869,7 +4862,7 @@ dependencies = [ "http", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.3", + "rustls-native-certs 0.7.2", "rustls-pki-types", "soketto", "thiserror", @@ -4932,10 +4925,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" dependencies = [ "heck 0.4.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -4990,9 +4983,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.4" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if", "ecdsa", @@ -5086,9 +5079,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.159" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libloading" @@ -5507,7 +5500,7 @@ checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ "bitflags 2.6.0", "libc", - "redox_syscall 0.5.6", + "redox_syscall 0.5.3", ] [[package]] @@ -5577,9 +5570,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.20" +version = "1.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" dependencies = [ "cc", "pkg-config", @@ -5691,18 +5684,19 @@ dependencies = [ [[package]] name = "lz4" -version = "1.28.0" +version = "1.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" +checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" dependencies = [ + "libc", "lz4-sys", ] [[package]] name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" dependencies = [ "cc", "libc", @@ -5726,7 +5720,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -5740,7 +5734,7 @@ dependencies = [ "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -5751,7 +5745,7 @@ checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -5762,7 +5756,7 @@ checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -5833,7 +5827,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.37", + "rustix 0.38.34", ] [[package]] @@ -5847,9 +5841,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.9.5" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ "libc", ] @@ -5901,6 +5895,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + [[package]] name = "miniz_oxide" version = "0.8.0" @@ -6133,7 +6136,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", "synstructure 0.13.1", ] @@ -6187,7 +6190,7 @@ checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -6453,9 +6456,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.4" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -6523,10 +6526,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ "expander 2.2.1", - "indexmap 2.5.0", + "indexmap 2.4.0", "itertools 0.11.0", "petgraph", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -7848,10 +7851,10 @@ name = "pallet-staking-reward-curve" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -8316,7 +8319,7 @@ version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -8336,9 +8339,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.2.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" +checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" [[package]] name = "parking_lot" @@ -8383,7 +8386,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.6", + "redox_syscall 0.5.3", "smallvec", "windows-targets 0.52.6", ] @@ -8453,9 +8456,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.13" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ "memchr", "thiserror", @@ -8464,9 +8467,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.13" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0" +checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" dependencies = [ "pest", "pest_generator", @@ -8474,22 +8477,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.13" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e" +checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] name = "pest_meta" -version = "2.7.13" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f" +checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" dependencies = [ "once_cell", "pest", @@ -8503,7 +8506,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.5.0", + "indexmap 2.4.0", ] [[package]] @@ -8541,7 +8544,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -8569,7 +8572,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" dependencies = [ "atomic-waker", - "fastrand 2.1.1", + "fastrand 2.1.0", "futures-io", ] @@ -8585,9 +8588,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.31" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" @@ -8768,7 +8771,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.5.0", + "indexmap 2.4.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -9839,7 +9842,7 @@ dependencies = [ "fatality", "futures", "futures-timer", - "indexmap 2.5.0", + "indexmap 2.4.0", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -9912,7 +9915,7 @@ dependencies = [ "polkavm-common", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -9922,7 +9925,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" dependencies = [ "polkavm-derive-impl", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -9972,7 +9975,7 @@ dependencies = [ "concurrent-queue", "hermit-abi 0.4.0", "pin-project-lite 0.2.14", - "rustix 0.38.37", + "rustix 0.38.34", "tracing", "windows-sys 0.59.0", ] @@ -10002,9 +10005,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.8.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d30538d42559de6b034bc76fd6dd4c38961b1ee5c6c56e3808c50128fdbc22ce" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" [[package]] name = "postgres-protocol" @@ -10101,12 +10104,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.22" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -10159,11 +10162,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.2.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.22.22", + "toml_edit 0.21.1", ] [[package]] @@ -10198,7 +10201,7 @@ checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -10244,7 +10247,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -10302,11 +10305,11 @@ dependencies = [ "multimap 0.10.0", "once_cell", "petgraph", - "prettyplease 0.2.22", + "prettyplease 0.2.20", "prost 0.12.6", "prost-types 0.12.6", "regex", - "syn 2.0.79", + "syn 2.0.75", "tempfile", ] @@ -10333,7 +10336,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -10356,9 +10359,9 @@ dependencies = [ [[package]] name = "psm" -version = "0.1.23" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" dependencies = [ "cc", ] @@ -10437,9 +10440,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.37" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -10576,9 +10579,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.6" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355ae415ccd3a04315d3f8246e86d67689ea74d88d915576e1589a351062a13b" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ "bitflags 2.6.0", ] @@ -10623,7 +10626,7 @@ checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -10750,18 +10753,18 @@ dependencies = [ [[package]] name = "ring" version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" +source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" dependencies = [ "ark-ec", "ark-ff", "ark-poly", "ark-serialize", "ark-std", - "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "arrayvec 0.7.6", "blake2 0.10.6", "common 0.1.0 (git+https://github.com/w3f/ring-proof)", "fflonk", + "merlin", ] [[package]] @@ -10987,9 +10990,9 @@ checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" [[package]] name = "rustc_version" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ "semver 1.0.23", ] @@ -11033,9 +11036,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ "bitflags 2.6.0", "errno", @@ -11077,7 +11080,7 @@ dependencies = [ "log", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki 0.102.6", "subtle 2.6.1", "zeroize", ] @@ -11096,9 +11099,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" dependencies = [ "openssl-probe", "rustls-pemfile 2.1.3", @@ -11128,9 +11131,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.9.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" @@ -11144,9 +11147,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ "ring 0.17.8", "rustls-pki-types", @@ -11291,7 +11294,7 @@ dependencies = [ "array-bytes 6.2.3", "docify", "log", - "memmap2 0.9.5", + "memmap2 0.9.4", "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", @@ -11314,10 +11317,10 @@ name = "sc-chain-spec-derive" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -12341,10 +12344,10 @@ name = "sc-tracing-proc-macro" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -12425,7 +12428,7 @@ version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -12433,11 +12436,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.24" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -12584,9 +12587,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -12642,14 +12645,14 @@ checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", "memchr", @@ -12659,9 +12662,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" dependencies = [ "serde", ] @@ -13492,10 +13495,10 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -13507,10 +13510,10 @@ dependencies = [ "Inflector", "blake2 0.10.6", "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -13897,7 +13900,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", @@ -13990,7 +13993,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -14050,7 +14053,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "blake2b_simd", "byteorder", @@ -14067,7 +14070,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10. dependencies = [ "quote", "sp-crypto-hashing 0.0.0", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14078,7 +14081,7 @@ checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14098,7 +14101,7 @@ checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14108,7 +14111,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10. dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14118,17 +14121,17 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0b dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14154,7 +14157,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "environmental", "parity-scale-codec", @@ -14598,7 +14601,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -14641,10 +14644,10 @@ checksum = "cfaf6e85b2ec12a4b99cd6d8d57d083e30c94b7f1b0d8f93547121495aae6f0c" dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14654,10 +14657,10 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10. dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14667,23 +14670,23 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0b dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "Inflector", "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -14849,7 +14852,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0b [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" [[package]] name = "sp-storage" @@ -14878,7 +14881,7 @@ dependencies = [ [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "impl-serde", "parity-scale-codec", @@ -14965,7 +14968,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "parity-scale-codec", "tracing", @@ -15045,7 +15048,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15134,7 +15137,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -15145,7 +15148,7 @@ dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -15187,9 +15190,8 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ - "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -15283,9 +15285,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.50.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43fce22ed1df64d04b262351c8f9d5c6da4f76f79f25ad15529792f893fad25d" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -15726,7 +15728,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -15769,7 +15771,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git#a5e40d0cd0a0d941d6fe58aa278fedfcb9102710" +source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15894,9 +15896,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -15923,7 +15925,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -15966,9 +15968,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" dependencies = [ "cfg-if", - "fastrand 2.1.1", + "fastrand 2.1.0", "once_cell", - "rustix 0.38.37", + "rustix 0.38.34", "windows-sys 0.59.0", ] @@ -15987,7 +15989,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" dependencies = [ - "rustix 0.38.37", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -15999,9 +16001,9 @@ checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] @@ -16023,18 +16025,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -16153,9 +16155,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", @@ -16177,7 +16179,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -16240,9 +16242,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.16" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite 0.2.14", @@ -16252,9 +16254,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.12" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", @@ -16282,7 +16284,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.22", + "toml_edit 0.22.20", ] [[package]] @@ -16300,22 +16302,33 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.4.0", "toml_datetime", "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.22.22" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.5.0", + "indexmap 2.4.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap 2.4.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.20", + "winnow 0.6.18", ] [[package]] @@ -16383,7 +16396,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -16423,10 +16436,10 @@ version = "5.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "expander 2.2.1", - "proc-macro-crate 3.2.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -16688,9 +16701,9 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.13" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -16709,15 +16722,15 @@ checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" [[package]] name = "unicode-width" -version = "0.1.14" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" [[package]] name = "unicode-xid" -version = "0.2.6" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" [[package]] name = "universal-hash" @@ -16892,7 +16905,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", "wasm-bindgen-shared", ] @@ -16926,7 +16939,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -17406,7 +17419,7 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.37", + "rustix 0.38.34", ] [[package]] @@ -17415,7 +17428,7 @@ version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" dependencies = [ - "redox_syscall 0.5.6", + "redox_syscall 0.5.3", "wasite", "web-sys", ] @@ -17720,9 +17733,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.6.20" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" dependencies = [ "memchr", ] @@ -17810,7 +17823,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -17822,7 +17835,7 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -17884,7 +17897,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] @@ -17904,7 +17917,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.75", ] [[package]] diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index e6f2e721c..04a2e0513 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 2121ae14a..763ba553b 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e4907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000120304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876365c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876364c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087636644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f72207468655c706f73736962696c696c7479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004000904013c737232353531393a3a5075626c6963000009040c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001341073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e74206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e000180626c6f636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c04045400010c246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b20746865795d017375626d697474656420612070726f6f6620666f722028604c6173745469636b50726f76696465725375626d697474656450726f6f66466f7260292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a75012d2050757368657320666f7277617264207468652050726f766964657220696e2074686520604368616c6c656e67655469636b546f4368616c6c656e67656450726f766964657273602053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174614105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c53723235353139040035050148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e6174757265000200002d050c1c73705f636f72651c65643235353139245369676e617475726500000400310501205b75383b2036345d0000310500000340000000080035050c1c73705f636f72651c73723235353139245369676e617475726500000400310501205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d0500000341000000080041050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000045050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e49050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e00004d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015105045300000400550501185665633c543e000051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000550500000251050059050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d05000002610500610500000408000104006505000004086905380069050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00006d050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e71050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400750501185665633c543e000075050000020504007905084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007d05000004087905100081050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008505012c42547265655365743c543e000085050420425472656553657404045401e90100040089050000008905000002e901008d050000029105009105086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465950501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600009505086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000990500000408e901e502009d05086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000a1050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea5050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a90501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679ad0501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365b505014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a90504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000ad0504184f7074696f6e04045401b1050108104e6f6e6500000010536f6d650400b1050000010000b10500000408080800b505080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b9050000040810d90100bd050000040c30281000c1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c505045300000400c90501185665633c543e0000c50500000408d9011000c905000002c50500cd050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400d105013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000d10504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000d5050000040c1000d90500d905080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000dd050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273e10501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e50500000408981800e905000002e50500ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f1050000040818d90100f505000002f10500f9050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd05085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273010601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000010604184f7074696f6e0404540105060108104e6f6e6500000010536f6d650400050600000100000506085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000090600000408e50110000d06085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561701106019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000011060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1906000004081d0610001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400210601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400250601584d61696e53746f7261676550726f76696465723c543e0001000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000025060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473290601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d06045300000400310601185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000031060000022d060035060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000039060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e673d060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f6174100144426c6f636b4e756d626572466f723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370410601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073490601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000410604184f7074696f6e0404540145060108104e6f6e6500000010536f6d6504004506000001000045060000040834200049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060000040834340051060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000055060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d06045300000400610601185665633c543e00005d060000040800340061060000025d060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400690601185665633c543e000069060000024d06006d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400690601185665633c543e000071060000040810300075060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000079060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e87c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e684661696c6564546f436f6e76657274426c6f636b4e756d626572001704b04661696c656420746f20636f6e7665727420626c6f636b206e756d62657220746f207468726573686f6c642e605468726573686f6c6441726974686d657469634572726f72001804a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001904904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f001a043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001b04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001c041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001d04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001e0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001f047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f6600200415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600210405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002204c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002304d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002404d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0025048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002604d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002704f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002804c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0029046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002a04804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2ea0426c6f636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002c04c0426c6f636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002d049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002e0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002f04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74003004a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003104a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003204ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700033049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400340498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003504a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003604cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003704e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003804f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003904910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d060000040810340081060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000085060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e000089060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008d06012c42547265655365743c543e00008d06042042547265655365740404540134000400190200000091060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9506000004083410009906000004083400009d060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a9060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67ad060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b5060000040c00101000b90600000408001000bd0600000408100000c1060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c506000400080138436f6c6c656374696f6e526f6c650000c5060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c9060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401cd0624417070726f76616c7301d106000c01146f776e65720001244163636f756e744964000124617070726f76616c73d1060124417070726f76616c7300011c6465706f736974cd06011c4465706f7369740000cd060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000d1060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400d506013842547265654d61703c4b2c20563e0000d506042042547265654d617008044b01000456010d02000400d906000000d906000002dd0600dd0600000408000d0200e1060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e5060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e9062c537472696e674c696d6974000008011c6465706f736974e906011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e9060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000ed0600000410100d0281027d0200f106000004087502f50600f5060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f90600000408189c00fd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004000107012c42547265655365743c543e00000107042042547265655365740404540100000400a400000005070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000009070c2c70616c6c65745f6e66747314747970657320426974466c616773040454010d0700040030013450616c6c65744665617475726500000d070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000011070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1507102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e6174757265012905144578747261011907000400380000001907000004241d072107250729072d07350739073d074107001d0710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000210710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000250710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000290710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000002d0710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003107010c45726100003107102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000350710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000390710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003d07086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000410708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004507084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200a903040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000145050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100490504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c69737401004d050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000015905151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301005d050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405650500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016d05161041757261011041757261082c417574686f726974696573010071050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010079052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000171c41757261457874011c41757261457874082c417574686f72697469657301007105040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f00007d0504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010081050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301008d050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205990538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009d05302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e01a1051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230a5050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b90510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b90530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b905bd0504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100c10504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000cd050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202d505dd05040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200ed05040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f9051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501fd0574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e145061676573000108050509060d060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e1010c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e011506212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001906040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023425060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342d06040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234350604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023421060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013906282846696c6553797374656d012846696c6553797374656d443c53746f72616765526571756573747300010402343d060400004853746f72616765526571756573744273707300010802024d0651060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f72616765526571756573747300010802024d0698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402105506040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105906040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402106506040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e526571756573747301010402006d0604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e67526571756573747300010802024d067106040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b6574526571756573747300010802024d067506040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b657400010802024d0698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e70426c6f636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004f101204e756d626572206f6620626c6f636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017906293050726f6f66734465616c6572013050726f6f66734465616c65722c505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e79012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e6774686020626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732eec2054686520766563746f7220697320626f756e64656420627920604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72602e75012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e67746860207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0061012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e646d0120605072696f726974794368616c6c656e67657351756575656020696e2074686520605469636b546f436865636b706f696e744368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e884368616c6c656e67655469636b546f4368616c6c656e67656450726f76696465727300010802027d069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e3d0120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d697474656450726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501008106040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501008506040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e2d0120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604368616c6c656e6765735469636b65726020646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210890604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c617374206665779101207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c61737420605461726765745469636b7353746f726167654f665375626d69747465727360207469636b732069732067756172616e746565642ea50120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f7567682074686520605265616450726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b10120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e009d012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e01c904011d02306052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e59012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d20605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e0191062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000095060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000095060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d73000108020299069d0604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802029906a10604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a50650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a9062c284275636b65744e6674730001d504016d020001ad062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210b106040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b50698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b9069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202bd06c106040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02c906040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210e10604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02e50604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202ed06f106040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02f906040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02fd0604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d0205070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573090720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e011107321507042448436865636b4e6f6e5a65726f53656e6465721d079840436865636b5370656356657273696f6e21071038436865636b547856657273696f6e25071030436865636b47656e6573697329073438436865636b4d6f7274616c6974792d073428436865636b4e6f6e63653507982c436865636b576569676874390798604368617267655472616e73616374696f6e5061796d656e743d07985053746f726167655765696768745265636c61696d4107984507","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e3d07000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000120304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400090401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d04000d0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000009040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c2870616c6c65745f78636d1870616c6c65741043616c6c04045400013c1073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676511040154426f783c56657273696f6e656458636d3c28293e3e00000455015741524e494e473a20444550524543415445442e206073656e64602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e20557365206073656e645f626c6f626020696e73746561642e3c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765750401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428011857656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e0049015741524e494e473a20444550524543415445442e206065786563757465602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e205573652060657865637574655f626c6f626020696e73746561642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e30657865637574655f626c6f6208013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e0001286d61785f776569676874280118576569676874000d28b04578656375746520616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004501416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220746865206d65737361676520636f756c6420626520657865637574656420636f6d706c6574656c79486f72206f6e6c79207061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e2473656e645f626c6f6208011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e000e18a453656e6420616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e0055015468652064657374696e6174696f6e2c206064657374602c2077696c6c20726563656976652074686973206d65737361676520776974682061206044657363656e644f726967696e6020696e737472756374696f6e090174686174206d616b657320746865206f726967696e206f6620746865206d65737361676520626520746865206f726967696e206f6e20746869732073797374656d2e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001504015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000015040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400190401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000019040000021d04001d040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000021040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400250401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000250404184f7074696f6e0404540129040108104e6f6e6500000010536f6d65040029040000010000290400000408102d04002d04100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003104100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003504013857696c644d756c74694173736574000100003504100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3904013c57696c6446756e676962696c697479000100003904100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100003d040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000041040c0c78636d0876330c58636d041043616c6c00000400450401585665633c496e737472756374696f6e3c43616c6c3e3e0000450400000249040049040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004104012458636d3c43616c6c3e0015002c536574417070656e64697804004104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00004d040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040051040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000051040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540155040453000004005d0401185665633c543e000055040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d04000002550400610404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000065040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006904100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404006d04013857696c644d756c74694173736574000100006d04100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007104100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009504015076343a3a58636d3c52756e74696d6543616c6c3e0004000079040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004007d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00007d0400000281040081040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c85040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000085040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000089040c0c78636d0876330c58636d041043616c6c000004008d0401585665633c496e737472756374696f6e3c43616c6c3e3e00008d0400000291040091040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008904012458636d3c43616c6c3e0015002c536574417070656e64697804008904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000095040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400990401585665633c496e737472756374696f6e3c43616c6c3e3e000099040000029d04009d040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009504012458636d3c43616c6c3e0015002c536574417070656e64697804009504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e000180626c6f636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c04045400010c246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b20746865795d017375626d697474656420612070726f6f6620666f722028604c6173745469636b50726f76696465725375626d697474656450726f6f66466f7260292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a75012d2050757368657320666f7277617264207468652050726f766964657220696e2074686520604368616c6c656e67655469636b546f4368616c6c656e67656450726f766964657273602053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613505016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c5372323535313904002d050148737232353531393a3a5369676e617475726500010014456364736104003105014065636473613a3a5369676e6174757265000200002d05000003400000000800310500000341000000080035050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000039050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e3d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000041050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014505045300000400490501185665633c543e000045050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000049050000024505004d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5105000002550500550500000408000104005905000004085d0538005d050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000061050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e65050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400690501185665633c543e000069050000020504006d05084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007105000004086d05100075050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007905012c42547265655365743c543e000079050420425472656553657404045401e9010004007d050000007d05000002e9010081050000028505008505086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465890501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600008905086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e646564000100008d0500000408e901e502009105086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000095050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f717565726965729d0501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a10501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365a905014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d626572000200009d0504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a10504184f7074696f6e04045401a5050108104e6f6e6500000010536f6d650400a5050000010000a50500000408080800a905080c78636d4456657273696f6e6564526573706f6e736500010c08563204002104013076323a3a526573706f6e736500020008563304004d04013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000ad050000040810d90100b1050000040c30281000b5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b90500000408d9011000bd05000002b90500c1050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c505013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c50504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000c9050000040c1000cd0500cd05080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000d1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d905045300000400dd0501185665633c543e0000d90500000408981800dd05000002d90500e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e5050000040818d90100e905000002e50500ed050c2870616c6c65745f78636d1870616c6c6574144572726f7204045400016c2c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e38556e61626c65546f4465636f646500190454436f756c64206e6f74206465636f64652058434d2e2c58636d546f6f4c61726765001a088058434d20656e636f646564206c656e67746820697320746f6f206c617267652e1d0152657475726e6564207768656e20616e2058434d20656e636f646564206c656e677468206973206c6172676572207468616e20604d617858636d456e636f64656453697a65602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef105085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f50501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f50504184f7074696f6e04045401f9050108104e6f6e6500000010536f6d650400f9050000010000f905085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000fd0500000408e50110000106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000005060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000009060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d06000004081106100011060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400150601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400190601584d61696e53746f7261676550726f76696465723c543e0001000015060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000019060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574731d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400001d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012106045300000400250601185665633c543e000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000250600000221060029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6731060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f6174100144426c6f636b4e756d626572466f723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370350601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370733d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000350604184f7074696f6e0404540139060108104e6f6e6500000010536f6d650400390600000100003906000004083420003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000041060000040834340045060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015106045300000400550601185665633c543e0000510600000408003400550600000251060059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e00005d0600000241060061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e000065060000040810300069060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400006d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e87c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e684661696c6564546f436f6e76657274426c6f636b4e756d626572001704b04661696c656420746f20636f6e7665727420626c6f636b206e756d62657220746f207468726573686f6c642e605468726573686f6c6441726974686d657469634572726f72001804a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001904904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f001a043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001b04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001c041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001d04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001e0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001f047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f6600200415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600210405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002204c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002304d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002404d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0025048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002604d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002704f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002804c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0029046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002a04804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2ea0426c6f636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002c04c0426c6f636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002d049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002e0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002f04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74003004a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003104a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003204ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700033049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400340498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003504a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003604cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003704e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003804f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003904910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e71060000040810340075060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008106012c42547265655365743c543e00008106042042547265655365740404540134000400190200000085060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8906000004083410008d060000040834000091060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000095060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000099060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e00009d060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a1060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea5060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000a9060000040c00101000ad0600000408001000b10600000408100000b5060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401b906000400080138436f6c6c656374696f6e526f6c650000b9060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000bd060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c10624417070726f76616c7301c506000c01146f776e65720001244163636f756e744964000124617070726f76616c73c5060124417070726f76616c7300011c6465706f736974c106011c4465706f7369740000c1060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000c5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400c906013842547265654d61703c4b2c20563e0000c906042042547265654d617008044b01000456010d02000400cd06000000cd06000002d10600d10600000408000d0200d5060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000d9060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401dd062c537472696e674c696d6974000008011c6465706f736974dd06011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000dd060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e10600000410100d0281027d0200e506000004087502e90600e9060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000ed0600000408189c00f1060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f506012c42547265655365743c543e0000f506042042547265655365740404540100000400a4000000f9060c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000fd060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401010700040030013450616c6c657446656174757265000001070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000005070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0907102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e6174757265012905144578747261010d07000400380000000d07000004241107150719071d07210729072d073107350700110710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000150710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000190710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000210710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002507010c45726100002507102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000290710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e636500002d0710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003107086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000350708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000003907084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a90304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000139050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301003d0504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010041050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000014d05151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010051050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405590500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016105161041757261011041757261082c417574686f726974696573010065050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f7401006d052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006505040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000710504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010075050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010081050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802058d0538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009105302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01090401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0195051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104023099050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502ad0510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502ad0530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502ad05b10504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b50504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c1050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202c905d105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e010d0401b00001ed051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f10574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505fd0501060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c5020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402000d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023419060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234290604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023415060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e012d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023431060400004853746f7261676552657175657374427370730001080202410645060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202410698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402104d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200610604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020241066506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020241066906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202410698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e70426c6f636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004f101204e756d626572206f6620626c6f636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e016d06293050726f6f66734465616c6572013050726f6f66734465616c65722c505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e79012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e6774686020626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732eec2054686520766563746f7220697320626f756e64656420627920604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72602e75012054686973206d617070696e6720676f6573206261636b206f6e6c7920604368616c6c656e6765486973746f72794c656e67746860207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0061012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e646d0120605072696f726974794368616c6c656e67657351756575656020696e2074686520605469636b546f436865636b706f696e744368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e884368616c6c656e67655469636b546f4368616c6c656e67656450726f766964657273000108020271069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e3d0120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d697474656450726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e2d0120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604368616c6c656e6765735469636b65726020646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402107d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c617374206665779101207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c61737420605461726765745469636b7353746f726167654f665375626d69747465727360207469636b732069732067756172616e746565642ea50120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f7567682074686520605265616450726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b10120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e009d012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e01c904011d02306052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e59012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d20605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e0185062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000089060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000089060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802028d06910604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802028d06950604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234990650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e019d062c284275636b65744e6674730001d504016d020001a1062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210a506040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202a90698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202ad069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b106b506040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02bd06040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210d50604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02d90604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e106e506040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02ed06040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02f10604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d02f9060400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573fd0620000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010507320907042448436865636b4e6f6e5a65726f53656e64657211079840436865636b5370656356657273696f6e15071038436865636b547856657273696f6e19071030436865636b47656e657369731d073438436865636b4d6f7274616c69747921073428436865636b4e6f6e63652907982c436865636b5765696768742d0798604368617267655472616e73616374696f6e5061796d656e743107985053746f726167655765696768745265636c61696d3507983907","id":"1"} \ No newline at end of file diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index f14d2c4c5..7058649ea 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -57,7 +57,7 @@ use shp_file_metadata::ChunkId; use shp_forest_verifier::ForestVerifier; use shp_traits::{CommitmentVerifier, MaybeDebug}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{ConstU128, Get, Hasher, H256}; +use sp_core::{blake2_256, ConstU128, Get, Hasher, H256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, @@ -382,7 +382,7 @@ impl pallet_nfts::Config for Runtime { /// Only callable after `set_validation_data` is called which forms this proof the same way fn relay_chain_state_proof() -> RelayChainStateProof { // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 - let relay_storage_root = H256::zero(); + let relay_storage_root = DefaultMerkleRoot::::get(); /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() .expect("set in `set_validation_data`") .relay_parent_storage_root; */ @@ -408,11 +408,13 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } - relay_chain_state_proof() - .read_optional_entry(well_known_keys::EPOCH_INDEX) - .ok() - .flatten() - .expect("expected to be able to read epoch index from relay chain state proof") + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove frame_system::Pallet::::block_number().into() + /* relay_chain_state_proof() + .read_optional_entry(well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") */ + frame_system::Pallet::::block_number().into() } fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -425,11 +427,13 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } - relay_chain_state_proof() - .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read epoch randomness from relay chain state proof") + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) + /* relay_chain_state_proof() + .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read epoch randomness from relay chain state proof") */ + H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) } fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -444,11 +448,15 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { } // Note: we use the `CURRENT_BLOCK_RANDOMNESS` key here as it also represents the parent randomness, the only difference // is the block since this randomness is valid, but we don't care about that because we are setting that directly in the `randomness` pallet. - relay_chain_state_proof() - .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read parent randomness from relay chain state proof") + /* relay_chain_state_proof() + .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read parent randomness from relay chain state proof") */ + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().saturating_sub(1).to_le_bytes())) + H256::from_slice(&blake2_256( + &Self::get_epoch_index().saturating_sub(1).to_le_bytes(), + )) } } diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index 42dfe04ff..e2cdd3b7f 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -60,7 +60,7 @@ use shp_file_metadata::ChunkId; use shp_traits::{CommitmentVerifier, MaybeDebug, TrieMutation, TrieProofDeltaApplier}; use sp_api::StorageProof; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{Get, Hasher, H256}; +use sp_core::{Get, Hasher, H256, blake2_256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, @@ -380,11 +380,11 @@ impl pallet_nfts::Config for Runtime { /// Only callable after `set_validation_data` is called which forms this proof the same way fn relay_chain_state_proof() -> RelayChainStateProof { // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 - let relay_storage_root = H256::zero(); + let relay_storage_root = DefaultMerkleRoot::>::get(); /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() .expect("set in `set_validation_data`") .relay_parent_storage_root; */ - let root_vec: Vec> = vec![relay_storage_root.as_bytes().to_vec()]; + let root_vec: vec::Vec> = vec![relay_storage_root.as_bytes().to_vec()]; let relay_chain_state = StorageProof::new(root_vec); /* let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() .expect("set in `set_validation_data`"); */ @@ -406,11 +406,13 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } - relay_chain_state_proof() - .read_optional_entry(well_known_keys::EPOCH_INDEX) - .ok() - .flatten() - .expect("expected to be able to read epoch index from relay chain state proof") + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove frame_system::Pallet::::block_number() + /* relay_chain_state_proof() + .read_optional_entry(well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") */ + frame_system::Pallet::::block_number().into() } fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -423,11 +425,13 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } - relay_chain_state_proof() - .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read epoch randomness from relay chain state proof") + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) + /* relay_chain_state_proof() + .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read epoch randomness from relay chain state proof") */ + H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) } fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -442,11 +446,15 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { } // Note: we use the `CURRENT_BLOCK_RANDOMNESS` key here as it also represents the parent randomness, the only difference // is the block since this randomness is valid, but we don't care about that because we are setting that directly in the `randomness` pallet. - relay_chain_state_proof() - .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read parent randomness from relay chain state proof") + /* relay_chain_state_proof() + .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read parent randomness from relay chain state proof") */ + // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().saturating_sub(1).to_le_bytes())) + H256::from_slice(&blake2_256( + &Self::get_epoch_index().saturating_sub(1).to_le_bytes(), + )) } } From 97c0b64905f0a23b41a858e8baa7bacb394338ff Mon Sep 17 00:00:00 2001 From: TDemeco Date: Sat, 28 Sep 2024 00:54:49 -0300 Subject: [PATCH 09/24] style: :rotating_light: run cargo fmt --- xcm-simulator/src/storagehub/configs/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index e2cdd3b7f..13aa77317 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -60,7 +60,7 @@ use shp_file_metadata::ChunkId; use shp_traits::{CommitmentVerifier, MaybeDebug, TrieMutation, TrieProofDeltaApplier}; use sp_api::StorageProof; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{Get, Hasher, H256, blake2_256}; +use sp_core::{blake2_256, Get, Hasher, H256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, From 787d1dfd0c9e549989221be7286499e83d33333a Mon Sep 17 00:00:00 2001 From: TDemeco Date: Sat, 28 Sep 2024 10:28:02 -0300 Subject: [PATCH 10/24] chore: :rotating_light: temporary remove unused import (until v1.13.0) --- runtime/src/configs/mod.rs | 2 +- xcm-simulator/src/storagehub/configs/mod.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 7058649ea..bfbebb541 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -28,7 +28,7 @@ mod xcm_config; // Substrate and Polkadot dependencies use core::marker::PhantomData; use cumulus_pallet_parachain_system::{RelayChainStateProof, RelayNumberMonotonicallyIncreases}; -use cumulus_primitives_core::{relay_chain::well_known_keys, AggregateMessageOrigin, ParaId}; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, dispatch::DispatchClass, diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index 13aa77317..ffd0e5308 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -32,7 +32,7 @@ use crate::storagehub::MessageQueue; use crate::storagehub::PolkadotXcm; use core::marker::PhantomData; use cumulus_pallet_parachain_system::{RelayChainStateProof, RelayNumberMonotonicallyIncreases}; -use cumulus_primitives_core::{relay_chain::well_known_keys, AggregateMessageOrigin, ParaId}; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, dispatch::DispatchClass, From 6fb8bd4f3987684ec5e82d5b64ff575db2ce74de Mon Sep 17 00:00:00 2001 From: TDemeco Date: Sat, 28 Sep 2024 10:34:20 -0300 Subject: [PATCH 11/24] fix: :adhesive_bandage: update `query_earliest_file_volunteer_tick` runtime api --- xcm-simulator/src/storagehub/apis.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs index a8fc9347b..2ae59267d 100644 --- a/xcm-simulator/src/storagehub/apis.rs +++ b/xcm-simulator/src/storagehub/apis.rs @@ -266,8 +266,8 @@ impl_runtime_apis! { } impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { - fn query_earliest_file_volunteer_block(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { - FileSystem::query_earliest_file_volunteer_block(bsp_id, file_key) + fn query_earliest_file_volunteer_tick(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { + FileSystem::query_earliest_file_volunteer_tick(bsp_id, file_key) } fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { From cde6b902d4fff01375114950df03a800e85f6658 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Sat, 28 Sep 2024 10:49:46 -0300 Subject: [PATCH 12/24] fix: :ambulance: fix issues with merge from main --- Cargo.lock | 1 - Cargo.toml | 2 - api-augment/dist/interfaces/lookup.js | 220 +++++++++-------- api-augment/dist/interfaces/lookup.js.map | 2 +- api-augment/dist/types/interfaces/lookup.d.ts | 196 ++++++++------- .../dist/types/interfaces/types-lookup.d.ts | 220 ++++++++--------- api-augment/src/interfaces/lookup.ts | 220 +++++++++-------- api-augment/src/interfaces/types-lookup.ts | 224 +++++++++--------- api-augment/storagehub.json | 2 +- pallets/file-system/src/tests.rs | 28 ++- runtime/Cargo.toml | 2 - runtime/src/apis.rs | 4 +- runtime/src/configs/mod.rs | 11 +- xcm-simulator/src/storagehub/configs/mod.rs | 22 +- 14 files changed, 573 insertions(+), 581 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index de07bc2dc..aa6636057 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -15647,7 +15647,6 @@ dependencies = [ "sp-session 27.0.0", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", "staging-parachain-info", diff --git a/Cargo.toml b/Cargo.toml index c3d4132a6..227d04ee1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,8 +70,6 @@ sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "po sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } # latest version containing trie-db upgrade (double ended iterator) sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", version = "29.0.0", default-features = false } -# CRITICAL TODO: Remove this after upgrading to polkadot sdk v1.13.0 -sp-trie-polkadot-sdk = { package = "sp-trie", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index 8c2c78171..980b37fd6 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -2086,7 +2086,7 @@ export default { CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** * Lookup189: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth @@ -2104,9 +2104,9 @@ export default { totalBytes: "u32" }, /** - * Lookup196: polkadot_primitives::v6::UpgradeGoAhead + * Lookup196: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** @@ -2115,21 +2115,21 @@ export default { CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** - * Lookup198: polkadot_primitives::v6::PersistedValidationData + * Lookup198: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32" }, /** - * Lookup201: polkadot_primitives::v6::UpgradeRestriction + * Lookup201: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: ["Present"] }, /** @@ -2145,8 +2145,8 @@ export default { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>" + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" }, /** * Lookup205: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity @@ -2156,9 +2156,9 @@ export default { remainingSize: "u32" }, /** - * Lookup208: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup208: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", maxMessageSize: "u32", @@ -2167,9 +2167,9 @@ export default { mqcHead: "Option" }, /** - * Lookup209: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup209: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", maxUpwardQueueCount: "u32", @@ -2179,12 +2179,12 @@ export default { hrmpMaxMessageNumPerCandidate: "u32", validationUpgradeCooldown: "u32", validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV6AsyncBackingAsyncBackingParams" + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" }, /** - * Lookup210: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup210: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, @@ -2219,7 +2219,7 @@ export default { * Lookup219: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV6PersistedValidationData", + validationData: "PolkadotPrimitivesV7PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>" @@ -2514,13 +2514,9 @@ export default { /** * Lookup257: sp_consensus_aura::sr25519::app_sr25519::Public **/ - SpConsensusAuraSr25519AppSr25519Public: "SpCoreSr25519Public", + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup258: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: "[u8;32]", - /** - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup258: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2548,7 +2544,7 @@ export default { } }, /** - * Lookup260: pallet_xcm::pallet::Call + * Lookup259: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2612,11 +2608,19 @@ export default { claim_assets: { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" + }, + execute_blob: { + encodedMessage: "Bytes", + maxWeight: "SpWeightsWeightV2Weight" + }, + send_blob: { + dest: "XcmVersionedLocation", + encodedMessage: "Bytes" } } }, /** - * Lookup261: xcm::VersionedXcm + * Lookup260: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2628,11 +2632,11 @@ export default { } }, /** - * Lookup262: xcm::v2::Xcm + * Lookup261: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup264: xcm::v2::Instruction + * Lookup263: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2730,7 +2734,7 @@ export default { } }, /** - * Lookup265: xcm::v2::Response + * Lookup264: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2741,7 +2745,7 @@ export default { } }, /** - * Lookup268: xcm::v2::traits::Error + * Lookup267: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2774,7 +2778,7 @@ export default { } }, /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup268: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2783,7 +2787,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup269: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2795,13 +2799,13 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup270: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup272: xcm::v2::WeightLimit + * Lookup271: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2810,11 +2814,11 @@ export default { } }, /** - * Lookup273: xcm::v3::Xcm + * Lookup272: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup275: xcm::v3::Instruction + * Lookup274: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2956,7 +2960,7 @@ export default { } }, /** - * Lookup276: xcm::v3::Response + * Lookup275: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2969,7 +2973,7 @@ export default { } }, /** - * Lookup278: xcm::v3::PalletInfo + * Lookup277: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2980,7 +2984,7 @@ export default { patch: "Compact" }, /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup281: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -2988,7 +2992,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup282: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2997,7 +3001,7 @@ export default { } }, /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup283: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3015,7 +3019,7 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup284: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] @@ -3594,25 +3598,13 @@ export default { **/ SpRuntimeMultiSignature: { _enum: { - Ed25519: "SpCoreEd25519Signature", - Sr25519: "SpCoreSr25519Signature", - Ecdsa: "SpCoreEcdsaSignature" + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" } }, /** - * Lookup331: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: "[u8;64]", - /** - * Lookup333: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: "[u8;64]", - /** - * Lookup334: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: "[u8;65]", - /** - * Lookup336: pallet_nfts::types::PreSignedAttributes + * Lookup333: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3622,20 +3614,20 @@ export default { deadline: "u32" }, /** - * Lookup337: pallet_sudo::pallet::Error + * Lookup334: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup340: pallet_collator_selection::pallet::CandidateInfo + * Lookup337: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup342: pallet_collator_selection::pallet::Error + * Lookup339: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3659,17 +3651,17 @@ export default { ] }, /** - * Lookup346: sp_core::crypto::KeyTypeId + * Lookup343: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup347: pallet_session::pallet::Error + * Lookup344: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3679,13 +3671,13 @@ export default { lastIndex: "u16" }, /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState + * Lookup354: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup359: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3693,13 +3685,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup360: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup361: pallet_xcm::pallet::QueryStatus + * Lookup358: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3720,7 +3712,7 @@ export default { } }, /** - * Lookup365: xcm::VersionedResponse + * Lookup362: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3732,7 +3724,7 @@ export default { } }, /** - * Lookup371: pallet_xcm::pallet::VersionMigrationStage + * Lookup368: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3743,7 +3735,7 @@ export default { } }, /** - * Lookup374: xcm::VersionedAssetId + * Lookup371: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3755,7 +3747,7 @@ export default { } }, /** - * Lookup375: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3764,7 +3756,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup382: pallet_xcm::pallet::Error + * Lookup379: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3792,11 +3784,13 @@ export default { "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete" + "LocalExecutionIncomplete", + "UnableToDecode", + "XcmTooLarge" ] }, /** - * Lookup383: pallet_message_queue::BookState + * Lookup380: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3810,14 +3804,14 @@ export default { size_: "u64" }, /** - * Lookup385: pallet_message_queue::Neighbours + * Lookup382: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup387: pallet_message_queue::Page + * Lookup384: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3828,7 +3822,7 @@ export default { heap: "Bytes" }, /** - * Lookup389: pallet_message_queue::pallet::Error + * Lookup386: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3844,7 +3838,7 @@ export default { ] }, /** - * Lookup391: pallet_storage_providers::types::StorageProvider + * Lookup388: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3853,7 +3847,7 @@ export default { } }, /** - * Lookup392: pallet_storage_providers::types::BackupStorageProvider + * Lookup389: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3866,7 +3860,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup393: pallet_storage_providers::types::MainStorageProvider + * Lookup390: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3879,7 +3873,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup395: pallet_storage_providers::types::Bucket + * Lookup392: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3893,7 +3887,7 @@ export default { size_: "u64" }, /** - * Lookup398: pallet_storage_providers::pallet::Error + * Lookup395: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3927,7 +3921,7 @@ export default { ] }, /** - * Lookup399: pallet_file_system::types::StorageRequestMetadata + * Lookup396: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3947,19 +3941,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup404: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup401: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup413: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup410: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup414: pallet_file_system::pallet::Error + * Lookup411: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4023,7 +4017,7 @@ export default { ] }, /** - * Lookup421: pallet_proofs_dealer::pallet::Error + * Lookup418: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4052,7 +4046,7 @@ export default { ] }, /** - * Lookup424: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup421: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4061,7 +4055,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup425: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup422: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4070,14 +4064,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup426: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup423: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup427: pallet_payment_streams::pallet::Error + * Lookup424: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4100,7 +4094,7 @@ export default { ] }, /** - * Lookup428: pallet_bucket_nfts::pallet::Error + * Lookup425: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4111,7 +4105,7 @@ export default { ] }, /** - * Lookup429: pallet_nfts::types::CollectionDetails + * Lookup426: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4122,13 +4116,13 @@ export default { attributes: "u32" }, /** - * Lookup434: pallet_nfts::types::CollectionRole + * Lookup431: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup435: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup432: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4136,42 +4130,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup436: pallet_nfts::types::ItemDeposit + * Lookup433: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup441: pallet_nfts::types::CollectionMetadata + * Lookup438: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup442: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup439: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup443: pallet_nfts::types::ItemMetadataDeposit + * Lookup440: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup446: pallet_nfts::types::AttributeDeposit + * Lookup443: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup450: pallet_nfts::types::PendingSwap, Deadline> + * Lookup447: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4180,7 +4174,7 @@ export default { deadline: "u32" }, /** - * Lookup452: pallet_nfts::types::PalletFeature + * Lookup449: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4196,7 +4190,7 @@ export default { ] }, /** - * Lookup453: pallet_nfts::pallet::Error + * Lookup450: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4248,39 +4242,39 @@ export default { ] }, /** - * Lookup456: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup453: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup457: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup454: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup458: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup455: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup459: frame_system::extensions::check_genesis::CheckGenesis + * Lookup456: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup462: frame_system::extensions::check_nonce::CheckNonce + * Lookup459: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup463: frame_system::extensions::check_weight::CheckWeight + * Lookup460: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup464: pallet_transaction_payment::ChargeTransactionPayment + * Lookup461: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup465: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup462: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup466: storage_hub_runtime::Runtime + * Lookup463: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index 0f8bd2b0f..d64090637 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index 9d0190e24..a016dc9fa 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -2080,9 +2080,9 @@ declare const _default: { totalBytes: string; }; /** - * Lookup196: polkadot_primitives::v6::UpgradeGoAhead + * Lookup196: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: string[]; }; /** @@ -2094,18 +2094,18 @@ declare const _default: { consumedGoAheadSignal: string; }; /** - * Lookup198: polkadot_primitives::v6::PersistedValidationData + * Lookup198: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: string; relayParentNumber: string; relayParentStorageRoot: string; maxPovSize: string; }; /** - * Lookup201: polkadot_primitives::v6::UpgradeRestriction + * Lookup201: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: string[]; }; /** @@ -2131,9 +2131,9 @@ declare const _default: { remainingSize: string; }; /** - * Lookup208: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup208: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: string; maxTotalSize: string; maxMessageSize: string; @@ -2142,9 +2142,9 @@ declare const _default: { mqcHead: string; }; /** - * Lookup209: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup209: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: string; maxHeadDataSize: string; maxUpwardQueueCount: string; @@ -2157,9 +2157,9 @@ declare const _default: { asyncBackingParams: string; }; /** - * Lookup210: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup210: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: string; allowedAncestryLen: string; }; @@ -2469,11 +2469,7 @@ declare const _default: { **/ SpConsensusAuraSr25519AppSr25519Public: string; /** - * Lookup258: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: string; - /** - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup258: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2501,7 +2497,7 @@ declare const _default: { }; }; /** - * Lookup260: pallet_xcm::pallet::Call + * Lookup259: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2566,10 +2562,18 @@ declare const _default: { assets: string; beneficiary: string; }; + execute_blob: { + encodedMessage: string; + maxWeight: string; + }; + send_blob: { + dest: string; + encodedMessage: string; + }; }; }; /** - * Lookup261: xcm::VersionedXcm + * Lookup260: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2581,11 +2585,11 @@ declare const _default: { }; }; /** - * Lookup262: xcm::v2::Xcm + * Lookup261: xcm::v2::Xcm **/ XcmV2Xcm: string; /** - * Lookup264: xcm::v2::Instruction + * Lookup263: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2683,7 +2687,7 @@ declare const _default: { }; }; /** - * Lookup265: xcm::v2::Response + * Lookup264: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2694,7 +2698,7 @@ declare const _default: { }; }; /** - * Lookup268: xcm::v2::traits::Error + * Lookup267: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2727,7 +2731,7 @@ declare const _default: { }; }; /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup268: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2736,7 +2740,7 @@ declare const _default: { }; }; /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup269: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2748,13 +2752,13 @@ declare const _default: { }; }; /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup270: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup272: xcm::v2::WeightLimit + * Lookup271: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2763,11 +2767,11 @@ declare const _default: { }; }; /** - * Lookup273: xcm::v3::Xcm + * Lookup272: xcm::v3::Xcm **/ XcmV3Xcm: string; /** - * Lookup275: xcm::v3::Instruction + * Lookup274: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2909,7 +2913,7 @@ declare const _default: { }; }; /** - * Lookup276: xcm::v3::Response + * Lookup275: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2922,7 +2926,7 @@ declare const _default: { }; }; /** - * Lookup278: xcm::v3::PalletInfo + * Lookup277: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: string; @@ -2933,7 +2937,7 @@ declare const _default: { patch: string; }; /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup281: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: string; @@ -2941,7 +2945,7 @@ declare const _default: { maxWeight: string; }; /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup282: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2950,7 +2954,7 @@ declare const _default: { }; }; /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup283: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -2968,7 +2972,7 @@ declare const _default: { }; }; /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup284: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: string[]; @@ -3535,19 +3539,7 @@ declare const _default: { }; }; /** - * Lookup331: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: string; - /** - * Lookup333: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: string; - /** - * Lookup334: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: string; - /** - * Lookup336: pallet_nfts::types::PreSignedAttributes + * Lookup333: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3557,36 +3549,36 @@ declare const _default: { deadline: string; }; /** - * Lookup337: pallet_sudo::pallet::Error + * Lookup334: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup340: pallet_collator_selection::pallet::CandidateInfo + * Lookup337: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup342: pallet_collator_selection::pallet::Error + * Lookup339: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup346: sp_core::crypto::KeyTypeId + * Lookup343: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup347: pallet_session::pallet::Error + * Lookup344: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3596,13 +3588,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState + * Lookup354: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup359: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3610,13 +3602,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup360: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup361: pallet_xcm::pallet::QueryStatus + * Lookup358: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3637,7 +3629,7 @@ declare const _default: { }; }; /** - * Lookup365: xcm::VersionedResponse + * Lookup362: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3649,7 +3641,7 @@ declare const _default: { }; }; /** - * Lookup371: pallet_xcm::pallet::VersionMigrationStage + * Lookup368: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3660,7 +3652,7 @@ declare const _default: { }; }; /** - * Lookup374: xcm::VersionedAssetId + * Lookup371: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3672,7 +3664,7 @@ declare const _default: { }; }; /** - * Lookup375: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: string; @@ -3681,13 +3673,13 @@ declare const _default: { consumers: string; }; /** - * Lookup382: pallet_xcm::pallet::Error + * Lookup379: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: string[]; }; /** - * Lookup383: pallet_message_queue::BookState + * Lookup380: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3701,14 +3693,14 @@ declare const _default: { size_: string; }; /** - * Lookup385: pallet_message_queue::Neighbours + * Lookup382: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: string; next: string; }; /** - * Lookup387: pallet_message_queue::Page + * Lookup384: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: string; @@ -3719,13 +3711,13 @@ declare const _default: { heap: string; }; /** - * Lookup389: pallet_message_queue::pallet::Error + * Lookup386: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: string[]; }; /** - * Lookup391: pallet_storage_providers::types::StorageProvider + * Lookup388: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3734,7 +3726,7 @@ declare const _default: { }; }; /** - * Lookup392: pallet_storage_providers::types::BackupStorageProvider + * Lookup389: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: string; @@ -3747,7 +3739,7 @@ declare const _default: { reputationWeight: string; }; /** - * Lookup393: pallet_storage_providers::types::MainStorageProvider + * Lookup390: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: string; @@ -3760,7 +3752,7 @@ declare const _default: { paymentAccount: string; }; /** - * Lookup395: pallet_storage_providers::types::Bucket + * Lookup392: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3774,13 +3766,13 @@ declare const _default: { size_: string; }; /** - * Lookup398: pallet_storage_providers::pallet::Error + * Lookup395: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: string[]; }; /** - * Lookup399: pallet_file_system::types::StorageRequestMetadata + * Lookup396: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3800,31 +3792,31 @@ declare const _default: { bspsVolunteered: string; }; /** - * Lookup404: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup401: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: string; }; /** - * Lookup413: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup410: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: string; }; /** - * Lookup414: pallet_file_system::pallet::Error + * Lookup411: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: string[]; }; /** - * Lookup421: pallet_proofs_dealer::pallet::Error + * Lookup418: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: string[]; }; /** - * Lookup424: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup421: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: string; @@ -3833,7 +3825,7 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup425: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup422: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: string; @@ -3842,26 +3834,26 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup426: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup423: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: string; priceIndex: string; }; /** - * Lookup427: pallet_payment_streams::pallet::Error + * Lookup424: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: string[]; }; /** - * Lookup428: pallet_bucket_nfts::pallet::Error + * Lookup425: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: string[]; }; /** - * Lookup429: pallet_nfts::types::CollectionDetails + * Lookup426: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: string; @@ -3872,13 +3864,13 @@ declare const _default: { attributes: string; }; /** - * Lookup434: pallet_nfts::types::CollectionRole + * Lookup431: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: string[]; }; /** - * Lookup435: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup432: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: string; @@ -3886,42 +3878,42 @@ declare const _default: { deposit: string; }; /** - * Lookup436: pallet_nfts::types::ItemDeposit + * Lookup433: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: string; amount: string; }; /** - * Lookup441: pallet_nfts::types::CollectionMetadata + * Lookup438: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: string; data: string; }; /** - * Lookup442: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup439: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: string; data: string; }; /** - * Lookup443: pallet_nfts::types::ItemMetadataDeposit + * Lookup440: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: string; amount: string; }; /** - * Lookup446: pallet_nfts::types::AttributeDeposit + * Lookup443: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: string; amount: string; }; /** - * Lookup450: pallet_nfts::types::PendingSwap, Deadline> + * Lookup447: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: string; @@ -3930,51 +3922,51 @@ declare const _default: { deadline: string; }; /** - * Lookup452: pallet_nfts::types::PalletFeature + * Lookup449: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: string[]; }; /** - * Lookup453: pallet_nfts::pallet::Error + * Lookup450: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: string[]; }; /** - * Lookup456: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup453: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: string; /** - * Lookup457: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup454: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: string; /** - * Lookup458: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup455: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: string; /** - * Lookup459: frame_system::extensions::check_genesis::CheckGenesis + * Lookup456: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: string; /** - * Lookup462: frame_system::extensions::check_nonce::CheckNonce + * Lookup459: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: string; /** - * Lookup463: frame_system::extensions::check_weight::CheckWeight + * Lookup460: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: string; /** - * Lookup464: pallet_transaction_payment::ChargeTransactionPayment + * Lookup461: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: string; /** - * Lookup465: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup462: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup466: storage_hub_runtime::Runtime + * Lookup463: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index 34cf3a69b..2c791d76b 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -2592,7 +2592,7 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (189) */ interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { @@ -2608,8 +2608,8 @@ declare module "@polkadot/types/lookup" { readonly msgCount: u32; readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV6UpgradeGoAhead (196) */ - interface PolkadotPrimitivesV6UpgradeGoAhead extends Enum { + /** @name PolkadotPrimitivesV7UpgradeGoAhead (196) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; @@ -2618,17 +2618,17 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV6PersistedValidationData (198) */ - interface PolkadotPrimitivesV6PersistedValidationData extends Struct { + /** @name PolkadotPrimitivesV7PersistedValidationData (198) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV6UpgradeRestriction (201) */ - interface PolkadotPrimitivesV6UpgradeRestriction extends Enum { + /** @name PolkadotPrimitivesV7UpgradeRestriction (201) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } @@ -2640,8 +2640,8 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; } /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (205) */ interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity @@ -2649,8 +2649,8 @@ declare module "@polkadot/types/lookup" { readonly remainingCount: u32; readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV6AbridgedHrmpChannel (208) */ - interface PolkadotPrimitivesV6AbridgedHrmpChannel extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (208) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; readonly maxMessageSize: u32; @@ -2658,8 +2658,8 @@ declare module "@polkadot/types/lookup" { readonly totalSize: u32; readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV6AbridgedHostConfiguration (209) */ - interface PolkadotPrimitivesV6AbridgedHostConfiguration extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (209) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; readonly maxUpwardQueueCount: u32; @@ -2669,10 +2669,10 @@ declare module "@polkadot/types/lookup" { readonly hrmpMaxMessageNumPerCandidate: u32; readonly validationUpgradeCooldown: u32; readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV6AsyncBackingAsyncBackingParams (210) */ - interface PolkadotPrimitivesV6AsyncBackingAsyncBackingParams extends Struct { + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (210) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } @@ -2708,7 +2708,7 @@ declare module "@polkadot/types/lookup" { } /** @name CumulusPrimitivesParachainInherentParachainInherentData (219) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV6PersistedValidationData; + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; @@ -2969,10 +2969,8 @@ declare module "@polkadot/types/lookup" { readonly aura: SpConsensusAuraSr25519AppSr25519Public; } /** @name SpConsensusAuraSr25519AppSr25519Public (257) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} - /** @name SpCoreSr25519Public (258) */ - interface SpCoreSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (259) */ + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} + /** @name CumulusPalletXcmpQueueCall (258) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -2995,7 +2993,7 @@ declare module "@polkadot/types/lookup" { | "UpdateDropThreshold" | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (260) */ + /** @name PalletXcmCall (259) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3071,6 +3069,16 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; + readonly isExecuteBlob: boolean; + readonly asExecuteBlob: { + readonly encodedMessage: Bytes; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSendBlob: boolean; + readonly asSendBlob: { + readonly dest: XcmVersionedLocation; + readonly encodedMessage: Bytes; + } & Struct; readonly type: | "Send" | "TeleportAssets" @@ -3084,9 +3092,11 @@ declare module "@polkadot/types/lookup" { | "LimitedTeleportAssets" | "ForceSuspension" | "TransferAssets" - | "ClaimAssets"; + | "ClaimAssets" + | "ExecuteBlob" + | "SendBlob"; } - /** @name XcmVersionedXcm (261) */ + /** @name XcmVersionedXcm (260) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3096,9 +3106,9 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Xcm; readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (262) */ + /** @name XcmV2Xcm (261) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (264) */ + /** @name XcmV2Instruction (263) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3245,7 +3255,7 @@ declare module "@polkadot/types/lookup" { | "SubscribeVersion" | "UnsubscribeVersion"; } - /** @name XcmV2Response (265) */ + /** @name XcmV2Response (264) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3256,7 +3266,7 @@ declare module "@polkadot/types/lookup" { readonly asVersion: u32; readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (268) */ + /** @name XcmV2TraitsError (267) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3314,7 +3324,7 @@ declare module "@polkadot/types/lookup" { | "Barrier" | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (269) */ + /** @name XcmV2MultiassetMultiAssetFilter (268) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3322,7 +3332,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV2MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (270) */ + /** @name XcmV2MultiassetWildMultiAsset (269) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3332,22 +3342,22 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (271) */ + /** @name XcmV2MultiassetWildFungibility (270) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (272) */ + /** @name XcmV2WeightLimit (271) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; readonly asLimited: Compact; readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (273) */ + /** @name XcmV3Xcm (272) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (275) */ + /** @name XcmV3Instruction (274) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3576,7 +3586,7 @@ declare module "@polkadot/types/lookup" { | "AliasOrigin" | "UnpaidExecution"; } - /** @name XcmV3Response (276) */ + /** @name XcmV3Response (275) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3597,7 +3607,7 @@ declare module "@polkadot/types/lookup" { | "PalletsInfo" | "DispatchResult"; } - /** @name XcmV3PalletInfo (278) */ + /** @name XcmV3PalletInfo (277) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3606,13 +3616,13 @@ declare module "@polkadot/types/lookup" { readonly minor: Compact; readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (282) */ + /** @name XcmV3QueryResponseInfo (281) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (283) */ + /** @name XcmV3MultiassetMultiAssetFilter (282) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3620,7 +3630,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV3MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (284) */ + /** @name XcmV3MultiassetWildMultiAsset (283) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3638,7 +3648,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (285) */ + /** @name XcmV3MultiassetWildFungibility (284) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; @@ -4308,20 +4318,14 @@ declare module "@polkadot/types/lookup" { /** @name SpRuntimeMultiSignature (330) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; - readonly asEd25519: SpCoreEd25519Signature; + readonly asEd25519: U8aFixed; readonly isSr25519: boolean; - readonly asSr25519: SpCoreSr25519Signature; + readonly asSr25519: U8aFixed; readonly isEcdsa: boolean; - readonly asEcdsa: SpCoreEcdsaSignature; + readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name SpCoreEd25519Signature (331) */ - interface SpCoreEd25519Signature extends U8aFixed {} - /** @name SpCoreSr25519Signature (333) */ - interface SpCoreSr25519Signature extends U8aFixed {} - /** @name SpCoreEcdsaSignature (334) */ - interface SpCoreEcdsaSignature extends U8aFixed {} - /** @name PalletNftsPreSignedAttributes (336) */ + /** @name PalletNftsPreSignedAttributes (333) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4329,17 +4333,17 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletSudoError (337) */ + /** @name PalletSudoError (334) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (340) */ + /** @name PalletCollatorSelectionCandidateInfo (337) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (342) */ + /** @name PalletCollatorSelectionError (339) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4377,9 +4381,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (346) */ + /** @name SpCoreCryptoKeyTypeId (343) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (347) */ + /** @name PalletSessionError (344) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4393,7 +4397,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4401,26 +4405,26 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (357) */ + /** @name CumulusPalletXcmpQueueOutboundState (354) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (359) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (356) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (360) */ + /** @name CumulusPalletXcmpQueueError (357) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (361) */ + /** @name PalletXcmQueryStatus (358) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4441,7 +4445,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (365) */ + /** @name XcmVersionedResponse (362) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4451,7 +4455,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (371) */ + /** @name PalletXcmVersionMigrationStage (368) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4464,7 +4468,7 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (374) */ + /** @name XcmVersionedAssetId (371) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4472,14 +4476,14 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4AssetAssetId; readonly type: "V3" | "V4"; } - /** @name PalletXcmRemoteLockedFungibleRecord (375) */ + /** @name PalletXcmRemoteLockedFungibleRecord (372) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; readonly locker: XcmVersionedLocation; readonly consumers: Vec>; } - /** @name PalletXcmError (382) */ + /** @name PalletXcmError (379) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4506,6 +4510,8 @@ declare module "@polkadot/types/lookup" { readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; + readonly isUnableToDecode: boolean; + readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4531,9 +4537,11 @@ declare module "@polkadot/types/lookup" { | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete"; + | "LocalExecutionIncomplete" + | "UnableToDecode" + | "XcmTooLarge"; } - /** @name PalletMessageQueueBookState (383) */ + /** @name PalletMessageQueueBookState (380) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4542,12 +4550,12 @@ declare module "@polkadot/types/lookup" { readonly messageCount: u64; readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (385) */ + /** @name PalletMessageQueueNeighbours (382) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (387) */ + /** @name PalletMessageQueuePage (384) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4556,7 +4564,7 @@ declare module "@polkadot/types/lookup" { readonly last: u32; readonly heap: Bytes; } - /** @name PalletMessageQueueError (389) */ + /** @name PalletMessageQueueError (386) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4578,7 +4586,7 @@ declare module "@polkadot/types/lookup" { | "QueuePaused" | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (391) */ + /** @name PalletStorageProvidersStorageProvider (388) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4586,7 +4594,7 @@ declare module "@polkadot/types/lookup" { readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (392) */ + /** @name PalletStorageProvidersBackupStorageProvider (389) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4597,7 +4605,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (393) */ + /** @name PalletStorageProvidersMainStorageProvider (390) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4608,7 +4616,7 @@ declare module "@polkadot/types/lookup" { readonly ownerAccount: AccountId32; readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (395) */ + /** @name PalletStorageProvidersBucket (392) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4617,7 +4625,7 @@ declare module "@polkadot/types/lookup" { readonly readAccessGroupId: Option; readonly size_: u64; } - /** @name PalletStorageProvidersError (398) */ + /** @name PalletStorageProvidersError (395) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4675,7 +4683,7 @@ declare module "@polkadot/types/lookup" { | "InvalidEncodedAccountId" | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (399) */ + /** @name PalletFileSystemStorageRequestMetadata (396) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4690,15 +4698,15 @@ declare module "@polkadot/types/lookup" { readonly bspsConfirmed: u32; readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (404) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (401) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (413) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (410) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (414) */ + /** @name PalletFileSystemError (411) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -4816,7 +4824,7 @@ declare module "@polkadot/types/lookup" { | "BspDataServersExceeded" | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (421) */ + /** @name PalletProofsDealerError (418) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -4864,26 +4872,26 @@ declare module "@polkadot/types/lookup" { | "FailedToUpdateProviderAfterKeyRemoval" | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (424) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (421) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (425) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (422) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (426) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (423) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (427) */ + /** @name PalletPaymentStreamsError (424) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -4919,7 +4927,7 @@ declare module "@polkadot/types/lookup" { | "UserNotFlaggedAsWithoutFunds" | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (428) */ + /** @name PalletBucketNftsError (425) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -4931,7 +4939,7 @@ declare module "@polkadot/types/lookup" { | "NoCorrespondingCollection" | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (429) */ + /** @name PalletNftsCollectionDetails (426) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -4940,52 +4948,52 @@ declare module "@polkadot/types/lookup" { readonly itemConfigs: u32; readonly attributes: u32; } - /** @name PalletNftsCollectionRole (434) */ + /** @name PalletNftsCollectionRole (431) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; readonly isAdmin: boolean; readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (435) */ + /** @name PalletNftsItemDetails (432) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (436) */ + /** @name PalletNftsItemDeposit (433) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (441) */ + /** @name PalletNftsCollectionMetadata (438) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (442) */ + /** @name PalletNftsItemMetadata (439) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (443) */ + /** @name PalletNftsItemMetadataDeposit (440) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (446) */ + /** @name PalletNftsAttributeDeposit (443) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (450) */ + /** @name PalletNftsPendingSwap (447) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; readonly price: Option; readonly deadline: u32; } - /** @name PalletNftsPalletFeature (452) */ + /** @name PalletNftsPalletFeature (449) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -4993,7 +5001,7 @@ declare module "@polkadot/types/lookup" { readonly isSwaps: boolean; readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (453) */ + /** @name PalletNftsError (450) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5087,22 +5095,22 @@ declare module "@polkadot/types/lookup" { | "CollectionNotEmpty" | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (456) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (453) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (457) */ + /** @name FrameSystemExtensionsCheckSpecVersion (454) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (458) */ + /** @name FrameSystemExtensionsCheckTxVersion (455) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (459) */ + /** @name FrameSystemExtensionsCheckGenesis (456) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (462) */ + /** @name FrameSystemExtensionsCheckNonce (459) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (463) */ + /** @name FrameSystemExtensionsCheckWeight (460) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (464) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (461) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (465) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (462) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (466) */ + /** @name StorageHubRuntimeRuntime (463) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index 45d59e780..a619d90dd 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -2088,7 +2088,7 @@ export default { CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** * Lookup189: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth @@ -2106,9 +2106,9 @@ export default { totalBytes: "u32" }, /** - * Lookup196: polkadot_primitives::v6::UpgradeGoAhead + * Lookup196: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** @@ -2117,21 +2117,21 @@ export default { CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** - * Lookup198: polkadot_primitives::v6::PersistedValidationData + * Lookup198: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32" }, /** - * Lookup201: polkadot_primitives::v6::UpgradeRestriction + * Lookup201: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: ["Present"] }, /** @@ -2147,8 +2147,8 @@ export default { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>" + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" }, /** * Lookup205: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity @@ -2158,9 +2158,9 @@ export default { remainingSize: "u32" }, /** - * Lookup208: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup208: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", maxMessageSize: "u32", @@ -2169,9 +2169,9 @@ export default { mqcHead: "Option" }, /** - * Lookup209: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup209: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", maxUpwardQueueCount: "u32", @@ -2181,12 +2181,12 @@ export default { hrmpMaxMessageNumPerCandidate: "u32", validationUpgradeCooldown: "u32", validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV6AsyncBackingAsyncBackingParams" + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" }, /** - * Lookup210: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup210: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, @@ -2221,7 +2221,7 @@ export default { * Lookup219: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV6PersistedValidationData", + validationData: "PolkadotPrimitivesV7PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>" @@ -2516,13 +2516,9 @@ export default { /** * Lookup257: sp_consensus_aura::sr25519::app_sr25519::Public **/ - SpConsensusAuraSr25519AppSr25519Public: "SpCoreSr25519Public", + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup258: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: "[u8;32]", - /** - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup258: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2550,7 +2546,7 @@ export default { } }, /** - * Lookup260: pallet_xcm::pallet::Call + * Lookup259: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2614,11 +2610,19 @@ export default { claim_assets: { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" + }, + execute_blob: { + encodedMessage: "Bytes", + maxWeight: "SpWeightsWeightV2Weight" + }, + send_blob: { + dest: "XcmVersionedLocation", + encodedMessage: "Bytes" } } }, /** - * Lookup261: xcm::VersionedXcm + * Lookup260: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2630,11 +2634,11 @@ export default { } }, /** - * Lookup262: xcm::v2::Xcm + * Lookup261: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup264: xcm::v2::Instruction + * Lookup263: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2732,7 +2736,7 @@ export default { } }, /** - * Lookup265: xcm::v2::Response + * Lookup264: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2743,7 +2747,7 @@ export default { } }, /** - * Lookup268: xcm::v2::traits::Error + * Lookup267: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2776,7 +2780,7 @@ export default { } }, /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup268: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2785,7 +2789,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup269: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2797,13 +2801,13 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup270: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup272: xcm::v2::WeightLimit + * Lookup271: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2812,11 +2816,11 @@ export default { } }, /** - * Lookup273: xcm::v3::Xcm + * Lookup272: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup275: xcm::v3::Instruction + * Lookup274: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2958,7 +2962,7 @@ export default { } }, /** - * Lookup276: xcm::v3::Response + * Lookup275: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2971,7 +2975,7 @@ export default { } }, /** - * Lookup278: xcm::v3::PalletInfo + * Lookup277: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2982,7 +2986,7 @@ export default { patch: "Compact" }, /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup281: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -2990,7 +2994,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup282: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2999,7 +3003,7 @@ export default { } }, /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup283: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3017,7 +3021,7 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup284: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] @@ -3596,25 +3600,13 @@ export default { **/ SpRuntimeMultiSignature: { _enum: { - Ed25519: "SpCoreEd25519Signature", - Sr25519: "SpCoreSr25519Signature", - Ecdsa: "SpCoreEcdsaSignature" + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" } }, /** - * Lookup331: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: "[u8;64]", - /** - * Lookup333: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: "[u8;64]", - /** - * Lookup334: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: "[u8;65]", - /** - * Lookup336: pallet_nfts::types::PreSignedAttributes + * Lookup333: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3624,20 +3616,20 @@ export default { deadline: "u32" }, /** - * Lookup337: pallet_sudo::pallet::Error + * Lookup334: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup340: pallet_collator_selection::pallet::CandidateInfo + * Lookup337: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup342: pallet_collator_selection::pallet::Error + * Lookup339: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3661,17 +3653,17 @@ export default { ] }, /** - * Lookup346: sp_core::crypto::KeyTypeId + * Lookup343: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup347: pallet_session::pallet::Error + * Lookup344: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3681,13 +3673,13 @@ export default { lastIndex: "u16" }, /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState + * Lookup354: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup359: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3695,13 +3687,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup360: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup361: pallet_xcm::pallet::QueryStatus + * Lookup358: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3722,7 +3714,7 @@ export default { } }, /** - * Lookup365: xcm::VersionedResponse + * Lookup362: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3734,7 +3726,7 @@ export default { } }, /** - * Lookup371: pallet_xcm::pallet::VersionMigrationStage + * Lookup368: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3745,7 +3737,7 @@ export default { } }, /** - * Lookup374: xcm::VersionedAssetId + * Lookup371: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3757,7 +3749,7 @@ export default { } }, /** - * Lookup375: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3766,7 +3758,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup382: pallet_xcm::pallet::Error + * Lookup379: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3794,11 +3786,13 @@ export default { "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete" + "LocalExecutionIncomplete", + "UnableToDecode", + "XcmTooLarge" ] }, /** - * Lookup383: pallet_message_queue::BookState + * Lookup380: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3812,14 +3806,14 @@ export default { size_: "u64" }, /** - * Lookup385: pallet_message_queue::Neighbours + * Lookup382: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup387: pallet_message_queue::Page + * Lookup384: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3830,7 +3824,7 @@ export default { heap: "Bytes" }, /** - * Lookup389: pallet_message_queue::pallet::Error + * Lookup386: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3846,7 +3840,7 @@ export default { ] }, /** - * Lookup391: pallet_storage_providers::types::StorageProvider + * Lookup388: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3855,7 +3849,7 @@ export default { } }, /** - * Lookup392: pallet_storage_providers::types::BackupStorageProvider + * Lookup389: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3868,7 +3862,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup393: pallet_storage_providers::types::MainStorageProvider + * Lookup390: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3881,7 +3875,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup395: pallet_storage_providers::types::Bucket + * Lookup392: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3895,7 +3889,7 @@ export default { size_: "u64" }, /** - * Lookup398: pallet_storage_providers::pallet::Error + * Lookup395: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3929,7 +3923,7 @@ export default { ] }, /** - * Lookup399: pallet_file_system::types::StorageRequestMetadata + * Lookup396: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3949,19 +3943,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup404: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup401: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup413: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup410: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup414: pallet_file_system::pallet::Error + * Lookup411: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4025,7 +4019,7 @@ export default { ] }, /** - * Lookup421: pallet_proofs_dealer::pallet::Error + * Lookup418: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4054,7 +4048,7 @@ export default { ] }, /** - * Lookup424: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup421: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4063,7 +4057,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup425: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup422: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4072,14 +4066,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup426: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup423: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup427: pallet_payment_streams::pallet::Error + * Lookup424: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4102,7 +4096,7 @@ export default { ] }, /** - * Lookup428: pallet_bucket_nfts::pallet::Error + * Lookup425: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4113,7 +4107,7 @@ export default { ] }, /** - * Lookup429: pallet_nfts::types::CollectionDetails + * Lookup426: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4124,13 +4118,13 @@ export default { attributes: "u32" }, /** - * Lookup434: pallet_nfts::types::CollectionRole + * Lookup431: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup435: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup432: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4138,42 +4132,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup436: pallet_nfts::types::ItemDeposit + * Lookup433: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup441: pallet_nfts::types::CollectionMetadata + * Lookup438: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup442: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup439: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup443: pallet_nfts::types::ItemMetadataDeposit + * Lookup440: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup446: pallet_nfts::types::AttributeDeposit + * Lookup443: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup450: pallet_nfts::types::PendingSwap, Deadline> + * Lookup447: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4182,7 +4176,7 @@ export default { deadline: "u32" }, /** - * Lookup452: pallet_nfts::types::PalletFeature + * Lookup449: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4198,7 +4192,7 @@ export default { ] }, /** - * Lookup453: pallet_nfts::pallet::Error + * Lookup450: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4250,39 +4244,39 @@ export default { ] }, /** - * Lookup456: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup453: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup457: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup454: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup458: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup455: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup459: frame_system::extensions::check_genesis::CheckGenesis + * Lookup456: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup462: frame_system::extensions::check_nonce::CheckNonce + * Lookup459: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup463: frame_system::extensions::check_weight::CheckWeight + * Lookup460: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup464: pallet_transaction_payment::ChargeTransactionPayment + * Lookup461: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup465: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup462: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup466: storage_hub_runtime::Runtime + * Lookup463: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index e57685ca2..5dc699dd8 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -2706,7 +2706,7 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (189) */ @@ -2725,8 +2725,8 @@ declare module "@polkadot/types/lookup" { readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV6UpgradeGoAhead (196) */ - interface PolkadotPrimitivesV6UpgradeGoAhead extends Enum { + /** @name PolkadotPrimitivesV7UpgradeGoAhead (196) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; @@ -2736,19 +2736,19 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV6PersistedValidationData (198) */ - interface PolkadotPrimitivesV6PersistedValidationData extends Struct { + /** @name PolkadotPrimitivesV7PersistedValidationData (198) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV6UpgradeRestriction (201) */ - interface PolkadotPrimitivesV6UpgradeRestriction extends Enum { + /** @name PolkadotPrimitivesV7UpgradeRestriction (201) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } @@ -2762,8 +2762,8 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; } /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (205) */ @@ -2773,8 +2773,8 @@ declare module "@polkadot/types/lookup" { readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV6AbridgedHrmpChannel (208) */ - interface PolkadotPrimitivesV6AbridgedHrmpChannel extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (208) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; readonly maxMessageSize: u32; @@ -2783,8 +2783,8 @@ declare module "@polkadot/types/lookup" { readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV6AbridgedHostConfiguration (209) */ - interface PolkadotPrimitivesV6AbridgedHostConfiguration extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (209) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; readonly maxUpwardQueueCount: u32; @@ -2794,11 +2794,11 @@ declare module "@polkadot/types/lookup" { readonly hrmpMaxMessageNumPerCandidate: u32; readonly validationUpgradeCooldown: u32; readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV6AsyncBackingAsyncBackingParams (210) */ - interface PolkadotPrimitivesV6AsyncBackingAsyncBackingParams extends Struct { + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (210) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } @@ -2837,7 +2837,7 @@ declare module "@polkadot/types/lookup" { /** @name CumulusPrimitivesParachainInherentParachainInherentData (219) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV6PersistedValidationData; + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; @@ -3119,12 +3119,9 @@ declare module "@polkadot/types/lookup" { } /** @name SpConsensusAuraSr25519AppSr25519Public (257) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name SpCoreSr25519Public (258) */ - interface SpCoreSr25519Public extends U8aFixed {} - - /** @name CumulusPalletXcmpQueueCall (259) */ + /** @name CumulusPalletXcmpQueueCall (258) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -3148,7 +3145,7 @@ declare module "@polkadot/types/lookup" { | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (260) */ + /** @name PalletXcmCall (259) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3224,6 +3221,16 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; + readonly isExecuteBlob: boolean; + readonly asExecuteBlob: { + readonly encodedMessage: Bytes; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSendBlob: boolean; + readonly asSendBlob: { + readonly dest: XcmVersionedLocation; + readonly encodedMessage: Bytes; + } & Struct; readonly type: | "Send" | "TeleportAssets" @@ -3237,10 +3244,12 @@ declare module "@polkadot/types/lookup" { | "LimitedTeleportAssets" | "ForceSuspension" | "TransferAssets" - | "ClaimAssets"; + | "ClaimAssets" + | "ExecuteBlob" + | "SendBlob"; } - /** @name XcmVersionedXcm (261) */ + /** @name XcmVersionedXcm (260) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3251,10 +3260,10 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (262) */ + /** @name XcmV2Xcm (261) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (264) */ + /** @name XcmV2Instruction (263) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3402,7 +3411,7 @@ declare module "@polkadot/types/lookup" { | "UnsubscribeVersion"; } - /** @name XcmV2Response (265) */ + /** @name XcmV2Response (264) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3414,7 +3423,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (268) */ + /** @name XcmV2TraitsError (267) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3473,7 +3482,7 @@ declare module "@polkadot/types/lookup" { | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (269) */ + /** @name XcmV2MultiassetMultiAssetFilter (268) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3482,7 +3491,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (270) */ + /** @name XcmV2MultiassetWildMultiAsset (269) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3493,14 +3502,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (271) */ + /** @name XcmV2MultiassetWildFungibility (270) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (272) */ + /** @name XcmV2WeightLimit (271) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; @@ -3508,10 +3517,10 @@ declare module "@polkadot/types/lookup" { readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (273) */ + /** @name XcmV3Xcm (272) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (275) */ + /** @name XcmV3Instruction (274) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3741,7 +3750,7 @@ declare module "@polkadot/types/lookup" { | "UnpaidExecution"; } - /** @name XcmV3Response (276) */ + /** @name XcmV3Response (275) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3763,7 +3772,7 @@ declare module "@polkadot/types/lookup" { | "DispatchResult"; } - /** @name XcmV3PalletInfo (278) */ + /** @name XcmV3PalletInfo (277) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3773,14 +3782,14 @@ declare module "@polkadot/types/lookup" { readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (282) */ + /** @name XcmV3QueryResponseInfo (281) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (283) */ + /** @name XcmV3MultiassetMultiAssetFilter (282) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3789,7 +3798,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (284) */ + /** @name XcmV3MultiassetWildMultiAsset (283) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3808,7 +3817,7 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (285) */ + /** @name XcmV3MultiassetWildFungibility (284) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; @@ -4500,24 +4509,15 @@ declare module "@polkadot/types/lookup" { /** @name SpRuntimeMultiSignature (330) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; - readonly asEd25519: SpCoreEd25519Signature; + readonly asEd25519: U8aFixed; readonly isSr25519: boolean; - readonly asSr25519: SpCoreSr25519Signature; + readonly asSr25519: U8aFixed; readonly isEcdsa: boolean; - readonly asEcdsa: SpCoreEcdsaSignature; + readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name SpCoreEd25519Signature (331) */ - interface SpCoreEd25519Signature extends U8aFixed {} - - /** @name SpCoreSr25519Signature (333) */ - interface SpCoreSr25519Signature extends U8aFixed {} - - /** @name SpCoreEcdsaSignature (334) */ - interface SpCoreEcdsaSignature extends U8aFixed {} - - /** @name PalletNftsPreSignedAttributes (336) */ + /** @name PalletNftsPreSignedAttributes (333) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4526,19 +4526,19 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletSudoError (337) */ + /** @name PalletSudoError (334) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (340) */ + /** @name PalletCollatorSelectionCandidateInfo (337) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (342) */ + /** @name PalletCollatorSelectionError (339) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4577,10 +4577,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (346) */ + /** @name SpCoreCryptoKeyTypeId (343) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (347) */ + /** @name PalletSessionError (344) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4595,7 +4595,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4604,21 +4604,21 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (357) */ + /** @name CumulusPalletXcmpQueueOutboundState (354) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (359) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (356) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (360) */ + /** @name CumulusPalletXcmpQueueError (357) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -4626,7 +4626,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (361) */ + /** @name PalletXcmQueryStatus (358) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4648,7 +4648,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (365) */ + /** @name XcmVersionedResponse (362) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4659,7 +4659,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (371) */ + /** @name PalletXcmVersionMigrationStage (368) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4673,7 +4673,7 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (374) */ + /** @name XcmVersionedAssetId (371) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4682,7 +4682,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V3" | "V4"; } - /** @name PalletXcmRemoteLockedFungibleRecord (375) */ + /** @name PalletXcmRemoteLockedFungibleRecord (372) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; @@ -4690,7 +4690,7 @@ declare module "@polkadot/types/lookup" { readonly consumers: Vec>; } - /** @name PalletXcmError (382) */ + /** @name PalletXcmError (379) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4717,6 +4717,8 @@ declare module "@polkadot/types/lookup" { readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; + readonly isUnableToDecode: boolean; + readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4742,10 +4744,12 @@ declare module "@polkadot/types/lookup" { | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete"; + | "LocalExecutionIncomplete" + | "UnableToDecode" + | "XcmTooLarge"; } - /** @name PalletMessageQueueBookState (383) */ + /** @name PalletMessageQueueBookState (380) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4755,13 +4759,13 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (385) */ + /** @name PalletMessageQueueNeighbours (382) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (387) */ + /** @name PalletMessageQueuePage (384) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4771,7 +4775,7 @@ declare module "@polkadot/types/lookup" { readonly heap: Bytes; } - /** @name PalletMessageQueueError (389) */ + /** @name PalletMessageQueueError (386) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4794,7 +4798,7 @@ declare module "@polkadot/types/lookup" { | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (391) */ + /** @name PalletStorageProvidersStorageProvider (388) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4803,7 +4807,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (392) */ + /** @name PalletStorageProvidersBackupStorageProvider (389) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4815,7 +4819,7 @@ declare module "@polkadot/types/lookup" { readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (393) */ + /** @name PalletStorageProvidersMainStorageProvider (390) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4827,7 +4831,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (395) */ + /** @name PalletStorageProvidersBucket (392) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4837,7 +4841,7 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletStorageProvidersError (398) */ + /** @name PalletStorageProvidersError (395) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4896,7 +4900,7 @@ declare module "@polkadot/types/lookup" { | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (399) */ + /** @name PalletFileSystemStorageRequestMetadata (396) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4912,17 +4916,17 @@ declare module "@polkadot/types/lookup" { readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (404) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (401) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (413) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (410) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (414) */ + /** @name PalletFileSystemError (411) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -5041,7 +5045,7 @@ declare module "@polkadot/types/lookup" { | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (421) */ + /** @name PalletProofsDealerError (418) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -5090,7 +5094,7 @@ declare module "@polkadot/types/lookup" { | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (424) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (421) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; @@ -5098,7 +5102,7 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (425) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (422) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; @@ -5106,13 +5110,13 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (426) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (423) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (427) */ + /** @name PalletPaymentStreamsError (424) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5149,7 +5153,7 @@ declare module "@polkadot/types/lookup" { | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (428) */ + /** @name PalletBucketNftsError (425) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -5162,7 +5166,7 @@ declare module "@polkadot/types/lookup" { | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (429) */ + /** @name PalletNftsCollectionDetails (426) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -5172,7 +5176,7 @@ declare module "@polkadot/types/lookup" { readonly attributes: u32; } - /** @name PalletNftsCollectionRole (434) */ + /** @name PalletNftsCollectionRole (431) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; @@ -5180,44 +5184,44 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (435) */ + /** @name PalletNftsItemDetails (432) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (436) */ + /** @name PalletNftsItemDeposit (433) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (441) */ + /** @name PalletNftsCollectionMetadata (438) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (442) */ + /** @name PalletNftsItemMetadata (439) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (443) */ + /** @name PalletNftsItemMetadataDeposit (440) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (446) */ + /** @name PalletNftsAttributeDeposit (443) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (450) */ + /** @name PalletNftsPendingSwap (447) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; @@ -5225,7 +5229,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletNftsPalletFeature (452) */ + /** @name PalletNftsPalletFeature (449) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5234,7 +5238,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (453) */ + /** @name PalletNftsError (450) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5329,30 +5333,30 @@ declare module "@polkadot/types/lookup" { | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (456) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (453) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (457) */ + /** @name FrameSystemExtensionsCheckSpecVersion (454) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (458) */ + /** @name FrameSystemExtensionsCheckTxVersion (455) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (459) */ + /** @name FrameSystemExtensionsCheckGenesis (456) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (462) */ + /** @name FrameSystemExtensionsCheckNonce (459) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (463) */ + /** @name FrameSystemExtensionsCheckWeight (460) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (464) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (461) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (465) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (462) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (466) */ + /** @name StorageHubRuntimeRuntime (463) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 3b6fd7ee0..c8c74339f 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e4d07000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876365c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876364c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087636644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f72207468655c706f73736962696c696c7479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004000904013c737232353531393a3a5075626c6963000009040c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d00000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001341073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e74206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174614105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c53723235353139040035050148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e6174757265000200002d050c1c73705f636f72651c65643235353139245369676e617475726500000400310501205b75383b2036345d0000310500000340000000080035050c1c73705f636f72651c73723235353139245369676e617475726500000400310501205b75383b2036345d000039050c1c73705f636f7265146563647361245369676e6174757265000004003d05017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d00003d0500000341000000080041050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000045050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e49050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e00004d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015105045300000400550501185665633c543e000051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000550500000251050059050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d05000002610500610500000408000104006505000004086905380069050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00006d050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e71050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400750501185665633c543e000075050000020504007905084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007d05000004087905100081050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008505012c42547265655365743c543e000085050420425472656553657404045401e90100040089050000008905000002e901008d050000029105009105086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465950501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600009505086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000990500000408e901e502009d05086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000a1050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea5050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a90501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679ad0501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365b505014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a90504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000ad0504184f7074696f6e04045401b1050108104e6f6e6500000010536f6d650400b1050000010000b10500000408080800b505080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b9050000040810d90100bd050000040c30281000c1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c505045300000400c90501185665633c543e0000c50500000408d9011000c905000002c50500cd050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400d105013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000d10504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000d5050000040c1000d90500d905080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000dd050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273e10501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e50500000408981800e905000002e50500ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f105045300000400f50501185665633c543e0000f1050000040818d90100f505000002f10500f9050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd05085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273010601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000010604184f7074696f6e0404540105060108104e6f6e6500000010536f6d650400050600000100000506085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000090600000408e50110000d06085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561701106019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000011060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1906000004081d0610001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400210601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400250601584d61696e53746f7261676550726f76696465723c543e0001000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000025060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473290601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d06045300000400310601185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000031060000022d060035060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000039060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e673d060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370410601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073490601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000410604184f7074696f6e0404540145060108104e6f6e6500000010536f6d6504004506000001000045060000040834200049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060000040834340051060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000055060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d06045300000400610601185665633c543e00005d060000040800340061060000025d060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400690601185665633c543e000069060000024d06006d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400690601185665633c543e000071060000040810300075060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000079060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d060000040810340081060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000085060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e000089060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008d06012c42547265655365743c543e00008d06042042547265655365740404540134000400190200000091060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000095060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9906000004083410009d0600000408340000a1060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a9060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000ad060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67b1060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb5060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b9060000040c00101000bd0600000408001000c10600000408100000c5060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c906000400080138436f6c6c656374696f6e526f6c650000c9060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000cd060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401d10624417070726f76616c7301d506000c01146f776e65720001244163636f756e744964000124617070726f76616c73d5060124417070726f76616c7300011c6465706f736974d106011c4465706f7369740000d1060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000d5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400d906013842547265654d61703c4b2c20563e0000d906042042547265654d617008044b01000456010d02000400dd06000000dd06000002e10600e10600000408000d0200e5060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e9060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401ed062c537472696e674c696d6974000008011c6465706f736974ed06011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000ed060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f10600000410100d0281027d0200f506000004087502f90600f9060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000fd0600000408189c0001070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004000507012c42547265655365743c543e00000507042042547265655365740404540100000400a400000009070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e6500000d070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401110700040030013450616c6c657446656174757265000011070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000015070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1907102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e6174757265012905144578747261011d07000400380000001d07000004242107250729072d07310739073d074107450700210710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000250710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000290710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e040454000000002d0710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000310710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003507010c45726100003507102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000390710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e636500003d0710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000004107086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000450708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004907084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200a903040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000145050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100490504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c69737401004d050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000015905151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301005d050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405650500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016d05161041757261011041757261082c417574686f726974696573010071050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010079052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000171c41757261457874011c41757261457874082c417574686f72697469657301007105040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f00007d0504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010081050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301008d050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205990538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009d05302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e01a1051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230a5050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b90510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b90530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b905bd0504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100c10504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000cd050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202d505dd05040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200ed05040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f9051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501fd0574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e145061676573000108050509060d060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e1010c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e011506212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001906040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023425060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342d06040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234350604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023421060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013906282846696c6553797374656d012846696c6553797374656d443c53746f72616765526571756573747300010402343d060400004853746f72616765526571756573744273707300010802024d0651060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f72616765526571756573747300010802024d0698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402105506040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105906040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402106506040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e526571756573747301010402006d0604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e67526571756573747300010802024d067106040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b6574526571756573747300010802024d067506040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b657400010802024d0698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017906293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e657300010802027d069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501008106040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501008506040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210890604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01c904011d023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f9106100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0195062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000099060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000099060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029d06a10604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802029d06a50604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a90650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01ad062c284275636b65744e6674730001d504016d020001b1062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210b506040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b90698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202bd069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202c106c506040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02cd06040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210e50604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02e90604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202f106f506040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02fd06040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02010704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d0209070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e2046656174757265730d0720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e011507321907042448436865636b4e6f6e5a65726f53656e64657221079840436865636b5370656356657273696f6e25071038436865636b547856657273696f6e29071030436865636b47656e657369732d073438436865636b4d6f7274616c69747931073428436865636b4e6f6e63653907982c436865636b5765696768743d0798604368617267655472616e73616374696f6e5061796d656e744107985053746f726167655765696768745265636c61696d4507984907","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e4107000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400090401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d04000d0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000009040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c2870616c6c65745f78636d1870616c6c65741043616c6c04045400013c1073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676511040154426f783c56657273696f6e656458636d3c28293e3e00000455015741524e494e473a20444550524543415445442e206073656e64602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e20557365206073656e645f626c6f626020696e73746561642e3c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765750401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428011857656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e0049015741524e494e473a20444550524543415445442e206065786563757465602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e205573652060657865637574655f626c6f626020696e73746561642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e30657865637574655f626c6f6208013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e0001286d61785f776569676874280118576569676874000d28b04578656375746520616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004501416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220746865206d65737361676520636f756c6420626520657865637574656420636f6d706c6574656c79486f72206f6e6c79207061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e2473656e645f626c6f6208011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e000e18a453656e6420616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e0055015468652064657374696e6174696f6e2c206064657374602c2077696c6c20726563656976652074686973206d65737361676520776974682061206044657363656e644f726967696e6020696e737472756374696f6e090174686174206d616b657320746865206f726967696e206f6620746865206d65737361676520626520746865206f726967696e206f6e20746869732073797374656d2e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001504015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000015040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400190401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000019040000021d04001d040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000021040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400250401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000250404184f7074696f6e0404540129040108104e6f6e6500000010536f6d65040029040000010000290400000408102d04002d04100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003104100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003504013857696c644d756c74694173736574000100003504100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3904013c57696c6446756e676962696c697479000100003904100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100003d040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000041040c0c78636d0876330c58636d041043616c6c00000400450401585665633c496e737472756374696f6e3c43616c6c3e3e0000450400000249040049040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004104012458636d3c43616c6c3e0015002c536574417070656e64697804004104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00004d040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040051040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000051040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540155040453000004005d0401185665633c543e000055040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d04000002550400610404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000065040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006904100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404006d04013857696c644d756c74694173736574000100006d04100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007104100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009504015076343a3a58636d3c52756e74696d6543616c6c3e0004000079040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004007d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00007d0400000281040081040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c85040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000085040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000089040c0c78636d0876330c58636d041043616c6c000004008d0401585665633c496e737472756374696f6e3c43616c6c3e3e00008d0400000291040091040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008904012458636d3c43616c6c3e0015002c536574417070656e64697804008904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000095040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400990401585665633c496e737472756374696f6e3c43616c6c3e3e000099040000029d04009d040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009504012458636d3c43616c6c3e0015002c536574417070656e64697804009504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613505016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c5372323535313904002d050148737232353531393a3a5369676e617475726500010014456364736104003105014065636473613a3a5369676e6174757265000200002d05000003400000000800310500000341000000080035050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000039050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e3d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000041050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014505045300000400490501185665633c543e000045050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000049050000024505004d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5105000002550500550500000408000104005905000004085d0538005d050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000061050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e65050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400690501185665633c543e000069050000020504006d05084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007105000004086d05100075050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007905012c42547265655365743c543e000079050420425472656553657404045401e9010004007d050000007d05000002e9010081050000028505008505086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465890501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600008905086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e646564000100008d0500000408e901e502009105086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000095050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f717565726965729d0501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a10501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365a905014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d626572000200009d0504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a10504184f7074696f6e04045401a5050108104e6f6e6500000010536f6d650400a5050000010000a50500000408080800a905080c78636d4456657273696f6e6564526573706f6e736500010c08563204002104013076323a3a526573706f6e736500020008563304004d04013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000ad050000040810d90100b1050000040c30281000b5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b90500000408d9011000bd05000002b90500c1050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c505013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c50504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000c9050000040c1000cd0500cd05080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000d1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d905045300000400dd0501185665633c543e0000d90500000408981800dd05000002d90500e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e5050000040818d90100e905000002e50500ed050c2870616c6c65745f78636d1870616c6c6574144572726f7204045400016c2c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e38556e61626c65546f4465636f646500190454436f756c64206e6f74206465636f64652058434d2e2c58636d546f6f4c61726765001a088058434d20656e636f646564206c656e67746820697320746f6f206c617267652e1d0152657475726e6564207768656e20616e2058434d20656e636f646564206c656e677468206973206c6172676572207468616e20604d617858636d456e636f64656453697a65602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef105085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f50501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f50504184f7074696f6e04045401f9050108104e6f6e6500000010536f6d650400f9050000010000f905085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000fd0500000408e50110000106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000005060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000009060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d06000004081106100011060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400150601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400190601584d61696e53746f7261676550726f76696465723c543e0001000015060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000019060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574731d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400001d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012106045300000400250601185665633c543e000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000250600000221060029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6731060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370350601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370733d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000350604184f7074696f6e0404540139060108104e6f6e6500000010536f6d650400390600000100003906000004083420003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000041060000040834340045060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015106045300000400550601185665633c543e0000510600000408003400550600000251060059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e00005d0600000241060061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e000065060000040810300069060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400006d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e71060000040810340075060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008106012c42547265655365743c543e00008106042042547265655365740404540134000400190200000085060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000089060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d060000040834100091060000040834000095060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000099060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a5060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea9060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000ad060000040c00101000b10600000408001000b50600000408100000b9060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401bd06000400080138436f6c6c656374696f6e526f6c650000bd060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c1060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c50624417070726f76616c7301c906000c01146f776e65720001244163636f756e744964000124617070726f76616c73c9060124417070726f76616c7300011c6465706f736974c506011c4465706f7369740000c5060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000c9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400cd06013842547265654d61703c4b2c20563e0000cd06042042547265654d617008044b01000456010d02000400d106000000d106000002d50600d50600000408000d0200d9060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000dd060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e1062c537472696e674c696d6974000008011c6465706f736974e106011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e50600000410100d0281027d0200e906000004087502ed0600ed060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f10600000408189c00f5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f906012c42547265655365743c543e0000f906042042547265655365740404540100000400a4000000fd060c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000001070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401050700040030013450616c6c657446656174757265000005070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000009070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e617475726501290514457874726101110700040038000000110700000424150719071d07210725072d0731073507390700150710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000190710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000250710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002907010c45726100002907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00002d0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000310710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000390708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000003d07084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a90304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000139050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301003d0504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010041050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000014d05151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010051050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405590500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016105161041757261011041757261082c417574686f726974696573010065050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f7401006d052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006505040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000710504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010075050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010081050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802058d0538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009105302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01090401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0195051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104023099050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502ad0510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502ad0530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502ad05b10504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b50504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c1050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202c905d105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e010d0401b00001ed051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f10574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505fd0501060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c5020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402000d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023419060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234290604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023415060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e012d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023431060400004853746f7261676552657175657374427370730001080202410645060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202410698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402104d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200610604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020241066506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020241066906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202410698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e016d06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020271069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402107d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01c904011d023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8506100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0189062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300008d060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300008d060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029106950604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802029106990604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f01010402349d0650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a1062c284275636b65744e6674730001d504016d020001a5062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210a906040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202ad0698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b1069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b506b906040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02c106040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210d90604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02dd0604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e506e906040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02f106040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02f50604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d02fd060400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573010720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010907320d07042448436865636b4e6f6e5a65726f53656e64657215079840436865636b5370656356657273696f6e19071038436865636b547856657273696f6e1d071030436865636b47656e6573697321073438436865636b4d6f7274616c69747925073428436865636b4e6f6e63652d07982c436865636b576569676874310798604368617267655472616e73616374696f6e5061796d656e743507985053746f726167655765696768745265636c61696d3907983d07","id":"1"} \ No newline at end of file diff --git a/pallets/file-system/src/tests.rs b/pallets/file-system/src/tests.rs index c1c64084a..d299d45a3 100644 --- a/pallets/file-system/src/tests.rs +++ b/pallets/file-system/src/tests.rs @@ -2360,7 +2360,9 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(second_file_key).unwrap().msp, + file_system::StorageRequests::::get(second_file_key) + .unwrap() + .msp, Some((msp_id, true)) ); @@ -2511,7 +2513,9 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(second_file_key).unwrap().msp, + file_system::StorageRequests::::get(second_file_key) + .unwrap() + .msp, Some((msp_id, true)) ); @@ -2669,7 +2673,9 @@ mod msp_accept_storage_request { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(second_file_key).unwrap().msp, + file_system::StorageRequests::::get(second_file_key) + .unwrap() + .msp, Some((msp_id, true)) ); @@ -3756,7 +3762,7 @@ mod bsp_volunteer { // Assert that the RequestStorageBsps has the correct value assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: false, @@ -4369,7 +4375,7 @@ mod bsp_confirm { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -4388,7 +4394,7 @@ mod bsp_confirm { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -4472,7 +4478,7 @@ mod bsp_confirm { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: current_block, owner: owner_account_id.clone(), @@ -4491,7 +4497,7 @@ mod bsp_confirm { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, @@ -6960,7 +6966,7 @@ mod stop_storing_for_insolvent_user { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -7116,7 +7122,7 @@ mod stop_storing_for_insolvent_user { // Assert that the storage was updated assert_eq!( - FileSystem::storage_requests(file_key), + file_system::StorageRequests::::get(file_key), Some(StorageRequestMetadata { requested_at: 1, owner: owner_account_id.clone(), @@ -7135,7 +7141,7 @@ mod stop_storing_for_insolvent_user { // Assert that the RequestStorageBsps was updated assert_eq!( - FileSystem::storage_request_bsps(file_key, bsp_id) + file_system::StorageRequestBsps::::get(file_key, bsp_id) .expect("BSP should exist in storage"), StorageRequestBspsMetadata:: { confirmed: true, diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 75f51e107..6a530598c 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -73,8 +73,6 @@ sp-session = { workspace = true } sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-trie = { workspace = true } -# CRITICAL TODO: Remove this after upgrading to polkadot sdk v1.13.0 -sp-trie-polkadot-sdk = { workspace = true } sp-version = { workspace = true } # Polkadot diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index a056c6d7f..a4890680b 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -265,8 +265,8 @@ impl_runtime_apis! { } impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { - fn query_earliest_file_volunteer_block(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { - FileSystem::query_earliest_file_volunteer_block(bsp_id, file_key) + fn query_earliest_file_volunteer_tick(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { + FileSystem::query_earliest_file_volunteer_tick(bsp_id, file_key) } fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 254d95408..5ba68d749 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -27,7 +27,7 @@ mod xcm_config; // Substrate and Polkadot dependencies use core::marker::PhantomData; -use cumulus_pallet_parachain_system::{RelayChainStateProof, RelayNumberMonotonicallyIncreases}; +use cumulus_pallet_parachain_system::{ RelayNumberMonotonicallyIncreases}; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, @@ -65,8 +65,6 @@ use sp_runtime::{ use sp_std::collections::btree_set::BTreeSet; use sp_std::vec; use sp_trie::{CompactProof, LayoutV1, TrieConfiguration, TrieLayout}; -// CRITICAL TODO: Remove after upgrading to polkadot v1.13.0 -use sp_trie_polkadot_sdk::StorageProof; use sp_version::RuntimeVersion; use xcm::latest::prelude::BodyId; @@ -74,7 +72,7 @@ use xcm::latest::prelude::BodyId; use crate::{ weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, AccountId, Aura, Balance, Balances, Block, BlockNumber, BucketNfts, CollatorSelection, Hash, - MessageQueue, Nfts, Nonce, PalletInfo, ParachainInfo, ParachainSystem, PaymentStreams, + MessageQueue, Nfts, Nonce, PalletInfo, ParachainSystem, PaymentStreams, PolkadotXcm, ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, SessionKeys, Signature, System, WeightToFee, XcmpQueue, AVERAGE_ON_INITIALIZE_RATIO, BLOCK_PROCESSING_VELOCITY, DAYS, @@ -380,7 +378,8 @@ impl pallet_nfts::Config for Runtime { } /// Only callable after `set_validation_data` is called which forms this proof the same way -fn relay_chain_state_proof() -> RelayChainStateProof { +/// CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 +/* fn relay_chain_state_proof() -> RelayChainStateProof { // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 let relay_storage_root = DefaultMerkleRoot::::get(); /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() @@ -392,7 +391,7 @@ fn relay_chain_state_proof() -> RelayChainStateProof { .expect("set in `set_validation_data`"); */ RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") -} +} */ pub struct BabeDataGetter; impl pallet_randomness::GetBabeData for BabeDataGetter { diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index c4b6de07c..bc6cea3cb 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -31,7 +31,7 @@ use crate::storagehub::configs::xcm_config::XcmConfig; use crate::storagehub::MessageQueue; use crate::storagehub::PolkadotXcm; use core::marker::PhantomData; -use cumulus_pallet_parachain_system::{RelayChainStateProof, RelayNumberMonotonicallyIncreases}; +use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, @@ -58,7 +58,6 @@ use polkadot_runtime_common::{ }; use shp_file_metadata::ChunkId; use shp_traits::{CommitmentVerifier, MaybeDebug, TrieMutation, TrieProofDeltaApplier}; -use sp_api::StorageProof; use sp_consensus_aura::sr25519::AuthorityId as AuraId; use sp_core::{blake2_256, Get, Hasher, H256}; use sp_runtime::{ @@ -76,12 +75,12 @@ use xcm_simulator::XcmExecutor; use super::{ weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, AccountId, Aura, Balance, Balances, Block, BlockNumber, BucketNfts, CollatorSelection, Hash, - Nfts, Nonce, PalletInfo, ParachainInfo, ParachainSystem, PaymentStreams, ProofsDealer, - Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, - RuntimeOrigin, RuntimeTask, Session, SessionKeys, Signature, System, WeightToFee, XcmpQueue, - AVERAGE_ON_INITIALIZE_RATIO, BLOCK_PROCESSING_VELOCITY, DAYS, EXISTENTIAL_DEPOSIT, HOURS, - MAXIMUM_BLOCK_WEIGHT, MICROUNIT, MINUTES, NORMAL_DISPATCH_RATIO, - RELAY_CHAIN_SLOT_DURATION_MILLIS, SLOT_DURATION, UNINCLUDED_SEGMENT_CAPACITY, UNIT, VERSION, + Nfts, Nonce, PalletInfo, ParachainSystem, PaymentStreams, ProofsDealer, Providers, Runtime, + RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, + Session, SessionKeys, Signature, System, WeightToFee, XcmpQueue, AVERAGE_ON_INITIALIZE_RATIO, + BLOCK_PROCESSING_VELOCITY, DAYS, EXISTENTIAL_DEPOSIT, HOURS, MAXIMUM_BLOCK_WEIGHT, MICROUNIT, + MINUTES, NORMAL_DISPATCH_RATIO, RELAY_CHAIN_SLOT_DURATION_MILLIS, SLOT_DURATION, + UNINCLUDED_SEGMENT_CAPACITY, UNIT, VERSION, }; use xcm_config::{RelayLocation, XcmOriginToTransactDispatchOrigin}; @@ -378,9 +377,10 @@ impl pallet_nfts::Config for Runtime { } /// Only callable after `set_validation_data` is called which forms this proof the same way -fn relay_chain_state_proof() -> RelayChainStateProof { +/// CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 +/* fn relay_chain_state_proof() -> RelayChainStateProof { // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 - let relay_storage_root = DefaultMerkleRoot::>::get(); + let relay_storage_root = DefaultMerkleRoot::::get(); /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() .expect("set in `set_validation_data`") .relay_parent_storage_root; */ @@ -390,7 +390,7 @@ fn relay_chain_state_proof() -> RelayChainStateProof { .expect("set in `set_validation_data`"); */ RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") -} +} */ pub struct BabeDataGetter; impl pallet_randomness::GetBabeData for BabeDataGetter { From 570e54852ef8c1a68d5da20b16f30c0ca64fb09b Mon Sep 17 00:00:00 2001 From: TDemeco Date: Sat, 28 Sep 2024 10:50:14 -0300 Subject: [PATCH 13/24] style: :rotating_light: run cargo fmt --- runtime/src/configs/mod.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 5ba68d749..93fa0617f 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -27,7 +27,7 @@ mod xcm_config; // Substrate and Polkadot dependencies use core::marker::PhantomData; -use cumulus_pallet_parachain_system::{ RelayNumberMonotonicallyIncreases}; +use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, @@ -72,8 +72,8 @@ use xcm::latest::prelude::BodyId; use crate::{ weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, AccountId, Aura, Balance, Balances, Block, BlockNumber, BucketNfts, CollatorSelection, Hash, - MessageQueue, Nfts, Nonce, PalletInfo, ParachainSystem, PaymentStreams, - PolkadotXcm, ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, + MessageQueue, Nfts, Nonce, PalletInfo, ParachainSystem, PaymentStreams, PolkadotXcm, + ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, SessionKeys, Signature, System, WeightToFee, XcmpQueue, AVERAGE_ON_INITIALIZE_RATIO, BLOCK_PROCESSING_VELOCITY, DAYS, EXISTENTIAL_DEPOSIT, HOURS, MAXIMUM_BLOCK_WEIGHT, MICROUNIT, MILLIUNIT, MINUTES, From 9bb33cc14a99c792124ce01c7ef8b4f87700d6e8 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Mon, 30 Sep 2024 15:19:12 -0300 Subject: [PATCH 14/24] feat: :package: initial update to polkadot sdk v1.11.0 --- Cargo.lock | 3205 ++++++++--------- Cargo.toml | 194 +- node/src/cli.rs | 5 - node/src/command.rs | 11 +- node/src/service.rs | 50 +- pallets/file-system/src/lib.rs | 8 +- pallets/file-system/src/types.rs | 6 +- runtime/Cargo.toml | 2 - runtime/src/apis.rs | 14 +- runtime/src/configs/mod.rs | 2 +- runtime/src/configs/xcm_config.rs | 18 +- xcm-simulator/Cargo.toml | 2 - xcm-simulator/src/storagehub/apis.rs | 14 +- xcm-simulator/src/storagehub/configs/mod.rs | 2 +- .../src/storagehub/configs/xcm_config.rs | 17 +- 15 files changed, 1726 insertions(+), 1824 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index aa6636057..eb9229587 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -592,8 +592,24 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", + "asn1-rs-derive 0.4.0", + "asn1-rs-impl 0.1.0", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" +dependencies = [ + "asn1-rs-derive 0.5.1", + "asn1-rs-impl 0.2.0", "displaydoc", "nom", "num-traits", @@ -614,6 +630,18 @@ dependencies = [ "synstructure 0.12.6", ] +[[package]] +name = "asn1-rs-derive" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", + "synstructure 0.13.1", +] + [[package]] name = "asn1-rs-impl" version = "0.1.0" @@ -625,6 +653,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "asn1-rs-impl" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "assert_matches" version = "1.5.0" @@ -951,7 +990,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hash-db", "log", @@ -1168,12 +1207,12 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -1388,7 +1427,20 @@ dependencies = [ "multibase", "multihash 0.17.0", "serde", - "unsigned-varint", + "unsigned-varint 0.7.2", +] + +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash 0.18.1", + "serde", + "unsigned-varint 0.7.2", ] [[package]] @@ -1906,7 +1958,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "clap", "parity-scale-codec", @@ -1915,15 +1967,15 @@ dependencies = [ "sc-client-api", "sc-service", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "url", ] [[package]] name = "cumulus-client-collator" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1938,15 +1990,15 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1970,16 +2022,16 @@ dependencies = [ "sc-telemetry", "schnellru", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "tracing", @@ -1988,7 +2040,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2006,10 +2058,10 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -2017,22 +2069,22 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", "sp-consensus", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "cumulus-client-network" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2046,16 +2098,16 @@ dependencies = [ "sc-client-api", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2066,20 +2118,20 @@ dependencies = [ "sc-client-api", "scale-info", "sp-api 26.0.0", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2096,14 +2148,14 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2131,16 +2183,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-pallet-parachain-system", "frame-support 28.0.0", @@ -2149,16 +2201,16 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "frame-benchmarking 28.0.0", @@ -2167,16 +2219,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2195,23 +2247,23 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-version 29.0.0", "staging-xcm 7.0.0", - "trie-db 0.28.0", + "trie-db 0.29.1", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2222,37 +2274,37 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2266,10 +2318,10 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -2277,63 +2329,65 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-primitives 7.0.0", "sp-api 26.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-core" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2343,14 +2397,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -2359,9 +2413,9 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -2370,7 +2424,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2386,15 +2440,15 @@ dependencies = [ "sc-tracing", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2405,14 +2459,14 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-blockchain", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -2423,7 +2477,7 @@ dependencies = [ "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-chain-api", @@ -2445,7 +2499,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "tokio", "tracing", @@ -2454,7 +2508,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2478,10 +2532,10 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -2493,15 +2547,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -2691,7 +2745,21 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" +dependencies = [ + "asn1-rs 0.6.2", "displaydoc", "nom", "num-bigint", @@ -3125,6 +3193,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "enumflags2" version = "0.7.10" @@ -3451,7 +3531,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", ] @@ -3474,7 +3554,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-support-procedural 23.0.0", @@ -3486,13 +3566,13 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -3525,7 +3605,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -3545,6 +3625,7 @@ dependencies = [ "rand", "rand_pcg", "sc-block-builder", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", @@ -3555,17 +3636,18 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "thousands", ] @@ -3585,7 +3667,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3596,18 +3678,18 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -3631,7 +3713,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "aquamarine 0.3.3", "frame-support 28.0.0", @@ -3640,11 +3722,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -3659,32 +3741,10 @@ dependencies = [ "serde", ] -[[package]] -name = "frame-remote-externalities" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "futures", - "indicatif", - "jsonrpsee", - "log", - "parity-scale-codec", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "spinners", - "substrate-rpc-client", - "tokio", - "tokio-retry", -] - [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "aquamarine 0.5.0", "array-bytes 6.2.3", @@ -3704,20 +3764,20 @@ dependencies = [ "serde_json", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing-proc-macro 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", "static_assertions", "tt-call", ] @@ -3748,9 +3808,9 @@ dependencies = [ "sp-api 27.0.1", "sp-arithmetic 24.0.0", "sp-core 29.0.0", - "sp-crypto-hashing-proc-macro 0.1.0", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-genesis-builder 0.8.0", + "sp-genesis-builder 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-inherents 27.0.0", "sp-io 31.0.0", "sp-metadata-ir 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3767,19 +3827,19 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse 0.2.0", "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "syn 2.0.75", ] @@ -3819,9 +3879,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -3842,7 +3902,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro2", "quote", @@ -3852,7 +3912,7 @@ dependencies = [ [[package]] name = "frame-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cfg-if", "docify", @@ -3861,12 +3921,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", ] [[package]] @@ -3893,22 +3953,22 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -3917,13 +3977,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -4369,6 +4429,51 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +[[package]] +name = "hickory-proto" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", +] + [[package]] name = "hkdf" version = "0.12.4" @@ -4564,6 +4669,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.5.0" @@ -4678,19 +4793,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" -[[package]] -name = "indicatif" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -] - [[package]] name = "inout" version = "0.1.3" @@ -4843,7 +4945,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" dependencies = [ "jsonrpsee-core", - "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", @@ -4898,26 +4999,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" -dependencies = [ - "async-trait", - "hyper", - "hyper-rustls", - "jsonrpsee-core", - "jsonrpsee-types", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - [[package]] name = "jsonrpsee-proc-macros" version = "0.22.5" @@ -5180,7 +5261,7 @@ dependencies = [ "rw-stream-sink", "smallvec", "thiserror", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", ] @@ -5262,7 +5343,7 @@ dependencies = [ "smallvec", "thiserror", "uint", - "unsigned-varint", + "unsigned-varint 0.7.2", "void", ] @@ -5442,7 +5523,7 @@ dependencies = [ "rustls 0.20.9", "thiserror", "webpki", - "x509-parser", + "x509-parser 0.14.0", "yasna", ] @@ -5642,6 +5723,56 @@ dependencies = [ "keystream", ] +[[package]] +name = "litep2p" +version = "0.7.0" +source = "git+https://github.com/paritytech/litep2p?branch=master#d765111b90b8767d7816871cf8343c247e33ae8c" +dependencies = [ + "async-trait", + "bs58 0.5.1", + "bytes", + "cid 0.10.1", + "ed25519-dalek", + "futures", + "futures-timer", + "hex-literal", + "hickory-resolver", + "indexmap 2.4.0", + "libc", + "mockall 0.13.0", + "multiaddr", + "multihash 0.17.0", + "network-interface", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "prost 0.12.6", + "prost-build 0.13.3", + "rand", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "serde", + "sha2 0.10.8", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.7", + "static_assertions", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", + "uint", + "unsigned-varint 0.8.0", + "url", + "x25519-dalek 2.0.1", + "x509-parser 0.16.0", + "yasna", + "zeroize", +] + [[package]] name = "lock_api" version = "0.4.12" @@ -5759,12 +5890,6 @@ dependencies = [ "syn 2.0.75", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "match_cfg" version = "0.1.0" @@ -5953,7 +6078,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "log", @@ -5964,24 +6089,24 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "mmr-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -5994,8 +6119,22 @@ dependencies = [ "downcast", "fragile", "lazy_static", - "mockall_derive", - "predicates", + "mockall_derive 0.11.4", + "predicates 2.1.5", + "predicates-tree", +] + +[[package]] +name = "mockall" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "mockall_derive 0.13.0", + "predicates 3.1.2", "predicates-tree", ] @@ -6011,6 +6150,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "mockall_derive" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "multiaddr" version = "0.17.1" @@ -6026,7 +6177,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint", + "unsigned-varint 0.7.2", "url", ] @@ -6055,7 +6206,7 @@ dependencies = [ "multihash-derive 0.8.1", "sha2 0.10.8", "sha3", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -6064,11 +6215,15 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", "core2", "digest 0.10.7", "multihash-derive 0.8.1", "sha2 0.10.8", - "unsigned-varint", + "sha3", + "unsigned-varint 0.7.2", ] [[package]] @@ -6078,7 +6233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -6163,7 +6318,7 @@ dependencies = [ "log", "pin-project", "smallvec", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -6274,6 +6429,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "network-interface" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +dependencies = [ + "cc", + "libc", + "thiserror", + "winapi", +] + [[package]] name = "nix" version = "0.24.3" @@ -6427,12 +6594,6 @@ dependencies = [ "libc", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.30.4" @@ -6469,7 +6630,16 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", +] + +[[package]] +name = "oid-registry" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" +dependencies = [ + "asn1-rs 0.6.2", ] [[package]] @@ -6553,34 +6723,35 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", + "log", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-asset-rate" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -6602,7 +6773,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6611,16 +6782,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-assets" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "29.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6628,15 +6799,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6644,26 +6815,26 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-authority-discovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-authority-discovery 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -6686,15 +6857,15 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -6715,7 +6886,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6726,14 +6897,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -6764,7 +6935,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "aquamarine 0.5.0", "docify", @@ -6776,17 +6947,17 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-balances" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -6795,8 +6966,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -6819,7 +6990,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6830,16 +7001,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-beefy-mmr" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -6854,17 +7025,17 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6873,27 +7044,29 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-broker" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", + "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -6933,18 +7106,18 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] [[package]] name = "pallet-child-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6954,35 +7127,36 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "log", "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", "rand", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6990,16 +7164,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-conviction-voting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7008,15 +7182,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-democracy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7025,16 +7199,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7045,12 +7219,12 @@ dependencies = [ "parity-scale-codec", "rand", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "strum 0.26.3", ] @@ -7081,15 +7255,15 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7110,7 +7284,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7118,18 +7292,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-fast-unstake" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7139,10 +7313,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7187,11 +7361,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7202,13 +7376,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "pallet-grandpa" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7218,20 +7392,20 @@ dependencies = [ "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-identity" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7240,9 +7414,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7266,7 +7440,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7275,35 +7449,35 @@ dependencies = [ "pallet-authorship 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-indices" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-membership" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7311,16 +7485,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-message-queue" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -7329,12 +7503,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] @@ -7361,7 +7535,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7369,17 +7543,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-multisig" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7387,15 +7561,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7404,32 +7578,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-nis" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7437,18 +7611,18 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7459,27 +7633,27 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-offences" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7488,15 +7662,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-offences-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7512,19 +7686,37 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] -name = "pallet-payment-streams" +name = "pallet-parameters" version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ + "docify", "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", - "pallet-balances 28.0.0", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-payment-streams" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", "pallet-nfts", "pallet-payment-streams-runtime-api", "pallet-storage-providers", @@ -7532,9 +7724,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7545,14 +7737,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-preimage" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7560,10 +7752,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7583,10 +7775,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7597,23 +7789,23 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-proxy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7628,16 +7820,16 @@ dependencies = [ "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-ranked-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7646,32 +7838,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-recovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-referenda" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7681,31 +7873,31 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-root-testing" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-scheduler" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7714,16 +7906,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] name = "pallet-session" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7732,14 +7924,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7768,7 +7960,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7777,15 +7969,15 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "rand", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-society" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7794,16 +7986,16 @@ dependencies = [ "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-staking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7816,11 +8008,11 @@ dependencies = [ "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7849,7 +8041,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -7860,10 +8052,10 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "log", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", ] [[package]] @@ -7879,7 +8071,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -7889,7 +8081,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7897,10 +8089,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -7920,10 +8112,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7934,13 +8126,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "pallet-sudo" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7948,15 +8140,15 @@ dependencies = [ "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-timestamp" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7966,10 +8158,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-timestamp 26.0.0", ] @@ -7997,7 +8189,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8007,26 +8199,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-transaction-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -8049,35 +8241,35 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "pallet-transaction-payment 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", ] [[package]] name = "pallet-treasury" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -8088,9 +8280,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -8116,7 +8308,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8124,30 +8316,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-utility" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-vesting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8155,8 +8347,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -8178,7 +8370,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8186,14 +8378,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "pallet-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bounded-collections", "frame-benchmarking 28.0.0", @@ -8204,10 +8396,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8217,7 +8409,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8225,9 +8417,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8236,7 +8428,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8254,10 +8446,10 @@ dependencies = [ "polkadot-primitives 7.0.0", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", @@ -8595,7 +8787,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "futures", @@ -8615,7 +8807,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "always-assert", "futures", @@ -8631,7 +8823,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "derive_more", "fatality", @@ -8645,8 +8837,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "rand", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -8654,7 +8846,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "fatality", @@ -8677,7 +8869,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cfg-if", "clap", @@ -8693,20 +8885,19 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-build-script-utils", "thiserror", - "try-runtime-cli", ] [[package]] name = "polkadot-collator-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "fatality", @@ -8717,9 +8908,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "thiserror", "tokio-util", "tracing-gum", @@ -8728,25 +8919,13 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "polkadot-core-primitives" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -8765,7 +8944,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "derive_more", "fatality", @@ -8781,8 +8960,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-network", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -8790,21 +8969,21 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives 7.0.0", "reed-solomon-novelpoly", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", ] [[package]] name = "polkadot-gossip-support" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "futures-timer", @@ -8816,17 +8995,17 @@ dependencies = [ "rand_chacha 0.3.1", "sc-network", "sc-network-common", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "always-assert", "async-trait", @@ -8849,7 +9028,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "parity-scale-codec", @@ -8858,7 +9037,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-maybe-compressed-blob", "thiserror", "tracing-gum", @@ -8867,7 +9046,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "derive_more", @@ -8889,10 +9068,10 @@ dependencies = [ "sc-keystore", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", "tracing-gum", ] @@ -8900,7 +9079,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "futures", @@ -8922,7 +9101,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "fatality", @@ -8934,7 +9113,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "polkadot-statement-table", "schnellru", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -8942,13 +9121,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", "wasm-timer", @@ -8957,7 +9136,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -8978,7 +9157,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "polkadot-node-metrics", @@ -8992,7 +9171,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "futures-timer", @@ -9009,7 +9188,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "fatality", "futures", @@ -9028,7 +9207,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -9045,7 +9224,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "fatality", @@ -9062,7 +9241,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "fatality", @@ -9080,7 +9259,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -9088,11 +9267,9 @@ dependencies = [ "cfg-if", "futures", "futures-timer", - "is_executable", - "libc", "parity-scale-codec", "pin-project", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-node-core-pvf-common", "polkadot-node-metrics", "polkadot-node-primitives", @@ -9101,9 +9278,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "rand", "slotmap", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "tempfile", "thiserror", "tokio", @@ -9113,7 +9288,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "polkadot-node-primitives", @@ -9121,7 +9296,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -9129,9 +9304,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "cfg-if", "cpu-time", "futures", "landlock", @@ -9144,11 +9318,11 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "seccompiler", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tracing-gum", ] @@ -9156,7 +9330,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "polkadot-node-metrics", @@ -9171,7 +9345,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "lazy_static", "log", @@ -9181,7 +9355,8 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives 7.0.0", "sc-network", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sc-network-types", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tokio", ] @@ -9189,7 +9364,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bs58 0.5.1", "futures", @@ -9208,7 +9383,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9224,6 +9399,8 @@ dependencies = [ "rand", "sc-authority-discovery", "sc-network", + "sc-network-types", + "sp-runtime 31.0.1", "strum 0.26.3", "thiserror", "tracing-gum", @@ -9232,7 +9409,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "bounded-vec", @@ -9242,12 +9419,12 @@ dependencies = [ "polkadot-primitives 7.0.0", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", "zstd 0.12.4", ] @@ -9255,7 +9432,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9265,7 +9442,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "bitvec", @@ -9279,13 +9456,14 @@ dependencies = [ "polkadot-statement-table", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "smallvec", "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -9293,7 +9471,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "derive_more", @@ -9318,9 +9496,9 @@ dependencies = [ "rand", "sc-client-api", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -9328,7 +9506,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -9342,7 +9520,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-client-api", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -9350,18 +9528,18 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bounded-collections", "derive_more", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] @@ -9385,28 +9563,28 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "hex-literal", "log", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -9440,7 +9618,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9464,8 +9642,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] @@ -9473,7 +9651,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -9507,14 +9685,14 @@ dependencies = [ "serde_derive", "slot-range-helper 7.0.0", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -9590,14 +9768,14 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bs58 0.5.1", "frame-benchmarking 28.0.0", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -9617,7 +9795,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9638,7 +9816,7 @@ dependencies = [ "pallet-timestamp 27.0.0", "pallet-vesting 28.0.0", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-metrics 7.0.0", @@ -9648,16 +9826,16 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", "static_assertions", @@ -9715,7 +9893,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "bitvec", @@ -9743,7 +9921,7 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -9809,21 +9987,21 @@ dependencies = [ "sp-consensus-babe 0.32.0", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-timestamp 26.0.0", "sp-transaction-pool", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "substrate-prometheus-endpoint", "thiserror", @@ -9835,7 +10013,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -9849,7 +10027,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "sp-staking 26.0.0", "thiserror", "tracing-gum", @@ -9858,11 +10036,11 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "tracing-gum", ] @@ -10076,6 +10254,16 @@ dependencies = [ "regex", ] +[[package]] +name = "predicates" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" +dependencies = [ + "anstyle", + "predicates-core", +] + [[package]] name = "predicates-core" version = "1.0.8" @@ -10270,6 +10458,16 @@ dependencies = [ "prost-derive 0.12.6", ] +[[package]] +name = "prost" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +dependencies = [ + "bytes", + "prost-derive 0.13.3", +] + [[package]] name = "prost-build" version = "0.11.9" @@ -10313,6 +10511,27 @@ dependencies = [ "tempfile", ] +[[package]] +name = "prost-build" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.10.5", + "log", + "multimap 0.8.3", + "once_cell", + "petgraph", + "prettyplease 0.2.20", + "prost 0.13.3", + "prost-types 0.13.3", + "regex", + "syn 2.0.75", + "tempfile", +] + [[package]] name = "prost-derive" version = "0.11.9" @@ -10339,6 +10558,19 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "prost-derive" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "prost-types" version = "0.11.9" @@ -10357,6 +10589,15 @@ dependencies = [ "prost 0.12.6", ] +[[package]] +name = "prost-types" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" +dependencies = [ + "prost 0.13.3", +] + [[package]] name = "psm" version = "0.1.21" @@ -10406,7 +10647,7 @@ dependencies = [ "bytes", "quick-protobuf", "thiserror", - "unsigned-varint", + "unsigned-varint 0.7.2", ] [[package]] @@ -10819,9 +11060,10 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "binary-merkle-tree", + "bitvec", "frame-benchmarking 28.0.0", "frame-executive", "frame-support 28.0.0", @@ -10853,6 +11095,7 @@ dependencies = [ "pallet-multisig", "pallet-nis", "pallet-offences", + "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", @@ -10884,24 +11127,26 @@ dependencies = [ "scale-info", "serde", "serde_derive", + "serde_json", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-consensus-grandpa", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -10915,15 +11160,15 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -11211,18 +11456,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -11231,7 +11476,7 @@ dependencies = [ "libp2p", "linked_hash_set", "log", - "multihash 0.18.1", + "multihash 0.17.0", "multihash-codetable", "parity-scale-codec", "prost 0.12.6", @@ -11239,12 +11484,13 @@ dependencies = [ "rand", "sc-client-api", "sc-network", + "sc-network-types", "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11252,7 +11498,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "futures-timer", @@ -11265,31 +11511,31 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sc-chain-spec" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "docify", @@ -11304,18 +11550,19 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-genesis-builder 0.7.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sc-chain-spec-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -11326,7 +11573,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -11354,11 +11601,11 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", "tokio", @@ -11367,7 +11614,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "fnv", "futures", @@ -11380,21 +11627,21 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hash-db", "kvdb", @@ -11408,36 +11655,36 @@ dependencies = [ "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sc-consensus" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", "futures-timer", - "libp2p-identity", "log", - "mockall", + "mockall 0.11.4", "parking_lot 0.12.3", "sc-client-api", + "sc-network-types", "sc-utils", "serde", "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "substrate-prometheus-endpoint", "thiserror", ] @@ -11445,7 +11692,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -11457,16 +11704,16 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11474,7 +11721,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "fork-tree", @@ -11492,17 +11739,17 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool-api", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11510,7 +11757,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "jsonrpsee", @@ -11519,20 +11766,20 @@ dependencies = [ "sc-rpc-api", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11547,18 +11794,19 @@ dependencies = [ "sc-network", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11568,7 +11816,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "jsonrpsee", @@ -11579,28 +11827,28 @@ dependencies = [ "sc-rpc", "serde", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sc-consensus-grandpa" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.3", @@ -11622,20 +11870,21 @@ dependencies = [ "sc-network-common", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", "serde_json", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11643,7 +11892,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "finality-grandpa", "futures", @@ -11655,15 +11904,15 @@ dependencies = [ "sc-rpc", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "assert_matches", "async-trait", @@ -11686,10 +11935,10 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "thiserror", @@ -11698,7 +11947,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -11708,20 +11957,20 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", ] [[package]] name = "sc-executor" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11730,26 +11979,26 @@ dependencies = [ "sc-executor-wasmtime", "schnellru", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "wasm-instrument", ] @@ -11757,18 +12006,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sc-executor-wasmtime" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "anyhow", "cfg-if", @@ -11778,15 +12027,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ansi_term", "futures", @@ -11797,27 +12046,27 @@ dependencies = [ "sc-network-common", "sc-network-sync", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sc-keystore" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", ] [[package]] name = "sc-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.6", @@ -11825,7 +12074,6 @@ dependencies = [ "bytes", "futures", "futures-timer", - "libp2p-identity", "log", "mixnet", "multiaddr", @@ -11833,26 +12081,28 @@ dependencies = [ "parking_lot 0.12.3", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-mixnet", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-network" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "asynchronous-codec", "bytes", + "cid 0.9.0", "either", "fnv", "futures", @@ -11860,56 +12110,43 @@ dependencies = [ "ip_network", "libp2p", "linked_hash_set", + "litep2p", "log", - "mockall", + "mockall 0.11.4", + "once_cell", "parity-scale-codec", "parking_lot 0.12.3", "partial_sort", "pin-project", + "prost 0.11.9", + "prost-build 0.11.9", "rand", "sc-client-api", "sc-network-common", + "sc-network-types", "sc-utils", + "schnellru", "serde", "serde_json", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", "tokio-stream", - "unsigned-varint", + "unsigned-varint 0.7.2", + "void", "wasm-timer", "zeroize", ] -[[package]] -name = "sc-network-bitswap" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "async-channel 1.9.0", - "cid", - "futures", - "libp2p-identity", - "log", - "prost 0.12.6", - "prost-build 0.11.9", - "sc-client-api", - "sc-network", - "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "unsigned-varint", -] - [[package]] name = "sc-network-common" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11918,15 +12155,16 @@ dependencies = [ "parity-scale-codec", "prost-build 0.11.9", "sc-consensus", + "sc-network-types", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sc-network-gossip" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ahash 0.8.11", "futures", @@ -11936,8 +12174,9 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "schnellru", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "tracing", ] @@ -11945,28 +12184,28 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", "futures", - "libp2p-identity", "log", "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", "sc-client-api", "sc-network", + "sc-network-types", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-network-sync" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11976,7 +12215,7 @@ dependencies = [ "futures-timer", "libp2p", "log", - "mockall", + "mockall 0.11.4", "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", @@ -11984,15 +12223,16 @@ dependencies = [ "sc-consensus", "sc-network", "sc-network-common", + "sc-network-types", "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -12002,7 +12242,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12012,16 +12252,31 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-consensus", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-network-types" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +dependencies = [ + "bs58 0.4.0", + "libp2p-identity", + "litep2p", + "multiaddr", + "multihash 0.17.0", + "rand", + "thiserror", +] + [[package]] name = "sc-offchain" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -12040,14 +12295,15 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-common", + "sc-network-types", "sc-transaction-pool-api", "sc-utils", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "threadpool", "tracing", ] @@ -12055,7 +12311,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12064,7 +12320,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "jsonrpsee", @@ -12082,11 +12338,11 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-offchain", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-statement-store", "sp-version 29.0.0", @@ -12096,7 +12352,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12106,9 +12362,9 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", ] @@ -12116,7 +12372,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "governor", @@ -12134,7 +12390,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12150,12 +12406,13 @@ dependencies = [ "sc-rpc", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", "tokio", @@ -12165,7 +12422,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "directories", @@ -12186,11 +12443,11 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", - "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", "sc-network-transactions", + "sc-network-types", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", @@ -12206,16 +12463,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-version 29.0.0", "static_init", "substrate-prometheus-endpoint", @@ -12229,23 +12486,23 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sc-storage-monitor" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "clap", "fs4", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tokio", ] @@ -12253,7 +12510,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12265,14 +12522,14 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-sysinfo" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "derive_more", "futures", @@ -12284,16 +12541,16 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sc-telemetry" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "chrono", "futures", @@ -12302,6 +12559,7 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "rand", + "sc-network", "sc-utils", "serde", "serde_json", @@ -12312,7 +12570,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ansi_term", "chrono", @@ -12329,20 +12587,20 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tracing", "tracing-log 0.1.4", - "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.18", ] [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -12353,7 +12611,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -12368,10 +12626,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -12380,7 +12638,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", @@ -12388,15 +12646,15 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-utils" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-channel 1.9.0", "futures", @@ -12405,7 +12663,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", ] [[package]] @@ -12728,7 +12986,7 @@ dependencies = [ "pallet-xcm", "parachains-common", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-common 7.0.0", "polkadot-runtime-constants", @@ -12743,19 +13001,19 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", @@ -12842,8 +13100,8 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "tokio", ] @@ -12886,9 +13144,9 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "storage-hub-runtime", "substrate-frame-rpc-system", "tokio", @@ -12917,10 +13175,10 @@ dependencies = [ "shp-file-metadata", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "storage-hub-runtime", "trie-db 0.29.1", @@ -12940,9 +13198,9 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "trie-db 0.29.1", @@ -12991,9 +13249,9 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "tokio", @@ -13055,8 +13313,8 @@ dependencies = [ "shc-indexer-db", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "storage-hub-runtime", "substrate-frame-rpc-system", "thiserror", @@ -13074,9 +13332,9 @@ dependencies = [ "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "tokio", ] @@ -13091,8 +13349,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -13108,10 +13366,10 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13125,9 +13383,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -13140,10 +13398,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13155,11 +13413,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -13170,10 +13428,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -13209,6 +13467,15 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-dns" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c80e565e7dcc4f1ef247e2f395550d4cf7d777746d5988e7e4e3156b71077fc" +dependencies = [ + "bitflags 2.6.0", +] + [[package]] name = "simple-mermaid" version = "0.1.1" @@ -13239,13 +13506,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -13446,21 +13713,21 @@ dependencies = [ [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", "sp-api-proc-macro 15.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-version 29.0.0", "thiserror", ] @@ -13490,7 +13757,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13519,27 +13786,14 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-application-crypto" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -13559,22 +13813,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "docify", - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "static_assertions", -] - -[[package]] -name = "sp-arithmetic" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "integer-sqrt", @@ -13582,7 +13821,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -13622,13 +13861,13 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -13648,17 +13887,17 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "sp-api 26.0.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "futures", "log", @@ -13668,57 +13907,57 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "sp-consensus" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "futures", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-slots 0.32.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", ] [[package]] name = "sp-consensus-babe" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", ] @@ -13745,27 +13984,27 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "lazy_static", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "finality-grandpa", "log", @@ -13773,16 +14012,16 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-consensus-slots" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", @@ -13806,54 +14045,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "array-bytes 6.2.3", - "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1", - "secrecy", - "serde", - "sp-crypto-hashing 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-core" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -13883,14 +14075,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tracing", "w3f-bls", @@ -14010,19 +14202,6 @@ dependencies = [ "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] -[[package]] -name = "sp-crypto-hashing" -version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - [[package]] name = "sp-crypto-hashing" version = "0.1.0" @@ -14040,7 +14219,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "blake2b_simd", "byteorder", @@ -14065,29 +14244,29 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" -version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "syn 2.0.75", ] [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "syn 2.0.75", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14107,17 +14286,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro2", "quote", @@ -14137,21 +14306,11 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -14178,36 +14337,38 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd865540ec19479c7349b584ccd78cc34c3f3a628a2a69dbb6365ceec36295ee" dependencies = [ "serde_json", - "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-api 27.0.1", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-genesis-builder" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd865540ec19479c7349b584ccd78cc34c3f3a628a2a69dbb6365ceec36295ee" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", - "sp-api 27.0.1", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] @@ -14229,7 +14390,7 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "ed25519-dalek", @@ -14239,41 +14400,15 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "bytes", - "ed25519-dalek", - "libsecp256k1", - "log", - "parity-scale-codec", - "polkavm-derive", - "rustversion", - "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "tracing", "tracing-core", ] @@ -14307,33 +14442,22 @@ dependencies = [ [[package]] name = "sp-keyring" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "strum 0.26.3", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-keystore" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -14352,7 +14476,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14373,7 +14497,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14383,18 +14507,18 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", ] [[package]] name = "sp-mmr-primitives" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14402,23 +14526,23 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sp-npos-elections" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -14439,11 +14563,11 @@ dependencies = [ [[package]] name = "sp-offchain" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -14460,17 +14584,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-panic-handler" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "backtrace", "lazy_static", @@ -14480,41 +14594,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "rustc-hash", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-runtime" -version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "either", @@ -14527,12 +14617,12 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] @@ -14563,38 +14653,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive", - "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -14653,20 +14724,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "Inflector", - "expander 2.2.1", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "expander 2.2.1", @@ -14692,14 +14750,14 @@ dependencies = [ [[package]] name = "sp-session" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", ] @@ -14722,14 +14780,14 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -14750,27 +14808,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand", - "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "tracing", - "trie-db 0.28.0", -] - -[[package]] -name = "sp-state-machine" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hash-db", "log", @@ -14778,10 +14816,10 @@ dependencies = [ "parking_lot 0.12.3", "rand", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -14812,7 +14850,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", @@ -14823,12 +14861,12 @@ dependencies = [ "scale-info", "sha2 0.10.8", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "x25519-dalek 2.0.1", ] @@ -14842,12 +14880,7 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" - -[[package]] -name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" [[package]] name = "sp-std" @@ -14857,25 +14890,13 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -14907,12 +14928,12 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] @@ -14946,18 +14967,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "tracing", @@ -14979,30 +14989,30 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sp-transaction-storage-proof" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15014,31 +15024,8 @@ dependencies = [ "rand", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "tracing", - "trie-db 0.28.0", - "trie-root", -] - -[[package]] -name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "ahash 0.8.11", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand", - "scale-info", - "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -15096,17 +15083,17 @@ dependencies = [ [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "thiserror", ] @@ -15121,7 +15108,7 @@ dependencies = [ "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.1.0", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-runtime 32.0.0", "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-version-proc-macro 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -15143,7 +15130,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -15168,7 +15155,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -15177,16 +15164,6 @@ dependencies = [ "wasmtime", ] -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "impl-trait-for-tuples", - "log", - "parity-scale-codec", -] - [[package]] name = "sp-wasm-interface" version = "20.0.0" @@ -15200,29 +15177,15 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-weights" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-arithmetic 23.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] @@ -15253,17 +15216,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "spinners" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" -dependencies = [ - "lazy_static", - "maplit", - "strum 0.24.1", -] - [[package]] name = "spinning_top" version = "0.3.0" @@ -15307,21 +15259,21 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", ] [[package]] name = "staging-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -15332,7 +15284,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", "xcm-procedural 7.0.0", ] @@ -15358,7 +15310,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -15368,11 +15320,11 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives 6.0.0", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -15403,7 +15355,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -15412,12 +15364,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", ] @@ -15563,12 +15515,12 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "staging-xcm 7.0.0", @@ -15639,13 +15591,13 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", @@ -15746,19 +15698,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.12.2", - "schnorrkel 0.11.4", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15782,12 +15722,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -15799,14 +15739,14 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hyper", "log", @@ -15815,40 +15755,27 @@ dependencies = [ "tokio", ] -[[package]] -name = "substrate-rpc-client" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "async-trait", - "jsonrpsee", - "log", - "sc-rpc-api", - "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "trie-db 0.28.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "trie-db 0.29.1", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "build-helper", "cargo_metadata", @@ -16207,17 +16134,6 @@ dependencies = [ "whoami", ] -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.24.1" @@ -16421,7 +16337,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "coarsetime", "polkadot-primitives 7.0.0", @@ -16432,7 +16348,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "expander 2.2.1", "proc-macro-crate 3.1.0", @@ -16483,7 +16399,6 @@ dependencies = [ "chrono", "lazy_static", "matchers 0.0.1", - "parking_lot 0.11.2", "regex", "serde", "serde_json", @@ -16505,6 +16420,7 @@ dependencies = [ "matchers 0.1.0", "nu-ansi-term", "once_cell", + "parking_lot 0.12.3", "regex", "sharded-slab", "smallvec", @@ -16571,7 +16487,7 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner", + "enum-as-inner 0.5.1", "futures-channel", "futures-io", "futures-util", @@ -16614,42 +16530,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "try-runtime-cli" -version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "async-trait", - "clap", - "frame-remote-externalities", - "frame-try-runtime", - "hex", - "log", - "parity-scale-codec", - "sc-cli", - "sc-executor", - "serde", - "serde_json", - "sp-api 26.0.0", - "sp-consensus-aura", - "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-timestamp 26.0.0", - "sp-transaction-storage-proof", - "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "substrate-rpc-client", - "zstd 0.12.4", -] - [[package]] name = "tt-call" version = "1.0.9" @@ -16753,6 +16633,16 @@ dependencies = [ "futures-util", ] +[[package]] +name = "unsigned-varint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" +dependencies = [ + "bytes", + "tokio-util", +] + [[package]] name = "untrusted" version = "0.7.1" @@ -17290,7 +17180,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "binary-merkle-tree", "bitvec", @@ -17365,24 +17255,24 @@ dependencies = [ "serde_derive", "smallvec", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-mmr-primitives", "sp-npos-elections 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -17396,15 +17286,15 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -17787,13 +17677,30 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs", + "asn1-rs 0.5.2", "base64 0.13.1", "data-encoding", - "der-parser", + "der-parser 8.2.0", + "lazy_static", + "nom", + "oid-registry 0.6.1", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "x509-parser" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" +dependencies = [ + "asn1-rs 0.6.2", + "data-encoding", + "der-parser 9.0.0", "lazy_static", "nom", - "oid-registry", + "oid-registry 0.7.1", "rusticata-macros", "thiserror", "time", @@ -17802,22 +17709,22 @@ dependencies = [ [[package]] name = "xcm-fee-payment-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", ] [[package]] name = "xcm-procedural" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "proc-macro2", @@ -17840,16 +17747,16 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "paste", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", diff --git a/Cargo.toml b/Cargo.toml index 227d04ee1..d8c673ab0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,115 +64,115 @@ diesel = { version = "2.2.4", features = ["postgres", "chrono"] } diesel-async = { version = "0.5.0", features = ["bb8", "postgres"] } # Substrate -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } # latest version containing trie-db upgrade (double ended iterator) sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", version = "29.0.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.10.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", features = [ +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", features = [ "rococo-native", ] } polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.10.0", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.10.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.1", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0" } -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false, features = [ +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false, features = [ "parameterized-consensus-hook", ] } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.10.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } # Local Pallets pallet-bucket-nfts = { path = "pallets/bucket-nfts", default-features = false } diff --git a/node/src/cli.rs b/node/src/cli.rs index 3201bdc87..2709f2d80 100644 --- a/node/src/cli.rs +++ b/node/src/cli.rs @@ -42,11 +42,6 @@ pub enum Subcommand { /// The pallet benchmarking moved to the `pallet` sub-command. #[command(subcommand)] Benchmark(frame_benchmarking_cli::BenchmarkCmd), - - /// Try-runtime has migrated to a standalone - /// [CLI](). The subcommand exists as a stub and - /// deprecation notice. It will be removed entirely some time after January 2024. - TryRuntime, } #[derive(ValueEnum, Clone, Debug)] diff --git a/node/src/command.rs b/node/src/command.rs index 7e3cf8f69..ca48be5c7 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -9,7 +9,6 @@ use sc_cli::{ NetworkParams, Result, SharedParams, SubstrateCli, }; use sc_service::config::{BasePath, PrometheusConfig}; -use sp_runtime::traits::AccountIdConversion; use storage_hub_runtime::{Block, StorageDataUnit}; use crate::{ @@ -212,7 +211,7 @@ pub fn run() -> Result<()> { match cmd { BenchmarkCmd::Pallet(cmd) => if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run::, ReclaimHostFunctions>(config)) + runner.sync_run(|config| cmd.run_with_spec::, ReclaimHostFunctions>(Some(config.chain_spec))) } else { Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." @@ -245,7 +244,6 @@ pub fn run() -> Result<()> { _ => Err("Benchmarking sub-command unsupported".into()), } }, - Some(Subcommand::TryRuntime) => Err("The `try-runtime` subcommand has been migrated to a standalone CLI (https://github.com/paritytech/try-runtime-cli). It is no longer being maintained here and will be removed entirely some time after January 2024. Please remove this subcommand from your runtime and use the standalone CLI.".into()), None => { let runner = cli.create_runner(&cli.run.normalize())?; let provider_options = if cli.provider_config.provider { @@ -291,19 +289,12 @@ pub fn run() -> Result<()> { [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), ); - let parachain_account = - AccountIdConversion::::into_account_truncating( - &id, - ); - let tokio_handle = config.tokio_handle.clone(); let polkadot_config = SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) .map_err(|err| format!("Relay chain argument error: {}", err))?; - info!("Parachain Account: {parachain_account}"); - crate::service::start_parachain_node( config, polkadot_config, diff --git a/node/src/service.rs b/node/src/service.rs index 7b700fcfd..41419a16e 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -364,6 +364,10 @@ where )); } + let metrics = Network::register_notification_metrics( + config.prometheus_config.as_ref().map(|cfg| &cfg.registry), + ); + let (network, system_rpc_tx, tx_handler_controller, network_starter, sync_service) = sc_service::build_network(sc_service::BuildNetworkParams { config: &config, @@ -375,6 +379,7 @@ where block_announce_validator_builder: None, warp_sync_params: None, block_relay: None, + metrics, })?; if config.offchain_worker.enabled { @@ -923,34 +928,25 @@ fn build_import_queue( config: &Configuration, telemetry: Option, task_manager: &TaskManager, -) -> Result, sc_service::Error> { - let slot_duration = cumulus_client_consensus_aura::slot_duration(&*client)?; - - Ok( - cumulus_client_consensus_aura::equivocation_import_queue::fully_verifying_import_queue::< - sp_consensus_aura::sr25519::AuthorityPair, - _, - _, - _, - _, - >( - client, - block_import, - move |_, _| async move { - let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - - let slot = sp_consensus_aura::inherents::InherentDataProvider::from_timestamp_and_slot_duration( - *timestamp, - slot_duration, - ); +) -> sc_consensus::DefaultImportQueue { + cumulus_client_consensus_aura::equivocation_import_queue::fully_verifying_import_queue::< + sp_consensus_aura::sr25519::AuthorityPair, + _, + _, + _, + _, + >( + client, + block_import, + move |_, _| async move { + let timestamp = sp_timestamp::InherentDataProvider::from_system_time(); - Ok((slot, timestamp)) - }, - slot_duration, - &task_manager.spawn_essential_handle(), - config.prometheus_registry(), - telemetry, - ), + Ok(timestamp) + }, + slot_duration, + &task_manager.spawn_essential_handle(), + config.prometheus_registry(), + telemetry, ) } diff --git a/pallets/file-system/src/lib.rs b/pallets/file-system/src/lib.rs index e24ea0c72..29182e90f 100644 --- a/pallets/file-system/src/lib.rs +++ b/pallets/file-system/src/lib.rs @@ -50,8 +50,8 @@ pub mod pallet { pallet_prelude::{ValueQuery, *}, sp_runtime::traits::{CheckEqual, Convert, MaybeDisplay, SimpleBitOps}, traits::{ + fungible::*, nonfungibles_v2::{Create, Inspect as NonFungiblesInspect}, - Currency, }, Blake2_128Concat, }; @@ -195,7 +195,11 @@ pub mod pallet { >; /// The currency mechanism, used for paying for reserves. - type Currency: Currency; + type Currency: Inspect + + Mutate + + hold::Balanced + + freeze::Inspect + + freeze::Mutate; /// Registry for minted NFTs. type Nfts: NonFungiblesInspect diff --git a/pallets/file-system/src/types.rs b/pallets/file-system/src/types.rs index c6832a366..fb3d42a36 100644 --- a/pallets/file-system/src/types.rs +++ b/pallets/file-system/src/types.rs @@ -2,7 +2,7 @@ use core::cmp::max; use codec::{Decode, Encode, MaxEncodedLen}; use frame_support::{ - traits::{nonfungibles_v2::Inspect as NonFungiblesInspect, Currency, Get}, + traits::{fungible::Inspect, nonfungibles_v2::Inspect as NonFungiblesInspect, Get}, BoundedVec, }; use frame_system::pallet_prelude::BlockNumberFor; @@ -275,8 +275,8 @@ pub type MaxMultiAddresses = pub type MultiAddresses = BoundedVec, MaxMultiAddresses>; /// Alias for the `Balance` type used in the FileSystem pallet. -type BalanceOf = - <::Currency as Currency<::AccountId>>::Balance; +pub type BalanceOf = + <::Currency as Inspect<::AccountId>>::Balance; /// Alias for the `CollectionId` type used in the Nfts pallet. pub(super) type CollectionIdFor = <::Nfts as NonFungiblesInspect< diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 6a530598c..bf7c1f42f 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -239,5 +239,3 @@ try-runtime = [ "shp-traits/try-runtime", "sp-runtime/try-runtime", ] - -experimental = ["pallet-aura/experimental"] diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index a4890680b..c88faf00e 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -1,6 +1,6 @@ use crate::*; use frame_support::{ - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, weights::Weight, }; use pallet_aura::Authorities; @@ -255,12 +255,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 93fa0617f..cf26f052c 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -193,7 +193,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; diff --git a/runtime/src/configs/xcm_config.rs b/runtime/src/configs/xcm_config.rs index e663939e2..b677c7e15 100644 --- a/runtime/src/configs/xcm_config.rs +++ b/runtime/src/configs/xcm_config.rs @@ -14,14 +14,14 @@ use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FixedWeightBounds, - FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, NativeAsset, - ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, - SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, - SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, - WithComputedOrigin, WithUniqueTopic, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowHrmpNotificationsFromRelayChain, + AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, + DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, + HashedDescription, IsConcrete, NativeAsset, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, WithUniqueTopic, }; use xcm_executor::XcmExecutor; @@ -140,6 +140,8 @@ pub type Barrier = TrailingSetTopicAsId< AllowExplicitUnpaidExecutionFrom, // Subscriptions for version tracking are OK. AllowSubscriptionsFrom, + // HRMP notifications from the relay chain are OK. + AllowHrmpNotificationsFromRelayChain, ), UniversalLocation, ConstU32<8>, diff --git a/xcm-simulator/Cargo.toml b/xcm-simulator/Cargo.toml index ca6468ecb..fc802749c 100644 --- a/xcm-simulator/Cargo.toml +++ b/xcm-simulator/Cargo.toml @@ -238,5 +238,3 @@ try-runtime = [ "polkadot-runtime-common/try-runtime", "sp-runtime/try-runtime", ] - -experimental = ["pallet-aura/experimental"] diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs index 2ae59267d..285ad8e4b 100644 --- a/xcm-simulator/src/storagehub/apis.rs +++ b/xcm-simulator/src/storagehub/apis.rs @@ -1,7 +1,7 @@ use crate::storagehub::*; use crate::*; use frame_support::{ - genesis_builder_helper::{build_config, create_default_config}, + genesis_builder_helper::{build_state, get_preset}, weights::Weight, }; use pallet_aura::Authorities; @@ -256,12 +256,16 @@ impl_runtime_apis! { } impl sp_genesis_builder::GenesisBuilder for Runtime { - fn create_default_config() -> Vec { - create_default_config::() + fn build_state(config: Vec) -> sp_genesis_builder::Result { + build_state::(config) } - fn build_config(config: Vec) -> sp_genesis_builder::Result { - build_config::(config) + fn get_preset(id: &Option) -> Option> { + get_preset::(id, |_| None) + } + + fn preset_names() -> Vec { + vec![] } } diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index bc6cea3cb..0e4f632a4 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -190,7 +190,7 @@ parameter_types! { impl pallet_transaction_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OnChargeTransaction = pallet_transaction_payment::FungibleAdapter; type WeightToFee = WeightToFee; type LengthToFee = ConstantMultiplier; type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; diff --git a/xcm-simulator/src/storagehub/configs/xcm_config.rs b/xcm-simulator/src/storagehub/configs/xcm_config.rs index ec6bba882..044118748 100644 --- a/xcm-simulator/src/storagehub/configs/xcm_config.rs +++ b/xcm-simulator/src/storagehub/configs/xcm_config.rs @@ -15,13 +15,14 @@ use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, - AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, DenyReserveTransferToRelayChain, - DenyThenTry, DescribeAllTerminal, DescribeFamily, EnsureXcmOrigin, FixedWeightBounds, - FrameTransactionalProcessor, FungibleAdapter, HashedDescription, IsConcrete, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - TrailingSetTopicAsId, UsingComponents, WithComputedOrigin, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowHrmpNotificationsFromRelayChain, + AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, + DenyReserveTransferToRelayChain, DenyThenTry, DescribeAllTerminal, DescribeFamily, + EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, FungibleAdapter, + HashedDescription, IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, + UsingComponents, WithComputedOrigin, }; use xcm_executor::XcmExecutor; @@ -139,6 +140,8 @@ pub type Barrier = TrailingSetTopicAsId< AllowExplicitUnpaidExecutionFrom, // Subscriptions for version tracking are OK. AllowSubscriptionsFrom, + // HRMP notifications from the relay chain are OK. + AllowHrmpNotificationsFromRelayChain, ), UniversalLocation, ConstU32<8>, From e28f09b574758739a535db73c43d1ee5b299277b Mon Sep 17 00:00:00 2001 From: TDemeco Date: Mon, 30 Sep 2024 18:19:08 -0300 Subject: [PATCH 15/24] feat: :arrow_up: finish upgrade to polkadot sdk v1.11.0 --- Cargo.lock | 2183 +++++++++-------- Cargo.toml | 199 +- api-augment/dist/interfaces/lookup.js | 138 +- api-augment/dist/interfaces/lookup.js.map | 2 +- .../types/interfaces/augment-api-errors.d.ts | 13 - .../dist/types/interfaces/augment-api-tx.d.ts | 215 +- api-augment/dist/types/interfaces/lookup.d.ts | 132 +- .../dist/types/interfaces/registry.d.ts | 6 + .../dist/types/interfaces/types-lookup.d.ts | 134 +- .../src/interfaces/augment-api-errors.ts | 13 - api-augment/src/interfaces/augment-api-tx.ts | 159 +- api-augment/src/interfaces/lookup.ts | 138 +- api-augment/src/interfaces/registry.ts | 6 + api-augment/src/interfaces/types-lookup.ts | 139 +- api-augment/storagehub.json | 2 +- client/blockchain-service/Cargo.toml | 1 + client/blockchain-service/src/utils.rs | 2 + client/common/src/types.rs | 4 +- client/file-transfer-service/src/handler.rs | 16 +- client/file-transfer-service/src/lib.rs | 24 +- node/src/command.rs | 326 +-- node/src/service.rs | 59 +- node/src/services/builder.rs | 6 +- runtime/Cargo.toml | 16 + runtime/build.rs | 15 +- runtime/src/configs/mod.rs | 3 - runtime/src/lib.rs | 1 + xcm-simulator/Cargo.toml | 1 + xcm-simulator/src/storagehub/configs/mod.rs | 3 - xcm-simulator/src/storagehub/mod.rs | 1 + xcm-simulator/src/tests.rs | 4 +- 31 files changed, 2258 insertions(+), 1703 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eb9229587..181bf8e2f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "rayon", ] @@ -592,24 +592,8 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "asn1-rs-derive 0.4.0", - "asn1-rs-impl 0.1.0", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "asn1-rs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" -dependencies = [ - "asn1-rs-derive 0.5.1", - "asn1-rs-impl 0.2.0", + "asn1-rs-derive", + "asn1-rs-impl", "displaydoc", "nom", "num-traits", @@ -630,18 +614,6 @@ dependencies = [ "synstructure 0.12.6", ] -[[package]] -name = "asn1-rs-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", - "synstructure 0.13.1", -] - [[package]] name = "asn1-rs-impl" version = "0.1.0" @@ -653,17 +625,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "asn1-rs-impl" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "assert_matches" version = "1.5.0" @@ -990,7 +951,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "log", @@ -1033,7 +994,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes 0.11.0", - "rand", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -1207,11 +1168,11 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", ] @@ -1427,7 +1388,7 @@ dependencies = [ "multibase", "multihash 0.17.0", "serde", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -1440,7 +1401,7 @@ dependencies = [ "multibase", "multihash 0.18.1", "serde", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -1572,6 +1533,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.1.1" @@ -1844,6 +1815,21 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" version = "1.4.2" @@ -1958,7 +1944,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "clap", "parity-scale-codec", @@ -1967,7 +1953,7 @@ dependencies = [ "sc-client-api", "sc-service", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "url", ] @@ -1975,7 +1961,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1990,7 +1976,7 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "tracing", ] @@ -1998,7 +1984,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-client-collator", @@ -2027,7 +2013,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", @@ -2040,7 +2026,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2058,10 +2044,10 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -2069,7 +2055,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "anyhow", "async-trait", @@ -2084,7 +2070,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2098,7 +2084,7 @@ dependencies = [ "sc-client-api", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", "tracing", @@ -2107,7 +2093,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2118,20 +2104,20 @@ dependencies = [ "sc-client-api", "scale-info", "sp-api 26.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2143,7 +2129,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "sc-client-api", "sc-consensus", "sp-consensus", @@ -2155,7 +2141,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2183,7 +2169,7 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-transaction-pool", @@ -2192,7 +2178,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-pallet-parachain-system", "frame-support 28.0.0", @@ -2204,13 +2190,13 @@ dependencies = [ "sp-application-crypto 30.0.0", "sp-consensus-aura", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-benchmarking 28.0.0", @@ -2221,14 +2207,14 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2247,14 +2233,14 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "staging-xcm 7.0.0", "trie-db 0.29.1", @@ -2263,7 +2249,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2274,7 +2260,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -2282,13 +2268,13 @@ dependencies = [ "pallet-session 28.0.0", "parity-scale-codec", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -2297,14 +2283,14 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2318,10 +2304,10 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -2329,7 +2315,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives 7.0.0", @@ -2337,13 +2323,13 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus-aura", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-core" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "polkadot-core-primitives 7.0.0", @@ -2352,42 +2338,42 @@ dependencies = [ "scale-info", "sp-api 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2398,13 +2384,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -2415,7 +2401,7 @@ dependencies = [ "polkadot-runtime-parachains 7.0.0", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -2424,7 +2410,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2440,7 +2426,7 @@ dependencies = [ "sc-tracing", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", ] @@ -2448,7 +2434,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2466,7 +2452,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -2508,7 +2494,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2520,7 +2506,7 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-overseer", - "rand", + "rand 0.8.5", "sc-client-api", "sc-rpc-api", "sc-service", @@ -2532,10 +2518,10 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -2547,15 +2533,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives 7.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -2745,21 +2731,7 @@ version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.5.2", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "der-parser" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" -dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs", "displaydoc", "nom", "num-bigint", @@ -3091,10 +3063,19 @@ dependencies = [ "elliptic-curve", "rfc6979", "serdect", - "signature", + "signature 2.2.0", "spki", ] +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature 1.6.4", +] + [[package]] name = "ed25519" version = "2.2.3" @@ -3102,7 +3083,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", - "signature", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.0", + "ed25519 1.5.3", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", ] [[package]] @@ -3112,7 +3107,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek 4.1.3", - "ed25519", + "ed25519 2.2.3", "rand_core 0.6.4", "serde", "sha2 0.10.8", @@ -3141,7 +3136,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek 4.1.3", - "ed25519", + "ed25519 2.2.3", "hashbrown 0.14.5", "hex", "rand_core 0.6.4", @@ -3491,7 +3486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -3528,10 +3523,25 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "fork-tree" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", ] @@ -3554,7 +3564,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-support-procedural 23.0.0", @@ -3567,12 +3577,12 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] @@ -3605,7 +3615,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -3622,7 +3632,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand", + "rand 0.8.5", "rand_pcg", "sc-block-builder", "sc-chain-spec", @@ -3636,18 +3646,18 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "thousands", ] @@ -3667,7 +3677,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3678,18 +3688,18 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-npos-elections 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -3713,7 +3723,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.3.3", "frame-support 28.0.0", @@ -3722,11 +3732,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -3741,10 +3751,25 @@ dependencies = [ "serde", ] +[[package]] +name = "frame-metadata-hash-extension" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "array-bytes 6.2.3", + "docify", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", +] + [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.5.0", "array-bytes 6.2.3", @@ -3765,18 +3790,18 @@ dependencies = [ "smallvec", "sp-api 26.0.0", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-staking 26.0.0", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", "static_assertions", "tt-call", @@ -3827,19 +3852,19 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse 0.2.0", "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "syn 2.0.75", ] @@ -3879,9 +3904,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -3902,7 +3927,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro2", "quote", @@ -3912,7 +3937,7 @@ dependencies = [ [[package]] name = "frame-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cfg-if", "docify", @@ -3921,10 +3946,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "sp-weights 27.0.0", ] @@ -3953,22 +3978,22 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -3977,13 +4002,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "sp-api 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -4223,7 +4248,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand", + "rand 0.8.5", "rand_core 0.6.4", ] @@ -4285,7 +4310,7 @@ dependencies = [ "parking_lot 0.12.3", "portable-atomic", "quanta", - "rand", + "rand 0.8.5", "smallvec", "spinning_top", ] @@ -4429,51 +4454,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" -[[package]] -name = "hickory-proto" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07698b8420e2f0d6447a436ba999ec85d8fbf2a398bbd737b82cac4a2e96e512" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.6.1", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "hickory-resolver" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243" -dependencies = [ - "cfg-if", - "futures-util", - "hickory-proto", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot 0.12.3", - "rand", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", -] - [[package]] name = "hkdf" version = "0.12.4" @@ -4989,7 +4969,7 @@ dependencies = [ "jsonrpsee-types", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "rustc-hash", "serde", "serde_json", @@ -5257,11 +5237,11 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand", + "rand 0.8.5", "rw-stream-sink", "smallvec", "thiserror", - "unsigned-varint 0.7.2", + "unsigned-varint", "void", ] @@ -5276,7 +5256,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "smallvec", - "trust-dns-resolver", + "trust-dns-resolver 0.22.0", ] [[package]] @@ -5308,12 +5288,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ "bs58 0.4.0", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "log", "multiaddr", "multihash 0.17.0", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "thiserror", "zeroize", @@ -5338,12 +5318,12 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "smallvec", "thiserror", "uint", - "unsigned-varint 0.7.2", + "unsigned-varint", "void", ] @@ -5360,11 +5340,11 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand", + "rand 0.8.5", "smallvec", "socket2 0.4.10", "tokio", - "trust-dns-proto", + "trust-dns-proto 0.22.0", "void", ] @@ -5396,7 +5376,7 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "snow", "static_assertions", @@ -5418,7 +5398,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand", + "rand 0.8.5", "void", ] @@ -5438,7 +5418,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "quinn-proto", - "rand", + "rand 0.8.5", "rustls 0.20.9", "thiserror", "tokio", @@ -5456,7 +5436,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "smallvec", ] @@ -5475,7 +5455,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand", + "rand 0.8.5", "smallvec", "tokio", "void", @@ -5614,7 +5594,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -5725,30 +5705,31 @@ dependencies = [ [[package]] name = "litep2p" -version = "0.7.0" -source = "git+https://github.com/paritytech/litep2p?branch=master#d765111b90b8767d7816871cf8343c247e33ae8c" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f02542ae3a94b4c4ffa37dc56388c923e286afa3bf65452e3984b50b2a2f316" dependencies = [ "async-trait", - "bs58 0.5.1", + "bs58 0.4.0", "bytes", "cid 0.10.1", - "ed25519-dalek", + "ed25519-dalek 1.0.1", "futures", "futures-timer", "hex-literal", - "hickory-resolver", "indexmap 2.4.0", "libc", - "mockall 0.13.0", + "mockall 0.12.1", "multiaddr", "multihash 0.17.0", "network-interface", "nohash-hasher", "parking_lot 0.12.3", "pin-project", - "prost 0.12.6", - "prost-build 0.13.3", - "rand", + "prost 0.11.9", + "prost-build 0.11.9", + "quinn", + "rand 0.8.5", "rcgen", "ring 0.16.20", "rustls 0.20.9", @@ -5759,16 +5740,20 @@ dependencies = [ "snow", "socket2 0.5.7", "static_assertions", + "str0m", "thiserror", "tokio", "tokio-stream", + "tokio-tungstenite", "tokio-util", "tracing", + "trust-dns-resolver 0.23.2", "uint", - "unsigned-varint 0.8.0", + "unsigned-varint", "url", + "webpki", "x25519-dalek 2.0.1", - "x509-parser 0.16.0", + "x509-parser 0.15.1", "yasna", "zeroize", ] @@ -5991,6 +5976,20 @@ dependencies = [ "hash-db", ] +[[package]] +name = "merkleized-metadata" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" +dependencies = [ + "array-bytes 6.2.3", + "blake3", + "frame-metadata", + "parity-scale-codec", + "scale-decode", + "scale-info", +] + [[package]] name = "merlin" version = "3.0.0" @@ -6010,7 +6009,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures", - "rand", + "rand 0.8.5", "thrift", ] @@ -6067,7 +6066,7 @@ dependencies = [ "lioness", "log", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", "subtle 2.6.1", @@ -6078,7 +6077,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "log", @@ -6089,7 +6088,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", "sp-runtime 31.0.1", ] @@ -6097,14 +6096,14 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", "sp-runtime 31.0.1", ] @@ -6126,14 +6125,15 @@ dependencies = [ [[package]] name = "mockall" -version = "0.13.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c28b3fb6d753d28c20e826cd46ee611fda1cf3cde03a443a974043247c065a" +checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" dependencies = [ "cfg-if", "downcast", "fragile", - "mockall_derive 0.13.0", + "lazy_static", + "mockall_derive 0.12.1", "predicates 3.1.2", "predicates-tree", ] @@ -6152,9 +6152,9 @@ dependencies = [ [[package]] name = "mockall_derive" -version = "0.13.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "341014e7f530314e9a1fdbc7400b244efea7122662c96bfa248c31da5bfb2020" +checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" dependencies = [ "cfg-if", "proc-macro2", @@ -6177,7 +6177,7 @@ dependencies = [ "percent-encoding", "serde", "static_assertions", - "unsigned-varint 0.7.2", + "unsigned-varint", "url", ] @@ -6206,7 +6206,7 @@ dependencies = [ "multihash-derive 0.8.1", "sha2 0.10.8", "sha3", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -6223,7 +6223,7 @@ dependencies = [ "multihash-derive 0.8.1", "sha2 0.10.8", "sha3", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -6233,7 +6233,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" dependencies = [ "core2", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -6318,7 +6318,7 @@ dependencies = [ "log", "pin-project", "smallvec", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -6354,7 +6354,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -6630,16 +6630,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.2", -] - -[[package]] -name = "oid-registry" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" -dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs", ] [[package]] @@ -6660,12 +6651,60 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.3.2+3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -6723,7 +6762,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6733,25 +6772,25 @@ dependencies = [ "scale-info", "sp-api 26.0.0", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-asset-rate" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6773,7 +6812,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6782,16 +6821,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-assets" version = "29.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6799,15 +6838,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6818,13 +6857,13 @@ dependencies = [ "sp-application-crypto 30.0.0", "sp-consensus-aura", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-authority-discovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6834,7 +6873,7 @@ dependencies = [ "sp-application-crypto 30.0.0", "sp-authority-discovery 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6857,7 +6896,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6865,7 +6904,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6886,7 +6925,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6899,12 +6938,12 @@ dependencies = [ "scale-info", "sp-application-crypto 30.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6935,7 +6974,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.5.0", "docify", @@ -6947,17 +6986,17 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-balances" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -6967,7 +7006,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6990,7 +7029,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7004,13 +7043,13 @@ dependencies = [ "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-beefy-mmr" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -7025,17 +7064,17 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7044,16 +7083,16 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-broker" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -7064,9 +7103,9 @@ dependencies = [ "scale-info", "sp-api 26.0.0", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7106,18 +7145,18 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-keyring", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] [[package]] name = "pallet-child-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7127,16 +7166,16 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7146,17 +7185,17 @@ dependencies = [ "pallet-balances 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7164,16 +7203,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-conviction-voting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7184,13 +7223,13 @@ dependencies = [ "serde", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-democracy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7199,16 +7238,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7217,14 +7256,14 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking 27.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-npos-elections 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "strum 0.26.3", ] @@ -7241,7 +7280,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking 28.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-arithmetic 24.0.0", "sp-core 29.0.0", @@ -7255,7 +7294,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7263,7 +7302,7 @@ dependencies = [ "parity-scale-codec", "sp-npos-elections 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7284,7 +7323,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7292,18 +7331,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-npos-elections 26.0.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-fast-unstake" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7316,7 +7355,7 @@ dependencies = [ "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7361,11 +7400,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-keyring", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7382,7 +7421,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7394,18 +7433,18 @@ dependencies = [ "scale-info", "sp-application-crypto 30.0.0", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-identity" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7416,7 +7455,7 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7440,7 +7479,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7450,34 +7489,34 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-indices" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-keyring", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-membership" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7485,16 +7524,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-message-queue" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -7504,10 +7543,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", ] @@ -7535,7 +7574,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7543,17 +7582,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-mmr-primitives", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-multisig" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7563,13 +7602,13 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7578,16 +7617,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nis" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7595,15 +7634,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7611,18 +7650,18 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7634,26 +7673,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-offences" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7664,13 +7703,13 @@ dependencies = [ "serde", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-offences-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7688,13 +7727,13 @@ dependencies = [ "scale-info", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-parameters" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7704,9 +7743,9 @@ dependencies = [ "paste", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7724,7 +7763,7 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", @@ -7738,13 +7777,13 @@ dependencies = [ "scale-info", "sp-api 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-preimage" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7752,10 +7791,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7775,10 +7814,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7790,13 +7829,13 @@ dependencies = [ "scale-info", "sp-api 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-proxy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7805,7 +7844,7 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7820,16 +7859,16 @@ dependencies = [ "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-ranked-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7839,16 +7878,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-recovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7857,13 +7896,13 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-referenda" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7876,28 +7915,28 @@ dependencies = [ "sp-arithmetic 23.0.0", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-root-testing" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-scheduler" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7908,14 +7947,14 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", ] [[package]] name = "pallet-session" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7924,14 +7963,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7960,7 +7999,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7968,16 +8007,16 @@ dependencies = [ "pallet-session 28.0.0", "pallet-staking 28.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-society" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7989,13 +8028,13 @@ dependencies = [ "sp-arithmetic 23.0.0", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-staking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -8012,7 +8051,7 @@ dependencies = [ "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8041,7 +8080,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -8052,7 +8091,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "sp-arithmetic 23.0.0", @@ -8071,7 +8110,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -8081,7 +8120,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8089,10 +8128,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8112,10 +8151,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -8132,7 +8171,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -8142,13 +8181,13 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-timestamp" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -8160,8 +8199,8 @@ dependencies = [ "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-timestamp 26.0.0", ] @@ -8189,7 +8228,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8199,26 +8238,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-transaction-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8241,14 +8280,14 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", "sp-runtime 31.0.1", "sp-weights 27.0.0", @@ -8257,7 +8296,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "pallet-transaction-payment 28.0.0", "parity-scale-codec", @@ -8269,7 +8308,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -8280,9 +8319,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8308,7 +8347,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8317,29 +8356,29 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-utility" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-vesting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8348,7 +8387,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8370,7 +8409,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8379,13 +8418,13 @@ dependencies = [ "scale-info", "sp-api 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "frame-benchmarking 28.0.0", @@ -8396,10 +8435,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8409,7 +8448,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8419,7 +8458,7 @@ dependencies = [ "scale-info", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8428,7 +8467,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8446,10 +8485,10 @@ dependencies = [ "polkadot-primitives 7.0.0", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", @@ -8463,7 +8502,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", - "rand", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -8484,7 +8523,7 @@ dependencies = [ "lz4", "memmap2 0.5.10", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "siphasher", "snap", "winapi", @@ -8787,7 +8826,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "futures", @@ -8800,14 +8839,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "always-assert", "futures", @@ -8816,14 +8855,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", "fatality", @@ -8835,9 +8874,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "thiserror", "tracing-gum", @@ -8846,7 +8885,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "fatality", @@ -8858,7 +8897,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "sc-network", "schnellru", "thiserror", @@ -8869,7 +8908,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cfg-if", "clap", @@ -8885,7 +8924,7 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-keyring", "sp-maybe-compressed-blob", @@ -8897,7 +8936,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -8908,7 +8947,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "thiserror", @@ -8919,13 +8958,13 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8944,7 +8983,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", "fatality", @@ -8969,21 +9008,21 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives 7.0.0", "reed-solomon-novelpoly", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] [[package]] name = "polkadot-gossip-support" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "futures-timer", @@ -8991,13 +9030,13 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "sc-network", "sc-network-common", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "tracing-gum", ] @@ -9005,7 +9044,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "always-assert", "async-trait", @@ -9028,7 +9067,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "parity-scale-codec", @@ -9037,7 +9076,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-maybe-compressed-blob", "thiserror", "tracing-gum", @@ -9046,7 +9085,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "derive_more", @@ -9062,7 +9101,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", "sc-keystore", @@ -9079,7 +9118,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "futures", @@ -9101,7 +9140,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -9121,7 +9160,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-subsystem", @@ -9136,7 +9175,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -9157,7 +9196,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-metrics", @@ -9171,7 +9210,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "futures-timer", @@ -9188,7 +9227,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "fatality", "futures", @@ -9207,7 +9246,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -9224,7 +9263,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -9241,7 +9280,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -9259,7 +9298,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -9276,9 +9315,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "slotmap", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tempfile", "thiserror", "tokio", @@ -9288,7 +9327,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-primitives", @@ -9304,7 +9343,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cpu-time", "futures", @@ -9318,11 +9357,11 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "seccompiler", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing-gum", ] @@ -9330,7 +9369,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-metrics", @@ -9345,7 +9384,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "lazy_static", "log", @@ -9356,7 +9395,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-network", "sc-network-types", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", ] @@ -9364,7 +9403,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bs58 0.5.1", "futures", @@ -9383,7 +9422,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9396,7 +9435,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "sc-authority-discovery", "sc-network", "sc-network-types", @@ -9409,7 +9448,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "bounded-vec", @@ -9421,7 +9460,7 @@ dependencies = [ "serde", "sp-application-crypto 30.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-maybe-compressed-blob", "sp-runtime 31.0.1", @@ -9432,7 +9471,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9442,7 +9481,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "bitvec", @@ -9471,7 +9510,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "derive_more", @@ -9493,11 +9532,11 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives 7.0.0", "prioritized-metered-channel", - "rand", + "rand 0.8.5", "sc-client-api", "schnellru", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "thiserror", "tracing-gum", @@ -9506,7 +9545,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -9520,7 +9559,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-client-api", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -9528,7 +9567,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "derive_more", @@ -9536,9 +9575,9 @@ dependencies = [ "polkadot-core-primitives 7.0.0", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", ] @@ -9563,7 +9602,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "hex-literal", @@ -9578,13 +9617,13 @@ dependencies = [ "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9618,7 +9657,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9651,7 +9690,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -9685,14 +9724,14 @@ dependencies = [ "serde_derive", "slot-range-helper 7.0.0", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-npos-elections 26.0.0", "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -9753,7 +9792,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v1.2.1#5cd9e709a9430365d00b4bd0311b24ef55305b46" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v1.2.3#061073f2e740bfae3a576deab05feda962eb1851" dependencies = [ "frame-support 29.0.2", "polkadot-primitives 8.0.1", @@ -9768,14 +9807,14 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bs58 0.5.1", "frame-benchmarking 28.0.0", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9795,7 +9834,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9820,7 +9859,7 @@ dependencies = [ "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-metrics 7.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", @@ -9828,14 +9867,14 @@ dependencies = [ "sp-api 26.0.0", "sp-application-crypto 30.0.0", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", "static_assertions", @@ -9870,7 +9909,7 @@ dependencies = [ "polkadot-parachain-primitives 7.0.0", "polkadot-primitives 8.0.1", "polkadot-runtime-metrics 8.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", @@ -9893,12 +9932,13 @@ dependencies = [ [[package]] name = "polkadot-service" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "bitvec", "frame-benchmarking 28.0.0", "frame-benchmarking-cli", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-rpc-runtime-api", @@ -9987,7 +10027,7 @@ dependencies = [ "sp-consensus-babe 0.32.0", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-keyring", @@ -9997,7 +10037,7 @@ dependencies = [ "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-state-machine 0.35.0", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-timestamp 26.0.0", "sp-transaction-pool", "sp-version 29.0.0", @@ -10013,7 +10053,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -10036,11 +10076,11 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing-gum", ] @@ -10200,7 +10240,7 @@ dependencies = [ "hmac 0.12.1", "md-5", "memchr", - "rand", + "rand 0.8.5", "sha2 0.10.8", "stringprep", ] @@ -10458,16 +10498,6 @@ dependencies = [ "prost-derive 0.12.6", ] -[[package]] -name = "prost" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" -dependencies = [ - "bytes", - "prost-derive 0.13.3", -] - [[package]] name = "prost-build" version = "0.11.9" @@ -10511,27 +10541,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "prost-build" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" -dependencies = [ - "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "log", - "multimap 0.8.3", - "once_cell", - "petgraph", - "prettyplease 0.2.20", - "prost 0.13.3", - "prost-types 0.13.3", - "regex", - "syn 2.0.75", - "tempfile", -] - [[package]] name = "prost-derive" version = "0.11.9" @@ -10558,19 +10567,6 @@ dependencies = [ "syn 2.0.75", ] -[[package]] -name = "prost-derive" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 2.0.75", -] - [[package]] name = "prost-types" version = "0.11.9" @@ -10589,15 +10585,6 @@ dependencies = [ "prost 0.12.6", ] -[[package]] -name = "prost-types" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" -dependencies = [ - "prost 0.13.3", -] - [[package]] name = "psm" version = "0.1.21" @@ -10647,7 +10634,7 @@ dependencies = [ "bytes", "quick-protobuf", "thiserror", - "unsigned-varint 0.7.2", + "unsigned-varint", ] [[package]] @@ -10661,6 +10648,24 @@ dependencies = [ "pin-project-lite 0.1.12", ] +[[package]] +name = "quinn" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" +dependencies = [ + "bytes", + "pin-project-lite 0.2.14", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.20.9", + "thiserror", + "tokio", + "tracing", + "webpki", +] + [[package]] name = "quinn-proto" version = "0.9.6" @@ -10668,7 +10673,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand", + "rand 0.8.5", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -10679,6 +10684,19 @@ dependencies = [ "webpki", ] +[[package]] +name = "quinn-udp" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +dependencies = [ + "libc", + "quinn-proto", + "socket2 0.4.10", + "tracing", + "windows-sys 0.42.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -10694,6 +10712,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + [[package]] name = "rand" version = "0.8.5" @@ -10750,7 +10781,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", ] [[package]] @@ -11060,12 +11100,13 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "binary-merkle-tree", "bitvec", "frame-benchmarking 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -11136,8 +11177,8 @@ dependencies = [ "sp-consensus-babe 0.32.0", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-mmr-primitives", @@ -11145,8 +11186,8 @@ dependencies = [ "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -11160,13 +11201,13 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-weights 27.0.0", "staging-xcm 7.0.0", @@ -11456,18 +11497,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11481,14 +11522,14 @@ dependencies = [ "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network", "sc-network-types", "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "substrate-prometheus-endpoint", @@ -11498,7 +11539,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "futures-timer", @@ -11511,7 +11552,7 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", "substrate-prometheus-endpoint", @@ -11520,22 +11561,22 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-chain-spec" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "docify", @@ -11550,19 +11591,19 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-chain-spec-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -11573,7 +11614,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -11586,7 +11627,7 @@ dependencies = [ "names", "parity-bip39", "parity-scale-codec", - "rand", + "rand 0.8.5", "regex", "rpassword", "sc-client-api", @@ -11601,10 +11642,10 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keyring", "sp-keystore 0.34.0", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", @@ -11614,7 +11655,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "fnv", "futures", @@ -11627,21 +11668,21 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "kvdb", @@ -11657,17 +11698,17 @@ dependencies = [ "schnellru", "sp-arithmetic 23.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-database", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-consensus" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11682,7 +11723,7 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", "substrate-prometheus-endpoint", @@ -11692,7 +11733,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11710,7 +11751,7 @@ dependencies = [ "sp-consensus", "sp-consensus-aura", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", @@ -11721,7 +11762,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "fork-tree", @@ -11745,8 +11786,8 @@ dependencies = [ "sp-consensus", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", @@ -11757,7 +11798,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "jsonrpsee", @@ -11770,7 +11811,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "thiserror", @@ -11779,7 +11820,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11802,8 +11843,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-mmr-primitives", "sp-runtime 31.0.1", @@ -11816,7 +11857,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "jsonrpsee", @@ -11827,7 +11868,7 @@ dependencies = [ "sc-rpc", "serde", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "thiserror", ] @@ -11835,7 +11876,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "fork-tree", "parity-scale-codec", @@ -11848,7 +11889,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.3", @@ -11861,7 +11902,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -11881,8 +11922,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "substrate-prometheus-endpoint", @@ -11892,7 +11933,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "finality-grandpa", "futures", @@ -11904,7 +11945,7 @@ dependencies = [ "sc-rpc", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "thiserror", ] @@ -11912,7 +11953,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", "async-trait", @@ -11935,7 +11976,7 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", @@ -11947,7 +11988,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11961,7 +12002,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", @@ -11970,7 +12011,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11979,26 +12020,26 @@ dependencies = [ "sc-executor-wasmtime", "schnellru", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "wasm-instrument", ] @@ -12006,18 +12047,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-executor-wasmtime" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "anyhow", "cfg-if", @@ -12027,15 +12068,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ansi_term", "futures", @@ -12052,13 +12093,13 @@ dependencies = [ [[package]] name = "sc-keystore" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "thiserror", ] @@ -12066,7 +12107,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.6", @@ -12085,7 +12126,7 @@ dependencies = [ "sc-transaction-pool-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-mixnet", "sp-runtime 31.0.1", @@ -12095,7 +12136,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -12120,7 +12161,7 @@ dependencies = [ "pin-project", "prost 0.11.9", "prost-build 0.11.9", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network-common", "sc-network-types", @@ -12131,13 +12172,13 @@ dependencies = [ "smallvec", "sp-arithmetic 23.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", "tokio-stream", - "unsigned-varint 0.7.2", + "unsigned-varint", "void", "wasm-timer", "zeroize", @@ -12146,7 +12187,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -12164,7 +12205,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ahash 0.8.11", "futures", @@ -12184,7 +12225,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -12197,7 +12238,7 @@ dependencies = [ "sc-network", "sc-network-types", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "thiserror", ] @@ -12205,7 +12246,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -12231,7 +12272,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", @@ -12242,7 +12283,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12262,21 +12303,21 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bs58 0.4.0", "libp2p-identity", "litep2p", "multiaddr", "multihash 0.17.0", - "rand", + "rand 0.8.5", "thiserror", ] [[package]] name = "sc-offchain" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -12291,7 +12332,7 @@ dependencies = [ "once_cell", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network", "sc-network-common", @@ -12299,8 +12340,8 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-offchain", "sp-runtime 31.0.1", @@ -12311,7 +12352,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12320,7 +12361,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "jsonrpsee", @@ -12338,7 +12379,7 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-offchain", "sp-rpc", @@ -12352,7 +12393,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12362,7 +12403,7 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", "sp-runtime 31.0.1", "sp-version 29.0.0", @@ -12372,7 +12413,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "governor", @@ -12390,7 +12431,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12400,7 +12441,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-rpc", @@ -12410,7 +12451,7 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", "sp-runtime 31.0.1", "sp-version 29.0.0", @@ -12422,7 +12463,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "directories", @@ -12434,7 +12475,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -12463,16 +12504,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-state-machine 0.35.0", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "static_init", "substrate-prometheus-endpoint", @@ -12486,23 +12527,23 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-storage-monitor" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "clap", "fs4", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", ] @@ -12510,7 +12551,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12529,28 +12570,28 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", "futures", "libc", "log", - "rand", + "rand 0.8.5", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-telemetry" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "chrono", "futures", @@ -12558,7 +12599,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "sc-network", "sc-utils", "serde", @@ -12570,7 +12611,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ansi_term", "chrono", @@ -12587,10 +12628,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", "sp-runtime 31.0.1", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "tracing-log 0.1.4", @@ -12600,7 +12641,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -12611,7 +12652,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -12626,10 +12667,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -12638,7 +12679,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -12646,7 +12687,7 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "thiserror", ] @@ -12654,7 +12695,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-channel 1.9.0", "futures", @@ -12666,6 +12707,29 @@ dependencies = [ "sp-arithmetic 23.0.0", ] +[[package]] +name = "scale-bits" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" +dependencies = [ + "parity-scale-codec", + "scale-type-resolver", +] + +[[package]] +name = "scale-decode" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" +dependencies = [ + "derive_more", + "parity-scale-codec", + "scale-bits", + "scale-type-resolver", + "smallvec", +] + [[package]] name = "scale-info" version = "2.11.3" @@ -12692,6 +12756,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scale-type-resolver" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" + [[package]] name = "schannel" version = "0.1.23" @@ -12779,6 +12849,21 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "sctp-proto" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" +dependencies = [ + "bytes", + "crc", + "fxhash", + "log", + "rand 0.8.5", + "slab", + "thiserror", +] + [[package]] name = "sec1" version = "0.7.3" @@ -12953,6 +13038,7 @@ dependencies = [ "cumulus-primitives-utility", "frame-benchmarking 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -13001,15 +13087,15 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-offchain", "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", @@ -13034,6 +13120,18 @@ dependencies = [ "opaque-debug 0.3.1", ] +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", + "sha1-asm", +] + [[package]] name = "sha1" version = "0.10.6" @@ -13045,6 +13143,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha1-asm" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" +dependencies = [ + "cc", +] + [[package]] name = "sha2" version = "0.9.9" @@ -13100,7 +13207,7 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "tokio", ] @@ -13114,6 +13221,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "futures", @@ -13144,7 +13252,7 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "storage-hub-runtime", @@ -13175,10 +13283,10 @@ dependencies = [ "shp-file-metadata", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "storage-hub-runtime", "trie-db 0.29.1", @@ -13198,7 +13306,7 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", @@ -13249,7 +13357,7 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", @@ -13313,7 +13421,7 @@ dependencies = [ "shc-indexer-db", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "storage-hub-runtime", "substrate-frame-rpc-system", @@ -13332,7 +13440,7 @@ dependencies = [ "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", @@ -13349,7 +13457,7 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", ] @@ -13361,15 +13469,15 @@ dependencies = [ "frame-support 28.0.0", "num-bigint", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13384,8 +13492,8 @@ dependencies = [ "serde", "shp-traits", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13398,10 +13506,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13413,11 +13521,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-keystore 0.34.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13428,10 +13536,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -13444,6 +13552,12 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + [[package]] name = "signature" version = "2.2.0" @@ -13469,9 +13583,9 @@ dependencies = [ [[package]] name = "simple-dns" -version = "0.7.1" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c80e565e7dcc4f1ef247e2f395550d4cf7d777746d5988e7e4e3156b71077fc" +checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" dependencies = [ "bitflags 2.6.0", ] @@ -13506,13 +13620,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumn", "parity-scale-codec", "paste", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13596,7 +13710,7 @@ dependencies = [ "pbkdf2 0.12.2", "pin-project", "poly1305", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd", "schnorrkel 0.10.2", @@ -13639,7 +13753,7 @@ dependencies = [ "no-std-net", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "serde", "serde_json", @@ -13706,28 +13820,28 @@ dependencies = [ "http", "httparse", "log", - "rand", - "sha-1", + "rand 0.8.5", + "sha-1 0.9.8", ] [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", "sp-api-proc-macro 15.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "thiserror", ] @@ -13757,7 +13871,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13786,14 +13900,14 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13813,7 +13927,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "integer-sqrt", @@ -13821,7 +13935,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] @@ -13861,7 +13975,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", @@ -13887,7 +14001,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-api 26.0.0", "sp-inherents 26.0.0", @@ -13897,7 +14011,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "log", @@ -13915,12 +14029,12 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", @@ -13930,7 +14044,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", @@ -13946,7 +14060,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", @@ -13955,7 +14069,7 @@ dependencies = [ "sp-api 26.0.0", "sp-application-crypto 30.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", "sp-timestamp 26.0.0", @@ -13984,7 +14098,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "lazy_static", "parity-scale-codec", @@ -13992,8 +14106,8 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-keystore 0.34.0", "sp-mmr-primitives", @@ -14004,7 +14118,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "finality-grandpa", "log", @@ -14013,7 +14127,7 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", ] @@ -14021,7 +14135,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14045,7 +14159,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -14069,20 +14183,20 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "w3f-bls", @@ -14116,7 +14230,7 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", "secp256k1", @@ -14162,7 +14276,7 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", "secp256k1", @@ -14219,7 +14333,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "blake2b_simd", "byteorder", @@ -14256,17 +14370,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "syn 2.0.75", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14286,7 +14400,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro2", "quote", @@ -14306,11 +14420,11 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -14350,7 +14464,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14362,7 +14476,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -14390,25 +14504,25 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bytes", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "libsecp256k1", "log", "parity-scale-codec", "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", "tracing-core", ] @@ -14420,7 +14534,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec43aa073eab35fcb920d7592474d5427ea3be2bf938706a3ad955d7ba54fd8d" dependencies = [ "bytes", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "libsecp256k1", "log", "parity-scale-codec", @@ -14442,9 +14556,9 @@ dependencies = [ [[package]] name = "sp-keyring" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "strum 0.26.3", ] @@ -14452,12 +14566,12 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -14476,7 +14590,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14497,7 +14611,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14507,7 +14621,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", @@ -14518,7 +14632,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14526,8 +14640,8 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "thiserror", ] @@ -14535,13 +14649,13 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "serde", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", ] @@ -14563,10 +14677,10 @@ dependencies = [ [[package]] name = "sp-offchain" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", ] @@ -14584,7 +14698,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "backtrace", "lazy_static", @@ -14594,17 +14708,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "rustc-hash", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "either", @@ -14613,15 +14727,15 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", "sp-application-crypto 30.0.0", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", ] @@ -14638,7 +14752,7 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", @@ -14653,19 +14767,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] @@ -14724,7 +14838,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "expander 2.2.1", @@ -14750,12 +14864,12 @@ dependencies = [ [[package]] name = "sp-session" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keystore 0.34.0", "sp-runtime 31.0.1", "sp-staking 26.0.0", @@ -14780,13 +14894,13 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", ] @@ -14808,18 +14922,18 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -14835,7 +14949,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "smallvec", "sp-core 29.0.0", "sp-externalities 0.26.0", @@ -14850,23 +14964,23 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "hkdf", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sha2 0.10.8", "sp-api 26.0.0", "sp-application-crypto 30.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "x25519-dalek 2.0.1", ] @@ -14880,7 +14994,7 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" [[package]] name = "sp-std" @@ -14890,13 +15004,13 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -14928,7 +15042,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", @@ -14967,7 +15081,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "tracing", @@ -14989,7 +15103,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-api 26.0.0", "sp-runtime 31.0.1", @@ -14998,21 +15112,21 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15021,11 +15135,11 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -15044,7 +15158,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", @@ -15068,7 +15182,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", "sp-core 29.0.0", @@ -15083,17 +15197,17 @@ dependencies = [ [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -15130,7 +15244,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -15155,7 +15269,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -15177,7 +15291,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "parity-scale-codec", @@ -15185,7 +15299,7 @@ dependencies = [ "serde", "smallvec", "sp-arithmetic 23.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -15259,7 +15373,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -15267,13 +15381,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "staging-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -15310,7 +15424,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -15323,7 +15437,7 @@ dependencies = [ "sp-arithmetic 23.0.0", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", @@ -15355,7 +15469,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -15365,10 +15479,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-io 30.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", "staging-xcm 7.0.0", ] @@ -15515,7 +15629,7 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-keyring", @@ -15545,8 +15659,10 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", + "docify", "frame-benchmarking 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -15591,13 +15707,13 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-offchain", "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", @@ -15608,6 +15724,26 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "str0m" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" +dependencies = [ + "combine", + "crc", + "fastrand 2.1.0", + "hmac 0.12.1", + "once_cell", + "openssl", + "openssl-sys", + "sctp-proto", + "serde", + "sha-1 0.10.1", + "thiserror", + "tracing", +] + [[package]] name = "stringprep" version = "0.1.5" @@ -15698,7 +15834,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15722,12 +15858,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -15739,14 +15875,14 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hyper", "log", @@ -15758,32 +15894,41 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "trie-db 0.29.1", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ + "array-bytes 6.2.3", "build-helper", "cargo_metadata", "console", "filetime", + "frame-metadata", + "merkleized-metadata", + "parity-scale-codec", "parity-wasm", "polkavm-linker", + "sc-executor", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-maybe-compressed-blob", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0", "strum 0.26.3", "tempfile", "toml 0.8.19", @@ -16127,7 +16272,7 @@ dependencies = [ "pin-project-lite 0.2.14", "postgres-protocol", "postgres-types", - "rand", + "rand 0.8.5", "socket2 0.5.7", "tokio", "tokio-util", @@ -16167,6 +16312,21 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -16337,7 +16497,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "coarsetime", "polkadot-primitives 7.0.0", @@ -16348,7 +16508,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "expander 2.2.1", "proc-macro-crate 3.1.0", @@ -16494,7 +16654,7 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand", + "rand 0.8.5", "smallvec", "socket2 0.4.10", "thiserror", @@ -16504,6 +16664,31 @@ dependencies = [ "url", ] +[[package]] +name = "trust-dns-proto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "trust-dns-resolver" version = "0.22.0" @@ -16521,7 +16706,28 @@ dependencies = [ "thiserror", "tokio", "tracing", - "trust-dns-proto", + "trust-dns-proto 0.22.0", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto 0.23.2", ] [[package]] @@ -16536,6 +16742,26 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -16544,7 +16770,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand", + "rand 0.8.5", "static_assertions", ] @@ -16631,15 +16857,6 @@ dependencies = [ "bytes", "futures-io", "futures-util", -] - -[[package]] -name = "unsigned-varint" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" -dependencies = [ - "bytes", "tokio-util", ] @@ -16666,6 +16883,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" version = "0.2.2" @@ -16711,7 +16934,7 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", "sha2 0.10.8", @@ -17128,7 +17351,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand", + "rand 0.8.5", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -17180,13 +17403,14 @@ dependencies = [ [[package]] name = "westend-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "binary-merkle-tree", "bitvec", "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -17261,8 +17485,8 @@ dependencies = [ "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-io 30.0.0", "sp-mmr-primitives", @@ -17271,8 +17495,8 @@ dependencies = [ "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -17286,13 +17510,13 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime 31.0.1", "sp-weights 27.0.0", "staging-xcm 7.0.0", @@ -17397,6 +17621,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -17677,13 +17916,13 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs", "base64 0.13.1", "data-encoding", - "der-parser 8.2.0", + "der-parser", "lazy_static", "nom", - "oid-registry 0.6.1", + "oid-registry", "rusticata-macros", "thiserror", "time", @@ -17691,16 +17930,16 @@ dependencies = [ [[package]] name = "x509-parser" -version = "0.16.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" dependencies = [ - "asn1-rs 0.6.2", + "asn1-rs", "data-encoding", - "der-parser 9.0.0", + "der-parser", "lazy_static", "nom", - "oid-registry 0.7.1", + "oid-registry", "rusticata-macros", "thiserror", "time", @@ -17709,14 +17948,14 @@ dependencies = [ [[package]] name = "xcm-fee-payment-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "scale-info", "sp-api 26.0.0", "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-weights 27.0.0", "staging-xcm 7.0.0", ] @@ -17724,7 +17963,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "proc-macro2", @@ -17747,7 +17986,7 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", @@ -17756,7 +17995,7 @@ dependencies = [ "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-parachains 7.0.0", "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -17772,7 +18011,7 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "static_assertions", ] diff --git a/Cargo.toml b/Cargo.toml index d8c673ab0..0b412329d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,115 +64,116 @@ diesel = { version = "2.2.4", features = ["postgres", "chrono"] } diesel-async = { version = "0.5.0", features = ["bb8", "postgres"] } # Substrate -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } # latest version containing trie-db upgrade (double ended iterator) sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", version = "29.0.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", features = [ +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", features = [ "rococo-native", ] } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.11.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.1", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.3", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0" } -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false, features = [ +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false, features = [ "parameterized-consensus-hook", ] } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.11.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } # Local Pallets pallet-bucket-nfts = { path = "pallets/bucket-nfts", default-features = false } diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index 980b37fd6..111d204bc 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -2609,13 +2609,14 @@ export default { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" }, - execute_blob: { - encodedMessage: "Bytes", - maxWeight: "SpWeightsWeightV2Weight" - }, - send_blob: { + transfer_assets_using_type_and_then: { dest: "XcmVersionedLocation", - encodedMessage: "Bytes" + assets: "XcmVersionedAssets", + assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", + remoteFeesId: "XcmVersionedAssetId", + feesTransferType: "StagingXcmExecutorAssetTransferTransferType", + customXcmOnDest: "XcmVersionedXcm", + weightLimit: "XcmV3WeightLimit" } } }, @@ -3025,11 +3026,34 @@ export default { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup297: cumulus_pallet_xcm::pallet::Call + * Lookup296: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: "Null", + LocalReserve: "Null", + DestinationReserve: "Null", + RemoteReserve: "XcmVersionedLocation" + } + }, + /** + * Lookup297: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + V3: "XcmV3MultiassetAssetId", + V4: "StagingXcmV4AssetAssetId" + } + }, + /** + * Lookup298: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup298: pallet_message_queue::pallet::Call + * Lookup299: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3046,7 +3070,7 @@ export default { } }, /** - * Lookup299: pallet_storage_providers::pallet::Call + * Lookup300: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3095,7 +3119,7 @@ export default { } }, /** - * Lookup300: pallet_file_system::pallet::Call + * Lookup301: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3201,13 +3225,13 @@ export default { } }, /** - * Lookup301: pallet_file_system::types::BucketMoveRequestResponse + * Lookup302: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup306: pallet_proofs_dealer::pallet::Call + * Lookup307: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3227,13 +3251,13 @@ export default { } }, /** - * Lookup307: pallet_randomness::pallet::Call + * Lookup308: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup308: pallet_payment_streams::pallet::Call + * Lookup309: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3273,7 +3297,7 @@ export default { } }, /** - * Lookup309: pallet_bucket_nfts::pallet::Call + * Lookup310: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3291,7 +3315,7 @@ export default { } }, /** - * Lookup311: pallet_nfts::pallet::Call + * Lookup312: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3488,7 +3512,7 @@ export default { } }, /** - * Lookup312: pallet_nfts::types::CollectionConfig + * Lookup313: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3496,7 +3520,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup314: pallet_nfts::types::CollectionSetting + * Lookup315: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3520,7 +3544,7 @@ export default { ] }, /** - * Lookup315: pallet_nfts::types::MintSettings + * Lookup316: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3530,7 +3554,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup316: pallet_nfts::types::MintType + * Lookup317: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3540,13 +3564,13 @@ export default { } }, /** - * Lookup319: pallet_nfts::types::ItemSetting + * Lookup320: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup320: pallet_nfts::types::DestroyWitness + * Lookup321: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3554,26 +3578,26 @@ export default { attributes: "Compact" }, /** - * Lookup322: pallet_nfts::types::MintWitness + * Lookup323: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup323: pallet_nfts::types::ItemConfig + * Lookup324: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup325: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup326: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup327: pallet_nfts::types::ItemTip + * Lookup328: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3582,7 +3606,7 @@ export default { amount: "u128" }, /** - * Lookup329: pallet_nfts::types::PreSignedMint + * Lookup330: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3594,7 +3618,7 @@ export default { mintPrice: "Option" }, /** - * Lookup330: sp_runtime::MultiSignature + * Lookup331: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3604,7 +3628,7 @@ export default { } }, /** - * Lookup333: pallet_nfts::types::PreSignedAttributes + * Lookup334: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3614,20 +3638,20 @@ export default { deadline: "u32" }, /** - * Lookup334: pallet_sudo::pallet::Error + * Lookup335: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup337: pallet_collator_selection::pallet::CandidateInfo + * Lookup338: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup339: pallet_collator_selection::pallet::Error + * Lookup340: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3651,17 +3675,17 @@ export default { ] }, /** - * Lookup343: sp_core::crypto::KeyTypeId + * Lookup344: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup344: pallet_session::pallet::Error + * Lookup345: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3671,13 +3695,13 @@ export default { lastIndex: "u16" }, /** - * Lookup354: cumulus_pallet_xcmp_queue::OutboundState + * Lookup355: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3685,13 +3709,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup358: pallet_xcm::pallet::QueryStatus + * Lookup359: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3712,7 +3736,7 @@ export default { } }, /** - * Lookup362: xcm::VersionedResponse + * Lookup363: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3724,7 +3748,7 @@ export default { } }, /** - * Lookup368: pallet_xcm::pallet::VersionMigrationStage + * Lookup369: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3734,18 +3758,6 @@ export default { MigrateAndNotifyOldTargets: "Null" } }, - /** - * Lookup371: xcm::VersionedAssetId - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - V3: "XcmV3MultiassetAssetId", - V4: "StagingXcmV4AssetAssetId" - } - }, /** * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ @@ -3780,13 +3792,11 @@ export default { "FeesNotMet", "LockNotFound", "InUse", - "InvalidAssetNotConcrete", + "__Unused20", "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete", - "UnableToDecode", - "XcmTooLarge" + "LocalExecutionIncomplete" ] }, /** @@ -4274,7 +4284,19 @@ export default { **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup463: storage_hub_runtime::Runtime + * Lookup463: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: "FrameMetadataHashExtensionMode" + }, + /** + * Lookup464: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: ["Disabled", "Enabled"] + }, + /** + * Lookup465: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index d64090637..5e6a7f80c 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/augment-api-errors.d.ts b/api-augment/dist/types/interfaces/augment-api-errors.d.ts index 7f1a58c61..4ab8cab17 100644 --- a/api-augment/dist/types/interfaces/augment-api-errors.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-errors.d.ts @@ -777,10 +777,6 @@ declare module "@polkadot/api-base/types/errors" { * The unlock operation cannot succeed because there are still consumers of the lock. **/ InUse: AugmentedError; - /** - * Invalid non-concrete asset. - **/ - InvalidAssetNotConcrete: AugmentedError; /** * Invalid asset, reserve chain could not be determined for it. **/ @@ -826,10 +822,6 @@ declare module "@polkadot/api-base/types/errors" { * Too many assets with different reserve locations have been attempted for transfer. **/ TooManyReserves: AugmentedError; - /** - * Could not decode XCM. - **/ - UnableToDecode: AugmentedError; /** * The desired destination was unreachable, generally because there is a no way of routing * to it. @@ -839,11 +831,6 @@ declare module "@polkadot/api-base/types/errors" { * The message's weight could not be determined. **/ UnweighableMessage: AugmentedError; - /** - * XCM encoded length is too large. - * Returned when an XCM encoded length is larger than `MaxXcmEncodedSize`. - **/ - XcmTooLarge: AugmentedError; /** * Generic error **/ diff --git a/api-augment/dist/types/interfaces/augment-api-tx.d.ts b/api-augment/dist/types/interfaces/augment-api-tx.d.ts index 69a97798f..9e4c65217 100644 --- a/api-augment/dist/types/interfaces/augment-api-tx.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-tx.d.ts @@ -30,9 +30,11 @@ import type { SpRuntimeMultiSignature, SpTrieStorageProofCompactProof, SpWeightsWeightV2Weight, + StagingXcmExecutorAssetTransferTransferType, StagingXcmV4Location, StorageHubRuntimeSessionKeys, XcmV3WeightLimit, + XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm @@ -2521,9 +2523,6 @@ declare module "@polkadot/api-base/types/submittable" { * No more than `max_weight` will be used in its attempted execution. If this is less than * the maximum amount of weight that the message could take to be executed, then no * execution attempt will be made. - * - * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob` - * instead. **/ execute: AugmentedSubmittable< ( @@ -2551,32 +2550,6 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedXcm, SpWeightsWeightV2Weight] >; - /** - * Execute an XCM from a local, signed, origin. - * - * An event is deposited indicating whether the message could be executed completely - * or only partially. - * - * No more than `max_weight` will be used in its attempted execution. If this is less than - * the maximum amount of weight that the message could take to be executed, then no - * execution attempt will be made. - * - * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. - **/ - executeBlob: AugmentedSubmittable< - ( - encodedMessage: Bytes | string | Uint8Array, - maxWeight: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [Bytes, SpWeightsWeightV2Weight] - >; /** * Set a safe XCM version (the version that XCM should be encoded with if the most recent * version a destination can accept is unknown). @@ -2911,9 +2884,6 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] >; - /** - * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead. - **/ send: AugmentedSubmittable< ( dest: @@ -2945,33 +2915,6 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm] >; - /** - * Send an XCM from a local, signed, origin. - * - * The destination, `dest`, will receive this message with a `DescendOrigin` instruction - * that makes the origin of the message be the origin on this system. - * - * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. - **/ - sendBlob: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - encodedMessage: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, Bytes] - >; /** * Teleport some assets from the local chain to some destination chain. * @@ -3127,6 +3070,160 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] >; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assetsTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { + Teleport: any; + } + | { + LocalReserve: any; + } + | { + DestinationReserve: any; + } + | { + RemoteReserve: any; + } + | string + | Uint8Array, + remoteFeesId: + | XcmVersionedAssetId + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feesTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { + Teleport: any; + } + | { + LocalReserve: any; + } + | { + DestinationReserve: any; + } + | { + RemoteReserve: any; + } + | string + | Uint8Array, + customXcmOnDest: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [ + XcmVersionedLocation, + XcmVersionedAssets, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedAssetId, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedXcm, + XcmV3WeightLimit + ] + >; /** * Generic tx **/ diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index a016dc9fa..36de2479a 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -2562,13 +2562,14 @@ declare const _default: { assets: string; beneficiary: string; }; - execute_blob: { - encodedMessage: string; - maxWeight: string; - }; - send_blob: { + transfer_assets_using_type_and_then: { dest: string; - encodedMessage: string; + assets: string; + assetsTransferType: string; + remoteFeesId: string; + feesTransferType: string; + customXcmOnDest: string; + weightLimit: string; }; }; }; @@ -2978,11 +2979,34 @@ declare const _default: { _enum: string[]; }; /** - * Lookup297: cumulus_pallet_xcm::pallet::Call + * Lookup296: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: string; + LocalReserve: string; + DestinationReserve: string; + RemoteReserve: string; + }; + }; + /** + * Lookup297: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: string; + __Unused1: string; + __Unused2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup298: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: string; /** - * Lookup298: pallet_message_queue::pallet::Call + * Lookup299: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -2999,7 +3023,7 @@ declare const _default: { }; }; /** - * Lookup299: pallet_storage_providers::pallet::Call + * Lookup300: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3048,7 +3072,7 @@ declare const _default: { }; }; /** - * Lookup300: pallet_file_system::pallet::Call + * Lookup301: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3154,13 +3178,13 @@ declare const _default: { }; }; /** - * Lookup301: pallet_file_system::types::BucketMoveRequestResponse + * Lookup302: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: string[]; }; /** - * Lookup306: pallet_proofs_dealer::pallet::Call + * Lookup307: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3180,13 +3204,13 @@ declare const _default: { }; }; /** - * Lookup307: pallet_randomness::pallet::Call + * Lookup308: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: string[]; }; /** - * Lookup308: pallet_payment_streams::pallet::Call + * Lookup309: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3226,7 +3250,7 @@ declare const _default: { }; }; /** - * Lookup309: pallet_bucket_nfts::pallet::Call + * Lookup310: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3244,7 +3268,7 @@ declare const _default: { }; }; /** - * Lookup311: pallet_nfts::pallet::Call + * Lookup312: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3441,7 +3465,7 @@ declare const _default: { }; }; /** - * Lookup312: pallet_nfts::types::CollectionConfig + * Lookup313: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: string; @@ -3449,13 +3473,13 @@ declare const _default: { mintSettings: string; }; /** - * Lookup314: pallet_nfts::types::CollectionSetting + * Lookup315: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: string[]; }; /** - * Lookup315: pallet_nfts::types::MintSettings + * Lookup316: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: string; @@ -3465,7 +3489,7 @@ declare const _default: { defaultItemSettings: string; }; /** - * Lookup316: pallet_nfts::types::MintType + * Lookup317: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3475,13 +3499,13 @@ declare const _default: { }; }; /** - * Lookup319: pallet_nfts::types::ItemSetting + * Lookup320: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: string[]; }; /** - * Lookup320: pallet_nfts::types::DestroyWitness + * Lookup321: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: string; @@ -3489,26 +3513,26 @@ declare const _default: { attributes: string; }; /** - * Lookup322: pallet_nfts::types::MintWitness + * Lookup323: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: string; mintPrice: string; }; /** - * Lookup323: pallet_nfts::types::ItemConfig + * Lookup324: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: string; }; /** - * Lookup325: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup326: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: string; }; /** - * Lookup327: pallet_nfts::types::ItemTip + * Lookup328: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: string; @@ -3517,7 +3541,7 @@ declare const _default: { amount: string; }; /** - * Lookup329: pallet_nfts::types::PreSignedMint + * Lookup330: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: string; @@ -3529,7 +3553,7 @@ declare const _default: { mintPrice: string; }; /** - * Lookup330: sp_runtime::MultiSignature + * Lookup331: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3539,7 +3563,7 @@ declare const _default: { }; }; /** - * Lookup333: pallet_nfts::types::PreSignedAttributes + * Lookup334: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3549,36 +3573,36 @@ declare const _default: { deadline: string; }; /** - * Lookup334: pallet_sudo::pallet::Error + * Lookup335: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup337: pallet_collator_selection::pallet::CandidateInfo + * Lookup338: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup339: pallet_collator_selection::pallet::Error + * Lookup340: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup343: sp_core::crypto::KeyTypeId + * Lookup344: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup344: pallet_session::pallet::Error + * Lookup345: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3588,13 +3612,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup354: cumulus_pallet_xcmp_queue::OutboundState + * Lookup355: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3602,13 +3626,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup358: pallet_xcm::pallet::QueryStatus + * Lookup359: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3629,7 +3653,7 @@ declare const _default: { }; }; /** - * Lookup362: xcm::VersionedResponse + * Lookup363: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3641,7 +3665,7 @@ declare const _default: { }; }; /** - * Lookup368: pallet_xcm::pallet::VersionMigrationStage + * Lookup369: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3651,18 +3675,6 @@ declare const _default: { MigrateAndNotifyOldTargets: string; }; }; - /** - * Lookup371: xcm::VersionedAssetId - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: string; - __Unused1: string; - __Unused2: string; - V3: string; - V4: string; - }; - }; /** * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ @@ -3966,7 +3978,19 @@ declare const _default: { **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup463: storage_hub_runtime::Runtime + * Lookup463: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: string; + }; + /** + * Lookup464: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: string[]; + }; + /** + * Lookup465: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/registry.d.ts b/api-augment/dist/types/interfaces/registry.d.ts index 2baef0021..550ab37f5 100644 --- a/api-augment/dist/types/interfaces/registry.d.ts +++ b/api-augment/dist/types/interfaces/registry.d.ts @@ -20,6 +20,8 @@ import type { CumulusPrimitivesCoreAggregateMessageOrigin, CumulusPrimitivesParachainInherentParachainInherentData, CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, + FrameMetadataHashExtensionCheckMetadataHash, + FrameMetadataHashExtensionMode, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, @@ -171,6 +173,7 @@ import type { SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, StagingParachainInfoCall, + StagingXcmExecutorAssetTransferTransferType, StagingXcmV3MultiLocation, StagingXcmV4Asset, StagingXcmV4AssetAssetFilter, @@ -263,6 +266,8 @@ declare module "@polkadot/types/types/registry" { CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; + FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; + FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; FrameSupportDispatchPays: FrameSupportDispatchPays; @@ -414,6 +419,7 @@ declare module "@polkadot/types/types/registry" { SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; StagingParachainInfoCall: StagingParachainInfoCall; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; StagingXcmV4Asset: StagingXcmV4Asset; StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index 2c791d76b..845550bba 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -3069,15 +3069,15 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; - readonly isExecuteBlob: boolean; - readonly asExecuteBlob: { - readonly encodedMessage: Bytes; - readonly maxWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isSendBlob: boolean; - readonly asSendBlob: { + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { readonly dest: XcmVersionedLocation; - readonly encodedMessage: Bytes; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; } & Struct; readonly type: | "Send" @@ -3093,8 +3093,7 @@ declare module "@polkadot/types/lookup" { | "ForceSuspension" | "TransferAssets" | "ClaimAssets" - | "ExecuteBlob" - | "SendBlob"; + | "TransferAssetsUsingTypeAndThen"; } /** @name XcmVersionedXcm (260) */ interface XcmVersionedXcm extends Enum { @@ -3654,9 +3653,26 @@ declare module "@polkadot/types/lookup" { readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name CumulusPalletXcmCall (297) */ + /** @name StagingXcmExecutorAssetTransferTransferType (296) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; + } + /** @name XcmVersionedAssetId (297) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly type: "V3" | "V4"; + } + /** @name CumulusPalletXcmCall (298) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (298) */ + /** @name PalletMessageQueueCall (299) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3672,7 +3688,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (299) */ + /** @name PalletStorageProvidersCall (300) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -3737,7 +3753,7 @@ declare module "@polkadot/types/lookup" { | "ForceBspSignUp" | "Slash"; } - /** @name PalletFileSystemCall (300) */ + /** @name PalletFileSystemCall (301) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { @@ -3862,13 +3878,13 @@ declare module "@polkadot/types/lookup" { | "PendingFileDeletionRequestSubmitProof" | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (301) */ + /** @name PalletFileSystemBucketMoveRequestResponse (302) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletProofsDealerCall (306) */ + /** @name PalletProofsDealerCall (307) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -3889,12 +3905,12 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (307) */ + /** @name PalletRandomnessCall (308) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (308) */ + /** @name PalletPaymentStreamsCall (309) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -3947,7 +3963,7 @@ declare module "@polkadot/types/lookup" { | "PayOutstandingDebt" | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (309) */ + /** @name PalletBucketNftsCall (310) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -3964,7 +3980,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (311) */ + /** @name PalletNftsCall (312) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4236,13 +4252,13 @@ declare module "@polkadot/types/lookup" { | "MintPreSigned" | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (312) */ + /** @name PalletNftsCollectionConfig (313) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (314) */ + /** @name PalletNftsCollectionSetting (315) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4256,7 +4272,7 @@ declare module "@polkadot/types/lookup" { | "UnlockedMaxSupply" | "DepositRequired"; } - /** @name PalletNftsMintSettings (315) */ + /** @name PalletNftsMintSettings (316) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4264,7 +4280,7 @@ declare module "@polkadot/types/lookup" { readonly endBlock: Option; readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (316) */ + /** @name PalletNftsMintType (317) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4272,40 +4288,40 @@ declare module "@polkadot/types/lookup" { readonly asHolderOf: u32; readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (319) */ + /** @name PalletNftsItemSetting (320) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; readonly isUnlockedAttributes: boolean; readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (320) */ + /** @name PalletNftsDestroyWitness (321) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (322) */ + /** @name PalletNftsMintWitness (323) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (323) */ + /** @name PalletNftsItemConfig (324) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (325) */ + /** @name PalletNftsCancelAttributesApprovalWitness (326) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (327) */ + /** @name PalletNftsItemTip (328) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; readonly receiver: AccountId32; readonly amount: u128; } - /** @name PalletNftsPreSignedMint (329) */ + /** @name PalletNftsPreSignedMint (330) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4315,7 +4331,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (330) */ + /** @name SpRuntimeMultiSignature (331) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4325,7 +4341,7 @@ declare module "@polkadot/types/lookup" { readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (333) */ + /** @name PalletNftsPreSignedAttributes (334) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4333,17 +4349,17 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletSudoError (334) */ + /** @name PalletSudoError (335) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (337) */ + /** @name PalletCollatorSelectionCandidateInfo (338) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (339) */ + /** @name PalletCollatorSelectionError (340) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4381,9 +4397,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (343) */ + /** @name SpCoreCryptoKeyTypeId (344) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (344) */ + /** @name PalletSessionError (345) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4397,7 +4413,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (354) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4405,26 +4421,26 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (354) */ + /** @name CumulusPalletXcmpQueueOutboundState (355) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (356) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (357) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (357) */ + /** @name CumulusPalletXcmpQueueError (358) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (358) */ + /** @name PalletXcmQueryStatus (359) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4445,7 +4461,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (362) */ + /** @name XcmVersionedResponse (363) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4455,7 +4471,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (368) */ + /** @name PalletXcmVersionMigrationStage (369) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4468,14 +4484,6 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (371) */ - interface XcmVersionedAssetId extends Enum { - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetAssetId; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssetId; - readonly type: "V3" | "V4"; - } /** @name PalletXcmRemoteLockedFungibleRecord (372) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; @@ -4505,13 +4513,10 @@ declare module "@polkadot/types/lookup" { readonly isFeesNotMet: boolean; readonly isLockNotFound: boolean; readonly isInUse: boolean; - readonly isInvalidAssetNotConcrete: boolean; readonly isInvalidAssetUnknownReserve: boolean; readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; - readonly isUnableToDecode: boolean; - readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4533,13 +4538,10 @@ declare module "@polkadot/types/lookup" { | "FeesNotMet" | "LockNotFound" | "InUse" - | "InvalidAssetNotConcrete" | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete" - | "UnableToDecode" - | "XcmTooLarge"; + | "LocalExecutionIncomplete"; } /** @name PalletMessageQueueBookState (380) */ interface PalletMessageQueueBookState extends Struct { @@ -5111,6 +5113,16 @@ declare module "@polkadot/types/lookup" { interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (462) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (463) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (463) */ + interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: FrameMetadataHashExtensionMode; + } + /** @name FrameMetadataHashExtensionMode (464) */ + interface FrameMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: "Disabled" | "Enabled"; + } + /** @name StorageHubRuntimeRuntime (465) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/src/interfaces/augment-api-errors.ts b/api-augment/src/interfaces/augment-api-errors.ts index 05b4cab82..9de46dcb9 100644 --- a/api-augment/src/interfaces/augment-api-errors.ts +++ b/api-augment/src/interfaces/augment-api-errors.ts @@ -785,10 +785,6 @@ declare module "@polkadot/api-base/types/errors" { * The unlock operation cannot succeed because there are still consumers of the lock. **/ InUse: AugmentedError; - /** - * Invalid non-concrete asset. - **/ - InvalidAssetNotConcrete: AugmentedError; /** * Invalid asset, reserve chain could not be determined for it. **/ @@ -834,10 +830,6 @@ declare module "@polkadot/api-base/types/errors" { * Too many assets with different reserve locations have been attempted for transfer. **/ TooManyReserves: AugmentedError; - /** - * Could not decode XCM. - **/ - UnableToDecode: AugmentedError; /** * The desired destination was unreachable, generally because there is a no way of routing * to it. @@ -847,11 +839,6 @@ declare module "@polkadot/api-base/types/errors" { * The message's weight could not be determined. **/ UnweighableMessage: AugmentedError; - /** - * XCM encoded length is too large. - * Returned when an XCM encoded length is larger than `MaxXcmEncodedSize`. - **/ - XcmTooLarge: AugmentedError; /** * Generic error **/ diff --git a/api-augment/src/interfaces/augment-api-tx.ts b/api-augment/src/interfaces/augment-api-tx.ts index 918afa828..ca744c6f7 100644 --- a/api-augment/src/interfaces/augment-api-tx.ts +++ b/api-augment/src/interfaces/augment-api-tx.ts @@ -36,9 +36,11 @@ import type { SpRuntimeMultiSignature, SpTrieStorageProofCompactProof, SpWeightsWeightV2Weight, + StagingXcmExecutorAssetTransferTransferType, StagingXcmV4Location, StorageHubRuntimeSessionKeys, XcmV3WeightLimit, + XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm @@ -2168,9 +2170,6 @@ declare module "@polkadot/api-base/types/submittable" { * No more than `max_weight` will be used in its attempted execution. If this is less than * the maximum amount of weight that the message could take to be executed, then no * execution attempt will be made. - * - * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob` - * instead. **/ execute: AugmentedSubmittable< ( @@ -2183,29 +2182,6 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedXcm, SpWeightsWeightV2Weight] >; - /** - * Execute an XCM from a local, signed, origin. - * - * An event is deposited indicating whether the message could be executed completely - * or only partially. - * - * No more than `max_weight` will be used in its attempted execution. If this is less than - * the maximum amount of weight that the message could take to be executed, then no - * execution attempt will be made. - * - * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. - **/ - executeBlob: AugmentedSubmittable< - ( - encodedMessage: Bytes | string | Uint8Array, - maxWeight: - | SpWeightsWeightV2Weight - | { refTime?: any; proofSize?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [Bytes, SpWeightsWeightV2Weight] - >; /** * Set a safe XCM version (the version that XCM should be encoded with if the most recent * version a destination can accept is unknown). @@ -2459,9 +2435,6 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] >; - /** - * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead. - **/ send: AugmentedSubmittable< ( dest: @@ -2475,27 +2448,6 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm] >; - /** - * Send an XCM from a local, signed, origin. - * - * The destination, `dest`, will receive this message with a `DescendOrigin` instruction - * that makes the origin of the message be the origin on this system. - * - * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`]. - **/ - sendBlob: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - encodedMessage: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, Bytes] - >; /** * Teleport some assets from the local chain to some destination chain. * @@ -2611,6 +2563,113 @@ declare module "@polkadot/api-base/types/submittable" { ) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] >; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assetsTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { Teleport: any } + | { LocalReserve: any } + | { DestinationReserve: any } + | { RemoteReserve: any } + | string + | Uint8Array, + remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array, + feesTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { Teleport: any } + | { LocalReserve: any } + | { DestinationReserve: any } + | { RemoteReserve: any } + | string + | Uint8Array, + customXcmOnDest: + | XcmVersionedXcm + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [ + XcmVersionedLocation, + XcmVersionedAssets, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedAssetId, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedXcm, + XcmV3WeightLimit + ] + >; /** * Generic tx **/ diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index a619d90dd..a45cffb42 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -2611,13 +2611,14 @@ export default { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" }, - execute_blob: { - encodedMessage: "Bytes", - maxWeight: "SpWeightsWeightV2Weight" - }, - send_blob: { + transfer_assets_using_type_and_then: { dest: "XcmVersionedLocation", - encodedMessage: "Bytes" + assets: "XcmVersionedAssets", + assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", + remoteFeesId: "XcmVersionedAssetId", + feesTransferType: "StagingXcmExecutorAssetTransferTransferType", + customXcmOnDest: "XcmVersionedXcm", + weightLimit: "XcmV3WeightLimit" } } }, @@ -3027,11 +3028,34 @@ export default { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup297: cumulus_pallet_xcm::pallet::Call + * Lookup296: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: "Null", + LocalReserve: "Null", + DestinationReserve: "Null", + RemoteReserve: "XcmVersionedLocation" + } + }, + /** + * Lookup297: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + V3: "XcmV3MultiassetAssetId", + V4: "StagingXcmV4AssetAssetId" + } + }, + /** + * Lookup298: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup298: pallet_message_queue::pallet::Call + * Lookup299: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3048,7 +3072,7 @@ export default { } }, /** - * Lookup299: pallet_storage_providers::pallet::Call + * Lookup300: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3097,7 +3121,7 @@ export default { } }, /** - * Lookup300: pallet_file_system::pallet::Call + * Lookup301: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3203,13 +3227,13 @@ export default { } }, /** - * Lookup301: pallet_file_system::types::BucketMoveRequestResponse + * Lookup302: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup306: pallet_proofs_dealer::pallet::Call + * Lookup307: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3229,13 +3253,13 @@ export default { } }, /** - * Lookup307: pallet_randomness::pallet::Call + * Lookup308: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup308: pallet_payment_streams::pallet::Call + * Lookup309: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3275,7 +3299,7 @@ export default { } }, /** - * Lookup309: pallet_bucket_nfts::pallet::Call + * Lookup310: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3293,7 +3317,7 @@ export default { } }, /** - * Lookup311: pallet_nfts::pallet::Call + * Lookup312: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3490,7 +3514,7 @@ export default { } }, /** - * Lookup312: pallet_nfts::types::CollectionConfig + * Lookup313: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3498,7 +3522,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup314: pallet_nfts::types::CollectionSetting + * Lookup315: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3522,7 +3546,7 @@ export default { ] }, /** - * Lookup315: pallet_nfts::types::MintSettings + * Lookup316: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3532,7 +3556,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup316: pallet_nfts::types::MintType + * Lookup317: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3542,13 +3566,13 @@ export default { } }, /** - * Lookup319: pallet_nfts::types::ItemSetting + * Lookup320: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup320: pallet_nfts::types::DestroyWitness + * Lookup321: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3556,26 +3580,26 @@ export default { attributes: "Compact" }, /** - * Lookup322: pallet_nfts::types::MintWitness + * Lookup323: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup323: pallet_nfts::types::ItemConfig + * Lookup324: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup325: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup326: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup327: pallet_nfts::types::ItemTip + * Lookup328: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3584,7 +3608,7 @@ export default { amount: "u128" }, /** - * Lookup329: pallet_nfts::types::PreSignedMint + * Lookup330: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3596,7 +3620,7 @@ export default { mintPrice: "Option" }, /** - * Lookup330: sp_runtime::MultiSignature + * Lookup331: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3606,7 +3630,7 @@ export default { } }, /** - * Lookup333: pallet_nfts::types::PreSignedAttributes + * Lookup334: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3616,20 +3640,20 @@ export default { deadline: "u32" }, /** - * Lookup334: pallet_sudo::pallet::Error + * Lookup335: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup337: pallet_collator_selection::pallet::CandidateInfo + * Lookup338: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup339: pallet_collator_selection::pallet::Error + * Lookup340: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3653,17 +3677,17 @@ export default { ] }, /** - * Lookup343: sp_core::crypto::KeyTypeId + * Lookup344: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup344: pallet_session::pallet::Error + * Lookup345: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup353: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3673,13 +3697,13 @@ export default { lastIndex: "u16" }, /** - * Lookup354: cumulus_pallet_xcmp_queue::OutboundState + * Lookup355: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup356: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3687,13 +3711,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup357: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup358: pallet_xcm::pallet::QueryStatus + * Lookup359: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3714,7 +3738,7 @@ export default { } }, /** - * Lookup362: xcm::VersionedResponse + * Lookup363: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3726,7 +3750,7 @@ export default { } }, /** - * Lookup368: pallet_xcm::pallet::VersionMigrationStage + * Lookup369: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3736,18 +3760,6 @@ export default { MigrateAndNotifyOldTargets: "Null" } }, - /** - * Lookup371: xcm::VersionedAssetId - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - V3: "XcmV3MultiassetAssetId", - V4: "StagingXcmV4AssetAssetId" - } - }, /** * Lookup372: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ @@ -3782,13 +3794,11 @@ export default { "FeesNotMet", "LockNotFound", "InUse", - "InvalidAssetNotConcrete", + "__Unused20", "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete", - "UnableToDecode", - "XcmTooLarge" + "LocalExecutionIncomplete" ] }, /** @@ -4276,7 +4286,19 @@ export default { **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup463: storage_hub_runtime::Runtime + * Lookup463: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: "FrameMetadataHashExtensionMode" + }, + /** + * Lookup464: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: ["Disabled", "Enabled"] + }, + /** + * Lookup465: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/registry.ts b/api-augment/src/interfaces/registry.ts index 0007bf6ee..5b2f06029 100644 --- a/api-augment/src/interfaces/registry.ts +++ b/api-augment/src/interfaces/registry.ts @@ -26,6 +26,8 @@ import type { CumulusPrimitivesCoreAggregateMessageOrigin, CumulusPrimitivesParachainInherentParachainInherentData, CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, + FrameMetadataHashExtensionCheckMetadataHash, + FrameMetadataHashExtensionMode, FrameSupportDispatchDispatchClass, FrameSupportDispatchDispatchInfo, FrameSupportDispatchPays, @@ -177,6 +179,7 @@ import type { SpWeightsRuntimeDbWeight, SpWeightsWeightV2Weight, StagingParachainInfoCall, + StagingXcmExecutorAssetTransferTransferType, StagingXcmV3MultiLocation, StagingXcmV4Asset, StagingXcmV4AssetAssetFilter, @@ -270,6 +273,8 @@ declare module "@polkadot/types/types/registry" { CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; + FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; + FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; FrameSupportDispatchPays: FrameSupportDispatchPays; @@ -421,6 +426,7 @@ declare module "@polkadot/types/types/registry" { SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; StagingParachainInfoCall: StagingParachainInfoCall; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; StagingXcmV4Asset: StagingXcmV4Asset; StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index 5dc699dd8..871b20d5c 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -3221,15 +3221,15 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; - readonly isExecuteBlob: boolean; - readonly asExecuteBlob: { - readonly encodedMessage: Bytes; - readonly maxWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isSendBlob: boolean; - readonly asSendBlob: { + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { readonly dest: XcmVersionedLocation; - readonly encodedMessage: Bytes; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; } & Struct; readonly type: | "Send" @@ -3245,8 +3245,7 @@ declare module "@polkadot/types/lookup" { | "ForceSuspension" | "TransferAssets" | "ClaimAssets" - | "ExecuteBlob" - | "SendBlob"; + | "TransferAssetsUsingTypeAndThen"; } /** @name XcmVersionedXcm (260) */ @@ -3824,10 +3823,29 @@ declare module "@polkadot/types/lookup" { readonly type: "Fungible" | "NonFungible"; } - /** @name CumulusPalletXcmCall (297) */ + /** @name StagingXcmExecutorAssetTransferTransferType (296) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; + } + + /** @name XcmVersionedAssetId (297) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly type: "V3" | "V4"; + } + + /** @name CumulusPalletXcmCall (298) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (298) */ + /** @name PalletMessageQueueCall (299) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3844,7 +3862,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (299) */ + /** @name PalletStorageProvidersCall (300) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -3910,7 +3928,7 @@ declare module "@polkadot/types/lookup" { | "Slash"; } - /** @name PalletFileSystemCall (300) */ + /** @name PalletFileSystemCall (301) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { @@ -4036,14 +4054,14 @@ declare module "@polkadot/types/lookup" { | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (301) */ + /** @name PalletFileSystemBucketMoveRequestResponse (302) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletProofsDealerCall (306) */ + /** @name PalletProofsDealerCall (307) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -4065,13 +4083,13 @@ declare module "@polkadot/types/lookup" { readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (307) */ + /** @name PalletRandomnessCall (308) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (308) */ + /** @name PalletPaymentStreamsCall (309) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -4125,7 +4143,7 @@ declare module "@polkadot/types/lookup" { | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (309) */ + /** @name PalletBucketNftsCall (310) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -4143,7 +4161,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (311) */ + /** @name PalletNftsCall (312) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4416,14 +4434,14 @@ declare module "@polkadot/types/lookup" { | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (312) */ + /** @name PalletNftsCollectionConfig (313) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (314) */ + /** @name PalletNftsCollectionSetting (315) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4438,7 +4456,7 @@ declare module "@polkadot/types/lookup" { | "DepositRequired"; } - /** @name PalletNftsMintSettings (315) */ + /** @name PalletNftsMintSettings (316) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4447,7 +4465,7 @@ declare module "@polkadot/types/lookup" { readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (316) */ + /** @name PalletNftsMintType (317) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4456,7 +4474,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (319) */ + /** @name PalletNftsItemSetting (320) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; @@ -4464,30 +4482,30 @@ declare module "@polkadot/types/lookup" { readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (320) */ + /** @name PalletNftsDestroyWitness (321) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (322) */ + /** @name PalletNftsMintWitness (323) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (323) */ + /** @name PalletNftsItemConfig (324) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (325) */ + /** @name PalletNftsCancelAttributesApprovalWitness (326) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (327) */ + /** @name PalletNftsItemTip (328) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; @@ -4495,7 +4513,7 @@ declare module "@polkadot/types/lookup" { readonly amount: u128; } - /** @name PalletNftsPreSignedMint (329) */ + /** @name PalletNftsPreSignedMint (330) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4506,7 +4524,7 @@ declare module "@polkadot/types/lookup" { readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (330) */ + /** @name SpRuntimeMultiSignature (331) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4517,7 +4535,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (333) */ + /** @name PalletNftsPreSignedAttributes (334) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4526,19 +4544,19 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletSudoError (334) */ + /** @name PalletSudoError (335) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (337) */ + /** @name PalletCollatorSelectionCandidateInfo (338) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (339) */ + /** @name PalletCollatorSelectionError (340) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4577,10 +4595,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (343) */ + /** @name SpCoreCryptoKeyTypeId (344) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (344) */ + /** @name PalletSessionError (345) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4595,7 +4613,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (353) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (354) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4604,21 +4622,21 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (354) */ + /** @name CumulusPalletXcmpQueueOutboundState (355) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (356) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (357) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (357) */ + /** @name CumulusPalletXcmpQueueError (358) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -4626,7 +4644,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (358) */ + /** @name PalletXcmQueryStatus (359) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4648,7 +4666,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (362) */ + /** @name XcmVersionedResponse (363) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4659,7 +4677,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (368) */ + /** @name PalletXcmVersionMigrationStage (369) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4673,15 +4691,6 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (371) */ - interface XcmVersionedAssetId extends Enum { - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetAssetId; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssetId; - readonly type: "V3" | "V4"; - } - /** @name PalletXcmRemoteLockedFungibleRecord (372) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; @@ -4712,13 +4721,10 @@ declare module "@polkadot/types/lookup" { readonly isFeesNotMet: boolean; readonly isLockNotFound: boolean; readonly isInUse: boolean; - readonly isInvalidAssetNotConcrete: boolean; readonly isInvalidAssetUnknownReserve: boolean; readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; - readonly isUnableToDecode: boolean; - readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4740,13 +4746,10 @@ declare module "@polkadot/types/lookup" { | "FeesNotMet" | "LockNotFound" | "InUse" - | "InvalidAssetNotConcrete" | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete" - | "UnableToDecode" - | "XcmTooLarge"; + | "LocalExecutionIncomplete"; } /** @name PalletMessageQueueBookState (380) */ @@ -5357,6 +5360,18 @@ declare module "@polkadot/types/lookup" { /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (462) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (463) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (463) */ + interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: FrameMetadataHashExtensionMode; + } + + /** @name FrameMetadataHashExtensionMode (464) */ + interface FrameMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: "Disabled" | "Enabled"; + } + + /** @name StorageHubRuntimeRuntime (465) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index c8c74339f..e27cc96a9 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e4107000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400090401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d04000d0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400a90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400ad0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400c90401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d10401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400dd0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000009040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c2870616c6c65745f78636d1870616c6c65741043616c6c04045400013c1073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676511040154426f783c56657273696f6e656458636d3c28293e3e00000455015741524e494e473a20444550524543415445442e206073656e64602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e20557365206073656e645f626c6f626020696e73746561642e3c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765750401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428011857656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e0049015741524e494e473a20444550524543415445442e206065786563757465602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e205573652060657865637574655f626c6f626020696e73746561642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e30657865637574655f626c6f6208013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e0001286d61785f776569676874280118576569676874000d28b04578656375746520616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004501416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220746865206d65737361676520636f756c6420626520657865637574656420636f6d706c6574656c79486f72206f6e6c79207061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e2473656e645f626c6f6208011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00013c656e636f6465645f6d657373616765a1040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e000e18a453656e6420616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e0055015468652064657374696e6174696f6e2c206064657374602c2077696c6c20726563656976652074686973206d65737361676520776974682061206044657363656e644f726967696e6020696e737472756374696f6e090174686174206d616b657320746865206f726967696e206f6620746865206d65737361676520626520746865206f726967696e206f6e20746869732073797374656d2e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001504015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000015040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400190401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000019040000021d04001d040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000021040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400250401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000250404184f7074696f6e0404540129040108104e6f6e6500000010536f6d65040029040000010000290400000408102d04002d04100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003104100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003504013857696c644d756c74694173736574000100003504100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3904013c57696c6446756e676962696c697479000100003904100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100003d040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000041040c0c78636d0876330c58636d041043616c6c00000400450401585665633c496e737472756374696f6e3c43616c6c3e3e0000450400000249040049040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004104012458636d3c43616c6c3e0015002c536574417070656e64697804004104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00004d040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040051040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000051040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540155040453000004005d0401185665633c543e000055040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d04000002550400610404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000065040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006904100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404006d04013857696c644d756c74694173736574000100006d04100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007104100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009504015076343a3a58636d3c52756e74696d6543616c6c3e0004000079040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004007d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00007d0400000281040081040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c85040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000085040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000089040c0c78636d0876330c58636d041043616c6c000004008d0401585665633c496e737472756374696f6e3c43616c6c3e3e00008d0400000291040091040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008904012458636d3c43616c6c3e0015002c536574417070656e64697804008904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000095040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400990401585665633c496e737472756374696f6e3c43616c6c3e3e000099040000029d04009d040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009504012458636d3c43616c6c3e0015002c536574417070656e64697804009504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b1040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b50401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673b904013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c50401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c10401185665633c543e0000bd040000040834350200c104000002bd0400c50404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000c9040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d5040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578d90401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed90404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000dd040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461050501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669670d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e5040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e1040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773ed040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f504015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572110501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746125050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613505016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726529050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e5040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773ed0401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e5040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401e904000400300144436f6c6c656374696f6e53657474696e670000e9040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000ed040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f10401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f50401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773f90401304974656d53657474696e67730000f1040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f50404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000f9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0400040030012c4974656d53657474696e670000fd040c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000001050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000050504184f7074696f6e0404540109050108104e6f6e6500000010536f6d6504000905000001000009050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00000d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773f90401304974656d53657474696e67730000110504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000015050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000019050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d05045300000400210501185665633c543e00001d050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000021050000021d050025050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f504013c4f7074696f6e3c42616c616e63653e00002905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904002d050148656432353531393a3a5369676e61747572650000001c5372323535313904002d050148737232353531393a3a5369676e617475726500010014456364736104003105014065636473613a3a5369676e6174757265000200002d05000003400000000800310500000341000000080035050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000039050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e3d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000041050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014505045300000400490501185665633c543e000045050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000049050000024505004d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5105000002550500550500000408000104005905000004085d0538005d050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000061050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e65050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010504045300000400690501185665633c543e000069050000020504006d05084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007105000004086d05100075050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007905012c42547265655365743c543e000079050420425472656553657404045401e9010004007d050000007d05000002e9010081050000028505008505086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465890501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600008905086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e646564000100008d0500000408e901e502009105086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000095050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f717565726965729d0501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a10501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365a905014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d626572000200009d0504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a10504184f7074696f6e04045401a5050108104e6f6e6500000010536f6d650400a5050000010000a50500000408080800a905080c78636d4456657273696f6e6564526573706f6e736500010c08563204002104013076323a3a526573706f6e736500020008563304004d04013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000ad050000040810d90100b1050000040c30281000b5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b905045300000400bd0501185665633c543e0000b90500000408d9011000bd05000002b90500c1050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c505013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c50504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000c9050000040c1000cd0500cd05080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000d1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d905045300000400dd0501185665633c543e0000d90500000408981800dd05000002d90500e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e5050000040818d90100e905000002e50500ed050c2870616c6c65745f78636d1870616c6c6574144572726f7204045400016c2c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e38556e61626c65546f4465636f646500190454436f756c64206e6f74206465636f64652058434d2e2c58636d546f6f4c61726765001a088058434d20656e636f646564206c656e67746820697320746f6f206c617267652e1d0152657475726e6564207768656e20616e2058434d20656e636f646564206c656e677468206973206c6172676572207468616e20604d617858636d456e636f64656453697a65602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef105085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f50501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f50504184f7074696f6e04045401f9050108104e6f6e6500000010536f6d650400f9050000010000f905085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000fd0500000408e50110000106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000005060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000009060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d06000004081106100011060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400150601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400190601584d61696e53746f7261676550726f76696465723c543e0001000015060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000019060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574731d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400001d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012106045300000400250601185665633c543e000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000250600000221060029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6731060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370350601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370733d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000350604184f7074696f6e0404540139060108104e6f6e6500000010536f6d650400390600000100003906000004083420003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000041060000040834340045060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015106045300000400550601185665633c543e0000510600000408003400550600000251060059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e00005d0600000241060061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e000065060000040810300069060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400006d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e71060000040810340075060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008106012c42547265655365743c543e00008106042042547265655365740404540134000400190200000085060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000089060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d060000040834100091060000040834000095060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000099060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a5060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea9060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000ad060000040c00101000b10600000408001000b50600000408100000b9060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401bd06000400080138436f6c6c656374696f6e526f6c650000bd060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c1060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c50624417070726f76616c7301c906000c01146f776e65720001244163636f756e744964000124617070726f76616c73c9060124417070726f76616c7300011c6465706f736974c506011c4465706f7369740000c5060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000c9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400cd06013842547265654d61703c4b2c20563e0000cd06042042547265654d617008044b01000456010d02000400d106000000d106000002d50600d50600000408000d0200d9060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000dd060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e1062c537472696e674c696d6974000008011c6465706f736974e106011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e50600000410100d0281027d0200e906000004087502ed0600ed060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f10600000408189c00f5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f906012c42547265655365743c543e0000f906042042547265655365740404540100000400a4000000fd060c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000001070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401050700040030013450616c6c657446656174757265000005070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000009070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e617475726501290514457874726101110700040038000000110700000424150719071d07210725072d0731073507390700150710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000190710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000250710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002907010c45726100002907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00002d0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000310710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000390708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000003d07084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a90304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f1030190000139050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301003d0504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010041050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000014d05151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010051050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405590500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016105161041757261011041757261082c417574686f726974696573010065050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f7401006d052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006505040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000710504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010075050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010081050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802058d0538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009105302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01090401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0195051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104023099050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502ad0510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502ad0530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502ad05b10504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b50504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c1050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202c905d105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e010d0401b00001ed051f2843756d756c757358636d0001a50401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f10574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505fd0501060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c5020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402000d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023419060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234290604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023415060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01ad0401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e012d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023431060400004853746f7261676552657175657374427370730001080202410645060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202410698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402104d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200610604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020241066506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020241066906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202410698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b10401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e016d06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020271069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402107d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01c904011d023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8506100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0189062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300008d060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300008d060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01cd0401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029106950604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802029106990604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f01010402349d0650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d10401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a1062c284275636b65744e6674730001d504016d020001a5062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210a906040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202ad0698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b1069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b506b906040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02c106040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210d90604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02dd0604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e506e906040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02f106040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02f50604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d02fd060400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e1040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d020d050400044c20436f6e666967206f6620616e206974656d2e01dd040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573010720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010907320d07042448436865636b4e6f6e5a65726f53656e64657215079840436865636b5370656356657273696f6e19071038436865636b547856657273696f6e1d071030436865636b47656e6573697321073438436865636b4d6f7274616c69747925073428436865636b4e6f6e63652d07982c436865636b576569676874310798604368617267655472616e73616374696f6e5061796d656e743507985053746f726167655765696768745265636c61696d3907983d07","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e4907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659502011450686173650001146576656e7454010445000118746f70696373190201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000902018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204001d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304006d02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737304010c77686f000130543a3a4163636f756e74496400060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656410010c77686f000130543a3a4163636f756e7449640001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f69640d0201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973150201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000011020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e0000190200000234001d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e735d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6625020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66732d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000025020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573290201305665633c5665633c75383e3e0000290200000238002d02042042547265654d617008044b01340456013102000400410200000031020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66350201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000035020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461390201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6625020130436f6d7061637450726f6f660000390208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e743d02015446696e6765727072696e743c485f4c454e4754483e00003d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000041020000024502004502000004083431020049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00004d020000040834510200510204184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000550208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000059020000024d02005d020000026102006102000004083455020065020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c65746d020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73790201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69640d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790200000210007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000081020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e8d0201385072696365446972656374696f6e00008d020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000091020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000950208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000099020000029d02009d0200000408101000a10208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a502016473705f72756e74696d653a3a52756e74696d65537472696e670000a5020000050200a90208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ad020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973290201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102000002b50200b50200000408383800b9020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c102000c01186e6f726d616cc10201045400012c6f7065726174696f6e616cc1020104540001246d616e6461746f7279c1020104540000c1020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c50201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc50201384f7074696f6e3c5765696768743e0001207265736572766564c50201384f7074696f6e3c5765696768743e0000c50204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000c9020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178cd0201545065724469737061746368436c6173733c7533323e0000cd020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d102082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d502082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a502013452756e74696d65537472696e67000124696d706c5f6e616d65a502013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d902011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000d902040c436f7704045401dd02000400dd02000000dd02000002e10200e1020000040829011000e5020000050400e9020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574ed02000002f10200f1020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f50201345573656442616e647769647468000138706172615f686561645f68617368090301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67f902018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000f902042042547265654d617008044b01e901045601fd020004000103000000fd020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000103000002050300050300000408e901fd0200090304184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000015030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f50201345573656442616e64776964746800013868726d705f77617465726d61726b0d0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c0d03018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000019030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f686561641d030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c75333200001d030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000210304184f7074696f6e0404540125030108104e6f6e6500000010536f6d6504002503000001000025030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000029030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465732d03014442547265655365743c5665633c75383e3e00002d03042042547265655365740404540138000400290200000031030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793503018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73390301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c753332000039030000023d03003d0300000408e90141030041030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164090301304f7074696f6e3c486173683e000045030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73490301484173796e634261636b696e67506172616d7300004903104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200004d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005103042042547265654d617008044b01e9010456014d0300040055030000005503000002590300590300000408e9014d03005d0300000261030061030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000065030c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174616d03015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d03089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611903015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652903015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737103016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573790301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000710300000275030075030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007903042042547265654d617008044b01e9010456017d0300040085030000007d0300000281030081030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e00008503000002890300890300000408e9017d03008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d03045300000400a50301185665633c543e00009d030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a103011c526561736f6e730000a1030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5030000029d0300a9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad03045300000400b10301185665633c543e0000ad030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b103000002ad0300b5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b903045300000400c90301185665633c543e0000b9030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401bd031c42616c616e63650118000801086964bd0301084964000118616d6f756e7418011c42616c616e63650000bd03084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c103019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c503018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c1030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c5030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000c903000002b90300cd030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d103045300000400d50301185665633c543e0000d1030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d503000002d10300d9030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365dd0301504163636f756e7449644c6f6f6b75704f663c543e00011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee503014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e10301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e1030000069800e5030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e9030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed03086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f1030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577dd0301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fdd0301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400ad0201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400910301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400950301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400d90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f10301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400f90301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400090401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d04000d0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400ad0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b10401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400cd0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d50401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e10401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000f9030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730104011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261050401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000504104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000009040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676511040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765750401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e0d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065a1040144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964a5040154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065a1040144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737411040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001504015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000015040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400190401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000019040000021d04001d040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000021040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400250401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000250404184f7074696f6e0404540129040108104e6f6e6500000010536f6d65040029040000010000290400000408102d04002d04100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003104100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003504013857696c644d756c74694173736574000100003504100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3904013c57696c6446756e676962696c697479000100003904100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100003d040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000041040c0c78636d0876330c58636d041043616c6c00000400450401585665633c496e737472756374696f6e3c43616c6c3e3e0000450400000249040049040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004104012458636d3c43616c6c3e0015002c536574417070656e64697804004104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00004d040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040051040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000051040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540155040453000004005d0401185665633c543e000055040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6559040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d04000002550400610404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000065040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006904100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404006d04013857696c644d756c74694173736574000100006d04100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7104013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007104100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009504015076343a3a58636d3c52756e74696d6543616c6c3e0004000079040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004007d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00007d0400000281040081040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736521040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c85040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473310401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e000e003445786368616e6765417373657408011067697665310401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473310401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473310401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1504011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473310401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69743d04012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000085040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000089040c0c78636d0876330c58636d041043616c6c000004008d0401585665633c496e737472756374696f6e3c43616c6c3e3e00008d0400000291040091040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572610401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400650401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473690401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e000e003445786368616e676541737365740c011067697665690401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473690401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473690401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f000118617373657473690401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008904012458636d3c43616c6c3e0015002c536574417070656e64697804008904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400610401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f650401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400650401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4104011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e610401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000095040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400990401585665633c496e737472756374696f6e3c43616c6c3e3e000099040000029d04009d040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8504014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009504012458636d3c43616c6c3e0015002c536574417070656e64697804009504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a104105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e00030000a504080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000a9040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768740d02017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b5040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b90401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663502012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673bd04013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c90401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6625020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f7461726765740d0201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c640d0201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000bd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c104045300000400c50401185665633c543e0000c1040000040834350200c504000002c10400c90404184f7074696f6e0404540125020108104e6f6e6500000010536f6d65040025020000010000cd040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662102012050726f6f663c543e00012070726f7669646572090301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d9040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74dd0301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd0404184f7074696f6e0404540175020108104e6f6e6500000010536f6d65040075020000010000e1040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696edd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730505013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461090501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fdd0301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967110501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374dd0301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73790201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e9040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572dd0301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e650d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756575020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365810201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65797d02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465dd0301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731905017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746175020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e0d02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f1040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f904015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731d05019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d0d0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365850201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746129050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613905016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e9040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c790d02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f10401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401ed04000400300144436f6c6c656374696f6e53657474696e670000ed040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f1040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f50401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f90401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b0d02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773fd0401304974656d53657474696e67730000f5040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f90404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000fd040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401010500040030012c4974656d53657474696e67000001050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000005050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000090504184f7074696f6e040454010d050108104e6f6e6500000010536f6d6504000d0500000100000d050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d0d0201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e000011050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773fd0401304974656d53657474696e67730000150504184f7074696f6e04045401dd030108104e6f6e6500000010536f6d650400dd03000001000019050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c75333200001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012105045300000400250501185665633c543e000021050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000250500000221050029050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e00002d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040031050148656432353531393a3a5369676e61747572650000001c53723235353139040031050148737232353531393a3a5369676e617475726500010014456364736104003505014065636473613a3a5369676e6174757265000200003105000003400000000800350500000341000000080039050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b102015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365810201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e6500003d050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e41050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000045050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540149050453000004004d0501185665633c543e000049050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e636500004d0500000249050051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5505000002590500590500000408000104005d05000004086105380061050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000065050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e69050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540105040453000004006d0501185665633c543e00006d050000020504007105084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007505000004087105100079050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007d05012c42547265655365743c543e00007d050420425472656553657404045401e90100040081050000008105000002e9010085050000028905008905086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e901011850617261496400011473746174658d0501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e502010c7531360001286c6173745f696e646578e502010c75313600008d05086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000910500000408e901e502009505086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000099050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a10501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a50501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365ad05014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a10504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a50504184f7074696f6e04045401a9050108104e6f6e6500000010536f6d650400a9050000010000a90500000408080800ad05080c78636d4456657273696f6e6564526573706f6e736500010c08563204002104013076323a3a526573706f6e736500020008563304004d04013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b1050000040810d90100b5050000040c30281000b9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd05045300000400c10501185665633c543e0000bd0500000408d9011000c105000002bd0500c5050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c905013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c90504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000cd050000040c1000a50400d1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d905045300000400dd0501185665633c543e0000d90500000408981800dd05000002d90500e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e505045300000400e90501185665633c543e0000e5050000040818d90100e905000002e50500ed050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef105085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f50501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f50504184f7074696f6e04045401f9050108104e6f6e6500000010536f6d650400f9050000010000f905085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000fd0500000408e50110000106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000005060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000009060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d06000004081106100011060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400150601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400190601584d61696e53746f7261676550726f76696465723c543e0001000015060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000019060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574731d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400001d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012106045300000400250601185665633c543e000021060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f69640d0201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000250600000221060029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00002d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6731060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1102013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370350601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370733d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000350604184f7074696f6e0404540139060108104e6f6e6500000010536f6d650400390600000100003906000004083420003d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000041060000040834340045060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015106045300000400550601185665633c543e0000510600000408003400550600000251060059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e00005d0600000241060061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540141060453000004005d0601185665633c543e000065060000040810300069060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400006d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e71060000040810340075060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400190201185665633c543e000079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400590201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008106012c42547265655365743c543e00008106042042547265655365740404540134000400190200000085060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000089060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d060000040834100091060000040834000095060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000099060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b0d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a5060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea9060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000ad060000040c00101000b10600000408001000b50600000408100000b9060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401bd06000400080138436f6c6c656374696f6e526f6c650000bd060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c1060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c50624417070726f76616c7301c906000c01146f776e65720001244163636f756e744964000124617070726f76616c73c9060124417070726f76616c7300011c6465706f736974c506011c4465706f7369740000c5060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000c9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456010d02045300000400cd06013842547265654d61703c4b2c20563e0000cd06042042547265654d617008044b01000456010d02000400d106000000d106000002d50600d50600000408000d0200d9060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000dd060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e1062c537472696e674c696d6974000008011c6465706f736974e106011c4465706f736974000110646174617502016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e50600000410100d0281027d0200e906000004087502ed0600ed060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f10600000408189c00f5060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f906012c42547265655365743c543e0000f906042042547265655365740404540100000400a4000000fd060c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01890220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d0d0201384f7074696f6e3c4974656d49643e0001147072696365850201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000001070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401050700040030013450616c6c657446656174757265000005070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000009070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301dd031043616c6c01f503245369676e6174757265012d0514457874726101110700040038000000110700000428150719071d07210725072d073107350739073d0700150710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000190710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000250710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002907010c45726100002907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00002d0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000310710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000390708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000003d0708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465410701104d6f64650000410708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c6564000100004507084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023499020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009502040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000a902040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01ad0201581830426c6f636b57656967687473b90289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468c9023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d1024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed50219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e502082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01e902003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100ed020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000150304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000190304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100210304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401000d03040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000310304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000045030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d71634865616401004d0380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005103040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d6573736167657301005d0304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100290204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100650340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016903017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e018d03012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019503000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009903040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a90304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b5030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200cd030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01d903018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01e9030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100650340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100ed0304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f103019000013d050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100410504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010045050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01f90301a000015105151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010055050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010079020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050001040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e6572000104055d0500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01fd0301a800016505161041757261011041757261082c417574686f726974696573010069050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010071052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006905040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000750504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010079050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010085050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205910538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009505302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901650340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01090401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0199051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c5175657269657300010402309d050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b10510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b10530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b105b50504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b90504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c5050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202cd05d105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e010d0401b00001ed051f2843756d756c757358636d0001a90401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f10574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505fd0501060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01ad0401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c5022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c5020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402000d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023419060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234290604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023415060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b10401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e012d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023431060400004853746f7261676552657175657374427370730001080202410645060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202410698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402104d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200610604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020241066506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020241066906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202410698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b50401090234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e016d06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210490204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020271069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402107d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01cd04011d023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8506100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0189062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300008d060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300008d060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d10401650200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029106950604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802029106990604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f01010402349d0650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d50401690208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a1062c284275636b65744e6674730001d904016d020001a5062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210a906040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202ad0698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b1069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b506b906040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029d02c106040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210d90604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029d02dd0604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e506e906040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029d02f106040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029d02f50604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029d02fd060400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e5040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029d0211050400044c20436f6e666967206f6620616e206974656d2e01e1040171023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573010720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010907320d07042848436865636b4e6f6e5a65726f53656e64657215079840436865636b5370656356657273696f6e19071038436865636b547856657273696f6e1d071030436865636b47656e6573697321073438436865636b4d6f7274616c69747925073428436865636b4e6f6e63652d07982c436865636b576569676874310798604368617267655472616e73616374696f6e5061796d656e743507985053746f726167655765696768745265636c61696d39079844436865636b4d65746164617461486173683d07804507","id":"1"} \ No newline at end of file diff --git a/client/blockchain-service/Cargo.toml b/client/blockchain-service/Cargo.toml index aa8818fb5..bde990db3 100644 --- a/client/blockchain-service/Cargo.toml +++ b/client/blockchain-service/Cargo.toml @@ -30,6 +30,7 @@ rocksdb = { workspace = true } # Substrate frame-support = { workspace = true } frame-system = { workspace = true } +frame-metadata-hash-extension = { workspace = true } pallet-transaction-payment = { workspace = true } sc-client-api = { workspace = true } sc-service = { workspace = true } diff --git a/client/blockchain-service/src/utils.rs b/client/blockchain-service/src/utils.rs index 041ce64f2..cf7ea27c9 100644 --- a/client/blockchain-service/src/utils.rs +++ b/client/blockchain-service/src/utils.rs @@ -250,6 +250,7 @@ impl BlockchainService { cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::< storage_hub_runtime::Runtime, >::new(), + frame_metadata_hash_extension::CheckMetadataHash::new(false), ); let raw_payload = SignedPayload::from_raw( @@ -265,6 +266,7 @@ impl BlockchainService { (), (), (), + None, ), ); diff --git a/client/common/src/types.rs b/client/common/src/types.rs index 14735e917..0143c36cd 100644 --- a/client/common/src/types.rs +++ b/client/common/src/types.rs @@ -2,7 +2,6 @@ use std::fmt::Debug; use codec::{Decode, Encode}; use sc_executor::WasmExecutor; -use sc_network::NetworkService; use sc_service::TFullClient; pub use shp_constants::{FILE_CHUNK_SIZE, FILE_SIZE_TO_CHALLENGES, H_LENGTH}; pub use shp_file_metadata::{Chunk, ChunkId, ChunkWithId, Leaf}; @@ -47,6 +46,8 @@ pub type ForestVerifierProof = pallet_proofs_dealer::types::ForestVerifierProofF pub type KeyProof = pallet_proofs_dealer::types::KeyProof; pub type KeyProofs = BTreeMap; pub type Balance = pallet_storage_providers::types::BalanceOf; +pub type OpaqueBlock = storage_hub_runtime::opaque::Block; +pub type BlockHash = ::Hash; #[cfg(not(feature = "runtime-benchmarks"))] type HostFunctions = cumulus_client_service::ParachainHostFunctions; @@ -59,7 +60,6 @@ type HostFunctions = ( pub type ParachainExecutor = WasmExecutor; pub type ParachainClient = TFullClient; -pub type ParachainNetworkService = NetworkService::Hash>; /// The type of key used for [`BlockchainService`]` operations. pub const BCSV_KEY_TYPE: KeyTypeId = KeyTypeId(*b"bcsv"); diff --git a/client/file-transfer-service/src/handler.rs b/client/file-transfer-service/src/handler.rs index d002d9331..abb2913ca 100644 --- a/client/file-transfer-service/src/handler.rs +++ b/client/file-transfer-service/src/handler.rs @@ -34,11 +34,12 @@ use libp2p_identity::PeerId; use prost::Message; use sc_network::{ request_responses::{IncomingRequest, OutgoingResponse}, + service::traits::NetworkService, IfDisconnected, NetworkPeers, NetworkRequest, ProtocolName, ReputationChange, }; use sc_tracing::tracing::{debug, error, info, warn}; use shc_actors_framework::actor::{Actor, ActorEventLoop}; -use shc_common::types::{DownloadRequestId, FileKey, FileKeyProof, ParachainNetworkService}; +use shc_common::types::{DownloadRequestId, FileKey, FileKeyProof}; use shp_file_metadata::ChunkId; use crate::events::RemoteUploadRequest; @@ -57,7 +58,7 @@ pub struct FileTransferService { /// Receiver for incoming requests. request_receiver: async_channel::Receiver, /// Substrate network service that gives access to p2p operations. - network: Arc, + network: Arc, /// Registry of (peer, file key) pairs for which we accept requests. peer_file_allow_list: HashSet<(PeerId, FileKey)>, /// Registry of peers by file key, used for cleanup. @@ -101,7 +102,7 @@ impl Actor for FileTransferService { let (tx, rx) = futures::channel::oneshot::channel(); self.network.start_request( - peer_id, + peer_id.into(), self.protocol_name.clone(), request_data, None, @@ -136,7 +137,7 @@ impl Actor for FileTransferService { let (tx, rx) = futures::channel::oneshot::channel(); self.network.start_request( - peer_id, + peer_id.into(), self.protocol_name.clone(), request_data, None, @@ -218,7 +219,7 @@ impl Actor for FileTransferService { multiaddress, callback, } => { - self.network.add_known_address(peer_id, multiaddress); + self.network.add_known_address(peer_id.into(), multiaddress); // `add_known_address()` method doesn't return anything. match callback.send(Ok(())) { Ok(()) => {} @@ -323,7 +324,8 @@ impl ActorEventLoop for FileTransferServiceEventLoop { pending_response, } = request; - self.actor.handle_request(peer, payload, pending_response); + self.actor + .handle_request(peer.into(), payload, pending_response); } None => { warn!(target: LOG_TARGET, "FileTransferService event loop terminated."); @@ -339,7 +341,7 @@ impl FileTransferService { pub fn new( protocol_name: ProtocolName, request_receiver: async_channel::Receiver, - network: Arc, + network: Arc, ) -> Self { Self { protocol_name, diff --git a/client/file-transfer-service/src/lib.rs b/client/file-transfer-service/src/lib.rs index dc980bce9..56939037b 100644 --- a/client/file-transfer-service/src/lib.rs +++ b/client/file-transfer-service/src/lib.rs @@ -1,4 +1,5 @@ use sc_client_api::BlockBackend; +use sc_network::service::traits::NetworkService; use sc_network::ProtocolName; use std::sync::Arc; use std::time::Duration; @@ -7,7 +8,7 @@ use sc_network::request_responses::IncomingRequest; use sc_network::{config::FullNetworkConfiguration, request_responses::ProtocolConfig}; use sc_service::Configuration; use shc_actors_framework::actor::{ActorHandle, ActorSpawner, TaskSpawner}; -use shc_common::types::{ParachainClient, ParachainNetworkService}; +use shc_common::types::{BlockHash, OpaqueBlock, ParachainClient}; pub use self::handler::FileTransferService; @@ -33,10 +34,12 @@ const MAX_FILE_TRANSFER_REQUESTS_QUEUE: usize = 500; /// Updates the network configuration with the file transfer request response protocol. /// Returns the protocol name and the channel receiver to be used for reading requests. -pub fn configure_file_transfer_network( +pub fn configure_file_transfer_network< + Network: sc_network::NetworkBackend, +>( client: Arc, parachain_config: &Configuration, - net_config: &mut FullNetworkConfiguration, + net_config: &mut FullNetworkConfiguration, ) -> (ProtocolName, async_channel::Receiver) { let genesis_hash = client .block_hash(0u32.into()) @@ -50,18 +53,25 @@ pub fn configure_file_transfer_network( generate_protocol_config(genesis_hash, parachain_config.chain_spec.fork_id()); protocol_config.inbound_queue = Some(tx); - let protocol_name = protocol_config.name.clone(); + let request_response_config = Network::request_response_config( + protocol_config.name.clone(), + protocol_config.fallback_names.clone(), + protocol_config.max_request_size, + protocol_config.max_response_size, + protocol_config.request_timeout, + protocol_config.inbound_queue, + ); - net_config.add_request_response_protocol(protocol_config); + net_config.add_request_response_protocol(request_response_config); - (protocol_name, request_receiver) + (protocol_config.name, request_receiver) } pub async fn spawn_file_transfer_service( task_spawner: &TaskSpawner, request_receiver: async_channel::Receiver, protocol_name: ProtocolName, - network: Arc, + network: Arc, ) -> ActorHandle { let task_spawner = task_spawner .with_name("file-transfer-service") diff --git a/node/src/command.rs b/node/src/command.rs index ca48be5c7..4cb9d9f90 100644 --- a/node/src/command.rs +++ b/node/src/command.rs @@ -142,110 +142,115 @@ pub fn run() -> Result<()> { let dev_service = cli.run.base.base.shared_params.is_dev(); match &cli.subcommand { - Some(Subcommand::BuildSpec(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) - }, - Some(Subcommand::CheckBlock(cmd)) => { - construct_async_run!(|components, cli, cmd, config, dev_service| { - Ok(cmd.run(components.client, components.import_queue)) - }) - }, - Some(Subcommand::ExportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config, dev_service| { - Ok(cmd.run(components.client, config.database)) - }) - }, - Some(Subcommand::ExportState(cmd)) => { - construct_async_run!(|components, cli, cmd, config, dev_service| { - Ok(cmd.run(components.client, config.chain_spec)) - }) - }, - Some(Subcommand::ImportBlocks(cmd)) => { - construct_async_run!(|components, cli, cmd, config, dev_service| { - Ok(cmd.run(components.client, components.import_queue)) - }) - }, - Some(Subcommand::Revert(cmd)) => { - construct_async_run!(|components, cli, cmd, config, dev_service| { - Ok(cmd.run(components.client, components.backend, None)) - }) - }, - Some(Subcommand::PurgeChain(cmd)) => { - let runner = cli.create_runner(cmd)?; - - runner.sync_run(|config| { - let polkadot_cli = RelayChainCli::new( - &config, - [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), - ); - - let polkadot_config = SubstrateCli::create_configuration( - &polkadot_cli, - &polkadot_cli, - config.tokio_handle.clone(), - ) - .map_err(|err| format!("Relay chain argument error: {}", err))?; - - cmd.run(config, polkadot_config) - }) - }, - Some(Subcommand::ExportGenesisHead(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.sync_run(|config| { - let partials = new_partial(&config, dev_service)?; - - cmd.run(partials.client) - }) - }, - Some(Subcommand::ExportGenesisWasm(cmd)) => { - let runner = cli.create_runner(cmd)?; - runner.sync_run(|_config| { - let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; - cmd.run(&*spec) - }) - }, - Some(Subcommand::Benchmark(cmd)) => { - let runner = cli.create_runner(cmd)?; - // Switch on the concrete benchmark sub-command- - match cmd { - BenchmarkCmd::Pallet(cmd) => - if cfg!(feature = "runtime-benchmarks") { - runner.sync_run(|config| cmd.run_with_spec::, ReclaimHostFunctions>(Some(config.chain_spec))) - } else { - Err("Benchmarking wasn't enabled when building the node. \ + Some(Subcommand::BuildSpec(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| cmd.run(config.chain_spec, config.network)) + } + Some(Subcommand::CheckBlock(cmd)) => { + construct_async_run!(|components, cli, cmd, config, dev_service| { + Ok(cmd.run(components.client, components.import_queue)) + }) + } + Some(Subcommand::ExportBlocks(cmd)) => { + construct_async_run!(|components, cli, cmd, config, dev_service| { + Ok(cmd.run(components.client, config.database)) + }) + } + Some(Subcommand::ExportState(cmd)) => { + construct_async_run!(|components, cli, cmd, config, dev_service| { + Ok(cmd.run(components.client, config.chain_spec)) + }) + } + Some(Subcommand::ImportBlocks(cmd)) => { + construct_async_run!(|components, cli, cmd, config, dev_service| { + Ok(cmd.run(components.client, components.import_queue)) + }) + } + Some(Subcommand::Revert(cmd)) => { + construct_async_run!(|components, cli, cmd, config, dev_service| { + Ok(cmd.run(components.client, components.backend, None)) + }) + } + Some(Subcommand::PurgeChain(cmd)) => { + let runner = cli.create_runner(cmd)?; + + runner.sync_run(|config| { + let polkadot_cli = RelayChainCli::new( + &config, + [RelayChainCli::executable_name()] + .iter() + .chain(cli.relay_chain_args.iter()), + ); + + let polkadot_config = SubstrateCli::create_configuration( + &polkadot_cli, + &polkadot_cli, + config.tokio_handle.clone(), + ) + .map_err(|err| format!("Relay chain argument error: {}", err))?; + + cmd.run(config, polkadot_config) + }) + } + Some(Subcommand::ExportGenesisHead(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|config| { + let partials = new_partial(&config, dev_service)?; + + cmd.run(partials.client) + }) + } + Some(Subcommand::ExportGenesisWasm(cmd)) => { + let runner = cli.create_runner(cmd)?; + runner.sync_run(|_config| { + let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; + cmd.run(&*spec) + }) + } + Some(Subcommand::Benchmark(cmd)) => { + let runner = cli.create_runner(cmd)?; + // Switch on the concrete benchmark sub-command- + match cmd { + BenchmarkCmd::Pallet(cmd) => { + if cfg!(feature = "runtime-benchmarks") { + runner.sync_run(|config| cmd.run_with_spec::, ReclaimHostFunctions>(Some(config.chain_spec))) + } else { + Err("Benchmarking wasn't enabled when building the node. \ You can enable it with `--features runtime-benchmarks`." - .into()) - }, - BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { - let partials = new_partial(&config, dev_service)?; - cmd.run(partials.client) - }), - #[cfg(not(feature = "runtime-benchmarks"))] - BenchmarkCmd::Storage(_) => - return Err(sc_cli::Error::Input( - "Compile with --features=runtime-benchmarks \ + .into()) + } + } + BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { + let partials = new_partial(&config, dev_service)?; + cmd.run(partials.client) + }), + #[cfg(not(feature = "runtime-benchmarks"))] + BenchmarkCmd::Storage(_) => { + return Err(sc_cli::Error::Input( + "Compile with --features=runtime-benchmarks \ to enable storage benchmarks." - .into(), - ) - .into()), - #[cfg(feature = "runtime-benchmarks")] - BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { - let partials = new_partial(&config, dev_service)?; - let db = partials.backend.expose_db(); - let storage = partials.backend.expose_storage(); - cmd.run(config, partials.client.clone(), db, storage) - }), - BenchmarkCmd::Machine(cmd) => - runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())), - // NOTE: this allows the Client to leniently implement - // new benchmark commands without requiring a companion MR. - #[allow(unreachable_patterns)] - _ => Err("Benchmarking sub-command unsupported".into()), - } - }, - None => { - let runner = cli.create_runner(&cli.run.normalize())?; + .into(), + ) + .into()) + } + #[cfg(feature = "runtime-benchmarks")] + BenchmarkCmd::Storage(cmd) => runner.sync_run(|config| { + let partials = new_partial(&config, dev_service)?; + let db = partials.backend.expose_db(); + let storage = partials.backend.expose_storage(); + cmd.run(config, partials.client.clone(), db, storage) + }), + BenchmarkCmd::Machine(cmd) => { + runner.sync_run(|config| cmd.run(&config, SUBSTRATE_REFERENCE_HARDWARE.clone())) + } + // NOTE: this allows the Client to leniently implement + // new benchmark commands without requiring a companion MR. + #[allow(unreachable_patterns)] + _ => Err("Benchmarking sub-command unsupported".into()), + } + } + None => { + let runner = cli.create_runner(&cli.run.normalize())?; let provider_options = if cli.provider_config.provider { Some(cli.provider_config.provider_options()) } else { @@ -254,7 +259,7 @@ pub fn run() -> Result<()> { let indexer_options = cli.indexer_config.indexer_options(); - runner.run_node_until_exit(|config| async move { + runner.run_node_until_exit(|config| async move { let hwbench = (!cli.no_hardware_benchmarks) .then_some(config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(database_path); @@ -271,46 +276,83 @@ pub fn run() -> Result<()> { info!("Is collating: {}", if config.role.is_authority() { "yes" } else { "no" }); - if dev_service { - crate::service::start_dev_node( - config, - provider_options, - indexer_options, - hwbench, - id, - cli.run.sealing, - ) - .await - .map_err(Into::into) - } else { - let collator_options = cli.run.collator_options(); - let polkadot_cli = RelayChainCli::new( - &config, - [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), - ); - - let tokio_handle = config.tokio_handle.clone(); - - let polkadot_config = - SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) - .map_err(|err| format!("Relay chain argument error: {}", err))?; - - crate::service::start_parachain_node( - config, - polkadot_config, - collator_options, - provider_options, - indexer_options, - id, - hwbench, - ) - .await - .map(|r| r.0) - .map_err(Into::into) - } + match config.network.network_backend { + sc_network::config::NetworkBackendType::Libp2p => { + if dev_service { + crate::service::start_dev_node::>( + config, + provider_options, + indexer_options, + hwbench, + id, + cli.run.sealing, + ) + .await + .map_err(Into::into) + } else { + let collator_options = cli.run.collator_options(); + let polkadot_cli = RelayChainCli::new( + &config, + [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), + ); + let tokio_handle = config.tokio_handle.clone(); + let polkadot_config = + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) + .map_err(|err| format!("Relay chain argument error: {}", err))?; + crate::service::start_parachain_node::>( + config, + polkadot_config, + collator_options, + provider_options, + indexer_options, + id, + hwbench, + ) + .await + .map(|r| r.0) + .map_err(Into::into) + } + }, + sc_network::config::NetworkBackendType::Litep2p => { + if dev_service { + crate::service::start_dev_node::( + config, + provider_options, + indexer_options, + hwbench, + id, + cli.run.sealing, + ) + .await + .map_err(Into::into) + } else { + let collator_options = cli.run.collator_options(); + let polkadot_cli = RelayChainCli::new( + &config, + [RelayChainCli::executable_name()].iter().chain(cli.relay_chain_args.iter()), + ); + let tokio_handle = config.tokio_handle.clone(); + let polkadot_config = + SubstrateCli::create_configuration(&polkadot_cli, &polkadot_cli, tokio_handle) + .map_err(|err| format!("Relay chain argument error: {}", err))?; + crate::service::start_parachain_node::( + config, + polkadot_config, + collator_options, + provider_options, + indexer_options, + id, + hwbench, + ) + .await + .map(|r| r.0) + .map_err(Into::into) + } + }, + } }) - }, - } + } + } } impl DefaultConfigurationValues for RelayChainCli { diff --git a/node/src/service.rs b/node/src/service.rs index 41419a16e..b4b87b94b 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -15,7 +15,7 @@ use cumulus_client_parachain_inherent::{MockValidationDataInherentDataProvider, use polkadot_primitives::{BlakeTwo256, HashT, HeadData, ValidationCode}; use sc_consensus_manual_seal::consensus::aura::AuraConsensusDataProvider; use shc_actors_framework::actor::TaskSpawner; -use shc_common::types::BCSV_KEY_TYPE; +use shc_common::types::{BlockHash, OpaqueBlock, BCSV_KEY_TYPE}; use shc_rpc::StorageHubClientRpcConfig; use sp_consensus_aura::Slot; use sp_core::H256; @@ -44,7 +44,10 @@ use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use sc_client_api::{Backend, HeaderBackend}; use sc_consensus::{ImportQueue, LongestChain}; use sc_executor::{HeapAllocStrategy, DEFAULT_HEAP_ALLOC_STRATEGY}; -use sc_network::{config::IncomingRequest, NetworkBlock, ProtocolName}; +use sc_network::{ + config::IncomingRequest, service::traits::NetworkService, NetworkBackend, NetworkBlock, + ProtocolName, +}; use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, RpcHandlers, TFullBackend, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; @@ -71,7 +74,6 @@ use crate::{ //* the StorageHub services crates type ParachainExecutor = shc_common::types::ParachainExecutor; type ParachainClient = shc_common::types::ParachainClient; -type ParachainNetworkService = shc_common::types::ParachainNetworkService; pub(crate) type ParachainBackend = TFullBackend; @@ -168,7 +170,7 @@ pub fn new_partial( config, telemetry.as_ref().map(|telemetry| telemetry.handle()), &task_manager, - )? + ) }; let select_chain = if dev_service { @@ -193,7 +195,7 @@ async fn init_sh_builder( provider_options: &Option, task_manager: &TaskManager, file_transfer_request_protocol: Option<(ProtocolName, Receiver)>, - network: Arc, + network: Arc, keystore: KeystorePtr, ) -> Option<( StorageHubBuilder, @@ -285,7 +287,7 @@ where } /// Start a development node with the given solo chain `Configuration`. -async fn start_dev_impl( +async fn start_dev_impl( config: Configuration, provider_options: Option, indexer_options: Option, @@ -301,6 +303,7 @@ where + StorageLayerBuilder + RpcConfigBuilder<<(R, S) as StorageTypes>::FL, <(R, S) as StorageTypes>::FSH> + Runnable, + Network: sc_network::NetworkBackend, { use async_io::Timer; use sc_consensus_manual_seal::{run_manual_seal, EngineCommand, ManualSealParams}; @@ -348,7 +351,8 @@ where .sr25519_generate_new(BCSV_KEY_TYPE, Some(signing_dev_key.as_ref())) .expect("Invalid dev signing key provided."); - let mut net_config = sc_network::config::FullNetworkConfiguration::new(&config.network); + let mut net_config = + sc_network::config::FullNetworkConfiguration::<_, _, Network>::new(&config.network); let collator = config.role.is_authority(); let prometheus_registry = config.prometheus_registry().cloned(); let select_chain = maybe_select_chain @@ -395,7 +399,7 @@ where transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), is_validator: config.role.is_authority(), enable_http_requests: false, custom_extensions: move |_| vec![], @@ -670,7 +674,7 @@ where /// Start a node with the given parachain `Configuration` and relay chain `Configuration`. /// /// This is the actual implementation that is abstract over the executor and the runtime api. -async fn start_node_impl( +async fn start_node_impl( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, @@ -687,13 +691,15 @@ where + StorageLayerBuilder + RpcConfigBuilder<<(R, S) as StorageTypes>::FL, <(R, S) as StorageTypes>::FSH> + Runnable, + Network: NetworkBackend, { let parachain_config = prepare_node_config(parachain_config); let params = new_partial(¶chain_config, false)?; let (block_import, mut telemetry, telemetry_worker_handle) = params.other; - let mut net_config = - sc_network::config::FullNetworkConfiguration::new(¶chain_config.network); + let mut net_config = sc_network::config::FullNetworkConfiguration::<_, _, Network>::new( + ¶chain_config.network, + ); let client = params.client.clone(); let backend = params.backend.clone(); @@ -773,7 +779,7 @@ where transaction_pool: Some(OffchainTransactionPoolFactory::new( transaction_pool.clone(), )), - network_provider: network.clone(), + network_provider: Arc::new(network.clone()), is_validator: parachain_config.role.is_authority(), enable_http_requests: false, custom_extensions: move |_| vec![], @@ -943,7 +949,6 @@ fn build_import_queue( Ok(timestamp) }, - slot_duration, &task_manager.spawn_essential_handle(), config.prometheus_registry(), telemetry, @@ -1024,7 +1029,7 @@ fn start_consensus( Ok(()) } -pub async fn start_dev_node( +pub async fn start_dev_node>( config: Configuration, provider_options: Option, indexer_options: Option, @@ -1038,7 +1043,7 @@ pub async fn start_dev_node( &provider_options.storage_layer, ) { (&ProviderType::Bsp, &StorageLayer::Memory) => { - start_dev_impl::( + start_dev_impl::( config, Some(provider_options), indexer_options, @@ -1049,7 +1054,7 @@ pub async fn start_dev_node( .await } (&ProviderType::Bsp, &StorageLayer::RocksDB) => { - start_dev_impl::( + start_dev_impl::( config, Some(provider_options), indexer_options, @@ -1060,7 +1065,7 @@ pub async fn start_dev_node( .await } (&ProviderType::Msp, &StorageLayer::Memory) => { - start_dev_impl::( + start_dev_impl::( config, Some(provider_options), indexer_options, @@ -1071,7 +1076,7 @@ pub async fn start_dev_node( .await } (&ProviderType::Msp, &StorageLayer::RocksDB) => { - start_dev_impl::( + start_dev_impl::( config, Some(provider_options), indexer_options, @@ -1082,7 +1087,7 @@ pub async fn start_dev_node( .await } (&ProviderType::User, _) => { - start_dev_impl::( + start_dev_impl::( config, Some(provider_options), indexer_options, @@ -1095,7 +1100,7 @@ pub async fn start_dev_node( } } else { // Start node without provider options which in turn will not start any storage hub related role services (e.g. Storage Provider, User) - start_dev_impl::( + start_dev_impl::( config, None, indexer_options, @@ -1107,7 +1112,7 @@ pub async fn start_dev_node( } } -pub async fn start_parachain_node( +pub async fn start_parachain_node>( parachain_config: Configuration, polkadot_config: Configuration, collator_options: CollatorOptions, @@ -1122,7 +1127,7 @@ pub async fn start_parachain_node( &provider_options.storage_layer, ) { (&ProviderType::Bsp, &StorageLayer::Memory) => { - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, collator_options, @@ -1134,7 +1139,7 @@ pub async fn start_parachain_node( .await } (&ProviderType::Bsp, &StorageLayer::RocksDB) => { - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, collator_options, @@ -1146,7 +1151,7 @@ pub async fn start_parachain_node( .await } (&ProviderType::Msp, &StorageLayer::Memory) => { - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, collator_options, @@ -1158,7 +1163,7 @@ pub async fn start_parachain_node( .await } (&ProviderType::Msp, &StorageLayer::RocksDB) => { - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, collator_options, @@ -1170,7 +1175,7 @@ pub async fn start_parachain_node( .await } (&ProviderType::User, _) => { - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, collator_options, @@ -1184,7 +1189,7 @@ pub async fn start_parachain_node( } } else { // Start node without provider options which in turn will not start any storage hub related role services (e.g. Storage Provider, User) - start_node_impl::( + start_node_impl::( parachain_config, polkadot_config, collator_options, diff --git a/node/src/services/builder.rs b/node/src/services/builder.rs index 4b9b8286e..143339f2d 100644 --- a/node/src/services/builder.rs +++ b/node/src/services/builder.rs @@ -1,5 +1,5 @@ use async_channel::Receiver; -use sc_network::{config::IncomingRequest, ProtocolName}; +use sc_network::{config::IncomingRequest, service::traits::NetworkService, ProtocolName}; use sc_service::RpcHandlers; use shc_common::types::StorageProofsMerkleTrieLayout; use sp_keystore::KeystorePtr; @@ -9,7 +9,7 @@ use tokio::sync::RwLock; use shc_actors_framework::actor::{ActorHandle, TaskSpawner}; use shc_blockchain_service::{spawn_blockchain_service, BlockchainService}; -use shc_common::types::{ParachainClient, ParachainNetworkService}; +use shc_common::types::ParachainClient; use shc_file_manager::{in_memory::InMemoryFileStorage, rocksdb::RocksDbFileStorage}; use shc_file_transfer_service::{spawn_file_transfer_service, FileTransferService}; use shc_forest_manager::{ @@ -132,7 +132,7 @@ where &mut self, file_transfer_request_receiver: Receiver, file_transfer_request_protocol_name: ProtocolName, - network: Arc, + network: Arc, ) -> &mut Self { let file_transfer_service_handle = spawn_file_transfer_service( self.task_spawner diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index bf7c1f42f..b521b027a 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -16,6 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] substrate-wasm-builder = { workspace = true, optional = true } +docify = "0.2.8" [dependencies] codec = { workspace = true } @@ -47,6 +48,7 @@ shp-traits = { workspace = true } frame-support = { workspace = true } frame-benchmarking = { workspace = true, optional = true } frame-executive = { workspace = true } +frame-metadata-hash-extension = { workspace = true } frame-system = { workspace = true } frame-system-benchmarking = { workspace = true, optional = true } frame-system-rpc-runtime-api = { workspace = true } @@ -112,6 +114,7 @@ std = [ "cumulus-primitives-storage-weight-reclaim/std", "frame-benchmarking?/std", "frame-executive/std", + "frame-metadata-hash-extension/std", "frame-support/std", "frame-system-benchmarking?/std", "frame-system-rpc-runtime-api/std", @@ -239,3 +242,16 @@ try-runtime = [ "shp-traits/try-runtime", "sp-runtime/try-runtime", ] + +# Enable the metadata hash generation. +# +# This is hidden behind a feature because it increases the compile time. +# The wasm binary needs to be compiled twice, once to fetch the metadata, +# generate the metadata hash and then a second time with the +# `RUNTIME_METADATA_HASH` environment variable set for the `CheckMetadataHash` +# extension. +metadata-hash = ["substrate-wasm-builder/metadata-hash"] + +# A convenience feature for enabling things when doing a build +# for an on-chain release. +on-chain-release-build = ["metadata-hash"] diff --git a/runtime/build.rs b/runtime/build.rs index b0ab6fa60..6a562a933 100644 --- a/runtime/build.rs +++ b/runtime/build.rs @@ -1,12 +1,15 @@ -#[cfg(feature = "std")] +#[cfg(all(feature = "std", feature = "metadata-hash"))] +#[docify::export(template_enable_metadata_hash)] fn main() { - substrate_wasm_builder::WasmBuilder::new() - .with_current_project() - .export_heap_base() - .import_memory() - .build() + substrate_wasm_builder::WasmBuilder::init_with_defaults() + .enable_metadata_hash("SH", 12) + .build(); } +#[cfg(all(feature = "std", not(feature = "metadata-hash")))] +fn main() { + substrate_wasm_builder::WasmBuilder::build_using_defaults(); +} /// The wasm builder is deactivated when compiling /// this crate for wasm to speed up the compilation. #[cfg(not(feature = "std"))] diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index cf26f052c..5c328ad05 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -152,9 +152,6 @@ impl frame_system::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 = (); } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 42c259b8e..a0dd78552 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -83,6 +83,7 @@ pub type SignedExtra = ( frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, + frame_metadata_hash_extension::CheckMetadataHash, ); /// Unchecked extrinsic type as expected by this runtime. diff --git a/xcm-simulator/Cargo.toml b/xcm-simulator/Cargo.toml index fc802749c..dc6e46aef 100644 --- a/xcm-simulator/Cargo.toml +++ b/xcm-simulator/Cargo.toml @@ -43,6 +43,7 @@ shp-traits = { workspace = true } # Substrate frame-support = { workspace = true } frame-benchmarking = { workspace = true, optional = true } +frame-metadata-hash-extension = { workspace = true } frame-executive = { workspace = true } frame-system = { workspace = true } frame-system-benchmarking = { workspace = true, optional = true } diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index 0e4f632a4..8fd3b33d4 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -149,9 +149,6 @@ impl frame_system::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 = (); } diff --git a/xcm-simulator/src/storagehub/mod.rs b/xcm-simulator/src/storagehub/mod.rs index 1888455f9..3f325eb13 100644 --- a/xcm-simulator/src/storagehub/mod.rs +++ b/xcm-simulator/src/storagehub/mod.rs @@ -72,6 +72,7 @@ pub type SignedExtra = ( frame_system::CheckWeight, pallet_transaction_payment::ChargeTransactionPayment, cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim, + frame_metadata_hash_extension::CheckMetadataHash, ); /// Unchecked extrinsic type as expected by this runtime. diff --git a/xcm-simulator/src/tests.rs b/xcm-simulator/src/tests.rs index 4fc61d3ae..a3b22c962 100644 --- a/xcm-simulator/src/tests.rs +++ b/xcm-simulator/src/tests.rs @@ -1578,9 +1578,9 @@ mod users { ] .into(), ); - assert_ok!(parachain::PolkadotXcm::execute_blob( + assert_ok!(parachain::PolkadotXcm::execute( parachain::RuntimeOrigin::signed(CHARLIE.into()), - message.encode().try_into().unwrap(), + message.into(), Weight::MAX )); }); From 5c07140f81e68e13a66e1fe3ee280822d07a47e6 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Mon, 30 Sep 2024 18:38:45 -0300 Subject: [PATCH 16/24] chore: :label: run typegen --- Cargo.lock | 2415 ++++++++--------- api-augment/dist/interfaces/lookup.js | 220 +- api-augment/dist/interfaces/lookup.js.map | 2 +- api-augment/dist/types/interfaces/lookup.d.ts | 196 +- .../dist/types/interfaces/types-lookup.d.ts | 220 +- api-augment/src/interfaces/lookup.ts | 220 +- api-augment/src/interfaces/types-lookup.ts | 224 +- api-augment/storagehub.json | 2 +- 8 files changed, 1745 insertions(+), 1754 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e2633e53e..2f666a596 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -965,7 +965,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "log", @@ -1182,12 +1182,12 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -1920,7 +1920,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "clap", "parity-scale-codec", @@ -1929,15 +1929,15 @@ dependencies = [ "sc-client-api", "sc-service", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "url", ] [[package]] name = "cumulus-client-collator" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1952,15 +1952,15 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1984,16 +1984,16 @@ dependencies = [ "sc-telemetry", "schnellru", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "tracing", @@ -2002,7 +2002,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2020,10 +2020,10 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -2031,22 +2031,22 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", "sp-consensus", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "cumulus-client-network" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2060,16 +2060,16 @@ dependencies = [ "sc-client-api", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2082,18 +2082,18 @@ dependencies = [ "sp-api 26.0.0", "sp-crypto-hashing 0.0.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2110,14 +2110,14 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2145,15 +2145,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-pallet-parachain-system", "frame-support 28.0.0", @@ -2162,16 +2163,16 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-benchmarking 28.0.0", @@ -2180,16 +2181,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2208,14 +2209,14 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "staging-xcm 7.0.0", "trie-db 0.28.0", @@ -2224,7 +2225,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2235,37 +2236,37 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2279,10 +2280,10 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -2290,63 +2291,63 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-primitives 7.0.0", "sp-api 26.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-core" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2356,14 +2357,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -2372,9 +2373,9 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -2383,7 +2384,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2399,15 +2400,15 @@ dependencies = [ "sc-tracing", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2418,14 +2419,14 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-blockchain", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -2436,7 +2437,7 @@ dependencies = [ "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-chain-api", @@ -2458,7 +2459,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "tokio", "tracing", @@ -2467,7 +2468,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2491,10 +2492,10 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -2506,15 +2507,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3468,7 +3469,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", ] @@ -3491,7 +3492,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-support-procedural 23.0.0", @@ -3503,13 +3504,13 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", ] @@ -3542,7 +3543,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -3572,17 +3573,17 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "thousands", ] @@ -3602,7 +3603,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3613,18 +3614,18 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3648,7 +3649,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aquamarine 0.3.3", "frame-support 28.0.0", @@ -3657,11 +3658,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3679,7 +3680,7 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "indicatif", @@ -3687,11 +3688,11 @@ dependencies = [ "log", "parity-scale-codec", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "spinners", "substrate-rpc-client", "tokio", @@ -3701,7 +3702,7 @@ dependencies = [ [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aquamarine 0.5.0", "array-bytes 6.2.3", @@ -3721,20 +3722,20 @@ dependencies = [ "serde_json", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing-proc-macro 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", "tt-call", ] @@ -3784,13 +3785,13 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse 0.1.5", + "derive-syn-parse 0.2.0", "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "itertools 0.10.5", "macro_magic", "proc-macro-warning", @@ -3836,9 +3837,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -3859,7 +3860,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro2", "quote", @@ -3869,7 +3870,7 @@ dependencies = [ [[package]] name = "frame-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cfg-if", "docify", @@ -3878,12 +3879,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -3910,22 +3911,22 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -3934,13 +3935,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -5970,7 +5971,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "log", @@ -5981,24 +5982,24 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "mmr-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6570,7 +6571,7 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6578,26 +6579,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-asset-rate" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6619,7 +6620,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6628,16 +6629,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-assets" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6645,15 +6646,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6661,26 +6662,26 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-authority-discovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6703,15 +6704,15 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6732,7 +6733,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6743,14 +6744,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6781,7 +6782,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aquamarine 0.5.0", "docify", @@ -6793,17 +6794,17 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-balances" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -6812,8 +6813,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6836,7 +6837,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6847,16 +6848,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-beefy-mmr" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -6871,17 +6872,17 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6890,16 +6891,16 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-broker" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -6907,10 +6908,10 @@ dependencies = [ "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -6950,18 +6951,18 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] [[package]] name = "pallet-child-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6971,16 +6972,16 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6991,15 +6992,15 @@ dependencies = [ "parity-scale-codec", "rand", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7007,16 +7008,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-conviction-voting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7025,15 +7026,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-democracy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7042,16 +7043,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7062,13 +7063,13 @@ dependencies = [ "parity-scale-codec", "rand", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "strum 0.24.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "strum 0.26.3", ] [[package]] @@ -7098,15 +7099,15 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7127,7 +7128,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7135,18 +7136,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-fast-unstake" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7156,10 +7157,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7204,11 +7205,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7219,13 +7220,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-grandpa" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7235,20 +7236,20 @@ dependencies = [ "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-identity" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7257,9 +7258,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7283,7 +7284,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7292,35 +7293,35 @@ dependencies = [ "pallet-authorship 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-indices" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-membership" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7328,16 +7329,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-message-queue" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -7346,12 +7347,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7378,7 +7379,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7386,17 +7387,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-multisig" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7404,15 +7405,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7421,32 +7422,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nis" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nomination-pools" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7454,18 +7455,18 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7476,27 +7477,27 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-offences" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7505,15 +7506,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-offences-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7529,9 +7530,9 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7549,9 +7550,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7562,14 +7563,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-preimage" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7577,10 +7578,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7600,10 +7601,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7614,23 +7615,23 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-proxy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7645,16 +7646,16 @@ dependencies = [ "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-ranked-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7663,32 +7664,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-recovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-referenda" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7698,31 +7699,31 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-root-testing" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-scheduler" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7731,16 +7732,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-session" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7749,14 +7750,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7785,7 +7786,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7794,15 +7795,15 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "rand", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-society" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7811,16 +7812,16 @@ dependencies = [ "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-staking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7833,11 +7834,11 @@ dependencies = [ "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7866,7 +7867,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -7877,10 +7878,10 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7896,7 +7897,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -7906,7 +7907,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7914,10 +7915,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -7937,10 +7938,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7951,13 +7952,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-sudo" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7965,15 +7966,15 @@ dependencies = [ "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-timestamp" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7983,10 +7984,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", ] @@ -8014,7 +8015,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8024,26 +8025,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-transaction-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -8066,35 +8067,35 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "pallet-transaction-payment 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-treasury" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -8105,9 +8106,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -8133,7 +8134,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8141,30 +8142,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-utility" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-vesting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8172,8 +8173,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -8195,7 +8196,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8203,14 +8204,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "pallet-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "frame-benchmarking 28.0.0", @@ -8221,19 +8222,20 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", + "xcm-fee-payment-runtime-api", ] [[package]] name = "pallet-xcm-benchmarks" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8241,9 +8243,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8252,7 +8254,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8270,10 +8272,10 @@ dependencies = [ "polkadot-primitives 7.0.0", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", @@ -8611,7 +8613,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "futures", @@ -8631,7 +8633,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "always-assert", "futures", @@ -8647,7 +8649,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "derive_more", "fatality", @@ -8661,8 +8663,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "rand", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8670,7 +8672,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "fatality", @@ -8693,7 +8695,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cfg-if", "clap", @@ -8709,11 +8711,11 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -8722,7 +8724,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -8733,9 +8735,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tokio-util", "tracing-gum", @@ -8744,25 +8746,25 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -8781,7 +8783,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "derive_more", "fatality", @@ -8797,8 +8799,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-network", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8806,21 +8808,21 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives 7.0.0", "reed-solomon-novelpoly", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "polkadot-gossip-support" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "futures-timer", @@ -8832,17 +8834,17 @@ dependencies = [ "rand_chacha 0.3.1", "sc-network", "sc-network-common", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "always-assert", "async-trait", @@ -8865,7 +8867,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "parity-scale-codec", @@ -8874,7 +8876,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-maybe-compressed-blob", "thiserror", "tracing-gum", @@ -8883,7 +8885,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "derive_more", @@ -8905,10 +8907,10 @@ dependencies = [ "sc-keystore", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8916,7 +8918,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "futures", @@ -8938,7 +8940,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -8950,7 +8952,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "polkadot-statement-table", "schnellru", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -8958,13 +8960,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", "wasm-timer", @@ -8973,7 +8975,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -8994,7 +8996,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-metrics", @@ -9008,7 +9010,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "futures-timer", @@ -9025,7 +9027,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "fatality", "futures", @@ -9044,7 +9046,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -9061,7 +9063,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -9078,7 +9080,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "fatality", @@ -9096,7 +9098,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -9108,7 +9110,7 @@ dependencies = [ "libc", "parity-scale-codec", "pin-project", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-node-core-pvf-common", "polkadot-node-metrics", "polkadot-node-primitives", @@ -9117,9 +9119,9 @@ dependencies = [ "polkadot-primitives 7.0.0", "rand", "slotmap", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tempfile", "thiserror", "tokio", @@ -9129,7 +9131,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-primitives", @@ -9137,7 +9139,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -9145,7 +9147,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cfg-if", "cpu-time", @@ -9160,11 +9162,11 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "seccompiler", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -9172,7 +9174,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "polkadot-node-metrics", @@ -9187,7 +9189,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "lazy_static", "log", @@ -9197,7 +9199,7 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives 7.0.0", "sc-network", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tokio", ] @@ -9205,7 +9207,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bs58 0.5.1", "futures", @@ -9224,7 +9226,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9240,7 +9242,7 @@ dependencies = [ "rand", "sc-authority-discovery", "sc-network", - "strum 0.24.1", + "strum 0.26.3", "thiserror", "tracing-gum", ] @@ -9248,7 +9250,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "bounded-vec", @@ -9258,12 +9260,12 @@ dependencies = [ "polkadot-primitives 7.0.0", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "zstd 0.12.4", ] @@ -9271,7 +9273,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9281,7 +9283,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "bitvec", @@ -9301,7 +9303,7 @@ dependencies = [ "sp-authority-discovery 26.0.0", "sp-blockchain", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -9309,7 +9311,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "derive_more", @@ -9334,9 +9336,9 @@ dependencies = [ "rand", "sc-client-api", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing-gum", ] @@ -9344,7 +9346,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -9358,7 +9360,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-client-api", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -9366,18 +9368,18 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "derive_more", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -9401,28 +9403,28 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "hex-literal", "log", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -9456,7 +9458,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9480,8 +9482,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] @@ -9489,7 +9491,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -9523,14 +9525,14 @@ dependencies = [ "serde_derive", "slot-range-helper 7.0.0", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -9606,14 +9608,14 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bs58 0.5.1", "frame-benchmarking 28.0.0", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -9633,7 +9635,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9654,7 +9656,7 @@ dependencies = [ "pallet-timestamp 27.0.0", "pallet-vesting 28.0.0", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-metrics 7.0.0", @@ -9664,16 +9666,16 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", "static_assertions", @@ -9731,7 +9733,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "bitvec", @@ -9748,7 +9750,6 @@ dependencies = [ "log", "mmr-gadget", "pallet-babe 28.0.0", - "pallet-im-online", "pallet-staking 28.0.0", "pallet-transaction-payment 28.0.0", "pallet-transaction-payment-rpc-runtime-api", @@ -9760,7 +9761,7 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -9826,31 +9827,33 @@ dependencies = [ "sp-consensus-babe 0.32.0", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "sp-transaction-pool", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "staging-xcm 7.0.0", "substrate-prometheus-endpoint", "thiserror", "tracing-gum", "westend-runtime", + "xcm-fee-payment-runtime-api", ] [[package]] name = "polkadot-statement-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -9864,7 +9867,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", "thiserror", "tracing-gum", @@ -9873,11 +9876,11 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing-gum", ] @@ -10834,7 +10837,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "binary-merkle-tree", "frame-benchmarking 28.0.0", @@ -10861,7 +10864,6 @@ dependencies = [ "pallet-elections-phragmen", "pallet-grandpa", "pallet-identity 28.0.0", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue 31.0.0", @@ -10902,22 +10904,22 @@ dependencies = [ "serde_derive", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -10925,20 +10927,21 @@ dependencies = [ "staging-xcm-executor 7.0.0", "static_assertions", "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", ] [[package]] name = "rococo-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -11226,24 +11229,25 @@ dependencies = [ [[package]] name = "sc-allocator" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", "futures-timer", "ip_network", "libp2p", + "linked_hash_set", "log", "multihash 0.18.1", "multihash-codetable", @@ -11256,9 +11260,9 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11266,7 +11270,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "futures-timer", @@ -11279,31 +11283,31 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-chain-spec" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "docify", @@ -11318,18 +11322,18 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", "sp-genesis-builder 0.7.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-chain-spec-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -11340,7 +11344,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -11368,11 +11372,11 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -11381,7 +11385,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "fnv", "futures", @@ -11394,21 +11398,21 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "kvdb", @@ -11422,19 +11426,19 @@ dependencies = [ "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-consensus" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -11449,9 +11453,9 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11459,7 +11463,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -11471,16 +11475,16 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11488,7 +11492,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "fork-tree", @@ -11506,17 +11510,17 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool-api", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11524,7 +11528,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "jsonrpsee", @@ -11533,20 +11537,20 @@ dependencies = [ "sc-rpc-api", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11563,16 +11567,16 @@ dependencies = [ "sc-network-sync", "sc-utils", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11582,7 +11586,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "jsonrpsee", @@ -11593,28 +11597,28 @@ dependencies = [ "sc-rpc", "serde", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-consensus-grandpa" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.3", @@ -11641,15 +11645,15 @@ dependencies = [ "sc-utils", "serde_json", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", ] @@ -11657,7 +11661,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "finality-grandpa", "futures", @@ -11669,15 +11673,15 @@ dependencies = [ "sc-rpc", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "assert_matches", "async-trait", @@ -11700,10 +11704,10 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "thiserror", @@ -11712,7 +11716,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -11722,20 +11726,20 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-executor" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11744,26 +11748,26 @@ dependencies = [ "sc-executor-wasmtime", "schnellru", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "wasm-instrument", ] @@ -11771,18 +11775,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-executor-wasmtime" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "anyhow", "cfg-if", @@ -11792,15 +11796,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ansi_term", "futures", @@ -11811,27 +11815,27 @@ dependencies = [ "sc-network-common", "sc-network-sync", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-keystore" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.6", @@ -11850,17 +11854,17 @@ dependencies = [ "sc-transaction-pool-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mixnet", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-network" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11887,10 +11891,10 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11903,7 +11907,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-channel 1.9.0", "cid", @@ -11915,7 +11919,7 @@ dependencies = [ "sc-client-api", "sc-network", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "unsigned-varint", ] @@ -11923,7 +11927,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11934,13 +11938,13 @@ dependencies = [ "sc-consensus", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-network-gossip" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ahash 0.8.11", "futures", @@ -11951,7 +11955,7 @@ dependencies = [ "sc-network-common", "sc-network-sync", "schnellru", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -11959,7 +11963,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11972,15 +11976,15 @@ dependencies = [ "sc-client-api", "sc-network", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-network-sync" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -12001,12 +12005,12 @@ dependencies = [ "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -12016,7 +12020,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12028,14 +12032,14 @@ dependencies = [ "sc-network-sync", "sc-utils", "sp-consensus", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-offchain" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -12057,11 +12061,11 @@ dependencies = [ "sc-transaction-pool-api", "sc-utils", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "threadpool", "tracing", ] @@ -12069,7 +12073,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12078,7 +12082,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "jsonrpsee", @@ -12096,11 +12100,11 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-offchain", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-statement-store", "sp-version 29.0.0", @@ -12110,7 +12114,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12120,9 +12124,9 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", ] @@ -12130,7 +12134,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "governor", @@ -12148,7 +12152,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12167,9 +12171,9 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -12179,7 +12183,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "directories", @@ -12220,16 +12224,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "static_init", "substrate-prometheus-endpoint", @@ -12243,23 +12247,23 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-storage-monitor" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "clap", "fs4", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tokio", ] @@ -12267,7 +12271,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12279,14 +12283,14 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-sysinfo" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "derive_more", "futures", @@ -12298,16 +12302,16 @@ dependencies = [ "sc-telemetry", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sc-telemetry" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "chrono", "futures", @@ -12326,7 +12330,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ansi_term", "chrono", @@ -12343,10 +12347,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", "tracing-log 0.1.4", @@ -12356,7 +12360,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -12367,7 +12371,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -12382,10 +12386,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -12394,7 +12398,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", @@ -12402,15 +12406,15 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sc-utils" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-channel 1.9.0", "futures", @@ -12419,7 +12423,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -12635,9 +12639,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] @@ -12653,9 +12657,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", @@ -12733,6 +12737,7 @@ dependencies = [ "pallet-randomness", "pallet-session 28.0.0", "pallet-storage-providers", + "pallet-storage-providers-runtime-api", "pallet-sudo", "pallet-timestamp 27.0.0", "pallet-transaction-payment 28.0.0", @@ -12756,19 +12761,19 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", @@ -12855,8 +12860,8 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tokio", ] @@ -12899,9 +12904,9 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "storage-hub-runtime", "substrate-frame-rpc-system", "tokio", @@ -12934,10 +12939,10 @@ dependencies = [ "shp-forest-verifier", "shp-traits", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "storage-hub-runtime", "thiserror", @@ -12958,9 +12963,9 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "trie-db 0.29.1", @@ -13009,9 +13014,9 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "tokio", @@ -13076,8 +13081,8 @@ dependencies = [ "shc-indexer-db", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "storage-hub-runtime", "substrate-frame-rpc-system", "thiserror", @@ -13095,9 +13100,9 @@ dependencies = [ "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "tokio", ] @@ -13112,8 +13117,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13129,10 +13134,10 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13146,9 +13151,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13161,10 +13166,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13176,11 +13181,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13191,10 +13196,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -13260,13 +13265,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13467,21 +13472,21 @@ dependencies = [ [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", "sp-api-proc-macro 15.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-version 29.0.0", "thiserror", ] @@ -13511,7 +13516,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13540,27 +13545,27 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -13580,7 +13585,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "integer-sqrt", @@ -13588,21 +13593,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", ] [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ + "docify", "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -13642,14 +13648,13 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -13669,18 +13674,17 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "sp-api 26.0.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "futures", "log", @@ -13690,59 +13694,57 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sp-consensus" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "futures", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-slots 0.32.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", ] [[package]] name = "sp-consensus-babe" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", ] @@ -13769,28 +13771,27 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "lazy_static", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "strum 0.24.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "finality-grandpa", "log", @@ -13798,22 +13799,20 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-consensus-slots" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", "sp-timestamp 26.0.0", ] @@ -13833,7 +13832,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -13863,14 +13862,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", "w3f-bls", @@ -13880,7 +13879,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -13910,14 +13909,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "thiserror", "tracing", "w3f-bls", @@ -14040,7 +14039,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "blake2b_simd", "byteorder", @@ -14093,7 +14092,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "quote", "sp-crypto-hashing 0.0.0", @@ -14114,7 +14113,7 @@ dependencies = [ [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14134,7 +14133,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "proc-macro2", "quote", @@ -14144,7 +14143,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "proc-macro2", "quote", @@ -14164,22 +14163,21 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "environmental", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14207,12 +14205,11 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "serde_json", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14230,14 +14227,13 @@ dependencies = [ [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] @@ -14259,7 +14255,7 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bytes", "ed25519-dalek", @@ -14269,15 +14265,15 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-crypto-hashing 0.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "tracing", "tracing-core", ] @@ -14285,7 +14281,7 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "ed25519-dalek", @@ -14295,15 +14291,15 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "tracing", "tracing-core", ] @@ -14337,33 +14333,33 @@ dependencies = [ [[package]] name = "sp-keyring" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "strum 0.24.1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "strum 0.26.3", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14382,7 +14378,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14403,30 +14399,28 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-metadata", "parity-scale-codec", "scale-info", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", ] [[package]] name = "sp-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-mmr-primitives" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14434,25 +14428,23 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] [[package]] name = "sp-npos-elections" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14473,11 +14465,11 @@ dependencies = [ [[package]] name = "sp-offchain" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14494,7 +14486,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "backtrace", "lazy_static", @@ -14504,7 +14496,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "backtrace", "lazy_static", @@ -14514,17 +14506,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "rustc-hash", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "docify", "either", @@ -14537,18 +14529,18 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "docify", "either", @@ -14561,12 +14553,12 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14597,38 +14589,38 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "static_assertions", ] [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "static_assertions", ] @@ -14687,7 +14679,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "expander 2.2.1", @@ -14700,7 +14692,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "Inflector", "expander 2.2.1", @@ -14726,16 +14718,15 @@ dependencies = [ [[package]] name = "sp-session" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", ] [[package]] @@ -14757,15 +14748,14 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] @@ -14786,7 +14776,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hash-db", "log", @@ -14794,19 +14784,19 @@ dependencies = [ "parking_lot 0.12.3", "rand", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", - "trie-db 0.29.1", + "trie-db 0.28.0", ] [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hash-db", "log", @@ -14814,14 +14804,13 @@ dependencies = [ "parking_lot 0.12.3", "rand", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "thiserror", "tracing", - "trie-db 0.28.0", + "trie-db 0.29.1", ] [[package]] @@ -14849,7 +14838,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", @@ -14860,13 +14849,12 @@ dependencies = [ "scale-info", "sha2 0.10.8", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "x25519-dalek 2.0.1", ] @@ -14880,12 +14868,12 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" [[package]] name = "sp-std" @@ -14895,26 +14883,25 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -14946,13 +14933,12 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] @@ -14986,24 +14972,23 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.18", + "tracing-subscriber 0.2.25", ] [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", "tracing", "tracing-core", - "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.18", ] [[package]] @@ -15020,31 +15005,30 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-transaction-storage-proof" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15056,18 +15040,18 @@ dependencies = [ "rand", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", "tracing", - "trie-db 0.29.1", + "trie-db 0.28.0", "trie-root", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15079,12 +15063,11 @@ dependencies = [ "rand", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", "thiserror", "tracing", - "trie-db 0.28.0", + "trie-db 0.29.1", "trie-root", ] @@ -15139,7 +15122,7 @@ dependencies = [ [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "impl-serde", "parity-scale-codec", @@ -15147,9 +15130,9 @@ dependencies = [ "scale-info", "serde", "sp-crypto-hashing-proc-macro 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "thiserror", ] @@ -15186,7 +15169,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -15211,24 +15194,23 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ + "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", + "wasmtime", ] [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ - "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "wasmtime", ] [[package]] @@ -15244,30 +15226,29 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", ] [[package]] @@ -15352,21 +15333,21 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "staging-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -15377,7 +15358,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "xcm-procedural 7.0.0", ] @@ -15403,7 +15384,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -15413,11 +15394,11 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives 6.0.0", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -15448,7 +15429,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -15457,12 +15438,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", ] @@ -15608,12 +15589,12 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "staging-xcm 7.0.0", @@ -15684,13 +15665,13 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", @@ -15745,6 +15726,9 @@ name = "strum" version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] [[package]] name = "strum_macros" @@ -15788,7 +15772,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15800,7 +15784,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15824,12 +15808,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -15841,14 +15825,14 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "hyper", "log", @@ -15860,37 +15844,37 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "jsonrpsee", "log", "sc-rpc-api", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", ] [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "trie-db 0.28.0", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "build-helper", "cargo_metadata", @@ -15899,7 +15883,7 @@ dependencies = [ "parity-wasm", "polkavm-linker", "sp-maybe-compressed-blob", - "strum 0.24.1", + "strum 0.26.3", "tempfile", "toml 0.8.19", "walkdir", @@ -16463,7 +16447,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "coarsetime", "polkadot-primitives 7.0.0", @@ -16474,7 +16458,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "expander 2.2.1", "proc-macro-crate 3.1.0", @@ -16659,7 +16643,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "async-trait", "clap", @@ -16675,19 +16659,19 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus-aura", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-timestamp 26.0.0", "sp-transaction-storage-proof", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "substrate-rpc-client", "zstd 0.12.4", ] @@ -17332,7 +17316,7 @@ dependencies = [ [[package]] name = "westend-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "binary-merkle-tree", "bitvec", @@ -17363,7 +17347,6 @@ dependencies = [ "pallet-fast-unstake 27.0.0", "pallet-grandpa", "pallet-identity 28.0.0", - "pallet-im-online", "pallet-indices", "pallet-membership", "pallet-message-queue 31.0.0", @@ -17408,24 +17391,24 @@ dependencies = [ "serde_derive", "smallvec", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-genesis-builder 0.7.0", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-mmr-primitives", "sp-npos-elections 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -17433,20 +17416,21 @@ dependencies = [ "staging-xcm-executor 7.0.0", "substrate-wasm-builder", "westend-runtime-constants", + "xcm-fee-payment-runtime-api", ] [[package]] name = "westend-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -17841,10 +17825,25 @@ dependencies = [ "time", ] +[[package]] +name = "xcm-fee-payment-runtime-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +dependencies = [ + "frame-support 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "staging-xcm 7.0.0", +] + [[package]] name = "xcm-procedural" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "Inflector", "proc-macro2", @@ -17867,16 +17866,16 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0#3c3d6fceb82372a3019b37117aa453d564b212de" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "paste", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.9.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index 469f447ce..0677de123 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -2100,7 +2100,7 @@ export default { CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** * Lookup190: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth @@ -2118,9 +2118,9 @@ export default { totalBytes: "u32" }, /** - * Lookup197: polkadot_primitives::v6::UpgradeGoAhead + * Lookup197: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** @@ -2129,21 +2129,21 @@ export default { CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** - * Lookup199: polkadot_primitives::v6::PersistedValidationData + * Lookup199: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32" }, /** - * Lookup202: polkadot_primitives::v6::UpgradeRestriction + * Lookup202: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: ["Present"] }, /** @@ -2159,8 +2159,8 @@ export default { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>" + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" }, /** * Lookup206: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity @@ -2170,9 +2170,9 @@ export default { remainingSize: "u32" }, /** - * Lookup209: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup209: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", maxMessageSize: "u32", @@ -2181,9 +2181,9 @@ export default { mqcHead: "Option" }, /** - * Lookup210: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup210: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", maxUpwardQueueCount: "u32", @@ -2193,12 +2193,12 @@ export default { hrmpMaxMessageNumPerCandidate: "u32", validationUpgradeCooldown: "u32", validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV6AsyncBackingAsyncBackingParams" + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" }, /** - * Lookup211: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup211: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, @@ -2233,7 +2233,7 @@ export default { * Lookup220: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV6PersistedValidationData", + validationData: "PolkadotPrimitivesV7PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>" @@ -2528,13 +2528,9 @@ export default { /** * Lookup258: sp_consensus_aura::sr25519::app_sr25519::Public **/ - SpConsensusAuraSr25519AppSr25519Public: "SpCoreSr25519Public", + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup259: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: "[u8;32]", - /** - * Lookup260: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2562,7 +2558,7 @@ export default { } }, /** - * Lookup261: pallet_xcm::pallet::Call + * Lookup260: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2626,11 +2622,19 @@ export default { claim_assets: { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" + }, + execute_blob: { + encodedMessage: "Bytes", + maxWeight: "SpWeightsWeightV2Weight" + }, + send_blob: { + dest: "XcmVersionedLocation", + encodedMessage: "Bytes" } } }, /** - * Lookup262: xcm::VersionedXcm + * Lookup261: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2642,11 +2646,11 @@ export default { } }, /** - * Lookup263: xcm::v2::Xcm + * Lookup262: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup265: xcm::v2::Instruction + * Lookup264: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2744,7 +2748,7 @@ export default { } }, /** - * Lookup266: xcm::v2::Response + * Lookup265: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2755,7 +2759,7 @@ export default { } }, /** - * Lookup269: xcm::v2::traits::Error + * Lookup268: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2788,7 +2792,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::MultiAssetFilter + * Lookup269: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2797,7 +2801,7 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildMultiAsset + * Lookup270: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2809,13 +2813,13 @@ export default { } }, /** - * Lookup272: xcm::v2::multiasset::WildFungibility + * Lookup271: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup273: xcm::v2::WeightLimit + * Lookup272: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2824,11 +2828,11 @@ export default { } }, /** - * Lookup274: xcm::v3::Xcm + * Lookup273: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup276: xcm::v3::Instruction + * Lookup275: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2970,7 +2974,7 @@ export default { } }, /** - * Lookup277: xcm::v3::Response + * Lookup276: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2983,7 +2987,7 @@ export default { } }, /** - * Lookup279: xcm::v3::PalletInfo + * Lookup278: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2994,7 +2998,7 @@ export default { patch: "Compact" }, /** - * Lookup283: xcm::v3::QueryResponseInfo + * Lookup282: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -3002,7 +3006,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup284: xcm::v3::multiasset::MultiAssetFilter + * Lookup283: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3011,7 +3015,7 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildMultiAsset + * Lookup284: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3029,7 +3033,7 @@ export default { } }, /** - * Lookup286: xcm::v3::multiasset::WildFungibility + * Lookup285: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] @@ -3608,25 +3612,13 @@ export default { **/ SpRuntimeMultiSignature: { _enum: { - Ed25519: "SpCoreEd25519Signature", - Sr25519: "SpCoreSr25519Signature", - Ecdsa: "SpCoreEcdsaSignature" + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" } }, /** - * Lookup332: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: "[u8;64]", - /** - * Lookup334: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: "[u8;64]", - /** - * Lookup335: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: "[u8;65]", - /** - * Lookup337: pallet_nfts::types::PreSignedAttributes + * Lookup334: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3636,20 +3628,20 @@ export default { deadline: "u32" }, /** - * Lookup338: pallet_sudo::pallet::Error + * Lookup335: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup341: pallet_collator_selection::pallet::CandidateInfo + * Lookup338: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup343: pallet_collator_selection::pallet::Error + * Lookup340: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3673,17 +3665,17 @@ export default { ] }, /** - * Lookup347: sp_core::crypto::KeyTypeId + * Lookup344: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup348: pallet_session::pallet::Error + * Lookup345: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3693,13 +3685,13 @@ export default { lastIndex: "u16" }, /** - * Lookup358: cumulus_pallet_xcmp_queue::OutboundState + * Lookup355: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup360: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3707,13 +3699,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup361: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup362: pallet_xcm::pallet::QueryStatus + * Lookup359: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3734,7 +3726,7 @@ export default { } }, /** - * Lookup366: xcm::VersionedResponse + * Lookup363: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3746,7 +3738,7 @@ export default { } }, /** - * Lookup372: pallet_xcm::pallet::VersionMigrationStage + * Lookup369: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3757,7 +3749,7 @@ export default { } }, /** - * Lookup375: xcm::VersionedAssetId + * Lookup372: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3769,7 +3761,7 @@ export default { } }, /** - * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3778,7 +3770,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup383: pallet_xcm::pallet::Error + * Lookup380: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3806,11 +3798,13 @@ export default { "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete" + "LocalExecutionIncomplete", + "UnableToDecode", + "XcmTooLarge" ] }, /** - * Lookup384: pallet_message_queue::BookState + * Lookup381: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3824,14 +3818,14 @@ export default { size_: "u64" }, /** - * Lookup386: pallet_message_queue::Neighbours + * Lookup383: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup388: pallet_message_queue::Page + * Lookup385: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3842,7 +3836,7 @@ export default { heap: "Bytes" }, /** - * Lookup390: pallet_message_queue::pallet::Error + * Lookup387: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3858,7 +3852,7 @@ export default { ] }, /** - * Lookup392: pallet_storage_providers::types::StorageProvider + * Lookup389: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3867,7 +3861,7 @@ export default { } }, /** - * Lookup393: pallet_storage_providers::types::BackupStorageProvider + * Lookup390: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3880,7 +3874,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup394: pallet_storage_providers::types::MainStorageProvider + * Lookup391: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3893,7 +3887,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup396: pallet_storage_providers::types::Bucket + * Lookup393: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3907,7 +3901,7 @@ export default { size_: "u64" }, /** - * Lookup399: pallet_storage_providers::pallet::Error + * Lookup396: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3941,7 +3935,7 @@ export default { ] }, /** - * Lookup400: pallet_file_system::types::StorageRequestMetadata + * Lookup397: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3961,19 +3955,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup405: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup402: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup414: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup411: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup415: pallet_file_system::pallet::Error + * Lookup412: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4037,7 +4031,7 @@ export default { ] }, /** - * Lookup422: pallet_proofs_dealer::pallet::Error + * Lookup419: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4066,7 +4060,7 @@ export default { ] }, /** - * Lookup425: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup422: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4075,7 +4069,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup426: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup423: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4084,14 +4078,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup427: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup424: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup428: pallet_payment_streams::pallet::Error + * Lookup425: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4114,7 +4108,7 @@ export default { ] }, /** - * Lookup429: pallet_bucket_nfts::pallet::Error + * Lookup426: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4125,7 +4119,7 @@ export default { ] }, /** - * Lookup430: pallet_nfts::types::CollectionDetails + * Lookup427: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4136,13 +4130,13 @@ export default { attributes: "u32" }, /** - * Lookup435: pallet_nfts::types::CollectionRole + * Lookup432: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup436: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup433: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4150,42 +4144,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup437: pallet_nfts::types::ItemDeposit + * Lookup434: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup442: pallet_nfts::types::CollectionMetadata + * Lookup439: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup443: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup440: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup444: pallet_nfts::types::ItemMetadataDeposit + * Lookup441: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup447: pallet_nfts::types::AttributeDeposit + * Lookup444: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup451: pallet_nfts::types::PendingSwap, Deadline> + * Lookup448: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4194,7 +4188,7 @@ export default { deadline: "u32" }, /** - * Lookup453: pallet_nfts::types::PalletFeature + * Lookup450: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4210,7 +4204,7 @@ export default { ] }, /** - * Lookup454: pallet_nfts::pallet::Error + * Lookup451: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4262,39 +4256,39 @@ export default { ] }, /** - * Lookup457: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup454: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup458: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup455: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup459: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup456: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup460: frame_system::extensions::check_genesis::CheckGenesis + * Lookup457: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup463: frame_system::extensions::check_nonce::CheckNonce + * Lookup460: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup464: frame_system::extensions::check_weight::CheckWeight + * Lookup461: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup465: pallet_transaction_payment::ChargeTransactionPayment + * Lookup462: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup466: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup463: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup467: storage_hub_runtime::Runtime + * Lookup464: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index 0315fdaaf..72dae68ec 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index af05cc22c..a15d9e30a 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -2094,9 +2094,9 @@ declare const _default: { totalBytes: string; }; /** - * Lookup197: polkadot_primitives::v6::UpgradeGoAhead + * Lookup197: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: string[]; }; /** @@ -2108,18 +2108,18 @@ declare const _default: { consumedGoAheadSignal: string; }; /** - * Lookup199: polkadot_primitives::v6::PersistedValidationData + * Lookup199: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: string; relayParentNumber: string; relayParentStorageRoot: string; maxPovSize: string; }; /** - * Lookup202: polkadot_primitives::v6::UpgradeRestriction + * Lookup202: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: string[]; }; /** @@ -2145,9 +2145,9 @@ declare const _default: { remainingSize: string; }; /** - * Lookup209: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup209: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: string; maxTotalSize: string; maxMessageSize: string; @@ -2156,9 +2156,9 @@ declare const _default: { mqcHead: string; }; /** - * Lookup210: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup210: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: string; maxHeadDataSize: string; maxUpwardQueueCount: string; @@ -2171,9 +2171,9 @@ declare const _default: { asyncBackingParams: string; }; /** - * Lookup211: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup211: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: string; allowedAncestryLen: string; }; @@ -2483,11 +2483,7 @@ declare const _default: { **/ SpConsensusAuraSr25519AppSr25519Public: string; /** - * Lookup259: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: string; - /** - * Lookup260: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2515,7 +2511,7 @@ declare const _default: { }; }; /** - * Lookup261: pallet_xcm::pallet::Call + * Lookup260: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2580,10 +2576,18 @@ declare const _default: { assets: string; beneficiary: string; }; + execute_blob: { + encodedMessage: string; + maxWeight: string; + }; + send_blob: { + dest: string; + encodedMessage: string; + }; }; }; /** - * Lookup262: xcm::VersionedXcm + * Lookup261: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2595,11 +2599,11 @@ declare const _default: { }; }; /** - * Lookup263: xcm::v2::Xcm + * Lookup262: xcm::v2::Xcm **/ XcmV2Xcm: string; /** - * Lookup265: xcm::v2::Instruction + * Lookup264: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2697,7 +2701,7 @@ declare const _default: { }; }; /** - * Lookup266: xcm::v2::Response + * Lookup265: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2708,7 +2712,7 @@ declare const _default: { }; }; /** - * Lookup269: xcm::v2::traits::Error + * Lookup268: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2741,7 +2745,7 @@ declare const _default: { }; }; /** - * Lookup270: xcm::v2::multiasset::MultiAssetFilter + * Lookup269: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2750,7 +2754,7 @@ declare const _default: { }; }; /** - * Lookup271: xcm::v2::multiasset::WildMultiAsset + * Lookup270: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2762,13 +2766,13 @@ declare const _default: { }; }; /** - * Lookup272: xcm::v2::multiasset::WildFungibility + * Lookup271: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup273: xcm::v2::WeightLimit + * Lookup272: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2777,11 +2781,11 @@ declare const _default: { }; }; /** - * Lookup274: xcm::v3::Xcm + * Lookup273: xcm::v3::Xcm **/ XcmV3Xcm: string; /** - * Lookup276: xcm::v3::Instruction + * Lookup275: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2923,7 +2927,7 @@ declare const _default: { }; }; /** - * Lookup277: xcm::v3::Response + * Lookup276: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2936,7 +2940,7 @@ declare const _default: { }; }; /** - * Lookup279: xcm::v3::PalletInfo + * Lookup278: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: string; @@ -2947,7 +2951,7 @@ declare const _default: { patch: string; }; /** - * Lookup283: xcm::v3::QueryResponseInfo + * Lookup282: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: string; @@ -2955,7 +2959,7 @@ declare const _default: { maxWeight: string; }; /** - * Lookup284: xcm::v3::multiasset::MultiAssetFilter + * Lookup283: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2964,7 +2968,7 @@ declare const _default: { }; }; /** - * Lookup285: xcm::v3::multiasset::WildMultiAsset + * Lookup284: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -2982,7 +2986,7 @@ declare const _default: { }; }; /** - * Lookup286: xcm::v3::multiasset::WildFungibility + * Lookup285: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: string[]; @@ -3549,19 +3553,7 @@ declare const _default: { }; }; /** - * Lookup332: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: string; - /** - * Lookup334: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: string; - /** - * Lookup335: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: string; - /** - * Lookup337: pallet_nfts::types::PreSignedAttributes + * Lookup334: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3571,36 +3563,36 @@ declare const _default: { deadline: string; }; /** - * Lookup338: pallet_sudo::pallet::Error + * Lookup335: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup341: pallet_collator_selection::pallet::CandidateInfo + * Lookup338: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup343: pallet_collator_selection::pallet::Error + * Lookup340: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup347: sp_core::crypto::KeyTypeId + * Lookup344: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup348: pallet_session::pallet::Error + * Lookup345: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3610,13 +3602,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup358: cumulus_pallet_xcmp_queue::OutboundState + * Lookup355: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup360: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3624,13 +3616,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup361: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup362: pallet_xcm::pallet::QueryStatus + * Lookup359: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3651,7 +3643,7 @@ declare const _default: { }; }; /** - * Lookup366: xcm::VersionedResponse + * Lookup363: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3663,7 +3655,7 @@ declare const _default: { }; }; /** - * Lookup372: pallet_xcm::pallet::VersionMigrationStage + * Lookup369: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3674,7 +3666,7 @@ declare const _default: { }; }; /** - * Lookup375: xcm::VersionedAssetId + * Lookup372: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3686,7 +3678,7 @@ declare const _default: { }; }; /** - * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: string; @@ -3695,13 +3687,13 @@ declare const _default: { consumers: string; }; /** - * Lookup383: pallet_xcm::pallet::Error + * Lookup380: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: string[]; }; /** - * Lookup384: pallet_message_queue::BookState + * Lookup381: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3715,14 +3707,14 @@ declare const _default: { size_: string; }; /** - * Lookup386: pallet_message_queue::Neighbours + * Lookup383: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: string; next: string; }; /** - * Lookup388: pallet_message_queue::Page + * Lookup385: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: string; @@ -3733,13 +3725,13 @@ declare const _default: { heap: string; }; /** - * Lookup390: pallet_message_queue::pallet::Error + * Lookup387: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: string[]; }; /** - * Lookup392: pallet_storage_providers::types::StorageProvider + * Lookup389: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3748,7 +3740,7 @@ declare const _default: { }; }; /** - * Lookup393: pallet_storage_providers::types::BackupStorageProvider + * Lookup390: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: string; @@ -3761,7 +3753,7 @@ declare const _default: { reputationWeight: string; }; /** - * Lookup394: pallet_storage_providers::types::MainStorageProvider + * Lookup391: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: string; @@ -3774,7 +3766,7 @@ declare const _default: { paymentAccount: string; }; /** - * Lookup396: pallet_storage_providers::types::Bucket + * Lookup393: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3788,13 +3780,13 @@ declare const _default: { size_: string; }; /** - * Lookup399: pallet_storage_providers::pallet::Error + * Lookup396: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: string[]; }; /** - * Lookup400: pallet_file_system::types::StorageRequestMetadata + * Lookup397: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3814,31 +3806,31 @@ declare const _default: { bspsVolunteered: string; }; /** - * Lookup405: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup402: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: string; }; /** - * Lookup414: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup411: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: string; }; /** - * Lookup415: pallet_file_system::pallet::Error + * Lookup412: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: string[]; }; /** - * Lookup422: pallet_proofs_dealer::pallet::Error + * Lookup419: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: string[]; }; /** - * Lookup425: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup422: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: string; @@ -3847,7 +3839,7 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup426: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup423: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: string; @@ -3856,26 +3848,26 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup427: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup424: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: string; priceIndex: string; }; /** - * Lookup428: pallet_payment_streams::pallet::Error + * Lookup425: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: string[]; }; /** - * Lookup429: pallet_bucket_nfts::pallet::Error + * Lookup426: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: string[]; }; /** - * Lookup430: pallet_nfts::types::CollectionDetails + * Lookup427: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: string; @@ -3886,13 +3878,13 @@ declare const _default: { attributes: string; }; /** - * Lookup435: pallet_nfts::types::CollectionRole + * Lookup432: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: string[]; }; /** - * Lookup436: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup433: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: string; @@ -3900,42 +3892,42 @@ declare const _default: { deposit: string; }; /** - * Lookup437: pallet_nfts::types::ItemDeposit + * Lookup434: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: string; amount: string; }; /** - * Lookup442: pallet_nfts::types::CollectionMetadata + * Lookup439: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: string; data: string; }; /** - * Lookup443: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup440: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: string; data: string; }; /** - * Lookup444: pallet_nfts::types::ItemMetadataDeposit + * Lookup441: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: string; amount: string; }; /** - * Lookup447: pallet_nfts::types::AttributeDeposit + * Lookup444: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: string; amount: string; }; /** - * Lookup451: pallet_nfts::types::PendingSwap, Deadline> + * Lookup448: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: string; @@ -3944,51 +3936,51 @@ declare const _default: { deadline: string; }; /** - * Lookup453: pallet_nfts::types::PalletFeature + * Lookup450: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: string[]; }; /** - * Lookup454: pallet_nfts::pallet::Error + * Lookup451: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: string[]; }; /** - * Lookup457: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup454: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: string; /** - * Lookup458: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup455: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: string; /** - * Lookup459: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup456: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: string; /** - * Lookup460: frame_system::extensions::check_genesis::CheckGenesis + * Lookup457: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: string; /** - * Lookup463: frame_system::extensions::check_nonce::CheckNonce + * Lookup460: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: string; /** - * Lookup464: frame_system::extensions::check_weight::CheckWeight + * Lookup461: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: string; /** - * Lookup465: pallet_transaction_payment::ChargeTransactionPayment + * Lookup462: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: string; /** - * Lookup466: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup463: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup467: storage_hub_runtime::Runtime + * Lookup464: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index d44ca9238..d377e3644 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -2605,7 +2605,7 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (190) */ interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { @@ -2621,8 +2621,8 @@ declare module "@polkadot/types/lookup" { readonly msgCount: u32; readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV6UpgradeGoAhead (197) */ - interface PolkadotPrimitivesV6UpgradeGoAhead extends Enum { + /** @name PolkadotPrimitivesV7UpgradeGoAhead (197) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; @@ -2631,17 +2631,17 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV6PersistedValidationData (199) */ - interface PolkadotPrimitivesV6PersistedValidationData extends Struct { + /** @name PolkadotPrimitivesV7PersistedValidationData (199) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV6UpgradeRestriction (202) */ - interface PolkadotPrimitivesV6UpgradeRestriction extends Enum { + /** @name PolkadotPrimitivesV7UpgradeRestriction (202) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } @@ -2653,8 +2653,8 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; } /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (206) */ interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity @@ -2662,8 +2662,8 @@ declare module "@polkadot/types/lookup" { readonly remainingCount: u32; readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV6AbridgedHrmpChannel (209) */ - interface PolkadotPrimitivesV6AbridgedHrmpChannel extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (209) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; readonly maxMessageSize: u32; @@ -2671,8 +2671,8 @@ declare module "@polkadot/types/lookup" { readonly totalSize: u32; readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV6AbridgedHostConfiguration (210) */ - interface PolkadotPrimitivesV6AbridgedHostConfiguration extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (210) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; readonly maxUpwardQueueCount: u32; @@ -2682,10 +2682,10 @@ declare module "@polkadot/types/lookup" { readonly hrmpMaxMessageNumPerCandidate: u32; readonly validationUpgradeCooldown: u32; readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV6AsyncBackingAsyncBackingParams (211) */ - interface PolkadotPrimitivesV6AsyncBackingAsyncBackingParams extends Struct { + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (211) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } @@ -2721,7 +2721,7 @@ declare module "@polkadot/types/lookup" { } /** @name CumulusPrimitivesParachainInherentParachainInherentData (220) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV6PersistedValidationData; + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; @@ -2982,10 +2982,8 @@ declare module "@polkadot/types/lookup" { readonly aura: SpConsensusAuraSr25519AppSr25519Public; } /** @name SpConsensusAuraSr25519AppSr25519Public (258) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} - /** @name SpCoreSr25519Public (259) */ - interface SpCoreSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (260) */ + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} + /** @name CumulusPalletXcmpQueueCall (259) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -3008,7 +3006,7 @@ declare module "@polkadot/types/lookup" { | "UpdateDropThreshold" | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (261) */ + /** @name PalletXcmCall (260) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3084,6 +3082,16 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; + readonly isExecuteBlob: boolean; + readonly asExecuteBlob: { + readonly encodedMessage: Bytes; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSendBlob: boolean; + readonly asSendBlob: { + readonly dest: XcmVersionedLocation; + readonly encodedMessage: Bytes; + } & Struct; readonly type: | "Send" | "TeleportAssets" @@ -3097,9 +3105,11 @@ declare module "@polkadot/types/lookup" { | "LimitedTeleportAssets" | "ForceSuspension" | "TransferAssets" - | "ClaimAssets"; + | "ClaimAssets" + | "ExecuteBlob" + | "SendBlob"; } - /** @name XcmVersionedXcm (262) */ + /** @name XcmVersionedXcm (261) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3109,9 +3119,9 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Xcm; readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (263) */ + /** @name XcmV2Xcm (262) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (265) */ + /** @name XcmV2Instruction (264) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3258,7 +3268,7 @@ declare module "@polkadot/types/lookup" { | "SubscribeVersion" | "UnsubscribeVersion"; } - /** @name XcmV2Response (266) */ + /** @name XcmV2Response (265) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3269,7 +3279,7 @@ declare module "@polkadot/types/lookup" { readonly asVersion: u32; readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (269) */ + /** @name XcmV2TraitsError (268) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3327,7 +3337,7 @@ declare module "@polkadot/types/lookup" { | "Barrier" | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (270) */ + /** @name XcmV2MultiassetMultiAssetFilter (269) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3335,7 +3345,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV2MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (271) */ + /** @name XcmV2MultiassetWildMultiAsset (270) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3345,22 +3355,22 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (272) */ + /** @name XcmV2MultiassetWildFungibility (271) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (273) */ + /** @name XcmV2WeightLimit (272) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; readonly asLimited: Compact; readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (274) */ + /** @name XcmV3Xcm (273) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (276) */ + /** @name XcmV3Instruction (275) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3589,7 +3599,7 @@ declare module "@polkadot/types/lookup" { | "AliasOrigin" | "UnpaidExecution"; } - /** @name XcmV3Response (277) */ + /** @name XcmV3Response (276) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3610,7 +3620,7 @@ declare module "@polkadot/types/lookup" { | "PalletsInfo" | "DispatchResult"; } - /** @name XcmV3PalletInfo (279) */ + /** @name XcmV3PalletInfo (278) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3619,13 +3629,13 @@ declare module "@polkadot/types/lookup" { readonly minor: Compact; readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (283) */ + /** @name XcmV3QueryResponseInfo (282) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (284) */ + /** @name XcmV3MultiassetMultiAssetFilter (283) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3633,7 +3643,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV3MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (285) */ + /** @name XcmV3MultiassetWildMultiAsset (284) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3651,7 +3661,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (286) */ + /** @name XcmV3MultiassetWildFungibility (285) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; @@ -4321,20 +4331,14 @@ declare module "@polkadot/types/lookup" { /** @name SpRuntimeMultiSignature (331) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; - readonly asEd25519: SpCoreEd25519Signature; + readonly asEd25519: U8aFixed; readonly isSr25519: boolean; - readonly asSr25519: SpCoreSr25519Signature; + readonly asSr25519: U8aFixed; readonly isEcdsa: boolean; - readonly asEcdsa: SpCoreEcdsaSignature; + readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name SpCoreEd25519Signature (332) */ - interface SpCoreEd25519Signature extends U8aFixed {} - /** @name SpCoreSr25519Signature (334) */ - interface SpCoreSr25519Signature extends U8aFixed {} - /** @name SpCoreEcdsaSignature (335) */ - interface SpCoreEcdsaSignature extends U8aFixed {} - /** @name PalletNftsPreSignedAttributes (337) */ + /** @name PalletNftsPreSignedAttributes (334) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4342,17 +4346,17 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletSudoError (338) */ + /** @name PalletSudoError (335) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (341) */ + /** @name PalletCollatorSelectionCandidateInfo (338) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (343) */ + /** @name PalletCollatorSelectionError (340) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4390,9 +4394,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (347) */ + /** @name SpCoreCryptoKeyTypeId (344) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (348) */ + /** @name PalletSessionError (345) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4406,7 +4410,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (357) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (354) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4414,26 +4418,26 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (358) */ + /** @name CumulusPalletXcmpQueueOutboundState (355) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (360) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (357) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (361) */ + /** @name CumulusPalletXcmpQueueError (358) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (362) */ + /** @name PalletXcmQueryStatus (359) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4454,7 +4458,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (366) */ + /** @name XcmVersionedResponse (363) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4464,7 +4468,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (372) */ + /** @name PalletXcmVersionMigrationStage (369) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4477,7 +4481,7 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (375) */ + /** @name XcmVersionedAssetId (372) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4485,14 +4489,14 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4AssetAssetId; readonly type: "V3" | "V4"; } - /** @name PalletXcmRemoteLockedFungibleRecord (376) */ + /** @name PalletXcmRemoteLockedFungibleRecord (373) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; readonly locker: XcmVersionedLocation; readonly consumers: Vec>; } - /** @name PalletXcmError (383) */ + /** @name PalletXcmError (380) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4519,6 +4523,8 @@ declare module "@polkadot/types/lookup" { readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; + readonly isUnableToDecode: boolean; + readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4544,9 +4550,11 @@ declare module "@polkadot/types/lookup" { | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete"; + | "LocalExecutionIncomplete" + | "UnableToDecode" + | "XcmTooLarge"; } - /** @name PalletMessageQueueBookState (384) */ + /** @name PalletMessageQueueBookState (381) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4555,12 +4563,12 @@ declare module "@polkadot/types/lookup" { readonly messageCount: u64; readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (386) */ + /** @name PalletMessageQueueNeighbours (383) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (388) */ + /** @name PalletMessageQueuePage (385) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4569,7 +4577,7 @@ declare module "@polkadot/types/lookup" { readonly last: u32; readonly heap: Bytes; } - /** @name PalletMessageQueueError (390) */ + /** @name PalletMessageQueueError (387) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4591,7 +4599,7 @@ declare module "@polkadot/types/lookup" { | "QueuePaused" | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (392) */ + /** @name PalletStorageProvidersStorageProvider (389) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4599,7 +4607,7 @@ declare module "@polkadot/types/lookup" { readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (393) */ + /** @name PalletStorageProvidersBackupStorageProvider (390) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4610,7 +4618,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (394) */ + /** @name PalletStorageProvidersMainStorageProvider (391) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4621,7 +4629,7 @@ declare module "@polkadot/types/lookup" { readonly ownerAccount: AccountId32; readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (396) */ + /** @name PalletStorageProvidersBucket (393) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4630,7 +4638,7 @@ declare module "@polkadot/types/lookup" { readonly readAccessGroupId: Option; readonly size_: u64; } - /** @name PalletStorageProvidersError (399) */ + /** @name PalletStorageProvidersError (396) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4688,7 +4696,7 @@ declare module "@polkadot/types/lookup" { | "InvalidEncodedAccountId" | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (400) */ + /** @name PalletFileSystemStorageRequestMetadata (397) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4703,15 +4711,15 @@ declare module "@polkadot/types/lookup" { readonly bspsConfirmed: u32; readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (405) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (402) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (414) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (411) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (415) */ + /** @name PalletFileSystemError (412) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -4829,7 +4837,7 @@ declare module "@polkadot/types/lookup" { | "BspDataServersExceeded" | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (422) */ + /** @name PalletProofsDealerError (419) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -4877,26 +4885,26 @@ declare module "@polkadot/types/lookup" { | "FailedToUpdateProviderAfterKeyRemoval" | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (425) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (422) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (426) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (423) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (427) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (424) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (428) */ + /** @name PalletPaymentStreamsError (425) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -4932,7 +4940,7 @@ declare module "@polkadot/types/lookup" { | "UserNotFlaggedAsWithoutFunds" | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (429) */ + /** @name PalletBucketNftsError (426) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -4944,7 +4952,7 @@ declare module "@polkadot/types/lookup" { | "NoCorrespondingCollection" | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (430) */ + /** @name PalletNftsCollectionDetails (427) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -4953,52 +4961,52 @@ declare module "@polkadot/types/lookup" { readonly itemConfigs: u32; readonly attributes: u32; } - /** @name PalletNftsCollectionRole (435) */ + /** @name PalletNftsCollectionRole (432) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; readonly isAdmin: boolean; readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (436) */ + /** @name PalletNftsItemDetails (433) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (437) */ + /** @name PalletNftsItemDeposit (434) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (442) */ + /** @name PalletNftsCollectionMetadata (439) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (443) */ + /** @name PalletNftsItemMetadata (440) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (444) */ + /** @name PalletNftsItemMetadataDeposit (441) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (447) */ + /** @name PalletNftsAttributeDeposit (444) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (451) */ + /** @name PalletNftsPendingSwap (448) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; readonly price: Option; readonly deadline: u32; } - /** @name PalletNftsPalletFeature (453) */ + /** @name PalletNftsPalletFeature (450) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5006,7 +5014,7 @@ declare module "@polkadot/types/lookup" { readonly isSwaps: boolean; readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (454) */ + /** @name PalletNftsError (451) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5100,22 +5108,22 @@ declare module "@polkadot/types/lookup" { | "CollectionNotEmpty" | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (457) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (454) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (458) */ + /** @name FrameSystemExtensionsCheckSpecVersion (455) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (459) */ + /** @name FrameSystemExtensionsCheckTxVersion (456) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (460) */ + /** @name FrameSystemExtensionsCheckGenesis (457) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (463) */ + /** @name FrameSystemExtensionsCheckNonce (460) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (464) */ + /** @name FrameSystemExtensionsCheckWeight (461) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (465) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (462) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (466) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (463) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (467) */ + /** @name StorageHubRuntimeRuntime (464) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index 4a586da3a..3d28ed1f9 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -2102,7 +2102,7 @@ export default { CumulusPalletParachainSystemUnincludedSegmentAncestor: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", paraHeadHash: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** * Lookup190: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth @@ -2120,9 +2120,9 @@ export default { totalBytes: "u32" }, /** - * Lookup197: polkadot_primitives::v6::UpgradeGoAhead + * Lookup197: polkadot_primitives::v7::UpgradeGoAhead **/ - PolkadotPrimitivesV6UpgradeGoAhead: { + PolkadotPrimitivesV7UpgradeGoAhead: { _enum: ["Abort", "GoAhead"] }, /** @@ -2131,21 +2131,21 @@ export default { CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" + consumedGoAheadSignal: "Option" }, /** - * Lookup199: polkadot_primitives::v6::PersistedValidationData + * Lookup199: polkadot_primitives::v7::PersistedValidationData **/ - PolkadotPrimitivesV6PersistedValidationData: { + PolkadotPrimitivesV7PersistedValidationData: { parentHead: "Bytes", relayParentNumber: "u32", relayParentStorageRoot: "H256", maxPovSize: "u32" }, /** - * Lookup202: polkadot_primitives::v6::UpgradeRestriction + * Lookup202: polkadot_primitives::v7::UpgradeRestriction **/ - PolkadotPrimitivesV6UpgradeRestriction: { + PolkadotPrimitivesV7UpgradeRestriction: { _enum: ["Present"] }, /** @@ -2161,8 +2161,8 @@ export default { dmqMqcHead: "H256", relayDispatchQueueRemainingCapacity: "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV6AbridgedHrmpChannel)>" + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" }, /** * Lookup206: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity @@ -2172,9 +2172,9 @@ export default { remainingSize: "u32" }, /** - * Lookup209: polkadot_primitives::v6::AbridgedHrmpChannel + * Lookup209: polkadot_primitives::v7::AbridgedHrmpChannel **/ - PolkadotPrimitivesV6AbridgedHrmpChannel: { + PolkadotPrimitivesV7AbridgedHrmpChannel: { maxCapacity: "u32", maxTotalSize: "u32", maxMessageSize: "u32", @@ -2183,9 +2183,9 @@ export default { mqcHead: "Option" }, /** - * Lookup210: polkadot_primitives::v6::AbridgedHostConfiguration + * Lookup210: polkadot_primitives::v7::AbridgedHostConfiguration **/ - PolkadotPrimitivesV6AbridgedHostConfiguration: { + PolkadotPrimitivesV7AbridgedHostConfiguration: { maxCodeSize: "u32", maxHeadDataSize: "u32", maxUpwardQueueCount: "u32", @@ -2195,12 +2195,12 @@ export default { hrmpMaxMessageNumPerCandidate: "u32", validationUpgradeCooldown: "u32", validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV6AsyncBackingAsyncBackingParams" + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" }, /** - * Lookup211: polkadot_primitives::v6::async_backing::AsyncBackingParams + * Lookup211: polkadot_primitives::v7::async_backing::AsyncBackingParams **/ - PolkadotPrimitivesV6AsyncBackingAsyncBackingParams: { + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { maxCandidateDepth: "u32", allowedAncestryLen: "u32" }, @@ -2235,7 +2235,7 @@ export default { * Lookup220: cumulus_primitives_parachain_inherent::ParachainInherentData **/ CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV6PersistedValidationData", + validationData: "PolkadotPrimitivesV7PersistedValidationData", relayChainState: "SpTrieStorageProof", downwardMessages: "Vec", horizontalMessages: "BTreeMap>" @@ -2530,13 +2530,9 @@ export default { /** * Lookup258: sp_consensus_aura::sr25519::app_sr25519::Public **/ - SpConsensusAuraSr25519AppSr25519Public: "SpCoreSr25519Public", + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", /** - * Lookup259: sp_core::sr25519::Public - **/ - SpCoreSr25519Public: "[u8;32]", - /** - * Lookup260: cumulus_pallet_xcmp_queue::pallet::Call + * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call **/ CumulusPalletXcmpQueueCall: { _enum: { @@ -2564,7 +2560,7 @@ export default { } }, /** - * Lookup261: pallet_xcm::pallet::Call + * Lookup260: pallet_xcm::pallet::Call **/ PalletXcmCall: { _enum: { @@ -2628,11 +2624,19 @@ export default { claim_assets: { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" + }, + execute_blob: { + encodedMessage: "Bytes", + maxWeight: "SpWeightsWeightV2Weight" + }, + send_blob: { + dest: "XcmVersionedLocation", + encodedMessage: "Bytes" } } }, /** - * Lookup262: xcm::VersionedXcm + * Lookup261: xcm::VersionedXcm **/ XcmVersionedXcm: { _enum: { @@ -2644,11 +2648,11 @@ export default { } }, /** - * Lookup263: xcm::v2::Xcm + * Lookup262: xcm::v2::Xcm **/ XcmV2Xcm: "Vec", /** - * Lookup265: xcm::v2::Instruction + * Lookup264: xcm::v2::Instruction **/ XcmV2Instruction: { _enum: { @@ -2746,7 +2750,7 @@ export default { } }, /** - * Lookup266: xcm::v2::Response + * Lookup265: xcm::v2::Response **/ XcmV2Response: { _enum: { @@ -2757,7 +2761,7 @@ export default { } }, /** - * Lookup269: xcm::v2::traits::Error + * Lookup268: xcm::v2::traits::Error **/ XcmV2TraitsError: { _enum: { @@ -2790,7 +2794,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::MultiAssetFilter + * Lookup269: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2799,7 +2803,7 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildMultiAsset + * Lookup270: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2811,13 +2815,13 @@ export default { } }, /** - * Lookup272: xcm::v2::multiasset::WildFungibility + * Lookup271: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup273: xcm::v2::WeightLimit + * Lookup272: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2826,11 +2830,11 @@ export default { } }, /** - * Lookup274: xcm::v3::Xcm + * Lookup273: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup276: xcm::v3::Instruction + * Lookup275: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2972,7 +2976,7 @@ export default { } }, /** - * Lookup277: xcm::v3::Response + * Lookup276: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2985,7 +2989,7 @@ export default { } }, /** - * Lookup279: xcm::v3::PalletInfo + * Lookup278: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2996,7 +3000,7 @@ export default { patch: "Compact" }, /** - * Lookup283: xcm::v3::QueryResponseInfo + * Lookup282: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -3004,7 +3008,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup284: xcm::v3::multiasset::MultiAssetFilter + * Lookup283: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3013,7 +3017,7 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildMultiAsset + * Lookup284: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3031,7 +3035,7 @@ export default { } }, /** - * Lookup286: xcm::v3::multiasset::WildFungibility + * Lookup285: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] @@ -3610,25 +3614,13 @@ export default { **/ SpRuntimeMultiSignature: { _enum: { - Ed25519: "SpCoreEd25519Signature", - Sr25519: "SpCoreSr25519Signature", - Ecdsa: "SpCoreEcdsaSignature" + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" } }, /** - * Lookup332: sp_core::ed25519::Signature - **/ - SpCoreEd25519Signature: "[u8;64]", - /** - * Lookup334: sp_core::sr25519::Signature - **/ - SpCoreSr25519Signature: "[u8;64]", - /** - * Lookup335: sp_core::ecdsa::Signature - **/ - SpCoreEcdsaSignature: "[u8;65]", - /** - * Lookup337: pallet_nfts::types::PreSignedAttributes + * Lookup334: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3638,20 +3630,20 @@ export default { deadline: "u32" }, /** - * Lookup338: pallet_sudo::pallet::Error + * Lookup335: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup341: pallet_collator_selection::pallet::CandidateInfo + * Lookup338: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup343: pallet_collator_selection::pallet::Error + * Lookup340: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3675,17 +3667,17 @@ export default { ] }, /** - * Lookup347: sp_core::crypto::KeyTypeId + * Lookup344: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup348: pallet_session::pallet::Error + * Lookup345: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup357: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3695,13 +3687,13 @@ export default { lastIndex: "u16" }, /** - * Lookup358: cumulus_pallet_xcmp_queue::OutboundState + * Lookup355: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup360: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3709,13 +3701,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup361: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup362: pallet_xcm::pallet::QueryStatus + * Lookup359: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3736,7 +3728,7 @@ export default { } }, /** - * Lookup366: xcm::VersionedResponse + * Lookup363: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3748,7 +3740,7 @@ export default { } }, /** - * Lookup372: pallet_xcm::pallet::VersionMigrationStage + * Lookup369: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3759,7 +3751,7 @@ export default { } }, /** - * Lookup375: xcm::VersionedAssetId + * Lookup372: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3771,7 +3763,7 @@ export default { } }, /** - * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3780,7 +3772,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup383: pallet_xcm::pallet::Error + * Lookup380: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3808,11 +3800,13 @@ export default { "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete" + "LocalExecutionIncomplete", + "UnableToDecode", + "XcmTooLarge" ] }, /** - * Lookup384: pallet_message_queue::BookState + * Lookup381: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3826,14 +3820,14 @@ export default { size_: "u64" }, /** - * Lookup386: pallet_message_queue::Neighbours + * Lookup383: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup388: pallet_message_queue::Page + * Lookup385: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3844,7 +3838,7 @@ export default { heap: "Bytes" }, /** - * Lookup390: pallet_message_queue::pallet::Error + * Lookup387: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3860,7 +3854,7 @@ export default { ] }, /** - * Lookup392: pallet_storage_providers::types::StorageProvider + * Lookup389: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3869,7 +3863,7 @@ export default { } }, /** - * Lookup393: pallet_storage_providers::types::BackupStorageProvider + * Lookup390: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3882,7 +3876,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup394: pallet_storage_providers::types::MainStorageProvider + * Lookup391: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3895,7 +3889,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup396: pallet_storage_providers::types::Bucket + * Lookup393: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3909,7 +3903,7 @@ export default { size_: "u64" }, /** - * Lookup399: pallet_storage_providers::pallet::Error + * Lookup396: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3943,7 +3937,7 @@ export default { ] }, /** - * Lookup400: pallet_file_system::types::StorageRequestMetadata + * Lookup397: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3963,19 +3957,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup405: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup402: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup414: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup411: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup415: pallet_file_system::pallet::Error + * Lookup412: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4039,7 +4033,7 @@ export default { ] }, /** - * Lookup422: pallet_proofs_dealer::pallet::Error + * Lookup419: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4068,7 +4062,7 @@ export default { ] }, /** - * Lookup425: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup422: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4077,7 +4071,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup426: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup423: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4086,14 +4080,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup427: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup424: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup428: pallet_payment_streams::pallet::Error + * Lookup425: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4116,7 +4110,7 @@ export default { ] }, /** - * Lookup429: pallet_bucket_nfts::pallet::Error + * Lookup426: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4127,7 +4121,7 @@ export default { ] }, /** - * Lookup430: pallet_nfts::types::CollectionDetails + * Lookup427: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4138,13 +4132,13 @@ export default { attributes: "u32" }, /** - * Lookup435: pallet_nfts::types::CollectionRole + * Lookup432: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup436: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup433: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4152,42 +4146,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup437: pallet_nfts::types::ItemDeposit + * Lookup434: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup442: pallet_nfts::types::CollectionMetadata + * Lookup439: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup443: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup440: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup444: pallet_nfts::types::ItemMetadataDeposit + * Lookup441: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup447: pallet_nfts::types::AttributeDeposit + * Lookup444: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup451: pallet_nfts::types::PendingSwap, Deadline> + * Lookup448: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4196,7 +4190,7 @@ export default { deadline: "u32" }, /** - * Lookup453: pallet_nfts::types::PalletFeature + * Lookup450: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4212,7 +4206,7 @@ export default { ] }, /** - * Lookup454: pallet_nfts::pallet::Error + * Lookup451: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4264,39 +4258,39 @@ export default { ] }, /** - * Lookup457: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup454: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup458: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup455: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup459: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup456: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup460: frame_system::extensions::check_genesis::CheckGenesis + * Lookup457: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup463: frame_system::extensions::check_nonce::CheckNonce + * Lookup460: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup464: frame_system::extensions::check_weight::CheckWeight + * Lookup461: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup465: pallet_transaction_payment::ChargeTransactionPayment + * Lookup462: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup466: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup463: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup467: storage_hub_runtime::Runtime + * Lookup464: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index eb0e03625..6771c21d0 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -2720,7 +2720,7 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (190) */ @@ -2739,8 +2739,8 @@ declare module "@polkadot/types/lookup" { readonly totalBytes: u32; } - /** @name PolkadotPrimitivesV6UpgradeGoAhead (197) */ - interface PolkadotPrimitivesV6UpgradeGoAhead extends Enum { + /** @name PolkadotPrimitivesV7UpgradeGoAhead (197) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { readonly isAbort: boolean; readonly isGoAhead: boolean; readonly type: "Abort" | "GoAhead"; @@ -2750,19 +2750,19 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; + readonly consumedGoAheadSignal: Option; } - /** @name PolkadotPrimitivesV6PersistedValidationData (199) */ - interface PolkadotPrimitivesV6PersistedValidationData extends Struct { + /** @name PolkadotPrimitivesV7PersistedValidationData (199) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { readonly parentHead: Bytes; readonly relayParentNumber: u32; readonly relayParentStorageRoot: H256; readonly maxPovSize: u32; } - /** @name PolkadotPrimitivesV6UpgradeRestriction (202) */ - interface PolkadotPrimitivesV6UpgradeRestriction extends Enum { + /** @name PolkadotPrimitivesV7UpgradeRestriction (202) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { readonly isPresent: boolean; readonly type: "Present"; } @@ -2776,8 +2776,8 @@ declare module "@polkadot/types/lookup" { interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { readonly dmqMqcHead: H256; readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; } /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (206) */ @@ -2787,8 +2787,8 @@ declare module "@polkadot/types/lookup" { readonly remainingSize: u32; } - /** @name PolkadotPrimitivesV6AbridgedHrmpChannel (209) */ - interface PolkadotPrimitivesV6AbridgedHrmpChannel extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (209) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { readonly maxCapacity: u32; readonly maxTotalSize: u32; readonly maxMessageSize: u32; @@ -2797,8 +2797,8 @@ declare module "@polkadot/types/lookup" { readonly mqcHead: Option; } - /** @name PolkadotPrimitivesV6AbridgedHostConfiguration (210) */ - interface PolkadotPrimitivesV6AbridgedHostConfiguration extends Struct { + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (210) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { readonly maxCodeSize: u32; readonly maxHeadDataSize: u32; readonly maxUpwardQueueCount: u32; @@ -2808,11 +2808,11 @@ declare module "@polkadot/types/lookup" { readonly hrmpMaxMessageNumPerCandidate: u32; readonly validationUpgradeCooldown: u32; readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV6AsyncBackingAsyncBackingParams; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; } - /** @name PolkadotPrimitivesV6AsyncBackingAsyncBackingParams (211) */ - interface PolkadotPrimitivesV6AsyncBackingAsyncBackingParams extends Struct { + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (211) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { readonly maxCandidateDepth: u32; readonly allowedAncestryLen: u32; } @@ -2851,7 +2851,7 @@ declare module "@polkadot/types/lookup" { /** @name CumulusPrimitivesParachainInherentParachainInherentData (220) */ interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV6PersistedValidationData; + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; readonly relayChainState: SpTrieStorageProof; readonly downwardMessages: Vec; readonly horizontalMessages: BTreeMap>; @@ -3133,12 +3133,9 @@ declare module "@polkadot/types/lookup" { } /** @name SpConsensusAuraSr25519AppSr25519Public (258) */ - interface SpConsensusAuraSr25519AppSr25519Public extends SpCoreSr25519Public {} + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name SpCoreSr25519Public (259) */ - interface SpCoreSr25519Public extends U8aFixed {} - - /** @name CumulusPalletXcmpQueueCall (260) */ + /** @name CumulusPalletXcmpQueueCall (259) */ interface CumulusPalletXcmpQueueCall extends Enum { readonly isSuspendXcmExecution: boolean; readonly isResumeXcmExecution: boolean; @@ -3162,7 +3159,7 @@ declare module "@polkadot/types/lookup" { | "UpdateResumeThreshold"; } - /** @name PalletXcmCall (261) */ + /** @name PalletXcmCall (260) */ interface PalletXcmCall extends Enum { readonly isSend: boolean; readonly asSend: { @@ -3238,6 +3235,16 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; + readonly isExecuteBlob: boolean; + readonly asExecuteBlob: { + readonly encodedMessage: Bytes; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSendBlob: boolean; + readonly asSendBlob: { + readonly dest: XcmVersionedLocation; + readonly encodedMessage: Bytes; + } & Struct; readonly type: | "Send" | "TeleportAssets" @@ -3251,10 +3258,12 @@ declare module "@polkadot/types/lookup" { | "LimitedTeleportAssets" | "ForceSuspension" | "TransferAssets" - | "ClaimAssets"; + | "ClaimAssets" + | "ExecuteBlob" + | "SendBlob"; } - /** @name XcmVersionedXcm (262) */ + /** @name XcmVersionedXcm (261) */ interface XcmVersionedXcm extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Xcm; @@ -3265,10 +3274,10 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name XcmV2Xcm (263) */ + /** @name XcmV2Xcm (262) */ interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (265) */ + /** @name XcmV2Instruction (264) */ interface XcmV2Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; @@ -3416,7 +3425,7 @@ declare module "@polkadot/types/lookup" { | "UnsubscribeVersion"; } - /** @name XcmV2Response (266) */ + /** @name XcmV2Response (265) */ interface XcmV2Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3428,7 +3437,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; } - /** @name XcmV2TraitsError (269) */ + /** @name XcmV2TraitsError (268) */ interface XcmV2TraitsError extends Enum { readonly isOverflow: boolean; readonly isUnimplemented: boolean; @@ -3487,7 +3496,7 @@ declare module "@polkadot/types/lookup" { | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (270) */ + /** @name XcmV2MultiassetMultiAssetFilter (269) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3496,7 +3505,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (271) */ + /** @name XcmV2MultiassetWildMultiAsset (270) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3507,14 +3516,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (272) */ + /** @name XcmV2MultiassetWildFungibility (271) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (273) */ + /** @name XcmV2WeightLimit (272) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; @@ -3522,10 +3531,10 @@ declare module "@polkadot/types/lookup" { readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (274) */ + /** @name XcmV3Xcm (273) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (276) */ + /** @name XcmV3Instruction (275) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3755,7 +3764,7 @@ declare module "@polkadot/types/lookup" { | "UnpaidExecution"; } - /** @name XcmV3Response (277) */ + /** @name XcmV3Response (276) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3777,7 +3786,7 @@ declare module "@polkadot/types/lookup" { | "DispatchResult"; } - /** @name XcmV3PalletInfo (279) */ + /** @name XcmV3PalletInfo (278) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3787,14 +3796,14 @@ declare module "@polkadot/types/lookup" { readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (283) */ + /** @name XcmV3QueryResponseInfo (282) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (284) */ + /** @name XcmV3MultiassetMultiAssetFilter (283) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3803,7 +3812,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (285) */ + /** @name XcmV3MultiassetWildMultiAsset (284) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3822,7 +3831,7 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (286) */ + /** @name XcmV3MultiassetWildFungibility (285) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; @@ -4514,24 +4523,15 @@ declare module "@polkadot/types/lookup" { /** @name SpRuntimeMultiSignature (331) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; - readonly asEd25519: SpCoreEd25519Signature; + readonly asEd25519: U8aFixed; readonly isSr25519: boolean; - readonly asSr25519: SpCoreSr25519Signature; + readonly asSr25519: U8aFixed; readonly isEcdsa: boolean; - readonly asEcdsa: SpCoreEcdsaSignature; + readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name SpCoreEd25519Signature (332) */ - interface SpCoreEd25519Signature extends U8aFixed {} - - /** @name SpCoreSr25519Signature (334) */ - interface SpCoreSr25519Signature extends U8aFixed {} - - /** @name SpCoreEcdsaSignature (335) */ - interface SpCoreEcdsaSignature extends U8aFixed {} - - /** @name PalletNftsPreSignedAttributes (337) */ + /** @name PalletNftsPreSignedAttributes (334) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4540,19 +4540,19 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletSudoError (338) */ + /** @name PalletSudoError (335) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (341) */ + /** @name PalletCollatorSelectionCandidateInfo (338) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (343) */ + /** @name PalletCollatorSelectionError (340) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4591,10 +4591,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (347) */ + /** @name SpCoreCryptoKeyTypeId (344) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (348) */ + /** @name PalletSessionError (345) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4609,7 +4609,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (357) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (354) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4618,21 +4618,21 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (358) */ + /** @name CumulusPalletXcmpQueueOutboundState (355) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (360) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (357) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (361) */ + /** @name CumulusPalletXcmpQueueError (358) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -4640,7 +4640,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (362) */ + /** @name PalletXcmQueryStatus (359) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4662,7 +4662,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (366) */ + /** @name XcmVersionedResponse (363) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4673,7 +4673,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (372) */ + /** @name PalletXcmVersionMigrationStage (369) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4687,7 +4687,7 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (375) */ + /** @name XcmVersionedAssetId (372) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -4696,7 +4696,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V3" | "V4"; } - /** @name PalletXcmRemoteLockedFungibleRecord (376) */ + /** @name PalletXcmRemoteLockedFungibleRecord (373) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; @@ -4704,7 +4704,7 @@ declare module "@polkadot/types/lookup" { readonly consumers: Vec>; } - /** @name PalletXcmError (383) */ + /** @name PalletXcmError (380) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4731,6 +4731,8 @@ declare module "@polkadot/types/lookup" { readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; + readonly isUnableToDecode: boolean; + readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4756,10 +4758,12 @@ declare module "@polkadot/types/lookup" { | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete"; + | "LocalExecutionIncomplete" + | "UnableToDecode" + | "XcmTooLarge"; } - /** @name PalletMessageQueueBookState (384) */ + /** @name PalletMessageQueueBookState (381) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4769,13 +4773,13 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (386) */ + /** @name PalletMessageQueueNeighbours (383) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (388) */ + /** @name PalletMessageQueuePage (385) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4785,7 +4789,7 @@ declare module "@polkadot/types/lookup" { readonly heap: Bytes; } - /** @name PalletMessageQueueError (390) */ + /** @name PalletMessageQueueError (387) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4808,7 +4812,7 @@ declare module "@polkadot/types/lookup" { | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (392) */ + /** @name PalletStorageProvidersStorageProvider (389) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4817,7 +4821,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (393) */ + /** @name PalletStorageProvidersBackupStorageProvider (390) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4829,7 +4833,7 @@ declare module "@polkadot/types/lookup" { readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (394) */ + /** @name PalletStorageProvidersMainStorageProvider (391) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4841,7 +4845,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (396) */ + /** @name PalletStorageProvidersBucket (393) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4851,7 +4855,7 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletStorageProvidersError (399) */ + /** @name PalletStorageProvidersError (396) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4910,7 +4914,7 @@ declare module "@polkadot/types/lookup" { | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (400) */ + /** @name PalletFileSystemStorageRequestMetadata (397) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4926,17 +4930,17 @@ declare module "@polkadot/types/lookup" { readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (405) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (402) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (414) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (411) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (415) */ + /** @name PalletFileSystemError (412) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -5055,7 +5059,7 @@ declare module "@polkadot/types/lookup" { | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (422) */ + /** @name PalletProofsDealerError (419) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -5104,7 +5108,7 @@ declare module "@polkadot/types/lookup" { | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (425) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (422) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; @@ -5112,7 +5116,7 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (426) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (423) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; @@ -5120,13 +5124,13 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (427) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (424) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (428) */ + /** @name PalletPaymentStreamsError (425) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5163,7 +5167,7 @@ declare module "@polkadot/types/lookup" { | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (429) */ + /** @name PalletBucketNftsError (426) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -5176,7 +5180,7 @@ declare module "@polkadot/types/lookup" { | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (430) */ + /** @name PalletNftsCollectionDetails (427) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -5186,7 +5190,7 @@ declare module "@polkadot/types/lookup" { readonly attributes: u32; } - /** @name PalletNftsCollectionRole (435) */ + /** @name PalletNftsCollectionRole (432) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; @@ -5194,44 +5198,44 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (436) */ + /** @name PalletNftsItemDetails (433) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (437) */ + /** @name PalletNftsItemDeposit (434) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (442) */ + /** @name PalletNftsCollectionMetadata (439) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (443) */ + /** @name PalletNftsItemMetadata (440) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (444) */ + /** @name PalletNftsItemMetadataDeposit (441) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (447) */ + /** @name PalletNftsAttributeDeposit (444) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (451) */ + /** @name PalletNftsPendingSwap (448) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; @@ -5239,7 +5243,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletNftsPalletFeature (453) */ + /** @name PalletNftsPalletFeature (450) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5248,7 +5252,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (454) */ + /** @name PalletNftsError (451) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5343,30 +5347,30 @@ declare module "@polkadot/types/lookup" { | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (457) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (454) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (458) */ + /** @name FrameSystemExtensionsCheckSpecVersion (455) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (459) */ + /** @name FrameSystemExtensionsCheckTxVersion (456) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (460) */ + /** @name FrameSystemExtensionsCheckGenesis (457) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (463) */ + /** @name FrameSystemExtensionsCheckNonce (460) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (464) */ + /** @name FrameSystemExtensionsCheckWeight (461) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (465) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (462) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (466) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (463) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (467) */ + /** @name StorageHubRuntimeRuntime (464) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 35db63bb6..9970841c0 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e5107000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876365c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876364c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087636644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f72207468655c706f73736962696c696c7479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400110401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400150401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400ad0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b10401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400cd0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d50401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e10401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c6963000004000d04013c737232353531393a3a5075626c696300000d040c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d000011040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001341073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676519040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d6573736167657d0401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e64206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e6420746865206173736574732073656e74206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e000400001d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400210401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000210400000225040025040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736529040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e000e003445786368616e6765417373657408011067697665390401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473390401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473390401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473390401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000029040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c7404002d0401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e000300002d0404184f7074696f6e0404540131040108104e6f6e6500000010536f6d65040031040000010000310400000408103504003504100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003904100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003d04013857696c644d756c74694173736574000100003d04100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e4104013c57696c6446756e676962696c697479000100004104100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000045040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000049040c0c78636d0876330c58636d041043616c6c000004004d0401585665633c496e737472756374696f6e3c43616c6c3e3e00004d0400000251040051040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004904012458636d3c43616c6c3e0015002c536574417070656e64697804004904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000055040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040059040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d04045300000400650401185665633c543e00005d040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000061040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000065040000025d0400690404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd0100000100006d040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400007104100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007504013857696c644d756c74694173736574000100007504100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7904013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7904013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007904100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007d04080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204008104015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304009104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009d04015076343a3a58636d3c52756e74696d6543616c6c3e0004000081040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400850401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000850400000289040089040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736529040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c8d040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e000e003445786368616e6765417373657408011067697665390401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473390401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473390401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473390401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008104014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804008104014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b00008d040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000091040c0c78636d0876330c58636d041043616c6c00000400950401585665633c496e737472756374696f6e3c43616c6c3e3e0000950400000299040099040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8d04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009104012458636d3c43616c6c3e0015002c536574417070656e64697804009104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00009d040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400a10401585665633c496e737472756374696f6e3c43616c6c3e3e0000a104000002a50400a5040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8d04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009d04012458636d3c43616c6c3e0015002c536574417070656e64697804009d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a9040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b5040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b90401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673bd04013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c90401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000bd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c104045300000400c50401185665633c543e0000c1040000040834390200c504000002c10400c90404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000cd040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d9040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd0404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e1040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730505013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461090501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967110501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e9040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731905017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f1040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f904015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731d05019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746129050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174614505016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e9040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f10401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401ed04000400300144436f6c6c656374696f6e53657474696e670000ed040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f1040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f50401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f90401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773fd0401304974656d53657474696e67730000f5040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f90404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000fd040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401010500040030012c4974656d53657474696e67000001050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000005050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000090504184f7074696f6e040454010d050108104e6f6e6500000010536f6d6504000d0500000100000d050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e000011050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773fd0401304974656d53657474696e67730000150504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e103000001000019050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c75333200001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012105045300000400250501185665633c543e000021050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000250500000221050029050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e00002d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040031050148656432353531393a3a5369676e61747572650000001c53723235353139040039050148737232353531393a3a5369676e617475726500010014456364736104003d05014065636473613a3a5369676e61747572650002000031050c1c73705f636f72651c65643235353139245369676e617475726500000400350501205b75383b2036345d0000350500000340000000080039050c1c73705f636f72651c73723235353139245369676e617475726500000400350501205b75383b2036345d00003d050c1c73705f636f7265146563647361245369676e6174757265000004004105017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000410500000341000000080045050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000049050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e4d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000051050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015505045300000400590501185665633c543e000055050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000059050000025505005d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6105000002650500650500000408000504006905000004086d0538006d050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000071050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e75050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400790501185665633c543e000079050000020904007d05084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400008105000004087d05100085050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008905012c42547265655365743c543e000089050420425472656553657404045401e9010004008d050000008d05000002e9010091050000029505009505086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465990501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600009905086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e646564000100009d0500000408e901e90200a105086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000a5050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea9050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572ad0501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679b10501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365b905014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000ad0504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000b10504184f7074696f6e04045401b5050108104e6f6e6500000010536f6d650400b5050000010000b50500000408080800b905080c78636d4456657273696f6e6564526573706f6e736500010c08563204002904013076323a3a526573706f6e736500020008563304005504013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000bd050000040810d90100c1050000040c30281000c5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c905045300000400cd0501185665633c543e0000c90500000408d9011000cd05000002c90500d1050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400d505013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000d50504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000d9050000040c1000dd0500dd05080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000e1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273e50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e90500000408981800ed05000002e90500f1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f505045300000400f90501185665633c543e0000f5050000040818d90100f905000002f50500fd050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0106085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273050601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000050604184f7074696f6e0404540109060108104e6f6e6500000010536f6d650400090600000100000906085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e00000d0600000408e50110001106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561701506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000015060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d06000004082106100021060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400250601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400290601584d61696e53746f7261676550726f76696465723c543e0001000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000029060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574732d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013106045300000400350601185665633c543e000031060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000350600000231060039060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00003d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6741060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370450601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370734d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000450604184f7074696f6e0404540149060108104e6f6e6500000010536f6d650400490600000100004906000004083420004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060000040834340055060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016106045300000400650601185665633c543e0000610600000408003400650600000261060069060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151060453000004006d0601185665633c543e00006d0600000251060071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151060453000004006d0601185665633c543e000075060000040810300079060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400007d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81060000040810340085060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000089060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e00008d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004009106012c42547265655365743c543e000091060420425472656553657404045401340004001d0200000095060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000099060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0600000408341000a10600000408340000a5060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a9060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000ad060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000b1060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67b5060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb9060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000bd060000040c00101000c10600000408001000c50600000408100000c9060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401cd06000400080138436f6c6c656374696f6e526f6c650000cd060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000d1060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401d50624417070726f76616c7301d906000c01146f776e65720001244163636f756e744964000124617070726f76616c73d9060124417070726f76616c7300011c6465706f736974d506011c4465706f7369740000d5060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000d9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400dd06013842547265654d61703c4b2c20563e0000dd06042042547265654d617008044b01000456011102000400e106000000e106000002e50600e5060000040800110200e9060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000ed060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401f1062c537472696e674c696d6974000008011c6465706f736974f106011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000f1060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f506000004101011028502810200f906000004087902fd0600fd060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000010700000408189c0005070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004000907012c42547265655365743c543e00000907042042547265655365740404540100000400a40000000d070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000011070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401150700040030013450616c6c657446656174757265000015070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000019070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e6174757265012d0514457874726101210700040038000000210700000424250729072d07310735073d0741074507490700250710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000290710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000002d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000310710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000350710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003907010c45726100003907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00003d0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000410710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000004507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000490708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004d07084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200ad03040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f5030190000149050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c657301004d0504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010051050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015d05151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010061050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405690500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800017105161041757261011041757261082c417574686f726974696573010075050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f7401007d052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000000171c41757261457874011c41757261457874082c417574686f72697469657301007505040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000810504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010085050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010091050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802059d0538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100a105302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01110401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e01a5051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230a9050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502bd0510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502bd0530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502bd05c10504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100c50504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000d1050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202d905e105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200f105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01150401b00001fd051f2843756d756c757358636d0001a90401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501010674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805050d0611060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01ad0401e1010c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e011906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023429060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402343106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234390604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023425060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b10401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023441060400004853746f7261676552657175657374427370730001080202510655060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202510698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402105906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402106906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200710604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020251067506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020251067906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202510698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b504010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017d06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020281069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501008506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501008906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402108d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01cd040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f9506100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0199062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300009d060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300009d060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d10401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d730001080202a106a50604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d730001080202a106a90604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234ad0650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d504016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01b1062c284275636b65744e6674730001d9040171020001b5062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210b906040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202bd0698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202c1069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202c506c906040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102d106040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210e90604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102ed0604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202f506f906040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a1020107040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102050704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a1020d070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e5040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10211050400044c20436f6e666967206f6620616e206974656d2e01e1040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573110720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e011907321d07042448436865636b4e6f6e5a65726f53656e64657225079840436865636b5370656356657273696f6e29071038436865636b547856657273696f6e2d071030436865636b47656e6573697331073438436865636b4d6f7274616c69747935073428436865636b4e6f6e63653d07982c436865636b576569676874410798604368617267655472616e73616374696f6e5061796d656e744507985053746f726167655765696768745265636c61696d4907984d07","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e4507000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400ad0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b10401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400cd0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d50401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e10401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c04045400013c1073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e00000455015741524e494e473a20444550524543415445442e206073656e64602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e20557365206073656e645f626c6f626020696e73746561642e3c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428011857656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e0049015741524e494e473a20444550524543415445442e206065786563757465602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e205573652060657865637574655f626c6f626020696e73746561642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e30657865637574655f626c6f6208013c656e636f6465645f6d657373616765a5040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e0001286d61785f776569676874280118576569676874000d28b04578656375746520616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004501416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220746865206d65737361676520636f756c6420626520657865637574656420636f6d706c6574656c79486f72206f6e6c79207061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e2473656e645f626c6f6208011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00013c656e636f6465645f6d657373616765a5040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e000e18a453656e6420616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e0055015468652064657374696e6174696f6e2c206064657374602c2077696c6c20726563656976652074686973206d65737361676520776974682061206044657363656e644f726967696e6020696e737472756374696f6e090174686174206d616b657320746865206f726967696e206f6620746865206d65737361676520626520746865206f726967696e206f6e20746869732073797374656d2e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a9040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b5040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b90401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673bd04013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c90401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000bd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c104045300000400c50401185665633c543e0000c1040000040834390200c504000002c10400c90404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000cd040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d9040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd0404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e1040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730505013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461090501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967110501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e9040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731905017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f1040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f904015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731d05019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746129050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613905016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e9040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f10401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401ed04000400300144436f6c6c656374696f6e53657474696e670000ed040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f1040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f50401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f90401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773fd0401304974656d53657474696e67730000f5040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f90404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000fd040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401010500040030012c4974656d53657474696e67000001050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000005050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000090504184f7074696f6e040454010d050108104e6f6e6500000010536f6d6504000d0500000100000d050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e000011050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773fd0401304974656d53657474696e67730000150504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e103000001000019050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c75333200001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012105045300000400250501185665633c543e000021050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000250500000221050029050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e00002d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040031050148656432353531393a3a5369676e61747572650000001c53723235353139040031050148737232353531393a3a5369676e617475726500010014456364736104003505014065636473613a3a5369676e6174757265000200003105000003400000000800350500000341000000080039050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e6500003d050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e41050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000045050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540149050453000004004d0501185665633c543e000049050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e636500004d0500000249050051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5505000002590500590500000408000504005d05000004086105380061050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000065050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e69050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540109040453000004006d0501185665633c543e00006d050000020904007105084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007505000004087105100079050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007d05012c42547265655365743c543e00007d050420425472656553657404045401e90100040081050000008105000002e9010085050000028905008905086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e901011850617261496400011473746174658d0501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600008d05086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000910500000408e901e902009505086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000099050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a10501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a50501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365ad05014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a10504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a50504184f7074696f6e04045401a9050108104e6f6e6500000010536f6d650400a9050000010000a90500000408080800ad05080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b1050000040810d90100b5050000040c30281000b9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd05045300000400c10501185665633c543e0000bd0500000408d9011000c105000002bd0500c5050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c905013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c90504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000cd050000040c1000d10500d105080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000d5050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d90501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400e10501185665633c543e0000dd0500000408981800e105000002dd0500e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e9050000040818d90100ed05000002e90500f1050c2870616c6c65745f78636d1870616c6c6574144572726f7204045400016c2c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e38556e61626c65546f4465636f646500190454436f756c64206e6f74206465636f64652058434d2e2c58636d546f6f4c61726765001a088058434d20656e636f646564206c656e67746820697320746f6f206c617267652e1d0152657475726e6564207768656e20616e2058434d20656e636f646564206c656e677468206973206c6172676572207468616e20604d617858636d456e636f64656453697a65602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef505085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f90501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f90504184f7074696f6e04045401fd050108104e6f6e6500000010536f6d650400fd050000010000fd05085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000010600000408e50110000506085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700906019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000009060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1106000004081506100015060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400190601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f766964657204001d0601584d61696e53746f7261676550726f76696465723c543e0001000019060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e00001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473210601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000021060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012506045300000400290601185665633c543e000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000029060000022506002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000031060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6735060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370390601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073410601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000390604184f7074696f6e040454013d060108104e6f6e6500000010536f6d6504003d0600000100003d060000040834200041060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000045060000040834340049060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015506045300000400590601185665633c543e000055060000040800340059060000025506005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e0000610600000245060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e00006906000004081030006d060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000071060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75060000040810340079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000081060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008506012c42547265655365743c543e000085060420425472656553657404045401340004001d0200000089060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200008d060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91060000040834100095060000040834000099060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a9060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b1060000040c00101000b50600000408001000b90600000408100000bd060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c106000400080138436f6c6c656374696f6e526f6c650000c1060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c5060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c90624417070726f76616c7301cd06000c01146f776e65720001244163636f756e744964000124617070726f76616c73cd060124417070726f76616c7300011c6465706f736974c906011c4465706f7369740000c9060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000cd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400d106013842547265654d61703c4b2c20563e0000d106042042547265654d617008044b01000456011102000400d506000000d506000002d90600d9060000040800110200dd060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e5062c537472696e674c696d6974000008011c6465706f736974e506011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e5060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e906000004101011028502810200ed06000004087902f10600f1060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f50600000408189c00f9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400fd06012c42547265655365743c543e0000fd06042042547265655365740404540100000400a400000001070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000005070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401090700040030013450616c6c657446656174757265000009070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c73000400145377617073000800000d070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1107102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e6174757265012d051445787472610115070004003800000015070000042419071d072107250729073107350739073d0700190710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000250710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000290710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002d07010c45726100002d07102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000310710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000350710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003907086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e00003d0708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004107084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f503019000013d050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100410504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010045050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015105151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010055050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e6572000104055d0500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800016505161041757261011041757261082c417574686f726974696573010069050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010071052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006905040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000750504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010079050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010085050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205910538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009505302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0199051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c5175657269657300010402309d050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b10510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b10530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b105b50504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b90504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c5050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202cd05d505040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e505040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f1051f2843756d756c757358636d0001a90401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f50574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505010605060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01ad0401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c9020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010d06212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001106040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f76696465727300010402341d060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342506040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b65747300010402342d0604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023419060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b10401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013106282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023435060400004853746f7261676552657175657374427370730001080202450649060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202450698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104d06040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105106040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105d06040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200650604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020245066906040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020245066d06040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202450698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b504010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017106293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020275069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007906040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007d06040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210810604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01cd040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8906100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e018d062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000091060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000091060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d10401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029506990604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d73000108020295069d0604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a10650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d504016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a5062c284275636b65744e6674730001d9040171020001a9062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210ad06040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b10698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b5069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b906bd06040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102c506040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210dd0604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102e10604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e906ed06040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a102f506040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102f90604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a10201070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e5040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10211050400044c20436f6e666967206f6620616e206974656d2e01e1040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573050720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010d07321107042448436865636b4e6f6e5a65726f53656e64657219079840436865636b5370656356657273696f6e1d071038436865636b547856657273696f6e21071030436865636b47656e6573697325073438436865636b4d6f7274616c69747929073428436865636b4e6f6e63653107982c436865636b576569676874350798604368617267655472616e73616374696f6e5061796d656e743907985053746f726167655765696768745265636c61696d3d07984107","id":"1"} \ No newline at end of file From f4964fc34ea977fa065d6599c4cf1cfdb10f51c1 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Mon, 30 Sep 2024 18:59:37 -0300 Subject: [PATCH 17/24] chore: :label: run typegen --- Cargo.lock | 3568 +++++++++-------- api-augment/dist/interfaces/lookup.js | 138 +- api-augment/dist/interfaces/lookup.js.map | 2 +- api-augment/dist/types/interfaces/lookup.d.ts | 132 +- .../dist/types/interfaces/types-lookup.d.ts | 134 +- api-augment/src/interfaces/lookup.ts | 138 +- api-augment/src/interfaces/types-lookup.ts | 139 +- api-augment/storagehub.json | 2 +- 8 files changed, 2247 insertions(+), 2006 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f666a596..d19fa8f51 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -523,7 +523,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", "rayon", ] @@ -965,7 +965,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "log", @@ -1008,7 +1008,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes 0.11.0", - "rand", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -1182,12 +1182,12 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -1405,6 +1405,19 @@ dependencies = [ "unsigned-varint", ] +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash 0.18.1", + "serde", + "unsigned-varint", +] + [[package]] name = "cipher" version = "0.2.5" @@ -1534,6 +1547,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "comfy-table" version = "7.1.1" @@ -1806,6 +1829,21 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + [[package]] name = "crc32fast" version = "1.4.2" @@ -1920,7 +1958,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "clap", "parity-scale-codec", @@ -1929,15 +1967,15 @@ dependencies = [ "sc-client-api", "sc-service", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "url", ] [[package]] name = "cumulus-client-collator" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -1952,15 +1990,15 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-client-collator", @@ -1984,16 +2022,16 @@ dependencies = [ "sc-telemetry", "schnellru", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "tracing", @@ -2002,7 +2040,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -2020,10 +2058,10 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "substrate-prometheus-endpoint", "tracing", ] @@ -2031,22 +2069,22 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", "sp-consensus", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "cumulus-client-network" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -2060,16 +2098,16 @@ dependencies = [ "sc-client-api", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2080,20 +2118,20 @@ dependencies = [ "sc-client-api", "scale-info", "sp-api 26.0.0", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2105,19 +2143,19 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "sc-client-api", "sc-consensus", "sp-consensus", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2145,16 +2183,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-pallet-parachain-system", "frame-support 28.0.0", @@ -2163,16 +2201,16 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-benchmarking 28.0.0", @@ -2181,16 +2219,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -2209,23 +2247,23 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "staging-xcm 7.0.0", - "trie-db 0.28.0", + "trie-db 0.29.1", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2236,37 +2274,37 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", @@ -2280,10 +2318,10 @@ dependencies = [ "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -2291,63 +2329,65 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-primitives 7.0.0", "sp-api 26.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-core" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -2357,14 +2397,14 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", @@ -2373,9 +2413,9 @@ dependencies = [ "parity-scale-codec", "polkadot-runtime-common 7.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -2384,7 +2424,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2400,15 +2440,15 @@ dependencies = [ "sc-tracing", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2419,14 +2459,14 @@ dependencies = [ "sc-client-api", "sp-api 26.0.0", "sp-blockchain", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-trait", @@ -2437,7 +2477,7 @@ dependencies = [ "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-chain-api", @@ -2459,7 +2499,7 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "tokio", "tracing", @@ -2468,7 +2508,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2480,7 +2520,7 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-overseer", - "rand", + "rand 0.8.5", "sc-client-api", "sc-rpc-api", "sc-service", @@ -2492,10 +2532,10 @@ dependencies = [ "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "thiserror", "tokio", @@ -2507,15 +2547,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -3041,10 +3081,19 @@ dependencies = [ "elliptic-curve", "rfc6979", "serdect", - "signature", + "signature 2.2.0", "spki", ] +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature 1.6.4", +] + [[package]] name = "ed25519" version = "2.2.3" @@ -3052,7 +3101,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", - "signature", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.0", + "ed25519 1.5.3", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", ] [[package]] @@ -3062,7 +3125,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ "curve25519-dalek 4.1.3", - "ed25519", + "ed25519 2.2.3", "rand_core 0.6.4", "serde", "sha2 0.10.8", @@ -3091,7 +3154,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek 4.1.3", - "ed25519", + "ed25519 2.2.3", "hashbrown 0.14.5", "hex", "rand_core 0.6.4", @@ -3143,6 +3206,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "enumflags2" version = "0.7.10" @@ -3429,7 +3504,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -3466,10 +3541,25 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "fork-tree" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", ] @@ -3492,7 +3582,7 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-support-procedural 23.0.0", @@ -3504,13 +3594,13 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] @@ -3543,7 +3633,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -3560,9 +3650,10 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand", + "rand 0.8.5", "rand_pcg", "sc-block-builder", + "sc-chain-spec", "sc-cli", "sc-client-api", "sc-client-db", @@ -3573,17 +3664,18 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "thousands", ] @@ -3603,7 +3695,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3614,18 +3706,18 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -3649,7 +3741,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.3.3", "frame-support 28.0.0", @@ -3658,11 +3750,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -3678,31 +3770,24 @@ dependencies = [ ] [[package]] -name = "frame-remote-externalities" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +name = "frame-metadata-hash-extension" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "futures", - "indicatif", - "jsonrpsee", + "array-bytes 6.2.3", + "docify", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "spinners", - "substrate-rpc-client", - "tokio", - "tokio-retry", + "scale-info", + "sp-runtime 31.0.1", ] [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.5.0", "array-bytes 6.2.3", @@ -3722,20 +3807,20 @@ dependencies = [ "serde_json", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing-proc-macro 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", "static_assertions", "tt-call", ] @@ -3766,9 +3851,9 @@ dependencies = [ "sp-api 27.0.1", "sp-arithmetic 24.0.0", "sp-core 29.0.0", - "sp-crypto-hashing-proc-macro 0.1.0", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-genesis-builder 0.8.0", + "sp-genesis-builder 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-inherents 27.0.0", "sp-io 31.0.0", "sp-metadata-ir 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3785,19 +3870,19 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse 0.2.0", "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "syn 2.0.75", ] @@ -3837,9 +3922,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -3860,7 +3945,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro2", "quote", @@ -3870,7 +3955,7 @@ dependencies = [ [[package]] name = "frame-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cfg-if", "docify", @@ -3879,12 +3964,12 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", ] [[package]] @@ -3911,22 +3996,22 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -3935,13 +4020,13 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -4181,7 +4266,7 @@ version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "rand", + "rand 0.8.5", "rand_core 0.6.4", ] @@ -4243,7 +4328,7 @@ dependencies = [ "parking_lot 0.12.3", "portable-atomic", "quanta", - "rand", + "rand 0.8.5", "smallvec", "spinning_top", ] @@ -4582,6 +4667,16 @@ dependencies = [ "unicode-normalization", ] +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "idna" version = "0.5.0" @@ -4696,19 +4791,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" -[[package]] -name = "indicatif" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" -dependencies = [ - "console", - "instant", - "number_prefix", - "portable-atomic", - "unicode-width", -] - [[package]] name = "inout" version = "0.1.3" @@ -4861,7 +4943,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" dependencies = [ "jsonrpsee-core", - "jsonrpsee-http-client", "jsonrpsee-proc-macros", "jsonrpsee-server", "jsonrpsee-types", @@ -4906,7 +4987,7 @@ dependencies = [ "jsonrpsee-types", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "rustc-hash", "serde", "serde_json", @@ -4916,26 +4997,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "jsonrpsee-http-client" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" -dependencies = [ - "async-trait", - "hyper", - "hyper-rustls", - "jsonrpsee-core", - "jsonrpsee-types", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - [[package]] name = "jsonrpsee-proc-macros" version = "0.22.5" @@ -5194,7 +5255,7 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand", + "rand 0.8.5", "rw-stream-sink", "smallvec", "thiserror", @@ -5213,7 +5274,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "smallvec", - "trust-dns-resolver", + "trust-dns-resolver 0.22.0", ] [[package]] @@ -5245,12 +5306,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" dependencies = [ "bs58 0.4.0", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "log", "multiaddr", "multihash 0.17.0", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "thiserror", "zeroize", @@ -5275,7 +5336,7 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "smallvec", "thiserror", @@ -5297,11 +5358,11 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand", + "rand 0.8.5", "smallvec", "socket2 0.4.10", "tokio", - "trust-dns-proto", + "trust-dns-proto 0.22.0", "void", ] @@ -5333,7 +5394,7 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand", + "rand 0.8.5", "sha2 0.10.8", "snow", "static_assertions", @@ -5355,7 +5416,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand", + "rand 0.8.5", "void", ] @@ -5375,7 +5436,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "quinn-proto", - "rand", + "rand 0.8.5", "rustls 0.20.9", "thiserror", "tokio", @@ -5393,7 +5454,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand", + "rand 0.8.5", "smallvec", ] @@ -5412,7 +5473,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand", + "rand 0.8.5", "smallvec", "tokio", "void", @@ -5460,7 +5521,7 @@ dependencies = [ "rustls 0.20.9", "thiserror", "webpki", - "x509-parser", + "x509-parser 0.14.0", "yasna", ] @@ -5551,7 +5612,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.8.5", "serde", "sha2 0.9.9", "typenum", @@ -5660,6 +5721,61 @@ dependencies = [ "keystream", ] +[[package]] +name = "litep2p" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f02542ae3a94b4c4ffa37dc56388c923e286afa3bf65452e3984b50b2a2f316" +dependencies = [ + "async-trait", + "bs58 0.4.0", + "bytes", + "cid 0.10.1", + "ed25519-dalek 1.0.1", + "futures", + "futures-timer", + "hex-literal", + "indexmap 2.4.0", + "libc", + "mockall 0.12.1", + "multiaddr", + "multihash 0.17.0", + "network-interface", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "prost 0.11.9", + "prost-build 0.11.9", + "quinn", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "serde", + "sha2 0.10.8", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.7", + "static_assertions", + "str0m", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tracing", + "trust-dns-resolver 0.23.2", + "uint", + "unsigned-varint", + "url", + "webpki", + "x25519-dalek 2.0.1", + "x509-parser 0.15.1", + "yasna", + "zeroize", +] + [[package]] name = "lock_api" version = "0.4.12" @@ -5777,12 +5893,6 @@ dependencies = [ "syn 2.0.75", ] -[[package]] -name = "maplit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" - [[package]] name = "match_cfg" version = "0.1.0" @@ -5884,6 +5994,20 @@ dependencies = [ "hash-db", ] +[[package]] +name = "merkleized-metadata" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" +dependencies = [ + "array-bytes 6.2.3", + "blake3", + "frame-metadata", + "parity-scale-codec", + "scale-decode", + "scale-info", +] + [[package]] name = "merlin" version = "3.0.0" @@ -5903,7 +6027,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures", - "rand", + "rand 0.8.5", "thrift", ] @@ -5960,7 +6084,7 @@ dependencies = [ "lioness", "log", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_distr", "subtle 2.6.1", @@ -5971,7 +6095,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "log", @@ -5982,24 +6106,24 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "mmr-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -6012,8 +6136,23 @@ dependencies = [ "downcast", "fragile", "lazy_static", - "mockall_derive", - "predicates", + "mockall_derive 0.11.4", + "predicates 2.1.5", + "predicates-tree", +] + +[[package]] +name = "mockall" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive 0.12.1", + "predicates 3.1.2", "predicates-tree", ] @@ -6029,6 +6168,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "mockall_derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "multiaddr" version = "0.17.1" @@ -6082,10 +6233,14 @@ version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", "core2", "digest 0.10.7", "multihash-derive 0.8.1", "sha2 0.10.8", + "sha3", "unsigned-varint", ] @@ -6217,7 +6372,7 @@ version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -6292,6 +6447,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "network-interface" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +dependencies = [ + "cc", + "libc", + "thiserror", + "winapi", +] + [[package]] name = "nix" version = "0.24.3" @@ -6445,12 +6612,6 @@ dependencies = [ "libc", ] -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - [[package]] name = "object" version = "0.30.4" @@ -6508,12 +6669,60 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "openssl-probe" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" +[[package]] +name = "openssl-src" +version = "300.3.2+3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -6571,34 +6780,35 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", + "log", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-asset-rate" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6620,7 +6830,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6629,16 +6839,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-assets" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "29.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6646,15 +6856,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6662,26 +6872,26 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-authority-discovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-authority-discovery 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6704,15 +6914,15 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6733,7 +6943,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6744,14 +6954,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6782,7 +6992,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.5.0", "docify", @@ -6794,17 +7004,17 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-balances" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -6813,8 +7023,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6837,7 +7047,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -6848,16 +7058,16 @@ dependencies = [ "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-beefy-mmr" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -6872,17 +7082,17 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6891,27 +7101,29 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-broker" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", + "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6951,18 +7163,18 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] [[package]] name = "pallet-child-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -6972,35 +7184,36 @@ dependencies = [ "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "log", "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", "pallet-session 28.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7008,16 +7221,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-conviction-voting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7026,15 +7239,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-democracy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7043,16 +7256,16 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7061,14 +7274,14 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking 27.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "strum 0.26.3", ] @@ -7085,7 +7298,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking 28.0.0", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sp-arithmetic 24.0.0", "sp-core 29.0.0", @@ -7099,15 +7312,15 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7128,7 +7341,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7136,18 +7349,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-fast-unstake" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7157,10 +7370,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7205,11 +7418,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7220,13 +7433,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "pallet-grandpa" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7236,20 +7449,20 @@ dependencies = [ "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-identity" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7258,9 +7471,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7284,7 +7497,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7293,35 +7506,35 @@ dependencies = [ "pallet-authorship 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-indices" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-membership" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7329,16 +7542,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-message-queue" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -7347,12 +7560,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] @@ -7379,7 +7592,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7387,17 +7600,17 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-multisig" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7405,15 +7618,15 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumflags2", "frame-benchmarking 28.0.0", @@ -7422,32 +7635,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nis" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7455,18 +7668,18 @@ dependencies = [ "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7477,27 +7690,27 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", "sp-api 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-offences" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7506,15 +7719,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-offences-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7530,19 +7743,37 @@ dependencies = [ "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] -name = "pallet-payment-streams" +name = "pallet-parameters" version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ + "docify", "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", - "pallet-balances 28.0.0", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-payment-streams" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", "pallet-nfts", "pallet-payment-streams-runtime-api", "pallet-storage-providers", @@ -7550,9 +7781,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7563,14 +7794,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-preimage" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7578,10 +7809,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7601,10 +7832,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7615,23 +7846,23 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-proxy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7646,16 +7877,16 @@ dependencies = [ "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-ranked-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7664,32 +7895,32 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-recovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-referenda" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", "frame-benchmarking 28.0.0", @@ -7699,31 +7930,31 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-root-testing" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-scheduler" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7732,16 +7963,16 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] name = "pallet-session" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -7750,14 +7981,14 @@ dependencies = [ "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7786,7 +8017,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7794,16 +8025,16 @@ dependencies = [ "pallet-session 28.0.0", "pallet-staking 28.0.0", "parity-scale-codec", - "rand", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "rand 0.8.5", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-society" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7812,16 +8043,16 @@ dependencies = [ "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-staking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", @@ -7834,11 +8065,11 @@ dependencies = [ "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7867,7 +8098,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -7878,10 +8109,10 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", ] [[package]] @@ -7897,7 +8128,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", @@ -7907,7 +8138,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -7915,10 +8146,10 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7938,10 +8169,10 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -7952,13 +8183,13 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "pallet-sudo" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7966,15 +8197,15 @@ dependencies = [ "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-timestamp" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -7984,10 +8215,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-timestamp 26.0.0", ] @@ -8015,7 +8246,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8025,26 +8256,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-transaction-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8067,35 +8298,35 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "pallet-transaction-payment 28.0.0", "parity-scale-codec", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", ] [[package]] name = "pallet-treasury" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "frame-benchmarking 28.0.0", @@ -8106,9 +8337,9 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8134,7 +8365,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8142,30 +8373,30 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-utility" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-vesting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8173,8 +8404,8 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8196,7 +8427,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8204,14 +8435,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "frame-benchmarking 28.0.0", @@ -8222,10 +8453,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8235,7 +8466,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-benchmarking 28.0.0", "frame-support 28.0.0", @@ -8243,9 +8474,9 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -8254,7 +8485,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -8272,10 +8503,10 @@ dependencies = [ "polkadot-primitives 7.0.0", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", @@ -8289,7 +8520,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", - "rand", + "rand 0.8.5", "rand_core 0.6.4", "serde", "unicode-normalization", @@ -8310,7 +8541,7 @@ dependencies = [ "lz4", "memmap2 0.5.10", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "siphasher", "snap", "winapi", @@ -8613,7 +8844,7 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "futures", @@ -8626,14 +8857,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "always-assert", "futures", @@ -8642,14 +8873,14 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", "fatality", @@ -8661,10 +8892,10 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -8672,7 +8903,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "fatality", @@ -8684,7 +8915,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "sc-network", "schnellru", "thiserror", @@ -8695,7 +8926,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cfg-if", "clap", @@ -8711,20 +8942,19 @@ dependencies = [ "sc-storage-monitor", "sc-sysinfo", "sc-tracing", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-keyring", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-build-script-utils", "thiserror", - "try-runtime-cli", ] [[package]] name = "polkadot-collator-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -8735,9 +8965,9 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "thiserror", "tokio-util", "tracing-gum", @@ -8746,25 +8976,13 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "polkadot-core-primitives" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8783,7 +9001,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", "fatality", @@ -8799,8 +9017,8 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-network", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -8808,21 +9026,21 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", "polkadot-primitives 7.0.0", "reed-solomon-novelpoly", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] [[package]] name = "polkadot-gossip-support" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "futures-timer", @@ -8830,21 +9048,21 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "sc-network", "sc-network-common", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "always-assert", "async-trait", @@ -8867,7 +9085,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "parity-scale-codec", @@ -8876,7 +9094,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-maybe-compressed-blob", "thiserror", "tracing-gum", @@ -8885,7 +9103,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "derive_more", @@ -8901,16 +9119,16 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", "sc-keystore", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", "tracing-gum", ] @@ -8918,7 +9136,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "futures", @@ -8940,7 +9158,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -8952,7 +9170,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "polkadot-statement-table", "schnellru", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -8960,13 +9178,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", "wasm-timer", @@ -8975,7 +9193,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -8996,7 +9214,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-metrics", @@ -9010,7 +9228,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "futures-timer", @@ -9027,7 +9245,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "fatality", "futures", @@ -9046,7 +9264,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -9063,7 +9281,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -9080,7 +9298,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "fatality", @@ -9098,7 +9316,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -9106,22 +9324,18 @@ dependencies = [ "cfg-if", "futures", "futures-timer", - "is_executable", - "libc", "parity-scale-codec", "pin-project", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-node-core-pvf-common", "polkadot-node-metrics", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "slotmap", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tempfile", "thiserror", "tokio", @@ -9131,7 +9345,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-primitives", @@ -9139,7 +9353,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -9147,9 +9361,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "cfg-if", "cpu-time", "futures", "landlock", @@ -9162,11 +9375,11 @@ dependencies = [ "sc-executor-common", "sc-executor-wasmtime", "seccompiler", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing-gum", ] @@ -9174,7 +9387,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "polkadot-node-metrics", @@ -9189,7 +9402,7 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "lazy_static", "log", @@ -9199,7 +9412,8 @@ dependencies = [ "polkadot-node-primitives", "polkadot-primitives 7.0.0", "sc-network", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sc-network-types", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", ] @@ -9207,7 +9421,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bs58 0.5.1", "futures", @@ -9226,7 +9440,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9239,9 +9453,11 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives 7.0.0", - "rand", + "rand 0.8.5", "sc-authority-discovery", "sc-network", + "sc-network-types", + "sp-runtime 31.0.1", "strum 0.26.3", "thiserror", "tracing-gum", @@ -9250,7 +9466,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "bounded-vec", @@ -9260,12 +9476,12 @@ dependencies = [ "polkadot-primitives 7.0.0", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-maybe-compressed-blob", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", "zstd 0.12.4", ] @@ -9273,7 +9489,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9283,7 +9499,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "bitvec", @@ -9297,13 +9513,14 @@ dependencies = [ "polkadot-statement-table", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "smallvec", "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -9311,7 +9528,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "derive_more", @@ -9333,12 +9550,12 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives 7.0.0", "prioritized-metered-channel", - "rand", + "rand 0.8.5", "sc-client-api", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", "tracing-gum", ] @@ -9346,7 +9563,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -9360,7 +9577,7 @@ dependencies = [ "polkadot-primitives 7.0.0", "sc-client-api", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tikv-jemalloc-ctl", "tracing-gum", ] @@ -9368,18 +9585,18 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "derive_more", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] @@ -9403,28 +9620,28 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "hex-literal", "log", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9458,7 +9675,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9482,8 +9699,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] @@ -9491,7 +9708,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", "frame-benchmarking 28.0.0", @@ -9525,14 +9742,14 @@ dependencies = [ "serde_derive", "slot-range-helper 7.0.0", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -9593,7 +9810,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v1.2.1#5cd9e709a9430365d00b4bd0311b24ef55305b46" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v1.2.3#061073f2e740bfae3a576deab05feda962eb1851" dependencies = [ "frame-support 29.0.2", "polkadot-primitives 8.0.1", @@ -9608,14 +9825,14 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bs58 0.5.1", "frame-benchmarking 28.0.0", "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9635,7 +9852,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9656,26 +9873,26 @@ dependencies = [ "pallet-timestamp 27.0.0", "pallet-vesting 28.0.0", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-metrics 7.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", "static_assertions", @@ -9710,7 +9927,7 @@ dependencies = [ "polkadot-parachain-primitives 7.0.0", "polkadot-primitives 8.0.1", "polkadot-runtime-metrics 8.0.0", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", @@ -9733,12 +9950,13 @@ dependencies = [ [[package]] name = "polkadot-service" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "bitvec", "frame-benchmarking 28.0.0", "frame-benchmarking-cli", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-rpc-runtime-api", @@ -9761,7 +9979,7 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -9827,21 +10045,21 @@ dependencies = [ "sp-consensus-babe 0.32.0", "sp-consensus-beefy", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-timestamp 26.0.0", "sp-transaction-pool", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "substrate-prometheus-endpoint", "thiserror", @@ -9853,7 +10071,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "arrayvec 0.7.6", "bitvec", @@ -9867,7 +10085,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", "sp-staking 26.0.0", "thiserror", "tracing-gum", @@ -9876,11 +10094,11 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing-gum", ] @@ -10040,7 +10258,7 @@ dependencies = [ "hmac 0.12.1", "md-5", "memchr", - "rand", + "rand 0.8.5", "sha2 0.10.8", "stringprep", ] @@ -10094,6 +10312,16 @@ dependencies = [ "regex", ] +[[package]] +name = "predicates" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" +dependencies = [ + "anstyle", + "predicates-core", +] + [[package]] name = "predicates-core" version = "1.0.8" @@ -10438,6 +10666,24 @@ dependencies = [ "pin-project-lite 0.1.12", ] +[[package]] +name = "quinn" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" +dependencies = [ + "bytes", + "pin-project-lite 0.2.14", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.20.9", + "thiserror", + "tokio", + "tracing", + "webpki", +] + [[package]] name = "quinn-proto" version = "0.9.6" @@ -10445,7 +10691,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand", + "rand 0.8.5", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -10456,6 +10702,19 @@ dependencies = [ "webpki", ] +[[package]] +name = "quinn-udp" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +dependencies = [ + "libc", + "quinn-proto", + "socket2 0.4.10", + "tracing", + "windows-sys 0.42.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -10471,6 +10730,19 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + [[package]] name = "rand" version = "0.8.5" @@ -10527,7 +10799,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", ] [[package]] @@ -10837,11 +11118,13 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "binary-merkle-tree", + "bitvec", "frame-benchmarking 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -10871,6 +11154,7 @@ dependencies = [ "pallet-multisig", "pallet-nis", "pallet-offences", + "pallet-parameters", "pallet-preimage", "pallet-proxy", "pallet-ranked-collective", @@ -10902,24 +11186,26 @@ dependencies = [ "scale-info", "serde", "serde_derive", + "serde_json", "smallvec", "sp-api 26.0.0", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-consensus-grandpa", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-mmr-primitives", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -10933,15 +11219,15 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -11229,18 +11515,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11249,20 +11535,21 @@ dependencies = [ "libp2p", "linked_hash_set", "log", - "multihash 0.18.1", + "multihash 0.17.0", "multihash-codetable", "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network", + "sc-network-types", "sp-api 26.0.0", "sp-authority-discovery 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11270,7 +11557,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "futures-timer", @@ -11283,31 +11570,31 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-chain-spec" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "docify", @@ -11322,18 +11609,19 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-genesis-builder 0.7.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-chain-spec-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -11344,7 +11632,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -11357,7 +11645,7 @@ dependencies = [ "names", "parity-bip39", "parity-scale-codec", - "rand", + "rand 0.8.5", "regex", "rpassword", "sc-client-api", @@ -11372,11 +11660,11 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", "tokio", @@ -11385,7 +11673,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "fnv", "futures", @@ -11398,21 +11686,21 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "kvdb", @@ -11426,36 +11714,36 @@ dependencies = [ "sc-client-api", "sc-state-db", "schnellru", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-consensus" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", "futures-timer", - "libp2p-identity", "log", - "mockall", + "mockall 0.11.4", "parking_lot 0.12.3", "sc-client-api", + "sc-network-types", "sc-utils", "serde", "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "substrate-prometheus-endpoint", "thiserror", ] @@ -11463,7 +11751,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11475,16 +11763,16 @@ dependencies = [ "sc-consensus-slots", "sc-telemetry", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-aura", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11492,7 +11780,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "fork-tree", @@ -11510,17 +11798,17 @@ dependencies = [ "sc-telemetry", "sc-transaction-pool-api", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11528,7 +11816,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "jsonrpsee", @@ -11537,20 +11825,20 @@ dependencies = [ "sc-rpc-api", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11565,18 +11853,19 @@ dependencies = [ "sc-network", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -11586,7 +11875,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "jsonrpsee", @@ -11597,28 +11886,28 @@ dependencies = [ "sc-rpc", "serde", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "fork-tree", "parity-scale-codec", "sc-client-api", "sc-consensus", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sc-consensus-grandpa" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ahash 0.8.11", "array-bytes 6.2.3", @@ -11631,7 +11920,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -11640,20 +11929,21 @@ dependencies = [ "sc-network-common", "sc-network-gossip", "sc-network-sync", + "sc-network-types", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", "serde_json", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", ] @@ -11661,7 +11951,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "finality-grandpa", "futures", @@ -11673,15 +11963,15 @@ dependencies = [ "sc-rpc", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", "async-trait", @@ -11704,10 +11994,10 @@ dependencies = [ "sp-consensus-aura", "sp-consensus-babe 0.32.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", "substrate-prometheus-endpoint", "thiserror", @@ -11716,7 +12006,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -11726,20 +12016,20 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-telemetry", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", ] [[package]] name = "sc-executor" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", @@ -11748,26 +12038,26 @@ dependencies = [ "sc-executor-wasmtime", "schnellru", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "polkavm", "sc-allocator", "sp-maybe-compressed-blob", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "wasm-instrument", ] @@ -11775,18 +12065,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "polkavm", "sc-executor-common", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-executor-wasmtime" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "anyhow", "cfg-if", @@ -11796,15 +12086,15 @@ dependencies = [ "rustix 0.36.17", "sc-allocator", "sc-executor-common", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ansi_term", "futures", @@ -11815,27 +12105,27 @@ dependencies = [ "sc-network-common", "sc-network-sync", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sc-keystore" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", ] [[package]] name = "sc-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.6", @@ -11843,7 +12133,6 @@ dependencies = [ "bytes", "futures", "futures-timer", - "libp2p-identity", "log", "mixnet", "multiaddr", @@ -11851,26 +12140,28 @@ dependencies = [ "parking_lot 0.12.3", "sc-client-api", "sc-network", + "sc-network-types", "sc-transaction-pool-api", "sp-api 26.0.0", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-mixnet", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-network" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "asynchronous-codec", "bytes", + "cid 0.9.0", "either", "fnv", "futures", @@ -11878,56 +12169,43 @@ dependencies = [ "ip_network", "libp2p", "linked_hash_set", + "litep2p", "log", - "mockall", + "mockall 0.11.4", + "once_cell", "parity-scale-codec", "parking_lot 0.12.3", "partial_sort", "pin-project", - "rand", + "prost 0.11.9", + "prost-build 0.11.9", + "rand 0.8.5", "sc-client-api", "sc-network-common", + "sc-network-types", "sc-utils", + "schnellru", "serde", "serde_json", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", "tokio-stream", "unsigned-varint", + "void", "wasm-timer", "zeroize", ] -[[package]] -name = "sc-network-bitswap" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "async-channel 1.9.0", - "cid", - "futures", - "libp2p-identity", - "log", - "prost 0.12.6", - "prost-build 0.11.9", - "sc-client-api", - "sc-network", - "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "unsigned-varint", -] - [[package]] name = "sc-network-common" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11936,15 +12214,16 @@ dependencies = [ "parity-scale-codec", "prost-build 0.11.9", "sc-consensus", + "sc-network-types", "sp-consensus", "sp-consensus-grandpa", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sc-network-gossip" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ahash 0.8.11", "futures", @@ -11954,8 +12233,9 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "schnellru", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "tracing", ] @@ -11963,28 +12243,28 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", "futures", - "libp2p-identity", "log", "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", "sc-client-api", "sc-network", + "sc-network-types", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-network-sync" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -11994,7 +12274,7 @@ dependencies = [ "futures-timer", "libp2p", "log", - "mockall", + "mockall 0.11.4", "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", @@ -12002,15 +12282,16 @@ dependencies = [ "sc-consensus", "sc-network", "sc-network-common", + "sc-network-types", "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", "sp-blockchain", "sp-consensus", "sp-consensus-grandpa", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", "thiserror", "tokio", @@ -12020,7 +12301,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12030,16 +12311,31 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-sync", + "sc-network-types", "sc-utils", "sp-consensus", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "substrate-prometheus-endpoint", ] +[[package]] +name = "sc-network-types" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "bs58 0.4.0", + "libp2p-identity", + "litep2p", + "multiaddr", + "multihash 0.17.0", + "rand 0.8.5", + "thiserror", +] + [[package]] name = "sc-offchain" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "bytes", @@ -12054,18 +12350,19 @@ dependencies = [ "once_cell", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-client-api", "sc-network", "sc-network-common", + "sc-network-types", "sc-transaction-pool-api", "sc-utils", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "threadpool", "tracing", ] @@ -12073,7 +12370,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -12082,7 +12379,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "jsonrpsee", @@ -12100,11 +12397,11 @@ dependencies = [ "serde_json", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "sp-offchain", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-statement-store", "sp-version 29.0.0", @@ -12114,7 +12411,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12124,9 +12421,9 @@ dependencies = [ "scale-info", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", ] @@ -12134,7 +12431,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "governor", @@ -12152,7 +12449,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "futures", @@ -12162,18 +12459,19 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-rpc", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-version 29.0.0", "thiserror", "tokio", @@ -12183,7 +12481,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "directories", @@ -12195,7 +12493,7 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -12204,11 +12502,11 @@ dependencies = [ "sc-informant", "sc-keystore", "sc-network", - "sc-network-bitswap", "sc-network-common", "sc-network-light", "sc-network-sync", "sc-network-transactions", + "sc-network-types", "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", @@ -12224,16 +12522,16 @@ dependencies = [ "sp-api 26.0.0", "sp-blockchain", "sp-consensus", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-transaction-storage-proof", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "static_init", "substrate-prometheus-endpoint", @@ -12247,23 +12545,23 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-storage-monitor" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "clap", "fs4", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", ] @@ -12271,7 +12569,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12283,35 +12581,35 @@ dependencies = [ "serde", "serde_json", "sp-blockchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-sysinfo" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", "futures", "libc", "log", - "rand", + "rand 0.8.5", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sc-telemetry" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "chrono", "futures", @@ -12319,7 +12617,8 @@ dependencies = [ "log", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", + "sc-network", "sc-utils", "serde", "serde_json", @@ -12330,7 +12629,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ansi_term", "chrono", @@ -12347,20 +12646,20 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "tracing-log 0.1.4", - "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.18", ] [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -12371,7 +12670,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -12386,10 +12685,10 @@ dependencies = [ "serde", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "substrate-prometheus-endpoint", "thiserror", @@ -12398,7 +12697,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", @@ -12406,15 +12705,15 @@ dependencies = [ "parity-scale-codec", "serde", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-utils" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-channel 1.9.0", "futures", @@ -12423,7 +12722,30 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", +] + +[[package]] +name = "scale-bits" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" +dependencies = [ + "parity-scale-codec", + "scale-type-resolver", +] + +[[package]] +name = "scale-decode" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" +dependencies = [ + "derive_more", + "parity-scale-codec", + "scale-bits", + "scale-type-resolver", + "smallvec", ] [[package]] @@ -12452,6 +12774,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scale-type-resolver" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" + [[package]] name = "schannel" version = "0.1.23" @@ -12539,6 +12867,21 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "sctp-proto" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" +dependencies = [ + "bytes", + "crc", + "fxhash", + "log", + "rand 0.8.5", + "slab", + "thiserror", +] + [[package]] name = "sec1" version = "0.7.3" @@ -12713,6 +13056,7 @@ dependencies = [ "cumulus-primitives-utility", "frame-benchmarking 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -12746,7 +13090,7 @@ dependencies = [ "pallet-xcm", "parachains-common", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-common 7.0.0", "polkadot-runtime-constants", @@ -12761,19 +13105,19 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", "staging-parachain-info", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", @@ -12794,6 +13138,18 @@ dependencies = [ "opaque-debug 0.3.1", ] +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", + "sha1-asm", +] + [[package]] name = "sha1" version = "0.10.6" @@ -12805,6 +13161,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "sha1-asm" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" +dependencies = [ + "cc", +] + [[package]] name = "sha2" version = "0.9.9" @@ -12860,8 +13225,8 @@ dependencies = [ "sc-utils", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "tokio", ] @@ -12874,6 +13239,7 @@ dependencies = [ "async-trait", "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "futures", @@ -12904,9 +13270,9 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "storage-hub-runtime", "substrate-frame-rpc-system", "tokio", @@ -12939,10 +13305,10 @@ dependencies = [ "shp-forest-verifier", "shp-traits", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "storage-hub-runtime", "thiserror", @@ -12963,9 +13329,9 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "trie-db 0.29.1", @@ -13014,9 +13380,9 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "thiserror", "tokio", @@ -13081,8 +13447,8 @@ dependencies = [ "shc-indexer-db", "sp-api 26.0.0", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "storage-hub-runtime", "substrate-frame-rpc-system", "thiserror", @@ -13100,9 +13466,9 @@ dependencies = [ "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "tokio", ] @@ -13117,8 +13483,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -13129,15 +13495,15 @@ dependencies = [ "frame-support 28.0.0", "num-bigint", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13151,9 +13517,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13166,10 +13532,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "trie-db 0.29.1", ] @@ -13181,11 +13547,11 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13196,10 +13562,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] @@ -13212,6 +13578,12 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + [[package]] name = "signature" version = "2.2.0" @@ -13235,6 +13607,15 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-dns" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" +dependencies = [ + "bitflags 2.6.0", +] + [[package]] name = "simple-mermaid" version = "0.1.1" @@ -13265,13 +13646,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13355,7 +13736,7 @@ dependencies = [ "pbkdf2 0.12.2", "pin-project", "poly1305", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "ruzstd", "schnorrkel 0.10.2", @@ -13398,7 +13779,7 @@ dependencies = [ "no-std-net", "parking_lot 0.12.3", "pin-project", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "serde", "serde_json", @@ -13465,28 +13846,28 @@ dependencies = [ "http", "httparse", "log", - "rand", - "sha-1", + "rand 0.8.5", + "sha-1 0.9.8", ] [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", "sp-api-proc-macro 15.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version 29.0.0", "thiserror", ] @@ -13516,7 +13897,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "blake2 0.10.6", @@ -13545,27 +13926,14 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-application-crypto" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -13585,22 +13953,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "docify", - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "static_assertions", -] - -[[package]] -name = "sp-arithmetic" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "integer-sqrt", @@ -13608,7 +13961,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] @@ -13648,13 +14001,13 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -13674,17 +14027,17 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-api 26.0.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", "log", @@ -13694,57 +14047,57 @@ dependencies = [ "sp-api 26.0.0", "sp-consensus", "sp-database", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "sp-consensus" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "futures", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-slots 0.32.0", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", ] [[package]] name = "sp-consensus-babe" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", ] @@ -13771,27 +14124,27 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "lazy_static", "parity-scale-codec", "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "finality-grandpa", "log", @@ -13799,16 +14152,16 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-consensus-slots" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", @@ -13832,54 +14185,7 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "array-bytes 6.2.3", - "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1", - "secrecy", - "serde", - "sp-crypto-hashing 0.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-core" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", @@ -13903,20 +14209,20 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "w3f-bls", @@ -13950,7 +14256,7 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", "secp256k1", @@ -13996,7 +14302,7 @@ dependencies = [ "parking_lot 0.12.3", "paste", "primitive-types", - "rand", + "rand 0.8.5", "scale-info", "schnorrkel 0.11.4", "secp256k1", @@ -14036,19 +14342,6 @@ dependencies = [ "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ] -[[package]] -name = "sp-crypto-hashing" -version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - [[package]] name = "sp-crypto-hashing" version = "0.1.0" @@ -14066,7 +14359,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "blake2b_simd", "byteorder", @@ -14091,29 +14384,29 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" -version = "0.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", - "sp-crypto-hashing 0.0.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "syn 2.0.75", ] [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "syn 2.0.75", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -14133,17 +14426,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "proc-macro2", "quote", @@ -14163,21 +14446,11 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -14204,36 +14477,38 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd865540ec19479c7349b584ccd78cc34c3f3a628a2a69dbb6365ceec36295ee" dependencies = [ "serde_json", - "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-api 27.0.1", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-genesis-builder" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd865540ec19479c7349b584ccd78cc34c3f3a628a2a69dbb6365ceec36295ee" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ + "parity-scale-codec", + "scale-info", "serde_json", - "sp-api 27.0.1", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] @@ -14255,51 +14530,25 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bytes", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "libsecp256k1", "log", "parity-scale-codec", "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "bytes", - "ed25519-dalek", - "libsecp256k1", - "log", - "parity-scale-codec", - "polkavm-derive", - "rustversion", - "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", "tracing-core", ] @@ -14311,7 +14560,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec43aa073eab35fcb920d7592474d5427ea3be2bf938706a3ad955d7ba54fd8d" dependencies = [ "bytes", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "libsecp256k1", "log", "parity-scale-codec", @@ -14333,33 +14582,22 @@ dependencies = [ [[package]] name = "sp-keyring" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "strum 0.26.3", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-keystore" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -14378,7 +14616,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "thiserror", "zstd 0.12.4", @@ -14399,7 +14637,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -14409,18 +14647,18 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", ] [[package]] name = "sp-mmr-primitives" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -14428,23 +14666,23 @@ dependencies = [ "scale-info", "serde", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sp-npos-elections" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -14465,11 +14703,11 @@ dependencies = [ [[package]] name = "sp-offchain" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -14486,17 +14724,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-panic-handler" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "backtrace", "lazy_static", @@ -14506,17 +14734,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "rustc-hash", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", "either", @@ -14525,40 +14753,16 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-runtime" -version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", ] [[package]] @@ -14574,7 +14778,7 @@ dependencies = [ "log", "parity-scale-codec", "paste", - "rand", + "rand 0.8.5", "scale-info", "serde", "simple-mermaid", @@ -14589,38 +14793,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive", - "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] @@ -14679,20 +14864,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "Inflector", - "expander 2.2.1", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "expander 2.2.1", @@ -14718,14 +14890,14 @@ dependencies = [ [[package]] name = "sp-session" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-staking 26.0.0", ] @@ -14748,14 +14920,14 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -14776,38 +14948,18 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand", - "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "tracing", - "trie-db 0.28.0", -] - -[[package]] -name = "sp-state-machine" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -14823,7 +14975,7 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "smallvec", "sp-core 29.0.0", "sp-externalities 0.26.0", @@ -14838,23 +14990,23 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", - "ed25519-dalek", + "ed25519-dalek 2.1.1", "hkdf", "parity-scale-codec", - "rand", + "rand 0.8.5", "scale-info", "sha2 0.10.8", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-crypto-hashing 0.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "x25519-dalek 2.0.1", ] @@ -14868,12 +15020,7 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" - -[[package]] -name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" [[package]] name = "sp-std" @@ -14883,25 +15030,13 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -14933,12 +15068,12 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "thiserror", ] @@ -14972,18 +15107,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "tracing", @@ -15005,30 +15129,30 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", ] [[package]] name = "sp-transaction-storage-proof" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15037,34 +15161,11 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "thiserror", - "tracing", - "trie-db 0.28.0", - "trie-root", -] - -[[package]] -name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "ahash 0.8.11", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand", - "scale-info", - "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -15083,7 +15184,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", @@ -15107,7 +15208,7 @@ dependencies = [ "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "scale-info", "schnellru", "sp-core 29.0.0", @@ -15122,17 +15223,17 @@ dependencies = [ [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -15147,7 +15248,7 @@ dependencies = [ "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.1.0", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-runtime 32.0.0", "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-version-proc-macro 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -15169,7 +15270,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -15194,7 +15295,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -15203,16 +15304,6 @@ dependencies = [ "wasmtime", ] -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "impl-trait-for-tuples", - "log", - "parity-scale-codec", -] - [[package]] name = "sp-wasm-interface" version = "20.0.0" @@ -15226,29 +15317,15 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - -[[package]] -name = "sp-weights" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0)", + "sp-arithmetic 23.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -15279,17 +15356,6 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -[[package]] -name = "spinners" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0ef947f358b9c238923f764c72a4a9d42f2d637c46e059dbd319d6e7cfb4f82" -dependencies = [ - "lazy_static", - "maplit", - "strum 0.24.1", -] - [[package]] name = "spinning_top" version = "0.3.0" @@ -15333,21 +15399,21 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "cumulus-primitives-core", "frame-support 28.0.0", "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "staging-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", "bounded-collections", @@ -15358,7 +15424,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-weights 27.0.0", "xcm-procedural 7.0.0", ] @@ -15384,7 +15450,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "frame-system 28.0.0", @@ -15394,11 +15460,11 @@ dependencies = [ "parity-scale-codec", "polkadot-parachain-primitives 6.0.0", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-executor 7.0.0", ] @@ -15429,7 +15495,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", "frame-benchmarking 28.0.0", @@ -15438,12 +15504,12 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", ] @@ -15589,12 +15655,12 @@ dependencies = [ "sp-block-builder", "sp-blockchain", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-keyring", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "sp-timestamp 26.0.0", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "staging-xcm 7.0.0", @@ -15619,8 +15685,10 @@ dependencies = [ "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", + "docify", "frame-benchmarking 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -15665,13 +15733,13 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", "sp-version 29.0.0", @@ -15682,6 +15750,26 @@ dependencies = [ "substrate-wasm-builder", ] +[[package]] +name = "str0m" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" +dependencies = [ + "combine", + "crc", + "fastrand 2.1.0", + "hmac 0.12.1", + "once_cell", + "openssl", + "openssl-sys", + "sctp-proto", + "serde", + "sha-1 0.10.1", + "thiserror", + "tracing", +] + [[package]] name = "stringprep" version = "0.1.5" @@ -15772,19 +15860,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.12.2", - "schnorrkel 0.11.4", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk?tag=polkadot-v1.11.0#0bb6249268c0b77d2834640b84cb52fdd3d7e860" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15808,12 +15884,12 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -15825,14 +15901,14 @@ dependencies = [ "sp-api 26.0.0", "sp-block-builder", "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "hyper", "log", @@ -15841,48 +15917,44 @@ dependencies = [ "tokio", ] -[[package]] -name = "substrate-rpc-client" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "async-trait", - "jsonrpsee", - "log", - "sc-rpc-api", - "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", -] - [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", "parity-scale-codec", "sc-client-api", "sc-rpc-api", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "trie-db 0.28.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "trie-db 0.29.1", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ + "array-bytes 6.2.3", "build-helper", "cargo_metadata", "console", "filetime", + "frame-metadata", + "merkleized-metadata", + "parity-scale-codec", "parity-wasm", "polkavm-linker", + "sc-executor", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", "sp-maybe-compressed-blob", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0", "strum 0.26.3", "tempfile", "toml 0.8.19", @@ -16226,24 +16298,13 @@ dependencies = [ "pin-project-lite 0.2.14", "postgres-protocol", "postgres-types", - "rand", + "rand 0.8.5", "socket2 0.5.7", "tokio", "tokio-util", "whoami", ] -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.24.1" @@ -16277,6 +16338,21 @@ dependencies = [ "tokio-util", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", +] + [[package]] name = "tokio-util" version = "0.7.11" @@ -16447,7 +16523,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "coarsetime", "polkadot-primitives 7.0.0", @@ -16458,7 +16534,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "expander 2.2.1", "proc-macro-crate 3.1.0", @@ -16509,7 +16585,6 @@ dependencies = [ "chrono", "lazy_static", "matchers 0.0.1", - "parking_lot 0.11.2", "regex", "serde", "serde_json", @@ -16531,6 +16606,7 @@ dependencies = [ "matchers 0.1.0", "nu-ansi-term", "once_cell", + "parking_lot 0.12.3", "regex", "sharded-slab", "smallvec", @@ -16597,14 +16673,14 @@ dependencies = [ "async-trait", "cfg-if", "data-encoding", - "enum-as-inner", + "enum-as-inner 0.5.1", "futures-channel", "futures-io", "futures-util", "idna 0.2.3", "ipnet", "lazy_static", - "rand", + "rand 0.8.5", "smallvec", "socket2 0.4.10", "thiserror", @@ -16614,6 +16690,31 @@ dependencies = [ "url", ] +[[package]] +name = "trust-dns-proto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + [[package]] name = "trust-dns-resolver" version = "0.22.0" @@ -16631,7 +16732,28 @@ dependencies = [ "thiserror", "tokio", "tracing", - "trust-dns-proto", + "trust-dns-proto 0.22.0", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto 0.23.2", ] [[package]] @@ -16640,48 +16762,32 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "try-runtime-cli" -version = "0.38.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" -dependencies = [ - "async-trait", - "clap", - "frame-remote-externalities", - "frame-try-runtime", - "hex", - "log", - "parity-scale-codec", - "sc-cli", - "sc-executor", - "serde", - "serde_json", - "sp-api 26.0.0", - "sp-consensus-aura", - "sp-consensus-babe 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-rpc", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-timestamp 26.0.0", - "sp-transaction-storage-proof", - "sp-version 29.0.0", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "substrate-rpc-client", - "zstd 0.12.4", -] - [[package]] name = "tt-call" version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -16690,7 +16796,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand", + "rand 0.8.5", "static_assertions", ] @@ -16777,6 +16883,7 @@ dependencies = [ "bytes", "futures-io", "futures-util", + "tokio-util", ] [[package]] @@ -16802,6 +16909,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" version = "0.2.2" @@ -16847,7 +16960,7 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand", + "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", "sha2 0.10.8", @@ -17264,7 +17377,7 @@ dependencies = [ "memfd", "memoffset", "paste", - "rand", + "rand 0.8.5", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -17316,13 +17429,14 @@ dependencies = [ [[package]] name = "westend-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "binary-merkle-tree", "bitvec", "frame-benchmarking 28.0.0", "frame-election-provider-support 28.0.0", "frame-executive", + "frame-metadata-hash-extension", "frame-support 28.0.0", "frame-system 28.0.0", "frame-system-benchmarking", @@ -17391,24 +17505,24 @@ dependencies = [ "serde_derive", "smallvec", "sp-api 26.0.0", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", "sp-authority-discovery 26.0.0", "sp-block-builder", "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-genesis-builder 0.7.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-inherents 26.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", "sp-mmr-primitives", "sp-npos-elections 26.0.0", "sp-offchain", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", "sp-session 27.0.0", "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-transaction-pool", "sp-version 29.0.0", "staging-xcm 7.0.0", @@ -17422,15 +17536,15 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "polkadot-primitives 7.0.0", "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", ] @@ -17533,6 +17647,21 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -17825,25 +17954,42 @@ dependencies = [ "time", ] +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + [[package]] name = "xcm-fee-payment-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "scale-info", "sp-api 26.0.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0", "staging-xcm 7.0.0", ] [[package]] name = "xcm-procedural" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "Inflector", "proc-macro2", @@ -17866,16 +18012,16 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0#7049c3c98836b3e9253f6aaa69b6bf3d622e3962" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-support 28.0.0", "parity-scale-codec", "paste", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "polkadot-core-primitives 7.0.0", "polkadot-parachain-primitives 6.0.0", "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.10.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "staging-xcm 7.0.0", "staging-xcm-builder 7.0.0", "staging-xcm-executor 7.0.0", @@ -17891,7 +18037,7 @@ dependencies = [ "log", "nohash-hasher", "parking_lot 0.12.3", - "rand", + "rand 0.8.5", "static_assertions", ] diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index 0677de123..432f58d8a 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -2623,13 +2623,14 @@ export default { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" }, - execute_blob: { - encodedMessage: "Bytes", - maxWeight: "SpWeightsWeightV2Weight" - }, - send_blob: { + transfer_assets_using_type_and_then: { dest: "XcmVersionedLocation", - encodedMessage: "Bytes" + assets: "XcmVersionedAssets", + assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", + remoteFeesId: "XcmVersionedAssetId", + feesTransferType: "StagingXcmExecutorAssetTransferTransferType", + customXcmOnDest: "XcmVersionedXcm", + weightLimit: "XcmV3WeightLimit" } } }, @@ -3039,11 +3040,34 @@ export default { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup298: cumulus_pallet_xcm::pallet::Call + * Lookup297: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: "Null", + LocalReserve: "Null", + DestinationReserve: "Null", + RemoteReserve: "XcmVersionedLocation" + } + }, + /** + * Lookup298: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + V3: "XcmV3MultiassetAssetId", + V4: "StagingXcmV4AssetAssetId" + } + }, + /** + * Lookup299: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup299: pallet_message_queue::pallet::Call + * Lookup300: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3060,7 +3084,7 @@ export default { } }, /** - * Lookup300: pallet_storage_providers::pallet::Call + * Lookup301: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3109,7 +3133,7 @@ export default { } }, /** - * Lookup301: pallet_file_system::pallet::Call + * Lookup302: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3215,13 +3239,13 @@ export default { } }, /** - * Lookup302: pallet_file_system::types::BucketMoveRequestResponse + * Lookup303: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup307: pallet_proofs_dealer::pallet::Call + * Lookup308: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3241,13 +3265,13 @@ export default { } }, /** - * Lookup308: pallet_randomness::pallet::Call + * Lookup309: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup309: pallet_payment_streams::pallet::Call + * Lookup310: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3287,7 +3311,7 @@ export default { } }, /** - * Lookup310: pallet_bucket_nfts::pallet::Call + * Lookup311: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3305,7 +3329,7 @@ export default { } }, /** - * Lookup312: pallet_nfts::pallet::Call + * Lookup313: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3502,7 +3526,7 @@ export default { } }, /** - * Lookup313: pallet_nfts::types::CollectionConfig + * Lookup314: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3510,7 +3534,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup315: pallet_nfts::types::CollectionSetting + * Lookup316: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3534,7 +3558,7 @@ export default { ] }, /** - * Lookup316: pallet_nfts::types::MintSettings + * Lookup317: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3544,7 +3568,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup317: pallet_nfts::types::MintType + * Lookup318: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3554,13 +3578,13 @@ export default { } }, /** - * Lookup320: pallet_nfts::types::ItemSetting + * Lookup321: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup321: pallet_nfts::types::DestroyWitness + * Lookup322: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3568,26 +3592,26 @@ export default { attributes: "Compact" }, /** - * Lookup323: pallet_nfts::types::MintWitness + * Lookup324: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup324: pallet_nfts::types::ItemConfig + * Lookup325: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup326: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup327: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup328: pallet_nfts::types::ItemTip + * Lookup329: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3596,7 +3620,7 @@ export default { amount: "u128" }, /** - * Lookup330: pallet_nfts::types::PreSignedMint + * Lookup331: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3608,7 +3632,7 @@ export default { mintPrice: "Option" }, /** - * Lookup331: sp_runtime::MultiSignature + * Lookup332: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3618,7 +3642,7 @@ export default { } }, /** - * Lookup334: pallet_nfts::types::PreSignedAttributes + * Lookup335: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3628,20 +3652,20 @@ export default { deadline: "u32" }, /** - * Lookup335: pallet_sudo::pallet::Error + * Lookup336: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup338: pallet_collator_selection::pallet::CandidateInfo + * Lookup339: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup340: pallet_collator_selection::pallet::Error + * Lookup341: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3665,17 +3689,17 @@ export default { ] }, /** - * Lookup344: sp_core::crypto::KeyTypeId + * Lookup345: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup345: pallet_session::pallet::Error + * Lookup346: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup355: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3685,13 +3709,13 @@ export default { lastIndex: "u16" }, /** - * Lookup355: cumulus_pallet_xcmp_queue::OutboundState + * Lookup356: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup358: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3699,13 +3723,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup359: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup359: pallet_xcm::pallet::QueryStatus + * Lookup360: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3726,7 +3750,7 @@ export default { } }, /** - * Lookup363: xcm::VersionedResponse + * Lookup364: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3738,7 +3762,7 @@ export default { } }, /** - * Lookup369: pallet_xcm::pallet::VersionMigrationStage + * Lookup370: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3748,18 +3772,6 @@ export default { MigrateAndNotifyOldTargets: "Null" } }, - /** - * Lookup372: xcm::VersionedAssetId - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - V3: "XcmV3MultiassetAssetId", - V4: "StagingXcmV4AssetAssetId" - } - }, /** * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ @@ -3794,13 +3806,11 @@ export default { "FeesNotMet", "LockNotFound", "InUse", - "InvalidAssetNotConcrete", + "__Unused20", "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete", - "UnableToDecode", - "XcmTooLarge" + "LocalExecutionIncomplete" ] }, /** @@ -4288,7 +4298,19 @@ export default { **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup464: storage_hub_runtime::Runtime + * Lookup464: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: "FrameMetadataHashExtensionMode" + }, + /** + * Lookup465: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: ["Disabled", "Enabled"] + }, + /** + * Lookup466: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index 72dae68ec..2d5ad6332 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index a15d9e30a..7f5662e04 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -2576,13 +2576,14 @@ declare const _default: { assets: string; beneficiary: string; }; - execute_blob: { - encodedMessage: string; - maxWeight: string; - }; - send_blob: { + transfer_assets_using_type_and_then: { dest: string; - encodedMessage: string; + assets: string; + assetsTransferType: string; + remoteFeesId: string; + feesTransferType: string; + customXcmOnDest: string; + weightLimit: string; }; }; }; @@ -2992,11 +2993,34 @@ declare const _default: { _enum: string[]; }; /** - * Lookup298: cumulus_pallet_xcm::pallet::Call + * Lookup297: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: string; + LocalReserve: string; + DestinationReserve: string; + RemoteReserve: string; + }; + }; + /** + * Lookup298: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: string; + __Unused1: string; + __Unused2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup299: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: string; /** - * Lookup299: pallet_message_queue::pallet::Call + * Lookup300: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3013,7 +3037,7 @@ declare const _default: { }; }; /** - * Lookup300: pallet_storage_providers::pallet::Call + * Lookup301: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3062,7 +3086,7 @@ declare const _default: { }; }; /** - * Lookup301: pallet_file_system::pallet::Call + * Lookup302: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3168,13 +3192,13 @@ declare const _default: { }; }; /** - * Lookup302: pallet_file_system::types::BucketMoveRequestResponse + * Lookup303: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: string[]; }; /** - * Lookup307: pallet_proofs_dealer::pallet::Call + * Lookup308: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3194,13 +3218,13 @@ declare const _default: { }; }; /** - * Lookup308: pallet_randomness::pallet::Call + * Lookup309: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: string[]; }; /** - * Lookup309: pallet_payment_streams::pallet::Call + * Lookup310: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3240,7 +3264,7 @@ declare const _default: { }; }; /** - * Lookup310: pallet_bucket_nfts::pallet::Call + * Lookup311: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3258,7 +3282,7 @@ declare const _default: { }; }; /** - * Lookup312: pallet_nfts::pallet::Call + * Lookup313: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3455,7 +3479,7 @@ declare const _default: { }; }; /** - * Lookup313: pallet_nfts::types::CollectionConfig + * Lookup314: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: string; @@ -3463,13 +3487,13 @@ declare const _default: { mintSettings: string; }; /** - * Lookup315: pallet_nfts::types::CollectionSetting + * Lookup316: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: string[]; }; /** - * Lookup316: pallet_nfts::types::MintSettings + * Lookup317: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: string; @@ -3479,7 +3503,7 @@ declare const _default: { defaultItemSettings: string; }; /** - * Lookup317: pallet_nfts::types::MintType + * Lookup318: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3489,13 +3513,13 @@ declare const _default: { }; }; /** - * Lookup320: pallet_nfts::types::ItemSetting + * Lookup321: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: string[]; }; /** - * Lookup321: pallet_nfts::types::DestroyWitness + * Lookup322: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: string; @@ -3503,26 +3527,26 @@ declare const _default: { attributes: string; }; /** - * Lookup323: pallet_nfts::types::MintWitness + * Lookup324: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: string; mintPrice: string; }; /** - * Lookup324: pallet_nfts::types::ItemConfig + * Lookup325: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: string; }; /** - * Lookup326: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup327: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: string; }; /** - * Lookup328: pallet_nfts::types::ItemTip + * Lookup329: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: string; @@ -3531,7 +3555,7 @@ declare const _default: { amount: string; }; /** - * Lookup330: pallet_nfts::types::PreSignedMint + * Lookup331: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: string; @@ -3543,7 +3567,7 @@ declare const _default: { mintPrice: string; }; /** - * Lookup331: sp_runtime::MultiSignature + * Lookup332: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3553,7 +3577,7 @@ declare const _default: { }; }; /** - * Lookup334: pallet_nfts::types::PreSignedAttributes + * Lookup335: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3563,36 +3587,36 @@ declare const _default: { deadline: string; }; /** - * Lookup335: pallet_sudo::pallet::Error + * Lookup336: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup338: pallet_collator_selection::pallet::CandidateInfo + * Lookup339: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup340: pallet_collator_selection::pallet::Error + * Lookup341: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup344: sp_core::crypto::KeyTypeId + * Lookup345: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup345: pallet_session::pallet::Error + * Lookup346: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup355: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3602,13 +3626,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup355: cumulus_pallet_xcmp_queue::OutboundState + * Lookup356: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup358: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3616,13 +3640,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup359: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup359: pallet_xcm::pallet::QueryStatus + * Lookup360: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3643,7 +3667,7 @@ declare const _default: { }; }; /** - * Lookup363: xcm::VersionedResponse + * Lookup364: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3655,7 +3679,7 @@ declare const _default: { }; }; /** - * Lookup369: pallet_xcm::pallet::VersionMigrationStage + * Lookup370: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3665,18 +3689,6 @@ declare const _default: { MigrateAndNotifyOldTargets: string; }; }; - /** - * Lookup372: xcm::VersionedAssetId - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: string; - __Unused1: string; - __Unused2: string; - V3: string; - V4: string; - }; - }; /** * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ @@ -3980,7 +3992,19 @@ declare const _default: { **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup464: storage_hub_runtime::Runtime + * Lookup464: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: string; + }; + /** + * Lookup465: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: string[]; + }; + /** + * Lookup466: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index d377e3644..7b2f6648c 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -3082,15 +3082,15 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; - readonly isExecuteBlob: boolean; - readonly asExecuteBlob: { - readonly encodedMessage: Bytes; - readonly maxWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isSendBlob: boolean; - readonly asSendBlob: { + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { readonly dest: XcmVersionedLocation; - readonly encodedMessage: Bytes; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; } & Struct; readonly type: | "Send" @@ -3106,8 +3106,7 @@ declare module "@polkadot/types/lookup" { | "ForceSuspension" | "TransferAssets" | "ClaimAssets" - | "ExecuteBlob" - | "SendBlob"; + | "TransferAssetsUsingTypeAndThen"; } /** @name XcmVersionedXcm (261) */ interface XcmVersionedXcm extends Enum { @@ -3667,9 +3666,26 @@ declare module "@polkadot/types/lookup" { readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name CumulusPalletXcmCall (298) */ + /** @name StagingXcmExecutorAssetTransferTransferType (297) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; + } + /** @name XcmVersionedAssetId (298) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly type: "V3" | "V4"; + } + /** @name CumulusPalletXcmCall (299) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (299) */ + /** @name PalletMessageQueueCall (300) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3685,7 +3701,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (300) */ + /** @name PalletStorageProvidersCall (301) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -3750,7 +3766,7 @@ declare module "@polkadot/types/lookup" { | "ForceBspSignUp" | "Slash"; } - /** @name PalletFileSystemCall (301) */ + /** @name PalletFileSystemCall (302) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { @@ -3875,13 +3891,13 @@ declare module "@polkadot/types/lookup" { | "PendingFileDeletionRequestSubmitProof" | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (302) */ + /** @name PalletFileSystemBucketMoveRequestResponse (303) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletProofsDealerCall (307) */ + /** @name PalletProofsDealerCall (308) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -3902,12 +3918,12 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (308) */ + /** @name PalletRandomnessCall (309) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (309) */ + /** @name PalletPaymentStreamsCall (310) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -3960,7 +3976,7 @@ declare module "@polkadot/types/lookup" { | "PayOutstandingDebt" | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (310) */ + /** @name PalletBucketNftsCall (311) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -3977,7 +3993,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (312) */ + /** @name PalletNftsCall (313) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4249,13 +4265,13 @@ declare module "@polkadot/types/lookup" { | "MintPreSigned" | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (313) */ + /** @name PalletNftsCollectionConfig (314) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (315) */ + /** @name PalletNftsCollectionSetting (316) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4269,7 +4285,7 @@ declare module "@polkadot/types/lookup" { | "UnlockedMaxSupply" | "DepositRequired"; } - /** @name PalletNftsMintSettings (316) */ + /** @name PalletNftsMintSettings (317) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4277,7 +4293,7 @@ declare module "@polkadot/types/lookup" { readonly endBlock: Option; readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (317) */ + /** @name PalletNftsMintType (318) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4285,40 +4301,40 @@ declare module "@polkadot/types/lookup" { readonly asHolderOf: u32; readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (320) */ + /** @name PalletNftsItemSetting (321) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; readonly isUnlockedAttributes: boolean; readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (321) */ + /** @name PalletNftsDestroyWitness (322) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (323) */ + /** @name PalletNftsMintWitness (324) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (324) */ + /** @name PalletNftsItemConfig (325) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (326) */ + /** @name PalletNftsCancelAttributesApprovalWitness (327) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (328) */ + /** @name PalletNftsItemTip (329) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; readonly receiver: AccountId32; readonly amount: u128; } - /** @name PalletNftsPreSignedMint (330) */ + /** @name PalletNftsPreSignedMint (331) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4328,7 +4344,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (331) */ + /** @name SpRuntimeMultiSignature (332) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4338,7 +4354,7 @@ declare module "@polkadot/types/lookup" { readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (334) */ + /** @name PalletNftsPreSignedAttributes (335) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4346,17 +4362,17 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletSudoError (335) */ + /** @name PalletSudoError (336) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (338) */ + /** @name PalletCollatorSelectionCandidateInfo (339) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (340) */ + /** @name PalletCollatorSelectionError (341) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4394,9 +4410,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (344) */ + /** @name SpCoreCryptoKeyTypeId (345) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (345) */ + /** @name PalletSessionError (346) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4410,7 +4426,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (354) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (355) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4418,26 +4434,26 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (355) */ + /** @name CumulusPalletXcmpQueueOutboundState (356) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (357) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (358) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (358) */ + /** @name CumulusPalletXcmpQueueError (359) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (359) */ + /** @name PalletXcmQueryStatus (360) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4458,7 +4474,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (363) */ + /** @name XcmVersionedResponse (364) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4468,7 +4484,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (369) */ + /** @name PalletXcmVersionMigrationStage (370) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4481,14 +4497,6 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (372) */ - interface XcmVersionedAssetId extends Enum { - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetAssetId; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssetId; - readonly type: "V3" | "V4"; - } /** @name PalletXcmRemoteLockedFungibleRecord (373) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; @@ -4518,13 +4526,10 @@ declare module "@polkadot/types/lookup" { readonly isFeesNotMet: boolean; readonly isLockNotFound: boolean; readonly isInUse: boolean; - readonly isInvalidAssetNotConcrete: boolean; readonly isInvalidAssetUnknownReserve: boolean; readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; - readonly isUnableToDecode: boolean; - readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4546,13 +4551,10 @@ declare module "@polkadot/types/lookup" { | "FeesNotMet" | "LockNotFound" | "InUse" - | "InvalidAssetNotConcrete" | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete" - | "UnableToDecode" - | "XcmTooLarge"; + | "LocalExecutionIncomplete"; } /** @name PalletMessageQueueBookState (381) */ interface PalletMessageQueueBookState extends Struct { @@ -5124,6 +5126,16 @@ declare module "@polkadot/types/lookup" { interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (463) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (464) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (464) */ + interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: FrameMetadataHashExtensionMode; + } + /** @name FrameMetadataHashExtensionMode (465) */ + interface FrameMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: "Disabled" | "Enabled"; + } + /** @name StorageHubRuntimeRuntime (466) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index 3d28ed1f9..73e6d5b3e 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -2625,13 +2625,14 @@ export default { assets: "XcmVersionedAssets", beneficiary: "XcmVersionedLocation" }, - execute_blob: { - encodedMessage: "Bytes", - maxWeight: "SpWeightsWeightV2Weight" - }, - send_blob: { + transfer_assets_using_type_and_then: { dest: "XcmVersionedLocation", - encodedMessage: "Bytes" + assets: "XcmVersionedAssets", + assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", + remoteFeesId: "XcmVersionedAssetId", + feesTransferType: "StagingXcmExecutorAssetTransferTransferType", + customXcmOnDest: "XcmVersionedXcm", + weightLimit: "XcmV3WeightLimit" } } }, @@ -3041,11 +3042,34 @@ export default { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup298: cumulus_pallet_xcm::pallet::Call + * Lookup297: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: "Null", + LocalReserve: "Null", + DestinationReserve: "Null", + RemoteReserve: "XcmVersionedLocation" + } + }, + /** + * Lookup298: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + V3: "XcmV3MultiassetAssetId", + V4: "StagingXcmV4AssetAssetId" + } + }, + /** + * Lookup299: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup299: pallet_message_queue::pallet::Call + * Lookup300: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3062,7 +3086,7 @@ export default { } }, /** - * Lookup300: pallet_storage_providers::pallet::Call + * Lookup301: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3111,7 +3135,7 @@ export default { } }, /** - * Lookup301: pallet_file_system::pallet::Call + * Lookup302: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3217,13 +3241,13 @@ export default { } }, /** - * Lookup302: pallet_file_system::types::BucketMoveRequestResponse + * Lookup303: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup307: pallet_proofs_dealer::pallet::Call + * Lookup308: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3243,13 +3267,13 @@ export default { } }, /** - * Lookup308: pallet_randomness::pallet::Call + * Lookup309: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup309: pallet_payment_streams::pallet::Call + * Lookup310: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3289,7 +3313,7 @@ export default { } }, /** - * Lookup310: pallet_bucket_nfts::pallet::Call + * Lookup311: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3307,7 +3331,7 @@ export default { } }, /** - * Lookup312: pallet_nfts::pallet::Call + * Lookup313: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3504,7 +3528,7 @@ export default { } }, /** - * Lookup313: pallet_nfts::types::CollectionConfig + * Lookup314: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3512,7 +3536,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup315: pallet_nfts::types::CollectionSetting + * Lookup316: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3536,7 +3560,7 @@ export default { ] }, /** - * Lookup316: pallet_nfts::types::MintSettings + * Lookup317: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3546,7 +3570,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup317: pallet_nfts::types::MintType + * Lookup318: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3556,13 +3580,13 @@ export default { } }, /** - * Lookup320: pallet_nfts::types::ItemSetting + * Lookup321: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup321: pallet_nfts::types::DestroyWitness + * Lookup322: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3570,26 +3594,26 @@ export default { attributes: "Compact" }, /** - * Lookup323: pallet_nfts::types::MintWitness + * Lookup324: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup324: pallet_nfts::types::ItemConfig + * Lookup325: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup326: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup327: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup328: pallet_nfts::types::ItemTip + * Lookup329: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3598,7 +3622,7 @@ export default { amount: "u128" }, /** - * Lookup330: pallet_nfts::types::PreSignedMint + * Lookup331: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3610,7 +3634,7 @@ export default { mintPrice: "Option" }, /** - * Lookup331: sp_runtime::MultiSignature + * Lookup332: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3620,7 +3644,7 @@ export default { } }, /** - * Lookup334: pallet_nfts::types::PreSignedAttributes + * Lookup335: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3630,20 +3654,20 @@ export default { deadline: "u32" }, /** - * Lookup335: pallet_sudo::pallet::Error + * Lookup336: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup338: pallet_collator_selection::pallet::CandidateInfo + * Lookup339: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup340: pallet_collator_selection::pallet::Error + * Lookup341: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3667,17 +3691,17 @@ export default { ] }, /** - * Lookup344: sp_core::crypto::KeyTypeId + * Lookup345: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup345: pallet_session::pallet::Error + * Lookup346: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup354: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup355: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3687,13 +3711,13 @@ export default { lastIndex: "u16" }, /** - * Lookup355: cumulus_pallet_xcmp_queue::OutboundState + * Lookup356: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup357: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup358: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3701,13 +3725,13 @@ export default { resumeThreshold: "u32" }, /** - * Lookup358: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup359: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] }, /** - * Lookup359: pallet_xcm::pallet::QueryStatus + * Lookup360: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3728,7 +3752,7 @@ export default { } }, /** - * Lookup363: xcm::VersionedResponse + * Lookup364: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3740,7 +3764,7 @@ export default { } }, /** - * Lookup369: pallet_xcm::pallet::VersionMigrationStage + * Lookup370: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3750,18 +3774,6 @@ export default { MigrateAndNotifyOldTargets: "Null" } }, - /** - * Lookup372: xcm::VersionedAssetId - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - V3: "XcmV3MultiassetAssetId", - V4: "StagingXcmV4AssetAssetId" - } - }, /** * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ @@ -3796,13 +3808,11 @@ export default { "FeesNotMet", "LockNotFound", "InUse", - "InvalidAssetNotConcrete", + "__Unused20", "InvalidAssetUnknownReserve", "InvalidAssetUnsupportedReserve", "TooManyReserves", - "LocalExecutionIncomplete", - "UnableToDecode", - "XcmTooLarge" + "LocalExecutionIncomplete" ] }, /** @@ -4290,7 +4300,19 @@ export default { **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup464: storage_hub_runtime::Runtime + * Lookup464: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: "FrameMetadataHashExtensionMode" + }, + /** + * Lookup465: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: ["Disabled", "Enabled"] + }, + /** + * Lookup466: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index 6771c21d0..88f5ce329 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -3235,15 +3235,15 @@ declare module "@polkadot/types/lookup" { readonly assets: XcmVersionedAssets; readonly beneficiary: XcmVersionedLocation; } & Struct; - readonly isExecuteBlob: boolean; - readonly asExecuteBlob: { - readonly encodedMessage: Bytes; - readonly maxWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isSendBlob: boolean; - readonly asSendBlob: { + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { readonly dest: XcmVersionedLocation; - readonly encodedMessage: Bytes; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; } & Struct; readonly type: | "Send" @@ -3259,8 +3259,7 @@ declare module "@polkadot/types/lookup" { | "ForceSuspension" | "TransferAssets" | "ClaimAssets" - | "ExecuteBlob" - | "SendBlob"; + | "TransferAssetsUsingTypeAndThen"; } /** @name XcmVersionedXcm (261) */ @@ -3838,10 +3837,29 @@ declare module "@polkadot/types/lookup" { readonly type: "Fungible" | "NonFungible"; } - /** @name CumulusPalletXcmCall (298) */ + /** @name StagingXcmExecutorAssetTransferTransferType (297) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; + } + + /** @name XcmVersionedAssetId (298) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly type: "V3" | "V4"; + } + + /** @name CumulusPalletXcmCall (299) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (299) */ + /** @name PalletMessageQueueCall (300) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3858,7 +3876,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (300) */ + /** @name PalletStorageProvidersCall (301) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -3924,7 +3942,7 @@ declare module "@polkadot/types/lookup" { | "Slash"; } - /** @name PalletFileSystemCall (301) */ + /** @name PalletFileSystemCall (302) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { @@ -4050,14 +4068,14 @@ declare module "@polkadot/types/lookup" { | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (302) */ + /** @name PalletFileSystemBucketMoveRequestResponse (303) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletProofsDealerCall (307) */ + /** @name PalletProofsDealerCall (308) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -4079,13 +4097,13 @@ declare module "@polkadot/types/lookup" { readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (308) */ + /** @name PalletRandomnessCall (309) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (309) */ + /** @name PalletPaymentStreamsCall (310) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -4139,7 +4157,7 @@ declare module "@polkadot/types/lookup" { | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (310) */ + /** @name PalletBucketNftsCall (311) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -4157,7 +4175,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (312) */ + /** @name PalletNftsCall (313) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4430,14 +4448,14 @@ declare module "@polkadot/types/lookup" { | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (313) */ + /** @name PalletNftsCollectionConfig (314) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (315) */ + /** @name PalletNftsCollectionSetting (316) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4452,7 +4470,7 @@ declare module "@polkadot/types/lookup" { | "DepositRequired"; } - /** @name PalletNftsMintSettings (316) */ + /** @name PalletNftsMintSettings (317) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4461,7 +4479,7 @@ declare module "@polkadot/types/lookup" { readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (317) */ + /** @name PalletNftsMintType (318) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4470,7 +4488,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (320) */ + /** @name PalletNftsItemSetting (321) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; @@ -4478,30 +4496,30 @@ declare module "@polkadot/types/lookup" { readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (321) */ + /** @name PalletNftsDestroyWitness (322) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (323) */ + /** @name PalletNftsMintWitness (324) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (324) */ + /** @name PalletNftsItemConfig (325) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (326) */ + /** @name PalletNftsCancelAttributesApprovalWitness (327) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (328) */ + /** @name PalletNftsItemTip (329) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; @@ -4509,7 +4527,7 @@ declare module "@polkadot/types/lookup" { readonly amount: u128; } - /** @name PalletNftsPreSignedMint (330) */ + /** @name PalletNftsPreSignedMint (331) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4520,7 +4538,7 @@ declare module "@polkadot/types/lookup" { readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (331) */ + /** @name SpRuntimeMultiSignature (332) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4531,7 +4549,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (334) */ + /** @name PalletNftsPreSignedAttributes (335) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4540,19 +4558,19 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletSudoError (335) */ + /** @name PalletSudoError (336) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (338) */ + /** @name PalletCollatorSelectionCandidateInfo (339) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (340) */ + /** @name PalletCollatorSelectionError (341) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4591,10 +4609,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (344) */ + /** @name SpCoreCryptoKeyTypeId (345) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (345) */ + /** @name PalletSessionError (346) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4609,7 +4627,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (354) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (355) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4618,21 +4636,21 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (355) */ + /** @name CumulusPalletXcmpQueueOutboundState (356) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (357) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (358) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (358) */ + /** @name CumulusPalletXcmpQueueError (359) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; @@ -4640,7 +4658,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; } - /** @name PalletXcmQueryStatus (359) */ + /** @name PalletXcmQueryStatus (360) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4662,7 +4680,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (363) */ + /** @name XcmVersionedResponse (364) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4673,7 +4691,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (369) */ + /** @name PalletXcmVersionMigrationStage (370) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4687,15 +4705,6 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name XcmVersionedAssetId (372) */ - interface XcmVersionedAssetId extends Enum { - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetAssetId; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssetId; - readonly type: "V3" | "V4"; - } - /** @name PalletXcmRemoteLockedFungibleRecord (373) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; @@ -4726,13 +4735,10 @@ declare module "@polkadot/types/lookup" { readonly isFeesNotMet: boolean; readonly isLockNotFound: boolean; readonly isInUse: boolean; - readonly isInvalidAssetNotConcrete: boolean; readonly isInvalidAssetUnknownReserve: boolean; readonly isInvalidAssetUnsupportedReserve: boolean; readonly isTooManyReserves: boolean; readonly isLocalExecutionIncomplete: boolean; - readonly isUnableToDecode: boolean; - readonly isXcmTooLarge: boolean; readonly type: | "Unreachable" | "SendFailure" @@ -4754,13 +4760,10 @@ declare module "@polkadot/types/lookup" { | "FeesNotMet" | "LockNotFound" | "InUse" - | "InvalidAssetNotConcrete" | "InvalidAssetUnknownReserve" | "InvalidAssetUnsupportedReserve" | "TooManyReserves" - | "LocalExecutionIncomplete" - | "UnableToDecode" - | "XcmTooLarge"; + | "LocalExecutionIncomplete"; } /** @name PalletMessageQueueBookState (381) */ @@ -5371,6 +5374,18 @@ declare module "@polkadot/types/lookup" { /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (463) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name StorageHubRuntimeRuntime (464) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (464) */ + interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: FrameMetadataHashExtensionMode; + } + + /** @name FrameMetadataHashExtensionMode (465) */ + interface FrameMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: "Disabled" | "Enabled"; + } + + /** @name StorageHubRuntimeRuntime (466) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 9970841c0..b1e7a1d36 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e4507000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400a90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400ad0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b10401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400cd0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d50401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400d90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e10401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c04045400013c1073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e00000455015741524e494e473a20444550524543415445442e206073656e64602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e20557365206073656e645f626c6f626020696e73746561642e3c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687428011857656967687400032cd04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e0049015741524e494e473a20444550524543415445442e206065786563757465602077696c6c2062652072656d6f766564206166746572204a756e6520323032342e205573652060657865637574655f626c6f626020696e73746561642e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e30657865637574655f626c6f6208013c656e636f6465645f6d657373616765a5040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e0001286d61785f776569676874280118576569676874000d28b04578656375746520616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004501416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220746865206d65737361676520636f756c6420626520657865637574656420636f6d706c6574656c79486f72206f6e6c79207061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e2473656e645f626c6f6208011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00013c656e636f6465645f6d657373616765a5040184426f756e6465645665633c75382c204d617858636d456e636f64656453697a653e000e18a453656e6420616e2058434d2066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e0055015468652064657374696e6174696f6e2c206064657374602c2077696c6c20726563656976652074686973206d65737361676520776974682061206044657363656e644f726967696e6020696e737472756374696f6e090174686174206d616b657320746865206f726967696e206f6620746865206d65737361676520626520746865206f726967696e206f6e20746869732073797374656d2e004501546865206d6573736167652069732070617373656420696e20656e636f6465642e204974206e6565647320746f206265206465636f6461626c652061732061205b6056657273696f6e656458636d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a9040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b5040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365b90401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673bd04013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66c90401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000bd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c104045300000400c50401185665633c543e0000c1040000040834390200c504000002c10400c90404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000cd040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574d9040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578dd0401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd0404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e1040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730505013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461090501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967110501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773e9040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e5040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731905017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f1040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365f904015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572150501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970731d05019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746129050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613905016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e61747572652d050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773e9040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f10401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000e9040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401ed04000400300144436f6c6c656374696f6e53657474696e670000ed040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f1040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f50401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365f90401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773fd0401304974656d53657474696e67730000f5040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000f90404184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000fd040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401010500040030012c4974656d53657474696e67000001050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000005050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000090504184f7074696f6e040454010d050108104e6f6e6500000010536f6d6504000d0500000100000d050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e000011050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773fd0401304974656d53657474696e67730000150504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e103000001000019050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c75333200001d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012105045300000400250501185665633c543e000021050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000250500000221050029050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365f904013c4f7074696f6e3c42616c616e63653e00002d05082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040031050148656432353531393a3a5369676e61747572650000001c53723235353139040031050148737232353531393a3a5369676e617475726500010014456364736104003505014065636473613a3a5369676e6174757265000200003105000003400000000800350500000341000000080039050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e6500003d050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e41050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000045050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540149050453000004004d0501185665633c543e000049050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e636500004d0500000249050051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5505000002590500590500000408000504005d05000004086105380061050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000065050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e69050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540109040453000004006d0501185665633c543e00006d050000020904007105084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007505000004087105100079050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004007d05012c42547265655365743c543e00007d050420425472656553657404045401e90100040081050000008105000002e9010085050000028905008905086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e901011850617261496400011473746174658d0501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600008d05086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000910500000408e901e902009505086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000099050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a10501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a50501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365ad05014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a10504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a50504184f7074696f6e04045401a9050108104e6f6e6500000010536f6d650400a9050000010000a90500000408080800ad05080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b1050000040810d90100b5050000040c30281000b9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd05045300000400c10501185665633c543e0000bd0500000408d9011000c105000002bd0500c5050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400c905013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000c90504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000cd050000040c1000d10500d105080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000d5050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d90501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400e10501185665633c543e0000dd0500000408981800e105000002dd0500e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e9050000040818d90100ed05000002e90500f1050c2870616c6c65745f78636d1870616c6c6574144572726f7204045400016c2c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e38556e61626c65546f4465636f646500190454436f756c64206e6f74206465636f64652058434d2e2c58636d546f6f4c61726765001a088058434d20656e636f646564206c656e67746820697320746f6f206c617267652e1d0152657475726e6564207768656e20616e2058434d20656e636f646564206c656e677468206973206c6172676572207468616e20604d617858636d456e636f64656453697a65602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef505085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f90501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f90504184f7074696f6e04045401fd050108104e6f6e6500000010536f6d650400fd050000010000fd05085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000010600000408e50110000506085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700906019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000009060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1106000004081506100015060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400190601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f766964657204001d0601584d61696e53746f7261676550726f76696465723c543e0001000019060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e00001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473210601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000021060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012506045300000400290601185665633c543e000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000029060000022506002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000031060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6735060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370390601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073410601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000390604184f7074696f6e040454013d060108104e6f6e6500000010536f6d6504003d0600000100003d060000040834200041060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000045060000040834340049060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015506045300000400590601185665633c543e000055060000040800340059060000025506005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e0000610600000245060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e00006906000004081030006d060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000071060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75060000040810340079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000081060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008506012c42547265655365743c543e000085060420425472656553657404045401340004001d0200000089060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200008d060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91060000040834100095060000040834000099060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a9060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b1060000040c00101000b50600000408001000b90600000408100000bd060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c106000400080138436f6c6c656374696f6e526f6c650000c1060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c5060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c90624417070726f76616c7301cd06000c01146f776e65720001244163636f756e744964000124617070726f76616c73cd060124417070726f76616c7300011c6465706f736974c906011c4465706f7369740000c9060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000cd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400d106013842547265654d61703c4b2c20563e0000d106042042547265654d617008044b01000456011102000400d506000000d506000002d90600d9060000040800110200dd060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e5062c537472696e674c696d6974000008011c6465706f736974e506011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e5060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e906000004101011028502810200ed06000004087902f10600f1060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f50600000408189c00f9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400fd06012c42547265655365743c543e0000fd06042042547265655365740404540100000400a400000001070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000005070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401090700040030013450616c6c657446656174757265000009070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c73000400145377617073000800000d070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1107102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e6174757265012d051445787472610115070004003800000015070000042419071d072107250729073107350739073d0700190710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000250710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000290710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002d07010c45726100002d07102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000310710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000350710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003907086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e00003d0708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004107084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f503019000013d050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100410504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010045050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015105151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010055050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e6572000104055d0500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800016505161041757261011041757261082c417574686f726974696573010069050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010071052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006905040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000750504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010079050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010085050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205910538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009505302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0199051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c5175657269657300010402309d050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b10510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b10530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b105b50504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100b90504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c5050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202cd05d505040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e505040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f1051f2843756d756c757358636d0001a90401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f50574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505010605060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01ad0401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c9020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010d06212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001106040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f76696465727300010402341d060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342506040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b65747300010402342d0604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023419060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b10401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013106282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023435060400004853746f7261676552657175657374427370730001080202450649060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202450698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104d06040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105106040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105d06040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200650604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020245066906040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020245066d06040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202450698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b504010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017106293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020275069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007906040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007d06040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210810604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01cd040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8906100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e018d062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000091060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000091060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d10401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029506990604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d73000108020295069d0604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a10650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d504016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a5062c284275636b65744e6674730001d9040171020001a9062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210ad06040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b10698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b5069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b906bd06040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102c506040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210dd0604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102e10604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e906ed06040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a102f506040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102f90604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a10201070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e5040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10211050400044c20436f6e666967206f6620616e206974656d2e01e1040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573050720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010d07321107042448436865636b4e6f6e5a65726f53656e64657219079840436865636b5370656356657273696f6e1d071038436865636b547856657273696f6e21071030436865636b47656e6573697325073438436865636b4d6f7274616c69747929073428436865636b4e6f6e63653107982c436865636b576569676874350798604368617267655472616e73616374696f6e5061796d656e743907985053746f726167655765696768745265636c61696d3d07984107","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e4d07000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400ad0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400b10401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b50401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400d10401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d90401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400dd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e50401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065a5040144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964a9040154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065a5040144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737415040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a504105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e00030000a904080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000ad040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b9040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365bd0401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673c104013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66cd0401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000c1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c504045300000400c90401185665633c543e0000c5040000040834390200c904000002c50400cd0404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000d1040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574dd040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e10401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e10401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee10404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e5040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e9040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e9040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730905013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f646174610d0501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967150501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773ed040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e9040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731d05017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f5040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365fd04015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970732105019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f646174612d050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726531050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613d05016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726531050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773ed040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f50401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000ed040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401f104000400300144436f6c6c656374696f6e53657474696e670000f1040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f5040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f90401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365fd0401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773010501304974656d53657474696e67730000f9040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000fd0404184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000001050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401050500040030012c4974656d53657474696e67000005050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000009050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c75333200000d0504184f7074696f6e0404540111050108104e6f6e6500000010536f6d6504001105000001000011050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365fd04013c4f7074696f6e3c42616c616e63653e000015050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773010501304974656d53657474696e67730000190504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e10300000100001d050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000021050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012505045300000400290501185665633c543e000025050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000029050000022505002d050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365fd04013c4f7074696f6e3c42616c616e63653e00003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c53723235353139040035050148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e617475726500020000350500000340000000080039050000034100000008003d050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000041050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e45050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000049050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d05045300000400510501185665633c543e00004d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000051050000024d050055050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e59050000025d05005d0500000408000504006105000004086505380065050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000069050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e6d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400710501185665633c543e000071050000020904007505084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c7536340000790500000408750510007d050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008105012c42547265655365743c543e000081050420425472656553657404045401e90100040085050000008505000002e9010089050000028d05008d05086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465910501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600009105086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000950500000408e901e902009905086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c75333200009d050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea1050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a50501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a90501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365b105014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a50504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a90504184f7074696f6e04045401ad050108104e6f6e6500000010536f6d650400ad050000010000ad0500000408080800b105080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b5050000040810d90100b9050000040c30281000bd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c105045300000400c50501185665633c543e0000c10500000408d9011000c505000002c10500c9050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400cd05013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000cd0504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000d1050000040c1000a90400d5050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d90501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400e10501185665633c543e0000dd0500000408981800e105000002dd0500e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e9050000040818d90100ed05000002e90500f1050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef505085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f90501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f90504184f7074696f6e04045401fd050108104e6f6e6500000010536f6d650400fd050000010000fd05085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000010600000408e50110000506085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700906019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000009060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1106000004081506100015060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400190601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f766964657204001d0601584d61696e53746f7261676550726f76696465723c543e0001000019060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e00001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473210601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000021060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012506045300000400290601185665633c543e000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000029060000022506002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000031060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6735060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370390601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073410601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000390604184f7074696f6e040454013d060108104e6f6e6500000010536f6d6504003d0600000100003d060000040834200041060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000045060000040834340049060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015506045300000400590601185665633c543e000055060000040800340059060000025506005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e0000610600000245060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e00006906000004081030006d060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000071060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75060000040810340079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000081060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008506012c42547265655365743c543e000085060420425472656553657404045401340004001d0200000089060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200008d060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91060000040834100095060000040834000099060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a9060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b1060000040c00101000b50600000408001000b90600000408100000bd060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c106000400080138436f6c6c656374696f6e526f6c650000c1060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c5060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c90624417070726f76616c7301cd06000c01146f776e65720001244163636f756e744964000124617070726f76616c73cd060124417070726f76616c7300011c6465706f736974c906011c4465706f7369740000c9060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000cd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400d106013842547265654d61703c4b2c20563e0000d106042042547265654d617008044b01000456011102000400d506000000d506000002d90600d9060000040800110200dd060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e5062c537472696e674c696d6974000008011c6465706f736974e506011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e5060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e906000004101011028502810200ed06000004087902f10600f1060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f50600000408189c00f9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400fd06012c42547265655365743c543e0000fd06042042547265655365740404540100000400a400000001070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000005070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401090700040030013450616c6c657446656174757265000009070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c73000400145377617073000800000d070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1107102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e61747572650131051445787472610115070004003800000015070000042819071d072107250729073107350739073d07410700190710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000250710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000290710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002d07010c45726100002d07102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000310710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000350710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003907086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e00003d0708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d04045400000000410708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465450701104d6f64650000450708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c6564000100004907084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f5030190000141050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100450504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010049050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015505151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010059050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405610500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800016905161041757261011041757261082c417574686f72697469657301006d050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010075052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006d05040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000790504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e64656401007d050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010089050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205950538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009905302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e019d051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230a1050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b50510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b50530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b505b90504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100bd0504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c9050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202d105d505040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e505040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f1051f2843756d756c757358636d0001ad0401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f50574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505010605060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01b10401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c9020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010d06212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001106040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f76696465727300010402341d060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342506040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b65747300010402342d0604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023419060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b50401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013106282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023435060400004853746f7261676552657175657374427370730001080202450649060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202450698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104d06040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105106040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105d06040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200650604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020245066906040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020245066d06040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202450698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b904010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017106293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020275069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007906040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007d06040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210810604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01d1040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8906100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e018d062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000091060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000091060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d50401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029506990604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d73000108020295069d0604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a10650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d904016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a5062c284275636b65744e6674730001dd040171020001a9062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210ad06040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b10698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b5069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b906bd06040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102c506040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210dd0604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102e10604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e906ed06040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a102f506040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102f90604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a10201070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e9040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10215050400044c20436f6e666967206f6620616e206974656d2e01e5040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573050720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010d07321107042848436865636b4e6f6e5a65726f53656e64657219079840436865636b5370656356657273696f6e1d071038436865636b547856657273696f6e21071030436865636b47656e6573697325073438436865636b4d6f7274616c69747929073428436865636b4e6f6e63653107982c436865636b576569676874350798604368617267655472616e73616374696f6e5061796d656e743907985053746f726167655765696768745265636c61696d3d079844436865636b4d65746164617461486173684107804907","id":"1"} \ No newline at end of file From f85735df6e5db189619f3ae7f09269e2f7765481 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Tue, 1 Oct 2024 09:42:33 -0300 Subject: [PATCH 18/24] fix: :white_check_mark: fix node tests after rebenchmark of balances pallet in v1.11.0 --- test/util/constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/util/constants.ts b/test/util/constants.ts index 89d247a29..6ac6bb209 100644 --- a/test/util/constants.ts +++ b/test/util/constants.ts @@ -1,3 +1,3 @@ export const UNIT = 1_000_000_000_000n; -export const ROUGH_TRANSFER_FEE = 1_472_378_298n; // This is just naive copypaste from explorer +export const ROUGH_TRANSFER_FEE = 1_482_409_632n; // This is just naive copypaste from explorer export const DOCKER_IMAGE = "storage-hub:local"; From b7090b530a732ad89218686f712c779b3bcaeef3 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Thu, 3 Oct 2024 19:43:02 -0300 Subject: [PATCH 19/24] feat: :arrow_up: update to Polkadot SDK v1.12.0 --- Cargo.lock | 7288 ++++++++++++----- Cargo.toml | 201 +- node/src/service.rs | 4 +- runtime/Cargo.toml | 4 + runtime/src/apis.rs | 108 + runtime/src/configs/mod.rs | 4 +- runtime/src/configs/xcm_config.rs | 1 + runtime/src/lib.rs | 13 +- xcm-simulator/Cargo.toml | 1 + xcm-simulator/src/parachain/xcm_config/mod.rs | 1 + .../src/relay_chain/xcm_config/mod.rs | 1 + .../src/storagehub/configs/xcm_config.rs | 1 + xcm-simulator/src/storagehub/mod.rs | 11 - .../src/system_chain/xcm_config/mod.rs | 1 + 14 files changed, 5287 insertions(+), 2352 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d19fa8f51..3d7560ea6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -463,21 +463,6 @@ dependencies = [ "scale-info", ] -[[package]] -name = "ark-secret-scalar" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", - "digest 0.10.7", - "getrandom_or_panic", - "zeroize", -] - [[package]] name = "ark-secret-scalar" version = "0.0.2" @@ -487,7 +472,7 @@ dependencies = [ "ark-ff", "ark-serialize", "ark-std", - "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "ark-transcript", "digest 0.10.7", "getrandom_or_panic", "zeroize", @@ -527,19 +512,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "ark-transcript" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", -] - [[package]] name = "ark-transcript" version = "0.0.2" @@ -847,27 +819,6 @@ dependencies = [ "rustc-demangle", ] -[[package]] -name = "bandersnatch_vrfs" -version = "0.0.4" -source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-serialize", - "ark-std", - "dleq_vrf 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "ring 0.1.0 (git+https://github.com/w3f/ring-proof?rev=665f5f5)", - "sha2 0.10.8", - "sp-ark-bls12-381", - "sp-ark-ed-on-bls12-381-bandersnatch", - "zeroize", -] - [[package]] name = "bandersnatch_vrfs" version = "0.0.4" @@ -879,12 +830,12 @@ dependencies = [ "ark-ff", "ark-serialize", "ark-std", - "dleq_vrf 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "dleq_vrf", "fflonk", "merlin", "rand_chacha 0.3.1", "rand_core 0.6.4", - "ring 0.1.0 (git+https://github.com/w3f/ring-proof)", + "ring 0.1.0", "sha2 0.10.8", "sp-ark-bls12-381", "sp-ark-ed-on-bls12-381-bandersnatch", @@ -1182,12 +1133,12 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -1568,22 +1519,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "common" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof?rev=665f5f5#665f5f51af5734c7b6d90b985dd6861d4c5b4752" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "fflonk", - "getrandom_or_panic", - "merlin", - "rand_chacha 0.3.1", -] - [[package]] name = "common" version = "0.1.0" @@ -1962,13 +1897,30 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "clap", "parity-scale-codec", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-service", - "sp-blockchain", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "url", +] + +[[package]] +name = "cumulus-client-cli" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "clap", + "parity-scale-codec", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "url", ] @@ -1977,63 +1929,86 @@ name = "cumulus-client-collator" version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-primitives-core", + "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-client-network 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sp-api 26.0.0", - "sp-consensus", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing", +] + +[[package]] +name = "cumulus-client-collator" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-network 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "futures", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "async-trait", - "cumulus-client-collator", - "cumulus-client-consensus-common", + "cumulus-client-collator 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-client-consensus-proposer", "cumulus-client-parachain-inherent", "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "futures", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-consensus", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-slots", - "sc-telemetry", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "schnellru", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-timestamp 26.0.0", - "substrate-prometheus-endpoint", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", ] @@ -2043,41 +2018,70 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", + "cumulus-client-pov-recovery 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "dyn-clone", "futures", "log", "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots 0.32.0", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-common" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "cumulus-client-pov-recovery 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "dyn-clone", + "futures", + "log", + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", ] [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", - "sp-consensus", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -2087,44 +2091,67 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "cumulus-relay-chain-interface", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "futures-timer", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sp-blockchain", - "sp-consensus", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing", +] + +[[package]] +name = "cumulus-client-network" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "futures", + "futures-timer", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "async-trait", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-interface", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "scale-info", - "sp-api 26.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", ] @@ -2134,21 +2161,45 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "futures-timer", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", - "sc-client-api", - "sc-consensus", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime 31.0.1", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing", +] + +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "futures", + "futures-timer", + "parity-scale-codec", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "rand 0.8.5", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", ] @@ -2157,113 +2208,114 @@ name = "cumulus-client-service" version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "cumulus-client-cli", - "cumulus-client-collator", - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-primitives-proof-size-hostfunction", + "cumulus-client-cli 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-client-collator 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-client-network 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-client-pov-recovery 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-proof-size-hostfunction 0.2.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "cumulus-relay-chain-inprocess-interface", - "cumulus-relay-chain-interface", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "cumulus-relay-chain-minimal-node", "futures", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-sync", - "sc-network-transactions", - "sc-rpc", - "sc-service", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-utils", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-transactions 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-transaction-pool", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "cumulus-pallet-parachain-system", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-aura", - "pallet-timestamp 27.0.0", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-pallet-dmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-parachain-inherent", - "cumulus-primitives-proof-size-hostfunction", + "cumulus-primitives-proof-size-hostfunction 0.2.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "environmental", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "impl-trait-for-tuples", "log", - "pallet-message-queue 31.0.0", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", - "staging-xcm 7.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "trie-db 0.29.1", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2274,70 +2326,71 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-session 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", - "frame-support 28.0.0", - "frame-system 28.0.0", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", - "cumulus-primitives-core", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", - "pallet-message-queue 31.0.0", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-primitives 7.0.0", - "sp-api 26.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -2346,32 +2399,49 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "cumulus-primitives-core" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "scale-info", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "async-trait", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -2384,41 +2454,51 @@ dependencies = [ "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "cumulus-primitives-proof-size-hostfunction" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", - "cumulus-primitives-proof-size-hostfunction", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-proof-size-hostfunction 0.2.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "docify", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", - "frame-support 28.0.0", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "pallet-asset-conversion", "parity-scale-codec", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -2427,22 +2507,22 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "futures-timer", "polkadot-cli", "polkadot-service", - "sc-cli", - "sc-client-api", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sp-api 26.0.0", - "sp-consensus", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -2451,15 +2531,33 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "futures", + "jsonrpsee-core", + "parity-scale-codec", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "cumulus-relay-chain-interface" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "futures", "jsonrpsee-core", "parity-scale-codec", - "polkadot-overseer", - "sc-client-api", - "sp-api 26.0.0", - "sp-blockchain", - "sp-state-machine 0.35.0", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -2470,37 +2568,37 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "array-bytes 6.2.3", "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "cumulus-relay-chain-rpc-interface", "futures", "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-chain-api", "polkadot-node-core-prospective-parachains", "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-service", - "sc-authority-discovery", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-service", - "sc-tracing", - "sc-utils", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tokio", "tracing", ] @@ -2511,32 +2609,32 @@ version = "0.7.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "either", "futures", "futures-timer", "jsonrpsee", "parity-scale-codec", "pin-project", - "polkadot-overseer", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", - "sc-client-api", - "sc-rpc-api", - "sc-service", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "serde", "serde_json", "smoldot", "smoldot-light", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-consensus-babe 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", "tokio-util", @@ -2547,15 +2645,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -2952,22 +3050,6 @@ dependencies = [ "syn 2.0.75", ] -[[package]] -name = "dleq_vrf" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=0fef826#0fef8266d851932ad25d6b41bc4b34d834d1e11d" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-scale", - "ark-secret-scalar 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", - "ark-serialize", - "ark-std", - "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", - "arrayvec 0.7.6", - "zeroize", -] - [[package]] name = "dleq_vrf" version = "0.0.2" @@ -2976,10 +3058,10 @@ dependencies = [ "ark-ec", "ark-ff", "ark-scale", - "ark-secret-scalar 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "ark-secret-scalar", "ark-serialize", "ark-std", - "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "ark-transcript", "arrayvec 0.7.6", "zeroize", ] @@ -3391,7 +3473,17 @@ version = "0.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2ad875162843b0d046276327afe0136e9ed3a23d5a754210fb6f1f33610d39ab" dependencies = [ - "fatality-proc-macro", + "fatality-proc-macro 0.0.6", + "thiserror", +] + +[[package]] +name = "fatality" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" +dependencies = [ + "fatality-proc-macro 0.1.1", "thiserror", ] @@ -3410,6 +3502,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "fatality-proc-macro" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" +dependencies = [ + "expander 2.2.1", + "indexmap 2.4.0", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "fdlimit" version = "0.3.0" @@ -3564,6 +3670,14 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "fork-tree" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", +] + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -3573,6 +3687,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror", +] + [[package]] name = "fragile" version = "2.0.0" @@ -3584,26 +3708,51 @@ name = "frame-benchmarking" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-support-procedural 23.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "linregress", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", ] +[[package]] +name = "frame-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "static_assertions", +] + [[package]] name = "frame-benchmarking" version = "29.0.0" @@ -3640,9 +3789,9 @@ dependencies = [ "chrono", "clap", "comfy-table", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "gethostname", "handlebars", "itertools 0.10.5", @@ -3652,27 +3801,27 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "rand_pcg", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-executor", - "sc-service", - "sc-sysinfo", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", "serde_json", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", @@ -3681,21 +3830,82 @@ dependencies = [ ] [[package]] -name = "frame-election-provider-solution-type" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" +name = "frame-benchmarking-cli" +version = "32.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-election-provider-solution-type" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" + "Inflector", + "array-bytes 6.2.3", + "chrono", + "clap", + "comfy-table", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "gethostname", + "handlebars", + "itertools 0.11.0", + "lazy_static", + "linked-hash-map", + "log", + "parity-scale-codec", + "rand 0.8.5", + "rand_pcg", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "serde_json", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", + "thousands", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3709,17 +3919,34 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "frame-election-provider-support" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "frame-election-provider-support" version = "29.0.0" @@ -3744,19 +3971,38 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "aquamarine 0.3.3", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-try-runtime", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "frame-executive" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "aquamarine 0.5.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "frame-metadata" version = "16.0.0" @@ -3776,12 +4022,27 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "array-bytes 6.2.3", "docify", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "frame-metadata-hash-extension" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "docify", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -3795,7 +4056,7 @@ dependencies = [ "docify", "environmental", "frame-metadata", - "frame-support-procedural 23.0.0", + "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "k256", "log", @@ -3806,21 +4067,62 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-state-machine 0.35.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "static_assertions", + "tt-call", +] + +[[package]] +name = "frame-support" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "aquamarine 0.5.0", + "array-bytes 6.2.3", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata", + "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "smallvec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "static_assertions", "tt-call", ] @@ -3886,6 +4188,25 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "frame-support-procedural" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse 0.2.0", + "expander 2.2.1", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "itertools 0.11.0", + "macro_magic", + "proc-macro-warning", + "proc-macro2", + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "syn 2.0.75", +] + [[package]] name = "frame-support-procedural" version = "24.0.0" @@ -3931,6 +4252,18 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "frame-support-procedural-tools" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" @@ -3952,6 +4285,16 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "frame-support-procedural-tools-derive" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "frame-system" version = "28.0.0" @@ -3959,17 +4302,37 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "cfg-if", "docify", - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", - "sp-weights 27.0.0", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "frame-system" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "cfg-if", + "docify", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -3998,23 +4361,47 @@ name = "frame-system-benchmarking" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "frame-system-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -4022,13 +4409,25 @@ name = "frame-try-runtime" version = "0.34.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "frame-try-runtime" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "fs-err" version = "2.11.0" @@ -6100,15 +6499,15 @@ dependencies = [ "futures", "log", "parity-scale-codec", - "sc-client-api", - "sc-offchain", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-offchain 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-consensus-beefy", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6119,11 +6518,11 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -6515,6 +6914,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" + [[package]] name = "nonzero_ext" version = "0.3.0" @@ -6780,20 +7185,20 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -6801,16 +7206,31 @@ name = "pallet-asset-rate" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-asset-rate" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-asset-rate" version = "8.0.0" @@ -6830,52 +7250,52 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-transaction-payment 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "pallet-assets" version = "29.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", - "pallet-timestamp 27.0.0", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -6883,17 +7303,33 @@ name = "pallet-authority-discovery" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-session 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0", - "sp-authority-discovery 26.0.0", - "sp-runtime 31.0.1", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-authority-discovery" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-authority-discovery" version = "29.0.1" @@ -6916,15 +7352,29 @@ name = "pallet-authorship" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-authorship" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-authorship" version = "29.0.0" @@ -6945,25 +7395,49 @@ name = "pallet-babe" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", - "pallet-timestamp 27.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0", - "sp-consensus-babe 0.32.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-babe" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-babe" version = "29.0.0" @@ -6996,17 +7470,17 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "aquamarine 0.5.0", "docify", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7017,16 +7491,32 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-balances" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-balances" version = "29.0.2" @@ -7049,18 +7539,18 @@ name = "pallet-beefy" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7071,21 +7561,21 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "pallet-beefy", "pallet-mmr", - "pallet-session 28.0.0", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-consensus-beefy", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7094,16 +7584,16 @@ name = "pallet-bounties" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-treasury 27.0.0", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7113,19 +7603,38 @@ version = "0.6.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bitvec", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-broker" version = "0.7.2" @@ -7149,11 +7658,11 @@ dependencies = [ name = "pallet-bucket-nfts" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "num-bigint", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-file-system", "pallet-nfts", "pallet-payment-streams", @@ -7163,12 +7672,12 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7176,38 +7685,38 @@ name = "pallet-child-bounties" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "pallet-bounties", - "pallet-treasury 27.0.0", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", - "pallet-session 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7215,15 +7724,15 @@ name = "pallet-collective" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7233,14 +7742,14 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7249,16 +7758,16 @@ name = "pallet-democracy" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7267,24 +7776,47 @@ name = "pallet-election-provider-multi-phase" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-election-provider-support-benchmarking 27.0.0", + "pallet-election-provider-support-benchmarking 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "strum 0.26.3", ] +[[package]] +name = "pallet-election-provider-multi-phase" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "pallet-election-provider-support-benchmarking 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "strum 0.26.3", +] + [[package]] name = "pallet-election-provider-multi-phase" version = "28.0.0" @@ -7314,20 +7846,34 @@ name = "pallet-election-provider-support-benchmarking" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-election-provider-support-benchmarking" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ec87816a1e32a1ab6deececa99e21e6684b111efe87b11b8298328dbbefd01" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + +[[package]] +name = "pallet-election-provider-support-benchmarking" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ec87816a1e32a1ab6deececa99e21e6684b111efe87b11b8298328dbbefd01" dependencies = [ "frame-benchmarking 29.0.0", "frame-election-provider-support 29.0.0", @@ -7343,17 +7889,17 @@ name = "pallet-elections-phragmen" version = "29.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7363,19 +7909,38 @@ version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-fast-unstake" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-fast-unstake" version = "28.0.0" @@ -7400,12 +7965,12 @@ dependencies = [ name = "pallet-file-system" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "num-bigint", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-bucket-nfts", "pallet-file-system-runtime-api", "pallet-nfts", @@ -7418,12 +7983,12 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7432,8 +7997,8 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7441,21 +8006,21 @@ name = "pallet-grandpa" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0", - "sp-consensus-grandpa", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7465,17 +8030,34 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "enumflags2", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-identity" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "enumflags2", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-identity" version = "29.0.1" @@ -7499,18 +8081,18 @@ name = "pallet-im-online" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-authorship 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7519,15 +8101,15 @@ name = "pallet-indices" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7536,15 +8118,15 @@ name = "pallet-membership" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7554,18 +8136,38 @@ version = "31.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-message-queue" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "environmental", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7594,16 +8196,16 @@ name = "pallet-mmr" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7612,33 +8214,33 @@ name = "pallet-multisig" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "enumflags2", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7646,14 +8248,14 @@ name = "pallet-nis" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7662,16 +8264,16 @@ name = "pallet-nomination-pools" version = "25.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7681,18 +8283,18 @@ name = "pallet-nomination-pools-benchmarking" version = "26.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-bags-list", "pallet-nomination-pools", - "pallet-staking 28.0.0", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7703,7 +8305,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "pallet-nomination-pools", "parity-scale-codec", - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7712,15 +8314,15 @@ name = "pallet-offences" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7729,22 +8331,22 @@ name = "pallet-offences-benchmarking" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-grandpa", "pallet-im-online", "pallet-offences", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7754,15 +8356,15 @@ version = "0.1.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "paste", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7770,10 +8372,10 @@ dependencies = [ name = "pallet-payment-streams" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-balances 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-nfts", "pallet-payment-streams-runtime-api", "pallet-storage-providers", @@ -7781,10 +8383,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7793,9 +8395,9 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7803,15 +8405,15 @@ name = "pallet-preimage" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7819,10 +8421,10 @@ dependencies = [ name = "pallet-proofs-dealer" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-balances 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-payment-streams", "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", @@ -7832,11 +8434,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7845,9 +8447,9 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7855,13 +8457,13 @@ name = "pallet-proxy" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7869,18 +8471,18 @@ dependencies = [ name = "pallet-randomness" version = "0.1.0" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -7888,17 +8490,17 @@ name = "pallet-ranked-collective" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7907,13 +8509,13 @@ name = "pallet-recovery" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7923,16 +8525,16 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "assert_matches", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7941,13 +8543,13 @@ name = "pallet-root-testing" version = "4.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -7957,16 +8559,16 @@ version = "29.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -7974,23 +8576,45 @@ name = "pallet-session" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "log", - "pallet-timestamp 27.0.0", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", - "sp-state-machine 0.35.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-session" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "log", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-session" version = "29.0.0" @@ -8019,15 +8643,15 @@ name = "pallet-session-benchmarking" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "rand 0.8.5", - "sp-runtime 31.0.1", - "sp-session 27.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -8036,16 +8660,16 @@ name = "pallet-society" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", - "sp-arithmetic 23.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -8054,24 +8678,47 @@ name = "pallet-staking" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "rand_chacha 0.2.2", "scale-info", "serde", - "sp-application-crypto 30.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-staking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "rand_chacha 0.3.1", + "scale-info", + "serde", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-staking" version = "29.0.3" @@ -8112,7 +8759,16 @@ version = "19.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-staking-reward-fn" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "log", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8131,8 +8787,8 @@ version = "14.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "sp-api 26.0.0", - "sp-staking 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8140,15 +8796,15 @@ name = "pallet-state-trie-migration" version = "29.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -8156,10 +8812,10 @@ dependencies = [ name = "pallet-storage-providers" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-balances 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-payment-streams", "pallet-proofs-dealer", "pallet-storage-providers-runtime-api", @@ -8169,11 +8825,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8182,8 +8838,8 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8192,34 +8848,70 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-sudo" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-timestamp" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-timestamp 26.0.0", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-timestamp" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8248,17 +8940,17 @@ name = "pallet-tips" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-treasury 27.0.0", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -8267,17 +8959,33 @@ name = "pallet-transaction-payment" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-transaction-payment" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-transaction-payment" version = "29.0.2" @@ -8301,14 +9009,30 @@ version = "30.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-weights 27.0.0", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "jsonrpsee", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8316,11 +9040,23 @@ name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "parity-scale-codec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "sp-api 26.0.0", - "sp-runtime 31.0.1", - "sp-weights 27.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8329,19 +9065,38 @@ version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-treasury" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-treasury" version = "28.0.1" @@ -8365,16 +9120,16 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8382,14 +9137,14 @@ name = "pallet-utility" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -8398,16 +9153,31 @@ name = "pallet-vesting" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "pallet-vesting" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "pallet-vesting" version = "29.0.0" @@ -8429,13 +9199,13 @@ name = "pallet-whitelist" version = "27.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] @@ -8445,22 +9215,46 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bounded-collections", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "xcm-fee-payment-runtime-api", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "pallet-xcm" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bounded-collections", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "log", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8468,49 +9262,49 @@ name = "pallet-xcm-benchmarks" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-utility", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "log", "pallet-asset-tx-payment", "pallet-assets", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-collator-selection", - "pallet-message-queue 31.0.0", - "pallet-xcm", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "staging-parachain-info", - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", - "substrate-wasm-builder", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -8850,15 +9644,15 @@ dependencies = [ "futures", "futures-timer", "itertools 0.10.5", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8869,12 +9663,12 @@ dependencies = [ "always-assert", "futures", "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8883,21 +9677,21 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", - "fatality", + "fatality 0.0.6", "futures", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", "schnellru", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8906,21 +9700,21 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "fatality", + "fatality 0.0.6", "futures", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", - "sc-network", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "thiserror", "tokio", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8930,24 +9724,24 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "cfg-if", "clap", - "frame-benchmarking-cli", + "frame-benchmarking-cli 32.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "log", - "polkadot-node-metrics", - "polkadot-node-primitives", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-service", - "sc-cli", - "sc-executor", - "sc-service", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-storage-monitor", - "sc-sysinfo", - "sc-tracing", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-maybe-compressed-blob", - "sp-runtime 31.0.1", - "substrate-build-script-utils", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-build-script-utils 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -8957,20 +9751,20 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", - "fatality", + "fatality 0.0.6", "futures", "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio-util", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -8981,10 +9775,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "polkadot-core-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "polkadot-core-primitives" version = "8.0.0" @@ -9004,23 +9810,23 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "derive_more", - "fatality", + "fatality 0.0.6", "futures", "futures-timer", "indexmap 2.4.0", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sc-network", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-application-crypto 30.0.0", - "sp-keystore 0.34.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9029,8 +9835,8 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "reed-solomon-novelpoly", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", @@ -9044,19 +9850,19 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "futures", "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", "rand_chacha 0.3.1", - "sc-network", - "sc-network-common", - "sp-application-crypto 30.0.0", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "tracing-gum", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9067,19 +9873,19 @@ dependencies = [ "always-assert", "async-trait", "bytes", - "fatality", + "fatality 0.0.6", "futures", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sc-network", - "sp-consensus", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9090,14 +9896,14 @@ dependencies = [ "futures", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9113,24 +9919,24 @@ dependencies = [ "kvdb", "merlin", "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", - "sc-keystore", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0", - "sp-consensus", - "sp-consensus-slots 0.32.0", - "sp-runtime 31.0.1", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9144,15 +9950,15 @@ dependencies = [ "kvdb", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sp-consensus", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9161,18 +9967,18 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", - "fatality", + "fatality 0.0.6", "futures", "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "polkadot-statement-table", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-statement-table 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-keystore 0.34.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9181,12 +9987,12 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", - "polkadot-node-subsystem", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "wasm-timer", ] @@ -9200,15 +10006,15 @@ dependencies = [ "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "sp-maybe-compressed-blob", - "tracing-gum", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9217,12 +10023,12 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", - "polkadot-node-metrics", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "sc-client-api", - "sc-consensus-babe", - "tracing-gum", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9234,12 +10040,12 @@ dependencies = [ "futures-timer", "kvdb", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9247,18 +10053,18 @@ name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "fatality", + "fatality 0.0.6", "futures", "kvdb", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sc-keystore", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9269,13 +10075,13 @@ dependencies = [ "async-trait", "futures", "futures-timer", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sp-blockchain", - "sp-inherents 26.0.0", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9284,15 +10090,15 @@ version = "6.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", - "fatality", + "fatality 0.0.6", "futures", "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9301,16 +10107,16 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", - "fatality", + "fatality 0.0.6", "futures", "futures-timer", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9326,20 +10132,20 @@ dependencies = [ "futures-timer", "parity-scale-codec", "pin-project", - "polkadot-core-primitives 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-core-pvf-common", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", "slotmap", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tempfile", "thiserror", "tokio", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9348,14 +10154,14 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9369,19 +10175,19 @@ dependencies = [ "libc", "nix 0.27.1", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor-wasmtime 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "seccompiler", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9390,13 +10196,13 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "futures", - "polkadot-node-metrics", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-primitives 7.0.0", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-consensus-babe 0.32.0", - "tracing-gum", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9409,15 +10215,34 @@ dependencies = [ "mick-jaeger", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", - "sc-network", - "sc-network-types", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", ] +[[package]] +name = "polkadot-node-jaeger" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "lazy_static", + "log", + "mick-jaeger", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", + "tokio", +] + [[package]] name = "polkadot-node-metrics" version = "7.0.0" @@ -9428,13 +10253,32 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "prioritized-metered-channel", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "polkadot-node-metrics" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bs58 0.5.1", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "prioritized-metered-channel", - "sc-cli", - "sc-service", - "sc-tracing", - "substrate-prometheus-endpoint", - "tracing-gum", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -9446,21 +10290,47 @@ dependencies = [ "async-trait", "bitvec", "derive_more", - "fatality", + "fatality 0.0.6", + "futures", + "hex", + "parity-scale-codec", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "rand 0.8.5", + "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "strum 0.26.3", + "thiserror", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "polkadot-node-network-protocol" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-channel 1.9.0", + "async-trait", + "bitvec", + "derive_more", + "fatality 0.1.1", "futures", "hex", "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "rand 0.8.5", - "sc-authority-discovery", - "sc-network", - "sc-network-types", - "sp-runtime 31.0.1", + "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "strum 0.26.3", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -9472,16 +10342,39 @@ dependencies = [ "bounded-vec", "futures", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 30.0.0", - "sp-consensus-babe 0.32.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-maybe-compressed-blob", - "sp-runtime 31.0.1", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", + "zstd 0.12.4", +] + +[[package]] +name = "polkadot-node-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bitvec", + "bounded-vec", + "futures", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnorrkel 0.11.4", + "serde", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "zstd 0.12.4", ] @@ -9491,9 +10384,19 @@ name = "polkadot-node-subsystem" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "polkadot-node-jaeger", - "polkadot-node-subsystem-types", - "polkadot-overseer", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "polkadot-node-subsystem" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -9506,22 +10409,51 @@ dependencies = [ "derive_more", "futures", "orchestra", - "polkadot-node-jaeger", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", - "polkadot-statement-table", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-transaction-pool-api", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-statement-table 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "smallvec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "polkadot-node-subsystem-types" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "bitvec", + "derive_more", + "futures", + "orchestra", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-statement-table 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "smallvec", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-blockchain", - "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -9532,7 +10464,7 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "async-trait", "derive_more", - "fatality", + "fatality 0.0.6", "futures", "futures-channel", "itertools 0.10.5", @@ -9541,23 +10473,23 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "pin-project", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-overseer", - "polkadot-primitives 7.0.0", + "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "prioritized-metered-channel", "rand 0.8.5", - "sc-client-api", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-application-crypto 30.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -9570,16 +10502,38 @@ dependencies = [ "futures-timer", "orchestra", "parking_lot 0.12.3", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem-types", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sp-api 26.0.0", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tikv-jemalloc-ctl", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "polkadot-overseer" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "orchestra", + "parking_lot 0.12.3", + "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "tikv-jemalloc-ctl", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -9590,19 +10544,36 @@ dependencies = [ "bounded-collections", "derive_more", "parity-scale-codec", - "polkadot-core-primitives 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] name = "polkadot-parachain-primitives" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bounded-collections", + "derive_more", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + +[[package]] +name = "polkadot-parachain-primitives" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "248ab090959a92e61493277e33b7e85104280a4beb4cb0815137d3c8c50a07f4" dependencies = [ "bounded-collections", @@ -9626,24 +10597,51 @@ dependencies = [ "hex-literal", "log", "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "scale-info", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-authority-discovery 26.0.0", - "sp-consensus-slots 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "polkadot-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bitvec", + "hex-literal", + "log", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "scale-info", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "polkadot-primitives" version = "8.0.1" @@ -9679,29 +10677,29 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "jsonrpsee", "mmr-rpc", - "pallet-transaction-payment-rpc", - "polkadot-primitives 7.0.0", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", + "pallet-transaction-payment-rpc 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", - "sc-consensus-epochs", + "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", - "sc-rpc", - "sc-rpc-spec-v2", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-spec-v2 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-sync-state-rpc", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-frame-rpc-system", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "substrate-state-trie-migration-rpc", ] @@ -9711,48 +10709,99 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bitvec", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "libsecp256k1", "log", - "pallet-asset-rate 7.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", - "pallet-broker 0.6.0", - "pallet-election-provider-multi-phase 27.0.0", - "pallet-fast-unstake 27.0.0", - "pallet-identity 28.0.0", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", - "pallet-staking-reward-fn 19.0.0", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-treasury 27.0.0", - "pallet-vesting 28.0.0", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "polkadot-runtime-parachains 7.0.0", + "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-election-provider-multi-phase 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-fast-unstake 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking-reward-fn 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rustc-hex", "scale-info", "serde", "serde_derive", - "slot-range-helper 7.0.0", - "sp-api 26.0.0", + "slot-range-helper 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-common" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bitvec", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "libsecp256k1", + "log", + "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-election-provider-multi-phase 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-fast-unstake 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-staking-reward-fn 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "slot-range-helper 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "static_assertions", ] @@ -9828,13 +10877,26 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "bs58 0.5.1", - "frame-benchmarking 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "polkadot-runtime-metrics" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bs58 0.5.1", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "polkadot-runtime-metrics" version = "8.0.0" @@ -9857,44 +10919,93 @@ dependencies = [ "bitflags 1.3.2", "bitvec", "derive_more", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "log", - "pallet-authority-discovery 28.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", - "pallet-broker 0.6.0", - "pallet-message-queue 31.0.0", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", - "pallet-timestamp 27.0.0", - "pallet-vesting 28.0.0", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-metrics 7.0.0", + "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bitflags 1.3.2", + "bitvec", + "derive_more", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "log", + "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rustc-hex", + "scale-info", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "static_assertions", ] @@ -9954,12 +11065,12 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "async-trait", "bitvec", - "frame-benchmarking 28.0.0", - "frame-benchmarking-cli", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-rpc-runtime-api", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking-cli 32.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "hex-literal", "is_executable", @@ -9967,10 +11078,10 @@ dependencies = [ "kvdb-rocksdb", "log", "mmr-gadget", - "pallet-babe 28.0.0", - "pallet-staking 28.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-db", "parity-scale-codec", "parking_lot 0.12.3", @@ -9979,7 +11090,7 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -9998,74 +11109,74 @@ dependencies = [ "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", + "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-rpc", - "polkadot-runtime-parachains 7.0.0", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-statement-distribution", "rococo-runtime", "rococo-runtime-constants", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", + "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-basic-authorship 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-consensus-beefy", "sc-consensus-grandpa", - "sc-consensus-slots", - "sc-executor", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-offchain", - "sc-service", + "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-offchain 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-transaction-pool-api", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "serde", "serde_json", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-consensus-beefy", - "sp-consensus-grandpa", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-keystore 0.34.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-state-machine 0.35.0", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-timestamp 26.0.0", - "sp-transaction-pool", - "sp-version 29.0.0", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "substrate-prometheus-endpoint", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "westend-runtime", - "xcm-fee-payment-runtime-api", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -10075,20 +11186,20 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "arrayvec 0.7.6", "bitvec", - "fatality", + "fatality 0.0.6", "futures", "futures-timer", "indexmap 2.4.0", "parity-scale-codec", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", + "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0", - "sp-staking 26.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -10097,9 +11208,20 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "polkadot-statement-table" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -11032,23 +12154,6 @@ dependencies = [ "subtle 2.6.1", ] -[[package]] -name = "ring" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof?rev=665f5f5#665f5f51af5734c7b6d90b985dd6861d4c5b4752" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "arrayvec 0.7.6", - "blake2 0.10.6", - "common 0.1.0 (git+https://github.com/w3f/ring-proof?rev=665f5f5)", - "fflonk", - "merlin", -] - [[package]] name = "ring" version = "0.1.0" @@ -11061,7 +12166,7 @@ dependencies = [ "ark-std", "arrayvec 0.7.6", "blake2 0.10.6", - "common 0.1.0 (git+https://github.com/w3f/ring-proof)", + "common", "fflonk", "merlin", ] @@ -11122,21 +12227,21 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "binary-merkle-tree", "bitvec", - "frame-benchmarking 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "hex-literal", "log", - "pallet-asset-rate 7.0.0", - "pallet-authority-discovery 28.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", + "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", @@ -11146,10 +12251,10 @@ dependencies = [ "pallet-democracy", "pallet-elections-phragmen", "pallet-grandpa", - "pallet-identity 28.0.0", + "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-indices", "pallet-membership", - "pallet-message-queue 31.0.0", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-mmr", "pallet-multisig", "pallet-nis", @@ -11162,58 +12267,58 @@ dependencies = [ "pallet-referenda", "pallet-root-testing", "pallet-scheduler", - "pallet-session 28.0.0", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-society", - "pallet-staking 28.0.0", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-state-trie-migration", - "pallet-sudo", - "pallet-timestamp 27.0.0", + "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-tips", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury 27.0.0", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-utility", - "pallet-vesting 28.0.0", + "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-whitelist", - "pallet-xcm", + "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rococo-runtime-constants", "scale-info", "serde", "serde_derive", "serde_json", "smallvec", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", - "sp-authority-discovery 26.0.0", - "sp-block-builder", - "sp-consensus-babe 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-consensus-beefy", - "sp-consensus-grandpa", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "sp-version 29.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "static_assertions", - "substrate-wasm-builder", - "xcm-fee-payment-runtime-api", + "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -11221,15 +12326,15 @@ name = "rococo-runtime-constants" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "smallvec", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -11523,6 +12628,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-allocator" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "log", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", +] + [[package]] name = "sc-authority-discovery" version = "0.34.0" @@ -11541,16 +12657,47 @@ dependencies = [ "prost 0.12.6", "prost-build 0.11.9", "rand 0.8.5", - "sc-client-api", - "sc-network", - "sc-network-types", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-blockchain", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-authority-discovery" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "ip_network", + "libp2p", + "linked_hash_set", + "log", + "multihash 0.17.0", + "multihash-codetable", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "rand 0.8.5", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -11563,17 +12710,39 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "sc-block-builder", - "sc-proposer-metrics", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-proposer-metrics 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-proposer-metrics 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -11582,15 +12751,30 @@ version = "0.33.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "parity-scale-codec", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sc-block-builder" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sc-chain-spec" version = "28.0.0" @@ -11601,23 +12785,50 @@ dependencies = [ "log", "memmap2 0.9.4", "parity-scale-codec", - "sc-chain-spec-derive", - "sc-client-api", - "sc-executor", - "sc-network", - "sc-telemetry", + "sc-chain-spec-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", "serde_json", - "sp-blockchain", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sc-chain-spec" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "docify", + "log", + "memmap2 0.9.4", + "parity-scale-codec", + "sc-chain-spec-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "serde_json", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sc-chain-spec-derive" version = "11.0.0" @@ -11629,6 +12840,17 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sc-chain-spec-derive" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "sc-cli" version = "0.36.0" @@ -11648,24 +12870,65 @@ dependencies = [ "rand 0.8.5", "regex", "rpassword", - "sc-client-api", - "sc-client-db", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", "serde_json", - "sp-blockchain", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keyring", - "sp-keystore 0.34.0", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-version 29.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", + "tokio", +] + +[[package]] +name = "sc-cli" +version = "0.36.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "chrono", + "clap", + "fdlimit", + "futures", + "itertools 0.11.0", + "libp2p-identity", + "log", + "names", + "parity-bip39", + "parity-scale-codec", + "rand 0.8.5", + "regex", + "rpassword", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "serde_json", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", ] @@ -11680,21 +12943,48 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-executor", - "sc-transaction-pool-api", - "sc-utils", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-statement-store", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-client-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "fnv", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -11711,18 +13001,44 @@ dependencies = [ "parity-db", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api", - "sc-state-db", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-state-db 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-arithmetic 23.0.0", - "sp-blockchain", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sc-client-db" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-state-db 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sc-consensus" version = "0.33.0" @@ -11734,46 +13050,71 @@ dependencies = [ "log", "mockall 0.11.4", "parking_lot 0.12.3", - "sc-client-api", - "sc-network-types", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "substrate-prometheus-endpoint", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-consensus" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "log", + "mockall 0.11.4", + "parking_lot 0.12.3", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "async-trait", "futures", "log", "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-consensus-slots", - "sc-telemetry", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -11783,7 +13124,7 @@ version = "0.34.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "async-trait", - "fork-tree", + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "log", "num-bigint", @@ -11791,25 +13132,61 @@ dependencies = [ "num-traits", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sc-consensus-epochs", - "sc-consensus-slots", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", - "sp-consensus-slots 0.32.0", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "futures", + "log", + "num-bigint", + "num-rational", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -11820,18 +13197,18 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "futures", "jsonrpsee", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-rpc-api", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -11848,25 +13225,25 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sc-network", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-network-gossip", - "sc-network-sync", - "sc-network-types", - "sc-utils", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-consensus-beefy", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tokio", "wasm-timer", @@ -11883,11 +13260,11 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "sc-consensus-beefy", - "sc-rpc", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", "sp-consensus-beefy", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -11896,12 +13273,25 @@ name = "sc-consensus-epochs" version = "0.33.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "fork-tree", + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "parity-scale-codec", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-consensus-epochs" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime 31.0.1", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -11914,37 +13304,37 @@ dependencies = [ "async-trait", "dyn-clone", "finality-grandpa", - "fork-tree", + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "futures-timer", "log", "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-network-gossip", - "sc-network-sync", - "sc-network-types", - "sc-telemetry", - "sc-transaction-pool-api", - "sc-utils", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde_json", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-grandpa", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -11958,20 +13348,20 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-consensus-grandpa", - "sc-rpc", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", - "sp-blockchain", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "assert_matches", "async-trait", @@ -11980,26 +13370,26 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api", - "sc-consensus", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-transaction-pool", - "sc-transaction-pool-api", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-consensus-babe 0.32.0", - "sp-consensus-slots 0.32.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", - "substrate-prometheus-endpoint", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12013,55 +13403,114 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-telemetry", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots 0.32.0", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] -name = "sc-executor" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +name = "sc-consensus-slots" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ + "async-trait", + "futures", + "futures-timer", + "log", "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor-common", - "sc-executor-polkavm", - "sc-executor-wasmtime", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + +[[package]] +name = "sc-executor" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor-polkavm 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor-wasmtime 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", ] +[[package]] +name = "sc-executor" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor-polkavm 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor-wasmtime 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "tracing", +] + [[package]] name = "sc-executor-common" version = "0.29.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "polkavm", - "sc-allocator", - "sp-maybe-compressed-blob", + "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "wasm-instrument", ] +[[package]] +name = "sc-executor-common" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "polkavm", + "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", + "wasm-instrument", +] + [[package]] name = "sc-executor-polkavm" version = "0.29.0" @@ -12069,10 +13518,21 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "log", "polkavm", - "sc-executor-common", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sc-executor-polkavm" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "log", + "polkavm", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sc-executor-wasmtime" version = "0.29.0" @@ -12084,13 +13544,31 @@ dependencies = [ "log", "parking_lot 0.12.3", "rustix 0.36.17", - "sc-allocator", - "sc-executor-common", + "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "wasmtime", ] +[[package]] +name = "sc-executor-wasmtime" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "anyhow", + "cfg-if", + "libc", + "log", + "parking_lot 0.12.3", + "rustix 0.36.17", + "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "wasmtime", +] + [[package]] name = "sc-informant" version = "0.33.0" @@ -12100,12 +13578,29 @@ dependencies = [ "futures", "futures-timer", "log", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sp-blockchain", - "sp-runtime 31.0.1", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-informant" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "ansi_term", + "futures", + "futures-timer", + "log", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -12116,9 +13611,23 @@ dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto 30.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-keystore" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "parking_lot 0.12.3", + "serde_json", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12138,16 +13647,45 @@ dependencies = [ "multiaddr", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-consensus", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-mixnet", - "sp-runtime 31.0.1", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "arrayvec 0.7.6", + "blake2 0.10.6", + "bytes", + "futures", + "futures-timer", + "log", + "mixnet", + "multiaddr", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12180,19 +13718,70 @@ dependencies = [ "prost 0.11.9", "prost-build 0.11.9", "rand 0.8.5", - "sc-client-api", - "sc-network-common", - "sc-network-types", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "serde", "serde_json", "smallvec", - "sp-arithmetic 23.0.0", - "sp-blockchain", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", + "tokio", + "tokio-stream", + "unsigned-varint", + "void", + "wasm-timer", + "zeroize", +] + +[[package]] +name = "sc-network" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "async-channel 1.9.0", + "async-trait", + "asynchronous-codec", + "bytes", + "cid 0.9.0", + "either", + "fnv", + "futures", + "futures-timer", + "ip_network", + "libp2p", + "linked_hash_set", + "litep2p", + "log", + "mockall 0.11.4", + "once_cell", + "parity-scale-codec", + "parking_lot 0.12.3", + "partial_sort", + "pin-project", + "prost 0.12.6", + "prost-build 0.12.6", + "rand 0.8.5", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "serde", + "serde_json", + "smallvec", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", "tokio-stream", @@ -12213,11 +13802,29 @@ dependencies = [ "libp2p-identity", "parity-scale-codec", "prost-build 0.11.9", - "sc-consensus", - "sc-network-types", - "sp-consensus", - "sp-consensus-grandpa", - "sp-runtime 31.0.1", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-network-common" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "bitflags 1.3.2", + "futures", + "libp2p-identity", + "parity-scale-codec", + "prost-build 0.12.6", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -12230,13 +13837,13 @@ dependencies = [ "futures-timer", "libp2p", "log", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", "schnellru", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "tracing", ] @@ -12252,12 +13859,33 @@ dependencies = [ "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", - "sc-client-api", - "sc-network", - "sc-network-types", - "sp-blockchain", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-network-light" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "async-channel 1.9.0", + "futures", + "log", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12269,7 +13897,7 @@ dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", - "fork-tree", + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "futures-timer", "libp2p", @@ -12278,21 +13906,58 @@ dependencies = [ "parity-scale-codec", "prost 0.12.6", "prost-build 0.11.9", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", - "sc-network-types", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "smallvec", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-grandpa", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "sc-network-sync" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "async-channel 1.9.0", + "async-trait", + "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "futures", + "futures-timer", + "libp2p", + "log", + "mockall 0.11.4", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "smallvec", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", "tokio-stream", @@ -12308,14 +13973,34 @@ dependencies = [ "libp2p", "log", "parity-scale-codec", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", - "sc-utils", - "sp-consensus", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-network-transactions" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "futures", + "libp2p", + "log", + "parity-scale-codec", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -12332,6 +14017,20 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-network-types" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bs58 0.5.1", + "libp2p-identity", + "litep2p", + "multiaddr", + "multihash 0.17.0", + "rand 0.8.5", + "thiserror", +] + [[package]] name = "sc-offchain" version = "29.0.0" @@ -12351,18 +14050,53 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-network-types", - "sc-transaction-pool-api", - "sc-utils", - "sp-api 26.0.0", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-offchain", - "sp-runtime 31.0.1", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "threadpool", + "tracing", +] + +[[package]] +name = "sc-offchain" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "bytes", + "fnv", + "futures", + "futures-timer", + "hyper", + "hyper-rustls", + "libp2p", + "log", + "num_cpus", + "once_cell", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "threadpool", "tracing", ] @@ -12373,7 +14107,16 @@ version = "0.17.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "log", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "log", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -12386,25 +14129,57 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-mixnet", - "sc-rpc-api", - "sc-tracing", - "sc-transaction-pool-api", - "sc-utils", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde_json", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-offchain", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-statement-store", - "sp-version 29.0.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tokio", +] + +[[package]] +name = "sc-rpc" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde_json", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tokio", ] @@ -12415,16 +14190,36 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec", - "sc-mixnet", - "sc-transaction-pool-api", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "scale-info", "serde", "serde_json", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-version 29.0.0", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-rpc-api" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "scale-info", + "serde", + "serde_json", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12440,7 +14235,27 @@ dependencies = [ "jsonrpsee", "log", "serde_json", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tokio", + "tower", + "tower-http", +] + +[[package]] +name = "sc-rpc-server" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "forwarded-header-value", + "futures", + "governor", + "http", + "hyper", + "ip_network", + "jsonrpsee", + "log", + "serde_json", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tokio", "tower", "tower-http", @@ -12460,19 +14275,51 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "sc-chain-spec", - "sc-client-api", - "sc-rpc", - "sc-transaction-pool-api", - "sc-utils", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "serde", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-version 29.0.0", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "sc-rpc-spec-v2" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "futures", + "futures-util", + "hex", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", "tokio-stream", @@ -12494,47 +14341,111 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "rand 0.8.5", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-informant", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-light", - "sc-network-sync", - "sc-network-transactions", - "sc-network-types", - "sc-rpc", - "sc-rpc-server", - "sc-rpc-spec-v2", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-informant 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-light 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-transactions 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-types 0.10.0-dev", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-server 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-spec-v2 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "schnellru", "serde", "serde_json", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-state-machine 0.35.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "sp-transaction-storage-proof", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-transaction-storage-proof 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "static_init", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "sc-service" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "directories", + "exit-future", + "futures", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-informant 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-light 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-transactions 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-types 0.10.0", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-rpc-server 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-rpc-spec-v2 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "schnellru", + "serde", + "serde_json", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-transaction-storage-proof 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "static_init", - "substrate-prometheus-endpoint", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tempfile", "thiserror", "tokio", @@ -12553,6 +14464,17 @@ dependencies = [ "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sc-state-db" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sc-storage-monitor" version = "0.16.0" @@ -12573,15 +14495,15 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-epochs", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sc-consensus-grandpa", "serde", "serde_json", - "sp-blockchain", - "sp-runtime 31.0.1", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -12597,15 +14519,36 @@ dependencies = [ "rand 0.8.5", "rand_pcg", "regex", - "sc-telemetry", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", "serde_json", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sc-sysinfo" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "derive_more", + "futures", + "libc", + "log", + "rand 0.8.5", + "rand_pcg", + "regex", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "serde_json", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sc-telemetry" version = "15.0.0" @@ -12618,8 +14561,28 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "rand 0.8.5", - "sc-network", - "sc-utils", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "serde", + "serde_json", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-telemetry" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "chrono", + "futures", + "libp2p", + "log", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", "serde_json", "thiserror", @@ -12641,14 +14604,14 @@ dependencies = [ "parking_lot 0.12.3", "regex", "rustc-hash", - "sc-client-api", - "sc-tracing-proc-macro", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-tracing-proc-macro 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc", - "sp-runtime 31.0.1", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "tracing", @@ -12656,6 +14619,36 @@ dependencies = [ "tracing-subscriber 0.3.18", ] +[[package]] +name = "sc-tracing" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "ansi_term", + "chrono", + "is-terminal", + "lazy_static", + "libc", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "regex", + "rustc-hash", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing-proc-macro 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", + "tracing", + "tracing-log 0.2.0", + "tracing-subscriber 0.3.18", +] + [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" @@ -12667,6 +14660,17 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sc-tracing-proc-macro" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "sc-transaction-pool" version = "28.0.0" @@ -12679,18 +14683,45 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api", - "sc-transaction-pool-api", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", - "sp-api 26.0.0", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "substrate-prometheus-endpoint", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "linked-hash-map", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12704,9 +14735,25 @@ dependencies = [ "log", "parity-scale-codec", "serde", - "sp-blockchain", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "futures", + "log", + "parity-scale-codec", + "serde", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -12722,7 +14769,22 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sc-utils" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-channel 1.9.0", + "futures", + "futures-timer", + "lazy_static", + "log", + "parking_lot 0.12.3", + "prometheus", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -13051,50 +15113,50 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", - "frame-benchmarking 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "hex-literal", "log", "num-bigint", "pallet-aura", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-bucket-nfts", "pallet-collator-selection", "pallet-file-system", "pallet-file-system-runtime-api", - "pallet-message-queue 31.0.0", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-nfts", "pallet-payment-streams", "pallet-payment-streams-runtime-api", "pallet-proofs-dealer", "pallet-proofs-dealer-runtime-api", "pallet-randomness", - "pallet-session 28.0.0", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", + "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-uniques", - "pallet-xcm", + "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parachains-common", "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-common 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "polkadot-runtime-constants", - "polkadot-runtime-parachains 7.0.0", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "scale-info", "shp-constants", "shp-file-key-verifier", @@ -13102,26 +15164,27 @@ dependencies = [ "shp-forest-verifier", "shp-traits", "smallvec", - "sp-api 26.0.0", - "sp-block-builder", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-version 29.0.0", - "sp-weights 27.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "staging-parachain-info", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "xcm-simulator", ] @@ -13220,13 +15283,13 @@ dependencies = [ "anyhow", "bincode", "futures", - "sc-service", - "sc-tracing", - "sc-utils", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tokio", ] @@ -13237,11 +15300,11 @@ dependencies = [ "anyhow", "array-bytes 6.2.3", "async-trait", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-storage-weight-reclaim", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "futures", "lazy_static", "log", @@ -13253,28 +15316,28 @@ dependencies = [ "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "rocksdb", - "sc-client-api", - "sc-network", - "sc-service", - "sc-tracing", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", "serde_json", "shc-actors-framework", "shc-common", "shp-file-key-verifier", "shp-file-metadata", - "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "storage-hub-runtime", - "substrate-frame-rpc-system", + "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tokio", ] @@ -13285,31 +15348,31 @@ dependencies = [ "anyhow", "bincode", "cumulus-client-service", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "lazy_static", "pallet-file-system", "pallet-proofs-dealer", "pallet-storage-providers", "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-executor", - "sc-network", - "sc-service", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", "shp-constants", "shp-file-key-verifier", "shp-file-metadata", "shp-forest-verifier", "shp-traits", - "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "storage-hub-runtime", "thiserror", "trie-db 0.29.1", @@ -13329,10 +15392,10 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "trie-db 0.29.1", ] @@ -13350,11 +15413,11 @@ dependencies = [ "parity-scale-codec", "prost 0.12.6", "prost-build 0.12.6", - "sc-client-api", - "sc-network", - "sc-service", - "sc-tracing", - "sc-utils", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "shc-actors-framework", "shc-common", "shp-file-key-verifier", @@ -13380,10 +15443,10 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", "trie-db 0.29.1", @@ -13412,12 +15475,12 @@ dependencies = [ "anyhow", "array-bytes 6.2.3", "async-trait", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-storage-weight-reclaim", "diesel", "diesel-async", - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "futures", "lazy_static", "log", @@ -13431,26 +15494,26 @@ dependencies = [ "pallet-randomness", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-transaction-payment 28.0.0", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "sc-client-api", - "sc-network", - "sc-service", - "sc-tracing", - "sc-utils", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", "serde_json", "shc-actors-framework", "shc-common", "shc-indexer-db", - "sp-api 26.0.0", - "sp-blockchain", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "storage-hub-runtime", - "substrate-frame-rpc-system", + "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", ] @@ -13466,10 +15529,10 @@ dependencies = [ "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tokio", ] @@ -13483,8 +15546,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -13492,7 +15555,7 @@ name = "shp-file-key-verifier" version = "0.1.0" dependencies = [ "bincode", - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "num-bigint", "parity-scale-codec", "rand 0.8.5", @@ -13500,11 +15563,11 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "trie-db 0.29.1", ] @@ -13517,9 +15580,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic 23.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -13527,16 +15590,16 @@ name = "shp-forest-verifier" version = "0.1.0" dependencies = [ "bincode", - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "trie-db 0.29.1", ] @@ -13547,26 +15610,26 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] name = "shp-traits" version = "0.1.0" dependencies = [ - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -13651,10 +15714,22 @@ dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "slot-range-helper" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "enumn", + "parity-scale-codec", + "paste", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "slot-range-helper" version = "8.0.0" @@ -13859,16 +15934,38 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro 15.0.0", + "sp-api-proc-macro 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sp-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -13908,6 +16005,20 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sp-api-proc-macro" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander 2.2.1", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "sp-api-proc-macro" version = "15.0.1" @@ -13932,10 +16043,23 @@ dependencies = [ "scale-info", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-application-crypto" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-application-crypto" version = "31.0.0" @@ -13965,6 +16089,21 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-arithmetic" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "static_assertions", +] + [[package]] name = "sp-arithmetic" version = "24.0.0" @@ -14005,9 +16144,21 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-authority-discovery" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14029,26 +16180,54 @@ name = "sp-block-builder" version = "26.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-api 26.0.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-block-builder" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + +[[package]] +name = "sp-blockchain" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "schnellru", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", ] [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "futures", "log", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", - "sp-api 26.0.0", - "sp-consensus", - "sp-database", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -14061,26 +16240,41 @@ dependencies = [ "futures", "log", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sp-consensus" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "futures", + "log", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-consensus-slots 0.32.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14092,13 +16286,31 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-consensus-slots 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14130,14 +16342,14 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keystore 0.34.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "strum 0.26.3", ] @@ -14151,11 +16363,28 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-consensus-grandpa" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14166,7 +16395,18 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-timestamp 26.0.0", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14188,7 +16428,7 @@ version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "array-bytes 6.2.3", - "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "bandersnatch_vrfs", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", @@ -14232,10 +16472,10 @@ dependencies = [ [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "array-bytes 6.2.3", - "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", + "bandersnatch_vrfs", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", @@ -14262,14 +16502,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git)", + "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tracing", "w3f-bls", @@ -14372,7 +16612,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "blake2b_simd", "byteorder", @@ -14403,6 +16643,16 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "syn 2.0.75", +] + [[package]] name = "sp-database" version = "10.0.0" @@ -14412,6 +16662,15 @@ dependencies = [ "parking_lot 0.12.3", ] +[[package]] +name = "sp-database" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "kvdb", + "parking_lot 0.12.3", +] + [[package]] name = "sp-debug-derive" version = "14.0.0" @@ -14433,6 +16692,16 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "sp-debug-derive" version = "14.0.0" @@ -14453,6 +16722,16 @@ dependencies = [ "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-externalities" version = "0.25.0" @@ -14495,8 +16774,20 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.8.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde_json", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14508,7 +16799,20 @@ dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sp-inherents" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -14543,9 +16847,9 @@ dependencies = [ "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", @@ -14553,6 +16857,32 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "sp-io" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bytes", + "ed25519-dalek 2.1.1", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive", + "rustversion", + "secp256k1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "tracing", + "tracing-core", +] + [[package]] name = "sp-io" version = "31.0.0" @@ -14585,7 +16915,17 @@ version = "31.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "strum 0.26.3", +] + +[[package]] +name = "sp-keyring" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "strum 0.26.3", ] @@ -14600,6 +16940,17 @@ dependencies = [ "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-keystore" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-keystore" version = "0.35.0" @@ -14622,6 +16973,15 @@ dependencies = [ "zstd 0.12.4", ] +[[package]] +name = "sp-maybe-compressed-blob" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "thiserror", + "zstd 0.12.4", +] + [[package]] name = "sp-metadata-ir" version = "0.6.0" @@ -14644,6 +17004,16 @@ dependencies = [ "scale-info", ] +[[package]] +name = "sp-metadata-ir" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", +] + [[package]] name = "sp-mixnet" version = "0.4.0" @@ -14651,8 +17021,19 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14665,10 +17046,10 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] @@ -14680,9 +17061,22 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-npos-elections" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14705,9 +17099,19 @@ name = "sp-offchain" version = "26.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-offchain" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14731,6 +17135,16 @@ dependencies = [ "regex", ] +[[package]] +name = "sp-panic-handler" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + [[package]] name = "sp-rpc" version = "26.0.0" @@ -14741,6 +17155,16 @@ dependencies = [ "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-rpc" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "rustc-hash", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-runtime" version = "31.0.1" @@ -14757,12 +17181,37 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-runtime" +version = "31.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14809,6 +17258,25 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive", + "primitive-types", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "static_assertions", +] + [[package]] name = "sp-runtime-interface" version = "24.0.0" @@ -14874,6 +17342,19 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "Inflector", + "expander 2.2.1", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" @@ -14894,11 +17375,25 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-session" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14920,14 +17415,27 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-staking" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -14965,6 +17473,26 @@ dependencies = [ "trie-db 0.29.1", ] +[[package]] +name = "sp-state-machine" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "smallvec", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", + "tracing", + "trie-db 0.29.1", +] + [[package]] name = "sp-state-machine" version = "0.36.0" @@ -15000,17 +17528,41 @@ dependencies = [ "rand 0.8.5", "scale-info", "sha2 0.10.8", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", "x25519-dalek 2.0.1", ] +[[package]] +name = "sp-statement-store" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "aes-gcm", + "curve25519-dalek 4.1.3", + "ed25519-dalek 2.1.1", + "hkdf", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sha2 0.10.8", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", + "x25519-dalek 2.0.1", +] + [[package]] name = "sp-std" version = "14.0.0" @@ -15022,6 +17574,11 @@ name = "sp-std" version = "14.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" + [[package]] name = "sp-std" version = "14.0.0" @@ -15039,6 +17596,18 @@ dependencies = [ "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-storage" version = "19.0.0" @@ -15072,8 +17641,20 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "thiserror", +] + +[[package]] +name = "sp-timestamp" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", ] @@ -15115,6 +17696,17 @@ dependencies = [ "tracing-subscriber 0.3.18", ] +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", +] + [[package]] name = "sp-tracing" version = "16.0.0" @@ -15131,8 +17723,17 @@ name = "sp-transaction-pool" version = "26.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "sp-transaction-pool" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15144,11 +17745,25 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-transaction-storage-proof" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-trie" version = "29.0.0" @@ -15175,7 +17790,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "ahash 0.8.11", "hash-db", @@ -15187,8 +17802,8 @@ dependencies = [ "rand 0.8.5", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -15231,12 +17846,29 @@ dependencies = [ "scale-info", "serde", "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "thiserror", ] +[[package]] +name = "sp-version" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "thiserror", +] + [[package]] name = "sp-version" version = "30.0.0" @@ -15278,6 +17910,17 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "sp-version-proc-macro" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "sp-wasm-interface" version = "20.0.0" @@ -15304,6 +17947,18 @@ dependencies = [ "wasmtime", ] +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "wasmtime", +] + [[package]] name = "sp-wasm-interface" version = "20.0.0" @@ -15324,10 +17979,24 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] +[[package]] +name = "sp-weights" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", +] + [[package]] name = "sp-weights" version = "28.0.0" @@ -15399,15 +18068,15 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "cumulus-primitives-core", - "frame-support 28.0.0", - "frame-system 28.0.0", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15424,8 +18093,26 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 27.0.0", - "xcm-procedural 7.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "xcm-procedural 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "staging-xcm" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "array-bytes 6.2.3", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "xcm-procedural 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15452,21 +18139,43 @@ name = "staging-xcm-builder" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "log", - "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "scale-info", - "sp-arithmetic 23.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "staging-xcm-builder" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "scale-info", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15498,19 +18207,40 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "environmental", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "staging-xcm-executor" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "environmental", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15581,21 +18311,21 @@ dependencies = [ "chrono", "clap", "color-print", - "cumulus-client-cli", - "cumulus-client-collator", + "cumulus-client-cli 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-collator 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-client-consensus-aura", - "cumulus-client-consensus-common", + "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-client-consensus-proposer", "cumulus-client-parachain-inherent", "cumulus-client-service", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-parachain-inherent", "cumulus-primitives-storage-weight-reclaim", - "cumulus-relay-chain-interface", - "frame-benchmarking 28.0.0", - "frame-benchmarking-cli", - "frame-support 28.0.0", - "frame-system 28.0.0", + "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking-cli 32.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "futures", "futures-timer", "hex", @@ -15611,31 +18341,31 @@ dependencies = [ "pallet-proofs-dealer", "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment-rpc 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "polkadot-cli", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "sc-basic-authorship", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-basic-authorship 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sc-consensus-aura", "sc-consensus-manual-seal", - "sc-executor", - "sc-network", - "sc-network-sync", - "sc-offchain", - "sc-rpc", - "sc-service", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-offchain 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "serde", "serde_json", "shc-actors-framework", @@ -15651,23 +18381,23 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "shp-traits", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "staging-xcm 7.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "storage-hub-runtime", - "substrate-build-script-utils", - "substrate-frame-rpc-system", - "substrate-prometheus-endpoint", + "substrate-build-script-utils 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "thiserror", "tokio", ] @@ -15682,47 +18412,47 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", - "cumulus-primitives-core", + "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "docify", - "frame-benchmarking 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "hex-literal", "log", "num-bigint", "pallet-aura", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-bucket-nfts", "pallet-collator-selection", "pallet-file-system", "pallet-file-system-runtime-api", - "pallet-message-queue 31.0.0", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-nfts", "pallet-payment-streams", "pallet-payment-streams-runtime-api", "pallet-proofs-dealer", "pallet-proofs-dealer-runtime-api", "pallet-randomness", - "pallet-session 28.0.0", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-xcm", + "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parachains-common", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-common 7.0.0", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "scale-info", "shp-constants", "shp-file-key-verifier", @@ -15730,24 +18460,26 @@ dependencies = [ "shp-forest-verifier", "shp-traits", "smallvec", - "sp-api 26.0.0", - "sp-block-builder", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-version 29.0.0", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "staging-parachain-info", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "substrate-wasm-builder", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15872,7 +18604,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -15886,23 +18618,47 @@ name = "substrate-build-script-utils" version = "11.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +[[package]] +name = "substrate-build-script-utils" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" + [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-system-rpc-runtime-api", + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-rpc-api", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "substrate-frame-rpc-system" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -15917,6 +18673,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "hyper", + "log", + "prometheus", + "thiserror", + "tokio", +] + [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" @@ -15924,12 +18692,12 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", + "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "serde", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "trie-db 0.29.1", ] @@ -15938,6 +18706,25 @@ dependencies = [ name = "substrate-wasm-builder" version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +dependencies = [ + "build-helper", + "cargo_metadata", + "console", + "filetime", + "parity-wasm", + "polkavm-linker", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "strum 0.26.3", + "tempfile", + "toml 0.8.19", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "substrate-wasm-builder" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -15949,12 +18736,12 @@ dependencies = [ "parity-scale-codec", "parity-wasm", "polkavm-linker", - "sc-executor", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-maybe-compressed-blob", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", + "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "strum 0.26.3", "tempfile", "toml 0.8.19", @@ -16526,9 +19313,20 @@ version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ "coarsetime", - "polkadot-primitives 7.0.0", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing", + "tracing-gum-proc-macro 5.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "tracing-gum" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "coarsetime", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "tracing", - "tracing-gum-proc-macro", + "tracing-gum-proc-macro 5.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -16543,6 +19341,18 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "tracing-gum-proc-macro" +version = "5.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "expander 2.2.1", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "tracing-log" version = "0.1.4" @@ -17433,37 +20243,37 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polk dependencies = [ "binary-merkle-tree", "bitvec", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", + "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "hex-literal", "log", - "pallet-asset-rate 7.0.0", - "pallet-authority-discovery 28.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", + "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-bags-list", - "pallet-balances 28.0.0", + "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-beefy", "pallet-beefy-mmr", "pallet-collective", "pallet-conviction-voting", "pallet-democracy", - "pallet-election-provider-multi-phase 27.0.0", - "pallet-election-provider-support-benchmarking 27.0.0", + "pallet-election-provider-multi-phase 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-election-provider-support-benchmarking 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-elections-phragmen", - "pallet-fast-unstake 27.0.0", + "pallet-fast-unstake 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-grandpa", - "pallet-identity 28.0.0", + "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-indices", "pallet-membership", - "pallet-message-queue 31.0.0", + "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-mmr", "pallet-multisig", "pallet-nomination-pools", @@ -17477,60 +20287,60 @@ dependencies = [ "pallet-referenda", "pallet-root-testing", "pallet-scheduler", - "pallet-session 28.0.0", + "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-session-benchmarking", "pallet-society", - "pallet-staking 28.0.0", + "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-staking-reward-curve", "pallet-staking-runtime-api", "pallet-state-trie-migration", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury 27.0.0", + "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-utility", - "pallet-vesting 28.0.0", + "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-whitelist", - "pallet-xcm", + "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "rustc-hex", "scale-info", "serde", "serde_derive", "smallvec", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-authority-discovery 26.0.0", - "sp-block-builder", - "sp-consensus-babe 0.32.0", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-consensus-beefy", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", + "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-mmr-primitives", - "sp-npos-elections 26.0.0", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", + "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "sp-version 29.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "substrate-wasm-builder", + "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "westend-runtime-constants", - "xcm-fee-payment-runtime-api", + "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -17538,15 +20348,15 @@ name = "westend-runtime-constants" version = "7.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "smallvec", "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ] [[package]] @@ -17976,14 +20786,29 @@ name = "xcm-fee-payment-runtime-api" version = "0.1.0" source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" dependencies = [ - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +] + +[[package]] +name = "xcm-fee-payment-runtime-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] @@ -17997,6 +20822,17 @@ dependencies = [ "syn 2.0.75", ] +[[package]] +name = "xcm-procedural" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.75", +] + [[package]] name = "xcm-procedural" version = "8.0.0" @@ -18012,19 +20848,19 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" dependencies = [ - "frame-support 28.0.0", + "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", "parity-scale-codec", "paste", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", + "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index ef1b554ae..2ca194a0a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,116 +65,117 @@ diesel-async = { version = "0.5.0", features = ["bb8", "postgres"] } bigdecimal = { version = "0.4.5", features = ["serde"] } # Substrate -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } # latest version containing trie-db upgrade (double ended iterator) -sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", version = "29.0.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", features = [ +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", features = [ "rococo-native", ] } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.11.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } +xcm-fee-payment-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.3", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0" } -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false, features = [ +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false, features = [ "parameterized-consensus-hook", ] } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.11.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } # Local Pallets pallet-bucket-nfts = { path = "pallets/bucket-nfts", default-features = false } diff --git a/node/src/service.rs b/node/src/service.rs index b4b87b94b..36e2769b7 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -12,7 +12,7 @@ use codec::Encode; use cumulus_client_cli::CollatorOptions; use cumulus_client_parachain_inherent::{MockValidationDataInherentDataProvider, MockXcmConfig}; -use polkadot_primitives::{BlakeTwo256, HashT, HeadData, ValidationCode}; +use polkadot_primitives::{BlakeTwo256, HashT, HeadData}; use sc_consensus_manual_seal::consensus::aura::AuraConsensusDataProvider; use shc_actors_framework::actor::TaskSpawner; use shc_common::types::{BlockHash, OpaqueBlock, BCSV_KEY_TYPE}; @@ -34,7 +34,7 @@ use cumulus_client_service::{ BuildNetworkParams, CollatorSybilResistance, DARecoveryProfile, StartRelayChainTasksParams, }; use cumulus_primitives_core::{ - relay_chain::{well_known_keys as RelayChainWellKnownKeys, CollatorPair}, + relay_chain::{well_known_keys as RelayChainWellKnownKeys, CollatorPair, ValidationCode}, ParaId, }; use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index b521b027a..3d0713c3b 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -76,6 +76,7 @@ sp-std = { workspace = true } sp-transaction-pool = { workspace = true } sp-trie = { workspace = true } sp-version = { workspace = true } +sp-weights = { workspace = true } # Polkadot pallet-xcm = { workspace = true } @@ -84,6 +85,7 @@ polkadot-runtime-common = { workspace = true } xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { workspace = true } +xcm-fee-payment-runtime-api = { workspace = true } # Cumulus cumulus-pallet-aura-ext = { workspace = true } @@ -168,6 +170,7 @@ std = [ "substrate-wasm-builder", "xcm-builder/std", "xcm-executor/std", + "xcm-fee-payment-runtime-api/std", "xcm/std", ] @@ -206,6 +209,7 @@ runtime-benchmarks = [ "sp-runtime/runtime-benchmarks", "xcm-builder/runtime-benchmarks", "xcm-executor/runtime-benchmarks", + "xcm-fee-payment-runtime-api/runtime-benchmarks", ] try-runtime = [ diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index c88faf00e..b7fbe6537 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -1,4 +1,5 @@ use crate::*; +use codec::Encode; use frame_support::{ genesis_builder_helper::{build_state, get_preset}, weights::Weight, @@ -24,6 +25,14 @@ use sp_runtime::{ }; use sp_std::prelude::Vec; use sp_version::RuntimeVersion; +use xcm::{ + latest::prelude::AssetId, IntoVersion, VersionedAssetId, VersionedAssets, VersionedLocation, + VersionedXcm, +}; +use xcm_fee_payment_runtime_api::{ + dry_run::{Error as XcmDryRunApiError, ExtrinsicDryRunEffects, XcmDryRunEffects}, + fees::Error as XcmPaymentApiError, +}; // Local module imports use super::{ @@ -179,6 +188,105 @@ impl_runtime_apis! { } } + impl xcm_fee_payment_runtime_api::fees::XcmPaymentApi for Runtime { + fn query_acceptable_payment_assets(xcm_version: xcm::Version) -> Result, XcmPaymentApiError> { + let acceptable = vec![ + // native token + VersionedAssetId::from(AssetId(configs::xcm_config::RelayLocation::get())) + ]; + Ok(acceptable + .into_iter() + .filter_map(|asset| asset.into_version(xcm_version).ok()) + .collect()) + } + fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { + match asset.try_as::() { + Ok(asset_id) if asset_id.0 == configs::xcm_config::RelayLocation::get() => { + // for native token + Ok(::weight_to_fee(&weight)) + }, + Ok(asset_id) => { + log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!"); + Err(XcmPaymentApiError::AssetNotFound) + }, + Err(_) => { + log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - failed to convert asset: {asset:?}!"); + Err(XcmPaymentApiError::VersionedConversionFailed) + } + } + } + fn query_xcm_weight(message: VersionedXcm<()>) -> Result { + PolkadotXcm::query_xcm_weight(message) + } + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { + PolkadotXcm::query_delivery_fees(destination, message) + } + } + + impl xcm_fee_payment_runtime_api::dry_run::XcmDryRunApi for Runtime { + fn dry_run_extrinsic(extrinsic: ::Extrinsic) -> Result, XcmDryRunApiError> { + use xcm_builder::InspectMessageQueues; + use xcm_executor::RecordXcm; + use xcm::prelude::*; + + pallet_xcm::Pallet::::set_record_xcm(true); + let result = Executive::apply_extrinsic(extrinsic).map_err(|error| { + log::error!( + target: "xcm::XcmDryRunApi::dry_run_extrinsic", + "Applying extrinsic failed with error {:?}", + error, + ); + XcmDryRunApiError::InvalidExtrinsic + })?; + let local_xcm = pallet_xcm::Pallet::::recorded_xcm(); + let forwarded_xcms = configs::xcm_config::XcmRouter::get_messages(); + let events: Vec = System::read_events_no_consensus().map(|record| record.event.clone()).collect(); + Ok(ExtrinsicDryRunEffects { + local_xcm: local_xcm.map(VersionedXcm::<()>::V4), + forwarded_xcms, + emitted_events: events, + execution_result: result, + }) + } + + fn dry_run_xcm(origin_location: VersionedLocation, program: VersionedXcm) -> Result, XcmDryRunApiError> { + use xcm_builder::InspectMessageQueues; + use xcm::prelude::*; + + let origin_location: Location = origin_location.try_into().map_err(|error| { + log::error!( + target: "xcm::XcmDryRunApi::dry_run_xcm", + "Location version conversion failed with error: {:?}", + error, + ); + XcmDryRunApiError::VersionedConversionFailed + })?; + let program: Xcm = program.try_into().map_err(|error| { + log::error!( + target: "xcm::XcmDryRunApi::dry_run_xcm", + "Xcm version conversion failed with error {:?}", + error, + ); + XcmDryRunApiError::VersionedConversionFailed + })?; + let mut hash = program.using_encoded(sp_core::hashing::blake2_256); + let result = xcm_executor::XcmExecutor::::prepare_and_execute( + origin_location, + program, + &mut hash, + Weight::MAX, // Max limit available for execution. + Weight::zero(), + ); + let forwarded_xcms = configs::xcm_config::XcmRouter::get_messages(); + let events: Vec = System::read_events_no_consensus().map(|record| record.event.clone()).collect(); + Ok(XcmDryRunEffects { + forwarded_xcms, + emitted_events: events, + execution_result: result, + }) + } + } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 5c328ad05..e246260ef 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -23,7 +23,7 @@ // // For more information, please refer to -mod xcm_config; +pub mod xcm_config; // Substrate and Polkadot dependencies use core::marker::PhantomData; @@ -152,7 +152,7 @@ impl frame_system::Config for Runtime { impl pallet_timestamp::Config for Runtime { type Moment = u64; type OnTimestampSet = Aura; - type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type MinimumPeriod = ConstU64<0>; type WeightInfo = (); } diff --git a/runtime/src/configs/xcm_config.rs b/runtime/src/configs/xcm_config.rs index b677c7e15..55beea4ce 100644 --- a/runtime/src/configs/xcm_config.rs +++ b/runtime/src/configs/xcm_config.rs @@ -188,6 +188,7 @@ impl xcm_executor::Config for XcmConfig { type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); type HrmpChannelClosingHandler = (); + type XcmRecorder = (); } /// Converts a local signed origin into an XCM location. diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index a0dd78552..2112e6bb5 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -7,7 +7,7 @@ include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); pub mod apis; -mod configs; +pub mod configs; mod weights; use smallvec::smallvec; @@ -39,7 +39,7 @@ pub use sp_runtime::BuildStorage; use weights::ExtrinsicBaseWeight; -pub use crate::configs::{StorageDataUnit, StorageProofsMerkleTrieLayout}; +pub use crate::configs::{xcm_config, StorageDataUnit, StorageProofsMerkleTrieLayout}; /// Alias to 512-bit hash when used in the context of a transaction signature on the chain. pub type Signature = MultiSignature; @@ -210,15 +210,6 @@ const BLOCK_PROCESSING_VELOCITY: u32 = 1; /// Relay chain slot duration, in milliseconds. const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; -/// 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(), - } -} - // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime { diff --git a/xcm-simulator/Cargo.toml b/xcm-simulator/Cargo.toml index dc6e46aef..b10cefb5d 100644 --- a/xcm-simulator/Cargo.toml +++ b/xcm-simulator/Cargo.toml @@ -85,6 +85,7 @@ xcm = { workspace = true } xcm-builder = { workspace = true } xcm-executor = { workspace = true } xcm-simulator = { workspace = true } +xcm-fee-payment-runtime-api = { workspace = true } runtime-constants = { workspace = true } # Cumulus diff --git a/xcm-simulator/src/parachain/xcm_config/mod.rs b/xcm-simulator/src/parachain/xcm_config/mod.rs index 5ddeb03a2..b914d4ee9 100644 --- a/xcm-simulator/src/parachain/xcm_config/mod.rs +++ b/xcm-simulator/src/parachain/xcm_config/mod.rs @@ -60,4 +60,5 @@ impl xcm_executor::Config for XcmConfig { type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); type HrmpChannelClosingHandler = (); + type XcmRecorder = (); } diff --git a/xcm-simulator/src/relay_chain/xcm_config/mod.rs b/xcm-simulator/src/relay_chain/xcm_config/mod.rs index 230b05040..52373e762 100644 --- a/xcm-simulator/src/relay_chain/xcm_config/mod.rs +++ b/xcm-simulator/src/relay_chain/xcm_config/mod.rs @@ -79,4 +79,5 @@ impl Config for XcmConfig { type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); type HrmpChannelClosingHandler = (); + type XcmRecorder = (); } diff --git a/xcm-simulator/src/storagehub/configs/xcm_config.rs b/xcm-simulator/src/storagehub/configs/xcm_config.rs index 044118748..2bf8781d7 100644 --- a/xcm-simulator/src/storagehub/configs/xcm_config.rs +++ b/xcm-simulator/src/storagehub/configs/xcm_config.rs @@ -188,6 +188,7 @@ impl xcm_executor::Config for XcmConfig { type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); type HrmpChannelClosingHandler = (); + type XcmRecorder = (); } /// Converts a local signed origin into an XCM location. diff --git a/xcm-simulator/src/storagehub/mod.rs b/xcm-simulator/src/storagehub/mod.rs index 3f325eb13..cab8a2820 100644 --- a/xcm-simulator/src/storagehub/mod.rs +++ b/xcm-simulator/src/storagehub/mod.rs @@ -13,8 +13,6 @@ use sp_runtime::{ }; use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; use sp_version::RuntimeVersion; use frame_support::{ @@ -199,15 +197,6 @@ const BLOCK_PROCESSING_VELOCITY: u32 = 1; /// Relay chain slot duration, in milliseconds. const RELAY_CHAIN_SLOT_DURATION_MILLIS: u32 = 6000; -/// 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(), - } -} - // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime { diff --git a/xcm-simulator/src/system_chain/xcm_config/mod.rs b/xcm-simulator/src/system_chain/xcm_config/mod.rs index d96e9ecbf..19b7cc8e6 100644 --- a/xcm-simulator/src/system_chain/xcm_config/mod.rs +++ b/xcm-simulator/src/system_chain/xcm_config/mod.rs @@ -60,4 +60,5 @@ impl xcm_executor::Config for XcmConfig { type HrmpNewChannelOpenRequestHandler = (); type HrmpChannelAcceptedHandler = (); type HrmpChannelClosingHandler = (); + type XcmRecorder = (); } From 889fa3c62e5a26fa97cbb344017c3cfcaa7b1298 Mon Sep 17 00:00:00 2001 From: TDemeco Date: Thu, 3 Oct 2024 22:27:39 -0300 Subject: [PATCH 20/24] feat: :arrow_up: update to Polkadot SDK v1.13.0 --- Cargo.lock | 8563 ++++++------------- Cargo.toml | 206 +- client/file-transfer-service/Cargo.toml | 1 - client/file-transfer-service/src/handler.rs | 2 +- node/src/chain_spec.rs | 2 +- node/src/service.rs | 3 +- runtime/src/apis.rs | 78 +- runtime/src/configs/mod.rs | 82 +- xcm-simulator/Cargo.toml | 4 - xcm-simulator/src/mock_message_queue.rs | 11 +- xcm-simulator/src/relay_chain/mod.rs | 2 +- xcm-simulator/src/storagehub/apis.rs | 43 + xcm-simulator/src/storagehub/configs/mod.rs | 88 +- 13 files changed, 3007 insertions(+), 6078 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3d7560ea6..758500154 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -210,20 +210,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "aquamarine" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" -dependencies = [ - "include_dir", - "itertools 0.10.5", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "aquamarine" version = "0.5.0" @@ -525,12 +511,6 @@ dependencies = [ "sha3", ] -[[package]] -name = "array-bytes" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" - [[package]] name = "array-bytes" version = "6.2.3" @@ -916,7 +896,7 @@ dependencies = [ [[package]] name = "binary-merkle-tree" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "hash-db", "log", @@ -959,8 +939,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ "bitcoin_hashes 0.11.0", - "rand 0.8.5", - "rand_core 0.6.4", + "rand 0.7.3", + "rand_core 0.5.1", "serde", "unicode-normalization", ] @@ -1133,12 +1113,12 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -1389,15 +1369,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ckb-merkle-mountain-range" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ccb671c5921be8a84686e6212ca184cb1d7c51cadcdbfcbd1cc3f042f5dfb8" -dependencies = [ - "cfg-if", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -1893,429 +1864,295 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "clap", - "parity-scale-codec", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "url", -] - -[[package]] -name = "cumulus-client-cli" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "clap", "parity-scale-codec", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-service", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "url", ] [[package]] name = "cumulus-client-collator" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-client-network 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing", -] - -[[package]] -name = "cumulus-client-collator" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-client-network 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-consensus-common", + "cumulus-client-network", + "cumulus-primitives-core", "futures", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sp-api 26.0.0", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "tracing", ] [[package]] name = "cumulus-client-consensus-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-client-collator 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-collator", + "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-parachain-inherent", "cumulus-primitives-aura", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures", "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-consensus", "sc-consensus-aura", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-babe", + "sc-consensus-slots", + "sc-telemetry", "schnellru", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-common" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "cumulus-client-pov-recovery 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "dyn-clone", - "futures", - "log", - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "schnellru", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-timestamp 26.0.0", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-consensus-common" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-client-pov-recovery 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-pov-recovery", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", "dyn-clone", "futures", "log", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-consensus", + "sc-consensus-babe", "schnellru", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", + "sp-trie 29.0.0", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "cumulus-client-consensus-proposer" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "anyhow", "async-trait", "cumulus-primitives-parachain-inherent", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "cumulus-client-network" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "futures-timer", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing", -] - -[[package]] -name = "cumulus-client-network" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-relay-chain-interface", "futures", "futures-timer", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "tracing", ] [[package]] name = "cumulus-client-parachain-inherent" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-relay-chain-interface", "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tracing", -] - -[[package]] -name = "cumulus-client-pov-recovery" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "futures-timer", - "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", "tracing", ] [[package]] name = "cumulus-client-pov-recovery" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures", "futures-timer", "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-consensus", + "sp-consensus", + "sp-maybe-compressed-blob", + "sp-runtime 31.0.1", "tracing", ] [[package]] name = "cumulus-client-service" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "cumulus-client-cli 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-client-collator 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-client-network 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-client-pov-recovery 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-primitives-proof-size-hostfunction 0.2.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-client-cli", + "cumulus-client-collator", + "cumulus-client-consensus-common", + "cumulus-client-network", + "cumulus-client-pov-recovery", + "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", "cumulus-relay-chain-inprocess-interface", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "futures", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-transactions 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", + "sc-service", + "sc-sysinfo", + "sc-telemetry", + "sc-transaction-pool", + "sc-utils", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-transaction-pool", ] [[package]] name = "cumulus-pallet-aura-ext" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "cumulus-pallet-parachain-system", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "pallet-aura", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "cumulus-pallet-dmp-queue" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "cumulus-pallet-parachain-system" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", - "cumulus-primitives-proof-size-hostfunction 0.2.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-proof-size-hostfunction", "environmental", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "log", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-message-queue 31.0.0", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", "trie-db 0.29.1", ] [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -2326,279 +2163,234 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-session 28.0.0", "parity-scale-codec", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "cumulus-pallet-xcm" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", ] [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bounded-collections", "bp-xcm-bridge-hub-router", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-message-queue 31.0.0", "parity-scale-codec", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", ] [[package]] name = "cumulus-primitives-aura" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-core-primitives 7.0.0", + "polkadot-primitives 7.0.0", + "sp-api 26.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "cumulus-primitives-core" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "cumulus-primitives-core" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "staging-xcm 7.0.0", ] [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "cumulus-primitives-proof-size-hostfunction" -version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.2.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-primitives-proof-size-hostfunction 0.2.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", "docify", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "cumulus-primitives-utility" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", + "frame-support 28.0.0", "log", "pallet-asset-conversion", "parity-scale-codec", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", ] [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", "futures", "futures-timer", "polkadot-cli", "polkadot-service", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "cumulus-relay-chain-interface" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "jsonrpsee-core", - "parity-scale-codec", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", + "sc-cli", + "sc-client-api", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sp-api 26.0.0", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", ] [[package]] name = "cumulus-relay-chain-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "futures", "jsonrpsee-core", "parity-scale-codec", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-overseer", + "sc-client-api", + "sp-api 26.0.0", + "sp-blockchain", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-core-primitives 7.0.0", "polkadot-network-bridge", "polkadot-node-collation-generation", "polkadot-node-core-chain-api", "polkadot-node-core-prospective-parachains", "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", "polkadot-node-subsystem-util", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", + "polkadot-primitives 7.0.0", "polkadot-service", - "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-authority-discovery", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-service", + "sc-tracing", + "sc-utils", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "tokio", "tracing", ] @@ -2606,35 +2398,35 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", "either", "futures", "futures-timer", "jsonrpsee", "parity-scale-codec", "pin-project", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-rpc-api", + "sc-service", "schnellru", "serde", "serde_json", "smoldot", "smoldot-light", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version 29.0.0", "thiserror", "tokio", "tokio-util", @@ -2645,15 +2437,15 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] @@ -3413,18 +3205,6 @@ dependencies = [ "futures", ] -[[package]] -name = "expander" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a718c0675c555c5f976fff4ea9e2c150fa06cefa201cadef87cfbf9324075881" -dependencies = [ - "blake3", - "fs-err", - "proc-macro2", - "quote", -] - [[package]] name = "expander" version = "2.2.1" @@ -3467,38 +3247,13 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" -[[package]] -name = "fatality" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad875162843b0d046276327afe0136e9ed3a23d5a754210fb6f1f33610d39ab" -dependencies = [ - "fatality-proc-macro 0.0.6", - "thiserror", -] - [[package]] name = "fatality" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" dependencies = [ - "fatality-proc-macro 0.1.1", - "thiserror", -] - -[[package]] -name = "fatality-proc-macro" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5aa1e3ae159e592ad222dc90c5acbad632b527779ba88486abe92782ab268bd" -dependencies = [ - "expander 0.0.4", - "indexmap 1.9.3", - "proc-macro-crate 1.1.3", - "proc-macro2", - "quote", - "syn 1.0.109", + "fatality-proc-macro", "thiserror", ] @@ -3508,7 +3263,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" dependencies = [ - "expander 2.2.1", + "expander", "indexmap 2.4.0", "proc-macro-crate 3.1.0", "proc-macro2", @@ -3665,15 +3420,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "fork-tree" -version = "12.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", ] @@ -3706,50 +3453,25 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "static_assertions", -] - -[[package]] -name = "frame-benchmarking" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-support-procedural 23.0.0", + "frame-system 28.0.0", "linregress", "log", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "static_assertions", ] @@ -3782,66 +3504,16 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "Inflector", - "array-bytes 6.2.3", - "chrono", - "clap", - "comfy-table", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "gethostname", - "handlebars", - "itertools 0.10.5", - "lazy_static", - "linked-hash-map", - "log", - "parity-scale-codec", - "rand 0.8.5", - "rand_pcg", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "serde", - "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "thousands", -] - -[[package]] -name = "frame-benchmarking-cli" -version = "32.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "Inflector", - "array-bytes 6.2.3", + "array-bytes", "chrono", "clap", "comfy-table", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "gethostname", "handlebars", "itertools 0.11.0", @@ -3851,30 +3523,30 @@ dependencies = [ "parity-scale-codec", "rand 0.8.5", "rand_pcg", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-block-builder", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-executor", + "sc-service", + "sc-sysinfo", "serde", "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-database", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", "thousands", ] @@ -3894,18 +3566,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-election-provider-solution-type" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -3916,35 +3577,18 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "frame-election-provider-support" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -3968,39 +3612,20 @@ dependencies = [ [[package]] name = "frame-executive" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "aquamarine 0.3.3", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "aquamarine", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-try-runtime", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "frame-executive" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "aquamarine 0.5.0", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -4018,86 +3643,30 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "docify", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "frame-metadata-hash-extension" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "array-bytes 6.2.3", - "docify", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "frame-support" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "aquamarine 0.5.0", - "array-bytes 6.2.3", - "bitflags 1.3.2", + "array-bytes", "docify", - "environmental", - "frame-metadata", - "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", - "k256", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "macro_magic", "parity-scale-codec", - "paste", "scale-info", - "serde", - "serde_json", - "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "static_assertions", - "tt-call", + "sp-runtime 31.0.1", ] [[package]] name = "frame-support" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "aquamarine 0.5.0", - "array-bytes 6.2.3", + "aquamarine", + "array-bytes", "bitflags 1.3.2", "docify", "environmental", "frame-metadata", - "frame-support-procedural 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support-procedural 23.0.0", "impl-trait-for-tuples", "k256", "log", @@ -4108,21 +3677,21 @@ dependencies = [ "serde", "serde_json", "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", "static_assertions", "tt-call", ] @@ -4133,8 +3702,8 @@ version = "29.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8e52c84b611d2049d9253f83a62ab0f093e4be5c42a7ef42ea5bb16d6611e32" dependencies = [ - "aquamarine 0.5.0", - "array-bytes 6.2.3", + "aquamarine", + "array-bytes", "bitflags 1.3.2", "docify", "environmental", @@ -4172,51 +3741,32 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse 0.2.0", - "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "itertools 0.10.5", + "expander", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "itertools 0.11.0", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "syn 2.0.75", ] [[package]] name = "frame-support-procedural" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "Inflector", - "cfg-expr", - "derive-syn-parse 0.2.0", - "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "itertools 0.11.0", - "macro_magic", - "proc-macro-warning", - "proc-macro2", - "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf1d648c4007d421b9677b3c893256913498fff159dc2d85022cdd9cc432f3c" +version = "24.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf1d648c4007d421b9677b3c893256913498fff159dc2d85022cdd9cc432f3c" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse 0.1.5", - "expander 2.2.1", + "expander", "frame-support-procedural-tools 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.10.5", "macro_magic", @@ -4243,21 +3793,9 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -4278,17 +3816,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro2", "quote", @@ -4298,41 +3826,21 @@ dependencies = [ [[package]] name = "frame-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "cfg-if", - "docify", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "frame-system" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "cfg-if", "docify", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", "log", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version 29.0.0", + "sp-weights 27.0.0", ] [[package]] @@ -4359,73 +3867,37 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "frame-system-benchmarking" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "frame-system-rpc-runtime-api" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "frame-system-rpc-runtime-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "frame-try-runtime" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", ] [[package]] name = "frame-try-runtime" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -6399,7 +5871,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "blake3", "frame-metadata", "parity-scale-codec", @@ -6494,35 +5966,35 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "log", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-offchain 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-offchain", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] name = "mmr-rpc" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "jsonrpsee", "parity-scale-codec", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", ] [[package]] @@ -6871,12 +6343,13 @@ dependencies = [ [[package]] name = "nix" -version = "0.27.1" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" dependencies = [ "bitflags 2.6.0", "cfg-if", + "cfg_aliases", "libc", ] @@ -7157,7 +6630,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ - "expander 2.2.1", + "expander", "indexmap 2.4.0", "itertools 0.11.0", "petgraph", @@ -7185,50 +6658,35 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "pallet-asset-conversion" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "pallet-asset-rate" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-asset-rate" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7250,84 +6708,68 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-transaction-payment 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-assets" version = "29.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-aura" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", "sp-consensus-aura", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-authority-discovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-authority-discovery" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", + "sp-authority-discovery 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7350,29 +6792,15 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-authorship" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7393,49 +6821,25 @@ dependencies = [ [[package]] name = "pallet-babe" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-babe" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", + "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7466,55 +6870,39 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "aquamarine 0.5.0", - "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-balances" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ + "aquamarine", "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", + "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-balances" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7537,102 +6925,83 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", "parity-scale-codec", "scale-info", "serde", "sp-consensus-beefy", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-beefy-mmr" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "binary-merkle-tree", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "pallet-beefy", "pallet-mmr", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-broker" -version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", + "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-broker" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7658,11 +7027,11 @@ dependencies = [ name = "pallet-bucket-nfts" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "num-bigint", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0", "pallet-file-system", "pallet-nfts", "pallet-payment-streams", @@ -7672,148 +7041,139 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] name = "pallet-child-bounties" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "pallet-bounties", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-collator-selection" version = "9.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", + "pallet-session 28.0.0", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-conviction-voting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "assert_matches", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] -name = "pallet-democracy" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +name = "pallet-delegated-staking" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] -name = "pallet-election-provider-multi-phase" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +name = "pallet-democracy" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-election-provider-support-benchmarking 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "rand 0.8.5", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "strum 0.26.3", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-election-provider-multi-phase" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-election-provider-support-benchmarking 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-election-provider-support-benchmarking 27.0.0", "parity-scale-codec", "rand 0.8.5", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "strum 0.26.3", ] @@ -7844,29 +7204,15 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-election-provider-support-benchmarking" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7887,58 +7233,39 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-fast-unstake" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-fast-unstake" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -7965,12 +7292,12 @@ dependencies = [ name = "pallet-file-system" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "num-bigint", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0", "pallet-bucket-nfts", "pallet-file-system-runtime-api", "pallet-nfts", @@ -7983,12 +7310,12 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] @@ -7997,65 +7324,48 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "pallet-grandpa" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-identity" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "enumflags2", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-identity" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "enumflags2", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -8079,95 +7389,75 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-authorship 28.0.0", "parity-scale-codec", "scale-info", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-indices" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-membership" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-message-queue" -version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "environmental", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-message-queue" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "environmental", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", ] [[package]] @@ -8194,188 +7484,189 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-multisig" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-nfts" version = "22.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "enumflags2", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-nis" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-nomination-pools" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-nomination-pools-benchmarking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "pallet-bags-list", + "pallet-delegated-staking", "pallet-nomination-pools", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-nomination-pools-runtime-api" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-offences" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-offences-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", "pallet-grandpa", "pallet-im-online", "pallet-offences", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-parameters" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "paste", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-payment-streams" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", "pallet-nfts", "pallet-payment-streams-runtime-api", "pallet-storage-providers", @@ -8383,10 +7674,10 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", ] [[package]] @@ -8395,36 +7686,36 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-preimage" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-proofs-dealer" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", "pallet-payment-streams", "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", @@ -8434,11 +7725,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] @@ -8447,172 +7738,150 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-proxy" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-randomness" version = "0.1.0" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", "serde", "shp-session-keys", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-ranked-collective" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-recovery" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-referenda" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "assert_matches", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-root-testing" version = "4.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-scheduler" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-session" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", ] [[package]] name = "pallet-session" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "log", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-timestamp 27.0.0", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] @@ -8641,82 +7910,59 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", "parity-scale-codec", "rand 0.8.5", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-society" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "parity-scale-codec", - "rand_chacha 0.2.2", - "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-staking" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", "parity-scale-codec", - "rand_chacha 0.2.2", + "rand_chacha 0.3.1", "scale-info", - "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-staking" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", "parity-scale-codec", "rand_chacha 0.3.1", "scale-info", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -8745,7 +7991,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -8756,19 +8002,10 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "log", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-staking-reward-fn" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "log", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", ] [[package]] @@ -8784,38 +8021,38 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-staking 26.0.0", ] [[package]] name = "pallet-state-trie-migration" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-storage-providers" version = "0.1.0" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", "pallet-payment-streams", "pallet-proofs-dealer", "pallet-storage-providers-runtime-api", @@ -8825,11 +8062,11 @@ dependencies = [ "shp-constants", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] @@ -8838,80 +8075,44 @@ version = "0.1.0" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "pallet-sudo" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "pallet-sudo" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "pallet-timestamp" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-timestamp" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-timestamp 26.0.0", ] [[package]] @@ -8938,52 +8139,36 @@ dependencies = [ [[package]] name = "pallet-tips" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-transaction-payment" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-treasury 27.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-transaction-payment" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -9006,102 +8191,55 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-transaction-payment-rpc" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment-rpc-runtime-api", "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", ] [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0", "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", ] [[package]] name = "pallet-treasury" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-treasury" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "impl-trait-for-tuples", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "pallet-treasury" -version = "28.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eca44990d0d759213744f2d1f6fe1fadec1079a3e4e4da40556d6b4e42abbcd" +version = "28.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eca44990d0d759213744f2d1f6fe1fadec1079a3e4e4da40556d6b4e42abbcd" dependencies = [ "docify", "frame-benchmarking 29.0.0", @@ -9120,62 +8258,47 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-utility" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-vesting" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-vesting" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -9197,114 +8320,90 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "pallet-xcm" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "bounded-collections", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "log", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "pallet-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bounded-collections", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-balances 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "xcm-fee-payment-runtime-api", ] [[package]] name = "pallet-xcm-benchmarks" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "parity-scale-codec", "scale-info", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", ] [[package]] name = "parachains-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-utility", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "log", "pallet-asset-tx-payment", "pallet-assets", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", "pallet-collator-selection", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-message-queue 31.0.0", + "pallet-xcm", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", "scale-info", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "staging-parachain-info", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0", + "staging-xcm-executor 7.0.0", + "substrate-wasm-builder", ] [[package]] @@ -9638,157 +8737,156 @@ checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "polkadot-approval-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", "futures", "futures-timer", - "itertools 0.10.5", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "itertools 0.11.0", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "rand 0.8.5", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "always-assert", "futures", "futures-timer", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "rand 0.8.5", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "derive_more", - "fatality 0.0.6", + "fatality", "futures", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "rand 0.8.5", + "sc-network", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-keystore 0.34.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-availability-recovery" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "fatality 0.0.6", + "fatality", "futures", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "rand 0.8.5", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network", "schnellru", "thiserror", "tokio", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", +] + +[[package]] +name = "polkadot-ckb-merkle-mountain-range" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92" +dependencies = [ + "cfg-if", + "itertools 0.10.5", ] [[package]] name = "polkadot-cli" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "cfg-if", "clap", - "frame-benchmarking-cli 32.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking-cli", "futures", "log", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-primitives", "polkadot-service", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-cli", + "sc-executor", + "sc-service", "sc-storage-monitor", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-build-script-utils 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-sysinfo", + "sc-tracing", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-maybe-compressed-blob", + "sp-runtime 31.0.1", + "substrate-build-script-utils", "thiserror", ] [[package]] name = "polkadot-collator-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", - "fatality 0.0.6", + "fatality", "futures", "futures-timer", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "thiserror", "tokio-util", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-core-primitives" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-core-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -9807,142 +8905,142 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "derive_more", - "fatality 0.0.6", + "fatality", "futures", "futures-timer", "indexmap 2.4.0", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sc-network", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-keystore 0.34.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-erasure-coding" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", "reed-solomon-novelpoly", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-trie 29.0.0", "thiserror", ] [[package]] name = "polkadot-gossip-support" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "futures-timer", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "rand 0.8.5", "rand_chacha 0.3.1", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network", + "sc-network-common", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "tracing-gum", ] [[package]] name = "polkadot-network-bridge" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "always-assert", "async-trait", "bytes", - "fatality 0.0.6", + "fatality", "futures", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sc-network", + "sp-consensus", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-collation-generation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sp-core 28.0.0", + "sp-maybe-compressed-blob", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-approval-voting" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", - "itertools 0.10.5", + "itertools 0.11.0", "kvdb", "merlin", "parity-scale-codec", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", + "polkadot-primitives 7.0.0", "rand 0.8.5", "rand_chacha 0.3.1", "rand_core 0.6.4", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-keystore", "schnellru", "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-consensus", + "sp-consensus-slots 0.32.0", + "sp-runtime 31.0.1", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-av-store" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", "futures", @@ -9950,295 +9048,276 @@ dependencies = [ "kvdb", "parity-scale-codec", "polkadot-erasure-coding", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sp-consensus", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-backing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", - "fatality 0.0.6", + "fatality", "futures", "polkadot-erasure-coding", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-statement-table 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "polkadot-statement-table", "schnellru", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-keystore 0.34.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-bitfield-signing" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sp-keystore 0.34.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", "wasm-timer", ] [[package]] name = "polkadot-node-core-candidate-validation" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "sp-maybe-compressed-blob", + "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "sc-client-api", + "sc-consensus-babe", + "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "futures-timer", "kvdb", "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-dispute-coordinator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "fatality 0.0.6", + "fatality", "futures", "kvdb", "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sc-keystore", "schnellru", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-parachains-inherent" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "futures-timer", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sp-blockchain", + "sp-inherents 26.0.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-prospective-parachains" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", - "fatality 0.0.6", + "fatality", "futures", "parity-scale-codec", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", - "fatality 0.0.6", + "fatality", "futures", "futures-timer", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "schnellru", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "always-assert", - "array-bytes 6.2.3", + "array-bytes", "blake3", "cfg-if", "futures", "futures-timer", "parity-scale-codec", "pin-project", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-core-primitives 7.0.0", "polkadot-node-core-pvf-common", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", "rand 0.8.5", "slotmap", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", "tempfile", "thiserror", "tokio", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sp-keystore 0.34.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "cpu-time", "futures", "landlock", "libc", - "nix 0.27.1", + "nix 0.28.0", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor-wasmtime 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", "seccompiler", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-primitives 7.0.0", "schnellru", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-node-jaeger" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tokio", + "sp-consensus-babe 0.32.0", + "tracing-gum", ] [[package]] name = "polkadot-node-jaeger" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "lazy_static", "log", "mick-jaeger", "parity-scale-codec", "parking_lot 0.12.3", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", + "sc-network", + "sc-network-types", + "sp-core 28.0.0", "thiserror", "tokio", ] @@ -10246,135 +9325,67 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bs58 0.5.1", "futures", "futures-timer", "log", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", "prioritized-metered-channel", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-node-metrics" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "bs58 0.5.1", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "prioritized-metered-channel", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "polkadot-node-network-protocol" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-channel 1.9.0", - "async-trait", - "bitvec", - "derive_more", - "fatality 0.0.6", - "futures", - "hex", - "parity-scale-codec", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "rand 0.8.5", - "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "strum 0.26.3", - "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-cli", + "sc-service", + "sc-tracing", + "substrate-prometheus-endpoint", + "tracing-gum", ] [[package]] name = "polkadot-node-network-protocol" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-channel 1.9.0", "async-trait", "bitvec", "derive_more", - "fatality 0.1.1", + "fatality", "futures", "hex", "parity-scale-codec", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", "rand 0.8.5", - "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-authority-discovery", + "sc-network", + "sc-network-types", + "sp-runtime 31.0.1", "strum 0.26.3", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "polkadot-node-primitives" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bitvec", - "bounded-vec", - "futures", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "schnorrkel 0.11.4", - "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "zstd 0.12.4", + "tracing-gum", ] [[package]] name = "polkadot-node-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", "bounded-vec", "futures", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", "schnorrkel 0.11.4", "serde", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-maybe-compressed-blob", + "sp-runtime 31.0.1", "thiserror", "zstd 0.12.4", ] @@ -10382,192 +9393,116 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-node-subsystem" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-node-jaeger", + "polkadot-node-subsystem-types", + "polkadot-overseer", ] [[package]] name = "polkadot-node-subsystem-types" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "bitvec", "derive_more", + "fatality", "futures", "orchestra", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-statement-table 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-jaeger", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", + "polkadot-statement-table", + "sc-client-api", + "sc-network", + "sc-network-types", + "sc-transaction-pool-api", "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "polkadot-node-subsystem-types" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "async-trait", - "bitvec", - "derive_more", - "futures", - "orchestra", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-statement-table 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-blockchain", + "sp-consensus-babe 0.32.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "derive_more", - "fatality 0.0.6", + "fatality", "futures", "futures-channel", - "itertools 0.10.5", + "itertools 0.11.0", "kvdb", "parity-db", "parity-scale-codec", "parking_lot 0.12.3", "pin-project", - "polkadot-node-jaeger 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-erasure-coding", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-overseer", + "polkadot-primitives 7.0.0", "prioritized-metered-channel", "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", "schnellru", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-overseer" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "futures-timer", "orchestra", "parking_lot 0.12.3", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem-types", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sp-api 26.0.0", + "sp-core 28.0.0", "tikv-jemalloc-ctl", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-overseer" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "orchestra", - "parking_lot 0.12.3", - "polkadot-node-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tikv-jemalloc-ctl", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "polkadot-parachain-primitives" -version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bounded-collections", - "derive_more", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-parachain-primitives" version = "6.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bounded-collections", "derive_more", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-core-primitives 7.0.0", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", ] [[package]] @@ -10591,55 +9526,28 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bitvec", - "hex-literal", - "log", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "scale-info", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-primitives" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", "hex-literal", "log", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-authority-discovery 26.0.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -10673,135 +9581,86 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "jsonrpsee", "mmr-rpc", - "pallet-transaction-payment-rpc 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment-rpc", + "polkadot-primitives 7.0.0", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", "sc-consensus-babe-rpc", "sc-consensus-beefy", "sc-consensus-beefy-rpc", - "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-epochs", "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-spec-v2 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc", + "sc-rpc-spec-v2", "sc-sync-state-rpc", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-consensus-beefy", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-frame-rpc-system", "substrate-state-trie-migration-rpc", ] [[package]] name = "polkadot-runtime-common" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", - "libsecp256k1", - "log", - "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-election-provider-multi-phase 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-fast-unstake 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-staking-reward-fn 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "slot-range-helper 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "static_assertions", -] - -[[package]] -name = "polkadot-runtime-common" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "libsecp256k1", "log", - "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-election-provider-multi-phase 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-fast-unstake 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-staking-reward-fn 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-asset-rate 7.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", + "pallet-broker 0.6.0", + "pallet-election-provider-multi-phase 27.0.0", + "pallet-fast-unstake 27.0.0", + "pallet-identity 29.0.0", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", + "pallet-staking-reward-fn 19.0.0", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-treasury 27.0.0", + "pallet-vesting 28.0.0", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "polkadot-runtime-parachains 7.0.0", "rustc-hex", "scale-info", "serde", "serde_derive", - "slot-range-helper 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "slot-range-helper 7.0.0", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", "static_assertions", ] @@ -10874,27 +9733,14 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bs58 0.5.1", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-runtime-metrics" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bs58 0.5.1", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -10914,98 +9760,49 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bitflags 1.3.2", - "bitvec", - "derive_more", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", - "log", - "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rustc-hex", - "scale-info", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "static_assertions", -] - -[[package]] -name = "polkadot-runtime-parachains" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bitflags 1.3.2", "bitvec", "derive_more", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "log", - "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-broker 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-metrics 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authority-discovery 28.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", + "pallet-broker 0.6.0", + "pallet-message-queue 31.0.0", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", + "pallet-timestamp 27.0.0", + "pallet-vesting 28.0.0", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-metrics 7.0.0", "rand 0.8.5", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-executor 7.0.0", "static_assertions", ] @@ -11061,16 +9858,16 @@ dependencies = [ [[package]] name = "polkadot-service" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-benchmarking-cli 32.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-benchmarking-cli", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-rpc-runtime-api", "futures", "hex-literal", "is_executable", @@ -11078,10 +9875,10 @@ dependencies = [ "kvdb-rocksdb", "log", "mmr-gadget", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-babe 28.0.0", + "pallet-staking 28.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", "parking_lot 0.12.3", @@ -11090,7 +9887,7 @@ dependencies = [ "polkadot-availability-distribution", "polkadot-availability-recovery", "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-core-primitives 7.0.0", "polkadot-dispute-distribution", "polkadot-gossip-support", "polkadot-network-bridge", @@ -11109,119 +9906,108 @@ dependencies = [ "polkadot-node-core-pvf", "polkadot-node-core-pvf-checker", "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem-types 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", - "polkadot-overseer 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-overseer", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", "polkadot-rpc", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-runtime-parachains 7.0.0", "polkadot-statement-distribution", "rococo-runtime", "rococo-runtime-constants", - "sc-authority-discovery 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-basic-authorship 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-babe", "sc-consensus-beefy", "sc-consensus-grandpa", - "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-offchain 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-slots", + "sc-executor", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-offchain", + "sc-service", "sc-sync-state-rpc", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-sysinfo", + "sc-telemetry", + "sc-transaction-pool", + "sc-transaction-pool-api", "schnellru", "serde", "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-keystore 0.34.0", "sp-mmr-primitives", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-timestamp 26.0.0", + "sp-transaction-pool", + "sp-version 29.0.0", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "substrate-prometheus-endpoint", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", "westend-runtime", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "xcm-fee-payment-runtime-api", ] [[package]] name = "polkadot-statement-distribution" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "arrayvec 0.7.6", "bitvec", - "fatality 0.0.6", + "fatality", "futures", "futures-timer", "indexmap 2.4.0", "parity-scale-codec", - "polkadot-node-network-protocol 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-node-subsystem 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-primitives 7.0.0", + "sp-keystore 0.34.0", + "sp-staking 26.0.0", "thiserror", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "polkadot-statement-table" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "tracing-gum", ] [[package]] name = "polkadot-statement-table" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tracing-gum 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "sp-core 28.0.0", + "tracing-gum", ] [[package]] @@ -12223,25 +11009,25 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "binary-merkle-tree", "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", - "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-asset-rate 7.0.0", + "pallet-authority-discovery 28.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", "pallet-beefy", "pallet-beefy-mmr", "pallet-bounties", @@ -12251,10 +11037,10 @@ dependencies = [ "pallet-democracy", "pallet-elections-phragmen", "pallet-grandpa", - "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-identity 29.0.0", "pallet-indices", "pallet-membership", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-message-queue 31.0.0", "pallet-mmr", "pallet-multisig", "pallet-nis", @@ -12267,74 +11053,74 @@ dependencies = [ "pallet-referenda", "pallet-root-testing", "pallet-scheduler", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0", "pallet-society", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0", "pallet-state-trie-migration", - "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-sudo", + "pallet-timestamp 27.0.0", "pallet-tips", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury 27.0.0", "pallet-utility", - "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-vesting 28.0.0", "pallet-whitelist", - "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", "rococo-runtime-constants", "scale-info", "serde", "serde_derive", "serde_json", "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-authority-discovery 26.0.0", + "sp-block-builder", + "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", "sp-mmr-primitives", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-version 29.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", "static_assertions", - "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", ] [[package]] name = "rococo-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", ] [[package]] @@ -12620,60 +11406,18 @@ dependencies = [ [[package]] name = "sc-allocator" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sc-allocator" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sc-authority-discovery" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "async-trait", - "futures", - "futures-timer", - "ip_network", - "libp2p", - "linked_hash_set", "log", - "multihash 0.17.0", - "multihash-codetable", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.11.9", - "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", ] [[package]] name = "sc-authority-discovery" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", @@ -12688,162 +11432,87 @@ dependencies = [ "prost 0.12.6", "prost-build 0.12.6", "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-network", + "sc-network-types", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-basic-authorship" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-proposer-metrics 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-basic-authorship" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "futures-timer", "log", "parity-scale-codec", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-proposer-metrics 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-block-builder" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-block-builder", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-block-builder" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", ] [[package]] name = "sc-chain-spec" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "docify", "log", "memmap2 0.9.4", "parity-scale-codec", - "sc-chain-spec-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec-derive", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-telemetry", "serde", "serde_json", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-chain-spec" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "array-bytes 6.2.3", - "docify", - "log", - "memmap2 0.9.4", - "parity-scale-codec", - "sc-chain-spec-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "serde", - "serde_json", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "sc-chain-spec-derive" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sc-chain-spec-derive" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -12854,50 +11523,9 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", - "chrono", - "clap", - "fdlimit", - "futures", - "itertools 0.10.5", - "libp2p-identity", - "log", - "names", - "parity-bip39", - "parity-scale-codec", - "rand 0.8.5", - "regex", - "rpassword", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "serde", - "serde_json", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tokio", -] - -[[package]] -name = "sc-cli" -version = "0.36.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "chrono", "clap", "fdlimit", @@ -12911,24 +11539,24 @@ dependencies = [ "rand 0.8.5", "regex", "rpassword", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-client-db", + "sc-keystore", + "sc-mixnet", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", "serde", "serde_json", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain", + "sp-core 28.0.0", + "sp-keyring", + "sp-keystore 0.34.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-version 29.0.0", "thiserror", "tokio", ] @@ -12936,61 +11564,34 @@ dependencies = [ [[package]] name = "sc-client-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "fnv", - "futures", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-client-api" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-database", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-statement-store", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "hash-db", "kvdb", @@ -13001,73 +11602,22 @@ dependencies = [ "parity-db", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-state-db 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-state-db", "schnellru", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-client-db" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "linked-hash-map", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-state-db 0.30.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "schnellru", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-consensus" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "log", - "mockall 0.11.4", - "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-database", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", ] [[package]] name = "sc-consensus" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", @@ -13075,92 +11625,56 @@ dependencies = [ "log", "mockall 0.11.4", "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-network-types", + "sc-utils", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-aura" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "log", "parity-scale-codec", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-consensus-slots", + "sc-telemetry", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sc-consensus-babe" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "log", - "num-bigint", - "num-rational", - "num-traits", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-babe" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "fork-tree", "futures", "log", "num-bigint", @@ -13168,56 +11682,56 @@ dependencies = [ "num-traits", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus-slots 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-consensus", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-babe-rpc" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "jsonrpsee", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-rpc-api", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "fnv", @@ -13225,25 +11739,24 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-consensus", + "sc-network", "sc-network-gossip", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync", + "sc-network-types", + "sc-utils", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", "tokio", "wasm-timer", @@ -13252,7 +11765,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "jsonrpsee", @@ -13260,108 +11773,96 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "sc-consensus-beefy", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc", "serde", + "sp-application-crypto 30.0.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-epochs" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-consensus-epochs" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "fork-tree", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime 31.0.1", ] [[package]] name = "sc-consensus-grandpa" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "ahash 0.8.11", - "array-bytes 6.2.3", + "array-bytes", "async-trait", "dyn-clone", "finality-grandpa", - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "fork-tree", "futures", "futures-timer", "log", "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", "sc-network-gossip", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-network-sync", + "sc-network-types", + "sc-telemetry", + "sc-transaction-pool-api", + "sc-utils", "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-grandpa-rpc" version = "0.19.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "finality-grandpa", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", "sc-consensus-grandpa", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-rpc", "serde", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-consensus-manual-seal" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "assert_matches", "async-trait", @@ -13370,143 +11871,84 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-consensus", "sc-consensus-aura", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "sc-transaction-pool-api", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", "sp-consensus-aura", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-consensus-babe 0.32.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-consensus-slots" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "futures-timer", "log", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-consensus-slots" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-executor" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor-polkavm 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor-wasmtime 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "schnellru", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", ] [[package]] name = "sc-executor" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor-polkavm 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor-wasmtime 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", "schnellru", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "tracing", ] [[package]] name = "sc-executor-common" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "polkavm", - "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "wasm-instrument", -] - -[[package]] -name = "sc-executor-common" -version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "polkavm", - "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", "wasm-instrument", ] @@ -13514,47 +11956,18 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "log", - "polkavm", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-executor-polkavm" -version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "log", "polkavm", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "anyhow", - "cfg-if", - "libc", - "log", - "parking_lot 0.12.3", - "rustix 0.36.17", - "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "wasmtime", + "sc-executor-common", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "sc-executor-wasmtime" version = "0.29.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "anyhow", "cfg-if", @@ -13562,110 +11975,50 @@ dependencies = [ "log", "parking_lot 0.12.3", "rustix 0.36.17", - "sc-allocator 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor-common 0.29.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "wasmtime", ] [[package]] name = "sc-informant" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "ansi_term", - "futures", - "futures-timer", - "log", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-informant" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "ansi_term", "futures", "futures-timer", "log", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-keystore" -version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "parking_lot 0.12.3", - "serde_json", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sp-blockchain", + "sp-runtime 31.0.1", ] [[package]] name = "sc-keystore" version = "25.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "parking_lot 0.12.3", "serde_json", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sc-mixnet" -version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 4.2.0", - "arrayvec 0.7.6", - "blake2 0.10.6", - "bytes", - "futures", - "futures-timer", - "log", - "mixnet", - "multiaddr", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", "thiserror", ] [[package]] name = "sc-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "arrayvec 0.7.6", "blake2 0.10.6", "bytes", @@ -13676,76 +12029,25 @@ dependencies = [ "multiaddr", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sc-network" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "async-channel 1.9.0", - "async-trait", - "asynchronous-codec", - "bytes", - "cid 0.9.0", - "either", - "fnv", - "futures", - "futures-timer", - "ip_network", - "libp2p", - "linked_hash_set", - "litep2p", - "log", - "mockall 0.11.4", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.3", - "partial_sort", - "pin-project", - "prost 0.11.9", - "prost-build 0.11.9", - "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "schnellru", - "serde", - "serde_json", - "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-network", + "sc-network-types", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-consensus", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-mixnet", + "sp-runtime 31.0.1", "thiserror", - "tokio", - "tokio-stream", - "unsigned-varint", - "void", - "wasm-timer", - "zeroize", ] [[package]] name = "sc-network" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "asynchronous-codec", @@ -13769,19 +12071,19 @@ dependencies = [ "prost 0.12.6", "prost-build 0.12.6", "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-network-common", + "sc-network-types", + "sc-utils", "schnellru", "serde", "serde_json", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", "tokio", "tokio-stream", @@ -13794,25 +12096,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "futures", - "libp2p-identity", - "parity-scale-codec", - "prost-build 0.11.9", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-network-common" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -13820,121 +12104,63 @@ dependencies = [ "libp2p-identity", "parity-scale-codec", "prost-build 0.12.6", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-consensus", + "sc-network-types", + "sp-consensus", + "sp-consensus-grandpa", + "sp-runtime 31.0.1", ] [[package]] name = "sc-network-gossip" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "ahash 0.8.11", "futures", "futures-timer", "libp2p", "log", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-network-types", "schnellru", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "tracing", ] [[package]] name = "sc-network-light" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", - "async-channel 1.9.0", - "futures", - "log", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.11.9", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sc-network-light" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "futures", "log", "parity-scale-codec", "prost 0.12.6", "prost-build 0.12.6", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sc-network-sync" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "async-channel 1.9.0", - "async-trait", - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "futures-timer", - "libp2p", - "log", - "mockall 0.11.4", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.11.9", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "schnellru", - "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-network", + "sc-network-types", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "thiserror", - "tokio", - "tokio-stream", ] [[package]] name = "sc-network-sync" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", - "fork-tree 12.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "fork-tree", "futures", "futures-timer", "libp2p", @@ -13943,21 +12169,21 @@ dependencies = [ "parity-scale-codec", "prost 0.12.6", "prost-build 0.12.6", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-types", + "sc-utils", "schnellru", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-grandpa 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", "thiserror", "tokio", "tokio-stream", @@ -13966,112 +12192,45 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "futures", "libp2p", "log", "parity-scale-codec", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-network-transactions" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "array-bytes 6.2.3", - "futures", - "libp2p", - "log", - "parity-scale-codec", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-network-types" -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bs58 0.4.0", - "libp2p-identity", - "litep2p", - "multiaddr", - "multihash 0.17.0", - "rand 0.8.5", - "thiserror", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-network-types", + "sc-utils", + "sp-consensus", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-network-types" version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bs58 0.5.1", + "ed25519-dalek 2.1.1", "libp2p-identity", "litep2p", "multiaddr", "multihash 0.17.0", "rand 0.8.5", "thiserror", + "zeroize", ] [[package]] name = "sc-offchain" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "bytes", - "fnv", - "futures", - "futures-timer", - "hyper", - "hyper-rustls", - "libp2p", - "log", - "num_cpus", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "threadpool", - "tracing", -] - -[[package]] -name = "sc-offchain" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bytes", "fnv", "futures", @@ -14085,18 +12244,18 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-network-types", + "sc-transaction-pool-api", + "sc-utils", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-offchain", + "sp-runtime 31.0.1", "threadpool", "tracing", ] @@ -14104,147 +12263,68 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "log", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-proposer-metrics" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "log", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint", ] [[package]] name = "sc-rpc" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-mixnet", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-offchain", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-statement-store", + "sp-version 29.0.0", "tokio", ] -[[package]] -name = "sc-rpc" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-block-builder 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-statement-store 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tokio", -] - -[[package]] -name = "sc-rpc-api" -version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "scale-info", - "serde", - "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - [[package]] name = "sc-rpc-api" version = "0.33.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-mixnet 0.4.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-chain-spec", + "sc-mixnet", + "sc-transaction-pool-api", "scale-info", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-version 29.0.0", "thiserror", ] [[package]] name = "sc-rpc-server" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "futures", - "governor", - "http", - "hyper", - "jsonrpsee", - "log", - "serde_json", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tokio", - "tower", - "tower-http", -] - -[[package]] -name = "sc-rpc-server" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "forwarded-header-value", "futures", @@ -14255,7 +12335,7 @@ dependencies = [ "jsonrpsee", "log", "serde_json", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-prometheus-endpoint", "tokio", "tower", "tower-http", @@ -14264,41 +12344,9 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "futures", - "futures-util", - "hex", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "schnellru", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tokio", - "tokio-stream", -] - -[[package]] -name = "sc-rpc-spec-v2" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "futures", "futures-util", "hex", @@ -14307,19 +12355,19 @@ dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", "rand 0.8.5", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-chain-spec", + "sc-client-api", + "sc-rpc", + "sc-transaction-pool-api", + "sc-utils", "schnellru", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-version 29.0.0", "thiserror", "tokio", "tokio-stream", @@ -14328,7 +12376,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "directories", @@ -14341,47 +12389,47 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "rand 0.8.5", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-informant 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-light 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-transactions 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-network-types 0.10.0-dev", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-server 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-spec-v2 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-network-transactions", + "sc-network-types", + "sc-rpc", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", "schnellru", "serde", "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-storage-proof 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie 29.0.0", + "sp-version 29.0.0", "static_init", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "substrate-prometheus-endpoint", "tempfile", "thiserror", "tokio", @@ -14389,149 +12437,53 @@ dependencies = [ "tracing-futures", ] -[[package]] -name = "sc-service" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "async-trait", - "directories", - "exit-future", - "futures", - "futures-timer", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-db 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-informant 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-keystore 25.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-common 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-light 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-transactions 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-types 0.10.0", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-rpc-server 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-rpc-spec-v2 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "schnellru", - "serde", - "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-transaction-storage-proof 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "static_init", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "tempfile", - "thiserror", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "sc-state-db" -version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - [[package]] name = "sc-state-db" version = "0.30.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", ] [[package]] name = "sc-storage-monitor" version = "0.16.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "clap", "fs4", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", "thiserror", "tokio", ] [[package]] name = "sc-sync-state-rpc" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-babe 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-epochs 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-consensus-grandpa", - "serde", - "serde_json", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sc-sysinfo" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "derive_more", - "futures", - "libc", - "log", - "rand 0.8.5", - "rand_pcg", - "regex", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-consensus-grandpa", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-blockchain", + "sp-runtime 31.0.1", + "thiserror", ] [[package]] name = "sc-sysinfo" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "derive_more", "futures", @@ -14540,39 +12492,19 @@ dependencies = [ "rand 0.8.5", "rand_pcg", "regex", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "serde", - "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sc-telemetry" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "chrono", - "futures", - "libp2p", - "log", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-telemetry", "serde", "serde_json", - "thiserror", - "wasm-timer", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "sc-telemetry" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "chrono", "futures", @@ -14581,8 +12513,8 @@ dependencies = [ "parking_lot 0.12.3", "pin-project", "rand 0.8.5", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-network", + "sc-utils", "serde", "serde_json", "thiserror", @@ -14592,37 +12524,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "ansi_term", - "chrono", - "is-terminal", - "lazy_static", - "libc", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "regex", - "rustc-hash", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-tracing-proc-macro 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "tracing-log 0.1.4", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "sc-tracing" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "ansi_term", "chrono", @@ -14634,15 +12536,15 @@ dependencies = [ "parking_lot 0.12.3", "regex", "rustc-hash", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing-proc-macro 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-tracing-proc-macro", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-rpc 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", "tracing", "tracing-log 0.2.0", @@ -14652,18 +12554,7 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sc-tracing-proc-macro" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro-crate 3.1.0", "proc-macro2", @@ -14674,34 +12565,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "linked-hash-map", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", @@ -14710,72 +12574,41 @@ dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.3", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool-api" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "futures", - "log", - "parity-scale-codec", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", "serde", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "sc-transaction-pool-api" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "log", "parity-scale-codec", "serde", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sc-utils" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-channel 1.9.0", - "futures", - "futures-timer", - "lazy_static", - "log", - "parking_lot 0.12.3", - "prometheus", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sc-utils" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-channel 1.9.0", "futures", @@ -14784,7 +12617,7 @@ dependencies = [ "log", "parking_lot 0.12.3", "prometheus", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", ] [[package]] @@ -15107,56 +12940,55 @@ name = "sh-xcm-simulator" version = "0.1.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-aura", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", "num-bigint", "pallet-aura", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", "pallet-bucket-nfts", "pallet-collator-selection", "pallet-file-system", "pallet-file-system-runtime-api", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-message-queue 31.0.0", "pallet-nfts", "pallet-payment-streams", "pallet-payment-streams-runtime-api", "pallet-proofs-dealer", "pallet-proofs-dealer-runtime-api", "pallet-randomness", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", "pallet-uniques", - "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-xcm", "parachains-common", "parity-scale-codec", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-runtime-common 7.0.0", "polkadot-runtime-constants", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-runtime-parachains 7.0.0", "scale-info", "shp-constants", "shp-file-key-verifier", @@ -15164,27 +12996,27 @@ dependencies = [ "shp-forest-verifier", "shp-traits", "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "sp-weights 27.0.0", "staging-parachain-info", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "xcm-fee-payment-runtime-api", "xcm-simulator", ] @@ -15283,13 +13115,13 @@ dependencies = [ "anyhow", "bincode", "futures", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-service", + "sc-tracing", + "sc-utils", "serde", "serde_json", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "tokio", ] @@ -15298,13 +13130,13 @@ name = "shc-blockchain-service" version = "0.1.0" dependencies = [ "anyhow", - "array-bytes 6.2.3", + "array-bytes", "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", - "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", "futures", "lazy_static", "log", @@ -15316,28 +13148,28 @@ dependencies = [ "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", "rocksdb", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-network", + "sc-service", + "sc-tracing", + "sc-utils", "serde", "serde_json", "shc-actors-framework", "shc-common", "shp-file-key-verifier", "shp-file-metadata", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", "storage-hub-runtime", - "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-frame-rpc-system", "tokio", ] @@ -15348,31 +13180,31 @@ dependencies = [ "anyhow", "bincode", "cumulus-client-service", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", "lazy_static", "pallet-file-system", "pallet-proofs-dealer", "pallet-storage-providers", "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-service", "serde", "shp-constants", "shp-file-key-verifier", "shp-file-metadata", "shp-forest-verifier", "shp-traits", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-blockchain", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", "storage-hub-runtime", "thiserror", "trie-db 0.29.1", @@ -15392,10 +13224,10 @@ dependencies = [ "serde_json", "shc-common", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", "thiserror", "trie-db 0.29.1", ] @@ -15405,19 +13237,18 @@ name = "shc-file-transfer-service" version = "0.1.0" dependencies = [ "anyhow", - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-trait", "futures", - "libp2p-identity", "parity-scale-codec", "prost 0.12.6", "prost-build 0.12.6", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-client-api", + "sc-network", + "sc-service", + "sc-tracing", + "sc-utils", "shc-actors-framework", "shc-common", "shp-file-key-verifier", @@ -15443,10 +13274,10 @@ dependencies = [ "shc-common", "shp-forest-verifier", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", "thiserror", "tokio", "trie-db 0.29.1", @@ -15473,14 +13304,14 @@ name = "shc-indexer-service" version = "0.1.0" dependencies = [ "anyhow", - "array-bytes 6.2.3", + "array-bytes", "async-trait", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", "diesel", "diesel-async", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "futures", "lazy_static", "log", @@ -15494,26 +13325,26 @@ dependencies = [ "pallet-randomness", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "sc-client-api", + "sc-network", + "sc-service", + "sc-tracing", + "sc-utils", "serde", "serde_json", "shc-actors-framework", "shc-common", "shc-indexer-db", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "storage-hub-runtime", - "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-frame-rpc-system", "thiserror", "tokio", ] @@ -15522,17 +13353,17 @@ dependencies = [ name = "shc-rpc" version = "0.1.0" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "jsonrpsee", "log", "serde", "shc-common", "shc-file-manager", "shc-forest-manager", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", "tokio", ] @@ -15546,8 +13377,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" name = "shp-constants" version = "0.1.0" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -15555,7 +13386,7 @@ name = "shp-file-key-verifier" version = "0.1.0" dependencies = [ "bincode", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", "num-bigint", "parity-scale-codec", "rand 0.8.5", @@ -15563,11 +13394,11 @@ dependencies = [ "serde", "shp-file-metadata", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", "trie-db 0.29.1", ] @@ -15580,9 +13411,9 @@ dependencies = [ "scale-info", "serde", "shp-traits", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -15590,16 +13421,16 @@ name = "shp-forest-verifier" version = "0.1.0" dependencies = [ "bincode", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", "parity-scale-codec", "scale-info", "serde", "shp-traits", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", "trie-db 0.29.1", ] @@ -15610,26 +13441,26 @@ dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "shp-traits" version = "0.1.0" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", ] [[package]] @@ -15709,25 +13540,13 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "enumn", - "parity-scale-codec", - "paste", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "slot-range-helper" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "enumn", "parity-scale-codec", "paste", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -15928,44 +13747,22 @@ dependencies = [ [[package]] name = "sp-api" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sp-api" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "hash-db", "log", "parity-scale-codec", "scale-info", - "sp-api-proc-macro 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api-proc-macro 15.0.0", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-version 29.0.0", "thiserror", ] @@ -15994,25 +13791,11 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander 2.2.1", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-api-proc-macro" -version = "15.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "Inflector", "blake2 0.10.6", - "expander 2.2.1", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -16027,7 +13810,7 @@ checksum = "0301e2f77afb450fbf2b093f8b324c7ad88cc82e5e69bd5dc8658a1f068b2a96" dependencies = [ "Inflector", "blake2 0.10.6", - "expander 2.2.1", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -16037,27 +13820,14 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-application-crypto" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -16077,22 +13847,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "docify", - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "static_assertions", -] - -[[package]] -name = "sp-arithmetic" -version = "23.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", "integer-sqrt", @@ -16100,7 +13855,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "static_assertions", ] @@ -16140,25 +13895,13 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-authority-discovery" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -16178,139 +13921,78 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-block-builder" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-blockchain" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "futures", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "schnellru", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", + "sp-api 26.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-blockchain" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "futures", "log", "parity-scale-codec", "parking_lot 0.12.3", "schnellru", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-database 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "thiserror", -] - -[[package]] -name = "sp-consensus" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "futures", - "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-consensus", + "sp-database", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "sp-consensus" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "futures", "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-consensus-babe" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-consensus-slots 0.32.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", ] [[package]] name = "sp-consensus-babe" version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-consensus-slots 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", ] [[package]] @@ -16336,145 +14018,70 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "lazy_static", "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", "sp-mmr-primitives", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", "strum 0.26.3", ] [[package]] name = "sp-consensus-grandpa" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-consensus-grandpa" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "finality-grandpa", "log", "parity-scale-codec", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.32.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-consensus-slots" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73a5bd1fcd84bbdc7255528c7cdb92f9357fd555f06ee553af7e340cbdab517c" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-timestamp 27.0.0", -] - -[[package]] -name = "sp-core" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "bandersnatch_vrfs", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand 0.8.5", "scale-info", - "schnorrkel 0.11.4", - "secp256k1", - "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", + "sp-timestamp 26.0.0", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73a5bd1fcd84bbdc7255528c7cdb92f9357fd555f06ee553af7e340cbdab517c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-timestamp 27.0.0", ] [[package]] name = "sp-core" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bandersnatch_vrfs", "bitflags 1.3.2", "blake2 0.10.6", @@ -16502,14 +14109,14 @@ dependencies = [ "secp256k1", "secrecy", "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-bip39 0.4.7", "thiserror", "tracing", "w3f-bls", @@ -16522,7 +14129,7 @@ version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c33c7a1568175250628567d50c4e1c54a6ac5bc1190413b9be29a9e810cbe73" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bip39", "bitflags 1.3.2", "blake2 0.10.6", @@ -16599,20 +14206,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - -[[package]] -name = "sp-crypto-hashing" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "blake2b_simd", "byteorder", @@ -16636,36 +14230,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "syn 2.0.75", -] - -[[package]] -name = "sp-crypto-hashing-proc-macro" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "syn 2.0.75", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "kvdb", - "parking_lot 0.12.3", -] - -[[package]] -name = "sp-database" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "kvdb", "parking_lot 0.12.3", @@ -16685,17 +14260,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "proc-macro2", "quote", @@ -16715,21 +14280,11 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "environmental", "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -16769,50 +14324,25 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-genesis-builder" -version = "0.8.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", "serde_json", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-inherents" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", + "sp-api 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-inherents" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-runtime 31.0.1", "thiserror", ] @@ -16834,33 +14364,7 @@ dependencies = [ [[package]] name = "sp-io" version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bytes", - "ed25519-dalek 2.1.1", - "libsecp256k1", - "log", - "parity-scale-codec", - "polkavm-derive", - "rustversion", - "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "30.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bytes", "ed25519-dalek 2.1.1", @@ -16870,15 +14374,15 @@ dependencies = [ "polkavm-derive", "rustversion", "secp256k1", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", "tracing", "tracing-core", ] @@ -16912,43 +14416,22 @@ dependencies = [ [[package]] name = "sp-keyring" version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "strum 0.26.3", -] - -[[package]] -name = "sp-keyring" -version = "31.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", "strum 0.26.3", ] [[package]] name = "sp-keystore" version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-keystore" -version = "0.34.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -16967,16 +14450,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "thiserror", - "zstd 0.12.4", -] - -[[package]] -name = "sp-maybe-compressed-blob" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "thiserror", "zstd 0.12.4", @@ -16997,17 +14471,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-metadata", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "sp-metadata-ir" -version = "0.6.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -17017,66 +14481,42 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-mixnet" -version = "0.4.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", ] [[package]] name = "sp-mmr-primitives" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "ckb-merkle-mountain-range", "log", "parity-scale-codec", + "polkadot-ckb-merkle-mountain-range", "scale-info", "serde", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", "thiserror", ] [[package]] name = "sp-npos-elections" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-npos-elections" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -17097,21 +14537,11 @@ dependencies = [ [[package]] name = "sp-offchain" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-offchain" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -17128,17 +14558,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-panic-handler" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "backtrace", "lazy_static", @@ -17148,51 +14568,17 @@ dependencies = [ [[package]] name = "sp-rpc" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "rustc-hash", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-rpc" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "rustc-hash", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-runtime" -version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", ] [[package]] name = "sp-runtime" version = "31.0.1" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "docify", "either", @@ -17206,12 +14592,12 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", ] [[package]] @@ -17242,38 +14628,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive", - "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", "polkavm-derive", "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "static_assertions", ] @@ -17322,20 +14689,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfaf6e85b2ec12a4b99cd6d8d57d083e30c94b7f1b0d8f93547121495aae6f0c" dependencies = [ "Inflector", - "expander 2.2.1", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "Inflector", - "expander 2.2.1", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -17345,10 +14699,10 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "Inflector", - "expander 2.2.1", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -17361,7 +14715,7 @@ version = "17.0.0" source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" dependencies = [ "Inflector", - "expander 2.2.1", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -17371,29 +14725,15 @@ dependencies = [ [[package]] name = "sp-session" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-session" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", ] [[package]] @@ -17415,27 +14755,14 @@ dependencies = [ [[package]] name = "sp-staking" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-staking" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", ] [[package]] @@ -17448,35 +14775,15 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-state-machine" -version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "trie-db 0.29.1", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "sp-state-machine" version = "0.35.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "hash-db", "log", @@ -17484,10 +14791,10 @@ dependencies = [ "parking_lot 0.12.3", "rand 0.8.5", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", "thiserror", "tracing", "trie-db 0.29.1", @@ -17518,31 +14825,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "aes-gcm", - "curve25519-dalek 4.1.3", - "ed25519-dalek 2.1.1", - "hkdf", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sha2 0.10.8", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "x25519-dalek 2.0.1", -] - -[[package]] -name = "sp-statement-store" -version = "10.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "aes-gcm", "curve25519-dalek 4.1.3", @@ -17552,13 +14835,13 @@ dependencies = [ "rand 0.8.5", "scale-info", "sha2 0.10.8", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", "x25519-dalek 2.0.1", ] @@ -17572,12 +14855,7 @@ checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" - -[[package]] -name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" [[package]] name = "sp-std" @@ -17587,25 +14865,13 @@ source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf [[package]] name = "sp-storage" version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "impl-serde", "parity-scale-codec", "ref-cast", "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -17637,24 +14903,12 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sp-timestamp" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "parity-scale-codec", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", "thiserror", ] @@ -17688,18 +14942,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "tracing", @@ -17721,76 +14964,30 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-transaction-pool" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-transaction-storage-proof" -version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "sp-transaction-storage-proof" version = "26.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "async-trait", "parity-scale-codec", "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "ahash 0.8.11", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "scale-info", - "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "trie-db 0.29.1", - "trie-root", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", ] [[package]] name = "sp-trie" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "ahash 0.8.11", "hash-db", @@ -17802,8 +14999,8 @@ dependencies = [ "rand 0.8.5", "scale-info", "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", "tracing", "trie-db 0.29.1", @@ -17838,34 +15035,17 @@ dependencies = [ [[package]] name = "sp-version" version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", -] - -[[package]] -name = "sp-version" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", "thiserror", ] @@ -17902,18 +15082,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-version-proc-macro" -version = "13.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "parity-scale-codec", "proc-macro2", @@ -17938,19 +15107,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "wasmtime", -] - -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -17972,29 +15129,15 @@ dependencies = [ [[package]] name = "sp-weights" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "sp-weights" -version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] @@ -18068,41 +15211,23 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" -dependencies = [ - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "staging-xcm" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", - "bounded-collections", - "derivative", - "environmental", - "impl-trait-for-tuples", - "log", + "cumulus-primitives-core", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "scale-info", - "serde", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "xcm-procedural 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", ] [[package]] name = "staging-xcm" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bounded-collections", "derivative", "environmental", @@ -18111,8 +15236,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "xcm-procedural 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-weights 27.0.0", + "xcm-procedural 7.0.0", ] [[package]] @@ -18121,7 +15246,7 @@ version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48fa328b87de3466bc38cc9a07244c42c647b7755b81115e1dfeb47cc13fc6e6" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "bounded-collections", "derivative", "environmental", @@ -18137,45 +15262,23 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", - "log", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "staging-xcm-builder" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "impl-trait-for-tuples", "log", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "staging-xcm-executor 7.0.0", ] [[package]] @@ -18204,43 +15307,22 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "environmental", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "staging-xcm-executor" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "environmental", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", ] [[package]] @@ -18304,28 +15386,28 @@ name = "storage-hub-node" version = "0.1.0" dependencies = [ "anyhow", - "array-bytes 6.2.3", + "array-bytes", "async-channel 1.9.0", "async-io 2.3.4", "async-trait", "chrono", "clap", "color-print", - "cumulus-client-cli 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "cumulus-client-collator 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-cli", + "cumulus-client-collator", "cumulus-client-consensus-aura", - "cumulus-client-consensus-common 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-parachain-inherent", "cumulus-client-service", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-primitives-storage-weight-reclaim", - "cumulus-relay-chain-interface 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-benchmarking-cli 32.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-relay-chain-interface", + "frame-benchmarking 28.0.0", + "frame-benchmarking-cli", + "frame-support 28.0.0", + "frame-system 28.0.0", "futures", "futures-timer", "hex", @@ -18341,31 +15423,31 @@ dependencies = [ "pallet-proofs-dealer", "pallet-proofs-dealer-runtime-api", "pallet-storage-providers", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment-rpc 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc", "parity-scale-codec", "polkadot-cli", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-basic-authorship 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-chain-spec 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-cli 0.36.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-consensus 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", "sc-consensus-aura", "sc-consensus-manual-seal", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-network-sync 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-offchain 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-rpc 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-service 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-sysinfo 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-telemetry 15.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-tracing 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-utils 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor", + "sc-network", + "sc-network-sync", + "sc-offchain", + "sc-rpc", + "sc-service", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", "serde", "serde_json", "shc-actors-framework", @@ -18381,23 +15463,23 @@ dependencies = [ "shp-file-key-verifier", "shp-file-metadata", "shp-traits", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-block-builder", + "sp-blockchain", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keyring 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-keystore 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-timestamp 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", + "sp-trie 29.0.0", + "staging-xcm 7.0.0", "storage-hub-runtime", - "substrate-build-script-utils 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-frame-rpc-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-prometheus-endpoint 0.17.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "substrate-build-script-utils", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", "thiserror", "tokio", ] @@ -18412,47 +15494,47 @@ dependencies = [ "cumulus-pallet-xcm", "cumulus-pallet-xcmp-queue", "cumulus-primitives-aura", - "cumulus-primitives-core 0.7.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "cumulus-primitives-core", "cumulus-primitives-storage-weight-reclaim", "cumulus-primitives-utility", "docify", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-benchmarking 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", "num-bigint", "pallet-aura", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", "pallet-bucket-nfts", "pallet-collator-selection", "pallet-file-system", "pallet-file-system-runtime-api", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-message-queue 31.0.0", "pallet-nfts", "pallet-payment-streams", "pallet-payment-streams-runtime-api", "pallet-proofs-dealer", "pallet-proofs-dealer-runtime-api", "pallet-randomness", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-session 28.0.0", "pallet-storage-providers", "pallet-storage-providers-runtime-api", - "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-xcm", "parachains-common", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-parachain-primitives 6.0.0", + "polkadot-runtime-common 7.0.0", "scale-info", "shp-constants", "shp-file-key-verifier", @@ -18460,26 +15542,26 @@ dependencies = [ "shp-forest-verifier", "shp-traits", "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-api 26.0.0", + "sp-block-builder", "sp-consensus-aura", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "sp-weights 27.0.0", "staging-parachain-info", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", ] [[package]] @@ -18592,19 +15674,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.12.2", - "schnorrkel 0.11.4", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -18616,67 +15686,31 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" - -[[package]] -name = "substrate-build-script-utils" -version = "11.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" - -[[package]] -name = "substrate-frame-rpc-system" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" [[package]] name = "substrate-frame-rpc-system" version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-system-rpc-runtime-api", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sc-transaction-pool-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-blockchain 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "substrate-prometheus-endpoint" -version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "hyper", - "log", - "prometheus", - "thiserror", - "tokio", + "sc-rpc-api", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", ] [[package]] name = "substrate-prometheus-endpoint" version = "0.17.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "hyper", "log", @@ -18688,45 +15722,26 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "27.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "jsonrpsee", "parity-scale-codec", - "sc-client-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sc-rpc-api 0.33.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sc-client-api", + "sc-rpc-api", "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", "trie-db 0.29.1", ] [[package]] name = "substrate-wasm-builder" version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "build-helper", - "cargo_metadata", - "console", - "filetime", - "parity-wasm", - "polkavm-linker", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "strum 0.26.3", - "tempfile", - "toml 0.8.19", - "walkdir", - "wasm-opt", -] - -[[package]] -name = "substrate-wasm-builder" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "array-bytes 6.2.3", + "array-bytes", "build-helper", "cargo_metadata", "console", @@ -18736,12 +15751,12 @@ dependencies = [ "parity-scale-codec", "parity-wasm", "polkavm-linker", - "sc-executor 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-maybe-compressed-blob 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "sc-executor", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-maybe-compressed-blob", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version 29.0.0", "strum 0.26.3", "tempfile", "toml 0.8.19", @@ -19310,43 +16325,20 @@ dependencies = [ [[package]] name = "tracing-gum" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "coarsetime", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "tracing", - "tracing-gum-proc-macro 5.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "tracing-gum" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "coarsetime", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-primitives 7.0.0", "tracing", - "tracing-gum-proc-macro 5.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "tracing-gum-proc-macro" -version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "expander 2.2.1", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", + "tracing-gum-proc-macro", ] [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "expander 2.2.1", + "expander", "proc-macro-crate 3.1.0", "proc-macro2", "quote", @@ -20239,41 +17231,42 @@ dependencies = [ [[package]] name = "westend-runtime" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "binary-merkle-tree", "bitvec", - "frame-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-election-provider-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-executive 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-metadata-hash-extension 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system-benchmarking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-system-rpc-runtime-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "frame-try-runtime 0.34.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", - "pallet-asset-rate 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-authority-discovery 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-authorship 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-babe 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-asset-rate 7.0.0", + "pallet-authority-discovery 28.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", "pallet-bags-list", - "pallet-balances 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-balances 28.0.0", "pallet-beefy", "pallet-beefy-mmr", "pallet-collective", "pallet-conviction-voting", + "pallet-delegated-staking", "pallet-democracy", - "pallet-election-provider-multi-phase 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-election-provider-support-benchmarking 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-election-provider-multi-phase 27.0.0", + "pallet-election-provider-support-benchmarking 27.0.0", "pallet-elections-phragmen", - "pallet-fast-unstake 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-fast-unstake 27.0.0", "pallet-grandpa", - "pallet-identity 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-identity 29.0.0", "pallet-indices", "pallet-membership", - "pallet-message-queue 31.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-message-queue 31.0.0", "pallet-mmr", "pallet-multisig", "pallet-nomination-pools", @@ -20287,76 +17280,76 @@ dependencies = [ "pallet-referenda", "pallet-root-testing", "pallet-scheduler", - "pallet-session 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-session 28.0.0", "pallet-session-benchmarking", "pallet-society", - "pallet-staking 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-staking 28.0.0", "pallet-staking-reward-curve", "pallet-staking-runtime-api", "pallet-state-trie-migration", - "pallet-sudo 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-timestamp 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-transaction-payment 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-transaction-payment-rpc-runtime-api 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "pallet-treasury 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury 27.0.0", "pallet-utility", - "pallet-vesting 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-vesting 28.0.0", "pallet-whitelist", - "pallet-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "pallet-xcm", "pallet-xcm-benchmarks", "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", "rustc-hex", "scale-info", "serde", "serde_derive", "smallvec", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-application-crypto 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-arithmetic 23.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-authority-discovery 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-block-builder 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-consensus-babe 0.32.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-authority-discovery 26.0.0", + "sp-block-builder", + "sp-consensus-babe 0.32.0", "sp-consensus-beefy", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", "sp-mmr-primitives", - "sp-npos-elections 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-offchain 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-session 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "substrate-wasm-builder 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-npos-elections 26.0.0", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-version 29.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "substrate-wasm-builder", "westend-runtime-constants", - "xcm-fee-payment-runtime-api 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "xcm-fee-payment-runtime-api", ] [[package]] name = "westend-runtime-constants" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "polkadot-runtime-common 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "frame-support 28.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", "smallvec", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", ] [[package]] @@ -20784,48 +17777,22 @@ dependencies = [ [[package]] name = "xcm-fee-payment-runtime-api" version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "xcm-fee-payment-runtime-api" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", "parity-scale-codec", "scale-info", - "sp-api 26.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-runtime 31.0.1 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-weights 27.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", -] - -[[package]] -name = "xcm-procedural" -version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn 2.0.75", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", ] [[package]] name = "xcm-procedural" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ "Inflector", "proc-macro2", @@ -20848,19 +17815,23 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "7.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0#b31a0f1f29ac37dc686f7df143040a9ac940698c" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" dependencies = [ - "frame-support 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", "parity-scale-codec", "paste", - "polkadot-core-primitives 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-parachain-primitives 6.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "polkadot-runtime-parachains 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-io 30.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-builder 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", - "staging-xcm-executor 7.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.12.0)", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 2ca194a0a..0cdf16325 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -43,7 +43,6 @@ kvdb-rocksdb = "0.19.0" rocksdb = "0.21.0" futures = "0.3.30" lazy-static = { package = "lazy_static", version = "1.4.0" } -libp2p-identity = "0.1.3" log = { version = "0.4.21", default-features = false } num-bigint = { version = "0.4.3", default-features = false } parking_lot = "0.12.1" @@ -65,117 +64,114 @@ diesel-async = { version = "0.5.0", features = ["bb8", "postgres"] } bigdecimal = { version = "0.4.5", features = ["serde"] } # Substrate -sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -# latest version containing trie-db upgrade (double ended iterator) -sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } -sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +sp-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-io = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } +sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-network-types = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-system-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +frame-try-runtime = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-message-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-nfts = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", features = [ +polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", features = [ "rococo-native", ] } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } -xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } -xcm-fee-payment-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", branch = "release-polkadot-v1.12.0", default-features = false } -xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +polkadot-parachain-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +polkadot-runtime-parachains = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } +xcm = { package = "staging-xcm", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +xcm-simulator = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } +xcm-fee-payment-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } +xcm-builder = { package = "staging-xcm-builder", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.3", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0" } -cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-pallet-dmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false, features = [ - "parameterized-consensus-hook", -] } -cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } -parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", branch = "release-polkadot-v1.12.0", default-features = false } +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-pallet-xcmp-queue = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-primitives-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-primitives-core = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-primitives-utility = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +pallet-collator-selection = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +parachains-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +parachain-info = { package = "staging-parachain-info", git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } # Local Pallets pallet-bucket-nfts = { path = "pallets/bucket-nfts", default-features = false } diff --git a/client/file-transfer-service/Cargo.toml b/client/file-transfer-service/Cargo.toml index afb4a2859..3d36ed6a5 100644 --- a/client/file-transfer-service/Cargo.toml +++ b/client/file-transfer-service/Cargo.toml @@ -19,7 +19,6 @@ workspace = true prost = { workspace = true } async-channel = { workspace = true } tokio = { workspace = true } -libp2p-identity = { workspace = true, features = ["peerid"] } thiserror = { workspace = true } anyhow = { workspace = true } async-trait = { workspace = true } diff --git a/client/file-transfer-service/src/handler.rs b/client/file-transfer-service/src/handler.rs index abb2913ca..23b7ef3ff 100644 --- a/client/file-transfer-service/src/handler.rs +++ b/client/file-transfer-service/src/handler.rs @@ -30,13 +30,13 @@ use std::{ use codec::{Decode, Encode}; use futures::prelude::*; use futures::stream::select; -use libp2p_identity::PeerId; use prost::Message; use sc_network::{ request_responses::{IncomingRequest, OutgoingResponse}, service::traits::NetworkService, IfDisconnected, NetworkPeers, NetworkRequest, ProtocolName, ReputationChange, }; +use sc_network_types::PeerId; use sc_tracing::tracing::{debug, error, info, warn}; use shc_actors_framework::actor::{Actor, ActorEventLoop}; use shc_common::types::{DownloadRequestId, FileKey, FileKeyProof}; diff --git a/node/src/chain_spec.rs b/node/src/chain_spec.rs index 69b748a82..c2558f5d9 100644 --- a/node/src/chain_spec.rs +++ b/node/src/chain_spec.rs @@ -8,7 +8,7 @@ use sp_runtime::traits::{IdentifyAccount, Verify}; use storage_hub_runtime as runtime; /// Specialized `ChainSpec` for the normal parachain runtime. -pub type ChainSpec = sc_service::GenericChainSpec<(), Extensions>; +pub type ChainSpec = sc_service::GenericChainSpec; /// The default XCM version to set in genesis config. const SAFE_XCM_VERSION: u32 = xcm::prelude::XCM_VERSION; diff --git a/node/src/service.rs b/node/src/service.rs index 36e2769b7..044f2d403 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -642,6 +642,8 @@ where let mocked_parachain = { MockValidationDataInherentDataProvider { current_para_block, + para_id, + current_para_block_head: para_head_data, relay_offset: 1000, relay_blocks_per_para_block: 2, para_blocks_per_relay_epoch: 0, @@ -650,7 +652,6 @@ where &*client_for_xcm, block, Default::default(), - Default::default(), ), raw_downward_messages: vec![], raw_horizontal_messages: vec![], diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index b7fbe6537..e13d6fff7 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -190,14 +190,9 @@ impl_runtime_apis! { impl xcm_fee_payment_runtime_api::fees::XcmPaymentApi for Runtime { fn query_acceptable_payment_assets(xcm_version: xcm::Version) -> Result, XcmPaymentApiError> { - let acceptable = vec![ - // native token - VersionedAssetId::from(AssetId(configs::xcm_config::RelayLocation::get())) - ]; - Ok(acceptable - .into_iter() - .filter_map(|asset| asset.into_version(xcm_version).ok()) - .collect()) + + let acceptable_assets = vec![AssetId(configs::xcm_config::RelayLocation::get())]; + PolkadotXcm::query_acceptable_payment_assets(xcm_version, acceptable_assets) } fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { match asset.try_as::() { @@ -223,67 +218,12 @@ impl_runtime_apis! { } } - impl xcm_fee_payment_runtime_api::dry_run::XcmDryRunApi for Runtime { - fn dry_run_extrinsic(extrinsic: ::Extrinsic) -> Result, XcmDryRunApiError> { - use xcm_builder::InspectMessageQueues; - use xcm_executor::RecordXcm; - use xcm::prelude::*; - - pallet_xcm::Pallet::::set_record_xcm(true); - let result = Executive::apply_extrinsic(extrinsic).map_err(|error| { - log::error!( - target: "xcm::XcmDryRunApi::dry_run_extrinsic", - "Applying extrinsic failed with error {:?}", - error, - ); - XcmDryRunApiError::InvalidExtrinsic - })?; - let local_xcm = pallet_xcm::Pallet::::recorded_xcm(); - let forwarded_xcms = configs::xcm_config::XcmRouter::get_messages(); - let events: Vec = System::read_events_no_consensus().map(|record| record.event.clone()).collect(); - Ok(ExtrinsicDryRunEffects { - local_xcm: local_xcm.map(VersionedXcm::<()>::V4), - forwarded_xcms, - emitted_events: events, - execution_result: result, - }) - } - - fn dry_run_xcm(origin_location: VersionedLocation, program: VersionedXcm) -> Result, XcmDryRunApiError> { - use xcm_builder::InspectMessageQueues; - use xcm::prelude::*; - - let origin_location: Location = origin_location.try_into().map_err(|error| { - log::error!( - target: "xcm::XcmDryRunApi::dry_run_xcm", - "Location version conversion failed with error: {:?}", - error, - ); - XcmDryRunApiError::VersionedConversionFailed - })?; - let program: Xcm = program.try_into().map_err(|error| { - log::error!( - target: "xcm::XcmDryRunApi::dry_run_xcm", - "Xcm version conversion failed with error {:?}", - error, - ); - XcmDryRunApiError::VersionedConversionFailed - })?; - let mut hash = program.using_encoded(sp_core::hashing::blake2_256); - let result = xcm_executor::XcmExecutor::::prepare_and_execute( - origin_location, - program, - &mut hash, - Weight::MAX, // Max limit available for execution. - Weight::zero(), - ); - let forwarded_xcms = configs::xcm_config::XcmRouter::get_messages(); - let events: Vec = System::read_events_no_consensus().map(|record| record.event.clone()).collect(); - Ok(XcmDryRunEffects { - forwarded_xcms, - emitted_events: events, - execution_result: result, - }) + impl xcm_fee_payment_runtime_api::dry_run::DryRunApi for Runtime { + fn dry_run_call(origin: OriginCaller, call: RuntimeCall) -> Result, XcmDryRunApiError> { + PolkadotXcm::dry_run_call::(origin, call) + } + fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { + PolkadotXcm::dry_run_xcm::(origin_location, xcm) } } diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index e246260ef..0088cc8bd 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -72,8 +72,8 @@ use xcm::latest::prelude::BodyId; use crate::{ weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, AccountId, Aura, Balance, Balances, Block, BlockNumber, BucketNfts, CollatorSelection, Hash, - MessageQueue, Nfts, Nonce, PalletInfo, ParachainSystem, PaymentStreams, PolkadotXcm, - ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, + MessageQueue, Nfts, Nonce, PalletInfo, ParachainInfo, ParachainSystem, PaymentStreams, + PolkadotXcm, ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, SessionKeys, Signature, System, WeightToFee, XcmpQueue, AVERAGE_ON_INITIALIZE_RATIO, BLOCK_PROCESSING_VELOCITY, DAYS, EXISTENTIAL_DEPOSIT, HOURS, MAXIMUM_BLOCK_WEIGHT, MICROUNIT, MILLIUNIT, MINUTES, @@ -255,7 +255,7 @@ impl pallet_message_queue::Config for Runtime { // 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 HeapSize = sp_core::ConstU32<{ 103 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; type IdleMaxServiceWeight = (); // TODO: Set appropiate weight limit @@ -269,7 +269,9 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type VersionWrapper = PolkadotXcm; // Enqueue XCMP messages from siblings for later processing. type XcmpQueue = TransformOrigin; - type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type MaxInboundSuspended = ConstU32<1_000>; + type MaxActiveOutboundChannels = ConstU32<128>; + type MaxPageSize = ConstU32<{ 1 << 16 }>; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); @@ -375,20 +377,15 @@ impl pallet_nfts::Config for Runtime { } /// Only callable after `set_validation_data` is called which forms this proof the same way -/// CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 -/* fn relay_chain_state_proof() -> RelayChainStateProof { - // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 - let relay_storage_root = DefaultMerkleRoot::::get(); - /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() - .expect("set in `set_validation_data`") - .relay_parent_storage_root; */ - let root_vec: vec::Vec> = vec![relay_storage_root.as_bytes().to_vec()]; - let relay_chain_state = StorageProof::new(root_vec); - /* let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() - .expect("set in `set_validation_data`"); */ +fn relay_chain_state_proof() -> RelayChainStateProof { + let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; + let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() + .expect("set in `set_validation_data`"); RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") -} */ +} pub struct BabeDataGetter; impl pallet_randomness::GetBabeData for BabeDataGetter { @@ -396,63 +393,52 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_epoch_index() -> u64 { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 - /* let _relay_storage_root = + let _relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get(); let _relay_chain_state = - cumulus_pallet_parachain_system::RelayStateProof::::get(); */ + cumulus_pallet_parachain_system::RelayStateProof::::get(); const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove frame_system::Pallet::::block_number().into() - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::EPOCH_INDEX) - .ok() - .flatten() - .expect("expected to be able to read epoch index from relay chain state proof") */ - frame_system::Pallet::::block_number().into() + relay_chain_state_proof() + .read_optional_entry(well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") } fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 - /* let _relay_storage_root = + let _relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get(); let _relay_chain_state = - cumulus_pallet_parachain_system::RelayStateProof::::get(); */ + cumulus_pallet_parachain_system::RelayStateProof::::get(); let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read epoch randomness from relay chain state proof") */ - H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read epoch randomness from relay chain state proof") } fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 - /* let _relay_storage_root = + let _relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get(); let _relay_chain_state = - cumulus_pallet_parachain_system::RelayStateProof::::get(); */ + cumulus_pallet_parachain_system::RelayStateProof::::get(); let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } // Note: we use the `CURRENT_BLOCK_RANDOMNESS` key here as it also represents the parent randomness, the only difference // is the block since this randomness is valid, but we don't care about that because we are setting that directly in the `randomness` pallet. - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read parent randomness from relay chain state proof") */ - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().saturating_sub(1).to_le_bytes())) - H256::from_slice(&blake2_256( - &Self::get_epoch_index().saturating_sub(1).to_le_bytes(), - )) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read parent randomness from relay chain state proof") } } diff --git a/xcm-simulator/Cargo.toml b/xcm-simulator/Cargo.toml index b10cefb5d..99d4f5f2f 100644 --- a/xcm-simulator/Cargo.toml +++ b/xcm-simulator/Cargo.toml @@ -90,7 +90,6 @@ runtime-constants = { workspace = true } # Cumulus cumulus-pallet-aura-ext = { workspace = true } -cumulus-pallet-dmp-queue = { workspace = true } cumulus-pallet-parachain-system = { workspace = true } cumulus-pallet-session-benchmarking = { workspace = true } cumulus-pallet-xcm = { workspace = true } @@ -110,7 +109,6 @@ 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", @@ -177,7 +175,6 @@ 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", @@ -212,7 +209,6 @@ 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", diff --git a/xcm-simulator/src/mock_message_queue.rs b/xcm-simulator/src/mock_message_queue.rs index 830ed1d39..7ffc249f1 100644 --- a/xcm-simulator/src/mock_message_queue.rs +++ b/xcm-simulator/src/mock_message_queue.rs @@ -9,9 +9,12 @@ use polkadot_parachain_primitives::primitives::{ use sp_runtime::traits::{Get, Hash}; use sp_std::prelude::*; -use xcm::{latest::prelude::*, VersionedXcm}; +use xcm::{latest::prelude::*, VersionedLocation, VersionedXcm}; pub use pallet::*; +use xcm_builder::InspectMessageQueues; + +use crate::ParachainXcmRouter; #[frame_support::pallet] pub mod pallet { @@ -203,3 +206,9 @@ pub mod pallet { } } } + +impl InspectMessageQueues for ParachainXcmRouter> { + fn get_messages() -> Vec<(VersionedLocation, Vec>)> { + vec![] + } +} diff --git a/xcm-simulator/src/relay_chain/mod.rs b/xcm-simulator/src/relay_chain/mod.rs index 283d07e1d..0c250a0b0 100644 --- a/xcm-simulator/src/relay_chain/mod.rs +++ b/xcm-simulator/src/relay_chain/mod.rs @@ -128,7 +128,7 @@ type Block = frame_system::mocking::MockBlock; parameter_types! { /// Amount of weight that can be spent per block to service messages. pub MessageQueueServiceWeight: Weight = Weight::from_parts(1_000_000_000, 1_000_000); - pub const MessageQueueHeapSize: u32 = 65_536; + pub const MessageQueueHeapSize: u32 = 105_472; pub const MessageQueueMaxStale: u32 = 16; } diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs index 285ad8e4b..27bb1fe9f 100644 --- a/xcm-simulator/src/storagehub/apis.rs +++ b/xcm-simulator/src/storagehub/apis.rs @@ -25,6 +25,10 @@ use sp_runtime::{ }; use sp_std::prelude::Vec; use sp_version::RuntimeVersion; +use xcm_fee_payment_runtime_api::{ + dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, + fees::Error as XcmPaymentApiError, +}; // Local module imports use super::{ @@ -180,6 +184,45 @@ impl_runtime_apis! { } } + impl xcm_fee_payment_runtime_api::fees::XcmPaymentApi for Runtime { + fn query_acceptable_payment_assets(xcm_version: xcm::Version) -> Result, XcmPaymentApiError> { + + let acceptable_assets = vec![AssetId(configs::xcm_config::RelayLocation::get())]; + PolkadotXcm::query_acceptable_payment_assets(xcm_version, acceptable_assets) + } + fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { + match asset.try_as::() { + Ok(asset_id) if asset_id.0 == configs::xcm_config::RelayLocation::get() => { + // for native token + Ok(::weight_to_fee(&weight)) + }, + Ok(asset_id) => { + log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!"); + Err(XcmPaymentApiError::AssetNotFound) + }, + Err(_) => { + log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - failed to convert asset: {asset:?}!"); + Err(XcmPaymentApiError::VersionedConversionFailed) + } + } + } + fn query_xcm_weight(message: VersionedXcm<()>) -> Result { + PolkadotXcm::query_xcm_weight(message) + } + fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { + PolkadotXcm::query_delivery_fees(destination, message) + } + } + + impl xcm_fee_payment_runtime_api::dry_run::DryRunApi for Runtime { + fn dry_run_call(origin: OriginCaller, call: RuntimeCall) -> Result, XcmDryRunApiError> { + PolkadotXcm::dry_run_call::(origin, call) + } + fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { + PolkadotXcm::dry_run_xcm::(origin_location, xcm) + } + } + impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index 8fd3b33d4..66c1c437e 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -27,11 +27,11 @@ pub mod xcm_config; // Substrate and Polkadot dependencies use crate::mock_message_queue; -use crate::storagehub::configs::xcm_config::XcmConfig; -use crate::storagehub::MessageQueue; -use crate::storagehub::PolkadotXcm; +use crate::storagehub::{configs::xcm_config::XcmConfig, MessageQueue, ParachainInfo, PolkadotXcm}; use core::marker::PhantomData; +use cumulus_pallet_parachain_system::RelayChainStateProof; use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; +use cumulus_primitives_core::relay_chain::well_known_keys; use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, @@ -59,7 +59,7 @@ use polkadot_runtime_common::{ use shp_file_metadata::ChunkId; use shp_traits::{CommitmentVerifier, MaybeDebug, TrieMutation, TrieProofDeltaApplier}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{blake2_256, Get, Hasher, H256}; +use sp_core::{Get, Hasher, H256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, @@ -254,7 +254,7 @@ impl pallet_message_queue::Config for Runtime { // 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 HeapSize = sp_core::ConstU32<{ 103 * 1024 }>; type MaxStale = sp_core::ConstU32<8>; type ServiceWeight = MessageQueueServiceWeight; type IdleMaxServiceWeight = (); @@ -268,7 +268,11 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type VersionWrapper = PolkadotXcm; // Enqueue XCMP messages from siblings for later processing. type XcmpQueue = TransformOrigin; - type MaxInboundSuspended = sp_core::ConstU32<1_000>; + type MaxInboundSuspended = ConstU32<1_000>; + type MaxActiveOutboundChannels = ConstU32<128>; + // Most on-chain HRMP channels are configured to use 102400 bytes of max message size, so we + // need to set the page size larger than that until we reduce the channel size on-chain. + type MaxPageSize = ConstU32<{ 103 * 1024 }>; type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); @@ -374,20 +378,15 @@ impl pallet_nfts::Config for Runtime { } /// Only callable after `set_validation_data` is called which forms this proof the same way -/// CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 -/* fn relay_chain_state_proof() -> RelayChainStateProof { - // CRITICAL TODO: Change this to the actual relay storage root after upgrading to polkadot-sdk v1.13.0 - let relay_storage_root = DefaultMerkleRoot::::get(); - /* let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() - .expect("set in `set_validation_data`") - .relay_parent_storage_root; */ - let root_vec: vec::Vec> = vec![relay_storage_root.as_bytes().to_vec()]; - let relay_chain_state = StorageProof::new(root_vec); - /* let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() - .expect("set in `set_validation_data`"); */ +fn relay_chain_state_proof() -> RelayChainStateProof { + let relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get() + .expect("set in `set_validation_data`") + .relay_parent_storage_root; + let relay_chain_state = cumulus_pallet_parachain_system::RelayStateProof::::get() + .expect("set in `set_validation_data`"); RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") -} */ +} pub struct BabeDataGetter; impl pallet_randomness::GetBabeData for BabeDataGetter { @@ -395,63 +394,52 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { fn get_epoch_index() -> u64 { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 - /* let _relay_storage_root = + let _relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get(); let _relay_chain_state = - cumulus_pallet_parachain_system::RelayStateProof::::get(); */ + cumulus_pallet_parachain_system::RelayStateProof::::get(); const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove frame_system::Pallet::::block_number() - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::EPOCH_INDEX) - .ok() - .flatten() - .expect("expected to be able to read epoch index from relay chain state proof") */ - frame_system::Pallet::::block_number().into() + relay_chain_state_proof() + .read_optional_entry(well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") } fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 - /* let _relay_storage_root = + let _relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get(); let _relay_chain_state = - cumulus_pallet_parachain_system::RelayStateProof::::get(); */ + cumulus_pallet_parachain_system::RelayStateProof::::get(); let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read epoch randomness from relay chain state proof") */ - H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read epoch randomness from relay chain state proof") } fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { // storage reads as per actual reads - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 - /* let _relay_storage_root = + let _relay_storage_root = cumulus_pallet_parachain_system::ValidationData::::get(); let _relay_chain_state = - cumulus_pallet_parachain_system::RelayStateProof::::get(); */ + cumulus_pallet_parachain_system::RelayStateProof::::get(); let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } // Note: we use the `CURRENT_BLOCK_RANDOMNESS` key here as it also represents the parent randomness, the only difference // is the block since this randomness is valid, but we don't care about that because we are setting that directly in the `randomness` pallet. - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read parent randomness from relay chain state proof") */ - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().saturating_sub(1).to_le_bytes())) - H256::from_slice(&blake2_256( - &Self::get_epoch_index().saturating_sub(1).to_le_bytes(), - )) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read parent randomness from relay chain state proof") } } From 95877133ec1e31c25fbd2f50eb9fe7f87faf88fb Mon Sep 17 00:00:00 2001 From: TDemeco Date: Thu, 3 Oct 2024 23:27:53 -0300 Subject: [PATCH 21/24] fix: :arrow_up: finish upgrading to Polkadot SDK v1.13.0 --- Cargo.lock | 1 + Cargo.toml | 80 ++-- api-augment/dist/interfaces/lookup.js | 213 +++++---- api-augment/dist/interfaces/lookup.js.map | 2 +- .../types/interfaces/augment-api-consts.d.ts | 19 + .../types/interfaces/augment-api-errors.d.ts | 8 + .../types/interfaces/augment-api-query.d.ts | 26 + .../types/interfaces/augment-api-runtime.d.ts | 147 +++++- .../dist/types/interfaces/augment-api-tx.d.ts | 16 + .../dist/types/interfaces/augment-types.d.ts | 136 +++++- api-augment/dist/types/interfaces/lookup.d.ts | 199 ++++---- .../dist/types/interfaces/registry.d.ts | 2 + .../storagehubclient/definitions.d.ts | 2 +- .../dist/types/interfaces/types-lookup.d.ts | 226 +++++---- api-augment/package.json | 12 +- .../src/interfaces/augment-api-consts.ts | 19 + .../src/interfaces/augment-api-errors.ts | 8 + .../src/interfaces/augment-api-query.ts | 27 ++ .../src/interfaces/augment-api-runtime.ts | 93 +++- api-augment/src/interfaces/augment-api-tx.ts | 16 + api-augment/src/interfaces/augment-types.ts | 136 +++++- api-augment/src/interfaces/lookup.ts | 213 +++++---- api-augment/src/interfaces/registry.ts | 2 + api-augment/src/interfaces/types-lookup.ts | 227 +++++---- api-augment/storagehub.json | 2 +- api-augment/tsconfig.json | 26 +- client/file-transfer-service/Cargo.toml | 1 + node/src/service.rs | 19 +- pnpm-lock.yaml | 444 +++++++++++++++++- runtime/src/apis.rs | 6 +- runtime/src/configs/mod.rs | 6 +- runtime/src/lib.rs | 2 - 32 files changed, 1731 insertions(+), 605 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 758500154..a109eb3bc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13246,6 +13246,7 @@ dependencies = [ "prost-build 0.12.6", "sc-client-api", "sc-network", + "sc-network-types", "sc-service", "sc-tracing", "sc-utils", diff --git a/Cargo.toml b/Cargo.toml index 0cdf16325..2d50762b8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,48 +71,48 @@ sp-std = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkad sp-trie = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-arithmetic = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } -sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-blockchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-block-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-consensus-babe = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-genesis-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-inherents = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-keyring = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } -sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-keystore = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-state-machine = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } -sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sp-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-tracing = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } sp-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } sp-version = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } -sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-network-types = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +sc-basic-authorship = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-chain-spec = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-client-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-offchain = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-consensus = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-consensus-manual-seal = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-executor = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-network = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-network-sync = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-network-types = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-sysinfo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-telemetry = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-tracing = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-transaction-pool = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-transaction-pool-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sc-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +sp-weights = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +substrate-wasm-builder = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +substrate-build-script-utils = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } frame-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } frame-support = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } frame-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } frame-executive = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } @@ -128,7 +128,7 @@ pallet-session = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = pallet-sudo = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } pallet-timestamp = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } pallet-transaction-payment = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } pallet-uniques = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } @@ -136,7 +136,7 @@ pallet-balances = { git = "https://github.com/paritytech/polkadot-sdk.git", tag # Polkadot polkadot-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", features = [ "rococo-native", -] } +], default-features = false } polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot-sdk", tag = "polkadot-v1.13.0", default-features = false } polkadot-primitives = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } pallet-xcm = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } @@ -151,15 +151,15 @@ xcm-executor = { package = "staging-xcm-executor", git = "https://github.com/par runtime-constants = { package = "polkadot-runtime-constants", git = "https://github.com/polkadot-fellows/runtimes.git", tag = "v1.2.3", default-features = false } # Cumulus -cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } -cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0" } +cumulus-client-cli = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-client-collator = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-client-consensus-aura = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-client-consensus-common = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-client-consensus-proposer = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-client-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-client-service = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-primitives-parachain-inherent = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } +cumulus-relay-chain-interface = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } cumulus-pallet-aura-ext = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } cumulus-pallet-parachain-system = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } cumulus-pallet-session-benchmarking = { git = "https://github.com/paritytech/polkadot-sdk.git", tag = "polkadot-v1.13.0", default-features = false } diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index 432f58d8a..0e41eb461 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -733,7 +733,7 @@ export default { xcm: "StagingXcmV4Xcm" }, Transact: { - originKind: "XcmV2OriginKind", + originKind: "XcmV3OriginKind", requireWeightAtMost: "SpWeightsWeightV2Weight", call: "XcmDoubleEncoded" }, @@ -923,9 +923,9 @@ export default { } }, /** - * Lookup86: xcm::v2::OriginKind + * Lookup86: xcm::v3::OriginKind **/ - XcmV2OriginKind: { + XcmV3OriginKind: { _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] }, /** @@ -1330,7 +1330,8 @@ export default { Corrupt: "Null", Unsupported: "Null", Overweight: "SpWeightsWeightV2Weight", - Yield: "Null" + Yield: "Null", + StackLimitReached: "Null" } }, /** @@ -2411,6 +2412,10 @@ export default { force_adjust_total_issuance: { direction: "PalletBalancesAdjustmentDirection", delta: "Compact" + }, + burn: { + value: "Compact", + keepAlive: "bool" } } }, @@ -2793,7 +2798,13 @@ export default { } }, /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup269: xcm::v2::OriginKind + **/ + XcmV2OriginKind: { + _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] + }, + /** + * Lookup270: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2802,7 +2813,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup271: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2814,13 +2825,13 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup272: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup272: xcm::v2::WeightLimit + * Lookup273: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2829,11 +2840,11 @@ export default { } }, /** - * Lookup273: xcm::v3::Xcm + * Lookup274: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup275: xcm::v3::Instruction + * Lookup276: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2856,7 +2867,7 @@ export default { xcm: "XcmV3Xcm" }, Transact: { - originKind: "XcmV2OriginKind", + originKind: "XcmV3OriginKind", requireWeightAtMost: "SpWeightsWeightV2Weight", call: "XcmDoubleEncoded" }, @@ -2975,7 +2986,7 @@ export default { } }, /** - * Lookup276: xcm::v3::Response + * Lookup277: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2988,7 +2999,7 @@ export default { } }, /** - * Lookup278: xcm::v3::PalletInfo + * Lookup279: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -2999,7 +3010,7 @@ export default { patch: "Compact" }, /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup283: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -3007,7 +3018,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup284: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3016,7 +3027,7 @@ export default { } }, /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup285: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3034,13 +3045,13 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup286: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup297: staging_xcm_executor::traits::asset_transfer::TransferType + * Lookup298: staging_xcm_executor::traits::asset_transfer::TransferType **/ StagingXcmExecutorAssetTransferTransferType: { _enum: { @@ -3051,7 +3062,7 @@ export default { } }, /** - * Lookup298: xcm::VersionedAssetId + * Lookup299: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3063,11 +3074,11 @@ export default { } }, /** - * Lookup299: cumulus_pallet_xcm::pallet::Call + * Lookup300: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup300: pallet_message_queue::pallet::Call + * Lookup301: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3084,7 +3095,7 @@ export default { } }, /** - * Lookup301: pallet_storage_providers::pallet::Call + * Lookup302: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3133,7 +3144,7 @@ export default { } }, /** - * Lookup302: pallet_file_system::pallet::Call + * Lookup303: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3239,13 +3250,13 @@ export default { } }, /** - * Lookup303: pallet_file_system::types::BucketMoveRequestResponse + * Lookup304: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup308: pallet_proofs_dealer::pallet::Call + * Lookup309: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3265,13 +3276,13 @@ export default { } }, /** - * Lookup309: pallet_randomness::pallet::Call + * Lookup310: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup310: pallet_payment_streams::pallet::Call + * Lookup311: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3311,7 +3322,7 @@ export default { } }, /** - * Lookup311: pallet_bucket_nfts::pallet::Call + * Lookup312: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3329,7 +3340,7 @@ export default { } }, /** - * Lookup313: pallet_nfts::pallet::Call + * Lookup314: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3526,7 +3537,7 @@ export default { } }, /** - * Lookup314: pallet_nfts::types::CollectionConfig + * Lookup315: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3534,7 +3545,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup316: pallet_nfts::types::CollectionSetting + * Lookup317: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3558,7 +3569,7 @@ export default { ] }, /** - * Lookup317: pallet_nfts::types::MintSettings + * Lookup318: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3568,7 +3579,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup318: pallet_nfts::types::MintType + * Lookup319: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3578,13 +3589,13 @@ export default { } }, /** - * Lookup321: pallet_nfts::types::ItemSetting + * Lookup322: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup322: pallet_nfts::types::DestroyWitness + * Lookup323: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3592,26 +3603,26 @@ export default { attributes: "Compact" }, /** - * Lookup324: pallet_nfts::types::MintWitness + * Lookup325: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup325: pallet_nfts::types::ItemConfig + * Lookup326: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup327: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup328: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup329: pallet_nfts::types::ItemTip + * Lookup330: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3620,7 +3631,7 @@ export default { amount: "u128" }, /** - * Lookup331: pallet_nfts::types::PreSignedMint + * Lookup332: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3632,7 +3643,7 @@ export default { mintPrice: "Option" }, /** - * Lookup332: sp_runtime::MultiSignature + * Lookup333: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3642,7 +3653,7 @@ export default { } }, /** - * Lookup335: pallet_nfts::types::PreSignedAttributes + * Lookup336: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3652,20 +3663,20 @@ export default { deadline: "u32" }, /** - * Lookup336: pallet_sudo::pallet::Error + * Lookup337: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup339: pallet_collator_selection::pallet::CandidateInfo + * Lookup340: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup341: pallet_collator_selection::pallet::Error + * Lookup342: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3689,17 +3700,17 @@ export default { ] }, /** - * Lookup345: sp_core::crypto::KeyTypeId + * Lookup346: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup346: pallet_session::pallet::Error + * Lookup347: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup355: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3709,13 +3720,13 @@ export default { lastIndex: "u16" }, /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundState + * Lookup357: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup358: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup361: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3723,13 +3734,19 @@ export default { resumeThreshold: "u32" }, /** - * Lookup359: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { - _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] + _enum: [ + "BadQueueConfig", + "AlreadySuspended", + "AlreadyResumed", + "TooManyActiveOutboundChannels", + "TooBig" + ] }, /** - * Lookup360: pallet_xcm::pallet::QueryStatus + * Lookup363: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3750,7 +3767,7 @@ export default { } }, /** - * Lookup364: xcm::VersionedResponse + * Lookup367: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3762,7 +3779,7 @@ export default { } }, /** - * Lookup370: pallet_xcm::pallet::VersionMigrationStage + * Lookup373: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3773,7 +3790,7 @@ export default { } }, /** - * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3782,7 +3799,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup380: pallet_xcm::pallet::Error + * Lookup383: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3814,7 +3831,7 @@ export default { ] }, /** - * Lookup381: pallet_message_queue::BookState + * Lookup384: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3828,14 +3845,14 @@ export default { size_: "u64" }, /** - * Lookup383: pallet_message_queue::Neighbours + * Lookup386: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup385: pallet_message_queue::Page + * Lookup388: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3846,7 +3863,7 @@ export default { heap: "Bytes" }, /** - * Lookup387: pallet_message_queue::pallet::Error + * Lookup390: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3862,7 +3879,7 @@ export default { ] }, /** - * Lookup389: pallet_storage_providers::types::StorageProvider + * Lookup392: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3871,7 +3888,7 @@ export default { } }, /** - * Lookup390: pallet_storage_providers::types::BackupStorageProvider + * Lookup393: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3884,7 +3901,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup391: pallet_storage_providers::types::MainStorageProvider + * Lookup394: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3897,7 +3914,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup393: pallet_storage_providers::types::Bucket + * Lookup396: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3911,7 +3928,7 @@ export default { size_: "u64" }, /** - * Lookup396: pallet_storage_providers::pallet::Error + * Lookup399: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3945,7 +3962,7 @@ export default { ] }, /** - * Lookup397: pallet_file_system::types::StorageRequestMetadata + * Lookup400: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3965,19 +3982,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup402: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup405: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup411: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup414: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup412: pallet_file_system::pallet::Error + * Lookup415: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4041,7 +4058,7 @@ export default { ] }, /** - * Lookup419: pallet_proofs_dealer::pallet::Error + * Lookup422: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4070,7 +4087,7 @@ export default { ] }, /** - * Lookup422: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup425: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4079,7 +4096,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup423: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup426: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4088,14 +4105,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup424: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup427: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup425: pallet_payment_streams::pallet::Error + * Lookup428: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4118,7 +4135,7 @@ export default { ] }, /** - * Lookup426: pallet_bucket_nfts::pallet::Error + * Lookup429: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4129,7 +4146,7 @@ export default { ] }, /** - * Lookup427: pallet_nfts::types::CollectionDetails + * Lookup430: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4140,13 +4157,13 @@ export default { attributes: "u32" }, /** - * Lookup432: pallet_nfts::types::CollectionRole + * Lookup435: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup433: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup436: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4154,42 +4171,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup434: pallet_nfts::types::ItemDeposit + * Lookup437: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup439: pallet_nfts::types::CollectionMetadata + * Lookup442: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup440: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup443: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup441: pallet_nfts::types::ItemMetadataDeposit + * Lookup444: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup444: pallet_nfts::types::AttributeDeposit + * Lookup447: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup448: pallet_nfts::types::PendingSwap, Deadline> + * Lookup451: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4198,7 +4215,7 @@ export default { deadline: "u32" }, /** - * Lookup450: pallet_nfts::types::PalletFeature + * Lookup453: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4214,7 +4231,7 @@ export default { ] }, /** - * Lookup451: pallet_nfts::pallet::Error + * Lookup454: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4266,51 +4283,51 @@ export default { ] }, /** - * Lookup454: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup457: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup455: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup458: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup456: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup459: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup457: frame_system::extensions::check_genesis::CheckGenesis + * Lookup460: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup460: frame_system::extensions::check_nonce::CheckNonce + * Lookup463: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup461: frame_system::extensions::check_weight::CheckWeight + * Lookup464: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup462: pallet_transaction_payment::ChargeTransactionPayment + * Lookup465: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup463: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup466: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup464: frame_metadata_hash_extension::CheckMetadataHash + * Lookup467: frame_metadata_hash_extension::CheckMetadataHash **/ FrameMetadataHashExtensionCheckMetadataHash: { mode: "FrameMetadataHashExtensionMode" }, /** - * Lookup465: frame_metadata_hash_extension::Mode + * Lookup468: frame_metadata_hash_extension::Mode **/ FrameMetadataHashExtensionMode: { _enum: ["Disabled", "Enabled"] }, /** - * Lookup466: storage_hub_runtime::Runtime + * Lookup469: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index 2d5ad6332..acea676b5 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1 +1 @@ -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,oBAAoB;AAEpB,8BAA8B;AAE9B,eAAe;IACb;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,2BAA2B;KAClC;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;KACd;IACD;;QAEI;IACJ,0CAA0C,EAAE;QAC1C,MAAM,EAAE,yBAAyB;QACjC,WAAW,EAAE,yBAAyB;QACtC,SAAS,EAAE,yBAAyB;KACrC;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,cAAc;KAC1B;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,IAAI,EAAE,gCAAgC;KACvC;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,KAAK,EAAE;YACL,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,gBAAgB;YAC3B,IAAI,EAAE,gBAAgB;YACtB,UAAU,EAAE,gBAAgB;YAC5B,SAAS,EAAE,MAAM;YACjB,yBAAyB,EAAE,MAAM;SAClC;KACF;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,WAAW;KACpB;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,gBAAgB,EAAE;gBAChB,YAAY,EAAE,kCAAkC;aACjD;YACD,eAAe,EAAE;gBACf,aAAa,EAAE,wBAAwB;gBACvC,YAAY,EAAE,kCAAkC;aACjD;YACD,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE;gBACV,OAAO,EAAE,aAAa;aACvB;YACD,aAAa,EAAE;gBACb,OAAO,EAAE,aAAa;aACvB;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,MAAM;aACd;YACD,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,MAAM;gBAChB,YAAY,EAAE,MAAM;aACrB;SACF;KACF;IACD;;QAEI;IACJ,gCAAgC,EAAE;QAChC,MAAM,EAAE,yBAAyB;QACjC,KAAK,EAAE,mCAAmC;QAC1C,OAAO,EAAE,0BAA0B;KACpC;IACD;;QAEI;IACJ,iCAAiC,EAAE;QACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC;KAC9C;IACD;;QAEI;IACJ,wBAAwB,EAAE;QACxB,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;KACrB;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,MAAM;YACpB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,sBAAsB;YAC9B,iBAAiB,EAAE,MAAM;YACzB,WAAW,EAAE,MAAM;YACnB,gBAAgB,EAAE,MAAM;YACxB,KAAK,EAAE,qBAAqB;YAC5B,UAAU,EAAE,6BAA6B;YACzC,aAAa,EAAE,6BAA6B;YAC5C,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,MAAM;SACvB;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,QAAQ;KAChB;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE,CAAC,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,CAAC;KACrK;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC;KACnD;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC;KACnC;IACD;;QAEI;IACJ,iCAAiC,EAAE;QACjC,KAAK,EAAE;YACL,wBAAwB,EAAE,MAAM;YAChC,yBAAyB,EAAE;gBACzB,kBAAkB,EAAE,KAAK;aAC1B;YACD,2BAA2B,EAAE,MAAM;YACnC,wBAAwB,EAAE;gBACxB,KAAK,EAAE,KAAK;aACb;YACD,yBAAyB,EAAE;gBACzB,UAAU,EAAE,yBAAyB;gBACrC,OAAO,EAAE,MAAM;aAChB;YACD,iBAAiB,EAAE;gBACjB,WAAW,EAAE,iBAAiB;aAC/B;SACF;KACF;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,OAAO,EAAE,aAAa;gBACtB,WAAW,EAAE,MAAM;aACpB;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,MAAM;aACf;YACD,UAAU,EAAE;gBACV,GAAG,EAAE,aAAa;gBAClB,IAAI,EAAE,MAAM;aACb;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,UAAU,EAAE;gBACV,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,aAAa;gBACjB,MAAM,EAAE,MAAM;gBACd,iBAAiB,EAAE,qCAAqC;aACzD;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,SAAS,EAAE;gBACT,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,aAAa;aACnB;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM;aACf;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,MAAM;aACf;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,mBAAmB,EAAE;gBACnB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,GAAG,EAAE,MAAM;gBACX,IAAI,EAAE,MAAM;aACb;SACF;KACF;IACD;;QAEI;IACJ,mCAAmC,EAAE;QACnC,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;KAC5B;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,KAAK,EAAE;YACL,kBAAkB,EAAE;gBAClB,GAAG,EAAE,aAAa;gBAClB,SAAS,EAAE,MAAM;gBACjB,GAAG,EAAE,MAAM;aACZ;SACF;KACF;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE;YACL,KAAK,EAAE;gBACL,UAAU,EAAE,sCAAsC;aACnD;YACD,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,GAAG,EAAE,qBAAqB;gBAC1B,IAAI,EAAE,aAAa;aACpB;YACD,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE;gBACV,UAAU,EAAE,sCAAsC;aACnD;SACF;KACF;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE;YACL,gBAAgB,EAAE;gBAChB,aAAa,EAAE,kBAAkB;aAClC;YACD,iBAAiB,EAAE;gBACjB,SAAS,EAAE,aAAa;aACzB;YACD,mBAAmB,EAAE;gBACnB,SAAS,EAAE,aAAa;aACzB;YACD,oBAAoB,EAAE;gBACpB,iBAAiB,EAAE,KAAK;aACzB;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,MAAM;aACnB;YACD,cAAc,EAAE;gBACd,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,MAAM;aAChB;YACD,oBAAoB,EAAE;gBACpB,SAAS,EAAE,aAAa;gBACxB,OAAO,EAAE,MAAM;aAChB;YACD,gBAAgB,EAAE;gBAChB,SAAS,EAAE,aAAa;aACzB;YACD,iBAAiB,EAAE;gBACjB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,GAAG,EAAE,aAAa;gBAClB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM;aAChB;YACD,0BAA0B,EAAE;gBAC1B,SAAS,EAAE,aAAa;aACzB;SACF;KACF;IACD;;QAEI;IACJ,kBAAkB,EAAE;QAClB,KAAK,EAAE;YACL,UAAU,EAAE;gBACV,YAAY,EAAE,KAAK;aACpB;SACF;KACF;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE;YACL,eAAe,EAAE;gBACf,WAAW,EAAE,SAAS;aACvB;SACF;KACF;IACD;;QAEI;IACJ,cAAc,EAAE;QACd,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,OAAO,EAAE,2BAA2B;aACrC;YACD,IAAI,EAAE;gBACJ,MAAM,EAAE,sBAAsB;gBAC9B,WAAW,EAAE,sBAAsB;gBACnC,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,SAAS;aACrB;YACD,kBAAkB,EAAE;gBAClB,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,KAAK;aACf;YACD,aAAa,EAAE;gBACb,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,sBAAsB;aACjC;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;aAChB;YACD,gBAAgB,EAAE;gBAChB,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,yBAAyB;gBACvC,iBAAiB,EAAE,yBAAyB;aAC7C;YACD,mBAAmB,EAAE;gBACnB,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;aAChB;YACD,kBAAkB,EAAE;gBAClB,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,IAAI;aAChB;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,8BAA8B;aACjD;YACD,uBAAuB,EAAE;gBACvB,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,KAAK;aACf;YACD,aAAa,EAAE;gBACb,OAAO,EAAE,KAAK;aACf;YACD,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,oBAAoB;aAC7B;YACD,qBAAqB,EAAE;gBACrB,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,SAAS,EAAE,SAAS;aACrB;YACD,uBAAuB,EAAE;gBACvB,QAAQ,EAAE,sBAAsB;gBAChC,OAAO,EAAE,KAAK;aACf;YACD,oBAAoB,EAAE;gBACpB,QAAQ,EAAE,sBAAsB;gBAChC,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,kBAAkB;aAC1B;YACD,yBAAyB,EAAE;gBACzB,QAAQ,EAAE,sBAAsB;gBAChC,OAAO,EAAE,KAAK;aACf;YACD,qBAAqB,EAAE;gBACrB,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,KAAK;aACf;YACD,cAAc,EAAE;gBACd,MAAM,EAAE,sBAAsB;gBAC9B,OAAO,EAAE,KAAK;gBACd,eAAe,EAAE,sBAAsB;gBACvC,kBAAkB,EAAE,8BAA8B;aACnD;YACD,oBAAoB,EAAE;gBACpB,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,yBAAyB;gBAC/B,SAAS,EAAE,SAAS;aACrB;YACD,sBAAsB,EAAE;gBACtB,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,yBAAyB;gBAC/B,SAAS,EAAE,SAAS;aACrB;YACD,wBAAwB,EAAE;gBACxB,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,yBAAyB;gBAC/B,SAAS,EAAE,SAAS;aACrB;YACD,QAAQ,EAAE;gBACR,MAAM,EAAE,sBAAsB;gBAC9B,IAAI,EAAE,yBAAyB;aAChC;YACD,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,oBAAoB;aAC7B;YACD,wBAAwB,EAAE;gBACxB,OAAO,EAAE,KAAK;aACf;SACF;KACF;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,IAAI,EAAE,yBAAyB;aAChC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,yBAAyB;gBAC/B,KAAK,EAAE,kBAAkB;aAC1B;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,kBAAkB;aAC1B;SACF;KACF;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,MAAM;YACrB,wBAAwB,EAAE,MAAM;YAChC,yBAAyB,EAAE,MAAM;YACjC,YAAY,EAAE,MAAM;YACpB,qBAAqB,EAAE,MAAM;YAC7B,SAAS,EAAE,MAAM;YACjB,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,MAAM;YACrB,qBAAqB,EAAE,MAAM;YAC7B,eAAe,EAAE,MAAM;YACvB,kBAAkB,EAAE,MAAM;YAC1B,qBAAqB,EAAE,MAAM;YAC7B,sBAAsB,EAAE,MAAM;YAC9B,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,MAAM;YACtB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,KAAK;YACX,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,MAAM;YACtB,YAAY,EAAE,MAAM;YACpB,mBAAmB,EAAE,MAAM;YAC3B,oBAAoB,EAAE,MAAM;YAC5B,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,MAAM;YACtB,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,MAAM;YACjB,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,MAAM;YAClB,cAAc,EAAE,MAAM;YACtB,mBAAmB,EAAE,MAAM;YAC3B,kBAAkB,EAAE,yBAAyB;YAC7C,OAAO,EAAE,MAAM;YACf,mBAAmB,EAAE,MAAM;YAC3B,iBAAiB,EAAE,MAAM;SAC1B;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,uBAAuB;KAClC;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;YAClB,EAAE,EAAE,cAAc;SACnB;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE;gBACX,OAAO,EAAE,uCAAuC;gBAChD,EAAE,EAAE,SAAS;aACd;YACD,cAAc,EAAE;gBACd,OAAO,EAAE,uCAAuC;gBAChD,KAAK,EAAE,cAAc;aACtB;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,uCAAuC;gBAChD,GAAG,EAAE,SAAS;aACf;YACD,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,uBAAuB;aAC9B;YACD,eAAe,EAAE,+BAA+B;SACjD;KACF;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,KAAK,EAAE;YACL,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE;gBACN,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,SAAS;aACrB;YACD,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE;gBACR,OAAO,EAAE,cAAc;aACxB;YACD,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,MAAM;YACnB,gBAAgB,EAAE,MAAM;SACzB;KACF;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,QAAQ;YACjB,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,MAAM;YACtB,QAAQ,EAAE,MAAM;SACjB;KACF;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,OAAO,EAAE;gBACP,KAAK,EAAE,cAAc;aACtB;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;aACtB;YACD,iBAAiB,EAAE;gBACjB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;aACtB;YACD,kBAAkB,EAAE;gBAClB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;aACtB;SACF;KACF;IACD;;QAEI;IACJ,eAAe,EAAE,8BAA8B;IAC/C;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE;YACL,aAAa,EAAE,yBAAyB;YACxC,qBAAqB,EAAE,yBAAyB;YAChD,sBAAsB,EAAE,yBAAyB;YACjD,aAAa,EAAE;gBACb,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,sBAAsB;gBAChC,SAAS,EAAE,yBAAyB;gBACpC,OAAO,EAAE,8BAA8B;aACxC;YACD,aAAa,EAAE;gBACb,MAAM,EAAE,yBAAyB;gBACjC,WAAW,EAAE,sBAAsB;aACpC;YACD,oBAAoB,EAAE;gBACpB,MAAM,EAAE,yBAAyB;gBACjC,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE,iBAAiB;aACvB;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,iBAAiB;gBAC7B,mBAAmB,EAAE,yBAAyB;gBAC9C,IAAI,EAAE,kBAAkB;aACzB;YACD,yBAAyB,EAAE;gBACzB,MAAM,EAAE,cAAc;gBACtB,cAAc,EAAE,cAAc;gBAC9B,WAAW,EAAE,cAAc;aAC5B;YACD,mBAAmB,EAAE;gBACnB,SAAS,EAAE,cAAc;aAC1B;YACD,kBAAkB,EAAE;gBAClB,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,cAAc;aAC1B;YACD,WAAW,EAAE,MAAM;YACnB,aAAa,EAAE,uBAAuB;YACtC,WAAW,EAAE,+BAA+B;YAC5C,YAAY,EAAE;gBACZ,MAAM,EAAE,8BAA8B;gBACtC,WAAW,EAAE,sBAAsB;aACpC;YACD,mBAAmB,EAAE;gBACnB,MAAM,EAAE,8BAA8B;gBACtC,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE,iBAAiB;aACvB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,8BAA8B;gBACpC,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,MAAM;aAChB;YACD,uBAAuB,EAAE;gBACvB,MAAM,EAAE,8BAA8B;gBACtC,OAAO,EAAE,sBAAsB;gBAC/B,GAAG,EAAE,iBAAiB;aACvB;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,8BAA8B;gBACtC,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE,iBAAiB;aACvB;YACD,aAAa,EAAE;gBACb,YAAY,EAAE,+BAA+B;gBAC7C,MAAM,EAAE,8BAA8B;aACvC;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EAAE,kBAAkB;aAChC;YACD,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,iBAAiB;YAClC,WAAW,EAAE,iBAAiB;YAC9B,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE;gBACV,MAAM,EAAE,yBAAyB;gBACjC,MAAM,EAAE,sBAAsB;aAC/B;YACD,IAAI,EAAE,cAAc;YACpB,gBAAgB,EAAE;gBAChB,OAAO,EAAE,cAAc;gBACvB,iBAAiB,EAAE,yBAAyB;aAC7C;YACD,kBAAkB,EAAE,MAAM;YAC1B,SAAS,EAAE,yBAAyB;YACpC,WAAW,EAAE,yBAAyB;YACtC,YAAY,EAAE,8BAA8B;YAC5C,WAAW,EAAE,gCAAgC;YAC7C,oBAAoB,EAAE,qBAAqB;YAC3C,WAAW,EAAE;gBACX,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,+BAA+B;aAC9C;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,cAAc;aAC9B;YACD,oBAAoB,EAAE,+BAA+B;YACrD,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE,sBAAsB;YACvC,aAAa,EAAE;gBACb,OAAO,EAAE,+BAA+B;gBACxC,WAAW,EAAE,uBAAuB;gBACpC,GAAG,EAAE,iBAAiB;aACvB;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,mBAAmB;gBAC1B,QAAQ,EAAE,sBAAsB;aACjC;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,sBAAsB;aAC/B;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,mBAAmB;gBAC1B,KAAK,EAAE,sBAAsB;aAC9B;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE,sBAAsB;aAC/B;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,MAAM;aACpB;YACD,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,sBAAsB;YACnC,eAAe,EAAE;gBACf,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,8BAA8B;aAC5C;SACF;KACF;IACD;;QAEI;IACJ,uBAAuB,EAAE,wBAAwB;IACjD;;QAEI;IACJ,iBAAiB,EAAE;QACjB,EAAE,EAAE,0BAA0B;QAC9B,GAAG,EAAE,8BAA8B;KACpC;IACD;;QAEI;IACJ,wBAAwB,EAAE,sBAAsB;IAChD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE;YACL,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,gCAAgC;SAC9C;KACF;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,yBAAyB;YACjC,eAAe,EAAE,gCAAgC;YACjD,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,6BAA6B;YAC1C,cAAc,EAAE,qBAAqB;SACtC;KACF;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;QACnB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;KACtB;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE;YACL,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,OAAO;YACd,cAAc,EAAE,OAAO;SACxB;KACF;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,CAAC;KAC1D;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,OAAO,EAAE,OAAO;KACjB;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,yBAAyB;KACrC;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE;YACL,QAAQ,EAAE,yBAAyB;YACnC,IAAI,EAAE,4BAA4B;SACnC;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE;YACL,GAAG,EAAE,MAAM;YACX,KAAK,EAAE;gBACL,EAAE,EAAE,0BAA0B;gBAC9B,GAAG,EAAE,kCAAkC;aACxC;YACD,UAAU,EAAE,cAAc;YAC1B,YAAY,EAAE;gBACZ,EAAE,EAAE,0BAA0B;gBAC9B,GAAG,EAAE,kCAAkC;gBACvC,KAAK,EAAE,cAAc;aACtB;SACF;KACF;IACD;;QAEI;IACJ,gCAAgC,EAAE;QAChC,KAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,yBAAyB;SACnC;KACF;IACD;;QAEI;IACJ,kBAAkB,EAAE;QAClB,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,4BAA4B;YAChC,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,4BAA4B;YAChC,EAAE,EAAE,yBAAyB;SAC9B;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE,sBAAsB;IAClD;;QAEI;IACJ,eAAe,EAAE;QACf,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE,4BAA4B;KAClC;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,OAAO;SAClB;KACF;IACD;;QAEI;IACJ,kBAAkB,EAAE;QAClB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,6BAA6B;KACxC;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,+BAA+B;YACnC,EAAE,EAAE,6CAA6C;YACjD,EAAE,EAAE,2DAA2D;YAC/D,EAAE,EAAE,yEAAyE;YAC7E,EAAE,EAAE,uFAAuF;YAC3F,EAAE,EAAE,qGAAqG;YACzG,EAAE,EAAE,mHAAmH;SACxH;KACF;IACD;;QAEI;IACJ,aAAa,EAAE;QACb,KAAK,EAAE;YACL,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE;gBACX,OAAO,EAAE,gBAAgB;gBACzB,EAAE,EAAE,SAAS;aACd;YACD,cAAc,EAAE;gBACd,OAAO,EAAE,gBAAgB;gBACzB,KAAK,EAAE,cAAc;aACtB;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,gBAAgB;gBACzB,GAAG,EAAE,SAAS;aACf;YACD,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE,OAAO;YACnB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,eAAe;aACtB;SACF;KACF;IACD;;QAEI;IACJ,cAAc,EAAE;QACd,KAAK,EAAE;YACL,GAAG,EAAE,MAAM;YACX,KAAK,EAAE,OAAO;YACd,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,MAAM;SACf;KACF;IACD;;QAEI;IACJ,WAAW,EAAE;QACX,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,cAAc;YACrB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,MAAM;YACnB,QAAQ,EAAE,MAAM;YAChB,OAAO,EAAE,MAAM;YACf,cAAc,EAAE,MAAM;YACtB,QAAQ,EAAE,MAAM;SACjB;KACF;IACD;;QAEI;IACJ,aAAa,EAAE;QACb,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,OAAO,EAAE;gBACP,KAAK,EAAE,cAAc;aACtB;YACD,QAAQ,EAAE;gBACR,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;aACtB;YACD,iBAAiB,EAAE;gBACjB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;aACtB;YACD,kBAAkB,EAAE;gBAClB,GAAG,EAAE,cAAc;gBACnB,KAAK,EAAE,cAAc;aACtB;SACF;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE;YACL,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,8BAA8B;SAC5C;KACF;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,OAAO;SACd;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE,sBAAsB;IAClD;;QAEI;IACJ,eAAe,EAAE;QACf,EAAE,EAAE,wBAAwB;QAC5B,GAAG,EAAE,4BAA4B;KAClC;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,QAAQ,EAAE,2BAA2B;YACrC,QAAQ,EAAE,SAAS;SACpB;KACF;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,gBAAgB;KAC3B;IACD;;QAEI;IACJ,cAAc,EAAE;QACd,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,+BAA+B;YACnC,EAAE,EAAE,6CAA6C;YACjD,EAAE,EAAE,2DAA2D;YAC/D,EAAE,EAAE,yEAAyE;YAC7E,EAAE,EAAE,uFAAuF;YAC3F,EAAE,EAAE,qGAAqG;YACzG,EAAE,EAAE,mHAAmH;SACxH;KACF;IACD;;QAEI;IACJ,aAAa,EAAE;QACb,KAAK,EAAE;YACL,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE;gBACX,OAAO,EAAE,gCAAgC;gBACzC,EAAE,EAAE,SAAS;aACd;YACD,cAAc,EAAE;gBACd,OAAO,EAAE,gCAAgC;gBACzC,KAAK,EAAE,cAAc;aACtB;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,gCAAgC;gBACzC,GAAG,EAAE,SAAS;aACf;YACD,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,eAAe;YAC7B,UAAU,EAAE;gBACV,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,SAAS;aAChB;YACD,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE;gBACT,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,uBAAuB;aAC9B;YACD,eAAe,EAAE,wBAAwB;SAC1C;KACF;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE;gBACN,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,SAAS;aACrB;YACD,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE;gBACR,OAAO,EAAE,cAAc;aACxB;YACD,WAAW,EAAE,MAAM;YACnB,WAAW,EAAE,MAAM;YACnB,gBAAgB,EAAE,MAAM;SACzB;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE;YACL,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,8BAA8B;SAC5C;KACF;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,eAAe;YACtB,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,oBAAoB;YACxB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,2BAA2B;YAC/B,EAAE,EAAE,sBAAsB;SAC3B;KACF;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE;YACL,aAAa,EAAE,SAAS;YACxB,kBAAkB,EAAE,SAAS;YAC7B,gBAAgB,EAAE,qCAAqC;SACxD;KACF;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE;YACL,gBAAgB,EAAE;gBAChB,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE,6CAA6C;gBACrD,KAAK,EAAE,yCAAyC;aACjD;YACD,SAAS,EAAE;gBACT,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE,6CAA6C;gBACrD,UAAU,EAAE,yBAAyB;gBACrC,OAAO,EAAE,MAAM;aAChB;YACD,kBAAkB,EAAE;gBAClB,EAAE,EAAE,SAAS;gBACb,MAAM,EAAE,6CAA6C;gBACrD,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,KAAK;aACpB;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,6CAA6C;gBACrD,KAAK,EAAE,KAAK;aACb;SACF;KACF;IACD;;QAEI;IACJ,2CAA2C,EAAE;QAC3C,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,KAAK;SACf;KACF;IACD;;QAEI;IACJ,uCAAuC,EAAE;QACvC,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,MAAM;YACf,WAAW,EAAE,MAAM;YACnB,UAAU,EAAE,yBAAyB;YACrC,KAAK,EAAE,MAAM;YACb,iBAAiB,EAAE,MAAM;SAC1B;KACF;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE;YACL,uBAAuB,EAAE;gBACvB,GAAG,EAAE,aAAa;gBAClB,cAAc,EAAE,YAAY;gBAC5B,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,wCAAwC;aACpD;YACD,gBAAgB,EAAE;gBAChB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;gBACb,cAAc,EAAE,YAAY;gBAC5B,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,wCAAwC;aACpD;YACD,uBAAuB,EAAE;gBACvB,GAAG,EAAE,aAAa;gBAClB,cAAc,EAAE,YAAY;gBAC5B,QAAQ,EAAE,KAAK;aAChB;YACD,gBAAgB,EAAE;gBAChB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;gBACb,cAAc,EAAE,YAAY;gBAC5B,QAAQ,EAAE,KAAK;aAChB;YACD,qBAAqB,EAAE;gBACrB,GAAG,EAAE,aAAa;aACnB;YACD,iBAAiB,EAAE;gBACjB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;aACd;YACD,iBAAiB,EAAE;gBACjB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;aACd;YACD,eAAe,EAAE;gBACf,GAAG,EAAE,aAAa;gBAClB,UAAU,EAAE,yCAAyC;gBACrD,WAAW,EAAE,KAAK;gBAClB,WAAW,EAAE,KAAK;gBAClB,0BAA0B,EAAE,KAAK;aAClC;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,MAAM;gBAClB,aAAa,EAAE,MAAM;aACtB;SACF;KACF;IACD;;QAEI;IACJ,sCAAsC,EAAE;QACtC,UAAU,EAAE,MAAM;QAClB,SAAS,EAAE,KAAK;QAChB,SAAS,EAAE,YAAY;KACxB;IACD;;QAEI;IACJ,uCAAuC,EAAE;QACvC,KAAK,EAAE;YACL,qBAAqB,EAAE,MAAM;YAC7B,mBAAmB,EAAE,MAAM;SAC5B;KACF;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,OAAO;gBACb,YAAY,EAAE,aAAa;gBAC3B,OAAO,EAAE,MAAM;aAChB;YACD,mBAAmB,EAAE;gBACnB,GAAG,EAAE,aAAa;gBAClB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;aACjB;YACD,oBAAoB,EAAE;gBACpB,GAAG,EAAE,aAAa;gBAClB,QAAQ,EAAE,MAAM;gBAChB,YAAY,EAAE,aAAa;gBAC3B,OAAO,EAAE,MAAM;aAChB;YACD,2BAA2B,EAAE;gBAC3B,GAAG,EAAE,aAAa;gBAClB,QAAQ,EAAE,MAAM;gBAChB,YAAY,EAAE,KAAK;aACpB;YACD,iBAAiB,EAAE;gBACjB,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,GAAG,EAAE,aAAa;gBAClB,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,YAAY;aACtB;YACD,kBAAkB,EAAE;gBAClB,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,MAAM;aACtB;YACD,oBAAoB,EAAE;gBACpB,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,MAAM;gBACnB,cAAc,EAAE,YAAY;gBAC5B,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,KAAK;aACb;YACD,mBAAmB,EAAE;gBACnB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,WAAW;gBACrB,OAAO,EAAE,MAAM;aAChB;YACD,uBAAuB,EAAE;gBACvB,OAAO,EAAE,MAAM;aAChB;YACD,qBAAqB,EAAE;gBACrB,OAAO,EAAE,MAAM;aAChB;YACD,qBAAqB,EAAE;gBACrB,OAAO,EAAE,MAAM;aAChB;YACD,yBAAyB,EAAE;gBACzB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,OAAO;aAClB;YACD,wBAAwB,EAAE;gBACxB,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,MAAM;aAChB;YACD,sCAAsC,EAAE;gBACtC,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM;aAChB;YACD,0BAA0B,EAAE;gBAC1B,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,MAAM;aAChB;YACD,8BAA8B,EAAE;gBAC9B,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM;aAChB;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;gBACb,gBAAgB,EAAE,MAAM;aACzB;YACD,2CAA2C,EAAE;gBAC3C,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,gBAAgB,EAAE,MAAM;aACzB;YACD,4BAA4B,EAAE;gBAC5B,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;aACd;YACD,wBAAwB,EAAE;gBACxB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;aACjB;YACD,kBAAkB,EAAE;gBAClB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;aACd;YACD,kBAAkB,EAAE;gBAClB,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,MAAM;aACd;YACD,iCAAiC,EAAE;gBACjC,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,MAAM;aACjB;SACF;KACF;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ,GAAG,EAAE,aAAa;gBAClB,aAAa,EAAE,MAAM;aACtB;YACD,aAAa,EAAE;gBACb,QAAQ,EAAE,MAAM;gBAChB,KAAK,EAAE,yBAAyB;aACjC;YACD,gBAAgB,EAAE;gBAChB,gBAAgB,EAAE,KAAK;gBACvB,IAAI,EAAE,MAAM;aACb;YACD,sBAAsB,EAAE;gBACtB,gBAAgB,EAAE,KAAK;gBACvB,UAAU,EAAE,iDAAiD;aAC9D;YACD,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,MAAM;gBAChB,qBAAqB,EAAE,KAAK;aAC7B;YACD,4BAA4B,EAAE;gBAC5B,QAAQ,EAAE,MAAM;aACjB;YACD,4BAA4B,EAAE;gBAC5B,WAAW,EAAE,KAAK;gBAClB,qBAAqB,EAAE,KAAK;gBAC5B,QAAQ,EAAE,MAAM;gBAChB,oBAAoB,EAAE,qBAAqB;aAC5C;YACD,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,MAAM;gBAChB,SAAS,EAAE,yCAAyC;gBACpD,OAAO,EAAE,MAAM;aAChB;YACD,mBAAmB,EAAE;gBACnB,MAAM,EAAE,MAAM;aACf;SACF;KACF;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,WAAW,EAAE,gCAAgC;QAC7C,SAAS,EAAE,4CAA4C;KACxD;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,YAAY,EAAE,YAAY;KAC3B;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE,gCAAgC;QACvC,cAAc,EAAE,KAAK;KACtB;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,YAAY,EAAE,6BAA6B;QAC3C,KAAK,EAAE,gCAAgC;KACxC;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,OAAO;QACjB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,4BAA4B;KAC1C;IACD;;QAEI;IACJ,0BAA0B,EAAE,SAAS;IACrC;;QAEI;IACJ,2BAA2B,EAAE,MAAM;IACnC;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE;YACL,iCAAiC,EAAE;gBACjC,cAAc,EAAE,MAAM;gBACtB,SAAS,EAAE,KAAK;gBAChB,eAAe,EAAE,KAAK;aACvB;SACF;KACF;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,KAAK,EAAE;YACL,6BAA6B,EAAE;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;gBAClB,IAAI,EAAE,MAAM;aACb;YACD,6BAA6B,EAAE;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;gBAClB,OAAO,EAAE,MAAM;aAChB;YACD,6BAA6B,EAAE;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;aACnB;YACD,+BAA+B,EAAE;gBAC/B,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;gBAClB,cAAc,EAAE,KAAK;aACtB;YACD,+BAA+B,EAAE;gBAC/B,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;gBAClB,iBAAiB,EAAE,KAAK;aACzB;YACD,+BAA+B,EAAE;gBAC/B,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;aACnB;YACD,oBAAoB,EAAE;gBACpB,WAAW,EAAE,aAAa;gBAC1B,UAAU,EAAE,MAAM;gBAClB,MAAM,EAAE,MAAM;aACf;YACD,yBAAyB,EAAE;gBACzB,UAAU,EAAE,MAAM;gBAClB,kBAAkB,EAAE,KAAK;gBACzB,wBAAwB,EAAE,MAAM;aACjC;YACD,gBAAgB,EAAE;gBAChB,GAAG,EAAE,aAAa;aACnB;YACD,aAAa,EAAE;gBACb,GAAG,EAAE,aAAa;aACnB;YACD,WAAW,EAAE;gBACX,GAAG,EAAE,aAAa;aACnB;SACF;KACF;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ,MAAM,EAAE,aAAa;gBACrB,SAAS,EAAE,aAAa;aACzB;YACD,qBAAqB,EAAE;gBACrB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;aACd;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;aACd;SACF;KACF;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,aAAa;gBACtB,KAAK,EAAE,aAAa;aACrB;YACD,YAAY,EAAE;gBACZ,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,aAAa;aACrB;YACD,SAAS,EAAE;gBACT,UAAU,EAAE,KAAK;aAClB;YACD,MAAM,EAAE;gBACN,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,aAAa;aACrB;YACD,WAAW,EAAE;gBACX,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,aAAa;gBACnB,EAAE,EAAE,aAAa;aAClB;YACD,MAAM,EAAE;gBACN,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,aAAa;aACrB;YACD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,oBAAoB,EAAE;gBACpB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,oBAAoB,EAAE;gBACpB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,MAAM;gBACpB,cAAc,EAAE,MAAM;aACvB;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,KAAK;aAClB;YACD,YAAY,EAAE;gBACZ,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,aAAa;aACxB;YACD,WAAW,EAAE;gBACX,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,qBAAqB;gBAC7B,KAAK,EAAE,qBAAqB;gBAC5B,OAAO,EAAE,qBAAqB;aAC/B;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,aAAa;gBACvB,QAAQ,EAAE,aAAa;aACxB;YACD,iBAAiB,EAAE;gBACjB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,aAAa;gBACpB,QAAQ,EAAE,aAAa;aACxB;YACD,qBAAqB,EAAE;gBACrB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,aAAa;aACrB;YACD,uBAAuB,EAAE;gBACvB,UAAU,EAAE,KAAK;aAClB;YACD,qBAAqB,EAAE;gBACrB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,OAAO;aACd;YACD,yBAAyB,EAAE;gBACzB,UAAU,EAAE,KAAK;aAClB;YACD,eAAe,EAAE;gBACf,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,OAAO;aACd;YACD,mBAAmB,EAAE;gBACnB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,WAAW,EAAE;gBACX,UAAU,EAAE,KAAK;gBACjB,eAAe,EAAE,UAAU;aAC5B;YACD,YAAY,EAAE;gBACZ,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;gBACd,SAAS,EAAE,8BAA8B;aAC1C;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,aAAa;gBACxB,GAAG,EAAE,OAAO;gBACZ,SAAS,EAAE,8BAA8B;aAC1C;YACD,2BAA2B,EAAE;gBAC3B,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,aAAa;aACxB;YACD,6BAA6B,EAAE;gBAC7B,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,aAAa;aACxB;YACD,0BAA0B,EAAE;gBAC1B,GAAG,EAAE,aAAa;gBAClB,eAAe,EAAE,aAAa;aAC/B;YACD,sBAAsB,EAAE;gBACtB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,KAAK;aACjB;YACD,6BAA6B,EAAE;gBAC7B,UAAU,EAAE,KAAK;aAClB;YACD,2BAA2B,EAAE;gBAC3B,MAAM,EAAE,aAAa;aACtB;YACD,YAAY,EAAE;gBACZ,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM;gBACb,gBAAgB,EAAE,qBAAqB;aACxC;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,UAAU,EAAE;gBACV,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,aAAa;gBACrB,KAAK,EAAE,aAAa;aACrB;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,aAAa;gBACrB,QAAQ,EAAE,aAAa;gBACvB,MAAM,EAAE,MAAM;aACf;YACD,WAAW,EAAE;gBACX,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,KAAK;gBAClB,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,aAAa;gBAC1B,KAAK,EAAE,sCAAsC;gBAC7C,QAAQ,EAAE,KAAK;aAChB;YACD,aAAa,EAAE;gBACb,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,KAAK;gBAClB,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,aAAa;gBAC1B,KAAK,EAAE,sCAAsC;gBAC7C,QAAQ,EAAE,KAAK;aAChB;YACD,WAAW,EAAE;gBACX,cAAc,EAAE,KAAK;gBACrB,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,aAAa;gBAC5B,kBAAkB,EAAE,KAAK;gBACzB,YAAY,EAAE,KAAK;gBACnB,iBAAiB,EAAE,aAAa;gBAChC,KAAK,EAAE,sCAAsC;gBAC7C,QAAQ,EAAE,KAAK;aAChB;YACD,sBAAsB,EAAE;gBACtB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,SAAS,EAAE,8BAA8B;aAC1C;YACD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,4BAA4B;gBACvC,KAAK,EAAE,OAAO;aACf;SACF;KACF;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,eAAe,EAAE,MAAM;YACvB,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,aAAa;SACvB;KACF;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,0BAA0B;KACtC;IACD;;QAEI;IACJ,wBAAwB,EAAE;QACxB,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3B;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE;YACL,WAAW,EAAE,KAAK;YAClB,gBAAgB,EAAE,MAAM;SACzB;KACF;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,cAAc,EAAE,KAAK;YACrB,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,MAAM;SACvB;KACF;IACD;;QAEI;IACJ,iCAAiC,EAAE;QACjC,WAAW,EAAE,cAAc;QAC3B,QAAQ,EAAE,MAAM;KACjB;IACD;;QAEI;IACJ,mCAAmC,EAAE;QACnC,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,MAAM;KACrB;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,MAAM,EAAE,OAAO;aAChB;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,KAAK;aACb;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,OAAO;aACd;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,OAAO;aACd;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,oBAAoB;aAC5B;YACD,YAAY,EAAE;gBACZ,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,KAAK,EAAE,YAAY;aACpB;YACD,WAAW,EAAE;gBACX,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,KAAK;aACf;YACD,iBAAiB,EAAE;gBACjB,MAAM,EAAE,OAAO;aAChB;YACD,SAAS,EAAE,MAAM;YACjB,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,MAAM;aACjB;YACD,gCAAgC,EAAE;gBAChC,QAAQ,EAAE,MAAM;aACjB;YACD,wBAAwB,EAAE;gBACxB,IAAI,EAAE,OAAO;aACd;SACF;KACF;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,SAAS,EAAE,yBAAyB;QACpC,QAAQ,EAAE,yBAAyB;QACnC,QAAQ,EAAE,qDAAqD;KAChE;IACD;;QAEI;IACJ,mDAAmD,EAAE;QACnD,MAAM,EAAE,kCAAkC;QAC1C,WAAW,EAAE,kCAAkC;QAC/C,SAAS,EAAE,kCAAkC;KAC9C;IACD;;QAEI;IACJ,gCAAgC,EAAE;QAChC,aAAa,EAAE,yBAAyB;QACxC,YAAY,EAAE,iCAAiC;QAC/C,QAAQ,EAAE,iCAAiC;QAC3C,QAAQ,EAAE,iCAAiC;KAC5C;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,GAAG,EAAE,yCAAyC;KAC/C;IACD;;QAEI;IACJ,uCAAuC,EAAE;QACvC,MAAM,EAAE,KAAK;QACb,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,KAAK;KACjB;IACD;;QAEI;IACJ,wBAAwB,EAAE;QACxB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,MAAM;QAChB,gBAAgB,EAAE,KAAK;QACvB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;QAClB,IAAI,EAAE,mBAAmB;QACzB,kBAAkB,EAAE,KAAK;QACzB,YAAY,EAAE,IAAI;KACnB;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE,CAAC,iBAAiB,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,cAAc,CAAC;KACxN;IACD;;QAEI;IACJ,qDAAqD,EAAE;QACrD,aAAa,EAAE,4DAA4D;QAC3E,YAAY,EAAE,cAAc;QAC5B,qBAAqB,EAAE,4CAA4C;KACpE;IACD;;QAEI;IACJ,0DAA0D,EAAE;QAC1D,WAAW,EAAE,KAAK;QAClB,aAAa,EAAE,KAAK;QACpB,YAAY,EAAE,+EAA+E;KAC9F;IACD;;QAEI;IACJ,8DAA8D,EAAE;QAC9D,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,KAAK;KAClB;IACD;;QAEI;IACJ,kCAAkC,EAAE;QAClC,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;KAC5B;IACD;;QAEI;IACJ,2DAA2D,EAAE;QAC3D,aAAa,EAAE,4DAA4D;QAC3E,aAAa,EAAE,aAAa;QAC5B,qBAAqB,EAAE,4CAA4C;KACpE;IACD;;QAEI;IACJ,2CAA2C,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,KAAK;QACxB,sBAAsB,EAAE,MAAM;QAC9B,UAAU,EAAE,KAAK;KAClB;IACD;;QAEI;IACJ,sCAAsC,EAAE;QACtC,KAAK,EAAE,CAAC,SAAS,CAAC;KACnB;IACD;;QAEI;IACJ,kBAAkB,EAAE;QAClB,SAAS,EAAE,iBAAiB;KAC7B;IACD;;QAEI;IACJ,oEAAoE,EAAE;QACpE,UAAU,EAAE,MAAM;QAClB,mCAAmC,EAAE,mFAAmF;QACxH,eAAe,EAAE,oDAAoD;QACrE,cAAc,EAAE,oDAAoD;KACrE;IACD;;QAEI;IACJ,iFAAiF,EAAE;QACjF,cAAc,EAAE,KAAK;QACrB,aAAa,EAAE,KAAK;KACrB;IACD;;QAEI;IACJ,uCAAuC,EAAE;QACvC,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,cAAc;KACxB;IACD;;QAEI;IACJ,6CAA6C,EAAE;QAC7C,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;QAC1B,kBAAkB,EAAE,KAAK;QACzB,oBAAoB,EAAE,KAAK;QAC3B,+BAA+B,EAAE,KAAK;QACtC,6BAA6B,EAAE,KAAK;QACpC,yBAAyB,EAAE,KAAK;QAChC,sBAAsB,EAAE,KAAK;QAC7B,kBAAkB,EAAE,oDAAoD;KACzE;IACD;;QAEI;IACJ,kDAAkD,EAAE;QAClD,iBAAiB,EAAE,KAAK;QACxB,kBAAkB,EAAE,KAAK;KAC1B;IACD;;QAEI;IACJ,yCAAyC,EAAE;QACzC,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,OAAO;KACd;IACD;;QAEI;IACJ,gCAAgC,EAAE;QAChC,KAAK,EAAE;YACL,mBAAmB,EAAE;gBACnB,IAAI,EAAE,yDAAyD;aAChE;YACD,wBAAwB,EAAE;gBACxB,OAAO,EAAE,OAAO;aACjB;YACD,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,MAAM;gBAChB,YAAY,EAAE,MAAM;aACrB;YACD,wBAAwB,EAAE;gBACxB,IAAI,EAAE,OAAO;aACd;SACF;KACF;IACD;;QAEI;IACJ,uDAAuD,EAAE;QACvD,cAAc,EAAE,6CAA6C;QAC7D,eAAe,EAAE,oBAAoB;QACrC,gBAAgB,EAAE,mDAAmD;QACrE,kBAAkB,EAAE,8DAA8D;KACnF;IACD;;QAEI;IACJ,4CAA4C,EAAE;QAC5C,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,OAAO;KACb;IACD;;QAEI;IACJ,wCAAwC,EAAE;QACxC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO;KACd;IACD;;QAEI;IACJ,iCAAiC,EAAE;QACjC,KAAK,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,QAAQ,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,cAAc,EAAE,mBAAmB,EAAE,cAAc,CAAC;KACrL;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE;YACL,GAAG,EAAE;gBACH,GAAG,EAAE,cAAc;aACpB;SACF;KACF;IACD;;QAEI;IACJ,wBAAwB,EAAE,MAAM;IAChC;;QAEI;IACJ,yBAAyB,EAAE;QACzB,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,uBAAuB;KACjC;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;KAC9B;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,EAAE,EAAE,QAAQ;QACZ,MAAM,EAAE,MAAM;KACf;IACD;;QAEI;IACJ,kCAAkC,EAAE;QAClC,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,SAAS,EAAE,kCAAkC;YAC7C,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,MAAM;YAClB,cAAc,EAAE,gCAAgC;SACjD;KACF;IACD;;QAEI;IACJ,gCAAgC,EAAE;QAChC,KAAK,EAAE,CAAC,wBAAwB,EAAE,eAAe,CAAC;KACnD;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,KAAK,EAAE,CAAC,sBAAsB,CAAC;KAChC;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,EAAE,EAAE,MAAM;QACV,MAAM,EAAE,MAAM;KACf;IACD;;QAEI;IACJ,kBAAkB,EAAE;QAClB,KAAK,EAAE;YACL,oBAAoB,EAAE;gBACpB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,eAAe;aACvB;YACD,SAAS,EAAE,MAAM;YACjB,cAAc,EAAE;gBACd,MAAM,EAAE,cAAc;gBACtB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,eAAe;aACvB;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,eAAe;aACvB;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,MAAM;aAClB;YACD,eAAe,EAAE;gBACf,GAAG,EAAE,cAAc;gBACnB,MAAM,EAAE,MAAM;aACf;YACD,gBAAgB,EAAE;gBAChB,GAAG,EAAE,kBAAkB;aACxB;YACD,SAAS,EAAE,MAAM;YACjB,iBAAiB,EAAE;gBACjB,GAAG,EAAE,cAAc;gBACnB,OAAO,EAAE,eAAe;aACzB;YACD,2BAA2B,EAAE;gBAC3B,SAAS,EAAE,mCAAmC;gBAC9C,KAAK,EAAE,eAAe;aACvB;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE,eAAe;gBACtB,SAAS,EAAE,MAAM;aAClB;SACF;KACF;IACD;;QAEI;IACJ,iCAAiC,EAAE;QACjC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KAChC;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,eAAe,EAAE,yBAAyB,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,WAAW,CAAC;KACpP;IACD;;QAEI;IACJ,gCAAgC,EAAE;QAChC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC;KAC3B;IACD;;QAEI;IACJ,cAAc,EAAE;QACd,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,MAAM;aACb;YACD,qBAAqB,EAAE;gBACrB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,yBAAyB;aAClC;YACD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,IAAI,EAAE,cAAc;aACrB;YACD,OAAO,EAAE;gBACP,GAAG,EAAE,cAAc;gBACnB,IAAI,EAAE,MAAM;aACb;YACD,UAAU,EAAE,MAAM;SACnB;KACF;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE;YACL,iBAAiB,EAAE;gBACjB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,IAAI,EAAE,kBAAkB;aACzB;YACD,sBAAsB,EAAE;gBACtB,GAAG,EAAE,KAAK;aACX;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,MAAM;aACb;YACD,qBAAqB,EAAE,MAAM;YAC7B,YAAY,EAAE,MAAM;YACpB,gBAAgB,EAAE;gBAChB,GAAG,EAAE,aAAa;aACnB;YACD,mBAAmB,EAAE;gBACnB,GAAG,EAAE,aAAa;aACnB;YACD,WAAW,EAAE;gBACX,UAAU,EAAE,MAAM;aACnB;YACD,mBAAmB,EAAE;gBACnB,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,aAAa;aACtB;SACF;KACF;IACD;;QAEI;IACJ,iBAAiB,EAAE;QACjB,KAAK,EAAE;YACL,QAAQ,EAAE;gBACR,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,KAAK,EAAE,8BAA8B;gBACrC,KAAK,EAAE,OAAO;aACf;YACD,UAAU,EAAE,MAAM;SACnB;KACF;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,IAAI,EAAE,wCAAwC;KAC/C;IACD;;QAEI;IACJ,sCAAsC,EAAE,SAAS;IACjD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,qBAAqB,EAAE,MAAM;YAC7B,oBAAoB,EAAE,MAAM;YAC5B,wBAAwB,EAAE;gBACxB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,IAAI,EAAE,KAAK;aACZ;YACD,qBAAqB,EAAE;gBACrB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,IAAI,EAAE,KAAK;aACZ;YACD,uBAAuB,EAAE;gBACvB,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK;iBACZ;gBACD,IAAI,EAAE,KAAK;aACZ;SACF;KACF;IACD;;QAEI;IACJ,aAAa,EAAE;QACb,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,iBAAiB;aAC3B;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,oBAAoB;gBAC5B,YAAY,EAAE,KAAK;aACpB;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,oBAAoB;gBAC5B,YAAY,EAAE,KAAK;aACpB;YACD,OAAO,EAAE;gBACP,OAAO,EAAE,iBAAiB;gBAC1B,SAAS,EAAE,yBAAyB;aACrC;YACD,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,sBAAsB;gBAChC,OAAO,EAAE,KAAK;aACf;YACD,yBAAyB,EAAE;gBACzB,eAAe,EAAE,aAAa;aAC/B;YACD,8BAA8B,EAAE;gBAC9B,QAAQ,EAAE,sBAAsB;aACjC;YACD,gCAAgC,EAAE;gBAChC,QAAQ,EAAE,sBAAsB;aACjC;YACD,+BAA+B,EAAE;gBAC/B,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,oBAAoB;gBAC5B,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,kBAAkB;aAChC;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,oBAAoB;gBAC5B,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,kBAAkB;aAChC;YACD,gBAAgB,EAAE;gBAChB,SAAS,EAAE,MAAM;aAClB;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,sBAAsB;gBAC5B,WAAW,EAAE,sBAAsB;gBACnC,MAAM,EAAE,oBAAoB;gBAC5B,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,kBAAkB;aAChC;YACD,YAAY,EAAE;gBACZ,MAAM,EAAE,oBAAoB;gBAC5B,WAAW,EAAE,sBAAsB;aACpC;YACD,mCAAmC,EAAE;gBACnC,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,oBAAoB;gBAC5B,kBAAkB,EAAE,6CAA6C;gBACjE,YAAY,EAAE,qBAAqB;gBACnC,gBAAgB,EAAE,6CAA6C;gBAC/D,eAAe,EAAE,iBAAiB;gBAClC,WAAW,EAAE,kBAAkB;aAChC;SACF;KACF;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,UAAU;YACd,EAAE,EAAE,iBAAiB;SACtB;KACF;IACD;;QAEI;IACJ,QAAQ,EAAE,uBAAuB;IACjC;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,aAAa,EAAE,4BAA4B;YAC3C,qBAAqB,EAAE,4BAA4B;YACnD,sBAAsB,EAAE,4BAA4B;YACpD,aAAa,EAAE;gBACb,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,cAAc;aAC1B;YACD,aAAa,EAAE;gBACb,MAAM,EAAE,4BAA4B;gBACpC,WAAW,EAAE,oBAAoB;aAClC;YACD,oBAAoB,EAAE;gBACpB,MAAM,EAAE,4BAA4B;gBACpC,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,UAAU;aAChB;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,iBAAiB;gBAC7B,mBAAmB,EAAE,cAAc;gBACnC,IAAI,EAAE,kBAAkB;aACzB;YACD,yBAAyB,EAAE;gBACzB,MAAM,EAAE,cAAc;gBACtB,cAAc,EAAE,cAAc;gBAC9B,WAAW,EAAE,cAAc;aAC5B;YACD,mBAAmB,EAAE;gBACnB,SAAS,EAAE,cAAc;aAC1B;YACD,kBAAkB,EAAE;gBAClB,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,cAAc;aAC1B;YACD,WAAW,EAAE,MAAM;YACnB,aAAa,EAAE,6BAA6B;YAC5C,WAAW,EAAE;gBACX,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,oBAAoB;gBAC1B,iBAAiB,EAAE,cAAc;aAClC;YACD,YAAY,EAAE;gBACZ,MAAM,EAAE,iCAAiC;gBACzC,SAAS,EAAE,cAAc;gBACzB,WAAW,EAAE,oBAAoB;aAClC;YACD,mBAAmB,EAAE;gBACnB,MAAM,EAAE,iCAAiC;gBACzC,SAAS,EAAE,cAAc;gBACzB,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,UAAU;aAChB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,iCAAiC;gBACvC,OAAO,EAAE,4BAA4B;aACtC;YACD,uBAAuB,EAAE;gBACvB,MAAM,EAAE,iCAAiC;gBACzC,OAAO,EAAE,oBAAoB;gBAC7B,GAAG,EAAE,UAAU;aAChB;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,iCAAiC;gBACzC,IAAI,EAAE,oBAAoB;gBAC1B,GAAG,EAAE,UAAU;aAChB;YACD,YAAY,EAAE;gBACZ,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,iCAAiC;gBACzC,iBAAiB,EAAE,cAAc;aAClC;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,kBAAkB;aAChC;YACD,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,UAAU;YAC3B,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE;gBACV,MAAM,EAAE,4BAA4B;gBACpC,MAAM,EAAE,oBAAoB;aAC7B;YACD,IAAI,EAAE,cAAc;YACpB,gBAAgB,EAAE;gBAChB,OAAO,EAAE,cAAc;gBACvB,iBAAiB,EAAE,cAAc;aAClC;YACD,kBAAkB,EAAE,MAAM;SAC3B;KACF;IACD;;QAEI;IACJ,aAAa,EAAE;QACb,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,4BAA4B;YACpC,eAAe,EAAE,gCAAgC;YACjD,OAAO,EAAE,KAAK;SACf;KACF;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM;YAChB,aAAa,EAAE,MAAM;YACrB,wBAAwB,EAAE,MAAM;YAChC,yBAAyB,EAAE,MAAM;YACjC,iBAAiB,EAAE,MAAM;YACzB,0BAA0B,EAAE,MAAM;YAClC,SAAS,EAAE,MAAM;YACjB,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,MAAM;YACrB,qBAAqB,EAAE,MAAM;YAC7B,eAAe,EAAE,MAAM;YACvB,kBAAkB,EAAE,MAAM;YAC1B,qBAAqB,EAAE,MAAM;YAC7B,sBAAsB,EAAE,MAAM;YAC9B,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,MAAM;YACpB,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,MAAM;YACxB,cAAc,EAAE,MAAM;YACtB,YAAY,EAAE,MAAM;YACpB,IAAI,EAAE,KAAK;YACX,mBAAmB,EAAE,MAAM;YAC3B,kBAAkB,EAAE,KAAK;YACzB,OAAO,EAAE,MAAM;YACf,mBAAmB,EAAE,MAAM;SAC5B;KACF;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAK,CAAC;KAC1D;IACD;;QAEI;IACJ,+BAA+B,EAAE;QAC/B,KAAK,EAAE;YACL,QAAQ,EAAE,4BAA4B;YACtC,IAAI,EAAE,+BAA+B;SACtC;KACF;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,KAAK,EAAE;YACL,GAAG,EAAE,MAAM;YACX,KAAK,EAAE;gBACL,EAAE,EAAE,wBAAwB;gBAC5B,GAAG,EAAE,gCAAgC;aACtC;SACF;KACF;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,KAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC;IACD;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,cAAc;SACxB;KACF;IACD;;QAEI;IACJ,QAAQ,EAAE,uBAAuB;IACjC;;QAEI;IACJ,gBAAgB,EAAE;QAChB,KAAK,EAAE;YACL,aAAa,EAAE,4BAA4B;YAC3C,qBAAqB,EAAE,4BAA4B;YACnD,sBAAsB,EAAE,4BAA4B;YACpD,aAAa,EAAE;gBACb,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,eAAe;gBACzB,SAAS,EAAE,yBAAyB;gBACpC,OAAO,EAAE,mCAAmC;aAC7C;YACD,aAAa,EAAE;gBACb,MAAM,EAAE,4BAA4B;gBACpC,WAAW,EAAE,2BAA2B;aACzC;YACD,oBAAoB,EAAE;gBACpB,MAAM,EAAE,4BAA4B;gBACpC,IAAI,EAAE,2BAA2B;gBACjC,GAAG,EAAE,UAAU;aAChB;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,iBAAiB;gBAC7B,mBAAmB,EAAE,yBAAyB;gBAC9C,IAAI,EAAE,kBAAkB;aACzB;YACD,yBAAyB,EAAE;gBACzB,MAAM,EAAE,cAAc;gBACtB,cAAc,EAAE,cAAc;gBAC9B,WAAW,EAAE,cAAc;aAC5B;YACD,mBAAmB,EAAE;gBACnB,SAAS,EAAE,cAAc;aAC1B;YACD,kBAAkB,EAAE;gBAClB,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,cAAc;gBACtB,SAAS,EAAE,cAAc;aAC1B;YACD,WAAW,EAAE,MAAM;YACnB,aAAa,EAAE,gBAAgB;YAC/B,WAAW,EAAE,wBAAwB;YACrC,YAAY,EAAE;gBACZ,MAAM,EAAE,iCAAiC;gBACzC,WAAW,EAAE,2BAA2B;aACzC;YACD,mBAAmB,EAAE;gBACnB,MAAM,EAAE,iCAAiC;gBACzC,IAAI,EAAE,2BAA2B;gBACjC,GAAG,EAAE,UAAU;aAChB;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,iCAAiC;gBACvC,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,MAAM;aAChB;YACD,uBAAuB,EAAE;gBACvB,MAAM,EAAE,iCAAiC;gBACzC,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,UAAU;aAChB;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,iCAAiC;gBACzC,IAAI,EAAE,2BAA2B;gBACjC,GAAG,EAAE,UAAU;aAChB;YACD,aAAa,EAAE;gBACb,YAAY,EAAE,wBAAwB;gBACtC,MAAM,EAAE,iCAAiC;aAC1C;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,kBAAkB;aAChC;YACD,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,UAAU;YAC3B,WAAW,EAAE,UAAU;YACvB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE;gBACV,MAAM,EAAE,4BAA4B;gBACpC,MAAM,EAAE,2BAA2B;aACpC;YACD,IAAI,EAAE,cAAc;YACpB,gBAAgB,EAAE;gBAChB,OAAO,EAAE,cAAc;gBACvB,iBAAiB,EAAE,yBAAyB;aAC7C;YACD,kBAAkB,EAAE,MAAM;YAC1B,SAAS,EAAE,4BAA4B;YACvC,WAAW,EAAE,4BAA4B;YACzC,YAAY,EAAE,mCAAmC;YACjD,WAAW,EAAE,gCAAgC;YAC7C,oBAAoB,EAAE,qBAAqB;YAC3C,WAAW,EAAE;gBACX,UAAU,EAAE,OAAO;gBACnB,YAAY,EAAE,wBAAwB;aACvC;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,cAAc;aAC9B;YACD,oBAAoB,EAAE,wBAAwB;YAC9C,mBAAmB,EAAE,MAAM;YAC3B,eAAe,EAAE,eAAe;YAChC,aAAa,EAAE;gBACb,OAAO,EAAE,wBAAwB;gBACjC,WAAW,EAAE,gBAAgB;gBAC7B,GAAG,EAAE,UAAU;aAChB;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,iBAAiB;gBACxB,QAAQ,EAAE,2BAA2B;aACtC;YACD,WAAW,EAAE;gBACX,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,2BAA2B;aACpC;YACD,cAAc,EAAE;gBACd,KAAK,EAAE,iBAAiB;gBACxB,KAAK,EAAE,2BAA2B;aACnC;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,iBAAiB;gBACxB,MAAM,EAAE,2BAA2B;aACpC;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,MAAM;aACpB;YACD,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,2BAA2B;YACxC,eAAe,EAAE;gBACf,WAAW,EAAE,kBAAkB;gBAC/B,WAAW,EAAE,mCAAmC;aACjD;SACF;KACF;IACD;;QAEI;IACJ,aAAa,EAAE;QACb,KAAK,EAAE;YACL,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,4BAA4B;YACpC,eAAe,EAAE,gCAAgC;YACjD,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,sBAAsB;YACnC,cAAc,EAAE,qBAAqB;SACtC;KACF;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;QACnB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;KACtB;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,WAAW,EAAE,2BAA2B;QACxC,OAAO,EAAE,cAAc;QACvB,SAAS,EAAE,yBAAyB;KACrC;IACD;;QAEI;IACJ,+BAA+B,EAAE;QAC/B,KAAK,EAAE;YACL,QAAQ,EAAE,4BAA4B;YACtC,IAAI,EAAE,+BAA+B;SACtC;KACF;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,KAAK,EAAE;YACL,GAAG,EAAE,MAAM;YACX,KAAK,EAAE;gBACL,EAAE,EAAE,wBAAwB;gBAC5B,GAAG,EAAE,gCAAgC;aACtC;YACD,UAAU,EAAE,cAAc;YAC1B,YAAY,EAAE;gBACZ,EAAE,EAAE,wBAAwB;gBAC5B,GAAG,EAAE,gCAAgC;gBACrC,KAAK,EAAE,cAAc;aACtB;SACF;KACF;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,KAAK,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;KACnC;IACD;;QAEI;IACJ,2CAA2C,EAAE;QAC3C,KAAK,EAAE;YACL,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,MAAM;YACpB,kBAAkB,EAAE,MAAM;YAC1B,aAAa,EAAE,sBAAsB;SACtC;KACF;IACD;;QAEI;IACJ,mBAAmB,EAAE;QACnB,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,wBAAwB;YAC5B,EAAE,EAAE,0BAA0B;SAC/B;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE,MAAM;IAC5B;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,aAAa,EAAE,6CAA6C;gBAC5D,SAAS,EAAE,KAAK;aACjB;YACD,kBAAkB,EAAE;gBAClB,aAAa,EAAE,6CAA6C;gBAC5D,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,yBAAyB;aACvC;SACF;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,KAAK,EAAE;YACL,mBAAmB,EAAE;gBACnB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,YAAY;gBAC5B,SAAS,EAAE,wCAAwC;gBACnD,cAAc,EAAE,aAAa;aAC9B;YACD,mBAAmB,EAAE;gBACnB,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,YAAY;gBAC5B,cAAc,EAAE,aAAa;aAC9B;YACD,eAAe,EAAE;gBACf,eAAe,EAAE,qBAAqB;aACvC;YACD,cAAc,EAAE,MAAM;YACtB,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,MAAM;YACpB,eAAe,EAAE;gBACf,WAAW,EAAE,KAAK;aACnB;YACD,cAAc,EAAE;gBACd,YAAY,EAAE,wCAAwC;aACvD;YACD,iBAAiB,EAAE;gBACjB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,YAAY;gBAC5B,SAAS,EAAE,wCAAwC;gBACnD,cAAc,EAAE,aAAa;aAC9B;YACD,iBAAiB,EAAE;gBACjB,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,KAAK;gBACf,cAAc,EAAE,YAAY;gBAC5B,cAAc,EAAE,aAAa;gBAC7B,MAAM,EAAE,aAAa;aACtB;YACD,KAAK,EAAE;gBACL,UAAU,EAAE,MAAM;aACnB;SACF;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,MAAM;aAChB;YACD,mBAAmB,EAAE;gBACnB,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,MAAM;aACjB;YACD,+BAA+B,EAAE;gBAC/B,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,2CAA2C;aACtD;YACD,qBAAqB,EAAE;gBACrB,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,MAAM;aAChB;YACD,2CAA2C,EAAE;gBAC3C,QAAQ,EAAE,MAAM;aACjB;YACD,qBAAqB,EAAE;gBACrB,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,OAAO;gBACjB,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,YAAY;aACtB;YACD,sBAAsB,EAAE;gBACtB,OAAO,EAAE,MAAM;aAChB;YACD,2CAA2C,EAAE;gBAC3C,QAAQ,EAAE,MAAM;aACjB;YACD,0BAA0B,EAAE;gBAC1B,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,gCAAgC;gBAC3C,uBAAuB,EAAE,gCAAgC;aAC1D;YACD,aAAa,EAAE;gBACb,OAAO,EAAE,MAAM;aAChB;YACD,mBAAmB,EAAE;gBACnB,uBAAuB,EAAE,gCAAgC;gBACzD,iBAAiB,EAAE,4CAA4C;aAChE;YACD,wBAAwB,EAAE;gBACxB,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,MAAM;gBAChB,oBAAoB,EAAE,gCAAgC;aACvD;YACD,wBAAwB,EAAE;gBACxB,OAAO,EAAE,MAAM;gBACf,oBAAoB,EAAE,gCAAgC;aACvD;YACD,+BAA+B,EAAE;gBAC/B,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,aAAa;gBACpB,WAAW,EAAE,MAAM;gBACnB,KAAK,EAAE,KAAK;gBACZ,oBAAoB,EAAE,gCAAgC;aACvD;YACD,WAAW,EAAE;gBACX,MAAM,EAAE;oBACN,KAAK,EAAE,MAAM;iBACd;gBACD,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,MAAM;gBACnB,yBAAyB,EAAE,wCAAwC;aACpE;YACD,0CAA0C,EAAE;gBAC1C,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,MAAM;gBAChB,WAAW,EAAE,gCAAgC;aAC9C;YACD,qBAAqB,EAAE;gBACrB,iBAAiB,EAAE,aAAa;gBAChC,2BAA2B,EAAE,aAAa;aAC3C;SACF;KACF;IACD;;QAEI;IACJ,yCAAyC,EAAE;QACzC,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;KAChC;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,KAAK,EAAE;YACL,SAAS,EAAE;gBACT,GAAG,EAAE,MAAM;aACZ;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,yBAAyB;gBAChC,QAAQ,EAAE,cAAc;aACzB;YACD,gCAAgC,EAAE;gBAChC,QAAQ,EAAE,MAAM;aACjB;YACD,UAAU,EAAE;gBACV,MAAM,EAAE,MAAM;aACf;SACF;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE,CAAC,qBAAqB,CAAC;KAC/B;IACD;;QAEI;IACJ,wBAAwB,EAAE;QACxB,KAAK,EAAE;YACL,gCAAgC,EAAE;gBAChC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,MAAM;aACb;YACD,gCAAgC,EAAE;gBAChC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,aAAa;gBAC1B,OAAO,EAAE,MAAM;aAChB;YACD,gCAAgC,EAAE;gBAChC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,aAAa;aAC3B;YACD,kCAAkC,EAAE;gBAClC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,aAAa;gBAC1B,cAAc,EAAE,KAAK;aACtB;YACD,kCAAkC,EAAE;gBAClC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,aAAa;gBAC1B,iBAAiB,EAAE,KAAK;aACzB;YACD,kCAAkC,EAAE;gBAClC,UAAU,EAAE,MAAM;gBAClB,WAAW,EAAE,aAAa;aAC3B;YACD,sBAAsB,EAAE;gBACtB,WAAW,EAAE,aAAa;aAC3B;YACD,oBAAoB,EAAE,MAAM;YAC5B,oBAAoB,EAAE,MAAM;SAC7B;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,YAAY,EAAE;gBACZ,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;gBACb,eAAe,EAAE,eAAe;aACjC;YACD,kBAAkB,EAAE;gBAClB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,KAAK;gBACb,eAAe,EAAE,eAAe;aACjC;SACF;KACF;IACD;;QAEI;IACJ,cAAc,EAAE;QACd,KAAK,EAAE;YACL,MAAM,EAAE;gBACN,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,4BAA4B;aACrC;YACD,YAAY,EAAE;gBACZ,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE,4BAA4B;aACrC;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK;gBACjB,OAAO,EAAE,0BAA0B;aACpC;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,cAAc;gBACtB,WAAW,EAAE,+BAA+B;aAC7C;YACD,UAAU,EAAE;gBACV,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,cAAc;gBACtB,UAAU,EAAE,sBAAsB;aACnC;YACD,IAAI,EAAE;gBACJ,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,cAAc;aACrB;YACD,SAAS,EAAE;gBACT,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,UAAU;aAClB;YACD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,oBAAoB,EAAE;gBACpB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,eAAe,EAAE;gBACf,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,KAAK;aACpB;YACD,kBAAkB,EAAE;gBAClB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,cAAc;aACzB;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,sBAAsB;gBAC9B,KAAK,EAAE,sBAAsB;gBAC7B,OAAO,EAAE,sBAAsB;aAChC;YACD,sBAAsB,EAAE;gBACtB,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,cAAc;aACtB;YACD,uBAAuB,EAAE;gBACvB,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,4BAA4B;aACrC;YACD,gBAAgB,EAAE;gBAChB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,cAAc;gBACxB,aAAa,EAAE,aAAa;aAC7B;YACD,eAAe,EAAE;gBACf,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,cAAc;aACzB;YACD,4BAA4B,EAAE;gBAC5B,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,oBAAoB,EAAE;gBACpB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,YAAY,EAAE,MAAM;gBACpB,cAAc,EAAE,MAAM;aACvB;YACD,aAAa,EAAE;gBACb,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,8BAA8B;gBACzC,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,mBAAmB,EAAE;gBACnB,KAAK,EAAE,qBAAqB;gBAC5B,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,8BAA8B;gBACzC,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,OAAO;aACf;YACD,eAAe,EAAE;gBACf,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,8BAA8B;gBACzC,GAAG,EAAE,OAAO;aACb;YACD,uBAAuB,EAAE;gBACvB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,cAAc;aACzB;YACD,+BAA+B,EAAE;gBAC/B,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,cAAc;gBACxB,OAAO,EAAE,2CAA2C;aACrD;YACD,YAAY,EAAE;gBACZ,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,OAAO;aACd;YACD,cAAc,EAAE;gBACd,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;aACZ;YACD,uBAAuB,EAAE;gBACvB,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,OAAO;aACd;YACD,yBAAyB,EAAE;gBACzB,UAAU,EAAE,KAAK;aAClB;YACD,oBAAoB,EAAE;gBACpB,eAAe,EAAE,aAAa;aAC/B;YACD,yBAAyB,EAAE;gBACzB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,KAAK;aACjB;YACD,oBAAoB,EAAE;gBACpB,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,wBAAwB;aACvC;YACD,SAAS,EAAE;gBACT,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,cAAc;gBACrB,gBAAgB,EAAE,sBAAsB;aACzC;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,KAAK;gBACjB,IAAI,EAAE,KAAK;gBACX,QAAQ,EAAE,MAAM;aACjB;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,wBAAwB;aAC/B;YACD,WAAW,EAAE;gBACX,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,KAAK;gBAClB,iBAAiB,EAAE,KAAK;gBACxB,gBAAgB,EAAE,aAAa;gBAC/B,UAAU,EAAE,sCAAsC;gBAClD,QAAQ,EAAE,KAAK;aAChB;YACD,WAAW,EAAE;gBACX,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,KAAK;aACnB;YACD,UAAU,EAAE;gBACV,cAAc,EAAE,KAAK;gBACrB,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,KAAK;gBACxB,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,sCAAsC;aACrD;YACD,eAAe,EAAE;gBACf,QAAQ,EAAE,yBAAyB;gBACnC,SAAS,EAAE,yBAAyB;gBACpC,MAAM,EAAE,aAAa;aACtB;YACD,yBAAyB,EAAE;gBACzB,IAAI,EAAE,+BAA+B;gBACrC,SAAS,EAAE,yBAAyB;gBACpC,MAAM,EAAE,aAAa;aACtB;SACF;KACF;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,wBAAwB;KACvC;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,CAAC;KACjR;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,aAAa;QACzB,QAAQ,EAAE,aAAa;QACvB,mBAAmB,EAAE,KAAK;KAC3B;IACD;;QAEI;IACJ,kBAAkB,EAAE;QAClB,KAAK,EAAE;YACL,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;SAChB;KACF;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,CAAC;KAC5F;IACD;;QAEI;IACJ,wBAAwB,EAAE;QACxB,aAAa,EAAE,cAAc;QAC7B,WAAW,EAAE,cAAc;QAC3B,UAAU,EAAE,cAAc;KAC3B;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,SAAS,EAAE,aAAa;QACxB,SAAS,EAAE,cAAc;KAC1B;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,QAAQ,EAAE,KAAK;KAChB;IACD;;QAEI;IACJ,yCAAyC,EAAE;QACzC,iBAAiB,EAAE,KAAK;KACzB;IACD;;QAEI;IACJ,iBAAiB,EAAE;QACjB,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,MAAM;KACf;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,oBAAoB;QAChC,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,KAAK;QACf,SAAS,EAAE,cAAc;KAC1B;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE;YACL,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,SAAS;SACjB;KACF;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,oBAAoB;QAChC,SAAS,EAAE,8BAA8B;QACzC,QAAQ,EAAE,KAAK;KAChB;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE,CAAC,aAAa,CAAC;KACvB;IACD;;QAEI;IACJ,oCAAoC,EAAE;QACpC,GAAG,EAAE,aAAa;QAClB,OAAO,EAAE,MAAM;KAChB;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,KAAK,EAAE,CAAC,mBAAmB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,cAAc,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,+BAA+B,EAAE,eAAe,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC;KACrZ;IACD;;QAEI;IACJ,qBAAqB,EAAE,QAAQ;IAC/B;;QAEI;IACJ,kBAAkB,EAAE;QAClB,KAAK,EAAE,CAAC,cAAc,EAAE,yBAAyB,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,CAAC;KAC3F;IACD;;QAEI;IACJ,4CAA4C,EAAE;QAC5C,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,qCAAqC;QAC5C,YAAY,EAAE,MAAM;QACpB,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;KACjB;IACD;;QAEI;IACJ,mCAAmC,EAAE;QACnC,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC;KAC3B;IACD;;QAEI;IACJ,qCAAqC,EAAE;QACrC,gBAAgB,EAAE,KAAK;QACvB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;KACvB;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,+BAA+B,EAAE,QAAQ,CAAC;KAC3G;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,SAAS,EAAE,sBAAsB;gBACjC,iBAAiB,EAAE,8BAA8B;gBACjD,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE,KAAK;aACf;YACD,eAAe,EAAE;gBACf,MAAM,EAAE,sBAAsB;gBAC9B,QAAQ,EAAE,MAAM;aACjB;YACD,KAAK,EAAE;gBACL,QAAQ,EAAE,sBAAsB;gBAChC,EAAE,EAAE,KAAK;aACV;SACF;KACF;IACD;;QAEI;IACJ,oBAAoB,EAAE;QACpB,KAAK,EAAE;YACL,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,MAAM;YACjB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,eAAe;YACnB,EAAE,EAAE,sBAAsB;SAC3B;KACF;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,KAAK,EAAE;YACL,uBAAuB,EAAE,MAAM;YAC/B,uBAAuB,EAAE,MAAM;YAC/B,oBAAoB,EAAE,eAAe;YACrC,0BAA0B,EAAE,MAAM;SACnC;KACF;IACD;;QAEI;IACJ,mCAAmC,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE,sBAAsB;QAC9B,SAAS,EAAE,kBAAkB;KAC9B;IACD;;QAEI;IACJ,cAAc,EAAE;QACd,KAAK,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,0BAA0B,CAAC;KACxd;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,MAAM,EAAE;YACN,KAAK,EAAE,MAAM;SACd;QACD,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,KAAK;QACV,KAAK,EAAE,KAAK;QACZ,eAAe,EAAE,sCAAsC;QACvD,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,KAAK;KACb;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,IAAI,EAAE,6CAA6C;QACnD,IAAI,EAAE,6CAA6C;KACpD;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,SAAS,EAAE,KAAK;QAChB,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,OAAO;KACd;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,aAAa,EAAE,qBAAqB,CAAC;KACpK;IACD;;QAEI;IACJ,qCAAqC,EAAE;QACrC,KAAK,EAAE;YACL,qBAAqB,EAAE,6CAA6C;YACpE,mBAAmB,EAAE,2CAA2C;SACjE;KACF;IACD;;QAEI;IACJ,2CAA2C,EAAE;QAC3C,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,YAAY;QAC5B,IAAI,EAAE,MAAM;QACZ,kBAAkB,EAAE,KAAK;QACzB,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,aAAa;QAC7B,gBAAgB,EAAE,KAAK;KACxB;IACD;;QAEI;IACJ,yCAAyC,EAAE;QACzC,OAAO,EAAE,mCAAmC;QAC5C,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;QACnB,cAAc,EAAE,YAAY;QAC5B,SAAS,EAAE,wCAAwC;QACnD,kBAAkB,EAAE,KAAK;QACzB,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,aAAa;KAC9B;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,MAAM,EAAE;YACN,KAAK,EAAE,MAAM;SACd;QACD,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,aAAa;QACrB,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM;QACf,iBAAiB,EAAE,aAAa;QAChC,KAAK,EAAE,KAAK;KACb;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,kCAAkC,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,uCAAuC,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,uBAAuB,CAAC;KAC3oB;IACD;;QAEI;IACJ,sCAAsC,EAAE;QACtC,MAAM,EAAE;YACN,KAAK,EAAE,MAAM;SACd;QACD,WAAW,EAAE,KAAK;QAClB,KAAK,EAAE,aAAa;QACpB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,MAAM;QACnB,KAAK,EAAE,KAAK;QACZ,GAAG,EAAE,qBAAqB;QAC1B,WAAW,EAAE,YAAY;QACzB,aAAa,EAAE,WAAW;QAC1B,YAAY,EAAE,KAAK;QACnB,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,KAAK;KACvB;IACD;;QAEI;IACJ,0CAA0C,EAAE;QAC1C,SAAS,EAAE,MAAM;KAClB;IACD;;QAEI;IACJ,yCAAyC,EAAE;QACzC,SAAS,EAAE,aAAa;KACzB;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE,CAAC,iCAAiC,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qCAAqC,EAAE,uBAAuB,EAAE,+BAA+B,EAAE,0CAA0C,EAAE,sCAAsC,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,eAAe,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,cAAc,EAAE,+BAA+B,EAAE,uCAAuC,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,yCAAyC,EAAE,mCAAmC,EAAE,iCAAiC,EAAE,wCAAwC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,iCAAiC,CAAC;KAC1/C;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE,CAAC,aAAa,EAAE,yBAAyB,EAAE,iCAAiC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,UAAU,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,WAAW,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,cAAc,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,uCAAuC,EAAE,6BAA6B,CAAC;KAC9iB;IACD;;QAEI;IACJ,0CAA0C,EAAE;QAC1C,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,KAAK;QACtB,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE,aAAa;KAC9B;IACD;;QAEI;IACJ,4CAA4C,EAAE;QAC5C,cAAc,EAAE,KAAK;QACrB,yBAAyB,EAAE,MAAM;QACjC,WAAW,EAAE,MAAM;QACnB,cAAc,EAAE,aAAa;KAC9B;IACD;;QAEI;IACJ,8CAA8C,EAAE;QAC9C,kBAAkB,EAAE,KAAK;QACzB,UAAU,EAAE,MAAM;KACnB;IACD;;QAEI;IACJ,yBAAyB,EAAE;QACzB,KAAK,EAAE,CAAC,4BAA4B,EAAE,uBAAuB,EAAE,cAAc,EAAE,4BAA4B,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,sCAAsC,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,yBAAyB,CAAC;KACpb;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,0BAA0B,CAAC;KACzG;IACD;;QAEI;IACJ,2BAA2B,EAAE;QAC3B,KAAK,EAAE,aAAa;QACpB,YAAY,EAAE,MAAM;QACpB,KAAK,EAAE,KAAK;QACZ,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,UAAU,EAAE,KAAK;KAClB;IACD;;QAEI;IACJ,wBAAwB,EAAE;QACxB,KAAK,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;KAChE;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,KAAK,EAAE,aAAa;QACpB,SAAS,EAAE,oCAAoC;QAC/C,OAAO,EAAE,uBAAuB;KACjC;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,OAAO,EAAE,aAAa;QACtB,MAAM,EAAE,MAAM;KACf;IACD;;QAEI;IACJ,4BAA4B,EAAE;QAC5B,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,OAAO;KACd;IACD;;QAEI;IACJ,sBAAsB,EAAE;QACtB,OAAO,EAAE,+BAA+B;QACxC,IAAI,EAAE,OAAO;KACd;IACD;;QAEI;IACJ,6BAA6B,EAAE;QAC7B,OAAO,EAAE,qBAAqB;QAC9B,MAAM,EAAE,MAAM;KACf;IACD;;QAEI;IACJ,0BAA0B,EAAE;QAC1B,OAAO,EAAE,qBAAqB;QAC9B,MAAM,EAAE,MAAM;KACf;IACD;;QAEI;IACJ,qBAAqB,EAAE;QACrB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,aAAa;QAC1B,KAAK,EAAE,sCAAsC;QAC7C,QAAQ,EAAE,KAAK;KAChB;IACD;;QAEI;IACJ,uBAAuB,EAAE;QACvB,KAAK,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC;KACxH;IACD;;QAEI;IACJ,eAAe,EAAE;QACf,KAAK,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,CAAC;KACj1B;IACD;;QAEI;IACJ,uCAAuC,EAAE,MAAM;IAC/C;;QAEI;IACJ,qCAAqC,EAAE,MAAM;IAC7C;;QAEI;IACJ,mCAAmC,EAAE,MAAM;IAC3C;;QAEI;IACJ,iCAAiC,EAAE,MAAM;IACzC;;QAEI;IACJ,+BAA+B,EAAE,cAAc;IAC/C;;QAEI;IACJ,gCAAgC,EAAE,MAAM;IACxC;;QAEI;IACJ,gDAAgD,EAAE,eAAe;IACjE;;QAEI;IACJ,yDAAyD,EAAE,MAAM;IACjE;;QAEI;IACJ,2CAA2C,EAAE;QAC3C,IAAI,EAAE,gCAAgC;KACvC;IACD;;QAEI;IACJ,8BAA8B,EAAE;QAC9B,KAAK,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;KAC/B;IACD;;QAEI;IACJ,wBAAwB,EAAE,MAAM;CACjC,CAAC"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/augment-api-consts.d.ts b/api-augment/dist/types/interfaces/augment-api-consts.d.ts index 32f635ee5..156d60fb6 100644 --- a/api-augment/dist/types/interfaces/augment-api-consts.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-consts.d.ts @@ -522,6 +522,17 @@ declare module "@polkadot/api-base/types/consts" { [key: string]: Codec; }; xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; /** * The maximum number of inbound XCMP channels that can be suspended simultaneously. * @@ -530,6 +541,14 @@ declare module "@polkadot/api-base/types/consts" { * [`InboundXcmpSuspended`] still applies at that scale. **/ maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; /** * Generic const **/ diff --git a/api-augment/dist/types/interfaces/augment-api-errors.d.ts b/api-augment/dist/types/interfaces/augment-api-errors.d.ts index 4ab8cab17..03460fe37 100644 --- a/api-augment/dist/types/interfaces/augment-api-errors.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-errors.d.ts @@ -1162,6 +1162,14 @@ declare module "@polkadot/api-base/types/errors" { * Setting the queue config failed since one of its values was invalid. **/ BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; /** * Generic error **/ diff --git a/api-augment/dist/types/interfaces/augment-api-query.d.ts b/api-augment/dist/types/interfaces/augment-api-query.d.ts index 1af853a57..d30481728 100644 --- a/api-augment/dist/types/interfaces/augment-api-query.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-query.d.ts @@ -71,6 +71,7 @@ import type { SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, + StagingXcmV4Instruction, StorageHubRuntimeRuntimeHoldReason, StorageHubRuntimeSessionKeys, XcmVersionedAssetId, @@ -1138,6 +1139,20 @@ declare module "@polkadot/api-base/types/storage" { **/ queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; /** * Fungible assets which we know are locked on a remote chain. **/ @@ -1166,6 +1181,17 @@ declare module "@polkadot/api-base/types/storage" { **/ safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & + QueryableStorageEntry; /** * The Latest versions that we know various locations support. **/ diff --git a/api-augment/dist/types/interfaces/augment-api-runtime.d.ts b/api-augment/dist/types/interfaces/augment-api-runtime.d.ts index 18947968b..ddc245468 100644 --- a/api-augment/dist/types/interfaces/augment-api-runtime.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-runtime.d.ts @@ -1,11 +1,16 @@ import "@polkadot/api-base/types/calls"; import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; -import type { Bytes, Null, Option, Result, Vec, bool, u32 } from "@polkadot/types-codec"; +import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; import type { BlockHash } from "@polkadot/types/interfaces/chain"; import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; +import type { + CallDryRunEffects, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; @@ -21,13 +26,19 @@ import type { Header, Index, KeyTypeId, + OriginCaller, + RuntimeCall, Slot, SlotDuration, - Weight + Weight, + WeightV2 } from "@polkadot/types/interfaces/runtime"; import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; +import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; +import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; +import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; import type { IExtrinsic, Observable } from "@polkadot/types/types"; import type { BackupStorageProvider, @@ -231,6 +242,75 @@ declare module "@polkadot/api-base/types/calls" { **/ [key: string]: DecoratedCallBase; }; + /** 0x91b1c8b16328eb92/1 */ + dryRunApi: { + /** + * Dry run call + **/ + dryRunCall: AugmentedCall< + ApiType, + ( + origin: + | OriginCaller + | { + System: any; + } + | string + | Uint8Array, + call: RuntimeCall | IMethod | string | Uint8Array + ) => Observable> + >; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall< + ApiType, + ( + originLocation: + | VersionedMultiLocation + | { + V0: any; + } + | { + V1: any; + } + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + xcm: + | VersionedXcm + | { + V0: any; + } + | { + V1: any; + } + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; /** 0xb9e7717ace5b45cd/1 */ fileSystemApi: { /** @@ -633,5 +713,68 @@ declare module "@polkadot/api-base/types/calls" { **/ [key: string]: DecoratedCallBase; }; + /** 0x6ff52ee858e6c5bd/1 */ + xcmPaymentApi: { + /** + * The API to query acceptable payment assets + **/ + queryAcceptablePaymentAssets: AugmentedCall< + ApiType, + ( + version: u32 | AnyNumber | Uint8Array + ) => Observable, XcmPaymentApiError>> + >; + /** + * + **/ + queryWeightToAssetFee: AugmentedCall< + ApiType, + ( + weight: + | WeightV2 + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array, + asset: + | XcmVersionedAssetId + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * + **/ + queryXcmWeight: AugmentedCall< + ApiType, + ( + message: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; } } diff --git a/api-augment/dist/types/interfaces/augment-api-tx.d.ts b/api-augment/dist/types/interfaces/augment-api-tx.d.ts index 9e4c65217..d1977cda3 100644 --- a/api-augment/dist/types/interfaces/augment-api-tx.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-tx.d.ts @@ -46,6 +46,22 @@ export type __SubmittableExtrinsicFunction = declare module "@polkadot/api-base/types/submittable" { interface AugmentedSubmittables { balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable< + ( + value: Compact | AnyNumber | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [Compact, bool] + >; /** * Adjust the total issuance in a saturating way. * diff --git a/api-augment/dist/types/interfaces/augment-types.d.ts b/api-augment/dist/types/interfaces/augment-types.d.ts index 8ab6e4c3c..6e267d2b6 100644 --- a/api-augment/dist/types/interfaces/augment-types.d.ts +++ b/api-augment/dist/types/interfaces/augment-types.d.ts @@ -318,6 +318,13 @@ import type { VotingDirectVote } from "@polkadot/types/interfaces/democracy"; import type { BlockStats } from "@polkadot/types/interfaces/dev"; +import type { + CallDryRunEffects, + DispatchResultWithPostInfo, + PostDispatchInfo, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; import type { ApprovalFlag, DefunctVoter, @@ -403,10 +410,13 @@ import type { ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, + ExtrinsicPayloadV5, ExtrinsicSignature, ExtrinsicSignatureV4, + ExtrinsicSignatureV5, ExtrinsicUnknown, ExtrinsicV4, + ExtrinsicV5, ImmortalEra, MortalEra, MultiSignature, @@ -1170,48 +1180,88 @@ import type { import type { Multisig, Timepoint } from "@polkadot/types/interfaces/utility"; import type { VestingInfo } from "@polkadot/types/interfaces/vesting"; import type { + AssetIdV2, + AssetIdV3, + AssetIdV4, AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, + AssetInstanceV3, + AssetInstanceV4, BodyId, + BodyIdV2, + BodyIdV3, BodyPart, + BodyPartV2, + BodyPartV3, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, + FungibilityV3, + FungibilityV4, InboundStatus, InstructionV2, + InstructionV3, + InstructionV4, InteriorMultiLocation, + InteriorMultiLocationV2, + InteriorMultiLocationV3, Junction, JunctionV0, JunctionV1, JunctionV2, + JunctionV3, + JunctionV4, Junctions, JunctionsV1, JunctionsV2, + JunctionsV3, + JunctionsV4, + MaxPalletNameLen, + MaxPalletsInfo, + MaybeErrorCodeV3, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, + MultiAssetFilterV3, + MultiAssetFilterV4, MultiAssetV0, MultiAssetV1, MultiAssetV2, + MultiAssetV3, + MultiAssetV4, MultiAssets, MultiAssetsV1, MultiAssetsV2, + MultiAssetsV3, + MultiAssetsV4, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, + MultiLocationV3, + MultiLocationV4, NetworkId, + NetworkIdV2, + NetworkIdV3, + NetworkIdV4, OriginKindV0, OriginKindV1, OriginKindV2, + OriginKindV3, + OriginKindV4, OutboundStatus, Outcome, + OutcomeV4, + PalletInfoV3, + PalletInfoV4, QueryId, + QueryResponseInfoV3, + QueryResponseInfoV4, QueryStatus, QueueConfigData, Response, @@ -1219,36 +1269,49 @@ import type { ResponseV1, ResponseV2, ResponseV2Error, - ResponseV2Result, + ResponseV3, + ResponseV3Error, + ResponseV3Result, + ResponseV4, + UncheckedFungibilityV4, VersionMigrationStage, + VersionV3, + VersionV4, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, + WeightLimitV3, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, + WildFungibilityV3, + WildFungibilityV4, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, + WildMultiAssetV3, + WildMultiAssetV4, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, - XcmOrder, + XcmErrorV3, + XcmErrorV4, XcmOrderV0, XcmOrderV1, - XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, + XcmV3, + XcmV4, XcmVersion, XcmpMessageFormat } from "@polkadot/types/interfaces/xcm"; @@ -1327,10 +1390,15 @@ declare module "@polkadot/types/types/registry" { AssetDestroyWitness: AssetDestroyWitness; AssetDetails: AssetDetails; AssetId: AssetId; + AssetIdV2: AssetIdV2; + AssetIdV3: AssetIdV3; + AssetIdV4: AssetIdV4; AssetInstance: AssetInstance; AssetInstanceV0: AssetInstanceV0; AssetInstanceV1: AssetInstanceV1; AssetInstanceV2: AssetInstanceV2; + AssetInstanceV3: AssetInstanceV3; + AssetInstanceV4: AssetInstanceV4; AssetMetadata: AssetMetadata; AssetOptions: AssetOptions; AssignmentId: AssignmentId; @@ -1405,7 +1473,11 @@ declare module "@polkadot/types/types/registry" { BlockV2: BlockV2; BlockWeights: BlockWeights; BodyId: BodyId; + BodyIdV2: BodyIdV2; + BodyIdV3: BodyIdV3; BodyPart: BodyPart; + BodyPartV2: BodyPartV2; + BodyPartV3: BodyPartV3; bool: bool; Bool: Bool; Bounty: Bounty; @@ -1421,6 +1493,7 @@ declare module "@polkadot/types/types/registry" { BufferedSessionChange: BufferedSessionChange; Bytes: Bytes; Call: Call; + CallDryRunEffects: CallDryRunEffects; CallHash: CallHash; CallHashOf: CallHashOf; CallIndex: CallIndex; @@ -1581,6 +1654,7 @@ declare module "@polkadot/types/types/registry" { DispatchResult: DispatchResult; DispatchResultOf: DispatchResultOf; DispatchResultTo198: DispatchResultTo198; + DispatchResultWithPostInfo: DispatchResultWithPostInfo; DisputeLocation: DisputeLocation; DisputeProof: DisputeProof; DisputeResult: DisputeResult; @@ -1700,12 +1774,15 @@ declare module "@polkadot/types/types/registry" { ExtrinsicPayload: ExtrinsicPayload; ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; ExtrinsicPayloadV4: ExtrinsicPayloadV4; + ExtrinsicPayloadV5: ExtrinsicPayloadV5; ExtrinsicSignature: ExtrinsicSignature; ExtrinsicSignatureV4: ExtrinsicSignatureV4; + ExtrinsicSignatureV5: ExtrinsicSignatureV5; ExtrinsicStatus: ExtrinsicStatus; ExtrinsicsWeight: ExtrinsicsWeight; ExtrinsicUnknown: ExtrinsicUnknown; ExtrinsicV4: ExtrinsicV4; + ExtrinsicV5: ExtrinsicV5; f32: f32; F32: F32; f64: f64; @@ -1742,6 +1819,8 @@ declare module "@polkadot/types/types/registry" { FungibilityV0: FungibilityV0; FungibilityV1: FungibilityV1; FungibilityV2: FungibilityV2; + FungibilityV3: FungibilityV3; + FungibilityV4: FungibilityV4; FungiblesAccessError: FungiblesAccessError; Gas: Gas; GenesisBuildErr: GenesisBuildErr; @@ -1837,8 +1916,12 @@ declare module "@polkadot/types/types/registry" { InstantiateReturnValueOk: InstantiateReturnValueOk; InstantiateReturnValueTo267: InstantiateReturnValueTo267; InstructionV2: InstructionV2; + InstructionV3: InstructionV3; + InstructionV4: InstructionV4; InstructionWeights: InstructionWeights; InteriorMultiLocation: InteriorMultiLocation; + InteriorMultiLocationV2: InteriorMultiLocationV2; + InteriorMultiLocationV3: InteriorMultiLocationV3; InvalidDisputeStatementKind: InvalidDisputeStatementKind; InvalidTransaction: InvalidTransaction; isize: isize; @@ -1848,9 +1931,13 @@ declare module "@polkadot/types/types/registry" { Junctions: Junctions; JunctionsV1: JunctionsV1; JunctionsV2: JunctionsV2; + JunctionsV3: JunctionsV3; + JunctionsV4: JunctionsV4; JunctionV0: JunctionV0; JunctionV1: JunctionV1; JunctionV2: JunctionV2; + JunctionV3: JunctionV3; + JunctionV4: JunctionV4; Justification: Justification; JustificationNotification: JustificationNotification; Justifications: Justifications; @@ -1876,6 +1963,9 @@ declare module "@polkadot/types/types/registry" { LookupTarget: LookupTarget; LotteryConfig: LotteryConfig; MainStorageProviderId: MainStorageProviderId; + MaxPalletNameLen: MaxPalletNameLen; + MaxPalletsInfo: MaxPalletsInfo; + MaybeErrorCodeV3: MaybeErrorCodeV3; MaybeRandomness: MaybeRandomness; MaybeVrf: MaybeVrf; MemberCount: MemberCount; @@ -1933,22 +2023,33 @@ declare module "@polkadot/types/types/registry" { MultiAssetFilter: MultiAssetFilter; MultiAssetFilterV1: MultiAssetFilterV1; MultiAssetFilterV2: MultiAssetFilterV2; + MultiAssetFilterV3: MultiAssetFilterV3; + MultiAssetFilterV4: MultiAssetFilterV4; MultiAssets: MultiAssets; MultiAssetsV1: MultiAssetsV1; MultiAssetsV2: MultiAssetsV2; + MultiAssetsV3: MultiAssetsV3; + MultiAssetsV4: MultiAssetsV4; MultiAssetV0: MultiAssetV0; MultiAssetV1: MultiAssetV1; MultiAssetV2: MultiAssetV2; + MultiAssetV3: MultiAssetV3; + MultiAssetV4: MultiAssetV4; MultiDisputeStatementSet: MultiDisputeStatementSet; MultiLocation: MultiLocation; MultiLocationV0: MultiLocationV0; MultiLocationV1: MultiLocationV1; MultiLocationV2: MultiLocationV2; + MultiLocationV3: MultiLocationV3; + MultiLocationV4: MultiLocationV4; Multiplier: Multiplier; Multisig: Multisig; MultiSignature: MultiSignature; MultiSigner: MultiSigner; NetworkId: NetworkId; + NetworkIdV2: NetworkIdV2; + NetworkIdV3: NetworkIdV3; + NetworkIdV4: NetworkIdV4; NetworkState: NetworkState; NetworkStatePeerset: NetworkStatePeerset; NetworkStatePeersetInfo: NetworkStatePeersetInfo; @@ -1992,6 +2093,8 @@ declare module "@polkadot/types/types/registry" { OriginKindV0: OriginKindV0; OriginKindV1: OriginKindV1; OriginKindV2: OriginKindV2; + OriginKindV3: OriginKindV3; + OriginKindV4: OriginKindV4; OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; OutboundHrmpMessage: OutboundHrmpMessage; OutboundLaneData: OutboundLaneData; @@ -1999,6 +2102,7 @@ declare module "@polkadot/types/types/registry" { OutboundPayload: OutboundPayload; OutboundStatus: OutboundStatus; Outcome: Outcome; + OutcomeV4: OutcomeV4; OuterEnums15: OuterEnums15; OverweightIndex: OverweightIndex; Owner: Owner; @@ -2013,6 +2117,8 @@ declare module "@polkadot/types/types/registry" { PalletEventMetadataLatest: PalletEventMetadataLatest; PalletEventMetadataV14: PalletEventMetadataV14; PalletId: PalletId; + PalletInfoV3: PalletInfoV3; + PalletInfoV4: PalletInfoV4; PalletMetadataLatest: PalletMetadataLatest; PalletMetadataV14: PalletMetadataV14; PalletMetadataV15: PalletMetadataV15; @@ -2065,6 +2171,7 @@ declare module "@polkadot/types/types/registry" { Points: Points; PortableType: PortableType; PortableTypeV14: PortableTypeV14; + PostDispatchInfo: PostDispatchInfo; Precommits: Precommits; PrefabWasmModule: PrefabWasmModule; PrefixedStorageKey: PrefixedStorageKey; @@ -2090,6 +2197,8 @@ declare module "@polkadot/types/types/registry" { QueryEarliestChangeCapacityBlockError: QueryEarliestChangeCapacityBlockError; QueryFileEarliestVolunteerBlockError: QueryFileEarliestVolunteerBlockError; QueryId: QueryId; + QueryResponseInfoV3: QueryResponseInfoV3; + QueryResponseInfoV4: QueryResponseInfoV4; QueryStatus: QueryStatus; QueryStorageProviderCapacityError: QueryStorageProviderCapacityError; QueueConfigData: QueueConfigData; @@ -2149,7 +2258,10 @@ declare module "@polkadot/types/types/registry" { ResponseV1: ResponseV1; ResponseV2: ResponseV2; ResponseV2Error: ResponseV2Error; - ResponseV2Result: ResponseV2Result; + ResponseV3: ResponseV3; + ResponseV3Error: ResponseV3Error; + ResponseV3Result: ResponseV3Result; + ResponseV4: ResponseV4; Retriable: Retriable; RewardDestination: RewardDestination; RewardPoint: RewardPoint; @@ -2390,6 +2502,7 @@ declare module "@polkadot/types/types/registry" { U8: U8; UnappliedSlash: UnappliedSlash; UnappliedSlashOther: UnappliedSlashOther; + UncheckedFungibilityV4: UncheckedFungibilityV4; UncleEntryItem: UncleEntryItem; UnknownTransaction: UnknownTransaction; UnlockChunk: UnlockChunk; @@ -2428,6 +2541,8 @@ declare module "@polkadot/types/types/registry" { VersionedResponse: VersionedResponse; VersionedXcm: VersionedXcm; VersionMigrationStage: VersionMigrationStage; + VersionV3: VersionV3; + VersionV4: VersionV4; VestingInfo: VestingInfo; VestingSchedule: VestingSchedule; Vote: Vote; @@ -2448,6 +2563,7 @@ declare module "@polkadot/types/types/registry" { VrfProof: VrfProof; Weight: Weight; WeightLimitV2: WeightLimitV2; + WeightLimitV3: WeightLimitV3; WeightMultiplier: WeightMultiplier; WeightPerClass: WeightPerClass; WeightToFeeCoefficient: WeightToFeeCoefficient; @@ -2458,9 +2574,13 @@ declare module "@polkadot/types/types/registry" { WildFungibilityV0: WildFungibilityV0; WildFungibilityV1: WildFungibilityV1; WildFungibilityV2: WildFungibilityV2; + WildFungibilityV3: WildFungibilityV3; + WildFungibilityV4: WildFungibilityV4; WildMultiAsset: WildMultiAsset; WildMultiAssetV1: WildMultiAssetV1; WildMultiAssetV2: WildMultiAssetV2; + WildMultiAssetV3: WildMultiAssetV3; + WildMultiAssetV4: WildMultiAssetV4; WinnersData: WinnersData; WinnersData10: WinnersData10; WinnersDataTuple: WinnersDataTuple; @@ -2471,14 +2591,16 @@ declare module "@polkadot/types/types/registry" { WithdrawReasons: WithdrawReasons; Xcm: Xcm; XcmAssetId: XcmAssetId; + XcmDryRunApiError: XcmDryRunApiError; + XcmDryRunEffects: XcmDryRunEffects; XcmError: XcmError; XcmErrorV0: XcmErrorV0; XcmErrorV1: XcmErrorV1; XcmErrorV2: XcmErrorV2; - XcmOrder: XcmOrder; + XcmErrorV3: XcmErrorV3; + XcmErrorV4: XcmErrorV4; XcmOrderV0: XcmOrderV0; XcmOrderV1: XcmOrderV1; - XcmOrderV2: XcmOrderV2; XcmOrigin: XcmOrigin; XcmOriginKind: XcmOriginKind; XcmPaymentApiError: XcmPaymentApiError; @@ -2486,6 +2608,8 @@ declare module "@polkadot/types/types/registry" { XcmV0: XcmV0; XcmV1: XcmV1; XcmV2: XcmV2; + XcmV3: XcmV3; + XcmV4: XcmV4; XcmVersion: XcmVersion; } } diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index 7f5662e04..72a9cada5 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -909,9 +909,9 @@ declare const _default: { }; }; /** - * Lookup86: xcm::v2::OriginKind + * Lookup86: xcm::v3::OriginKind **/ - XcmV2OriginKind: { + XcmV3OriginKind: { _enum: string[]; }; /** @@ -1317,6 +1317,7 @@ declare const _default: { Unsupported: string; Overweight: string; Yield: string; + StackLimitReached: string; }; }; /** @@ -2378,6 +2379,10 @@ declare const _default: { direction: string; delta: string; }; + burn: { + value: string; + keepAlive: string; + }; }; }; /** @@ -2746,7 +2751,13 @@ declare const _default: { }; }; /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup269: xcm::v2::OriginKind + **/ + XcmV2OriginKind: { + _enum: string[]; + }; + /** + * Lookup270: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2755,7 +2766,7 @@ declare const _default: { }; }; /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup271: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2767,13 +2778,13 @@ declare const _default: { }; }; /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup272: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup272: xcm::v2::WeightLimit + * Lookup273: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2782,11 +2793,11 @@ declare const _default: { }; }; /** - * Lookup273: xcm::v3::Xcm + * Lookup274: xcm::v3::Xcm **/ XcmV3Xcm: string; /** - * Lookup275: xcm::v3::Instruction + * Lookup276: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2928,7 +2939,7 @@ declare const _default: { }; }; /** - * Lookup276: xcm::v3::Response + * Lookup277: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2941,7 +2952,7 @@ declare const _default: { }; }; /** - * Lookup278: xcm::v3::PalletInfo + * Lookup279: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: string; @@ -2952,7 +2963,7 @@ declare const _default: { patch: string; }; /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup283: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: string; @@ -2960,7 +2971,7 @@ declare const _default: { maxWeight: string; }; /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup284: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -2969,7 +2980,7 @@ declare const _default: { }; }; /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup285: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -2987,13 +2998,13 @@ declare const _default: { }; }; /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup286: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: string[]; }; /** - * Lookup297: staging_xcm_executor::traits::asset_transfer::TransferType + * Lookup298: staging_xcm_executor::traits::asset_transfer::TransferType **/ StagingXcmExecutorAssetTransferTransferType: { _enum: { @@ -3004,7 +3015,7 @@ declare const _default: { }; }; /** - * Lookup298: xcm::VersionedAssetId + * Lookup299: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3016,11 +3027,11 @@ declare const _default: { }; }; /** - * Lookup299: cumulus_pallet_xcm::pallet::Call + * Lookup300: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: string; /** - * Lookup300: pallet_message_queue::pallet::Call + * Lookup301: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3037,7 +3048,7 @@ declare const _default: { }; }; /** - * Lookup301: pallet_storage_providers::pallet::Call + * Lookup302: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3086,7 +3097,7 @@ declare const _default: { }; }; /** - * Lookup302: pallet_file_system::pallet::Call + * Lookup303: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3192,13 +3203,13 @@ declare const _default: { }; }; /** - * Lookup303: pallet_file_system::types::BucketMoveRequestResponse + * Lookup304: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: string[]; }; /** - * Lookup308: pallet_proofs_dealer::pallet::Call + * Lookup309: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3218,13 +3229,13 @@ declare const _default: { }; }; /** - * Lookup309: pallet_randomness::pallet::Call + * Lookup310: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: string[]; }; /** - * Lookup310: pallet_payment_streams::pallet::Call + * Lookup311: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3264,7 +3275,7 @@ declare const _default: { }; }; /** - * Lookup311: pallet_bucket_nfts::pallet::Call + * Lookup312: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3282,7 +3293,7 @@ declare const _default: { }; }; /** - * Lookup313: pallet_nfts::pallet::Call + * Lookup314: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3479,7 +3490,7 @@ declare const _default: { }; }; /** - * Lookup314: pallet_nfts::types::CollectionConfig + * Lookup315: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: string; @@ -3487,13 +3498,13 @@ declare const _default: { mintSettings: string; }; /** - * Lookup316: pallet_nfts::types::CollectionSetting + * Lookup317: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: string[]; }; /** - * Lookup317: pallet_nfts::types::MintSettings + * Lookup318: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: string; @@ -3503,7 +3514,7 @@ declare const _default: { defaultItemSettings: string; }; /** - * Lookup318: pallet_nfts::types::MintType + * Lookup319: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3513,13 +3524,13 @@ declare const _default: { }; }; /** - * Lookup321: pallet_nfts::types::ItemSetting + * Lookup322: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: string[]; }; /** - * Lookup322: pallet_nfts::types::DestroyWitness + * Lookup323: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: string; @@ -3527,26 +3538,26 @@ declare const _default: { attributes: string; }; /** - * Lookup324: pallet_nfts::types::MintWitness + * Lookup325: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: string; mintPrice: string; }; /** - * Lookup325: pallet_nfts::types::ItemConfig + * Lookup326: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: string; }; /** - * Lookup327: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup328: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: string; }; /** - * Lookup329: pallet_nfts::types::ItemTip + * Lookup330: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: string; @@ -3555,7 +3566,7 @@ declare const _default: { amount: string; }; /** - * Lookup331: pallet_nfts::types::PreSignedMint + * Lookup332: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: string; @@ -3567,7 +3578,7 @@ declare const _default: { mintPrice: string; }; /** - * Lookup332: sp_runtime::MultiSignature + * Lookup333: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3577,7 +3588,7 @@ declare const _default: { }; }; /** - * Lookup335: pallet_nfts::types::PreSignedAttributes + * Lookup336: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: string; @@ -3587,36 +3598,36 @@ declare const _default: { deadline: string; }; /** - * Lookup336: pallet_sudo::pallet::Error + * Lookup337: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: string[]; }; /** - * Lookup339: pallet_collator_selection::pallet::CandidateInfo + * Lookup340: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: string; deposit: string; }; /** - * Lookup341: pallet_collator_selection::pallet::Error + * Lookup342: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: string[]; }; /** - * Lookup345: sp_core::crypto::KeyTypeId + * Lookup346: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: string; /** - * Lookup346: pallet_session::pallet::Error + * Lookup347: pallet_session::pallet::Error **/ PalletSessionError: { _enum: string[]; }; /** - * Lookup355: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: string; @@ -3626,13 +3637,13 @@ declare const _default: { lastIndex: string; }; /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundState + * Lookup357: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: string[]; }; /** - * Lookup358: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup361: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: string; @@ -3640,13 +3651,13 @@ declare const _default: { resumeThreshold: string; }; /** - * Lookup359: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { _enum: string[]; }; /** - * Lookup360: pallet_xcm::pallet::QueryStatus + * Lookup363: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3667,7 +3678,7 @@ declare const _default: { }; }; /** - * Lookup364: xcm::VersionedResponse + * Lookup367: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3679,7 +3690,7 @@ declare const _default: { }; }; /** - * Lookup370: pallet_xcm::pallet::VersionMigrationStage + * Lookup373: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3690,7 +3701,7 @@ declare const _default: { }; }; /** - * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: string; @@ -3699,13 +3710,13 @@ declare const _default: { consumers: string; }; /** - * Lookup380: pallet_xcm::pallet::Error + * Lookup383: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: string[]; }; /** - * Lookup381: pallet_message_queue::BookState + * Lookup384: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3719,14 +3730,14 @@ declare const _default: { size_: string; }; /** - * Lookup383: pallet_message_queue::Neighbours + * Lookup386: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: string; next: string; }; /** - * Lookup385: pallet_message_queue::Page + * Lookup388: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: string; @@ -3737,13 +3748,13 @@ declare const _default: { heap: string; }; /** - * Lookup387: pallet_message_queue::pallet::Error + * Lookup390: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: string[]; }; /** - * Lookup389: pallet_storage_providers::types::StorageProvider + * Lookup392: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3752,7 +3763,7 @@ declare const _default: { }; }; /** - * Lookup390: pallet_storage_providers::types::BackupStorageProvider + * Lookup393: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: string; @@ -3765,7 +3776,7 @@ declare const _default: { reputationWeight: string; }; /** - * Lookup391: pallet_storage_providers::types::MainStorageProvider + * Lookup394: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: string; @@ -3778,7 +3789,7 @@ declare const _default: { paymentAccount: string; }; /** - * Lookup393: pallet_storage_providers::types::Bucket + * Lookup396: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3792,13 +3803,13 @@ declare const _default: { size_: string; }; /** - * Lookup396: pallet_storage_providers::pallet::Error + * Lookup399: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: string[]; }; /** - * Lookup397: pallet_file_system::types::StorageRequestMetadata + * Lookup400: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3818,31 +3829,31 @@ declare const _default: { bspsVolunteered: string; }; /** - * Lookup402: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup405: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: string; }; /** - * Lookup411: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup414: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: string; }; /** - * Lookup412: pallet_file_system::pallet::Error + * Lookup415: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: string[]; }; /** - * Lookup419: pallet_proofs_dealer::pallet::Error + * Lookup422: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: string[]; }; /** - * Lookup422: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup425: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: string; @@ -3851,7 +3862,7 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup423: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup426: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: string; @@ -3860,26 +3871,26 @@ declare const _default: { outOfFundsTick: string; }; /** - * Lookup424: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup427: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: string; priceIndex: string; }; /** - * Lookup425: pallet_payment_streams::pallet::Error + * Lookup428: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: string[]; }; /** - * Lookup426: pallet_bucket_nfts::pallet::Error + * Lookup429: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: string[]; }; /** - * Lookup427: pallet_nfts::types::CollectionDetails + * Lookup430: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: string; @@ -3890,13 +3901,13 @@ declare const _default: { attributes: string; }; /** - * Lookup432: pallet_nfts::types::CollectionRole + * Lookup435: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: string[]; }; /** - * Lookup433: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup436: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: string; @@ -3904,42 +3915,42 @@ declare const _default: { deposit: string; }; /** - * Lookup434: pallet_nfts::types::ItemDeposit + * Lookup437: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: string; amount: string; }; /** - * Lookup439: pallet_nfts::types::CollectionMetadata + * Lookup442: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: string; data: string; }; /** - * Lookup440: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup443: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: string; data: string; }; /** - * Lookup441: pallet_nfts::types::ItemMetadataDeposit + * Lookup444: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: string; amount: string; }; /** - * Lookup444: pallet_nfts::types::AttributeDeposit + * Lookup447: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: string; amount: string; }; /** - * Lookup448: pallet_nfts::types::PendingSwap, Deadline> + * Lookup451: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: string; @@ -3948,63 +3959,63 @@ declare const _default: { deadline: string; }; /** - * Lookup450: pallet_nfts::types::PalletFeature + * Lookup453: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: string[]; }; /** - * Lookup451: pallet_nfts::pallet::Error + * Lookup454: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: string[]; }; /** - * Lookup454: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup457: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: string; /** - * Lookup455: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup458: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: string; /** - * Lookup456: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup459: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: string; /** - * Lookup457: frame_system::extensions::check_genesis::CheckGenesis + * Lookup460: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: string; /** - * Lookup460: frame_system::extensions::check_nonce::CheckNonce + * Lookup463: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: string; /** - * Lookup461: frame_system::extensions::check_weight::CheckWeight + * Lookup464: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: string; /** - * Lookup462: pallet_transaction_payment::ChargeTransactionPayment + * Lookup465: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: string; /** - * Lookup463: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup466: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; /** - * Lookup464: frame_metadata_hash_extension::CheckMetadataHash + * Lookup467: frame_metadata_hash_extension::CheckMetadataHash **/ FrameMetadataHashExtensionCheckMetadataHash: { mode: string; }; /** - * Lookup465: frame_metadata_hash_extension::Mode + * Lookup468: frame_metadata_hash_extension::Mode **/ FrameMetadataHashExtensionMode: { _enum: string[]; }; /** - * Lookup466: storage_hub_runtime::Runtime + * Lookup469: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: string; }; diff --git a/api-augment/dist/types/interfaces/registry.d.ts b/api-augment/dist/types/interfaces/registry.d.ts index 6db9d1b46..eefe2c1ba 100644 --- a/api-augment/dist/types/interfaces/registry.d.ts +++ b/api-augment/dist/types/interfaces/registry.d.ts @@ -233,6 +233,7 @@ import type { XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, + XcmV3OriginKind, XcmV3PalletInfo, XcmV3QueryResponseInfo, XcmV3Response, @@ -480,6 +481,7 @@ declare module "@polkadot/types/types/registry" { XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; XcmV3PalletInfo: XcmV3PalletInfo; XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; XcmV3Response: XcmV3Response; diff --git a/api-augment/dist/types/interfaces/storagehubclient/definitions.d.ts b/api-augment/dist/types/interfaces/storagehubclient/definitions.d.ts index e5c40a286..aa8afbe77 100644 --- a/api-augment/dist/types/interfaces/storagehubclient/definitions.d.ts +++ b/api-augment/dist/types/interfaces/storagehubclient/definitions.d.ts @@ -1,5 +1,5 @@ declare const _default: { - types: import("@polkadot/types-codec/types").RegistryTypes | undefined; + types: import("@polkadot/types/types").RegistryTypes | undefined; runtime: import("@polkadot/types/types").DefinitionsCall | undefined; rpc: | Record< diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index 7b2f6648c..540e67650 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -936,7 +936,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly isTransact: boolean; readonly asTransact: { - readonly originKind: XcmV2OriginKind; + readonly originKind: XcmV3OriginKind; readonly requireWeightAtMost: SpWeightsWeightV2Weight; readonly call: XcmDoubleEncoded; } & Struct; @@ -1208,8 +1208,8 @@ declare module "@polkadot/types/lookup" { readonly asTruncatedError: Bytes; readonly type: "Success" | "Error" | "TruncatedError"; } - /** @name XcmV2OriginKind (86) */ - interface XcmV2OriginKind extends Enum { + /** @name XcmV3OriginKind (86) */ + interface XcmV3OriginKind extends Enum { readonly isNative: boolean; readonly isSovereignAccount: boolean; readonly isSuperuser: boolean; @@ -1703,7 +1703,14 @@ declare module "@polkadot/types/lookup" { readonly isOverweight: boolean; readonly asOverweight: SpWeightsWeightV2Weight; readonly isYield: boolean; - readonly type: "BadFormat" | "Corrupt" | "Unsupported" | "Overweight" | "Yield"; + readonly isStackLimitReached: boolean; + readonly type: + | "BadFormat" + | "Corrupt" + | "Unsupported" + | "Overweight" + | "Yield" + | "StackLimitReached"; } /** @name PalletStorageProvidersEvent (124) */ interface PalletStorageProvidersEvent extends Enum { @@ -2850,6 +2857,11 @@ declare module "@polkadot/types/lookup" { readonly direction: PalletBalancesAdjustmentDirection; readonly delta: Compact; } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly value: Compact; + readonly keepAlive: bool; + } & Struct; readonly type: | "TransferAllowDeath" | "ForceTransfer" @@ -2858,7 +2870,8 @@ declare module "@polkadot/types/lookup" { | "ForceUnreserve" | "UpgradeAccounts" | "ForceSetBalance" - | "ForceAdjustTotalIssuance"; + | "ForceAdjustTotalIssuance" + | "Burn"; } /** @name PalletBalancesAdjustmentDirection (250) */ interface PalletBalancesAdjustmentDirection extends Enum { @@ -3336,7 +3349,15 @@ declare module "@polkadot/types/lookup" { | "Barrier" | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (269) */ + /** @name XcmV2OriginKind (269) */ + interface XcmV2OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; + } + /** @name XcmV2MultiassetMultiAssetFilter (270) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3344,7 +3365,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV2MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (270) */ + /** @name XcmV2MultiassetWildMultiAsset (271) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3354,22 +3375,22 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (271) */ + /** @name XcmV2MultiassetWildFungibility (272) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (272) */ + /** @name XcmV2WeightLimit (273) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; readonly asLimited: Compact; readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (273) */ + /** @name XcmV3Xcm (274) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (275) */ + /** @name XcmV3Instruction (276) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3397,7 +3418,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly isTransact: boolean; readonly asTransact: { - readonly originKind: XcmV2OriginKind; + readonly originKind: XcmV3OriginKind; readonly requireWeightAtMost: SpWeightsWeightV2Weight; readonly call: XcmDoubleEncoded; } & Struct; @@ -3598,7 +3619,7 @@ declare module "@polkadot/types/lookup" { | "AliasOrigin" | "UnpaidExecution"; } - /** @name XcmV3Response (276) */ + /** @name XcmV3Response (277) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3619,7 +3640,7 @@ declare module "@polkadot/types/lookup" { | "PalletsInfo" | "DispatchResult"; } - /** @name XcmV3PalletInfo (278) */ + /** @name XcmV3PalletInfo (279) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3628,13 +3649,13 @@ declare module "@polkadot/types/lookup" { readonly minor: Compact; readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (282) */ + /** @name XcmV3QueryResponseInfo (283) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (283) */ + /** @name XcmV3MultiassetMultiAssetFilter (284) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3642,7 +3663,7 @@ declare module "@polkadot/types/lookup" { readonly asWild: XcmV3MultiassetWildMultiAsset; readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (284) */ + /** @name XcmV3MultiassetWildMultiAsset (285) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3660,13 +3681,13 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (285) */ + /** @name XcmV3MultiassetWildFungibility (286) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name StagingXcmExecutorAssetTransferTransferType (297) */ + /** @name StagingXcmExecutorAssetTransferTransferType (298) */ interface StagingXcmExecutorAssetTransferTransferType extends Enum { readonly isTeleport: boolean; readonly isLocalReserve: boolean; @@ -3675,7 +3696,7 @@ declare module "@polkadot/types/lookup" { readonly asRemoteReserve: XcmVersionedLocation; readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; } - /** @name XcmVersionedAssetId (298) */ + /** @name XcmVersionedAssetId (299) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -3683,9 +3704,9 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4AssetAssetId; readonly type: "V3" | "V4"; } - /** @name CumulusPalletXcmCall (299) */ + /** @name CumulusPalletXcmCall (300) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (300) */ + /** @name PalletMessageQueueCall (301) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3701,7 +3722,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (301) */ + /** @name PalletStorageProvidersCall (302) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -3766,7 +3787,7 @@ declare module "@polkadot/types/lookup" { | "ForceBspSignUp" | "Slash"; } - /** @name PalletFileSystemCall (302) */ + /** @name PalletFileSystemCall (303) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { @@ -3891,13 +3912,13 @@ declare module "@polkadot/types/lookup" { | "PendingFileDeletionRequestSubmitProof" | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (303) */ + /** @name PalletFileSystemBucketMoveRequestResponse (304) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletProofsDealerCall (308) */ + /** @name PalletProofsDealerCall (309) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -3918,12 +3939,12 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (309) */ + /** @name PalletRandomnessCall (310) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (310) */ + /** @name PalletPaymentStreamsCall (311) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -3976,7 +3997,7 @@ declare module "@polkadot/types/lookup" { | "PayOutstandingDebt" | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (311) */ + /** @name PalletBucketNftsCall (312) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -3993,7 +4014,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (313) */ + /** @name PalletNftsCall (314) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4265,13 +4286,13 @@ declare module "@polkadot/types/lookup" { | "MintPreSigned" | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (314) */ + /** @name PalletNftsCollectionConfig (315) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (316) */ + /** @name PalletNftsCollectionSetting (317) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4285,7 +4306,7 @@ declare module "@polkadot/types/lookup" { | "UnlockedMaxSupply" | "DepositRequired"; } - /** @name PalletNftsMintSettings (317) */ + /** @name PalletNftsMintSettings (318) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4293,7 +4314,7 @@ declare module "@polkadot/types/lookup" { readonly endBlock: Option; readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (318) */ + /** @name PalletNftsMintType (319) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4301,40 +4322,40 @@ declare module "@polkadot/types/lookup" { readonly asHolderOf: u32; readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (321) */ + /** @name PalletNftsItemSetting (322) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; readonly isUnlockedAttributes: boolean; readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (322) */ + /** @name PalletNftsDestroyWitness (323) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (324) */ + /** @name PalletNftsMintWitness (325) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (325) */ + /** @name PalletNftsItemConfig (326) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (327) */ + /** @name PalletNftsCancelAttributesApprovalWitness (328) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (329) */ + /** @name PalletNftsItemTip (330) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; readonly receiver: AccountId32; readonly amount: u128; } - /** @name PalletNftsPreSignedMint (331) */ + /** @name PalletNftsPreSignedMint (332) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4344,7 +4365,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (332) */ + /** @name SpRuntimeMultiSignature (333) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4354,7 +4375,7 @@ declare module "@polkadot/types/lookup" { readonly asEcdsa: U8aFixed; readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (335) */ + /** @name PalletNftsPreSignedAttributes (336) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4362,17 +4383,17 @@ declare module "@polkadot/types/lookup" { readonly namespace: PalletNftsAttributeNamespace; readonly deadline: u32; } - /** @name PalletSudoError (336) */ + /** @name PalletSudoError (337) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (339) */ + /** @name PalletCollatorSelectionCandidateInfo (340) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (341) */ + /** @name PalletCollatorSelectionError (342) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4410,9 +4431,9 @@ declare module "@polkadot/types/lookup" { | "IdenticalDeposit" | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (345) */ + /** @name SpCoreCryptoKeyTypeId (346) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (346) */ + /** @name PalletSessionError (347) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4426,7 +4447,7 @@ declare module "@polkadot/types/lookup" { | "NoKeys" | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (355) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4434,26 +4455,33 @@ declare module "@polkadot/types/lookup" { readonly firstIndex: u16; readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (356) */ + /** @name CumulusPalletXcmpQueueOutboundState (357) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (358) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (361) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (359) */ + /** @name CumulusPalletXcmpQueueError (362) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; - readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; + readonly isTooManyActiveOutboundChannels: boolean; + readonly isTooBig: boolean; + readonly type: + | "BadQueueConfig" + | "AlreadySuspended" + | "AlreadyResumed" + | "TooManyActiveOutboundChannels" + | "TooBig"; } - /** @name PalletXcmQueryStatus (360) */ + /** @name PalletXcmQueryStatus (363) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4474,7 +4502,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (364) */ + /** @name XcmVersionedResponse (367) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4484,7 +4512,7 @@ declare module "@polkadot/types/lookup" { readonly asV4: StagingXcmV4Response; readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (370) */ + /** @name PalletXcmVersionMigrationStage (373) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4497,14 +4525,14 @@ declare module "@polkadot/types/lookup" { | "NotifyCurrentTargets" | "MigrateAndNotifyOldTargets"; } - /** @name PalletXcmRemoteLockedFungibleRecord (373) */ + /** @name PalletXcmRemoteLockedFungibleRecord (376) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; readonly locker: XcmVersionedLocation; readonly consumers: Vec>; } - /** @name PalletXcmError (380) */ + /** @name PalletXcmError (383) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4556,7 +4584,7 @@ declare module "@polkadot/types/lookup" { | "TooManyReserves" | "LocalExecutionIncomplete"; } - /** @name PalletMessageQueueBookState (381) */ + /** @name PalletMessageQueueBookState (384) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4565,12 +4593,12 @@ declare module "@polkadot/types/lookup" { readonly messageCount: u64; readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (383) */ + /** @name PalletMessageQueueNeighbours (386) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (385) */ + /** @name PalletMessageQueuePage (388) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4579,7 +4607,7 @@ declare module "@polkadot/types/lookup" { readonly last: u32; readonly heap: Bytes; } - /** @name PalletMessageQueueError (387) */ + /** @name PalletMessageQueueError (390) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4601,7 +4629,7 @@ declare module "@polkadot/types/lookup" { | "QueuePaused" | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (389) */ + /** @name PalletStorageProvidersStorageProvider (392) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4609,7 +4637,7 @@ declare module "@polkadot/types/lookup" { readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (390) */ + /** @name PalletStorageProvidersBackupStorageProvider (393) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4620,7 +4648,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (391) */ + /** @name PalletStorageProvidersMainStorageProvider (394) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4631,7 +4659,7 @@ declare module "@polkadot/types/lookup" { readonly ownerAccount: AccountId32; readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (393) */ + /** @name PalletStorageProvidersBucket (396) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4640,7 +4668,7 @@ declare module "@polkadot/types/lookup" { readonly readAccessGroupId: Option; readonly size_: u64; } - /** @name PalletStorageProvidersError (396) */ + /** @name PalletStorageProvidersError (399) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4698,7 +4726,7 @@ declare module "@polkadot/types/lookup" { | "InvalidEncodedAccountId" | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (397) */ + /** @name PalletFileSystemStorageRequestMetadata (400) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4713,15 +4741,15 @@ declare module "@polkadot/types/lookup" { readonly bspsConfirmed: u32; readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (402) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (405) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (411) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (414) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (412) */ + /** @name PalletFileSystemError (415) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -4839,7 +4867,7 @@ declare module "@polkadot/types/lookup" { | "BspDataServersExceeded" | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (419) */ + /** @name PalletProofsDealerError (422) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -4887,26 +4915,26 @@ declare module "@polkadot/types/lookup" { | "FailedToUpdateProviderAfterKeyRemoval" | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (422) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (425) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (423) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (426) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; readonly userDeposit: u128; readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (424) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (427) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (425) */ + /** @name PalletPaymentStreamsError (428) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -4942,7 +4970,7 @@ declare module "@polkadot/types/lookup" { | "UserNotFlaggedAsWithoutFunds" | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (426) */ + /** @name PalletBucketNftsError (429) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -4954,7 +4982,7 @@ declare module "@polkadot/types/lookup" { | "NoCorrespondingCollection" | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (427) */ + /** @name PalletNftsCollectionDetails (430) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -4963,52 +4991,52 @@ declare module "@polkadot/types/lookup" { readonly itemConfigs: u32; readonly attributes: u32; } - /** @name PalletNftsCollectionRole (432) */ + /** @name PalletNftsCollectionRole (435) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; readonly isAdmin: boolean; readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (433) */ + /** @name PalletNftsItemDetails (436) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (434) */ + /** @name PalletNftsItemDeposit (437) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (439) */ + /** @name PalletNftsCollectionMetadata (442) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (440) */ + /** @name PalletNftsItemMetadata (443) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (441) */ + /** @name PalletNftsItemMetadataDeposit (444) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (444) */ + /** @name PalletNftsAttributeDeposit (447) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (448) */ + /** @name PalletNftsPendingSwap (451) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; readonly price: Option; readonly deadline: u32; } - /** @name PalletNftsPalletFeature (450) */ + /** @name PalletNftsPalletFeature (453) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5016,7 +5044,7 @@ declare module "@polkadot/types/lookup" { readonly isSwaps: boolean; readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (451) */ + /** @name PalletNftsError (454) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5110,32 +5138,32 @@ declare module "@polkadot/types/lookup" { | "CollectionNotEmpty" | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (454) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (457) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (455) */ + /** @name FrameSystemExtensionsCheckSpecVersion (458) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (456) */ + /** @name FrameSystemExtensionsCheckTxVersion (459) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (457) */ + /** @name FrameSystemExtensionsCheckGenesis (460) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (460) */ + /** @name FrameSystemExtensionsCheckNonce (463) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (461) */ + /** @name FrameSystemExtensionsCheckWeight (464) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (462) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (465) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (463) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (466) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name FrameMetadataHashExtensionCheckMetadataHash (464) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (467) */ interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { readonly mode: FrameMetadataHashExtensionMode; } - /** @name FrameMetadataHashExtensionMode (465) */ + /** @name FrameMetadataHashExtensionMode (468) */ interface FrameMetadataHashExtensionMode extends Enum { readonly isDisabled: boolean; readonly isEnabled: boolean; readonly type: "Disabled" | "Enabled"; } - /** @name StorageHubRuntimeRuntime (466) */ + /** @name StorageHubRuntimeRuntime (469) */ type StorageHubRuntimeRuntime = Null; } diff --git a/api-augment/package.json b/api-augment/package.json index cd0c368c9..2e6b64eb0 100644 --- a/api-augment/package.json +++ b/api-augment/package.json @@ -25,12 +25,12 @@ }, "license": "ISC", "dependencies": { - "@polkadot/api": "12.4.2", - "@polkadot/api-base": "12.4.2", - "@polkadot/rpc-core": "12.4.2", - "@polkadot/typegen": "12.4.2", - "@polkadot/types": "12.4.2", - "@polkadot/types-codec": "12.4.2", + "@polkadot/api": "14.0.1", + "@polkadot/api-base": "14.0.1", + "@polkadot/rpc-core": "14.0.1", + "@polkadot/typegen": "14.0.1", + "@polkadot/types": "14.0.1", + "@polkadot/types-codec": "14.0.1", "@storagehub/types-bundle": "workspace:*", "tsx": "4.19.0", "typescript": "5.5.4" diff --git a/api-augment/src/interfaces/augment-api-consts.ts b/api-augment/src/interfaces/augment-api-consts.ts index b5a8a0bef..7058ef45c 100644 --- a/api-augment/src/interfaces/augment-api-consts.ts +++ b/api-augment/src/interfaces/augment-api-consts.ts @@ -530,6 +530,17 @@ declare module "@polkadot/api-base/types/consts" { [key: string]: Codec; }; xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; /** * The maximum number of inbound XCMP channels that can be suspended simultaneously. * @@ -538,6 +549,14 @@ declare module "@polkadot/api-base/types/consts" { * [`InboundXcmpSuspended`] still applies at that scale. **/ maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; /** * Generic const **/ diff --git a/api-augment/src/interfaces/augment-api-errors.ts b/api-augment/src/interfaces/augment-api-errors.ts index 9de46dcb9..d69d25df1 100644 --- a/api-augment/src/interfaces/augment-api-errors.ts +++ b/api-augment/src/interfaces/augment-api-errors.ts @@ -1170,6 +1170,14 @@ declare module "@polkadot/api-base/types/errors" { * Setting the queue config failed since one of its values was invalid. **/ BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; /** * Generic error **/ diff --git a/api-augment/src/interfaces/augment-api-query.ts b/api-augment/src/interfaces/augment-api-query.ts index 9be44db99..df0723923 100644 --- a/api-augment/src/interfaces/augment-api-query.ts +++ b/api-augment/src/interfaces/augment-api-query.ts @@ -77,6 +77,8 @@ import type { SpRuntimeDigest, SpTrieStorageProof, SpWeightsWeightV2Weight, + StagingXcmV4Instruction, + StagingXcmV4Xcm, StorageHubRuntimeRuntimeHoldReason, StorageHubRuntimeSessionKeys, XcmVersionedAssetId, @@ -1126,6 +1128,20 @@ declare module "@polkadot/api-base/types/storage" { **/ queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; /** * Fungible assets which we know are locked on a remote chain. **/ @@ -1145,6 +1161,17 @@ declare module "@polkadot/api-base/types/storage" { **/ safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & + QueryableStorageEntry; /** * The Latest versions that we know various locations support. **/ diff --git a/api-augment/src/interfaces/augment-api-runtime.ts b/api-augment/src/interfaces/augment-api-runtime.ts index 6c56a3d20..45a53bd1e 100644 --- a/api-augment/src/interfaces/augment-api-runtime.ts +++ b/api-augment/src/interfaces/augment-api-runtime.ts @@ -6,12 +6,17 @@ import "@polkadot/api-base/types/calls"; import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; -import type { Bytes, Null, Option, Result, Vec, bool, u32 } from "@polkadot/types-codec"; +import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; import type { BlockHash } from "@polkadot/types/interfaces/chain"; import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; +import type { + CallDryRunEffects, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; @@ -27,13 +32,19 @@ import type { Header, Index, KeyTypeId, + OriginCaller, + RuntimeCall, Slot, SlotDuration, - Weight + Weight, + WeightV2 } from "@polkadot/types/interfaces/runtime"; import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; +import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; +import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; +import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; import type { IExtrinsic, Observable } from "@polkadot/types/types"; import type { BackupStorageProvider, @@ -213,6 +224,49 @@ declare module "@polkadot/api-base/types/calls" { **/ [key: string]: DecoratedCallBase; }; + /** 0x91b1c8b16328eb92/1 */ + dryRunApi: { + /** + * Dry run call + **/ + dryRunCall: AugmentedCall< + ApiType, + ( + origin: OriginCaller | { System: any } | string | Uint8Array, + call: RuntimeCall | IMethod | string | Uint8Array + ) => Observable> + >; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall< + ApiType, + ( + originLocation: + | VersionedMultiLocation + | { V0: any } + | { V1: any } + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + xcm: + | VersionedXcm + | { V0: any } + | { V1: any } + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; /** 0xb9e7717ace5b45cd/1 */ fileSystemApi: { /** @@ -601,5 +655,40 @@ declare module "@polkadot/api-base/types/calls" { **/ [key: string]: DecoratedCallBase; }; + /** 0x6ff52ee858e6c5bd/1 */ + xcmPaymentApi: { + /** + * The API to query acceptable payment assets + **/ + queryAcceptablePaymentAssets: AugmentedCall< + ApiType, + ( + version: u32 | AnyNumber | Uint8Array + ) => Observable, XcmPaymentApiError>> + >; + /** + * + **/ + queryWeightToAssetFee: AugmentedCall< + ApiType, + ( + weight: WeightV2 | { refTime?: any; proofSize?: any } | string | Uint8Array, + asset: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable> + >; + /** + * + **/ + queryXcmWeight: AugmentedCall< + ApiType, + ( + message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; } // AugmentedCalls } // declare module diff --git a/api-augment/src/interfaces/augment-api-tx.ts b/api-augment/src/interfaces/augment-api-tx.ts index ca744c6f7..3d2c70078 100644 --- a/api-augment/src/interfaces/augment-api-tx.ts +++ b/api-augment/src/interfaces/augment-api-tx.ts @@ -54,6 +54,22 @@ export type __SubmittableExtrinsicFunction = declare module "@polkadot/api-base/types/submittable" { interface AugmentedSubmittables { balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable< + ( + value: Compact | AnyNumber | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [Compact, bool] + >; /** * Adjust the total issuance in a saturating way. * diff --git a/api-augment/src/interfaces/augment-types.ts b/api-augment/src/interfaces/augment-types.ts index fb7ce3ce1..5bac645ce 100644 --- a/api-augment/src/interfaces/augment-types.ts +++ b/api-augment/src/interfaces/augment-types.ts @@ -324,6 +324,13 @@ import type { VotingDirectVote } from "@polkadot/types/interfaces/democracy"; import type { BlockStats } from "@polkadot/types/interfaces/dev"; +import type { + CallDryRunEffects, + DispatchResultWithPostInfo, + PostDispatchInfo, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; import type { ApprovalFlag, DefunctVoter, @@ -409,10 +416,13 @@ import type { ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, + ExtrinsicPayloadV5, ExtrinsicSignature, ExtrinsicSignatureV4, + ExtrinsicSignatureV5, ExtrinsicUnknown, ExtrinsicV4, + ExtrinsicV5, ImmortalEra, MortalEra, MultiSignature, @@ -1176,48 +1186,88 @@ import type { import type { Multisig, Timepoint } from "@polkadot/types/interfaces/utility"; import type { VestingInfo } from "@polkadot/types/interfaces/vesting"; import type { + AssetIdV2, + AssetIdV3, + AssetIdV4, AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, + AssetInstanceV3, + AssetInstanceV4, BodyId, + BodyIdV2, + BodyIdV3, BodyPart, + BodyPartV2, + BodyPartV3, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, + FungibilityV3, + FungibilityV4, InboundStatus, InstructionV2, + InstructionV3, + InstructionV4, InteriorMultiLocation, + InteriorMultiLocationV2, + InteriorMultiLocationV3, Junction, JunctionV0, JunctionV1, JunctionV2, + JunctionV3, + JunctionV4, Junctions, JunctionsV1, JunctionsV2, + JunctionsV3, + JunctionsV4, + MaxPalletNameLen, + MaxPalletsInfo, + MaybeErrorCodeV3, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, + MultiAssetFilterV3, + MultiAssetFilterV4, MultiAssetV0, MultiAssetV1, MultiAssetV2, + MultiAssetV3, + MultiAssetV4, MultiAssets, MultiAssetsV1, MultiAssetsV2, + MultiAssetsV3, + MultiAssetsV4, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, + MultiLocationV3, + MultiLocationV4, NetworkId, + NetworkIdV2, + NetworkIdV3, + NetworkIdV4, OriginKindV0, OriginKindV1, OriginKindV2, + OriginKindV3, + OriginKindV4, OutboundStatus, Outcome, + OutcomeV4, + PalletInfoV3, + PalletInfoV4, QueryId, + QueryResponseInfoV3, + QueryResponseInfoV4, QueryStatus, QueueConfigData, Response, @@ -1225,36 +1275,49 @@ import type { ResponseV1, ResponseV2, ResponseV2Error, - ResponseV2Result, + ResponseV3, + ResponseV3Error, + ResponseV3Result, + ResponseV4, + UncheckedFungibilityV4, VersionMigrationStage, + VersionV3, + VersionV4, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, + WeightLimitV3, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, + WildFungibilityV3, + WildFungibilityV4, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, + WildMultiAssetV3, + WildMultiAssetV4, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, - XcmOrder, + XcmErrorV3, + XcmErrorV4, XcmOrderV0, XcmOrderV1, - XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, + XcmV3, + XcmV4, XcmVersion, XcmpMessageFormat } from "@polkadot/types/interfaces/xcm"; @@ -1334,10 +1397,15 @@ declare module "@polkadot/types/types/registry" { AssetDestroyWitness: AssetDestroyWitness; AssetDetails: AssetDetails; AssetId: AssetId; + AssetIdV2: AssetIdV2; + AssetIdV3: AssetIdV3; + AssetIdV4: AssetIdV4; AssetInstance: AssetInstance; AssetInstanceV0: AssetInstanceV0; AssetInstanceV1: AssetInstanceV1; AssetInstanceV2: AssetInstanceV2; + AssetInstanceV3: AssetInstanceV3; + AssetInstanceV4: AssetInstanceV4; AssetMetadata: AssetMetadata; AssetOptions: AssetOptions; AssignmentId: AssignmentId; @@ -1412,7 +1480,11 @@ declare module "@polkadot/types/types/registry" { BlockV2: BlockV2; BlockWeights: BlockWeights; BodyId: BodyId; + BodyIdV2: BodyIdV2; + BodyIdV3: BodyIdV3; BodyPart: BodyPart; + BodyPartV2: BodyPartV2; + BodyPartV3: BodyPartV3; bool: bool; Bool: Bool; Bounty: Bounty; @@ -1428,6 +1500,7 @@ declare module "@polkadot/types/types/registry" { BufferedSessionChange: BufferedSessionChange; Bytes: Bytes; Call: Call; + CallDryRunEffects: CallDryRunEffects; CallHash: CallHash; CallHashOf: CallHashOf; CallIndex: CallIndex; @@ -1588,6 +1661,7 @@ declare module "@polkadot/types/types/registry" { DispatchResult: DispatchResult; DispatchResultOf: DispatchResultOf; DispatchResultTo198: DispatchResultTo198; + DispatchResultWithPostInfo: DispatchResultWithPostInfo; DisputeLocation: DisputeLocation; DisputeProof: DisputeProof; DisputeResult: DisputeResult; @@ -1707,12 +1781,15 @@ declare module "@polkadot/types/types/registry" { ExtrinsicPayload: ExtrinsicPayload; ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; ExtrinsicPayloadV4: ExtrinsicPayloadV4; + ExtrinsicPayloadV5: ExtrinsicPayloadV5; ExtrinsicSignature: ExtrinsicSignature; ExtrinsicSignatureV4: ExtrinsicSignatureV4; + ExtrinsicSignatureV5: ExtrinsicSignatureV5; ExtrinsicStatus: ExtrinsicStatus; ExtrinsicsWeight: ExtrinsicsWeight; ExtrinsicUnknown: ExtrinsicUnknown; ExtrinsicV4: ExtrinsicV4; + ExtrinsicV5: ExtrinsicV5; f32: f32; F32: F32; f64: f64; @@ -1749,6 +1826,8 @@ declare module "@polkadot/types/types/registry" { FungibilityV0: FungibilityV0; FungibilityV1: FungibilityV1; FungibilityV2: FungibilityV2; + FungibilityV3: FungibilityV3; + FungibilityV4: FungibilityV4; FungiblesAccessError: FungiblesAccessError; Gas: Gas; GenesisBuildErr: GenesisBuildErr; @@ -1844,8 +1923,12 @@ declare module "@polkadot/types/types/registry" { InstantiateReturnValueOk: InstantiateReturnValueOk; InstantiateReturnValueTo267: InstantiateReturnValueTo267; InstructionV2: InstructionV2; + InstructionV3: InstructionV3; + InstructionV4: InstructionV4; InstructionWeights: InstructionWeights; InteriorMultiLocation: InteriorMultiLocation; + InteriorMultiLocationV2: InteriorMultiLocationV2; + InteriorMultiLocationV3: InteriorMultiLocationV3; InvalidDisputeStatementKind: InvalidDisputeStatementKind; InvalidTransaction: InvalidTransaction; isize: isize; @@ -1855,9 +1938,13 @@ declare module "@polkadot/types/types/registry" { Junctions: Junctions; JunctionsV1: JunctionsV1; JunctionsV2: JunctionsV2; + JunctionsV3: JunctionsV3; + JunctionsV4: JunctionsV4; JunctionV0: JunctionV0; JunctionV1: JunctionV1; JunctionV2: JunctionV2; + JunctionV3: JunctionV3; + JunctionV4: JunctionV4; Justification: Justification; JustificationNotification: JustificationNotification; Justifications: Justifications; @@ -1883,6 +1970,9 @@ declare module "@polkadot/types/types/registry" { LookupTarget: LookupTarget; LotteryConfig: LotteryConfig; MainStorageProviderId: MainStorageProviderId; + MaxPalletNameLen: MaxPalletNameLen; + MaxPalletsInfo: MaxPalletsInfo; + MaybeErrorCodeV3: MaybeErrorCodeV3; MaybeRandomness: MaybeRandomness; MaybeVrf: MaybeVrf; MemberCount: MemberCount; @@ -1940,22 +2030,33 @@ declare module "@polkadot/types/types/registry" { MultiAssetFilter: MultiAssetFilter; MultiAssetFilterV1: MultiAssetFilterV1; MultiAssetFilterV2: MultiAssetFilterV2; + MultiAssetFilterV3: MultiAssetFilterV3; + MultiAssetFilterV4: MultiAssetFilterV4; MultiAssets: MultiAssets; MultiAssetsV1: MultiAssetsV1; MultiAssetsV2: MultiAssetsV2; + MultiAssetsV3: MultiAssetsV3; + MultiAssetsV4: MultiAssetsV4; MultiAssetV0: MultiAssetV0; MultiAssetV1: MultiAssetV1; MultiAssetV2: MultiAssetV2; + MultiAssetV3: MultiAssetV3; + MultiAssetV4: MultiAssetV4; MultiDisputeStatementSet: MultiDisputeStatementSet; MultiLocation: MultiLocation; MultiLocationV0: MultiLocationV0; MultiLocationV1: MultiLocationV1; MultiLocationV2: MultiLocationV2; + MultiLocationV3: MultiLocationV3; + MultiLocationV4: MultiLocationV4; Multiplier: Multiplier; Multisig: Multisig; MultiSignature: MultiSignature; MultiSigner: MultiSigner; NetworkId: NetworkId; + NetworkIdV2: NetworkIdV2; + NetworkIdV3: NetworkIdV3; + NetworkIdV4: NetworkIdV4; NetworkState: NetworkState; NetworkStatePeerset: NetworkStatePeerset; NetworkStatePeersetInfo: NetworkStatePeersetInfo; @@ -1999,6 +2100,8 @@ declare module "@polkadot/types/types/registry" { OriginKindV0: OriginKindV0; OriginKindV1: OriginKindV1; OriginKindV2: OriginKindV2; + OriginKindV3: OriginKindV3; + OriginKindV4: OriginKindV4; OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; OutboundHrmpMessage: OutboundHrmpMessage; OutboundLaneData: OutboundLaneData; @@ -2006,6 +2109,7 @@ declare module "@polkadot/types/types/registry" { OutboundPayload: OutboundPayload; OutboundStatus: OutboundStatus; Outcome: Outcome; + OutcomeV4: OutcomeV4; OuterEnums15: OuterEnums15; OverweightIndex: OverweightIndex; Owner: Owner; @@ -2020,6 +2124,8 @@ declare module "@polkadot/types/types/registry" { PalletEventMetadataLatest: PalletEventMetadataLatest; PalletEventMetadataV14: PalletEventMetadataV14; PalletId: PalletId; + PalletInfoV3: PalletInfoV3; + PalletInfoV4: PalletInfoV4; PalletMetadataLatest: PalletMetadataLatest; PalletMetadataV14: PalletMetadataV14; PalletMetadataV15: PalletMetadataV15; @@ -2072,6 +2178,7 @@ declare module "@polkadot/types/types/registry" { Points: Points; PortableType: PortableType; PortableTypeV14: PortableTypeV14; + PostDispatchInfo: PostDispatchInfo; Precommits: Precommits; PrefabWasmModule: PrefabWasmModule; PrefixedStorageKey: PrefixedStorageKey; @@ -2097,6 +2204,8 @@ declare module "@polkadot/types/types/registry" { QueryEarliestChangeCapacityBlockError: QueryEarliestChangeCapacityBlockError; QueryFileEarliestVolunteerBlockError: QueryFileEarliestVolunteerBlockError; QueryId: QueryId; + QueryResponseInfoV3: QueryResponseInfoV3; + QueryResponseInfoV4: QueryResponseInfoV4; QueryStatus: QueryStatus; QueryStorageProviderCapacityError: QueryStorageProviderCapacityError; QueueConfigData: QueueConfigData; @@ -2156,7 +2265,10 @@ declare module "@polkadot/types/types/registry" { ResponseV1: ResponseV1; ResponseV2: ResponseV2; ResponseV2Error: ResponseV2Error; - ResponseV2Result: ResponseV2Result; + ResponseV3: ResponseV3; + ResponseV3Error: ResponseV3Error; + ResponseV3Result: ResponseV3Result; + ResponseV4: ResponseV4; Retriable: Retriable; RewardDestination: RewardDestination; RewardPoint: RewardPoint; @@ -2397,6 +2509,7 @@ declare module "@polkadot/types/types/registry" { U8: U8; UnappliedSlash: UnappliedSlash; UnappliedSlashOther: UnappliedSlashOther; + UncheckedFungibilityV4: UncheckedFungibilityV4; UncleEntryItem: UncleEntryItem; UnknownTransaction: UnknownTransaction; UnlockChunk: UnlockChunk; @@ -2435,6 +2548,8 @@ declare module "@polkadot/types/types/registry" { VersionedResponse: VersionedResponse; VersionedXcm: VersionedXcm; VersionMigrationStage: VersionMigrationStage; + VersionV3: VersionV3; + VersionV4: VersionV4; VestingInfo: VestingInfo; VestingSchedule: VestingSchedule; Vote: Vote; @@ -2455,6 +2570,7 @@ declare module "@polkadot/types/types/registry" { VrfProof: VrfProof; Weight: Weight; WeightLimitV2: WeightLimitV2; + WeightLimitV3: WeightLimitV3; WeightMultiplier: WeightMultiplier; WeightPerClass: WeightPerClass; WeightToFeeCoefficient: WeightToFeeCoefficient; @@ -2465,9 +2581,13 @@ declare module "@polkadot/types/types/registry" { WildFungibilityV0: WildFungibilityV0; WildFungibilityV1: WildFungibilityV1; WildFungibilityV2: WildFungibilityV2; + WildFungibilityV3: WildFungibilityV3; + WildFungibilityV4: WildFungibilityV4; WildMultiAsset: WildMultiAsset; WildMultiAssetV1: WildMultiAssetV1; WildMultiAssetV2: WildMultiAssetV2; + WildMultiAssetV3: WildMultiAssetV3; + WildMultiAssetV4: WildMultiAssetV4; WinnersData: WinnersData; WinnersData10: WinnersData10; WinnersDataTuple: WinnersDataTuple; @@ -2478,14 +2598,16 @@ declare module "@polkadot/types/types/registry" { WithdrawReasons: WithdrawReasons; Xcm: Xcm; XcmAssetId: XcmAssetId; + XcmDryRunApiError: XcmDryRunApiError; + XcmDryRunEffects: XcmDryRunEffects; XcmError: XcmError; XcmErrorV0: XcmErrorV0; XcmErrorV1: XcmErrorV1; XcmErrorV2: XcmErrorV2; - XcmOrder: XcmOrder; + XcmErrorV3: XcmErrorV3; + XcmErrorV4: XcmErrorV4; XcmOrderV0: XcmOrderV0; XcmOrderV1: XcmOrderV1; - XcmOrderV2: XcmOrderV2; XcmOrigin: XcmOrigin; XcmOriginKind: XcmOriginKind; XcmPaymentApiError: XcmPaymentApiError; @@ -2493,6 +2615,8 @@ declare module "@polkadot/types/types/registry" { XcmV0: XcmV0; XcmV1: XcmV1; XcmV2: XcmV2; + XcmV3: XcmV3; + XcmV4: XcmV4; XcmVersion: XcmVersion; } // InterfaceTypes } // declare module diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index 73e6d5b3e..062c354c5 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -735,7 +735,7 @@ export default { xcm: "StagingXcmV4Xcm" }, Transact: { - originKind: "XcmV2OriginKind", + originKind: "XcmV3OriginKind", requireWeightAtMost: "SpWeightsWeightV2Weight", call: "XcmDoubleEncoded" }, @@ -925,9 +925,9 @@ export default { } }, /** - * Lookup86: xcm::v2::OriginKind + * Lookup86: xcm::v3::OriginKind **/ - XcmV2OriginKind: { + XcmV3OriginKind: { _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] }, /** @@ -1332,7 +1332,8 @@ export default { Corrupt: "Null", Unsupported: "Null", Overweight: "SpWeightsWeightV2Weight", - Yield: "Null" + Yield: "Null", + StackLimitReached: "Null" } }, /** @@ -2413,6 +2414,10 @@ export default { force_adjust_total_issuance: { direction: "PalletBalancesAdjustmentDirection", delta: "Compact" + }, + burn: { + value: "Compact", + keepAlive: "bool" } } }, @@ -2795,7 +2800,13 @@ export default { } }, /** - * Lookup269: xcm::v2::multiasset::MultiAssetFilter + * Lookup269: xcm::v2::OriginKind + **/ + XcmV2OriginKind: { + _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] + }, + /** + * Lookup270: xcm::v2::multiasset::MultiAssetFilter **/ XcmV2MultiassetMultiAssetFilter: { _enum: { @@ -2804,7 +2815,7 @@ export default { } }, /** - * Lookup270: xcm::v2::multiasset::WildMultiAsset + * Lookup271: xcm::v2::multiasset::WildMultiAsset **/ XcmV2MultiassetWildMultiAsset: { _enum: { @@ -2816,13 +2827,13 @@ export default { } }, /** - * Lookup271: xcm::v2::multiasset::WildFungibility + * Lookup272: xcm::v2::multiasset::WildFungibility **/ XcmV2MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup272: xcm::v2::WeightLimit + * Lookup273: xcm::v2::WeightLimit **/ XcmV2WeightLimit: { _enum: { @@ -2831,11 +2842,11 @@ export default { } }, /** - * Lookup273: xcm::v3::Xcm + * Lookup274: xcm::v3::Xcm **/ XcmV3Xcm: "Vec", /** - * Lookup275: xcm::v3::Instruction + * Lookup276: xcm::v3::Instruction **/ XcmV3Instruction: { _enum: { @@ -2858,7 +2869,7 @@ export default { xcm: "XcmV3Xcm" }, Transact: { - originKind: "XcmV2OriginKind", + originKind: "XcmV3OriginKind", requireWeightAtMost: "SpWeightsWeightV2Weight", call: "XcmDoubleEncoded" }, @@ -2977,7 +2988,7 @@ export default { } }, /** - * Lookup276: xcm::v3::Response + * Lookup277: xcm::v3::Response **/ XcmV3Response: { _enum: { @@ -2990,7 +3001,7 @@ export default { } }, /** - * Lookup278: xcm::v3::PalletInfo + * Lookup279: xcm::v3::PalletInfo **/ XcmV3PalletInfo: { index: "Compact", @@ -3001,7 +3012,7 @@ export default { patch: "Compact" }, /** - * Lookup282: xcm::v3::QueryResponseInfo + * Lookup283: xcm::v3::QueryResponseInfo **/ XcmV3QueryResponseInfo: { destination: "StagingXcmV3MultiLocation", @@ -3009,7 +3020,7 @@ export default { maxWeight: "SpWeightsWeightV2Weight" }, /** - * Lookup283: xcm::v3::multiasset::MultiAssetFilter + * Lookup284: xcm::v3::multiasset::MultiAssetFilter **/ XcmV3MultiassetMultiAssetFilter: { _enum: { @@ -3018,7 +3029,7 @@ export default { } }, /** - * Lookup284: xcm::v3::multiasset::WildMultiAsset + * Lookup285: xcm::v3::multiasset::WildMultiAsset **/ XcmV3MultiassetWildMultiAsset: { _enum: { @@ -3036,13 +3047,13 @@ export default { } }, /** - * Lookup285: xcm::v3::multiasset::WildFungibility + * Lookup286: xcm::v3::multiasset::WildFungibility **/ XcmV3MultiassetWildFungibility: { _enum: ["Fungible", "NonFungible"] }, /** - * Lookup297: staging_xcm_executor::traits::asset_transfer::TransferType + * Lookup298: staging_xcm_executor::traits::asset_transfer::TransferType **/ StagingXcmExecutorAssetTransferTransferType: { _enum: { @@ -3053,7 +3064,7 @@ export default { } }, /** - * Lookup298: xcm::VersionedAssetId + * Lookup299: xcm::VersionedAssetId **/ XcmVersionedAssetId: { _enum: { @@ -3065,11 +3076,11 @@ export default { } }, /** - * Lookup299: cumulus_pallet_xcm::pallet::Call + * Lookup300: cumulus_pallet_xcm::pallet::Call **/ CumulusPalletXcmCall: "Null", /** - * Lookup300: pallet_message_queue::pallet::Call + * Lookup301: pallet_message_queue::pallet::Call **/ PalletMessageQueueCall: { _enum: { @@ -3086,7 +3097,7 @@ export default { } }, /** - * Lookup301: pallet_storage_providers::pallet::Call + * Lookup302: pallet_storage_providers::pallet::Call **/ PalletStorageProvidersCall: { _enum: { @@ -3135,7 +3146,7 @@ export default { } }, /** - * Lookup302: pallet_file_system::pallet::Call + * Lookup303: pallet_file_system::pallet::Call **/ PalletFileSystemCall: { _enum: { @@ -3241,13 +3252,13 @@ export default { } }, /** - * Lookup303: pallet_file_system::types::BucketMoveRequestResponse + * Lookup304: pallet_file_system::types::BucketMoveRequestResponse **/ PalletFileSystemBucketMoveRequestResponse: { _enum: ["Accepted", "Rejected"] }, /** - * Lookup308: pallet_proofs_dealer::pallet::Call + * Lookup309: pallet_proofs_dealer::pallet::Call **/ PalletProofsDealerCall: { _enum: { @@ -3267,13 +3278,13 @@ export default { } }, /** - * Lookup309: pallet_randomness::pallet::Call + * Lookup310: pallet_randomness::pallet::Call **/ PalletRandomnessCall: { _enum: ["set_babe_randomness"] }, /** - * Lookup310: pallet_payment_streams::pallet::Call + * Lookup311: pallet_payment_streams::pallet::Call **/ PalletPaymentStreamsCall: { _enum: { @@ -3313,7 +3324,7 @@ export default { } }, /** - * Lookup311: pallet_bucket_nfts::pallet::Call + * Lookup312: pallet_bucket_nfts::pallet::Call **/ PalletBucketNftsCall: { _enum: { @@ -3331,7 +3342,7 @@ export default { } }, /** - * Lookup313: pallet_nfts::pallet::Call + * Lookup314: pallet_nfts::pallet::Call **/ PalletNftsCall: { _enum: { @@ -3528,7 +3539,7 @@ export default { } }, /** - * Lookup314: pallet_nfts::types::CollectionConfig + * Lookup315: pallet_nfts::types::CollectionConfig **/ PalletNftsCollectionConfig: { settings: "u64", @@ -3536,7 +3547,7 @@ export default { mintSettings: "PalletNftsMintSettings" }, /** - * Lookup316: pallet_nfts::types::CollectionSetting + * Lookup317: pallet_nfts::types::CollectionSetting **/ PalletNftsCollectionSetting: { _enum: [ @@ -3560,7 +3571,7 @@ export default { ] }, /** - * Lookup317: pallet_nfts::types::MintSettings + * Lookup318: pallet_nfts::types::MintSettings **/ PalletNftsMintSettings: { mintType: "PalletNftsMintType", @@ -3570,7 +3581,7 @@ export default { defaultItemSettings: "u64" }, /** - * Lookup318: pallet_nfts::types::MintType + * Lookup319: pallet_nfts::types::MintType **/ PalletNftsMintType: { _enum: { @@ -3580,13 +3591,13 @@ export default { } }, /** - * Lookup321: pallet_nfts::types::ItemSetting + * Lookup322: pallet_nfts::types::ItemSetting **/ PalletNftsItemSetting: { _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] }, /** - * Lookup322: pallet_nfts::types::DestroyWitness + * Lookup323: pallet_nfts::types::DestroyWitness **/ PalletNftsDestroyWitness: { itemMetadatas: "Compact", @@ -3594,26 +3605,26 @@ export default { attributes: "Compact" }, /** - * Lookup324: pallet_nfts::types::MintWitness + * Lookup325: pallet_nfts::types::MintWitness **/ PalletNftsMintWitness: { ownedItem: "Option", mintPrice: "Option" }, /** - * Lookup325: pallet_nfts::types::ItemConfig + * Lookup326: pallet_nfts::types::ItemConfig **/ PalletNftsItemConfig: { settings: "u64" }, /** - * Lookup327: pallet_nfts::types::CancelAttributesApprovalWitness + * Lookup328: pallet_nfts::types::CancelAttributesApprovalWitness **/ PalletNftsCancelAttributesApprovalWitness: { accountAttributes: "u32" }, /** - * Lookup329: pallet_nfts::types::ItemTip + * Lookup330: pallet_nfts::types::ItemTip **/ PalletNftsItemTip: { collection: "u32", @@ -3622,7 +3633,7 @@ export default { amount: "u128" }, /** - * Lookup331: pallet_nfts::types::PreSignedMint + * Lookup332: pallet_nfts::types::PreSignedMint **/ PalletNftsPreSignedMint: { collection: "u32", @@ -3634,7 +3645,7 @@ export default { mintPrice: "Option" }, /** - * Lookup332: sp_runtime::MultiSignature + * Lookup333: sp_runtime::MultiSignature **/ SpRuntimeMultiSignature: { _enum: { @@ -3644,7 +3655,7 @@ export default { } }, /** - * Lookup335: pallet_nfts::types::PreSignedAttributes + * Lookup336: pallet_nfts::types::PreSignedAttributes **/ PalletNftsPreSignedAttributes: { collection: "u32", @@ -3654,20 +3665,20 @@ export default { deadline: "u32" }, /** - * Lookup336: pallet_sudo::pallet::Error + * Lookup337: pallet_sudo::pallet::Error **/ PalletSudoError: { _enum: ["RequireSudo"] }, /** - * Lookup339: pallet_collator_selection::pallet::CandidateInfo + * Lookup340: pallet_collator_selection::pallet::CandidateInfo **/ PalletCollatorSelectionCandidateInfo: { who: "AccountId32", deposit: "u128" }, /** - * Lookup341: pallet_collator_selection::pallet::Error + * Lookup342: pallet_collator_selection::pallet::Error **/ PalletCollatorSelectionError: { _enum: [ @@ -3691,17 +3702,17 @@ export default { ] }, /** - * Lookup345: sp_core::crypto::KeyTypeId + * Lookup346: sp_core::crypto::KeyTypeId **/ SpCoreCryptoKeyTypeId: "[u8;4]", /** - * Lookup346: pallet_session::pallet::Error + * Lookup347: pallet_session::pallet::Error **/ PalletSessionError: { _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] }, /** - * Lookup355: cumulus_pallet_xcmp_queue::OutboundChannelDetails + * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails **/ CumulusPalletXcmpQueueOutboundChannelDetails: { recipient: "u32", @@ -3711,13 +3722,13 @@ export default { lastIndex: "u16" }, /** - * Lookup356: cumulus_pallet_xcmp_queue::OutboundState + * Lookup357: cumulus_pallet_xcmp_queue::OutboundState **/ CumulusPalletXcmpQueueOutboundState: { _enum: ["Ok", "Suspended"] }, /** - * Lookup358: cumulus_pallet_xcmp_queue::QueueConfigData + * Lookup361: cumulus_pallet_xcmp_queue::QueueConfigData **/ CumulusPalletXcmpQueueQueueConfigData: { suspendThreshold: "u32", @@ -3725,13 +3736,19 @@ export default { resumeThreshold: "u32" }, /** - * Lookup359: cumulus_pallet_xcmp_queue::pallet::Error + * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error **/ CumulusPalletXcmpQueueError: { - _enum: ["BadQueueConfig", "AlreadySuspended", "AlreadyResumed"] + _enum: [ + "BadQueueConfig", + "AlreadySuspended", + "AlreadyResumed", + "TooManyActiveOutboundChannels", + "TooBig" + ] }, /** - * Lookup360: pallet_xcm::pallet::QueryStatus + * Lookup363: pallet_xcm::pallet::QueryStatus **/ PalletXcmQueryStatus: { _enum: { @@ -3752,7 +3769,7 @@ export default { } }, /** - * Lookup364: xcm::VersionedResponse + * Lookup367: xcm::VersionedResponse **/ XcmVersionedResponse: { _enum: { @@ -3764,7 +3781,7 @@ export default { } }, /** - * Lookup370: pallet_xcm::pallet::VersionMigrationStage + * Lookup373: pallet_xcm::pallet::VersionMigrationStage **/ PalletXcmVersionMigrationStage: { _enum: { @@ -3775,7 +3792,7 @@ export default { } }, /** - * Lookup373: pallet_xcm::pallet::RemoteLockedFungibleRecord + * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord **/ PalletXcmRemoteLockedFungibleRecord: { amount: "u128", @@ -3784,7 +3801,7 @@ export default { consumers: "Vec<(Null,u128)>" }, /** - * Lookup380: pallet_xcm::pallet::Error + * Lookup383: pallet_xcm::pallet::Error **/ PalletXcmError: { _enum: [ @@ -3816,7 +3833,7 @@ export default { ] }, /** - * Lookup381: pallet_message_queue::BookState + * Lookup384: pallet_message_queue::BookState **/ PalletMessageQueueBookState: { _alias: { @@ -3830,14 +3847,14 @@ export default { size_: "u64" }, /** - * Lookup383: pallet_message_queue::Neighbours + * Lookup386: pallet_message_queue::Neighbours **/ PalletMessageQueueNeighbours: { prev: "CumulusPrimitivesCoreAggregateMessageOrigin", next: "CumulusPrimitivesCoreAggregateMessageOrigin" }, /** - * Lookup385: pallet_message_queue::Page + * Lookup388: pallet_message_queue::Page **/ PalletMessageQueuePage: { remaining: "u32", @@ -3848,7 +3865,7 @@ export default { heap: "Bytes" }, /** - * Lookup387: pallet_message_queue::pallet::Error + * Lookup390: pallet_message_queue::pallet::Error **/ PalletMessageQueueError: { _enum: [ @@ -3864,7 +3881,7 @@ export default { ] }, /** - * Lookup389: pallet_storage_providers::types::StorageProvider + * Lookup392: pallet_storage_providers::types::StorageProvider **/ PalletStorageProvidersStorageProvider: { _enum: { @@ -3873,7 +3890,7 @@ export default { } }, /** - * Lookup390: pallet_storage_providers::types::BackupStorageProvider + * Lookup393: pallet_storage_providers::types::BackupStorageProvider **/ PalletStorageProvidersBackupStorageProvider: { capacity: "u64", @@ -3886,7 +3903,7 @@ export default { reputationWeight: "u32" }, /** - * Lookup391: pallet_storage_providers::types::MainStorageProvider + * Lookup394: pallet_storage_providers::types::MainStorageProvider **/ PalletStorageProvidersMainStorageProvider: { buckets: "Vec", @@ -3899,7 +3916,7 @@ export default { paymentAccount: "AccountId32" }, /** - * Lookup393: pallet_storage_providers::types::Bucket + * Lookup396: pallet_storage_providers::types::Bucket **/ PalletStorageProvidersBucket: { _alias: { @@ -3913,7 +3930,7 @@ export default { size_: "u64" }, /** - * Lookup396: pallet_storage_providers::pallet::Error + * Lookup399: pallet_storage_providers::pallet::Error **/ PalletStorageProvidersError: { _enum: [ @@ -3947,7 +3964,7 @@ export default { ] }, /** - * Lookup397: pallet_file_system::types::StorageRequestMetadata + * Lookup400: pallet_file_system::types::StorageRequestMetadata **/ PalletFileSystemStorageRequestMetadata: { _alias: { @@ -3967,19 +3984,19 @@ export default { bspsVolunteered: "u32" }, /** - * Lookup402: pallet_file_system::types::StorageRequestBspsMetadata + * Lookup405: pallet_file_system::types::StorageRequestBspsMetadata **/ PalletFileSystemStorageRequestBspsMetadata: { confirmed: "bool" }, /** - * Lookup411: pallet_file_system::types::MoveBucketRequestMetadata + * Lookup414: pallet_file_system::types::MoveBucketRequestMetadata **/ PalletFileSystemMoveBucketRequestMetadata: { requester: "AccountId32" }, /** - * Lookup412: pallet_file_system::pallet::Error + * Lookup415: pallet_file_system::pallet::Error **/ PalletFileSystemError: { _enum: [ @@ -4043,7 +4060,7 @@ export default { ] }, /** - * Lookup419: pallet_proofs_dealer::pallet::Error + * Lookup422: pallet_proofs_dealer::pallet::Error **/ PalletProofsDealerError: { _enum: [ @@ -4072,7 +4089,7 @@ export default { ] }, /** - * Lookup422: pallet_payment_streams::types::FixedRatePaymentStream + * Lookup425: pallet_payment_streams::types::FixedRatePaymentStream **/ PalletPaymentStreamsFixedRatePaymentStream: { rate: "u128", @@ -4081,7 +4098,7 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup423: pallet_payment_streams::types::DynamicRatePaymentStream + * Lookup426: pallet_payment_streams::types::DynamicRatePaymentStream **/ PalletPaymentStreamsDynamicRatePaymentStream: { amountProvided: "u64", @@ -4090,14 +4107,14 @@ export default { outOfFundsTick: "Option" }, /** - * Lookup424: pallet_payment_streams::types::ProviderLastChargeableInfo + * Lookup427: pallet_payment_streams::types::ProviderLastChargeableInfo **/ PalletPaymentStreamsProviderLastChargeableInfo: { lastChargeableTick: "u32", priceIndex: "u128" }, /** - * Lookup425: pallet_payment_streams::pallet::Error + * Lookup428: pallet_payment_streams::pallet::Error **/ PalletPaymentStreamsError: { _enum: [ @@ -4120,7 +4137,7 @@ export default { ] }, /** - * Lookup426: pallet_bucket_nfts::pallet::Error + * Lookup429: pallet_bucket_nfts::pallet::Error **/ PalletBucketNftsError: { _enum: [ @@ -4131,7 +4148,7 @@ export default { ] }, /** - * Lookup427: pallet_nfts::types::CollectionDetails + * Lookup430: pallet_nfts::types::CollectionDetails **/ PalletNftsCollectionDetails: { owner: "AccountId32", @@ -4142,13 +4159,13 @@ export default { attributes: "u32" }, /** - * Lookup432: pallet_nfts::types::CollectionRole + * Lookup435: pallet_nfts::types::CollectionRole **/ PalletNftsCollectionRole: { _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] }, /** - * Lookup433: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + * Lookup436: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> **/ PalletNftsItemDetails: { owner: "AccountId32", @@ -4156,42 +4173,42 @@ export default { deposit: "PalletNftsItemDeposit" }, /** - * Lookup434: pallet_nfts::types::ItemDeposit + * Lookup437: pallet_nfts::types::ItemDeposit **/ PalletNftsItemDeposit: { account: "AccountId32", amount: "u128" }, /** - * Lookup439: pallet_nfts::types::CollectionMetadata + * Lookup442: pallet_nfts::types::CollectionMetadata **/ PalletNftsCollectionMetadata: { deposit: "u128", data: "Bytes" }, /** - * Lookup440: pallet_nfts::types::ItemMetadata, StringLimit> + * Lookup443: pallet_nfts::types::ItemMetadata, StringLimit> **/ PalletNftsItemMetadata: { deposit: "PalletNftsItemMetadataDeposit", data: "Bytes" }, /** - * Lookup441: pallet_nfts::types::ItemMetadataDeposit + * Lookup444: pallet_nfts::types::ItemMetadataDeposit **/ PalletNftsItemMetadataDeposit: { account: "Option", amount: "u128" }, /** - * Lookup444: pallet_nfts::types::AttributeDeposit + * Lookup447: pallet_nfts::types::AttributeDeposit **/ PalletNftsAttributeDeposit: { account: "Option", amount: "u128" }, /** - * Lookup448: pallet_nfts::types::PendingSwap, Deadline> + * Lookup451: pallet_nfts::types::PendingSwap, Deadline> **/ PalletNftsPendingSwap: { desiredCollection: "u32", @@ -4200,7 +4217,7 @@ export default { deadline: "u32" }, /** - * Lookup450: pallet_nfts::types::PalletFeature + * Lookup453: pallet_nfts::types::PalletFeature **/ PalletNftsPalletFeature: { _enum: [ @@ -4216,7 +4233,7 @@ export default { ] }, /** - * Lookup451: pallet_nfts::pallet::Error + * Lookup454: pallet_nfts::pallet::Error **/ PalletNftsError: { _enum: [ @@ -4268,51 +4285,51 @@ export default { ] }, /** - * Lookup454: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + * Lookup457: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender **/ FrameSystemExtensionsCheckNonZeroSender: "Null", /** - * Lookup455: frame_system::extensions::check_spec_version::CheckSpecVersion + * Lookup458: frame_system::extensions::check_spec_version::CheckSpecVersion **/ FrameSystemExtensionsCheckSpecVersion: "Null", /** - * Lookup456: frame_system::extensions::check_tx_version::CheckTxVersion + * Lookup459: frame_system::extensions::check_tx_version::CheckTxVersion **/ FrameSystemExtensionsCheckTxVersion: "Null", /** - * Lookup457: frame_system::extensions::check_genesis::CheckGenesis + * Lookup460: frame_system::extensions::check_genesis::CheckGenesis **/ FrameSystemExtensionsCheckGenesis: "Null", /** - * Lookup460: frame_system::extensions::check_nonce::CheckNonce + * Lookup463: frame_system::extensions::check_nonce::CheckNonce **/ FrameSystemExtensionsCheckNonce: "Compact", /** - * Lookup461: frame_system::extensions::check_weight::CheckWeight + * Lookup464: frame_system::extensions::check_weight::CheckWeight **/ FrameSystemExtensionsCheckWeight: "Null", /** - * Lookup462: pallet_transaction_payment::ChargeTransactionPayment + * Lookup465: pallet_transaction_payment::ChargeTransactionPayment **/ PalletTransactionPaymentChargeTransactionPayment: "Compact", /** - * Lookup463: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + * Lookup466: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim **/ CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", /** - * Lookup464: frame_metadata_hash_extension::CheckMetadataHash + * Lookup467: frame_metadata_hash_extension::CheckMetadataHash **/ FrameMetadataHashExtensionCheckMetadataHash: { mode: "FrameMetadataHashExtensionMode" }, /** - * Lookup465: frame_metadata_hash_extension::Mode + * Lookup468: frame_metadata_hash_extension::Mode **/ FrameMetadataHashExtensionMode: { _enum: ["Disabled", "Enabled"] }, /** - * Lookup466: storage_hub_runtime::Runtime + * Lookup469: storage_hub_runtime::Runtime **/ StorageHubRuntimeRuntime: "Null" }; diff --git a/api-augment/src/interfaces/registry.ts b/api-augment/src/interfaces/registry.ts index c130e1175..20c24d40a 100644 --- a/api-augment/src/interfaces/registry.ts +++ b/api-augment/src/interfaces/registry.ts @@ -239,6 +239,7 @@ import type { XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, + XcmV3OriginKind, XcmV3PalletInfo, XcmV3QueryResponseInfo, XcmV3Response, @@ -487,6 +488,7 @@ declare module "@polkadot/types/types/registry" { XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; XcmV3PalletInfo: XcmV3PalletInfo; XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; XcmV3Response: XcmV3Response; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index 88f5ce329..a13346b0c 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -977,7 +977,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly isTransact: boolean; readonly asTransact: { - readonly originKind: XcmV2OriginKind; + readonly originKind: XcmV3OriginKind; readonly requireWeightAtMost: SpWeightsWeightV2Weight; readonly call: XcmDoubleEncoded; } & Struct; @@ -1258,8 +1258,8 @@ declare module "@polkadot/types/lookup" { readonly type: "Success" | "Error" | "TruncatedError"; } - /** @name XcmV2OriginKind (86) */ - interface XcmV2OriginKind extends Enum { + /** @name XcmV3OriginKind (86) */ + interface XcmV3OriginKind extends Enum { readonly isNative: boolean; readonly isSovereignAccount: boolean; readonly isSuperuser: boolean; @@ -1785,7 +1785,14 @@ declare module "@polkadot/types/lookup" { readonly isOverweight: boolean; readonly asOverweight: SpWeightsWeightV2Weight; readonly isYield: boolean; - readonly type: "BadFormat" | "Corrupt" | "Unsupported" | "Overweight" | "Yield"; + readonly isStackLimitReached: boolean; + readonly type: + | "BadFormat" + | "Corrupt" + | "Unsupported" + | "Overweight" + | "Yield" + | "StackLimitReached"; } /** @name PalletStorageProvidersEvent (124) */ @@ -2993,6 +3000,11 @@ declare module "@polkadot/types/lookup" { readonly direction: PalletBalancesAdjustmentDirection; readonly delta: Compact; } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly value: Compact; + readonly keepAlive: bool; + } & Struct; readonly type: | "TransferAllowDeath" | "ForceTransfer" @@ -3001,7 +3013,8 @@ declare module "@polkadot/types/lookup" { | "ForceUnreserve" | "UpgradeAccounts" | "ForceSetBalance" - | "ForceAdjustTotalIssuance"; + | "ForceAdjustTotalIssuance" + | "Burn"; } /** @name PalletBalancesAdjustmentDirection (250) */ @@ -3495,7 +3508,16 @@ declare module "@polkadot/types/lookup" { | "WeightNotComputable"; } - /** @name XcmV2MultiassetMultiAssetFilter (269) */ + /** @name XcmV2OriginKind (269) */ + interface XcmV2OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; + } + + /** @name XcmV2MultiassetMultiAssetFilter (270) */ interface XcmV2MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV2MultiassetMultiAssets; @@ -3504,7 +3526,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV2MultiassetWildMultiAsset (270) */ + /** @name XcmV2MultiassetWildMultiAsset (271) */ interface XcmV2MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3515,14 +3537,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf"; } - /** @name XcmV2MultiassetWildFungibility (271) */ + /** @name XcmV2MultiassetWildFungibility (272) */ interface XcmV2MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name XcmV2WeightLimit (272) */ + /** @name XcmV2WeightLimit (273) */ interface XcmV2WeightLimit extends Enum { readonly isUnlimited: boolean; readonly isLimited: boolean; @@ -3530,10 +3552,10 @@ declare module "@polkadot/types/lookup" { readonly type: "Unlimited" | "Limited"; } - /** @name XcmV3Xcm (273) */ + /** @name XcmV3Xcm (274) */ interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (275) */ + /** @name XcmV3Instruction (276) */ interface XcmV3Instruction extends Enum { readonly isWithdrawAsset: boolean; readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; @@ -3561,7 +3583,7 @@ declare module "@polkadot/types/lookup" { } & Struct; readonly isTransact: boolean; readonly asTransact: { - readonly originKind: XcmV2OriginKind; + readonly originKind: XcmV3OriginKind; readonly requireWeightAtMost: SpWeightsWeightV2Weight; readonly call: XcmDoubleEncoded; } & Struct; @@ -3763,7 +3785,7 @@ declare module "@polkadot/types/lookup" { | "UnpaidExecution"; } - /** @name XcmV3Response (276) */ + /** @name XcmV3Response (277) */ interface XcmV3Response extends Enum { readonly isNull: boolean; readonly isAssets: boolean; @@ -3785,7 +3807,7 @@ declare module "@polkadot/types/lookup" { | "DispatchResult"; } - /** @name XcmV3PalletInfo (278) */ + /** @name XcmV3PalletInfo (279) */ interface XcmV3PalletInfo extends Struct { readonly index: Compact; readonly name: Bytes; @@ -3795,14 +3817,14 @@ declare module "@polkadot/types/lookup" { readonly patch: Compact; } - /** @name XcmV3QueryResponseInfo (282) */ + /** @name XcmV3QueryResponseInfo (283) */ interface XcmV3QueryResponseInfo extends Struct { readonly destination: StagingXcmV3MultiLocation; readonly queryId: Compact; readonly maxWeight: SpWeightsWeightV2Weight; } - /** @name XcmV3MultiassetMultiAssetFilter (283) */ + /** @name XcmV3MultiassetMultiAssetFilter (284) */ interface XcmV3MultiassetMultiAssetFilter extends Enum { readonly isDefinite: boolean; readonly asDefinite: XcmV3MultiassetMultiAssets; @@ -3811,7 +3833,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Definite" | "Wild"; } - /** @name XcmV3MultiassetWildMultiAsset (284) */ + /** @name XcmV3MultiassetWildMultiAsset (285) */ interface XcmV3MultiassetWildMultiAsset extends Enum { readonly isAll: boolean; readonly isAllOf: boolean; @@ -3830,14 +3852,14 @@ declare module "@polkadot/types/lookup" { readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; } - /** @name XcmV3MultiassetWildFungibility (285) */ + /** @name XcmV3MultiassetWildFungibility (286) */ interface XcmV3MultiassetWildFungibility extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; readonly type: "Fungible" | "NonFungible"; } - /** @name StagingXcmExecutorAssetTransferTransferType (297) */ + /** @name StagingXcmExecutorAssetTransferTransferType (298) */ interface StagingXcmExecutorAssetTransferTransferType extends Enum { readonly isTeleport: boolean; readonly isLocalReserve: boolean; @@ -3847,7 +3869,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; } - /** @name XcmVersionedAssetId (298) */ + /** @name XcmVersionedAssetId (299) */ interface XcmVersionedAssetId extends Enum { readonly isV3: boolean; readonly asV3: XcmV3MultiassetAssetId; @@ -3856,10 +3878,10 @@ declare module "@polkadot/types/lookup" { readonly type: "V3" | "V4"; } - /** @name CumulusPalletXcmCall (299) */ + /** @name CumulusPalletXcmCall (300) */ type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (300) */ + /** @name PalletMessageQueueCall (301) */ interface PalletMessageQueueCall extends Enum { readonly isReapPage: boolean; readonly asReapPage: { @@ -3876,7 +3898,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ReapPage" | "ExecuteOverweight"; } - /** @name PalletStorageProvidersCall (301) */ + /** @name PalletStorageProvidersCall (302) */ interface PalletStorageProvidersCall extends Enum { readonly isRequestMspSignUp: boolean; readonly asRequestMspSignUp: { @@ -3942,7 +3964,7 @@ declare module "@polkadot/types/lookup" { | "Slash"; } - /** @name PalletFileSystemCall (302) */ + /** @name PalletFileSystemCall (303) */ interface PalletFileSystemCall extends Enum { readonly isCreateBucket: boolean; readonly asCreateBucket: { @@ -4068,14 +4090,14 @@ declare module "@polkadot/types/lookup" { | "SetGlobalParameters"; } - /** @name PalletFileSystemBucketMoveRequestResponse (303) */ + /** @name PalletFileSystemBucketMoveRequestResponse (304) */ interface PalletFileSystemBucketMoveRequestResponse extends Enum { readonly isAccepted: boolean; readonly isRejected: boolean; readonly type: "Accepted" | "Rejected"; } - /** @name PalletProofsDealerCall (308) */ + /** @name PalletProofsDealerCall (309) */ interface PalletProofsDealerCall extends Enum { readonly isChallenge: boolean; readonly asChallenge: { @@ -4097,13 +4119,13 @@ declare module "@polkadot/types/lookup" { readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; } - /** @name PalletRandomnessCall (309) */ + /** @name PalletRandomnessCall (310) */ interface PalletRandomnessCall extends Enum { readonly isSetBabeRandomness: boolean; readonly type: "SetBabeRandomness"; } - /** @name PalletPaymentStreamsCall (310) */ + /** @name PalletPaymentStreamsCall (311) */ interface PalletPaymentStreamsCall extends Enum { readonly isCreateFixedRatePaymentStream: boolean; readonly asCreateFixedRatePaymentStream: { @@ -4157,7 +4179,7 @@ declare module "@polkadot/types/lookup" { | "ClearInsolventFlag"; } - /** @name PalletBucketNftsCall (311) */ + /** @name PalletBucketNftsCall (312) */ interface PalletBucketNftsCall extends Enum { readonly isShareAccess: boolean; readonly asShareAccess: { @@ -4175,7 +4197,7 @@ declare module "@polkadot/types/lookup" { readonly type: "ShareAccess" | "UpdateReadAccess"; } - /** @name PalletNftsCall (313) */ + /** @name PalletNftsCall (314) */ interface PalletNftsCall extends Enum { readonly isCreate: boolean; readonly asCreate: { @@ -4448,14 +4470,14 @@ declare module "@polkadot/types/lookup" { | "SetAttributesPreSigned"; } - /** @name PalletNftsCollectionConfig (314) */ + /** @name PalletNftsCollectionConfig (315) */ interface PalletNftsCollectionConfig extends Struct { readonly settings: u64; readonly maxSupply: Option; readonly mintSettings: PalletNftsMintSettings; } - /** @name PalletNftsCollectionSetting (316) */ + /** @name PalletNftsCollectionSetting (317) */ interface PalletNftsCollectionSetting extends Enum { readonly isTransferableItems: boolean; readonly isUnlockedMetadata: boolean; @@ -4470,7 +4492,7 @@ declare module "@polkadot/types/lookup" { | "DepositRequired"; } - /** @name PalletNftsMintSettings (317) */ + /** @name PalletNftsMintSettings (318) */ interface PalletNftsMintSettings extends Struct { readonly mintType: PalletNftsMintType; readonly price: Option; @@ -4479,7 +4501,7 @@ declare module "@polkadot/types/lookup" { readonly defaultItemSettings: u64; } - /** @name PalletNftsMintType (318) */ + /** @name PalletNftsMintType (319) */ interface PalletNftsMintType extends Enum { readonly isIssuer: boolean; readonly isPublic: boolean; @@ -4488,7 +4510,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Public" | "HolderOf"; } - /** @name PalletNftsItemSetting (321) */ + /** @name PalletNftsItemSetting (322) */ interface PalletNftsItemSetting extends Enum { readonly isTransferable: boolean; readonly isUnlockedMetadata: boolean; @@ -4496,30 +4518,30 @@ declare module "@polkadot/types/lookup" { readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; } - /** @name PalletNftsDestroyWitness (322) */ + /** @name PalletNftsDestroyWitness (323) */ interface PalletNftsDestroyWitness extends Struct { readonly itemMetadatas: Compact; readonly itemConfigs: Compact; readonly attributes: Compact; } - /** @name PalletNftsMintWitness (324) */ + /** @name PalletNftsMintWitness (325) */ interface PalletNftsMintWitness extends Struct { readonly ownedItem: Option; readonly mintPrice: Option; } - /** @name PalletNftsItemConfig (325) */ + /** @name PalletNftsItemConfig (326) */ interface PalletNftsItemConfig extends Struct { readonly settings: u64; } - /** @name PalletNftsCancelAttributesApprovalWitness (327) */ + /** @name PalletNftsCancelAttributesApprovalWitness (328) */ interface PalletNftsCancelAttributesApprovalWitness extends Struct { readonly accountAttributes: u32; } - /** @name PalletNftsItemTip (329) */ + /** @name PalletNftsItemTip (330) */ interface PalletNftsItemTip extends Struct { readonly collection: u32; readonly item: u32; @@ -4527,7 +4549,7 @@ declare module "@polkadot/types/lookup" { readonly amount: u128; } - /** @name PalletNftsPreSignedMint (331) */ + /** @name PalletNftsPreSignedMint (332) */ interface PalletNftsPreSignedMint extends Struct { readonly collection: u32; readonly item: u32; @@ -4538,7 +4560,7 @@ declare module "@polkadot/types/lookup" { readonly mintPrice: Option; } - /** @name SpRuntimeMultiSignature (332) */ + /** @name SpRuntimeMultiSignature (333) */ interface SpRuntimeMultiSignature extends Enum { readonly isEd25519: boolean; readonly asEd25519: U8aFixed; @@ -4549,7 +4571,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; } - /** @name PalletNftsPreSignedAttributes (335) */ + /** @name PalletNftsPreSignedAttributes (336) */ interface PalletNftsPreSignedAttributes extends Struct { readonly collection: u32; readonly item: u32; @@ -4558,19 +4580,19 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletSudoError (336) */ + /** @name PalletSudoError (337) */ interface PalletSudoError extends Enum { readonly isRequireSudo: boolean; readonly type: "RequireSudo"; } - /** @name PalletCollatorSelectionCandidateInfo (339) */ + /** @name PalletCollatorSelectionCandidateInfo (340) */ interface PalletCollatorSelectionCandidateInfo extends Struct { readonly who: AccountId32; readonly deposit: u128; } - /** @name PalletCollatorSelectionError (341) */ + /** @name PalletCollatorSelectionError (342) */ interface PalletCollatorSelectionError extends Enum { readonly isTooManyCandidates: boolean; readonly isTooFewEligibleCollators: boolean; @@ -4609,10 +4631,10 @@ declare module "@polkadot/types/lookup" { | "InvalidUnreserve"; } - /** @name SpCoreCryptoKeyTypeId (345) */ + /** @name SpCoreCryptoKeyTypeId (346) */ interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (346) */ + /** @name PalletSessionError (347) */ interface PalletSessionError extends Enum { readonly isInvalidProof: boolean; readonly isNoAssociatedValidatorId: boolean; @@ -4627,7 +4649,7 @@ declare module "@polkadot/types/lookup" { | "NoAccount"; } - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (355) */ + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { readonly recipient: u32; readonly state: CumulusPalletXcmpQueueOutboundState; @@ -4636,29 +4658,36 @@ declare module "@polkadot/types/lookup" { readonly lastIndex: u16; } - /** @name CumulusPalletXcmpQueueOutboundState (356) */ + /** @name CumulusPalletXcmpQueueOutboundState (357) */ interface CumulusPalletXcmpQueueOutboundState extends Enum { readonly isOk: boolean; readonly isSuspended: boolean; readonly type: "Ok" | "Suspended"; } - /** @name CumulusPalletXcmpQueueQueueConfigData (358) */ + /** @name CumulusPalletXcmpQueueQueueConfigData (361) */ interface CumulusPalletXcmpQueueQueueConfigData extends Struct { readonly suspendThreshold: u32; readonly dropThreshold: u32; readonly resumeThreshold: u32; } - /** @name CumulusPalletXcmpQueueError (359) */ + /** @name CumulusPalletXcmpQueueError (362) */ interface CumulusPalletXcmpQueueError extends Enum { readonly isBadQueueConfig: boolean; readonly isAlreadySuspended: boolean; readonly isAlreadyResumed: boolean; - readonly type: "BadQueueConfig" | "AlreadySuspended" | "AlreadyResumed"; + readonly isTooManyActiveOutboundChannels: boolean; + readonly isTooBig: boolean; + readonly type: + | "BadQueueConfig" + | "AlreadySuspended" + | "AlreadyResumed" + | "TooManyActiveOutboundChannels" + | "TooBig"; } - /** @name PalletXcmQueryStatus (360) */ + /** @name PalletXcmQueryStatus (363) */ interface PalletXcmQueryStatus extends Enum { readonly isPending: boolean; readonly asPending: { @@ -4680,7 +4709,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Pending" | "VersionNotifier" | "Ready"; } - /** @name XcmVersionedResponse (364) */ + /** @name XcmVersionedResponse (367) */ interface XcmVersionedResponse extends Enum { readonly isV2: boolean; readonly asV2: XcmV2Response; @@ -4691,7 +4720,7 @@ declare module "@polkadot/types/lookup" { readonly type: "V2" | "V3" | "V4"; } - /** @name PalletXcmVersionMigrationStage (370) */ + /** @name PalletXcmVersionMigrationStage (373) */ interface PalletXcmVersionMigrationStage extends Enum { readonly isMigrateSupportedVersion: boolean; readonly isMigrateVersionNotifiers: boolean; @@ -4705,7 +4734,7 @@ declare module "@polkadot/types/lookup" { | "MigrateAndNotifyOldTargets"; } - /** @name PalletXcmRemoteLockedFungibleRecord (373) */ + /** @name PalletXcmRemoteLockedFungibleRecord (376) */ interface PalletXcmRemoteLockedFungibleRecord extends Struct { readonly amount: u128; readonly owner: XcmVersionedLocation; @@ -4713,7 +4742,7 @@ declare module "@polkadot/types/lookup" { readonly consumers: Vec>; } - /** @name PalletXcmError (380) */ + /** @name PalletXcmError (383) */ interface PalletXcmError extends Enum { readonly isUnreachable: boolean; readonly isSendFailure: boolean; @@ -4766,7 +4795,7 @@ declare module "@polkadot/types/lookup" { | "LocalExecutionIncomplete"; } - /** @name PalletMessageQueueBookState (381) */ + /** @name PalletMessageQueueBookState (384) */ interface PalletMessageQueueBookState extends Struct { readonly begin: u32; readonly end: u32; @@ -4776,13 +4805,13 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletMessageQueueNeighbours (383) */ + /** @name PalletMessageQueueNeighbours (386) */ interface PalletMessageQueueNeighbours extends Struct { readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; } - /** @name PalletMessageQueuePage (385) */ + /** @name PalletMessageQueuePage (388) */ interface PalletMessageQueuePage extends Struct { readonly remaining: u32; readonly remainingSize: u32; @@ -4792,7 +4821,7 @@ declare module "@polkadot/types/lookup" { readonly heap: Bytes; } - /** @name PalletMessageQueueError (387) */ + /** @name PalletMessageQueueError (390) */ interface PalletMessageQueueError extends Enum { readonly isNotReapable: boolean; readonly isNoPage: boolean; @@ -4815,7 +4844,7 @@ declare module "@polkadot/types/lookup" { | "RecursiveDisallowed"; } - /** @name PalletStorageProvidersStorageProvider (389) */ + /** @name PalletStorageProvidersStorageProvider (392) */ interface PalletStorageProvidersStorageProvider extends Enum { readonly isBackupStorageProvider: boolean; readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; @@ -4824,7 +4853,7 @@ declare module "@polkadot/types/lookup" { readonly type: "BackupStorageProvider" | "MainStorageProvider"; } - /** @name PalletStorageProvidersBackupStorageProvider (390) */ + /** @name PalletStorageProvidersBackupStorageProvider (393) */ interface PalletStorageProvidersBackupStorageProvider extends Struct { readonly capacity: u64; readonly capacityUsed: u64; @@ -4836,7 +4865,7 @@ declare module "@polkadot/types/lookup" { readonly reputationWeight: u32; } - /** @name PalletStorageProvidersMainStorageProvider (391) */ + /** @name PalletStorageProvidersMainStorageProvider (394) */ interface PalletStorageProvidersMainStorageProvider extends Struct { readonly buckets: Vec; readonly capacity: u64; @@ -4848,7 +4877,7 @@ declare module "@polkadot/types/lookup" { readonly paymentAccount: AccountId32; } - /** @name PalletStorageProvidersBucket (393) */ + /** @name PalletStorageProvidersBucket (396) */ interface PalletStorageProvidersBucket extends Struct { readonly root: H256; readonly userId: AccountId32; @@ -4858,7 +4887,7 @@ declare module "@polkadot/types/lookup" { readonly size_: u64; } - /** @name PalletStorageProvidersError (396) */ + /** @name PalletStorageProvidersError (399) */ interface PalletStorageProvidersError extends Enum { readonly isAlreadyRegistered: boolean; readonly isSignUpNotRequested: boolean; @@ -4917,7 +4946,7 @@ declare module "@polkadot/types/lookup" { | "PaymentStreamNotFound"; } - /** @name PalletFileSystemStorageRequestMetadata (397) */ + /** @name PalletFileSystemStorageRequestMetadata (400) */ interface PalletFileSystemStorageRequestMetadata extends Struct { readonly requestedAt: u32; readonly owner: AccountId32; @@ -4933,17 +4962,17 @@ declare module "@polkadot/types/lookup" { readonly bspsVolunteered: u32; } - /** @name PalletFileSystemStorageRequestBspsMetadata (402) */ + /** @name PalletFileSystemStorageRequestBspsMetadata (405) */ interface PalletFileSystemStorageRequestBspsMetadata extends Struct { readonly confirmed: bool; } - /** @name PalletFileSystemMoveBucketRequestMetadata (411) */ + /** @name PalletFileSystemMoveBucketRequestMetadata (414) */ interface PalletFileSystemMoveBucketRequestMetadata extends Struct { readonly requester: AccountId32; } - /** @name PalletFileSystemError (412) */ + /** @name PalletFileSystemError (415) */ interface PalletFileSystemError extends Enum { readonly isStorageRequestAlreadyRegistered: boolean; readonly isStorageRequestNotFound: boolean; @@ -5062,7 +5091,7 @@ declare module "@polkadot/types/lookup" { | "FileMetadataProcessingQueueFull"; } - /** @name PalletProofsDealerError (419) */ + /** @name PalletProofsDealerError (422) */ interface PalletProofsDealerError extends Enum { readonly isNotProvider: boolean; readonly isChallengesQueueOverflow: boolean; @@ -5111,7 +5140,7 @@ declare module "@polkadot/types/lookup" { | "TooManyValidProofSubmitters"; } - /** @name PalletPaymentStreamsFixedRatePaymentStream (422) */ + /** @name PalletPaymentStreamsFixedRatePaymentStream (425) */ interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { readonly rate: u128; readonly lastChargedTick: u32; @@ -5119,7 +5148,7 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (423) */ + /** @name PalletPaymentStreamsDynamicRatePaymentStream (426) */ interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { readonly amountProvided: u64; readonly priceIndexWhenLastCharged: u128; @@ -5127,13 +5156,13 @@ declare module "@polkadot/types/lookup" { readonly outOfFundsTick: Option; } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (424) */ + /** @name PalletPaymentStreamsProviderLastChargeableInfo (427) */ interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { readonly lastChargeableTick: u32; readonly priceIndex: u128; } - /** @name PalletPaymentStreamsError (425) */ + /** @name PalletPaymentStreamsError (428) */ interface PalletPaymentStreamsError extends Enum { readonly isPaymentStreamAlreadyExists: boolean; readonly isPaymentStreamNotFound: boolean; @@ -5170,7 +5199,7 @@ declare module "@polkadot/types/lookup" { | "CooldownPeriodNotPassed"; } - /** @name PalletBucketNftsError (426) */ + /** @name PalletBucketNftsError (429) */ interface PalletBucketNftsError extends Enum { readonly isBucketIsNotPrivate: boolean; readonly isNotBucketOwner: boolean; @@ -5183,7 +5212,7 @@ declare module "@polkadot/types/lookup" { | "ConvertBytesToBoundedVec"; } - /** @name PalletNftsCollectionDetails (427) */ + /** @name PalletNftsCollectionDetails (430) */ interface PalletNftsCollectionDetails extends Struct { readonly owner: AccountId32; readonly ownerDeposit: u128; @@ -5193,7 +5222,7 @@ declare module "@polkadot/types/lookup" { readonly attributes: u32; } - /** @name PalletNftsCollectionRole (432) */ + /** @name PalletNftsCollectionRole (435) */ interface PalletNftsCollectionRole extends Enum { readonly isIssuer: boolean; readonly isFreezer: boolean; @@ -5201,44 +5230,44 @@ declare module "@polkadot/types/lookup" { readonly type: "Issuer" | "Freezer" | "Admin"; } - /** @name PalletNftsItemDetails (433) */ + /** @name PalletNftsItemDetails (436) */ interface PalletNftsItemDetails extends Struct { readonly owner: AccountId32; readonly approvals: BTreeMap>; readonly deposit: PalletNftsItemDeposit; } - /** @name PalletNftsItemDeposit (434) */ + /** @name PalletNftsItemDeposit (437) */ interface PalletNftsItemDeposit extends Struct { readonly account: AccountId32; readonly amount: u128; } - /** @name PalletNftsCollectionMetadata (439) */ + /** @name PalletNftsCollectionMetadata (442) */ interface PalletNftsCollectionMetadata extends Struct { readonly deposit: u128; readonly data: Bytes; } - /** @name PalletNftsItemMetadata (440) */ + /** @name PalletNftsItemMetadata (443) */ interface PalletNftsItemMetadata extends Struct { readonly deposit: PalletNftsItemMetadataDeposit; readonly data: Bytes; } - /** @name PalletNftsItemMetadataDeposit (441) */ + /** @name PalletNftsItemMetadataDeposit (444) */ interface PalletNftsItemMetadataDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsAttributeDeposit (444) */ + /** @name PalletNftsAttributeDeposit (447) */ interface PalletNftsAttributeDeposit extends Struct { readonly account: Option; readonly amount: u128; } - /** @name PalletNftsPendingSwap (448) */ + /** @name PalletNftsPendingSwap (451) */ interface PalletNftsPendingSwap extends Struct { readonly desiredCollection: u32; readonly desiredItem: Option; @@ -5246,7 +5275,7 @@ declare module "@polkadot/types/lookup" { readonly deadline: u32; } - /** @name PalletNftsPalletFeature (450) */ + /** @name PalletNftsPalletFeature (453) */ interface PalletNftsPalletFeature extends Enum { readonly isTrading: boolean; readonly isAttributes: boolean; @@ -5255,7 +5284,7 @@ declare module "@polkadot/types/lookup" { readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; } - /** @name PalletNftsError (451) */ + /** @name PalletNftsError (454) */ interface PalletNftsError extends Enum { readonly isNoPermission: boolean; readonly isUnknownCollection: boolean; @@ -5350,42 +5379,42 @@ declare module "@polkadot/types/lookup" { | "WitnessRequired"; } - /** @name FrameSystemExtensionsCheckNonZeroSender (454) */ + /** @name FrameSystemExtensionsCheckNonZeroSender (457) */ type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (455) */ + /** @name FrameSystemExtensionsCheckSpecVersion (458) */ type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (456) */ + /** @name FrameSystemExtensionsCheckTxVersion (459) */ type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (457) */ + /** @name FrameSystemExtensionsCheckGenesis (460) */ type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (460) */ + /** @name FrameSystemExtensionsCheckNonce (463) */ interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (461) */ + /** @name FrameSystemExtensionsCheckWeight (464) */ type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (462) */ + /** @name PalletTransactionPaymentChargeTransactionPayment (465) */ interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (463) */ + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (466) */ type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - /** @name FrameMetadataHashExtensionCheckMetadataHash (464) */ + /** @name FrameMetadataHashExtensionCheckMetadataHash (467) */ interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { readonly mode: FrameMetadataHashExtensionMode; } - /** @name FrameMetadataHashExtensionMode (465) */ + /** @name FrameMetadataHashExtensionMode (468) */ interface FrameMetadataHashExtensionMode extends Enum { readonly isDisabled: boolean; readonly isEnabled: boolean; readonly type: "Disabled" | "Enabled"; } - /** @name StorageHubRuntimeRuntime (466) */ + /** @name StorageHubRuntimeRuntime (469) */ type StorageHubRuntimeRuntime = Null; } // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index b1e7a1d36..ac99a7d70 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1 +1 @@ -{"jsonrpc":"2.0","result":"0x6d6574610e4d07000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400ad0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400b10401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b50401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400b90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400d10401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400d90401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400dd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e50401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765790401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065a5040144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964a9040154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065a5040144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737415040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900003504100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003904013857696c644d756c74694173736574000100003904100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e3d04013c57696c6446756e676962696c697479000100003d04100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000041040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000045040c0c78636d0876330c58636d041043616c6c00000400490401585665633c496e737472756374696f6e3c43616c6c3e3e000049040000024d04004d040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004504012458636d3c43616c6c3e0015002c536574417070656e64697804004504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000051040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040055040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400610401185665633c543e000059040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d655d040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c75333200005d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006104000002590400650404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000069040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006d04100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007104013857696c644d756c74694173736574000100007104100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7504013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007504100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304008d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009904015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c89040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473350401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665350401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473350401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473350401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473350401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744104012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00008d040c0c78636d0876330c58636d041043616c6c00000400910401585665633c496e737472756374696f6e3c43616c6c3e3e0000910400000295040095040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736551040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572650401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400690401445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736d0401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e000e003445786368616e676541737365740c0110676976656d0401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736d0401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736d0401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0001186173736574736d0401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008d04012458636d3c43616c6c3e0015002c536574417070656e64697804008d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400650401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f690401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400690401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4504011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e650401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000099040c2c73746167696e675f78636d0876340c58636d041043616c6c000004009d0401585665633c496e737472756374696f6e3c43616c6c3e3e00009d04000002a10400a1040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8904014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009904012458636d3c43616c6c3e0015002c536574417070656e64697804009904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a504105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e00030000a904080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000ad040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574b9040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365bd0401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673c104013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66cd0401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000c1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c504045300000400c90401185665633c543e0000c5040000040834390200c904000002c50400cd0404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000d1040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574dd040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e10401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e10401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee10404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e5040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e9040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967e9040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730905013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f646174610d0501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967150501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773ed040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967e9040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573731d05017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f5040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365fd04015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572190501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970732105019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f646174612d050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726531050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174613d05016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726531050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773ed040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f50401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000ed040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401f104000400300144436f6c6c656374696f6e53657474696e670000f1040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f5040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065f90401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365fd0401344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773010501304974656d53657474696e67730000f9040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000fd0404184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000001050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401050500040030012c4974656d53657474696e67000005050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000009050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c75333200000d0504184f7074696f6e0404540111050108104e6f6e6500000010536f6d6504001105000001000011050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f7072696365fd04013c4f7074696f6e3c42616c616e63653e000015050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773010501304974656d53657474696e67730000190504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e10300000100001d050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000021050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012505045300000400290501185665633c543e000025050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e74000029050000022505002d050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365fd04013c4f7074696f6e3c42616c616e63653e00003105082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040035050148656432353531393a3a5369676e61747572650000001c53723235353139040035050148737232353531393a3a5369676e617475726500010014456364736104003905014065636473613a3a5369676e617475726500020000350500000340000000080039050000034100000008003d050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000041050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e45050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e000049050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d05045300000400510501185665633c543e00004d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e6365000051050000024d050055050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e59050000025d05005d0500000408000504006105000004086505380065050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000069050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e6d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400710501185665633c543e000071050000020904007505084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c7536340000790500000408750510007d050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008105012c42547265655365743c543e000081050420425472656553657404045401e90100040085050000008505000002e9010089050000028d05008d05086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465910501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600009105086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000950500000408e901e902009905086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c75333200009d050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea1050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572a50501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679a90501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365b105014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000a50504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000a90504184f7074696f6e04045401ad050108104e6f6e6500000010536f6d650400ad050000010000ad0500000408080800b105080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005104013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000b5050000040810d90100b9050000040c30281000bd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c105045300000400c50501185665633c543e0000c10500000408d9011000c505000002c10500c9050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400cd05013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000cd0504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000d1050000040c1000a90400d5050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273d90501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400e10501185665633c543e0000dd0500000408981800e105000002dd0500e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e9050000040818d90100ed05000002e90500f1050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef505085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f90501844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f90504184f7074696f6e04045401fd050108104e6f6e6500000010536f6d650400fd050000010000fd05085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000010600000408e50110000506085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561700906019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000009060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000d060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1106000004081506100015060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400190601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f766964657204001d0601584d61696e53746f7261676550726f76696465723c543e0001000019060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e00001d060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473210601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e744964000021060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012506045300000400290601185665633c543e000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e000029060000022506002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000031060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6735060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370390601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073410601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000390604184f7074696f6e040454013d060108104e6f6e6500000010536f6d6504003d0600000100003d060000040834200041060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000045060000040834340049060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c00004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015506045300000400590601185665633c543e000055060000040800340059060000025506005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e0000610600000245060065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400610601185665633c543e00006906000004081030006d060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000071060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e75060000040810340079060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000081060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004008506012c42547265655365743c543e000085060420425472656553657404045401340004001d0200000089060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200008d060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91060000040834100095060000040834000099060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00009d060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a1060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000a5060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67a9060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b1060000040c00101000b50600000408001000b90600000408100000bd060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c106000400080138436f6c6c656374696f6e526f6c650000c1060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000c5060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c90624417070726f76616c7301cd06000c01146f776e65720001244163636f756e744964000124617070726f76616c73cd060124417070726f76616c7300011c6465706f736974c906011c4465706f7369740000c9060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000cd060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400d106013842547265654d61703c4b2c20563e0000d106042042547265654d617008044b01000456011102000400d506000000d506000002d90600d9060000040800110200dd060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e1060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401e5062c537472696e674c696d6974000008011c6465706f736974e506011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000e5060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e906000004101011028502810200ed06000004087902f10600f1060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f50600000408189c00f9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400fd06012c42547265655365743c543e0000fd06042042547265655365740404540100000400a400000001070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000005070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401090700040030013450616c6c657446656174757265000009070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c73000400145377617073000800000d070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1107102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e61747572650131051445787472610115070004003800000015070000042819071d072107250729073107350739073d07410700190710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000001d0710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000210710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000250710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000290710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004002d07010c45726100002d07102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000310710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000350710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003907086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e00003d0708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d04045400000000410708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465450701104d6f64650000450708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c6564000100004907084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90219044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f5030190000141050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100450504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c697374010049050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015505151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010059050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405610500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800016905161041757261011041757261082c417574686f72697469657301006d050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010075052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301006d05040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000790504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e64656401007d050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010089050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205950538040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701009905302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e019d051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230a1050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502b50510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502b50530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502b505b90504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100bd0504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000c9050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202d105d505040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200e505040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110401b00001f1051f2843756d756c757358636d0001ad0401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501f50574000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505010605060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01b10401e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c9020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e010d06212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001106040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f76696465727300010402341d060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402342506040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b65747300010402342d0604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023419060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b50401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013106282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023435060400004853746f7261676552657175657374427370730001080202450649060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202450698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402104d06040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105106040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402105d06040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200650604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020245066906040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020245066d06040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202450698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01b904010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017106293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020275069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501007906040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501007d06040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210810604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01d1040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f8906100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e018d062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000091060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000091060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d50401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802029506990604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d73000108020295069d0604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234a10650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01d904016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01a5062c284275636b65744e6674730001dd040171020001a9062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210ad06040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202b10698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202b5069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202b906bd06040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102c506040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210dd0604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102e10604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e906ed06040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a102f506040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102f90604000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a10201070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210e9040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10215050400044c20436f6e666967206f6620616e206974656d2e01e5040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573050720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e010d07321107042848436865636b4e6f6e5a65726f53656e64657219079840436865636b5370656356657273696f6e1d071038436865636b547856657273696f6e21071030436865636b47656e6573697325073438436865636b4d6f7274616c69747929073428436865636b4e6f6e63653107982c436865636b576569676874350798604368617267655472616e73616374696f6e5061796d656e743907985053746f726167655765696768745265636c61696d3d079844436865636b4d65746164617461486173684107804907","id":"1"} \ No newline at end of file +{"jsonrpc":"2.0","result":"0x6d6574610e5907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565dc0128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400b50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b90401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400bd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400d50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400dd0401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400e10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e90401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d6573736167657d0401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065a9040144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964ad040154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065a9040144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737415040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065350401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665390401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473390401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473390401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473390401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000035040c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300003904100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003d04013857696c644d756c74694173736574000100003d04100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e4104013c57696c6446756e676962696c697479000100004104100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000045040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000049040c0c78636d0876330c58636d041043616c6c000004004d0401585665633c496e737472756374696f6e3c43616c6c3e3e00004d0400000251040051040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004904012458636d3c43616c6c3e0015002c536574417070656e64697804004904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000055040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040059040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d04045300000400650401185665633c543e00005d040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000061040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000065040000025d0400690404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd0100000100006d040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400007104100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007504013857696c644d756c74694173736574000100007504100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7904013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7904013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007904100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007d04080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204008104015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304009104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009d04015076343a3a58636d3c52756e74696d6543616c6c3e0004000081040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400850401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000850400000289040089040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065350401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c8d040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665390401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473390401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473390401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473390401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008104014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804008104014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b00008d040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000091040c0c78636d0876330c58636d041043616c6c00000400950401585665633c496e737472756374696f6e3c43616c6c3e3e0000950400000299040099040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8d04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009104012458636d3c43616c6c3e0015002c536574417070656e64697804009104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00009d040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400a10401585665633c496e737472756374696f6e3c43616c6c3e3e0000a104000002a50400a5040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8d04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009d04012458636d3c43616c6c3e0015002c536574417070656e64697804009d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a904105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e00030000ad04080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000b1040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574bd040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365c10401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673c504013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66d10401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000c5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c904045300000400cd0401185665633c543e0000c9040000040834390200cd04000002c90400d10404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000d5040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574e1040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e50401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e50401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee50404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e9040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967ed040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967ed040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730d05013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461110501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967190501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773f1040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565721d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e1d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a65721d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967ed040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573732105017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f9040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963650105015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f62757965721d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970732505019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746131050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726535050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174614105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726535050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773f1040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f90401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000f1040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401f504000400300144436f6c6c656374696f6e53657474696e670000f5040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f9040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065fd0401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365010501344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773050501304974656d53657474696e67730000fd040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000010504184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000005050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401090500040030012c4974656d53657474696e67000009050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b656441747472696275746573000400000d050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000110504184f7074696f6e0404540115050108104e6f6e6500000010536f6d6504001505000001000015050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f70726963650105013c4f7074696f6e3c42616c616e63653e000019050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773050501304974656d53657474696e677300001d0504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e103000001000021050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000025050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540129050453000004002d0501185665633c543e000029050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e7400002d0500000229050031050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f70726963650105013c4f7074696f6e3c42616c616e63653e00003505082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040039050148656432353531393a3a5369676e61747572650000001c53723235353139040039050148737232353531393a3a5369676e617475726500010014456364736104003d05014065636473613a3a5369676e61747572650002000039050000034000000008003d0500000341000000080041050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000045050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e49050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e00004d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015105045300000400550501185665633c543e000051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000550500000251050059050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d05000002610500610500000408000504006505000004086905380069050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00006d050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e71050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400750501185665633c543e000075050000020904007905084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007d05000004087905100081050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008505012c42547265655365743c543e000085050420425472656553657404045401e90100040089050000008905000002e901008d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019105045300000400990501185665633c543e00009105086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465950501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600009505086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e6465640001000099050000029105009d0500000408e901e90200a1050c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e0000a505086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000a9050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572b10501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679b50501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365bd05014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000b10504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000b50504184f7074696f6e04045401b9050108104e6f6e6500000010536f6d650400b9050000010000b90500000408080800bd05080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005504013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000c1050000040810d90100c5050000040c30281000c9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd05045300000400d10501185665633c543e0000cd0500000408d9011000d105000002cd0500d5050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400d905013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000d90504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000dd050000040c1000ad0400e1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273e50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e90500000408981800ed05000002e90500f1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f505045300000400f90501185665633c543e0000f5050000040818d90100f905000002f50500fd050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0106085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273050601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000050604184f7074696f6e0404540109060108104e6f6e6500000010536f6d650400090600000100000906085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e00000d0600000408e50110001106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561701506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000015060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d06000004082106100021060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400250601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400290601584d61696e53746f7261676550726f76696465723c543e0001000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000029060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574732d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013106045300000400350601185665633c543e000031060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000350600000231060039060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00003d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6741060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370450601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370734d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000450604184f7074696f6e0404540149060108104e6f6e6500000010536f6d650400490600000100004906000004083420004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060000040834340055060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016106045300000400650601185665633c543e0000610600000408003400650600000261060069060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151060453000004006d0601185665633c543e00006d0600000251060071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151060453000004006d0601185665633c543e000075060000040810300079060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400007d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81060000040810340085060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000089060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e00008d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004009106012c42547265655365743c543e000091060420425472656553657404045401340004001d0200000095060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000099060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0600000408341000a10600000408340000a5060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a9060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000ad060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000b1060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67b5060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb9060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000bd060000040c00101000c10600000408001000c50600000408100000c9060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401cd06000400080138436f6c6c656374696f6e526f6c650000cd060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000d1060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401d50624417070726f76616c7301d906000c01146f776e65720001244163636f756e744964000124617070726f76616c73d9060124417070726f76616c7300011c6465706f736974d506011c4465706f7369740000d5060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000d9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400dd06013842547265654d61703c4b2c20563e0000dd06042042547265654d617008044b01000456011102000400e106000000e106000002e50600e5060000040800110200e9060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000ed060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401f1062c537472696e674c696d6974000008011c6465706f736974f106011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000f1060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f506000004101011028502810200f906000004087902fd0600fd060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000010700000408189c0005070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004000907012c42547265655365743c543e00000907042042547265655365740404540100000400a40000000d070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000011070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401150700040030013450616c6c657446656174757265000015070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000019070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e617475726501350514457874726101210700040038000000210700000428250729072d07310735073d074107450749074d0700250710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000290710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000002d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000310710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000350710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003907010c45726100003907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00003d0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000410710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000004507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000490708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004d0708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465510701104d6f64650000510708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c6564000100005507084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90279044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d650100000001000000000000004cd7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb9201000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f5030190000145050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100490504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c69737401004d050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015905151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301005d050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405650500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800016d05161041757261011041757261082c417574686f726974696573010071050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010079052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301007105040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f00007d0504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010081050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301008d050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802059d05a105040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e901a105040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100a505302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac0c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a6510100000010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e01a9051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d38305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230ad050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502c10510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502c10530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502c105c50504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100c90504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000d5050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202dd05e105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200f105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000005010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e01110401b00001fd051f2843756d756c757358636d0001b10401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501010674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805050d0611060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01b50401e10110204865617053697a651010009c0100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c9020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e011906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023429060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402343106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234390604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023425060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b90401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023441060400004853746f7261676552657175657374427370730001080202510655060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202510698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402105906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402106906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200710604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020251067506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020251067906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202510698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01bd04010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017d06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020281069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501008506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501008906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402108d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01d5040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f9506100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0199062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300009d060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300009d060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d90401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d730001080202a106a50604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d730001080202a106a90604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234ad0650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01dd04016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01b1062c284275636b65744e6674730001e1040171020001b5062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210b906040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202bd0698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202c1069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202c506c906040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102d106040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210e90604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102ed0604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202f506f906040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a1020107040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102050704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a1020d070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210ed040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10219050400044c20436f6e666967206f6620616e206974656d2e01e9040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573110720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e011907321d07042848436865636b4e6f6e5a65726f53656e64657225079840436865636b5370656356657273696f6e29071038436865636b547856657273696f6e2d071030436865636b47656e6573697331073438436865636b4d6f7274616c69747935073428436865636b4e6f6e63653d07982c436865636b576569676874410798604368617267655472616e73616374696f6e5061796d656e744507985053746f726167655765696768745265636c61696d49079844436865636b4d65746164617461486173684d07805507","id":"1"} \ No newline at end of file diff --git a/api-augment/tsconfig.json b/api-augment/tsconfig.json index 2c33c76bc..d3c4bd779 100644 --- a/api-augment/tsconfig.json +++ b/api-augment/tsconfig.json @@ -6,27 +6,17 @@ "outDir": "dist", "baseUrl": "./", "paths": { - "@storagehub/api-augment/*": [ - "src/*" - ], - "@polkadot/api/augment": [ - "src/interfaces/augment-api.ts" - ], - "@polkadot/types/augment": [ - "src/interfaces/augment-types.ts" - ], - "@polkadot/types/lookup": [ - "src/interfaces/types-lookup.ts" - ] + "@storagehub/api-augment/*": ["src/*"], + "@polkadot/api/augment": ["src/interfaces/augment-api.ts"], + "@polkadot/types/augment": ["src/interfaces/augment-types.ts"], + "@polkadot/types/lookup": ["src/interfaces/types-lookup.ts"] }, "noEmit": false, "declaration": true, "declarationDir": "dist/types", "allowImportingTsExtensions": false, + // TODO: This should not be needed but for some reason in `augment-api-query.ts` it is importing the `StagingXcmV4Xcm` type which is never used in that file + "noUnusedLocals": false }, - "exclude": [ - "node_modules", - "dist", - "scripts" - ] -} \ No newline at end of file + "exclude": ["node_modules", "dist", "scripts"] +} diff --git a/client/file-transfer-service/Cargo.toml b/client/file-transfer-service/Cargo.toml index 3d36ed6a5..2a3b57178 100644 --- a/client/file-transfer-service/Cargo.toml +++ b/client/file-transfer-service/Cargo.toml @@ -30,6 +30,7 @@ codec = { workspace = true } sc-client-api = { workspace = true } sc-service = { workspace = true } sc-network = { workspace = true } +sc-network-types = { workspace = true } sc-utils = { workspace = true } sc-tracing = { workspace = true } diff --git a/node/src/service.rs b/node/src/service.rs index 044f2d403..5a17b5d8a 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -592,21 +592,22 @@ where ))), create_inherent_data_providers: move |block: Hash, ()| { let current_para_block = client_for_cidp - .number(block) - .expect("Header lookup should succeed") - .expect("Header passed in as parent should be present in backend."); + .number(block) + .expect("Header lookup should succeed") + .expect("Header passed in as parent should be present in backend."); let hash = client .hash(current_para_block.saturating_sub(1)) .expect("Hash of the desired block must be present") .expect("Hash of the desired block should exist"); - let para_header = client - .expect_header(hash) - .expect("Expected parachain header should exist") - .encode(); + let para_header = client + .expect_header(hash) + .expect("Expected parachain header should exist") + .encode(); - let para_head_data = HeadData(para_header).encode(); + let raw_para_head_data = HeadData(para_header); + let para_head_data = raw_para_head_data.encode(); let client_for_xcm = client_for_cidp.clone(); @@ -643,7 +644,7 @@ where MockValidationDataInherentDataProvider { current_para_block, para_id, - current_para_block_head: para_head_data, + current_para_block_head: Some(raw_para_head_data), relay_offset: 1000, relay_blocks_per_para_block: 2, para_blocks_per_relay_epoch: 0, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index af52714ac..7be9d2c71 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,23 +21,23 @@ importers: api-augment: dependencies: '@polkadot/api': - specifier: 12.4.2 - version: 12.4.2 + specifier: 14.0.1 + version: 14.0.1 '@polkadot/api-base': - specifier: 12.4.2 - version: 12.4.2 + specifier: 14.0.1 + version: 14.0.1 '@polkadot/rpc-core': - specifier: 12.4.2 - version: 12.4.2 + specifier: 14.0.1 + version: 14.0.1 '@polkadot/typegen': - specifier: 12.4.2 - version: 12.4.2 + specifier: 14.0.1 + version: 14.0.1 '@polkadot/types': - specifier: 12.4.2 - version: 12.4.2 + specifier: 14.0.1 + version: 14.0.1 '@polkadot/types-codec': - specifier: 12.4.2 - version: 12.4.2 + specifier: 14.0.1 + version: 14.0.1 '@storagehub/types-bundle': specifier: workspace:* version: link:../types-bundle @@ -499,18 +499,34 @@ packages: resolution: {integrity: sha512-BkG2tQpUUO0iUm65nSqP8hwHkNfN8jQw8apqflJNt9H8EkEL6v7sqwbLvGqtlxM9wzdxbg7lrWp3oHg4rOP31g==} engines: {node: '>=18'} + '@polkadot/api-augment@14.0.1': + resolution: {integrity: sha512-+ZHq3JaQZ/3Q45r6/YQBeLfoP8S5ibgkOvLKnKA9cJeF7oP5Qgi6pAEnGW0accfnT9PyCEco9fD/ZOLR9Yka7w==} + engines: {node: '>=18'} + '@polkadot/api-base@12.4.2': resolution: {integrity: sha512-XYI7Po8i6C4lYZah7Xo0v7zOAawBUfkmtx0YxsLY/665Sup8oqzEj666xtV9qjBzR9coNhQonIFOn+9fh27Ncw==} engines: {node: '>=18'} + '@polkadot/api-base@14.0.1': + resolution: {integrity: sha512-OVnDiztKx/1ktae9eCzO1q8lmKEfnQ71fipo8JkDJOMIN4vT1IqL9KQo4e/Xz8UtOfTJ0H8kZ6evaLqdA3ZYOA==} + engines: {node: '>=18'} + '@polkadot/api-derive@12.4.2': resolution: {integrity: sha512-R0AMANEnqs5AiTaiQX2FXCxUlOibeDSgqlkyG1/0KDsdr6PO/l3dJOgEO+grgAwh4hdqzk4I9uQpdKxG83f2Gw==} engines: {node: '>=18'} + '@polkadot/api-derive@14.0.1': + resolution: {integrity: sha512-ADQMre3DRRW/0rhJqxOVhQ1vqtyafP2dSZJ0qEAsto12q2WMSF8CZWo7pXe4DxiniDkZx3zVq4z5lqw2aBRLfg==} + engines: {node: '>=18'} + '@polkadot/api@12.4.2': resolution: {integrity: sha512-e1KS048471iBWZU10TJNEYOZqLO+8h8ajmVqpaIBOVkamN7tmacBxmHgq0+IA8VrGxjxtYNa1xF5Sqrg76uBEg==} engines: {node: '>=18'} + '@polkadot/api@14.0.1': + resolution: {integrity: sha512-CDSaUiJpXu9aE6MaTg14K+9Trf8K2PBHcD3Xl5m5KOvJperWgYFxoCqV3rXLIBWt69LgHhMYlq5JSPRHxejIsw==} + engines: {node: '>=18'} + '@polkadot/keyring@13.0.2': resolution: {integrity: sha512-NeLbhyKDT5W8LI9seWTZGePxNTOVpDhv2018HSrEDwJq9Ie0C4TZhUf3KNERCkSveuThXjfQJMs+1CF33ZXPWw==} engines: {node: '>=18'} @@ -518,61 +534,123 @@ packages: '@polkadot/util': 13.0.2 '@polkadot/util-crypto': 13.0.2 + '@polkadot/keyring@13.1.1': + resolution: {integrity: sha512-Wm+9gn946GIPjGzvueObLGBBS9s541HE6mvKdWGEmPFMzH93ESN931RZlOd67my5MWryiSP05h5SHTp7bSaQTA==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1 + '@polkadot/networks@13.0.2': resolution: {integrity: sha512-ABAL+vug/gIwkdFEzeh87JoJd0YKrxSYg/HjUrZ+Zis2ucxQEKpvtCpJ34ku+YrjacBfVqIAkkwd3ZdIPGq9aQ==} engines: {node: '>=18'} + '@polkadot/networks@13.1.1': + resolution: {integrity: sha512-eEQ4+Mfl1xFtApeU5PdXZ2XBhxNSvUz9yW+YQVGUCkXRjWFbqNRsTOYWGd9uFbiAOXiiiXbtqfZpxSDzIm4XOg==} + engines: {node: '>=18'} + '@polkadot/rpc-augment@12.4.2': resolution: {integrity: sha512-IEco5pnso+fYkZNMlMAN5i4XAxdXPv0PZ0HNuWlCwF/MmRvWl8pq5JFtY1FiByHEbeuHwMIUhHM5SDKQ85q9Hg==} engines: {node: '>=18'} + '@polkadot/rpc-augment@14.0.1': + resolution: {integrity: sha512-M0CbN/IScqiedYI2TmoQ+SoeEdJHfxGeQD1qJf9uYv9LILK+x1/5fyr5DrZ3uCGVmLuObWAJLnHTs0BzJcSHTQ==} + engines: {node: '>=18'} + '@polkadot/rpc-core@12.4.2': resolution: {integrity: sha512-yaveqxNcmyluyNgsBT5tpnCa/md0CGbOtRK7K82LWsz7gsbh0x80GBbJrQGxsUybg1gPeZbO1q9IigwA6fY8ag==} engines: {node: '>=18'} + '@polkadot/rpc-core@14.0.1': + resolution: {integrity: sha512-SfgC6WU7RxaFFgm/GUpsqTywyaDeb7+r5GU3GlwC+QR148h3a7UcQ3sssOpB0MiZ2gIXngJuyIcIQm/3GfHnJw==} + engines: {node: '>=18'} + '@polkadot/rpc-provider@12.4.2': resolution: {integrity: sha512-cAhfN937INyxwW1AdjABySdCKhC7QCIONRDHDea1aLpiuxq/w+QwjxauR9fCNGh3lTaAwwnmZ5WfFU2PtkDMGQ==} engines: {node: '>=18'} + '@polkadot/rpc-provider@14.0.1': + resolution: {integrity: sha512-mNfaKZUHPXGSY7TwgOfV05RN3Men21Dw7YXrSZDFkJYsZ55yOAYdmLg9anPZGHW100YnNWrXj+3uhQOw8JgqkA==} + engines: {node: '>=18'} + '@polkadot/typegen@12.4.2': resolution: {integrity: sha512-B23ULYylj9PotnFUHVwN6qx7yLdFgdmhSMC/JN9l4tpM0nJhiAFx8LDCH8de3pbrPsxCVg9hLGtmKYD7hi1VWw==} engines: {node: '>=18'} hasBin: true + '@polkadot/typegen@14.0.1': + resolution: {integrity: sha512-BYwpo7a9gHYw/PoR+XzTE0gZU0ionGVwEu7HXoejNT6cxsmT709S8OMaKcPzA8IvKwcKeBKie9QvXvFXVoQyKQ==} + engines: {node: '>=18'} + hasBin: true + '@polkadot/types-augment@12.4.2': resolution: {integrity: sha512-3fDCOy2BEMuAtMYl4crKg76bv/0pDNEuzpAzV4EBUMIlJwypmjy5sg3gUPCMcA+ckX3xb8DhkWU4ceUdS7T2KQ==} engines: {node: '>=18'} + '@polkadot/types-augment@14.0.1': + resolution: {integrity: sha512-PGo81444J5tGJxP3tu060Jx1kkeuo8SmBIt9S/w626Se49x4RLM5a7Pa5fguYVsg4TsJa9cgVPMuu6Y0F/2aCQ==} + engines: {node: '>=18'} + '@polkadot/types-codec@12.4.2': resolution: {integrity: sha512-DiPGRFWtVMepD9i05eC3orSbGtpN7un/pXOrXu0oriU+oxLkpvZH68ZsPNtJhKdQy03cAYtvB8elJOFJZYqoqQ==} engines: {node: '>=18'} + '@polkadot/types-codec@14.0.1': + resolution: {integrity: sha512-IyUlkrRZ6uppbHVlMJL+btKP7dfgW65K06ggQxH7Y/IyRAQVDNjXecAZrCUMB/gtjUXNPyTHEIfPGDlg8E6rig==} + engines: {node: '>=18'} + '@polkadot/types-create@12.4.2': resolution: {integrity: sha512-nOpeAKZLdSqNMfzS3waQXgyPPaNt8rUHEmR5+WNv6c/Ke/vyf710wjxiTewfp0wpBgtdrimlgG4DLX1J9Ms1LA==} engines: {node: '>=18'} + '@polkadot/types-create@14.0.1': + resolution: {integrity: sha512-R9/ac3CHKrFhvPKVUdpjnCDFSaGjfrNwtuY+AzvExAMIq7pM9dxo2N8UfnLbyFaG/n1hfYPXDIS3hLHvOZsLbw==} + engines: {node: '>=18'} + '@polkadot/types-known@12.4.2': resolution: {integrity: sha512-bvhO4KQu/dgPmdwQXsweSMRiRisJ7Bp38lZVEIFykfd2qYyRW3OQEbIPKYpx9raD+fDATU0bTiKQnELrSGhYXw==} engines: {node: '>=18'} + '@polkadot/types-known@14.0.1': + resolution: {integrity: sha512-oGypUOQNxZ6bq10czpVadZYeDM2NBB2kX3VFHLKLEpjaRbnVYtKXL6pl8B0uHR8GK/2Z8AmPOj6kuRjaC86qXg==} + engines: {node: '>=18'} + '@polkadot/types-support@12.4.2': resolution: {integrity: sha512-bz6JSt23UEZ2eXgN4ust6z5QF9pO5uNH7UzCP+8I/Nm85ZipeBYj2Wu6pLlE3Hw30hWZpuPxMDOKoEhN5bhLgw==} engines: {node: '>=18'} + '@polkadot/types-support@14.0.1': + resolution: {integrity: sha512-lcZEyOf5e3WLLtrFlLTvFfUpO0Vx/Gh5lhLLjdx1W9Xs0KJUlOxSAKxvjVieJJj6HifL0Jh6tDYOUeEc4TOrvA==} + engines: {node: '>=18'} + '@polkadot/types@12.4.2': resolution: {integrity: sha512-ivYtt7hYcRvo69ULb1BJA9BE1uefijXcaR089Dzosr9+sMzvsB1yslNQReOq+Wzq6h6AQj4qex6qVqjWZE6Z4A==} engines: {node: '>=18'} + '@polkadot/types@14.0.1': + resolution: {integrity: sha512-DOMzHsyVbCa12FT2Fng8iGiQJhHW2ONpv5oieU+Z2o0gFQqwNmIDXWncScG5mAUBNcDMXLuvWIKLKtUDOq8msg==} + engines: {node: '>=18'} + '@polkadot/util-crypto@13.0.2': resolution: {integrity: sha512-woUsJJ6zd/caL7U+D30a5oM/+WK9iNI00Y8aNUHSj6Zq/KPzK9uqDBaLGWwlgrejoMQkxxiU2X0f2LzP15AtQg==} engines: {node: '>=18'} peerDependencies: '@polkadot/util': 13.0.2 + '@polkadot/util-crypto@13.1.1': + resolution: {integrity: sha512-FG68rrLPdfLcscEyH10vnGkakM4O2lqr71S3GDhgc9WXaS8y9jisLgMPg8jbMHiQBJ3iKYkmtPKiLBowRslj2w==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 13.1.1 + '@polkadot/util@13.0.2': resolution: {integrity: sha512-/6bS9sfhJLhs8QuqWaR1eRapzfDdGC5XAQZEPL9NN5sTTA7HxWos8rVleai0UERm8QUMabjZ9rK9KpzbXl7ojg==} engines: {node: '>=18'} + '@polkadot/util@13.1.1': + resolution: {integrity: sha512-M4iQ5Um8tFdDmD7a96nPzfrEt+kxyWOqQDPqXyaax4QBnq/WCbq0jo8IO61uz55mdMQnGZvq8jd8uge4V6JzzQ==} + engines: {node: '>=18'} + '@polkadot/wasm-bridge@7.3.2': resolution: {integrity: sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==} engines: {node: '>=18'} @@ -616,14 +694,26 @@ packages: resolution: {integrity: sha512-h2jKT/UaxiEal8LhQeH6+GCjO7GwEqVAD2SNYteCOXff6yNttqAZYJuHZsndbVjVNwqRNf8D5q/zZkD0HUd6xQ==} engines: {node: '>=18'} + '@polkadot/x-bigint@13.1.1': + resolution: {integrity: sha512-Cq4Y6fd9UWtRBZz8RX2tWEBL1IFwUtY6cL8p6HC9yhZtUR6OPjKZe6RIZQa9gSOoIuqZWd6PmtvSNGVH32yfkQ==} + engines: {node: '>=18'} + '@polkadot/x-fetch@13.0.2': resolution: {integrity: sha512-B/gf9iriUr6za/Ui7zIFBfHz7UBZ68rJEIteWHx1UHRCZPcLqv+hgpev6xIGrkfFljI0/lI7IwtN2qy6HYzFBg==} engines: {node: '>=18'} + '@polkadot/x-fetch@13.1.1': + resolution: {integrity: sha512-qA6mIUUebJbS+oWzq/EagZflmaoa9b25WvsxSFn7mCvzKngXzr+GYCY4XiDwKY/S+/pr/kvSCKZ1ia8BDqPBYQ==} + engines: {node: '>=18'} + '@polkadot/x-global@13.0.2': resolution: {integrity: sha512-OoNIXLB5y8vIKpk4R+XmpDPhipNXWSUvEwUnpQT7NAxNLmzgMq1FhbrwBWWPRNHPrQonp7mqxV/X+v5lv1HW/g==} engines: {node: '>=18'} + '@polkadot/x-global@13.1.1': + resolution: {integrity: sha512-DViIMmmEs29Qlsp058VTg2Mn7e3/CpGazNnKJrsBa0o1Ptxl13/4Z0fjqCpNi2GB+kaOsnREzxUORrHcU+PqcQ==} + engines: {node: '>=18'} + '@polkadot/x-randomvalues@13.0.2': resolution: {integrity: sha512-SGj+L0H/7TWZtSmtkWlixO4DFzXDdluI0UscN2h285os2Ns8PnmBbue+iJ8PVSzpY1BOxd66gvkkpboPz+jXFQ==} engines: {node: '>=18'} @@ -631,18 +721,37 @@ packages: '@polkadot/util': 13.0.2 '@polkadot/wasm-util': '*' + '@polkadot/x-randomvalues@13.1.1': + resolution: {integrity: sha512-cXj4omwbgzQQSiBtV1ZBw+XhJUU3iz/DS6ghUnGllSZEK+fGqiyaNgeFQzDY0tKjm6kYaDpvtOHR3mHsbzDuTg==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': '*' + '@polkadot/x-textdecoder@13.0.2': resolution: {integrity: sha512-mauglOkTJxLGmLwLc3J5Jlq/W+SHP53eiy3F8/8JxxfnXrZKgWoQXGpvXYPjFnMZj0MzDSy/6GjyGWnDCgdQFA==} engines: {node: '>=18'} + '@polkadot/x-textdecoder@13.1.1': + resolution: {integrity: sha512-LpZ9KYc6HdBH+i86bCmun4g4GWMiWN/1Pzs0hNdanlQMfqp3UGzl1Dqp0nozMvjWAlvyG7ip235VgNMd8HEbqg==} + engines: {node: '>=18'} + '@polkadot/x-textencoder@13.0.2': resolution: {integrity: sha512-Lq08H2OnVXj97uaOwg7tcmRS7a4VJYkHEeWO4FyEMOk6P6lU6W8OVNjjxG0se9PCEgmyZPUDbJI//1ynzP4cXw==} engines: {node: '>=18'} + '@polkadot/x-textencoder@13.1.1': + resolution: {integrity: sha512-w1mT15B9ptN5CJNgN/A0CmBqD5y9OePjBdU6gmAd8KRhwXCF0MTBKcEZk1dHhXiXtX+28ULJWLrfefC5gxy69Q==} + engines: {node: '>=18'} + '@polkadot/x-ws@13.0.2': resolution: {integrity: sha512-nC5e2eY5D5ZR5teQOB7ib+dWLbmNws86cTz3BjKCalSMBBIn6i3V9ElgABpierBmnSJe9D94EyrH1BxdVfDxUg==} engines: {node: '>=18'} + '@polkadot/x-ws@13.1.1': + resolution: {integrity: sha512-E/xFmJTiFzu+IK5M3/8W/9fnvNJFelcnunPv/IgO6UST94SDaTsN/Gbeb6SqPb6CsrTHRl3WD+AZ3ErGGwQfEA==} + engines: {node: '>=18'} + '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -697,6 +806,9 @@ packages: '@substrate/ss58-registry@1.49.0': resolution: {integrity: sha512-leW6Ix4LD7XgvxT7+aobPWSw+WvPcN2Rxof1rmd0mNC5t2n99k1N7UNEvz7YEFSOUeHWmKIY7F5q8KeIqYoHfA==} + '@substrate/ss58-registry@1.50.0': + resolution: {integrity: sha512-mkmlMlcC+MSd9rA+PN8ljGAm5fVZskvVwkXIsbx4NFwaT8kt38r7e9cyDWscG3z2Zn40POviZvEMrJSk+r2SgQ==} + '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -2277,8 +2389,7 @@ snapshots: '@noble/hashes@1.4.0': {} - '@noble/hashes@1.5.0': - optional: true + '@noble/hashes@1.5.0': {} '@noble/secp256k1@1.7.1': {} @@ -2337,6 +2448,20 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/api-augment@14.0.1': + dependencies: + '@polkadot/api-base': 14.0.1 + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/api-base@12.4.2': dependencies: '@polkadot/rpc-core': 12.4.2 @@ -2349,6 +2474,18 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/api-base@14.0.1': + dependencies: + '@polkadot/rpc-core': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/util': 13.1.1 + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/api-derive@12.4.2': dependencies: '@polkadot/api': 12.4.2 @@ -2366,6 +2503,23 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/api-derive@14.0.1': + dependencies: + '@polkadot/api': 14.0.1 + '@polkadot/api-augment': 14.0.1 + '@polkadot/api-base': 14.0.1 + '@polkadot/rpc-core': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/api@12.4.2': dependencies: '@polkadot/api-augment': 12.4.2 @@ -2390,18 +2544,54 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/api@14.0.1': + dependencies: + '@polkadot/api-augment': 14.0.1 + '@polkadot/api-base': 14.0.1 + '@polkadot/api-derive': 14.0.1 + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1) + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/rpc-core': 14.0.1 + '@polkadot/rpc-provider': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/types-known': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + eventemitter3: 5.0.1 + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/keyring@13.0.2(@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2))(@polkadot/util@13.0.2)': dependencies: '@polkadot/util': 13.0.2 '@polkadot/util-crypto': 13.0.2(@polkadot/util@13.0.2) tslib: 2.6.3 + '@polkadot/keyring@13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + tslib: 2.7.0 + '@polkadot/networks@13.0.2': dependencies: '@polkadot/util': 13.0.2 '@substrate/ss58-registry': 1.49.0 tslib: 2.6.3 + '@polkadot/networks@13.1.1': + dependencies: + '@polkadot/util': 13.1.1 + '@substrate/ss58-registry': 1.50.0 + tslib: 2.7.0 + '@polkadot/rpc-augment@12.4.2': dependencies: '@polkadot/rpc-core': 12.4.2 @@ -2414,6 +2604,18 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/rpc-augment@14.0.1': + dependencies: + '@polkadot/rpc-core': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/rpc-core@12.4.2': dependencies: '@polkadot/rpc-augment': 12.4.2 @@ -2427,6 +2629,19 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/rpc-core@14.0.1': + dependencies: + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/rpc-provider': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/util': 13.1.1 + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/rpc-provider@12.4.2': dependencies: '@polkadot/keyring': 13.0.2(@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2))(@polkadot/util@13.0.2) @@ -2448,6 +2663,27 @@ snapshots: - supports-color - utf-8-validate + '@polkadot/rpc-provider@14.0.1': + dependencies: + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1) + '@polkadot/types': 14.0.1 + '@polkadot/types-support': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + '@polkadot/x-fetch': 13.1.1 + '@polkadot/x-global': 13.1.1 + '@polkadot/x-ws': 13.1.1 + eventemitter3: 5.0.1 + mock-socket: 9.3.1 + nock: 13.5.5 + tslib: 2.7.0 + optionalDependencies: + '@substrate/connect': 0.8.11 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + '@polkadot/typegen@12.4.2': dependencies: '@polkadot/api': 12.4.2 @@ -2461,7 +2697,29 @@ snapshots: '@polkadot/types-support': 12.4.2 '@polkadot/util': 13.0.2 '@polkadot/util-crypto': 13.0.2(@polkadot/util@13.0.2) - '@polkadot/x-ws': 13.0.2 + '@polkadot/x-ws': 13.1.1 + handlebars: 4.7.8 + tslib: 2.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/typegen@14.0.1': + dependencies: + '@polkadot/api': 14.0.1 + '@polkadot/api-augment': 14.0.1 + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/rpc-provider': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/types-support': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + '@polkadot/x-ws': 13.1.1 handlebars: 4.7.8 tslib: 2.7.0 yargs: 17.7.2 @@ -2477,10 +2735,23 @@ snapshots: '@polkadot/util': 13.0.2 tslib: 2.7.0 + '@polkadot/types-augment@14.0.1': + dependencies: + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + '@polkadot/types-codec@12.4.2': dependencies: '@polkadot/util': 13.0.2 - '@polkadot/x-bigint': 13.0.2 + '@polkadot/x-bigint': 13.1.1 + tslib: 2.7.0 + + '@polkadot/types-codec@14.0.1': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/x-bigint': 13.1.1 tslib: 2.7.0 '@polkadot/types-create@12.4.2': @@ -2489,6 +2760,12 @@ snapshots: '@polkadot/util': 13.0.2 tslib: 2.7.0 + '@polkadot/types-create@14.0.1': + dependencies: + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + '@polkadot/types-known@12.4.2': dependencies: '@polkadot/networks': 13.0.2 @@ -2498,11 +2775,25 @@ snapshots: '@polkadot/util': 13.0.2 tslib: 2.7.0 + '@polkadot/types-known@14.0.1': + dependencies: + '@polkadot/networks': 13.1.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + '@polkadot/types-support@12.4.2': dependencies: '@polkadot/util': 13.0.2 tslib: 2.7.0 + '@polkadot/types-support@14.0.1': + dependencies: + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + '@polkadot/types@12.4.2': dependencies: '@polkadot/keyring': 13.0.2(@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2))(@polkadot/util@13.0.2) @@ -2514,6 +2805,17 @@ snapshots: rxjs: 7.8.1 tslib: 2.7.0 + '@polkadot/types@14.0.1': + dependencies: + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1) + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + rxjs: 7.8.1 + tslib: 2.7.0 + '@polkadot/util-crypto@13.0.2(@polkadot/util@13.0.2)': dependencies: '@noble/curves': 1.5.0 @@ -2527,6 +2829,19 @@ snapshots: '@scure/base': 1.1.7 tslib: 2.6.3 + '@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1)': + dependencies: + '@noble/curves': 1.5.0 + '@noble/hashes': 1.5.0 + '@polkadot/networks': 13.1.1 + '@polkadot/util': 13.1.1 + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-bigint': 13.1.1 + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@scure/base': 1.1.7 + tslib: 2.7.0 + '@polkadot/util@13.0.2': dependencies: '@polkadot/x-bigint': 13.0.2 @@ -2537,6 +2852,16 @@ snapshots: bn.js: 5.2.1 tslib: 2.6.3 + '@polkadot/util@13.1.1': + dependencies: + '@polkadot/x-bigint': 13.1.1 + '@polkadot/x-global': 13.1.1 + '@polkadot/x-textdecoder': 13.1.1 + '@polkadot/x-textencoder': 13.1.1 + '@types/bn.js': 5.1.5 + bn.js: 5.2.1 + tslib: 2.7.0 + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)))': dependencies: '@polkadot/util': 13.0.2 @@ -2544,11 +2869,23 @@ snapshots: '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) tslib: 2.6.3 + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.6.3 + '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@13.0.2)': dependencies: '@polkadot/util': 13.0.2 tslib: 2.6.3 + '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + tslib: 2.6.3 + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)))': dependencies: '@polkadot/util': 13.0.2 @@ -2559,12 +2896,28 @@ snapshots: '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) tslib: 2.6.3 + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.6.3 + '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@13.0.2)': dependencies: '@polkadot/util': 13.0.2 '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.0.2) tslib: 2.6.3 + '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + tslib: 2.6.3 + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.0.2)(@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)))': dependencies: '@polkadot/util': 13.0.2 @@ -2576,26 +2929,57 @@ snapshots: '@polkadot/x-randomvalues': 13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)) tslib: 2.6.3 + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.6.3 + '@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2)': dependencies: '@polkadot/util': 13.0.2 tslib: 2.6.3 + '@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + tslib: 2.6.3 + '@polkadot/x-bigint@13.0.2': dependencies: '@polkadot/x-global': 13.0.2 tslib: 2.6.3 + '@polkadot/x-bigint@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + '@polkadot/x-fetch@13.0.2': dependencies: '@polkadot/x-global': 13.0.2 node-fetch: 3.3.2 tslib: 2.7.0 + '@polkadot/x-fetch@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + node-fetch: 3.3.2 + tslib: 2.7.0 + '@polkadot/x-global@13.0.2': dependencies: tslib: 2.6.3 + '@polkadot/x-global@13.1.1': + dependencies: + tslib: 2.7.0 + '@polkadot/x-randomvalues@13.0.2(@polkadot/util@13.0.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.0.2))': dependencies: '@polkadot/util': 13.0.2 @@ -2603,16 +2987,33 @@ snapshots: '@polkadot/x-global': 13.0.2 tslib: 2.6.3 + '@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + '@polkadot/x-textdecoder@13.0.2': dependencies: '@polkadot/x-global': 13.0.2 tslib: 2.6.3 + '@polkadot/x-textdecoder@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + '@polkadot/x-textencoder@13.0.2': dependencies: '@polkadot/x-global': 13.0.2 tslib: 2.6.3 + '@polkadot/x-textencoder@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + '@polkadot/x-ws@13.0.2': dependencies: '@polkadot/x-global': 13.0.2 @@ -2622,6 +3023,15 @@ snapshots: - bufferutil - utf-8-validate + '@polkadot/x-ws@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + '@protobufjs/aspromise@1.1.2': {} '@protobufjs/base64@1.1.2': {} @@ -2683,6 +3093,8 @@ snapshots: '@substrate/ss58-registry@1.49.0': {} + '@substrate/ss58-registry@1.50.0': {} + '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index e13d6fff7..fbedd9c53 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -1,5 +1,4 @@ use crate::*; -use codec::Encode; use frame_support::{ genesis_builder_helper::{build_state, get_preset}, weights::Weight, @@ -26,11 +25,10 @@ use sp_runtime::{ use sp_std::prelude::Vec; use sp_version::RuntimeVersion; use xcm::{ - latest::prelude::AssetId, IntoVersion, VersionedAssetId, VersionedAssets, VersionedLocation, - VersionedXcm, + latest::prelude::AssetId, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, }; use xcm_fee_payment_runtime_api::{ - dry_run::{Error as XcmDryRunApiError, ExtrinsicDryRunEffects, XcmDryRunEffects}, + dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, fees::Error as XcmPaymentApiError, }; diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 0088cc8bd..08c4bf636 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -27,8 +27,8 @@ pub mod xcm_config; // Substrate and Polkadot dependencies use core::marker::PhantomData; -use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; -use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +use cumulus_pallet_parachain_system::{RelayChainStateProof, RelayNumberMonotonicallyIncreases}; +use cumulus_primitives_core::{relay_chain::well_known_keys, AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, dispatch::DispatchClass, @@ -57,7 +57,7 @@ use shp_file_metadata::ChunkId; use shp_forest_verifier::ForestVerifier; use shp_traits::{CommitmentVerifier, MaybeDebug}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{blake2_256, ConstU128, Get, Hasher, H256}; +use sp_core::{ConstU128, Get, Hasher, H256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 2112e6bb5..6c304c095 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -18,8 +18,6 @@ use sp_runtime::{ }; use sp_std::prelude::*; -#[cfg(feature = "std")] -use sp_version::NativeVersion; use sp_version::RuntimeVersion; use frame_support::{ From d697a9b97ada42687f1d16937e0cf6291e6958e1 Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 4 Oct 2024 15:40:27 -0300 Subject: [PATCH 22/24] merge 'main' into 'update/polkadot-sdk-1.12.0' --- .../types/interfaces/augment-api-consts.d.ts | 1124 +-- .../types/interfaces/augment-api-errors.d.ts | 2390 ++--- .../types/interfaces/augment-api-events.d.ts | 4748 ++++----- .../types/interfaces/augment-api-runtime.d.ts | 1612 +-- .../dist/types/interfaces/augment-api-tx.d.ts | 8040 +++++++-------- .../dist/types/interfaces/registry.d.ts | 1078 +- .../interfaces/storagehubclient/types.d.ts | 392 +- .../src/interfaces/augment-api-consts.ts | 1140 +-- .../src/interfaces/augment-api-errors.ts | 2406 ++--- .../src/interfaces/augment-api-events.ts | 3648 +++---- .../src/interfaces/augment-api-runtime.ts | 1440 +-- api-augment/src/interfaces/augment-api-tx.ts | 6836 ++++++------- api-augment/src/interfaces/registry.ts | 1092 +- .../src/interfaces/storagehubclient/types.ts | 462 +- client/blockchain-service/src/commands.rs | 1550 +-- client/blockchain-service/src/events.rs | 726 +- client/blockchain-service/src/handler.rs | 2498 ++--- client/blockchain-service/src/state.rs | 612 +- client/blockchain-service/src/types.rs | 544 +- client/blockchain-service/src/utils.rs | 1724 ++-- client/common/src/types.rs | 312 +- client/indexer-service/src/handler.rs | 916 +- docker/local-dev-bsp-compose.yml | 110 +- docker/local-dev-bsp-rocksdb-compose.yml | 118 +- docker/local-dev-full-compose.yml | 166 +- docker/local-dev-full-rocksdb-compose.yml | 178 +- docker/noisy-bsp-compose.yml | 158 +- node/src/services/handler.rs | 550 +- node/src/tasks/bsp_submit_proof.rs | 1210 +-- node/src/tasks/bsp_upload_file.rs | 1448 +-- node/src/tasks/mod.rs | 384 +- node/src/tasks/msp_upload_file.rs | 1738 ++-- node/src/tasks/user_sends_file.rs | 408 +- pallets/bucket-nfts/Cargo.toml | 180 +- pallets/bucket-nfts/src/mock.rs | 926 +- pallets/file-system/runtime-api/src/lib.rs | 108 +- pallets/file-system/src/lib.rs | 2468 ++--- pallets/file-system/src/mock.rs | 1134 +-- pallets/file-system/src/types.rs | 938 +- pallets/payment-streams/Cargo.toml | 152 +- pallets/payment-streams/src/mock.rs | 636 +- pallets/proofs-dealer/src/lib.rs | 1488 +-- pallets/proofs-dealer/src/mock.rs | 764 +- pallets/proofs-dealer/src/tests.rs | 8790 ++++++++--------- pallets/proofs-dealer/src/utils.rs | 2434 ++--- pallets/providers/Cargo.toml | 160 +- pallets/providers/README.md | 832 +- pallets/providers/runtime-api/src/lib.rs | 130 +- pallets/providers/src/lib.rs | 2182 ++-- pallets/providers/src/mock.rs | 814 +- pallets/providers/src/utils.rs | 3110 +++--- primitives/file-key-verifier/src/tests.rs | 2122 ++-- primitives/file-metadata/src/lib.rs | 572 +- primitives/traits/src/lib.rs | 2118 ++-- runtime/Cargo.toml | 532 +- runtime/src/configs/runtime_params.rs | 98 +- test/package.json | 168 +- test/scripts/fullNetBootstrap.ts | 172 +- .../integration/bsp/debt-collection.test.ts | 1390 +-- test/suites/integration/bsp/onboard.test.ts | 342 +- .../integration/bsp/submit-proofs.test.ts | 1356 +-- test/util/bspNet/consts.ts | 200 +- test/util/bspNet/docker.ts | 570 +- test/util/bspNet/helpers.ts | 1054 +- test/util/bspNet/test-api.ts | 916 +- test/util/fullNet/helpers.ts | 558 +- test/util/pjsKeyring.ts | 112 +- types-bundle/dist/runtime.js | 546 +- types-bundle/dist/types.js | 314 +- types-bundle/src/runtime.ts | 556 +- types-bundle/src/types.ts | 316 +- 71 files changed, 46508 insertions(+), 46508 deletions(-) diff --git a/api-augment/dist/types/interfaces/augment-api-consts.d.ts b/api-augment/dist/types/interfaces/augment-api-consts.d.ts index 41d982816..3dd1125e8 100644 --- a/api-augment/dist/types/interfaces/augment-api-consts.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-consts.d.ts @@ -1,562 +1,562 @@ -import "@polkadot/api-base/types/consts"; -import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; -import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; -import type { Codec } from "@polkadot/types-codec/types"; -import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; -import type { - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight -} from "@polkadot/types/lookup"; -export type __AugmentedConst = AugmentedConst; -declare module "@polkadot/api-base/types/consts" { - interface AugmentedConsts { - aura: { - /** - * The slot duration Aura should run with, expressed in milliseconds. - * The effective value of this type should not change while the chain is running. - * - * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. - **/ - slotDuration: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - balances: { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - **/ - existentialDeposit: u128 & AugmentedConst; - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - **/ - maxFreezes: u32 & AugmentedConst; - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - * - * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxLocks: u32 & AugmentedConst; - /** - * The maximum number of named reserves that can exist on an account. - * - * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxReserves: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - fileSystem: { - /** - * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. - **/ - maxBatchConfirmStorageRequests: u32 & AugmentedConst; - /** - * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. - **/ - maxBatchMspRespondStorageRequests: u32 & AugmentedConst; - /** - * Maximum number of SPs (MSP + BSPs) that can store a file. - * - * This is used to limit the number of BSPs storing a file and claiming rewards for it. - * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. - **/ - maxBspsPerStorageRequest: u32 & AugmentedConst; - /** - * Maximum number of multiaddresses for a storage request. - **/ - maxDataServerMultiAddresses: u32 & AugmentedConst; - /** - * Maximum number of expired items (per type) to clean up in a single block. - **/ - maxExpiredItemsInBlock: u32 & AugmentedConst; - /** - * Maximum byte size of a file path. - **/ - maxFilePathSize: u32 & AugmentedConst; - /** - * Maximum number of peer ids for a storage request. - **/ - maxNumberOfPeerIds: u32 & AugmentedConst; - /** - * Maximum byte size of a peer id. - **/ - maxPeerIdSize: u32 & AugmentedConst; - /** - * Maximum number of file deletion requests a user can have pending. - **/ - maxUserPendingDeletionRequests: u32 & AugmentedConst; - /** - * Maximum number of move bucket requests a user can have pending. - **/ - maxUserPendingMoveBucketRequests: u32 & AugmentedConst; - /** - * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. - **/ - minWaitForStopStoring: u32 & AugmentedConst; - /** - * Time-to-live for a move bucket request, after which the request is considered expired. - **/ - moveBucketRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. - **/ - pendingFileDeletionRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a storage request. - **/ - storageRequestTtl: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - messageQueue: { - /** - * The size of the page; this implies the maximum message size which can be sent. - * - * A good value depends on the expected message sizes, their weights, the weight that is - * available for processing them and the maximal needed message size. The maximal message - * size is slightly lower than this as defined by [`MaxMessageLenOf`]. - **/ - heapSize: u32 & AugmentedConst; - /** - * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which - * should be provided to the message queue for servicing enqueued items `on_idle`. - * Useful for parachains to process messages at the same block they are received. - * - * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. - **/ - idleMaxServiceWeight: Option & AugmentedConst; - /** - * The maximum number of stale pages (i.e. of overweight messages) allowed before culling - * can happen. Once there are more stale pages than this, then historical pages may be - * dropped, even if they contain unprocessed overweight messages. - **/ - maxStale: u32 & AugmentedConst; - /** - * The amount of weight (if any) which should be provided to the message queue for - * servicing enqueued items `on_initialize`. - * - * This may be legitimately `None` in the case that you will call - * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have - * it run in `on_idle`. - **/ - serviceWeight: Option & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - nfts: { - /** - * The maximum approvals an item could have. - **/ - approvalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding an attribute to an item. - **/ - attributeDepositBase: u128 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for collection. - **/ - collectionDeposit: u128 & AugmentedConst; - /** - * The additional funds that must be reserved for the number of bytes store in metadata, - * either "normal" metadata or attribute metadata. - **/ - depositPerByte: u128 & AugmentedConst; - /** - * Disables some of pallet's features. - **/ - features: u64 & AugmentedConst; - /** - * The maximum attributes approvals an item could have. - **/ - itemAttributesApprovalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for an item. - **/ - itemDeposit: u128 & AugmentedConst; - /** - * The maximum length of an attribute key. - **/ - keyLimit: u32 & AugmentedConst; - /** - * The max number of attributes a user could set per call. - **/ - maxAttributesPerCall: u32 & AugmentedConst; - /** - * The max duration in blocks for deadlines. - **/ - maxDeadlineDuration: u32 & AugmentedConst; - /** - * The max number of tips a user could send. - **/ - maxTips: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding metadata to your item. - **/ - metadataDepositBase: u128 & AugmentedConst; - /** - * The maximum length of data stored on-chain. - **/ - stringLimit: u32 & AugmentedConst; - /** - * The maximum length of an attribute value. - **/ - valueLimit: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - parachainSystem: { - /** - * Returns the parachain ID we are running with. - **/ - selfParaId: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - paymentStreams: { - /** - * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. - * This means that, from the balance of the User for which the payment stream is being created, the amount - * `NewStreamDeposit * rate` will be held as a deposit. - * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has - * to be provided by the pallet using the `PaymentStreamsInterface` interface. - **/ - newStreamDeposit: u32 & AugmentedConst; - /** - * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag - * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. - **/ - userWithoutFundsCooldown: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - proofsDealer: { - /** - * The minimum unused weight that a block must have to be considered _not_ full. - * - * This is used as part of the criteria for checking if the network is presumably under a spam attack. - * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would - * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. - **/ - blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; - /** - * The period of blocks for which the block fullness is checked. - * - * This is the amount of blocks from the past, for which the block fullness has been checked - * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are - * cleared from storage. - * - * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, - * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting - * their proofs in time. - **/ - blockFullnessPeriod: u32 & AugmentedConst; - /** - * The number of ticks that challenges history is kept for. - * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. - * A "tick" is usually one block, but some blocks may be skipped due to migrations. - **/ - challengeHistoryLength: u32 & AugmentedConst; - /** - * The fee charged for submitting a challenge. - * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are - * exempt from this fee. - **/ - challengesFee: u128 & AugmentedConst; - /** - * The length of the `ChallengesQueue` StorageValue. - * This is to limit the size of the queue, and therefore the number of - * manual challenges that can be made. - **/ - challengesQueueLength: u32 & AugmentedConst; - /** - * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that - * a Provider has to submit a proof, counting from the tick the challenge is emitted for - * that Provider. - * - * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance - * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before - * `n + t`. - **/ - challengeTicksTolerance: u32 & AugmentedConst; - /** - * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). - * This is used to determine when to include the challenges from the `ChallengesQueue` and - * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge - * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` - * extrinsic. - * - * WARNING: This period needs to be equal or larger than the challenge period of the smallest - * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), - * then the checkpoint challenge period needs to be at least 10 ticks. - **/ - checkpointChallengePeriod: u32 & AugmentedConst; - /** - * The maximum number of custom challenges that can be made in a single checkpoint block. - **/ - maxCustomChallengesPerBlock: u32 & AugmentedConst; - /** - * The maximum amount of Providers that can submit a proof in a single block. - * Although this can be seen as an arbitrary limit, if set to the already existing - * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of - * a block, this wouldn't add any additional artificial limit. - **/ - maxSubmittersPerTick: u32 & AugmentedConst; - /** - * The minimum period in which a Provider can be challenged, regardless of their stake. - **/ - minChallengePeriod: u32 & AugmentedConst; - /** - * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, - * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. - * - * If less than this percentage of blocks are not full, the networks is considered to be presumably - * under a spam attack. - * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, - * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` - * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning - * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. - **/ - minNotFullBlocksRatio: Perbill & AugmentedConst; - /** - * The number of random challenges that are generated per block, using the random seed - * generated for that block. - **/ - randomChallengesPerBlock: u32 & AugmentedConst; - /** - * The ratio to convert staked balance to block period. - * This is used to determine the period in which a Provider should submit a proof, based on - * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. - **/ - stakeToChallengePeriod: u128 & AugmentedConst; - /** - * The target number of ticks for which to store the submitters that submitted valid proofs in them, - * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number - * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. - **/ - targetTicksStorageOfSubmitters: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - providers: { - /** - * The amount that an account has to deposit to create a bucket. - **/ - bucketDeposit: u128 & AugmentedConst; - /** - * Type that represents the byte limit of a bucket name. - **/ - bucketNameLimit: u32 & AugmentedConst; - /** - * The default value of the root of the Merkle Patricia Trie of the runtime - **/ - defaultMerkleRoot: H256 & AugmentedConst; - /** - * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. - **/ - depositPerData: u128 & AugmentedConst; - /** - * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen - **/ - maxBlocksForRandomness: u32 & AugmentedConst; - /** - * The maximum amount of Buckets that a MSP can have. - **/ - maxBuckets: u32 & AugmentedConst; - /** - * The estimated maximum size of an unknown file. - * - * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. - **/ - maxFileSize: u64 & AugmentedConst; - /** - * The maximum amount of multiaddresses that a Storage Provider can have. - **/ - maxMultiAddressAmount: u32 & AugmentedConst; - /** - * The maximum size of a multiaddress. - **/ - maxMultiAddressSize: u32 & AugmentedConst; - /** - * The maximum number of protocols the MSP can support (at least within the runtime). - **/ - maxProtocols: u32 & AugmentedConst; - /** - * The minimum amount of blocks between capacity changes for a SP - **/ - minBlocksBetweenCapacityChanges: u32 & AugmentedConst; - /** - * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. - **/ - slashAmountPerMaxFileSize: u128 & AugmentedConst; - /** - * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. - **/ - spMinCapacity: u64 & AugmentedConst; - /** - * The minimum amount that an account has to deposit to become a storage provider. - **/ - spMinDeposit: u128 & AugmentedConst; - /** - * Starting reputation weight for a newly registered BSP. - **/ - startingReputationWeight: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - system: { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - **/ - blockHashCount: u32 & AugmentedConst; - /** - * The maximum length of a block (in bytes). - **/ - blockLength: FrameSystemLimitsBlockLength & AugmentedConst; - /** - * Block & extrinsics weights: base values and limits. - **/ - blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; - /** - * The weight of runtime database operations the runtime can invoke. - **/ - dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - **/ - ss58Prefix: u16 & AugmentedConst; - /** - * Get the chain's in-code version. - **/ - version: SpVersionRuntimeVersion & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - timestamp: { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - **/ - minimumPeriod: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - transactionPayment: { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - **/ - operationalFeeMultiplier: u8 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - xcmpQueue: { - /** - * Maximal number of outbound XCMP channels that can have messages queued at the same time. - * - * If this is reached, then no further messages can be sent to channels that do not yet - * have a message queued. This should be set to the expected maximum of outbound channels - * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, - * since otherwise the congestion control protocol will not work as intended and messages - * may be dropped. This value increases the PoV and should therefore not be picked too - * high. Governance needs to pay attention to not open more channels than this value. - **/ - maxActiveOutboundChannels: u32 & AugmentedConst; - /** - * The maximum number of inbound XCMP channels that can be suspended simultaneously. - * - * Any further channel suspensions will fail and messages may get dropped without further - * notice. Choosing a high value (1000) is okay; the trade-off that is described in - * [`InboundXcmpSuspended`] still applies at that scale. - **/ - maxInboundSuspended: u32 & AugmentedConst; - /** - * The maximal page size for HRMP message pages. - * - * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case - * benchmarking. The limit for the size of a message is slightly below this, since some - * overhead is incurred for encoding the format. - **/ - maxPageSize: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - } -} +import "@polkadot/api-base/types/consts"; +import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; +import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; +import type { Codec } from "@polkadot/types-codec/types"; +import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; +import type { + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight +} from "@polkadot/types/lookup"; +export type __AugmentedConst = AugmentedConst; +declare module "@polkadot/api-base/types/consts" { + interface AugmentedConsts { + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fileSystem: { + /** + * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. + **/ + maxBatchConfirmStorageRequests: u32 & AugmentedConst; + /** + * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. + **/ + maxBatchMspRespondStorageRequests: u32 & AugmentedConst; + /** + * Maximum number of SPs (MSP + BSPs) that can store a file. + * + * This is used to limit the number of BSPs storing a file and claiming rewards for it. + * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. + **/ + maxBspsPerStorageRequest: u32 & AugmentedConst; + /** + * Maximum number of multiaddresses for a storage request. + **/ + maxDataServerMultiAddresses: u32 & AugmentedConst; + /** + * Maximum number of expired items (per type) to clean up in a single block. + **/ + maxExpiredItemsInBlock: u32 & AugmentedConst; + /** + * Maximum byte size of a file path. + **/ + maxFilePathSize: u32 & AugmentedConst; + /** + * Maximum number of peer ids for a storage request. + **/ + maxNumberOfPeerIds: u32 & AugmentedConst; + /** + * Maximum byte size of a peer id. + **/ + maxPeerIdSize: u32 & AugmentedConst; + /** + * Maximum number of file deletion requests a user can have pending. + **/ + maxUserPendingDeletionRequests: u32 & AugmentedConst; + /** + * Maximum number of move bucket requests a user can have pending. + **/ + maxUserPendingMoveBucketRequests: u32 & AugmentedConst; + /** + * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. + **/ + minWaitForStopStoring: u32 & AugmentedConst; + /** + * Time-to-live for a move bucket request, after which the request is considered expired. + **/ + moveBucketRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. + **/ + pendingFileDeletionRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a storage request. + **/ + storageRequestTtl: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + parachainSystem: { + /** + * Returns the parachain ID we are running with. + **/ + selfParaId: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + paymentStreams: { + /** + * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. + * This means that, from the balance of the User for which the payment stream is being created, the amount + * `NewStreamDeposit * rate` will be held as a deposit. + * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has + * to be provided by the pallet using the `PaymentStreamsInterface` interface. + **/ + newStreamDeposit: u32 & AugmentedConst; + /** + * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag + * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. + **/ + userWithoutFundsCooldown: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proofsDealer: { + /** + * The minimum unused weight that a block must have to be considered _not_ full. + * + * This is used as part of the criteria for checking if the network is presumably under a spam attack. + * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would + * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. + **/ + blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; + /** + * The period of blocks for which the block fullness is checked. + * + * This is the amount of blocks from the past, for which the block fullness has been checked + * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are + * cleared from storage. + * + * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, + * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting + * their proofs in time. + **/ + blockFullnessPeriod: u32 & AugmentedConst; + /** + * The number of ticks that challenges history is kept for. + * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. + * A "tick" is usually one block, but some blocks may be skipped due to migrations. + **/ + challengeHistoryLength: u32 & AugmentedConst; + /** + * The fee charged for submitting a challenge. + * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are + * exempt from this fee. + **/ + challengesFee: u128 & AugmentedConst; + /** + * The length of the `ChallengesQueue` StorageValue. + * This is to limit the size of the queue, and therefore the number of + * manual challenges that can be made. + **/ + challengesQueueLength: u32 & AugmentedConst; + /** + * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that + * a Provider has to submit a proof, counting from the tick the challenge is emitted for + * that Provider. + * + * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance + * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before + * `n + t`. + **/ + challengeTicksTolerance: u32 & AugmentedConst; + /** + * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). + * This is used to determine when to include the challenges from the `ChallengesQueue` and + * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge + * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` + * extrinsic. + * + * WARNING: This period needs to be equal or larger than the challenge period of the smallest + * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), + * then the checkpoint challenge period needs to be at least 10 ticks. + **/ + checkpointChallengePeriod: u32 & AugmentedConst; + /** + * The maximum number of custom challenges that can be made in a single checkpoint block. + **/ + maxCustomChallengesPerBlock: u32 & AugmentedConst; + /** + * The maximum amount of Providers that can submit a proof in a single block. + * Although this can be seen as an arbitrary limit, if set to the already existing + * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of + * a block, this wouldn't add any additional artificial limit. + **/ + maxSubmittersPerTick: u32 & AugmentedConst; + /** + * The minimum period in which a Provider can be challenged, regardless of their stake. + **/ + minChallengePeriod: u32 & AugmentedConst; + /** + * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, + * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. + * + * If less than this percentage of blocks are not full, the networks is considered to be presumably + * under a spam attack. + * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, + * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` + * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning + * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. + **/ + minNotFullBlocksRatio: Perbill & AugmentedConst; + /** + * The number of random challenges that are generated per block, using the random seed + * generated for that block. + **/ + randomChallengesPerBlock: u32 & AugmentedConst; + /** + * The ratio to convert staked balance to block period. + * This is used to determine the period in which a Provider should submit a proof, based on + * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. + **/ + stakeToChallengePeriod: u128 & AugmentedConst; + /** + * The target number of ticks for which to store the submitters that submitted valid proofs in them, + * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number + * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. + **/ + targetTicksStorageOfSubmitters: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + providers: { + /** + * The amount that an account has to deposit to create a bucket. + **/ + bucketDeposit: u128 & AugmentedConst; + /** + * Type that represents the byte limit of a bucket name. + **/ + bucketNameLimit: u32 & AugmentedConst; + /** + * The default value of the root of the Merkle Patricia Trie of the runtime + **/ + defaultMerkleRoot: H256 & AugmentedConst; + /** + * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. + **/ + depositPerData: u128 & AugmentedConst; + /** + * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen + **/ + maxBlocksForRandomness: u32 & AugmentedConst; + /** + * The maximum amount of Buckets that a MSP can have. + **/ + maxBuckets: u32 & AugmentedConst; + /** + * The estimated maximum size of an unknown file. + * + * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. + **/ + maxFileSize: u64 & AugmentedConst; + /** + * The maximum amount of multiaddresses that a Storage Provider can have. + **/ + maxMultiAddressAmount: u32 & AugmentedConst; + /** + * The maximum size of a multiaddress. + **/ + maxMultiAddressSize: u32 & AugmentedConst; + /** + * The maximum number of protocols the MSP can support (at least within the runtime). + **/ + maxProtocols: u32 & AugmentedConst; + /** + * The minimum amount of blocks between capacity changes for a SP + **/ + minBlocksBetweenCapacityChanges: u32 & AugmentedConst; + /** + * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. + **/ + slashAmountPerMaxFileSize: u128 & AugmentedConst; + /** + * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. + **/ + spMinCapacity: u64 & AugmentedConst; + /** + * The minimum amount that an account has to deposit to become a storage provider. + **/ + spMinDeposit: u128 & AugmentedConst; + /** + * Starting reputation weight for a newly registered BSP. + **/ + startingReputationWeight: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: FrameSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: SpVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; + /** + * The maximum number of inbound XCMP channels that can be suspended simultaneously. + * + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ + maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-errors.d.ts b/api-augment/dist/types/interfaces/augment-api-errors.d.ts index 152d60dc6..3786e0eaf 100644 --- a/api-augment/dist/types/interfaces/augment-api-errors.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-errors.d.ts @@ -1,1195 +1,1195 @@ -import "@polkadot/api-base/types/errors"; -import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; -export type __AugmentedError = AugmentedError; -declare module "@polkadot/api-base/types/errors" { - interface AugmentedErrors { - balances: { - /** - * Beneficiary account must pre-exist. - **/ - DeadAccount: AugmentedError; - /** - * The delta cannot be zero. - **/ - DeltaZero: AugmentedError; - /** - * Value too low to create account due to existential deposit. - **/ - ExistentialDeposit: AugmentedError; - /** - * A vesting schedule already exists for this account. - **/ - ExistingVestingSchedule: AugmentedError; - /** - * Transfer/payment would kill account. - **/ - Expendability: AugmentedError; - /** - * Balance too low to send value. - **/ - InsufficientBalance: AugmentedError; - /** - * The issuance cannot be modified since it is already deactivated. - **/ - IssuanceDeactivated: AugmentedError; - /** - * Account liquidity restrictions prevent withdrawal. - **/ - LiquidityRestrictions: AugmentedError; - /** - * Number of freezes exceed `MaxFreezes`. - **/ - TooManyFreezes: AugmentedError; - /** - * Number of holds exceed `VariantCountOf`. - **/ - TooManyHolds: AugmentedError; - /** - * Number of named reserves exceed `MaxReserves`. - **/ - TooManyReserves: AugmentedError; - /** - * Vesting balance too high to send value. - **/ - VestingBalance: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - bucketNfts: { - /** - * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Failed to convert bytes to `BoundedVec` - **/ - ConvertBytesToBoundedVec: AugmentedError; - /** - * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - NoCorrespondingCollection: AugmentedError; - /** - * Account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - collatorSelection: { - /** - * Account is already a candidate. - **/ - AlreadyCandidate: AugmentedError; - /** - * Account is already an Invulnerable. - **/ - AlreadyInvulnerable: AugmentedError; - /** - * New deposit amount would be below the minimum candidacy bond. - **/ - DepositTooLow: AugmentedError; - /** - * The updated deposit amount is equal to the amount already reserved. - **/ - IdenticalDeposit: AugmentedError; - /** - * Could not insert in the candidate list. - **/ - InsertToCandidateListFailed: AugmentedError; - /** - * Deposit amount is too low to take the target's slot in the candidate list. - **/ - InsufficientBond: AugmentedError; - /** - * Cannot lower candidacy bond while occupying a future collator slot in the list. - **/ - InvalidUnreserve: AugmentedError; - /** - * Account has no associated validator ID. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * Account is not a candidate. - **/ - NotCandidate: AugmentedError; - /** - * Account is not an Invulnerable. - **/ - NotInvulnerable: AugmentedError; - /** - * Could not remove from the candidate list. - **/ - RemoveFromCandidateListFailed: AugmentedError; - /** - * The target account to be replaced in the candidate list is not a candidate. - **/ - TargetIsNotCandidate: AugmentedError; - /** - * Leaving would result in too few candidates. - **/ - TooFewEligibleCollators: AugmentedError; - /** - * The pallet has too many candidates. - **/ - TooManyCandidates: AugmentedError; - /** - * There are too many Invulnerables. - **/ - TooManyInvulnerables: AugmentedError; - /** - * Could not update the candidate list. - **/ - UpdateCandidateListFailed: AugmentedError; - /** - * Validator ID is not yet registered. - **/ - ValidatorNotRegistered: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - fileSystem: { - /** - * BSP did not succeed threshold check. - **/ - AboveThreshold: AugmentedError; - /** - * BSP has already confirmed storing the given file. - **/ - BspAlreadyConfirmed: AugmentedError; - /** - * BSP is already a data server for the move bucket request. - **/ - BspAlreadyDataServer: AugmentedError; - /** - * BSP already volunteered to store the given file. - **/ - BspAlreadyVolunteered: AugmentedError; - /** - * Too many registered data servers for the move bucket request. - **/ - BspDataServersExceeded: AugmentedError; - /** - * BSP has not confirmed storing the given file. - **/ - BspNotConfirmed: AugmentedError; - /** - * BSP has not volunteered to store the given file. - **/ - BspNotVolunteered: AugmentedError; - /** - * BSPs required for storage request cannot exceed the maximum allowed. - **/ - BspsRequiredExceedsTarget: AugmentedError; - /** - * Action not allowed while the bucket is being moved. - **/ - BucketIsBeingMoved: AugmentedError; - /** - * Bucket is not private. Call `update_bucket_privacy` to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Bucket does not exist - **/ - BucketNotFound: AugmentedError; - /** - * Divided by 0 - **/ - DividedByZero: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of inclusion. - **/ - ExpectedInclusionProof: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of non-inclusion. - **/ - ExpectedNonInclusionProof: AugmentedError; - /** - * Failed to decode threshold. - **/ - FailedToDecodeThreshold: AugmentedError; - /** - * Failed to encode BSP id as slice. - **/ - FailedToEncodeBsp: AugmentedError; - /** - * Failed to encode fingerprint as slice. - **/ - FailedToEncodeFingerprint: AugmentedError; - /** - * Failed to convert to primitive type. - **/ - FailedTypeConversion: AugmentedError; - /** - * File key already pending deletion. - **/ - FileKeyAlreadyPendingDeletion: AugmentedError; - /** - * File key not found in pending deletion requests. - **/ - FileKeyNotPendingDeletion: AugmentedError; - /** - * The bounded vector that holds file metadata to process it is full but there's still more to process. - **/ - FileMetadataProcessingQueueFull: AugmentedError; - /** - * File size cannot be zero. - **/ - FileSizeCannotBeZero: AugmentedError; - /** - * Failed to get value when just checked it existed. - **/ - ImpossibleFailedToGetValue: AugmentedError; - /** - * Key already exists in mapping when it should not. - **/ - InconsistentStateKeyAlreadyExists: AugmentedError; - /** - * SP does not have enough storage capacity to store the file. - **/ - InsufficientAvailableCapacity: AugmentedError; - /** - * Bucket id and file key pair is invalid. - **/ - InvalidBucketIdFileKeyPair: AugmentedError; - /** - * Metadata does not correspond to expected file key. - **/ - InvalidFileKeyMetadata: AugmentedError; - /** - * Error created in 2024. If you see this, you are well beyond the singularity and should - * probably stop using this pallet. - **/ - MaxBlockNumberReached: AugmentedError; - /** - * Maximum threshold cannot be zero. - **/ - MaximumThresholdCannotBeZero: AugmentedError; - /** - * Max number of user pending deletion requests reached. - **/ - MaxUserPendingDeletionRequestsReached: AugmentedError; - /** - * Minimum amount of blocks between the request opening and being able to confirm it not reached. - **/ - MinWaitForStopStoringNotReached: AugmentedError; - /** - * Move bucket request not found in storage. - **/ - MoveBucketRequestNotFound: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. - **/ - MspAlreadyConfirmed: AugmentedError; - /** - * The MSP is already storing the bucket. - **/ - MspAlreadyStoringBucket: AugmentedError; - /** - * Unauthorized operation, signer is not an MSP of the bucket id. - **/ - MspNotStoringBucket: AugmentedError; - /** - * No global reputation weight set. - **/ - NoGlobalReputationWeightSet: AugmentedError; - /** - * Account is not a BSP. - **/ - NotABsp: AugmentedError; - /** - * Account is not a MSP. - **/ - NotAMsp: AugmentedError; - /** - * Account is not a SP. - **/ - NotASp: AugmentedError; - /** - * Operation failed because the account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Unauthorized operation, signer does not own the file. - **/ - NotFileOwner: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. - **/ - NotSelectedMsp: AugmentedError; - /** - * Pending stop storing request already exists. - **/ - PendingStopStoringRequestAlreadyExists: AugmentedError; - /** - * Pending stop storing request not found. - **/ - PendingStopStoringRequestNotFound: AugmentedError; - /** - * Root of the provider not found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * Replication target cannot be zero. - **/ - ReplicationTargetCannotBeZero: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. - **/ - RequestWithoutMsp: AugmentedError; - /** - * Storage request already registered for the given file. - **/ - StorageRequestAlreadyRegistered: AugmentedError; - /** - * Number of BSPs required for storage request has been reached. - **/ - StorageRequestBspsRequiredFulfilled: AugmentedError; - /** - * Operation not allowed while the storage request exists. - **/ - StorageRequestExists: AugmentedError; - /** - * No slot available found in blocks to insert storage request expiration time. - **/ - StorageRequestExpiredNoSlotAvailable: AugmentedError; - /** - * Not authorized to delete the storage request. - **/ - StorageRequestNotAuthorized: AugmentedError; - /** - * Storage request not registered for the given file. - **/ - StorageRequestNotFound: AugmentedError; - /** - * Operation not allowed while the storage request is not being revoked. - **/ - StorageRequestNotRevoked: AugmentedError; - /** - * Arithmetic error in threshold calculation. - **/ - ThresholdArithmeticError: AugmentedError; - /** - * BSPs assignment threshold cannot be below asymptote. - **/ - ThresholdBelowAsymptote: AugmentedError; - /** - * Tick range to maximum threshold cannot be zero. - **/ - TickRangeToMaximumThresholdCannotBeZero: AugmentedError; - /** - * Too many batch responses to process. - **/ - TooManyBatchResponses: AugmentedError; - /** - * Too many storage request responses. - **/ - TooManyStorageRequestResponses: AugmentedError; - /** - * Number of removed BSPs volunteered from storage request prefix did not match the expected number. - **/ - UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; - /** - * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. - **/ - UserNotInsolvent: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - messageQueue: { - /** - * The message was already processed and cannot be processed again. - **/ - AlreadyProcessed: AugmentedError; - /** - * There is temporarily not enough weight to continue servicing messages. - **/ - InsufficientWeight: AugmentedError; - /** - * The referenced message could not be found. - **/ - NoMessage: AugmentedError; - /** - * Page to be reaped does not exist. - **/ - NoPage: AugmentedError; - /** - * Page is not reapable because it has items remaining to be processed and is not old - * enough. - **/ - NotReapable: AugmentedError; - /** - * The message is queued for future execution. - **/ - Queued: AugmentedError; - /** - * The queue is paused and no message can be executed from it. - * - * This can change at any time and may resolve in the future by re-trying. - **/ - QueuePaused: AugmentedError; - /** - * Another call is in progress and needs to finish before this call can happen. - **/ - RecursiveDisallowed: AugmentedError; - /** - * This message is temporarily unprocessable. - * - * Such errors are expected, but not guaranteed, to resolve themselves eventually through - * retrying. - **/ - TemporarilyUnprocessable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - nfts: { - /** - * The provided Item was already used for claiming. - **/ - AlreadyClaimed: AugmentedError; - /** - * The item ID has already been used for an item. - **/ - AlreadyExists: AugmentedError; - /** - * The approval had a deadline that expired, so the approval isn't valid anymore. - **/ - ApprovalExpired: AugmentedError; - /** - * The provided attribute can't be found. - **/ - AttributeNotFound: AugmentedError; - /** - * The witness data given does not match the current state of the chain. - **/ - BadWitness: AugmentedError; - /** - * The provided bid is too low. - **/ - BidTooLow: AugmentedError; - /** - * Collection ID is already taken. - **/ - CollectionIdInUse: AugmentedError; - /** - * Can't delete non-empty collections. - **/ - CollectionNotEmpty: AugmentedError; - /** - * The deadline has already expired. - **/ - DeadlineExpired: AugmentedError; - /** - * Item's config already exists and should be equal to the provided one. - **/ - InconsistentItemConfig: AugmentedError; - /** - * The provided data is incorrect. - **/ - IncorrectData: AugmentedError; - /** - * The provided metadata might be too long. - **/ - IncorrectMetadata: AugmentedError; - /** - * The item is locked (non-transferable). - **/ - ItemLocked: AugmentedError; - /** - * Items within that collection are non-transferable. - **/ - ItemsNonTransferable: AugmentedError; - /** - * Collection's attributes are locked. - **/ - LockedCollectionAttributes: AugmentedError; - /** - * Collection's metadata is locked. - **/ - LockedCollectionMetadata: AugmentedError; - /** - * Item's attributes are locked. - **/ - LockedItemAttributes: AugmentedError; - /** - * Item's metadata is locked. - **/ - LockedItemMetadata: AugmentedError; - /** - * Can't set more attributes per one call. - **/ - MaxAttributesLimitReached: AugmentedError; - /** - * The max supply is locked and can't be changed. - **/ - MaxSupplyLocked: AugmentedError; - /** - * All items have been minted. - **/ - MaxSupplyReached: AugmentedError; - /** - * The provided max supply is less than the number of items a collection already has. - **/ - MaxSupplyTooSmall: AugmentedError; - /** - * The given item has no metadata set. - **/ - MetadataNotFound: AugmentedError; - /** - * The method is disabled by system settings. - **/ - MethodDisabled: AugmentedError; - /** - * Mint has already ended. - **/ - MintEnded: AugmentedError; - /** - * Mint has not started yet. - **/ - MintNotStarted: AugmentedError; - /** - * Config for a collection or an item can't be found. - **/ - NoConfig: AugmentedError; - /** - * The signing account has no permission to do the operation. - **/ - NoPermission: AugmentedError; - /** - * The provided account is not a delegate. - **/ - NotDelegate: AugmentedError; - /** - * Item is not for sale. - **/ - NotForSale: AugmentedError; - /** - * The item has reached its approval limit. - **/ - ReachedApprovalLimit: AugmentedError; - /** - * Some roles were not cleared. - **/ - RolesNotCleared: AugmentedError; - /** - * The named owner has not signed ownership acceptance of the collection. - **/ - Unaccepted: AugmentedError; - /** - * No approval exists that would allow the transfer. - **/ - Unapproved: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownCollection: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownItem: AugmentedError; - /** - * Swap doesn't exist. - **/ - UnknownSwap: AugmentedError; - /** - * The witness data should be provided. - **/ - WitnessRequired: AugmentedError; - /** - * The delegate turned out to be different to what was expected. - **/ - WrongDelegate: AugmentedError; - /** - * The duration provided should be less than or equal to `MaxDeadlineDuration`. - **/ - WrongDuration: AugmentedError; - /** - * The provided namespace isn't supported in this call. - **/ - WrongNamespace: AugmentedError; - /** - * The extrinsic was sent by the wrong origin. - **/ - WrongOrigin: AugmentedError; - /** - * The owner turned out to be different to what was expected. - **/ - WrongOwner: AugmentedError; - /** - * The provided setting can't be set. - **/ - WrongSetting: AugmentedError; - /** - * The provided signature is incorrect. - **/ - WrongSignature: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - parachainSystem: { - /** - * The inherent which supplies the host configuration did not run this block. - **/ - HostConfigurationNotAvailable: AugmentedError; - /** - * No code upgrade has been authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * No validation function upgrade is currently scheduled. - **/ - NotScheduled: AugmentedError; - /** - * Attempt to upgrade validation function while existing upgrade pending. - **/ - OverlappingUpgrades: AugmentedError; - /** - * Polkadot currently prohibits this parachain from upgrading its validation function. - **/ - ProhibitedByPolkadot: AugmentedError; - /** - * The supplied validation function has compiled into a blob larger than Polkadot is - * willing to run. - **/ - TooBig: AugmentedError; - /** - * The given code upgrade has not been authorized. - **/ - Unauthorized: AugmentedError; - /** - * The inherent which supplies the validation data did not run this block. - **/ - ValidationDataNotAvailable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - paymentStreams: { - /** - * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) - **/ - AmountProvidedCantBeZero: AugmentedError; - /** - * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when charging a payment stream would result in an overflow of the balance type - **/ - ChargeOverflow: AugmentedError; - /** - * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed - **/ - CooldownPeriodNotPassed: AugmentedError; - /** - * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number - **/ - InvalidLastChargeableBlockNumber: AugmentedError; - /** - * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index - **/ - InvalidLastChargeablePriceIndex: AugmentedError; - /** - * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick - **/ - LastChargedGreaterThanLastChargeable: AugmentedError; - /** - * Error thrown when a user tries to charge a payment stream and it's not a registered Provider - **/ - NotAProvider: AugmentedError; - /** - * Error thrown when a user of this pallet tries to add a payment stream that already exists. - **/ - PaymentStreamAlreadyExists: AugmentedError; - /** - * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when failing to get the payment account of a registered Provider - **/ - ProviderInconsistencyError: AugmentedError; - /** - * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) - **/ - RateCantBeZero: AugmentedError; - /** - * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before - **/ - UpdateAmountToSameAmount: AugmentedError; - /** - * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before - **/ - UpdateRateToSameRate: AugmentedError; - /** - * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt - **/ - UserNotFlaggedAsWithoutFunds: AugmentedError; - /** - * Error thrown when trying to operate when the User has been flagged for not having enough funds. - **/ - UserWithoutFunds: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - polkadotXcm: { - /** - * The given account is not an identifiable sovereign account for any location. - **/ - AccountNotSovereign: AugmentedError; - /** - * The location is invalid since it already has a subscription from us. - **/ - AlreadySubscribed: AugmentedError; - /** - * The given location could not be used (e.g. because it cannot be expressed in the - * desired version of XCM). - **/ - BadLocation: AugmentedError; - /** - * The version of the `Versioned` value used is not able to be interpreted. - **/ - BadVersion: AugmentedError; - /** - * Could not check-out the assets for teleportation to the destination chain. - **/ - CannotCheckOutTeleport: AugmentedError; - /** - * Could not re-anchor the assets to declare the fees for the destination chain. - **/ - CannotReanchor: AugmentedError; - /** - * The destination `Location` provided cannot be inverted. - **/ - DestinationNotInvertible: AugmentedError; - /** - * The assets to be sent are empty. - **/ - Empty: AugmentedError; - /** - * The operation required fees to be paid which the initiator could not meet. - **/ - FeesNotMet: AugmentedError; - /** - * The message execution fails the filter. - **/ - Filtered: AugmentedError; - /** - * The unlock operation cannot succeed because there are still consumers of the lock. - **/ - InUse: AugmentedError; - /** - * Invalid asset, reserve chain could not be determined for it. - **/ - InvalidAssetUnknownReserve: AugmentedError; - /** - * Invalid asset, do not support remote asset reserves with different fees reserves. - **/ - InvalidAssetUnsupportedReserve: AugmentedError; - /** - * Origin is invalid for sending. - **/ - InvalidOrigin: AugmentedError; - /** - * Local XCM execution incomplete. - **/ - LocalExecutionIncomplete: AugmentedError; - /** - * A remote lock with the corresponding data could not be found. - **/ - LockNotFound: AugmentedError; - /** - * The owner does not own (all) of the asset that they wish to do the operation on. - **/ - LowBalance: AugmentedError; - /** - * The referenced subscription could not be found. - **/ - NoSubscription: AugmentedError; - /** - * There was some other issue (i.e. not to do with routing) in sending the message. - * Perhaps a lack of space for buffering the message. - **/ - SendFailure: AugmentedError; - /** - * Too many assets have been attempted for transfer. - **/ - TooManyAssets: AugmentedError; - /** - * The asset owner has too many locks on the asset. - **/ - TooManyLocks: AugmentedError; - /** - * Too many assets with different reserve locations have been attempted for transfer. - **/ - TooManyReserves: AugmentedError; - /** - * The desired destination was unreachable, generally because there is a no way of routing - * to it. - **/ - Unreachable: AugmentedError; - /** - * The message's weight could not be determined. - **/ - UnweighableMessage: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - proofsDealer: { - /** - * `challenge` extrinsic errors - * The ChallengesQueue is full. No more manual challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - ChallengesQueueOverflow: AugmentedError; - /** - * Provider is submitting a proof for a tick in the future. - **/ - ChallengesTickNotReached: AugmentedError; - /** - * Provider is submitting a proof for a tick too late, i.e. that the challenges tick - * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. - **/ - ChallengesTickTooLate: AugmentedError; - /** - * Provider is submitting a proof for a tick before the last tick this pallet registers - * challenges for. - **/ - ChallengesTickTooOld: AugmentedError; - /** - * Checkpoint challenges not found in block. - * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick - * that is not a checkpoint tick. - **/ - CheckpointChallengesNotFound: AugmentedError; - /** - * `submit_proof` extrinsic errors - * There are no key proofs submitted. - **/ - EmptyKeyProofs: AugmentedError; - /** - * Failed to apply delta to the forest proof partial trie. - **/ - FailedToApplyDelta: AugmentedError; - /** - * Failed to update the provider after a key removal mutation. - **/ - FailedToUpdateProviderAfterKeyRemoval: AugmentedError; - /** - * The fee for submitting a challenge could not be charged. - **/ - FeeChargeFailed: AugmentedError; - /** - * The forest proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root, or because the proof is - * not sufficient for the challenges made. - **/ - ForestProofVerificationFailed: AugmentedError; - /** - * There is at least one key proven in the forest proof, that does not have a corresponding - * key proof. - **/ - KeyProofNotFound: AugmentedError; - /** - * A key proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root of that key, or because the proof - * is not sufficient for the challenges made. - **/ - KeyProofVerificationFailed: AugmentedError; - /** - * Provider is submitting a proof but there is no record of the last tick they - * submitted a proof for. - * Providers who are required to submit proofs should always have a record of the - * last tick they submitted a proof for, otherwise it means they haven't started - * providing service for any user yet. - **/ - NoRecordOfLastSubmittedProof: AugmentedError; - /** - * General errors - * The proof submitter is not a registered Provider. - **/ - NotProvider: AugmentedError; - /** - * The PriorityChallengesQueue is full. No more priority challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - PriorityChallengesQueueOverflow: AugmentedError; - /** - * The root for the Provider could not be found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * The provider stake could not be found. - **/ - ProviderStakeNotFound: AugmentedError; - /** - * The seed for the tick could not be found. - * This should not be possible for a tick within the `ChallengeHistoryLength` range, as - * seeds are generated for all ticks, and stored within this range. - **/ - SeedNotFound: AugmentedError; - /** - * The staked balance of the Provider could not be converted to `u128`. - * This should not be possible, as the `Balance` type should be an unsigned integer type. - **/ - StakeCouldNotBeConverted: AugmentedError; - /** - * The limit of Providers that can submit a proof in a single tick has been reached. - **/ - TooManyValidProofSubmitters: AugmentedError; - /** - * Provider is submitting a proof when they have a zero root. - * Providers with zero roots are not providing any service, so they should not be - * submitting proofs. - **/ - ZeroRoot: AugmentedError; - /** - * Provider is submitting a proof but their stake is zero. - **/ - ZeroStake: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - providers: { - /** - * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. - **/ - AlreadyRegistered: AugmentedError; - /** - * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. - **/ - AppendBucketToMspFailed: AugmentedError; - /** - * Error thrown when a bucket ID already exists in storage. - **/ - BucketAlreadyExists: AugmentedError; - /** - * Error thrown when a bucket ID is not found in storage. - **/ - BucketNotFound: AugmentedError; - /** - * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when failing to decode the owner Account ID from the received metadata. - **/ - InvalidEncodedAccountId: AugmentedError; - /** - * Error thrown when failing to decode the metadata from a received trie value that was removed. - **/ - InvalidEncodedFileMetadata: AugmentedError; - /** - * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. - **/ - InvalidMultiAddress: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). - **/ - NewCapacityCantBeZero: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to the same value it already has. - **/ - NewCapacityEqualsCurrentCapacity: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to less than its used storage. - **/ - NewCapacityLessThanUsedStorage: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. - **/ - NewUsedCapacityExceedsStorageCapacity: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a Bucket ID. - **/ - NoBucketId: AugmentedError; - /** - * Error thrown when a user tries to sign up without any multiaddress. - **/ - NoMultiAddress: AugmentedError; - /** - * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. - **/ - NotEnoughBalance: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. - **/ - NotEnoughTimePassed: AugmentedError; - /** - * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. - **/ - NotRegistered: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a User ID. - **/ - NoUserId: AugmentedError; - /** - * Error thrown when trying to update a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when an attempt was made to slash an unslashable Storage Provider. - **/ - ProviderNotSlashable: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. - **/ - RandomnessNotValidYet: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up that was not requested previously. - **/ - SignUpNotRequested: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. - **/ - SignUpRequestExpired: AugmentedError; - /** - * Error thrown when a user tries to request to sign up when it already has a sign up request pending. - **/ - SignUpRequestPending: AugmentedError; - /** - * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). - **/ - SpRegisteredButDataNotFound: AugmentedError; - /** - * Error thrown when a user tries to sign off as a SP but still has used storage. - **/ - StorageStillInUse: AugmentedError; - /** - * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. - **/ - StorageTooLow: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - session: { - /** - * Registered duplicate key. - **/ - DuplicatedKey: AugmentedError; - /** - * Invalid ownership proof. - **/ - InvalidProof: AugmentedError; - /** - * Key setting account is not live, so it's impossible to associate keys. - **/ - NoAccount: AugmentedError; - /** - * No associated validator ID for account. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * No keys are associated with this account. - **/ - NoKeys: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - sudo: { - /** - * Sender must be the Sudo account. - **/ - RequireSudo: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - system: { - /** - * The origin filter prevent the call to be dispatched. - **/ - CallFiltered: AugmentedError; - /** - * Failed to extract the runtime version from the new runtime. - * - * Either calling `Core_version` or decoding `RuntimeVersion` failed. - **/ - FailedToExtractRuntimeVersion: AugmentedError; - /** - * The name of specification does not match between the current runtime - * and the new runtime. - **/ - InvalidSpecName: AugmentedError; - /** - * A multi-block migration is ongoing and prevents the current code from being replaced. - **/ - MultiBlockMigrationsOngoing: AugmentedError; - /** - * Suicide called when the account has non-default composite data. - **/ - NonDefaultComposite: AugmentedError; - /** - * There is a non-zero reference count preventing the account from being purged. - **/ - NonZeroRefCount: AugmentedError; - /** - * No upgrade authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * The specification version is not allowed to decrease between the current runtime - * and the new runtime. - **/ - SpecVersionNeedsToIncrease: AugmentedError; - /** - * The submitted code is not authorized. - **/ - Unauthorized: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - xcmpQueue: { - /** - * The execution is already resumed. - **/ - AlreadyResumed: AugmentedError; - /** - * The execution is already suspended. - **/ - AlreadySuspended: AugmentedError; - /** - * Setting the queue config failed since one of its values was invalid. - **/ - BadQueueConfig: AugmentedError; - /** - * The message is too big. - **/ - TooBig: AugmentedError; - /** - * There are too many active outbound channels. - **/ - TooManyActiveOutboundChannels: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - } -} +import "@polkadot/api-base/types/errors"; +import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; +export type __AugmentedError = AugmentedError; +declare module "@polkadot/api-base/types/errors" { + interface AugmentedErrors { + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bucketNfts: { + /** + * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Failed to convert bytes to `BoundedVec` + **/ + ConvertBytesToBoundedVec: AugmentedError; + /** + * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + NoCorrespondingCollection: AugmentedError; + /** + * Account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + collatorSelection: { + /** + * Account is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * Account is already an Invulnerable. + **/ + AlreadyInvulnerable: AugmentedError; + /** + * New deposit amount would be below the minimum candidacy bond. + **/ + DepositTooLow: AugmentedError; + /** + * The updated deposit amount is equal to the amount already reserved. + **/ + IdenticalDeposit: AugmentedError; + /** + * Could not insert in the candidate list. + **/ + InsertToCandidateListFailed: AugmentedError; + /** + * Deposit amount is too low to take the target's slot in the candidate list. + **/ + InsufficientBond: AugmentedError; + /** + * Cannot lower candidacy bond while occupying a future collator slot in the list. + **/ + InvalidUnreserve: AugmentedError; + /** + * Account has no associated validator ID. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * Account is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * Account is not an Invulnerable. + **/ + NotInvulnerable: AugmentedError; + /** + * Could not remove from the candidate list. + **/ + RemoveFromCandidateListFailed: AugmentedError; + /** + * The target account to be replaced in the candidate list is not a candidate. + **/ + TargetIsNotCandidate: AugmentedError; + /** + * Leaving would result in too few candidates. + **/ + TooFewEligibleCollators: AugmentedError; + /** + * The pallet has too many candidates. + **/ + TooManyCandidates: AugmentedError; + /** + * There are too many Invulnerables. + **/ + TooManyInvulnerables: AugmentedError; + /** + * Could not update the candidate list. + **/ + UpdateCandidateListFailed: AugmentedError; + /** + * Validator ID is not yet registered. + **/ + ValidatorNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fileSystem: { + /** + * BSP did not succeed threshold check. + **/ + AboveThreshold: AugmentedError; + /** + * BSP has already confirmed storing the given file. + **/ + BspAlreadyConfirmed: AugmentedError; + /** + * BSP is already a data server for the move bucket request. + **/ + BspAlreadyDataServer: AugmentedError; + /** + * BSP already volunteered to store the given file. + **/ + BspAlreadyVolunteered: AugmentedError; + /** + * Too many registered data servers for the move bucket request. + **/ + BspDataServersExceeded: AugmentedError; + /** + * BSP has not confirmed storing the given file. + **/ + BspNotConfirmed: AugmentedError; + /** + * BSP has not volunteered to store the given file. + **/ + BspNotVolunteered: AugmentedError; + /** + * BSPs required for storage request cannot exceed the maximum allowed. + **/ + BspsRequiredExceedsTarget: AugmentedError; + /** + * Action not allowed while the bucket is being moved. + **/ + BucketIsBeingMoved: AugmentedError; + /** + * Bucket is not private. Call `update_bucket_privacy` to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Bucket does not exist + **/ + BucketNotFound: AugmentedError; + /** + * Divided by 0 + **/ + DividedByZero: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of inclusion. + **/ + ExpectedInclusionProof: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of non-inclusion. + **/ + ExpectedNonInclusionProof: AugmentedError; + /** + * Failed to decode threshold. + **/ + FailedToDecodeThreshold: AugmentedError; + /** + * Failed to encode BSP id as slice. + **/ + FailedToEncodeBsp: AugmentedError; + /** + * Failed to encode fingerprint as slice. + **/ + FailedToEncodeFingerprint: AugmentedError; + /** + * Failed to convert to primitive type. + **/ + FailedTypeConversion: AugmentedError; + /** + * File key already pending deletion. + **/ + FileKeyAlreadyPendingDeletion: AugmentedError; + /** + * File key not found in pending deletion requests. + **/ + FileKeyNotPendingDeletion: AugmentedError; + /** + * The bounded vector that holds file metadata to process it is full but there's still more to process. + **/ + FileMetadataProcessingQueueFull: AugmentedError; + /** + * File size cannot be zero. + **/ + FileSizeCannotBeZero: AugmentedError; + /** + * Failed to get value when just checked it existed. + **/ + ImpossibleFailedToGetValue: AugmentedError; + /** + * Key already exists in mapping when it should not. + **/ + InconsistentStateKeyAlreadyExists: AugmentedError; + /** + * SP does not have enough storage capacity to store the file. + **/ + InsufficientAvailableCapacity: AugmentedError; + /** + * Bucket id and file key pair is invalid. + **/ + InvalidBucketIdFileKeyPair: AugmentedError; + /** + * Metadata does not correspond to expected file key. + **/ + InvalidFileKeyMetadata: AugmentedError; + /** + * Error created in 2024. If you see this, you are well beyond the singularity and should + * probably stop using this pallet. + **/ + MaxBlockNumberReached: AugmentedError; + /** + * Maximum threshold cannot be zero. + **/ + MaximumThresholdCannotBeZero: AugmentedError; + /** + * Max number of user pending deletion requests reached. + **/ + MaxUserPendingDeletionRequestsReached: AugmentedError; + /** + * Minimum amount of blocks between the request opening and being able to confirm it not reached. + **/ + MinWaitForStopStoringNotReached: AugmentedError; + /** + * Move bucket request not found in storage. + **/ + MoveBucketRequestNotFound: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. + **/ + MspAlreadyConfirmed: AugmentedError; + /** + * The MSP is already storing the bucket. + **/ + MspAlreadyStoringBucket: AugmentedError; + /** + * Unauthorized operation, signer is not an MSP of the bucket id. + **/ + MspNotStoringBucket: AugmentedError; + /** + * No global reputation weight set. + **/ + NoGlobalReputationWeightSet: AugmentedError; + /** + * Account is not a BSP. + **/ + NotABsp: AugmentedError; + /** + * Account is not a MSP. + **/ + NotAMsp: AugmentedError; + /** + * Account is not a SP. + **/ + NotASp: AugmentedError; + /** + * Operation failed because the account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Unauthorized operation, signer does not own the file. + **/ + NotFileOwner: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. + **/ + NotSelectedMsp: AugmentedError; + /** + * Pending stop storing request already exists. + **/ + PendingStopStoringRequestAlreadyExists: AugmentedError; + /** + * Pending stop storing request not found. + **/ + PendingStopStoringRequestNotFound: AugmentedError; + /** + * Root of the provider not found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * Replication target cannot be zero. + **/ + ReplicationTargetCannotBeZero: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. + **/ + RequestWithoutMsp: AugmentedError; + /** + * Storage request already registered for the given file. + **/ + StorageRequestAlreadyRegistered: AugmentedError; + /** + * Number of BSPs required for storage request has been reached. + **/ + StorageRequestBspsRequiredFulfilled: AugmentedError; + /** + * Operation not allowed while the storage request exists. + **/ + StorageRequestExists: AugmentedError; + /** + * No slot available found in blocks to insert storage request expiration time. + **/ + StorageRequestExpiredNoSlotAvailable: AugmentedError; + /** + * Not authorized to delete the storage request. + **/ + StorageRequestNotAuthorized: AugmentedError; + /** + * Storage request not registered for the given file. + **/ + StorageRequestNotFound: AugmentedError; + /** + * Operation not allowed while the storage request is not being revoked. + **/ + StorageRequestNotRevoked: AugmentedError; + /** + * Arithmetic error in threshold calculation. + **/ + ThresholdArithmeticError: AugmentedError; + /** + * BSPs assignment threshold cannot be below asymptote. + **/ + ThresholdBelowAsymptote: AugmentedError; + /** + * Tick range to maximum threshold cannot be zero. + **/ + TickRangeToMaximumThresholdCannotBeZero: AugmentedError; + /** + * Too many batch responses to process. + **/ + TooManyBatchResponses: AugmentedError; + /** + * Too many storage request responses. + **/ + TooManyStorageRequestResponses: AugmentedError; + /** + * Number of removed BSPs volunteered from storage request prefix did not match the expected number. + **/ + UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; + /** + * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. + **/ + UserNotInsolvent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parachainSystem: { + /** + * The inherent which supplies the host configuration did not run this block. + **/ + HostConfigurationNotAvailable: AugmentedError; + /** + * No code upgrade has been authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * No validation function upgrade is currently scheduled. + **/ + NotScheduled: AugmentedError; + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ + OverlappingUpgrades: AugmentedError; + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ + ProhibitedByPolkadot: AugmentedError; + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ + TooBig: AugmentedError; + /** + * The given code upgrade has not been authorized. + **/ + Unauthorized: AugmentedError; + /** + * The inherent which supplies the validation data did not run this block. + **/ + ValidationDataNotAvailable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paymentStreams: { + /** + * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) + **/ + AmountProvidedCantBeZero: AugmentedError; + /** + * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when charging a payment stream would result in an overflow of the balance type + **/ + ChargeOverflow: AugmentedError; + /** + * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed + **/ + CooldownPeriodNotPassed: AugmentedError; + /** + * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number + **/ + InvalidLastChargeableBlockNumber: AugmentedError; + /** + * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index + **/ + InvalidLastChargeablePriceIndex: AugmentedError; + /** + * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick + **/ + LastChargedGreaterThanLastChargeable: AugmentedError; + /** + * Error thrown when a user tries to charge a payment stream and it's not a registered Provider + **/ + NotAProvider: AugmentedError; + /** + * Error thrown when a user of this pallet tries to add a payment stream that already exists. + **/ + PaymentStreamAlreadyExists: AugmentedError; + /** + * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when failing to get the payment account of a registered Provider + **/ + ProviderInconsistencyError: AugmentedError; + /** + * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) + **/ + RateCantBeZero: AugmentedError; + /** + * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before + **/ + UpdateAmountToSameAmount: AugmentedError; + /** + * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before + **/ + UpdateRateToSameRate: AugmentedError; + /** + * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt + **/ + UserNotFlaggedAsWithoutFunds: AugmentedError; + /** + * Error thrown when trying to operate when the User has been flagged for not having enough funds. + **/ + UserWithoutFunds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + polkadotXcm: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proofsDealer: { + /** + * `challenge` extrinsic errors + * The ChallengesQueue is full. No more manual challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + ChallengesQueueOverflow: AugmentedError; + /** + * Provider is submitting a proof for a tick in the future. + **/ + ChallengesTickNotReached: AugmentedError; + /** + * Provider is submitting a proof for a tick too late, i.e. that the challenges tick + * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. + **/ + ChallengesTickTooLate: AugmentedError; + /** + * Provider is submitting a proof for a tick before the last tick this pallet registers + * challenges for. + **/ + ChallengesTickTooOld: AugmentedError; + /** + * Checkpoint challenges not found in block. + * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick + * that is not a checkpoint tick. + **/ + CheckpointChallengesNotFound: AugmentedError; + /** + * `submit_proof` extrinsic errors + * There are no key proofs submitted. + **/ + EmptyKeyProofs: AugmentedError; + /** + * Failed to apply delta to the forest proof partial trie. + **/ + FailedToApplyDelta: AugmentedError; + /** + * Failed to update the provider after a key removal mutation. + **/ + FailedToUpdateProviderAfterKeyRemoval: AugmentedError; + /** + * The fee for submitting a challenge could not be charged. + **/ + FeeChargeFailed: AugmentedError; + /** + * The forest proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root, or because the proof is + * not sufficient for the challenges made. + **/ + ForestProofVerificationFailed: AugmentedError; + /** + * There is at least one key proven in the forest proof, that does not have a corresponding + * key proof. + **/ + KeyProofNotFound: AugmentedError; + /** + * A key proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root of that key, or because the proof + * is not sufficient for the challenges made. + **/ + KeyProofVerificationFailed: AugmentedError; + /** + * Provider is submitting a proof but there is no record of the last tick they + * submitted a proof for. + * Providers who are required to submit proofs should always have a record of the + * last tick they submitted a proof for, otherwise it means they haven't started + * providing service for any user yet. + **/ + NoRecordOfLastSubmittedProof: AugmentedError; + /** + * General errors + * The proof submitter is not a registered Provider. + **/ + NotProvider: AugmentedError; + /** + * The PriorityChallengesQueue is full. No more priority challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + PriorityChallengesQueueOverflow: AugmentedError; + /** + * The root for the Provider could not be found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * The provider stake could not be found. + **/ + ProviderStakeNotFound: AugmentedError; + /** + * The seed for the tick could not be found. + * This should not be possible for a tick within the `ChallengeHistoryLength` range, as + * seeds are generated for all ticks, and stored within this range. + **/ + SeedNotFound: AugmentedError; + /** + * The staked balance of the Provider could not be converted to `u128`. + * This should not be possible, as the `Balance` type should be an unsigned integer type. + **/ + StakeCouldNotBeConverted: AugmentedError; + /** + * The limit of Providers that can submit a proof in a single tick has been reached. + **/ + TooManyValidProofSubmitters: AugmentedError; + /** + * Provider is submitting a proof when they have a zero root. + * Providers with zero roots are not providing any service, so they should not be + * submitting proofs. + **/ + ZeroRoot: AugmentedError; + /** + * Provider is submitting a proof but their stake is zero. + **/ + ZeroStake: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + providers: { + /** + * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. + **/ + AlreadyRegistered: AugmentedError; + /** + * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. + **/ + AppendBucketToMspFailed: AugmentedError; + /** + * Error thrown when a bucket ID already exists in storage. + **/ + BucketAlreadyExists: AugmentedError; + /** + * Error thrown when a bucket ID is not found in storage. + **/ + BucketNotFound: AugmentedError; + /** + * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when failing to decode the owner Account ID from the received metadata. + **/ + InvalidEncodedAccountId: AugmentedError; + /** + * Error thrown when failing to decode the metadata from a received trie value that was removed. + **/ + InvalidEncodedFileMetadata: AugmentedError; + /** + * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. + **/ + InvalidMultiAddress: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). + **/ + NewCapacityCantBeZero: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to the same value it already has. + **/ + NewCapacityEqualsCurrentCapacity: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to less than its used storage. + **/ + NewCapacityLessThanUsedStorage: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. + **/ + NewUsedCapacityExceedsStorageCapacity: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a Bucket ID. + **/ + NoBucketId: AugmentedError; + /** + * Error thrown when a user tries to sign up without any multiaddress. + **/ + NoMultiAddress: AugmentedError; + /** + * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. + **/ + NotEnoughBalance: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. + **/ + NotEnoughTimePassed: AugmentedError; + /** + * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. + **/ + NotRegistered: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a User ID. + **/ + NoUserId: AugmentedError; + /** + * Error thrown when trying to update a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when an attempt was made to slash an unslashable Storage Provider. + **/ + ProviderNotSlashable: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. + **/ + RandomnessNotValidYet: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up that was not requested previously. + **/ + SignUpNotRequested: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. + **/ + SignUpRequestExpired: AugmentedError; + /** + * Error thrown when a user tries to request to sign up when it already has a sign up request pending. + **/ + SignUpRequestPending: AugmentedError; + /** + * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). + **/ + SpRegisteredButDataNotFound: AugmentedError; + /** + * Error thrown when a user tries to sign off as a SP but still has used storage. + **/ + StorageStillInUse: AugmentedError; + /** + * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. + **/ + StorageTooLow: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + sudo: { + /** + * Sender must be the Sudo account. + **/ + RequireSudo: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmpQueue: { + /** + * The execution is already resumed. + **/ + AlreadyResumed: AugmentedError; + /** + * The execution is already suspended. + **/ + AlreadySuspended: AugmentedError; + /** + * Setting the queue config failed since one of its values was invalid. + **/ + BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-events.d.ts b/api-augment/dist/types/interfaces/augment-api-events.d.ts index 5921d4b0f..d6754a5cb 100644 --- a/api-augment/dist/types/interfaces/augment-api-events.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-events.d.ts @@ -1,2374 +1,2374 @@ -import "@polkadot/api-base/types/events"; -import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; -import type { - Bytes, - Null, - Option, - Result, - U8aFixed, - Vec, - bool, - u128, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - FrameSupportDispatchDispatchInfo, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemMspRespondStorageRequestsResult, - PalletNftsAttributeNamespace, - PalletNftsPalletAttributes, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - ShpTraitsTrieRemoveMutation, - SpRuntimeDispatchError, - SpWeightsWeightV2Weight, - StagingXcmV4AssetAssets, - StagingXcmV4Location, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - XcmV3TraitsError, - XcmVersionedAssets, - XcmVersionedLocation -} from "@polkadot/types/lookup"; -export type __AugmentedEvent = AugmentedEvent; -declare module "@polkadot/api-base/types/events" { - interface AugmentedEvents { - balances: { - /** - * A balance was set by root. - **/ - BalanceSet: AugmentedEvent< - ApiType, - [who: AccountId32, free: u128], - { - who: AccountId32; - free: u128; - } - >; - /** - * Some amount was burned from an account. - **/ - Burned: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was deposited (e.g. for transaction fees). - **/ - Deposit: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - **/ - DustLost: AugmentedEvent< - ApiType, - [account: AccountId32, amount: u128], - { - account: AccountId32; - amount: u128; - } - >; - /** - * An account was created with some free balance. - **/ - Endowed: AugmentedEvent< - ApiType, - [account: AccountId32, freeBalance: u128], - { - account: AccountId32; - freeBalance: u128; - } - >; - /** - * Some balance was frozen. - **/ - Frozen: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - **/ - Issued: AugmentedEvent< - ApiType, - [amount: u128], - { - amount: u128; - } - >; - /** - * Some balance was locked. - **/ - Locked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was minted into an account. - **/ - Minted: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - **/ - Rescinded: AugmentedEvent< - ApiType, - [amount: u128], - { - amount: u128; - } - >; - /** - * Some balance was reserved (moved from free to reserved). - **/ - Reserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - **/ - ReserveRepatriated: AugmentedEvent< - ApiType, - [ - from: AccountId32, - to: AccountId32, - amount: u128, - destinationStatus: FrameSupportTokensMiscBalanceStatus - ], - { - from: AccountId32; - to: AccountId32; - amount: u128; - destinationStatus: FrameSupportTokensMiscBalanceStatus; - } - >; - /** - * Some amount was restored into an account. - **/ - Restored: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was removed from the account (e.g. for misbehavior). - **/ - Slashed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was suspended from an account (it can be restored later). - **/ - Suspended: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some balance was thawed. - **/ - Thawed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * The `TotalIssuance` was forcefully changed. - **/ - TotalIssuanceForced: AugmentedEvent< - ApiType, - [old: u128, new_: u128], - { - old: u128; - new_: u128; - } - >; - /** - * Transfer succeeded. - **/ - Transfer: AugmentedEvent< - ApiType, - [from: AccountId32, to: AccountId32, amount: u128], - { - from: AccountId32; - to: AccountId32; - amount: u128; - } - >; - /** - * Some balance was unlocked. - **/ - Unlocked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some balance was unreserved (moved from reserved to free). - **/ - Unreserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * An account was upgraded. - **/ - Upgraded: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - **/ - Withdraw: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - bucketNfts: { - /** - * Notifies that access to a bucket has been shared with another account. - **/ - AccessShared: AugmentedEvent< - ApiType, - [issuer: AccountId32, recipient: AccountId32], - { - issuer: AccountId32; - recipient: AccountId32; - } - >; - /** - * Notifies that an item has been burned. - **/ - ItemBurned: AugmentedEvent< - ApiType, - [account: AccountId32, bucket: H256, itemId: u32], - { - account: AccountId32; - bucket: H256; - itemId: u32; - } - >; - /** - * Notifies that the read access for an item has been updated. - **/ - ItemReadAccessUpdated: AugmentedEvent< - ApiType, - [admin: AccountId32, bucket: H256, itemId: u32], - { - admin: AccountId32; - bucket: H256; - itemId: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - collatorSelection: { - /** - * A new candidate joined. - **/ - CandidateAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { - accountId: AccountId32; - deposit: u128; - } - >; - /** - * Bond of a candidate updated. - **/ - CandidateBondUpdated: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { - accountId: AccountId32; - deposit: u128; - } - >; - /** - * A candidate was removed. - **/ - CandidateRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * An account was replaced in the candidate list by another one. - **/ - CandidateReplaced: AugmentedEvent< - ApiType, - [old: AccountId32, new_: AccountId32, deposit: u128], - { - old: AccountId32; - new_: AccountId32; - deposit: u128; - } - >; - /** - * An account was unable to be added to the Invulnerables because they did not have keys - * registered. Other Invulnerables may have been set. - **/ - InvalidInvulnerableSkipped: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * A new Invulnerable was added. - **/ - InvulnerableAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * An Invulnerable was removed. - **/ - InvulnerableRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * The candidacy bond was set. - **/ - NewCandidacyBond: AugmentedEvent< - ApiType, - [bondAmount: u128], - { - bondAmount: u128; - } - >; - /** - * The number of desired candidates was set. - **/ - NewDesiredCandidates: AugmentedEvent< - ApiType, - [desiredCandidates: u32], - { - desiredCandidates: u32; - } - >; - /** - * New Invulnerables were set. - **/ - NewInvulnerables: AugmentedEvent< - ApiType, - [invulnerables: Vec], - { - invulnerables: Vec; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - cumulusXcm: { - /** - * Downward message executed with the given outcome. - * \[ id, outcome \] - **/ - ExecutedDownward: AugmentedEvent; - /** - * Downward message is invalid XCM. - * \[ id \] - **/ - InvalidFormat: AugmentedEvent; - /** - * Downward message is unsupported version of XCM. - * \[ id \] - **/ - UnsupportedVersion: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - fileSystem: { - /** - * Notifies that a BSP has been accepted to store a given file. - **/ - AcceptedBspVolunteer: AugmentedEvent< - ApiType, - [ - bspId: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - multiaddresses: Vec, - owner: AccountId32, - size_: u64 - ], - { - bspId: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - multiaddresses: Vec; - owner: AccountId32; - size_: u64; - } - >; - /** - * Notifies that a BSP's challenge cycle has been initialised, adding the first file - * key(s) to the BSP's Merkle Patricia Forest. - **/ - BspChallengeCycleInitialised: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { - who: AccountId32; - bspId: H256; - } - >; - /** - * Notifies that a BSP confirmed storing a file(s). - **/ - BspConfirmedStoring: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], - { - who: AccountId32; - bspId: H256; - fileKeys: Vec; - newRoot: H256; - } - >; - /** - * Notifies that a BSP has stopped storing a file. - **/ - BspConfirmStoppedStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, newRoot: H256], - { - bspId: H256; - fileKey: H256; - newRoot: H256; - } - >; - /** - * Notifies that a BSP has opened a request to stop storing a file. - **/ - BspRequestedToStopStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], - { - bspId: H256; - fileKey: H256; - owner: AccountId32; - location: Bytes; - } - >; - /** - * Notifies that a bucket's privacy has been updated. - **/ - BucketPrivacyUpdated: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], - { - who: AccountId32; - bucketId: H256; - collectionId: Option; - private: bool; - } - >; - /** - * Notifies that a data server has been registered for a move bucket request. - **/ - DataServerRegisteredForMoveBucket: AugmentedEvent< - ApiType, - [bspId: H256, bucketId: H256], - { - bspId: H256; - bucketId: H256; - } - >; - /** - * Notifies that a priority challenge failed to be queued for pending file deletion. - **/ - FailedToQueuePriorityChallenge: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256], - { - user: AccountId32; - fileKey: H256; - } - >; - /** - * Notifies that a file will be deleted. - **/ - FileDeletionRequest: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], - { - user: AccountId32; - fileKey: H256; - bucketId: H256; - mspId: H256; - proofOfInclusion: bool; - } - >; - /** - * Notifies that a bucket has been moved to a new MSP. - **/ - MoveBucketAccepted: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { - bucketId: H256; - mspId: H256; - } - >; - /** - * Notifies that a bucket move request has been rejected by the MSP. - **/ - MoveBucketRejected: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { - bucketId: H256; - mspId: H256; - } - >; - /** - * Notifies that a bucket is being moved to a new MSP. - **/ - MoveBucketRequested: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, newMspId: H256], - { - who: AccountId32; - bucketId: H256; - newMspId: H256; - } - >; - /** - * Notifies that a move bucket request has expired. - **/ - MoveBucketRequestExpired: AugmentedEvent< - ApiType, - [mspId: H256, bucketId: H256], - { - mspId: H256; - bucketId: H256; - } - >; - /** - * Notifies that a MSP has responded to storage request(s). - **/ - MspRespondedToStorageRequests: AugmentedEvent< - ApiType, - [results: PalletFileSystemMspRespondStorageRequestsResult], - { - results: PalletFileSystemMspRespondStorageRequestsResult; - } - >; - /** - * Notifies that a new bucket has been created. - **/ - NewBucket: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - bucketId: H256, - name: Bytes, - collectionId: Option, - private: bool - ], - { - who: AccountId32; - mspId: H256; - bucketId: H256; - name: Bytes; - collectionId: Option; - private: bool; - } - >; - /** - * Notifies that a new collection has been created and associated with a bucket. - **/ - NewCollectionAndAssociation: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: u32], - { - who: AccountId32; - bucketId: H256; - collectionId: u32; - } - >; - /** - * Notifies that a new file has been requested to be stored. - **/ - NewStorageRequest: AugmentedEvent< - ApiType, - [ - who: AccountId32, - fileKey: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - size_: u64, - peerIds: Vec - ], - { - who: AccountId32; - fileKey: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - size_: u64; - peerIds: Vec; - } - >; - /** - * Notifies that a file key has been queued for a priority challenge for file deletion. - **/ - PriorityChallengeForFileDeletionQueued: AugmentedEvent< - ApiType, - [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], - { - issuer: PalletFileSystemEitherAccountIdOrMspId; - fileKey: H256; - } - >; - /** - * Notifies that a proof has been submitted for a pending file deletion request. - **/ - ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< - ApiType, - [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], - { - mspId: H256; - user: AccountId32; - fileKey: H256; - bucketId: H256; - proofOfInclusion: bool; - } - >; - /** - * Notifies that a SP has stopped storing a file because its owner has become insolvent. - **/ - SpStopStoringInsolventUser: AugmentedEvent< - ApiType, - [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], - { - spId: H256; - fileKey: H256; - owner: AccountId32; - location: Bytes; - newRoot: H256; - } - >; - /** - * Notifies the expiration of a storage request. - **/ - StorageRequestExpired: AugmentedEvent< - ApiType, - [fileKey: H256], - { - fileKey: H256; - } - >; - /** - * Notifies that a storage request for a file key has been fulfilled. - **/ - StorageRequestFulfilled: AugmentedEvent< - ApiType, - [fileKey: H256], - { - fileKey: H256; - } - >; - /** - * Notifies that a storage request has been revoked by the user who initiated it. - **/ - StorageRequestRevoked: AugmentedEvent< - ApiType, - [fileKey: H256], - { - fileKey: H256; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - messageQueue: { - /** - * Message placed in overweight queue. - **/ - OverweightEnqueued: AugmentedEvent< - ApiType, - [ - id: U8aFixed, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - pageIndex: u32, - messageIndex: u32 - ], - { - id: U8aFixed; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - pageIndex: u32; - messageIndex: u32; - } - >; - /** - * This page was reaped. - **/ - PageReaped: AugmentedEvent< - ApiType, - [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], - { - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - index: u32; - } - >; - /** - * Message is processed. - **/ - Processed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - weightUsed: SpWeightsWeightV2Weight, - success: bool - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - weightUsed: SpWeightsWeightV2Weight; - success: bool; - } - >; - /** - * Message discarded due to an error in the `MessageProcessor` (usually a format error). - **/ - ProcessingFailed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - error: FrameSupportMessagesProcessMessageError - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - error: FrameSupportMessagesProcessMessageError; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - nfts: { - /** - * All approvals of an item got cancelled. - **/ - AllApprovalsCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - } - >; - /** - * An approval for a `delegate` account to transfer the `item` of an item - * `collection` was cancelled by its `owner`. - **/ - ApprovalCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - delegate: AccountId32; - } - >; - /** - * Attribute metadata has been cleared for a `collection` or `item`. - **/ - AttributeCleared: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * New attribute metadata has been set for a `collection` or `item`. - **/ - AttributeSet: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - value: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - value: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * An `item` was destroyed. - **/ - Burned: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - } - >; - /** - * A `collection` has had its config changed by the `Force` origin. - **/ - CollectionConfigChanged: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * Some `collection` was locked. - **/ - CollectionLocked: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * Max supply has been set for a collection. - **/ - CollectionMaxSupplySet: AugmentedEvent< - ApiType, - [collection: u32, maxSupply: u32], - { - collection: u32; - maxSupply: u32; - } - >; - /** - * Metadata has been cleared for a `collection`. - **/ - CollectionMetadataCleared: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * New metadata has been set for a `collection`. - **/ - CollectionMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, data: Bytes], - { - collection: u32; - data: Bytes; - } - >; - /** - * Mint settings for a collection had changed. - **/ - CollectionMintSettingsUpdated: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * A `collection` was created. - **/ - Created: AugmentedEvent< - ApiType, - [collection: u32, creator: AccountId32, owner: AccountId32], - { - collection: u32; - creator: AccountId32; - owner: AccountId32; - } - >; - /** - * A `collection` was destroyed. - **/ - Destroyed: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * A `collection` was force-created. - **/ - ForceCreated: AugmentedEvent< - ApiType, - [collection: u32, owner: AccountId32], - { - collection: u32; - owner: AccountId32; - } - >; - /** - * An `item` was issued. - **/ - Issued: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - } - >; - /** - * A new approval to modify item attributes was added. - **/ - ItemAttributesApprovalAdded: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { - collection: u32; - item: u32; - delegate: AccountId32; - } - >; - /** - * A new approval to modify item attributes was removed. - **/ - ItemAttributesApprovalRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { - collection: u32; - item: u32; - delegate: AccountId32; - } - >; - /** - * An item was bought. - **/ - ItemBought: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], - { - collection: u32; - item: u32; - price: u128; - seller: AccountId32; - buyer: AccountId32; - } - >; - /** - * Metadata has been cleared for an item. - **/ - ItemMetadataCleared: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * New metadata has been set for an item. - **/ - ItemMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, data: Bytes], - { - collection: u32; - item: u32; - data: Bytes; - } - >; - /** - * The price for the item was removed. - **/ - ItemPriceRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * The price was set for the item. - **/ - ItemPriceSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], - { - collection: u32; - item: u32; - price: u128; - whitelistedBuyer: Option; - } - >; - /** - * `item` metadata or attributes were locked. - **/ - ItemPropertiesLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], - { - collection: u32; - item: u32; - lockMetadata: bool; - lockAttributes: bool; - } - >; - /** - * An `item` became non-transferable. - **/ - ItemTransferLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * An `item` became transferable. - **/ - ItemTransferUnlocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * Event gets emitted when the `NextCollectionId` gets incremented. - **/ - NextCollectionIdIncremented: AugmentedEvent< - ApiType, - [nextId: Option], - { - nextId: Option; - } - >; - /** - * The owner changed. - **/ - OwnerChanged: AugmentedEvent< - ApiType, - [collection: u32, newOwner: AccountId32], - { - collection: u32; - newOwner: AccountId32; - } - >; - /** - * Ownership acceptance has changed for an account. - **/ - OwnershipAcceptanceChanged: AugmentedEvent< - ApiType, - [who: AccountId32, maybeCollection: Option], - { - who: AccountId32; - maybeCollection: Option; - } - >; - /** - * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` - * within that `collection`. - **/ - PalletAttributeSet: AugmentedEvent< - ApiType, - [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], - { - collection: u32; - item: Option; - attribute: PalletNftsPalletAttributes; - value: Bytes; - } - >; - /** - * New attributes have been set for an `item` of the `collection`. - **/ - PreSignedAttributesSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], - { - collection: u32; - item: u32; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * The deposit for a set of `item`s within a `collection` has been updated. - **/ - Redeposited: AugmentedEvent< - ApiType, - [collection: u32, successfulItems: Vec], - { - collection: u32; - successfulItems: Vec; - } - >; - /** - * The swap was cancelled. - **/ - SwapCancelled: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The swap has been claimed. - **/ - SwapClaimed: AugmentedEvent< - ApiType, - [ - sentCollection: u32, - sentItem: u32, - sentItemOwner: AccountId32, - receivedCollection: u32, - receivedItem: u32, - receivedItemOwner: AccountId32, - price: Option, - deadline: u32 - ], - { - sentCollection: u32; - sentItem: u32; - sentItemOwner: AccountId32; - receivedCollection: u32; - receivedItem: u32; - receivedItemOwner: AccountId32; - price: Option; - deadline: u32; - } - >; - /** - * An `item` swap intent was created. - **/ - SwapCreated: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The management team changed. - **/ - TeamChanged: AugmentedEvent< - ApiType, - [ - collection: u32, - issuer: Option, - admin: Option, - freezer: Option - ], - { - collection: u32; - issuer: Option; - admin: Option; - freezer: Option; - } - >; - /** - * A tip was sent. - **/ - TipSent: AugmentedEvent< - ApiType, - [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], - { - collection: u32; - item: u32; - sender: AccountId32; - receiver: AccountId32; - amount: u128; - } - >; - /** - * An `item` of a `collection` has been approved by the `owner` for transfer by - * a `delegate`. - **/ - TransferApproved: AugmentedEvent< - ApiType, - [ - collection: u32, - item: u32, - owner: AccountId32, - delegate: AccountId32, - deadline: Option - ], - { - collection: u32; - item: u32; - owner: AccountId32; - delegate: AccountId32; - deadline: Option; - } - >; - /** - * An `item` was transferred. - **/ - Transferred: AugmentedEvent< - ApiType, - [collection: u32, item: u32, from: AccountId32, to: AccountId32], - { - collection: u32; - item: u32; - from: AccountId32; - to: AccountId32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parachainSystem: { - /** - * Downward messages were processed using the given weight. - **/ - DownwardMessagesProcessed: AugmentedEvent< - ApiType, - [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], - { - weightUsed: SpWeightsWeightV2Weight; - dmqHead: H256; - } - >; - /** - * Some downward messages have been received and will be processed. - **/ - DownwardMessagesReceived: AugmentedEvent< - ApiType, - [count: u32], - { - count: u32; - } - >; - /** - * An upward message was sent to the relay chain. - **/ - UpwardMessageSent: AugmentedEvent< - ApiType, - [messageHash: Option], - { - messageHash: Option; - } - >; - /** - * The validation function was applied as of the contained relay chain block number. - **/ - ValidationFunctionApplied: AugmentedEvent< - ApiType, - [relayChainBlockNum: u32], - { - relayChainBlockNum: u32; - } - >; - /** - * The relay-chain aborted the upgrade process. - **/ - ValidationFunctionDiscarded: AugmentedEvent; - /** - * The validation function has been scheduled to apply. - **/ - ValidationFunctionStored: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parameters: { - /** - * A Parameter was set. - * - * Is also emitted when the value was not changed. - **/ - Updated: AugmentedEvent< - ApiType, - [ - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - oldValue: Option, - newValue: Option - ], - { - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - oldValue: Option; - newValue: Option; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - paymentStreams: { - /** - * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream - * and the initial amount provided. - **/ - DynamicRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amountProvided: u64], - { - userAccount: AccountId32; - providerId: H256; - amountProvided: u64; - } - >; - /** - * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - DynamicRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { - userAccount: AccountId32; - providerId: H256; - } - >; - /** - * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new amount provided. - **/ - DynamicRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], - { - userAccount: AccountId32; - providerId: H256; - newAmountProvided: u64; - } - >; - /** - * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream - * and its initial rate. - **/ - FixedRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, rate: u128], - { - userAccount: AccountId32; - providerId: H256; - rate: u128; - } - >; - /** - * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - FixedRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { - userAccount: AccountId32; - providerId: H256; - } - >; - /** - * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new rate of the stream. - **/ - FixedRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newRate: u128], - { - userAccount: AccountId32; - providerId: H256; - newRate: u128; - } - >; - /** - * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, - * the tick number of the last chargeable tick and the price index at that tick. - **/ - LastChargeableInfoUpdated: AugmentedEvent< - ApiType, - [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], - { - providerId: H256; - lastChargeableTick: u32; - lastChargeablePriceIndex: u128; - } - >; - /** - * Event emitted when a payment is charged. Provides information about the user that was charged, - * the Provider that received the funds, and the amount that was charged. - **/ - PaymentStreamCharged: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amount: u128], - { - userAccount: AccountId32; - providerId: H256; - amount: u128; - } - >; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. - **/ - UserPaidDebts: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, - * correctly paid all their outstanding debt and can now contract new services again. - **/ - UserSolvent: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. - * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can - * stop providing services to that user. - **/ - UserWithoutFunds: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - polkadotXcm: { - /** - * Some assets have been claimed from an asset trap - **/ - AssetsClaimed: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { - hash_: H256; - origin: StagingXcmV4Location; - assets: XcmVersionedAssets; - } - >; - /** - * Some assets have been placed in an asset trap. - **/ - AssetsTrapped: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { - hash_: H256; - origin: StagingXcmV4Location; - assets: XcmVersionedAssets; - } - >; - /** - * Execution of an XCM message was attempted. - **/ - Attempted: AugmentedEvent< - ApiType, - [outcome: StagingXcmV4TraitsOutcome], - { - outcome: StagingXcmV4TraitsOutcome; - } - >; - /** - * Fees were paid from a location for an operation (often for using `SendXcm`). - **/ - FeesPaid: AugmentedEvent< - ApiType, - [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], - { - paying: StagingXcmV4Location; - fees: StagingXcmV4AssetAssets; - } - >; - /** - * Expected query response has been received but the querier location of the response does - * not match the expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidQuerier: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedQuerier: StagingXcmV4Location, - maybeActualQuerier: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedQuerier: StagingXcmV4Location; - maybeActualQuerier: Option; - } - >; - /** - * Expected query response has been received but the expected querier location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidQuerierVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { - origin: StagingXcmV4Location; - queryId: u64; - } - >; - /** - * Expected query response has been received but the origin location of the response does - * not match that expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidResponder: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedLocation: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedLocation: Option; - } - >; - /** - * Expected query response has been received but the expected origin location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidResponderVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { - origin: StagingXcmV4Location; - queryId: u64; - } - >; - /** - * Query response has been received and query is removed. The registered notification has - * been dispatched and executed successfully. - **/ - Notified: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - } - >; - /** - * Query response has been received and query is removed. The dispatch was unable to be - * decoded into a `Call`; this might be due to dispatch function having a signature which - * is not `(origin, QueryId, Response)`. - **/ - NotifyDecodeFailed: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - } - >; - /** - * Query response has been received and query is removed. There was a general error with - * dispatching the notification call. - **/ - NotifyDispatchError: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - } - >; - /** - * Query response has been received and query is removed. The registered notification - * could not be dispatched because the dispatch weight is greater than the maximum weight - * originally budgeted by this runtime for the query result. - **/ - NotifyOverweight: AugmentedEvent< - ApiType, - [ - queryId: u64, - palletIndex: u8, - callIndex: u8, - actualWeight: SpWeightsWeightV2Weight, - maxBudgetedWeight: SpWeightsWeightV2Weight - ], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - actualWeight: SpWeightsWeightV2Weight; - maxBudgetedWeight: SpWeightsWeightV2Weight; - } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * migrating the location to our new XCM format. - **/ - NotifyTargetMigrationFail: AugmentedEvent< - ApiType, - [location: XcmVersionedLocation, queryId: u64], - { - location: XcmVersionedLocation; - queryId: u64; - } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * sending the notification to it. - **/ - NotifyTargetSendFail: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], - { - location: StagingXcmV4Location; - queryId: u64; - error: XcmV3TraitsError; - } - >; - /** - * Query response has been received and is ready for taking with `take_response`. There is - * no registered notification call. - **/ - ResponseReady: AugmentedEvent< - ApiType, - [queryId: u64, response: StagingXcmV4Response], - { - queryId: u64; - response: StagingXcmV4Response; - } - >; - /** - * Received query response has been read and removed. - **/ - ResponseTaken: AugmentedEvent< - ApiType, - [queryId: u64], - { - queryId: u64; - } - >; - /** - * A XCM message was sent. - **/ - Sent: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - destination: StagingXcmV4Location, - message: StagingXcmV4Xcm, - messageId: U8aFixed - ], - { - origin: StagingXcmV4Location; - destination: StagingXcmV4Location; - message: StagingXcmV4Xcm; - messageId: U8aFixed; - } - >; - /** - * The supported version of a location has been changed. This might be through an - * automatic notification or a manual intervention. - **/ - SupportedVersionChanged: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, version: u32], - { - location: StagingXcmV4Location; - version: u32; - } - >; - /** - * Query response received which does not match a registered query. This may be because a - * matching query was never registered, it may be because it is a duplicate response, or - * because the query timed out. - **/ - UnexpectedResponse: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { - origin: StagingXcmV4Location; - queryId: u64; - } - >; - /** - * An XCM version change notification message has been attempted to be sent. - * - * The cost of sending it (borne by the chain) is included. - **/ - VersionChangeNotified: AugmentedEvent< - ApiType, - [ - destination: StagingXcmV4Location, - result: u32, - cost: StagingXcmV4AssetAssets, - messageId: U8aFixed - ], - { - destination: StagingXcmV4Location; - result: u32; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * A XCM version migration finished. - **/ - VersionMigrationFinished: AugmentedEvent< - ApiType, - [version: u32], - { - version: u32; - } - >; - /** - * We have requested that a remote chain send us XCM version change notifications. - **/ - VersionNotifyRequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { - destination: StagingXcmV4Location; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * A remote has requested XCM version change notification from us and we have honored it. - * A version information message is sent to them and its cost is included. - **/ - VersionNotifyStarted: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { - destination: StagingXcmV4Location; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * We have requested that a remote chain stops sending us XCM version change - * notifications. - **/ - VersionNotifyUnrequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { - destination: StagingXcmV4Location; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - proofsDealer: { - /** - * The [`ChallengesTicker`] has been paused or unpaused. - **/ - ChallengesTickerSet: AugmentedEvent< - ApiType, - [paused: bool], - { - paused: bool; - } - >; - /** - * A set of mutations has been applied to the Forest. - **/ - MutationsApplied: AugmentedEvent< - ApiType, - [ - provider: H256, - mutations: Vec>, - newRoot: H256 - ], - { - provider: H256; - mutations: Vec>; - newRoot: H256; - } - >; - /** - * A manual challenge was submitted. - **/ - NewChallenge: AugmentedEvent< - ApiType, - [who: AccountId32, keyChallenged: H256], - { - who: AccountId32; - keyChallenged: H256; - } - >; - /** - * A provider's challenge cycle was initialised. - **/ - NewChallengeCycleInitialised: AugmentedEvent< - ApiType, - [ - currentTick: u32, - nextChallengeDeadline: u32, - provider: H256, - maybeProviderAccount: Option - ], - { - currentTick: u32; - nextChallengeDeadline: u32; - provider: H256; - maybeProviderAccount: Option; - } - >; - /** - * A new challenge seed was generated. - **/ - NewChallengeSeed: AugmentedEvent< - ApiType, - [challengesTicker: u32, seed: H256], - { - challengesTicker: u32; - seed: H256; - } - >; - /** - * A new checkpoint challenge was generated. - **/ - NewCheckpointChallenge: AugmentedEvent< - ApiType, - [ - challengesTicker: u32, - challenges: Vec]>> - ], - { - challengesTicker: u32; - challenges: Vec]>>; - } - >; - /** - * No record of the last tick the Provider submitted a proof for. - **/ - NoRecordOfLastSubmittedProof: AugmentedEvent< - ApiType, - [provider: H256], - { - provider: H256; - } - >; - /** - * A proof was accepted. - **/ - ProofAccepted: AugmentedEvent< - ApiType, - [provider: H256, proof: PalletProofsDealerProof], - { - provider: H256; - proof: PalletProofsDealerProof; - } - >; - /** - * A provider was marked as slashable and their challenge deadline was forcefully pushed. - **/ - SlashableProvider: AugmentedEvent< - ApiType, - [provider: H256, nextChallengeDeadline: u32], - { - provider: H256; - nextChallengeDeadline: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - providers: { - /** - * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about - * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. - **/ - BspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, multiaddresses: Vec, capacity: u64], - { - who: AccountId32; - multiaddresses: Vec; - capacity: u64; - } - >; - /** - * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about - * that BSP's account id. - **/ - BspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { - who: AccountId32; - bspId: H256; - } - >; - /** - * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about - * that BSP's account id, the total data it can store according to its stake, and its multiaddress. - **/ - BspSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], - { - who: AccountId32; - bspId: H256; - multiaddresses: Vec; - capacity: u64; - } - >; - /** - * Event emitted when a SP has changed its capacity successfully. Provides information about - * that SP's account id, its old total data that could store, and the new total data. - **/ - CapacityChanged: AugmentedEvent< - ApiType, - [ - who: AccountId32, - providerId: PalletStorageProvidersStorageProviderId, - oldCapacity: u64, - newCapacity: u64, - nextBlockWhenChangeAllowed: u32 - ], - { - who: AccountId32; - providerId: PalletStorageProvidersStorageProviderId; - oldCapacity: u64; - newCapacity: u64; - nextBlockWhenChangeAllowed: u32; - } - >; - /** - * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about - * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. - **/ - MspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a Main Storage Provider has signed off successfully. Provides information about - * that MSP's account id. - **/ - MspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, mspId: H256], - { - who: AccountId32; - mspId: H256; - } - >; - /** - * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about - * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. - **/ - MspSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - mspId: H256; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a sign up request has been canceled successfully. Provides information about - * the account id of the user that canceled the request. - **/ - SignUpRequestCanceled: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Event emitted when an SP has been slashed. - **/ - Slashed: AugmentedEvent< - ApiType, - [providerId: H256, amountSlashed: u128], - { - providerId: H256; - amountSlashed: u128; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - randomness: { - /** - * Event emitted when a new random seed is available from the relay chain - **/ - NewOneEpochAgoRandomnessAvailable: AugmentedEvent< - ApiType, - [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], - { - randomnessSeed: H256; - fromEpoch: u64; - validUntilBlock: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - session: { - /** - * New session has happened. Note that the argument is the session index, not the - * block number as the type might suggest. - **/ - NewSession: AugmentedEvent< - ApiType, - [sessionIndex: u32], - { - sessionIndex: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - sudo: { - /** - * The sudo key has been updated. - **/ - KeyChanged: AugmentedEvent< - ApiType, - [old: Option, new_: AccountId32], - { - old: Option; - new_: AccountId32; - } - >; - /** - * The key was permanently removed. - **/ - KeyRemoved: AugmentedEvent; - /** - * A sudo call just took place. - **/ - Sudid: AugmentedEvent< - ApiType, - [sudoResult: Result], - { - sudoResult: Result; - } - >; - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - **/ - SudoAsDone: AugmentedEvent< - ApiType, - [sudoResult: Result], - { - sudoResult: Result; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - system: { - /** - * `:code` was updated. - **/ - CodeUpdated: AugmentedEvent; - /** - * An extrinsic failed. - **/ - ExtrinsicFailed: AugmentedEvent< - ApiType, - [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], - { - dispatchError: SpRuntimeDispatchError; - dispatchInfo: FrameSupportDispatchDispatchInfo; - } - >; - /** - * An extrinsic completed successfully. - **/ - ExtrinsicSuccess: AugmentedEvent< - ApiType, - [dispatchInfo: FrameSupportDispatchDispatchInfo], - { - dispatchInfo: FrameSupportDispatchDispatchInfo; - } - >; - /** - * An account was reaped. - **/ - KilledAccount: AugmentedEvent< - ApiType, - [account: AccountId32], - { - account: AccountId32; - } - >; - /** - * A new account was created. - **/ - NewAccount: AugmentedEvent< - ApiType, - [account: AccountId32], - { - account: AccountId32; - } - >; - /** - * On on-chain remark happened. - **/ - Remarked: AugmentedEvent< - ApiType, - [sender: AccountId32, hash_: H256], - { - sender: AccountId32; - hash_: H256; - } - >; - /** - * An upgrade was authorized. - **/ - UpgradeAuthorized: AugmentedEvent< - ApiType, - [codeHash: H256, checkVersion: bool], - { - codeHash: H256; - checkVersion: bool; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - transactionPayment: { - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - **/ - TransactionFeePaid: AugmentedEvent< - ApiType, - [who: AccountId32, actualFee: u128, tip: u128], - { - who: AccountId32; - actualFee: u128; - tip: u128; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - xcmpQueue: { - /** - * An HRMP message was sent to a sibling parachain. - **/ - XcmpMessageSent: AugmentedEvent< - ApiType, - [messageHash: U8aFixed], - { - messageHash: U8aFixed; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - } -} +import "@polkadot/api-base/types/events"; +import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; +import type { + Bytes, + Null, + Option, + Result, + U8aFixed, + Vec, + bool, + u128, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + FrameSupportDispatchDispatchInfo, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemMspRespondStorageRequestsResult, + PalletNftsAttributeNamespace, + PalletNftsPalletAttributes, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + ShpTraitsTrieRemoveMutation, + SpRuntimeDispatchError, + SpWeightsWeightV2Weight, + StagingXcmV4AssetAssets, + StagingXcmV4Location, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + XcmV3TraitsError, + XcmVersionedAssets, + XcmVersionedLocation +} from "@polkadot/types/lookup"; +export type __AugmentedEvent = AugmentedEvent; +declare module "@polkadot/api-base/types/events" { + interface AugmentedEvents { + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent< + ApiType, + [who: AccountId32, free: u128], + { + who: AccountId32; + free: u128; + } + >; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent< + ApiType, + [account: AccountId32, amount: u128], + { + account: AccountId32; + amount: u128; + } + >; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent< + ApiType, + [account: AccountId32, freeBalance: u128], + { + account: AccountId32; + freeBalance: u128; + } + >; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent< + ApiType, + [amount: u128], + { + amount: u128; + } + >; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent< + ApiType, + [amount: u128], + { + amount: u128; + } + >; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent< + ApiType, + [ + from: AccountId32, + to: AccountId32, + amount: u128, + destinationStatus: FrameSupportTokensMiscBalanceStatus + ], + { + from: AccountId32; + to: AccountId32; + amount: u128; + destinationStatus: FrameSupportTokensMiscBalanceStatus; + } + >; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent< + ApiType, + [old: u128, new_: u128], + { + old: u128; + new_: u128; + } + >; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent< + ApiType, + [from: AccountId32, to: AccountId32, amount: u128], + { + from: AccountId32; + to: AccountId32; + amount: u128; + } + >; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bucketNfts: { + /** + * Notifies that access to a bucket has been shared with another account. + **/ + AccessShared: AugmentedEvent< + ApiType, + [issuer: AccountId32, recipient: AccountId32], + { + issuer: AccountId32; + recipient: AccountId32; + } + >; + /** + * Notifies that an item has been burned. + **/ + ItemBurned: AugmentedEvent< + ApiType, + [account: AccountId32, bucket: H256, itemId: u32], + { + account: AccountId32; + bucket: H256; + itemId: u32; + } + >; + /** + * Notifies that the read access for an item has been updated. + **/ + ItemReadAccessUpdated: AugmentedEvent< + ApiType, + [admin: AccountId32, bucket: H256, itemId: u32], + { + admin: AccountId32; + bucket: H256; + itemId: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + collatorSelection: { + /** + * A new candidate joined. + **/ + CandidateAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { + accountId: AccountId32; + deposit: u128; + } + >; + /** + * Bond of a candidate updated. + **/ + CandidateBondUpdated: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { + accountId: AccountId32; + deposit: u128; + } + >; + /** + * A candidate was removed. + **/ + CandidateRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * An account was replaced in the candidate list by another one. + **/ + CandidateReplaced: AugmentedEvent< + ApiType, + [old: AccountId32, new_: AccountId32, deposit: u128], + { + old: AccountId32; + new_: AccountId32; + deposit: u128; + } + >; + /** + * An account was unable to be added to the Invulnerables because they did not have keys + * registered. Other Invulnerables may have been set. + **/ + InvalidInvulnerableSkipped: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * A new Invulnerable was added. + **/ + InvulnerableAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * An Invulnerable was removed. + **/ + InvulnerableRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * The candidacy bond was set. + **/ + NewCandidacyBond: AugmentedEvent< + ApiType, + [bondAmount: u128], + { + bondAmount: u128; + } + >; + /** + * The number of desired candidates was set. + **/ + NewDesiredCandidates: AugmentedEvent< + ApiType, + [desiredCandidates: u32], + { + desiredCandidates: u32; + } + >; + /** + * New Invulnerables were set. + **/ + NewInvulnerables: AugmentedEvent< + ApiType, + [invulnerables: Vec], + { + invulnerables: Vec; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + cumulusXcm: { + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ + ExecutedDownward: AugmentedEvent; + /** + * Downward message is invalid XCM. + * \[ id \] + **/ + InvalidFormat: AugmentedEvent; + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ + UnsupportedVersion: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fileSystem: { + /** + * Notifies that a BSP has been accepted to store a given file. + **/ + AcceptedBspVolunteer: AugmentedEvent< + ApiType, + [ + bspId: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + multiaddresses: Vec, + owner: AccountId32, + size_: u64 + ], + { + bspId: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + multiaddresses: Vec; + owner: AccountId32; + size_: u64; + } + >; + /** + * Notifies that a BSP's challenge cycle has been initialised, adding the first file + * key(s) to the BSP's Merkle Patricia Forest. + **/ + BspChallengeCycleInitialised: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { + who: AccountId32; + bspId: H256; + } + >; + /** + * Notifies that a BSP confirmed storing a file(s). + **/ + BspConfirmedStoring: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], + { + who: AccountId32; + bspId: H256; + fileKeys: Vec; + newRoot: H256; + } + >; + /** + * Notifies that a BSP has stopped storing a file. + **/ + BspConfirmStoppedStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, newRoot: H256], + { + bspId: H256; + fileKey: H256; + newRoot: H256; + } + >; + /** + * Notifies that a BSP has opened a request to stop storing a file. + **/ + BspRequestedToStopStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], + { + bspId: H256; + fileKey: H256; + owner: AccountId32; + location: Bytes; + } + >; + /** + * Notifies that a bucket's privacy has been updated. + **/ + BucketPrivacyUpdated: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], + { + who: AccountId32; + bucketId: H256; + collectionId: Option; + private: bool; + } + >; + /** + * Notifies that a data server has been registered for a move bucket request. + **/ + DataServerRegisteredForMoveBucket: AugmentedEvent< + ApiType, + [bspId: H256, bucketId: H256], + { + bspId: H256; + bucketId: H256; + } + >; + /** + * Notifies that a priority challenge failed to be queued for pending file deletion. + **/ + FailedToQueuePriorityChallenge: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256], + { + user: AccountId32; + fileKey: H256; + } + >; + /** + * Notifies that a file will be deleted. + **/ + FileDeletionRequest: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], + { + user: AccountId32; + fileKey: H256; + bucketId: H256; + mspId: H256; + proofOfInclusion: bool; + } + >; + /** + * Notifies that a bucket has been moved to a new MSP. + **/ + MoveBucketAccepted: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { + bucketId: H256; + mspId: H256; + } + >; + /** + * Notifies that a bucket move request has been rejected by the MSP. + **/ + MoveBucketRejected: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { + bucketId: H256; + mspId: H256; + } + >; + /** + * Notifies that a bucket is being moved to a new MSP. + **/ + MoveBucketRequested: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, newMspId: H256], + { + who: AccountId32; + bucketId: H256; + newMspId: H256; + } + >; + /** + * Notifies that a move bucket request has expired. + **/ + MoveBucketRequestExpired: AugmentedEvent< + ApiType, + [mspId: H256, bucketId: H256], + { + mspId: H256; + bucketId: H256; + } + >; + /** + * Notifies that a MSP has responded to storage request(s). + **/ + MspRespondedToStorageRequests: AugmentedEvent< + ApiType, + [results: PalletFileSystemMspRespondStorageRequestsResult], + { + results: PalletFileSystemMspRespondStorageRequestsResult; + } + >; + /** + * Notifies that a new bucket has been created. + **/ + NewBucket: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + bucketId: H256, + name: Bytes, + collectionId: Option, + private: bool + ], + { + who: AccountId32; + mspId: H256; + bucketId: H256; + name: Bytes; + collectionId: Option; + private: bool; + } + >; + /** + * Notifies that a new collection has been created and associated with a bucket. + **/ + NewCollectionAndAssociation: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: u32], + { + who: AccountId32; + bucketId: H256; + collectionId: u32; + } + >; + /** + * Notifies that a new file has been requested to be stored. + **/ + NewStorageRequest: AugmentedEvent< + ApiType, + [ + who: AccountId32, + fileKey: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + size_: u64, + peerIds: Vec + ], + { + who: AccountId32; + fileKey: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + size_: u64; + peerIds: Vec; + } + >; + /** + * Notifies that a file key has been queued for a priority challenge for file deletion. + **/ + PriorityChallengeForFileDeletionQueued: AugmentedEvent< + ApiType, + [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], + { + issuer: PalletFileSystemEitherAccountIdOrMspId; + fileKey: H256; + } + >; + /** + * Notifies that a proof has been submitted for a pending file deletion request. + **/ + ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< + ApiType, + [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], + { + mspId: H256; + user: AccountId32; + fileKey: H256; + bucketId: H256; + proofOfInclusion: bool; + } + >; + /** + * Notifies that a SP has stopped storing a file because its owner has become insolvent. + **/ + SpStopStoringInsolventUser: AugmentedEvent< + ApiType, + [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], + { + spId: H256; + fileKey: H256; + owner: AccountId32; + location: Bytes; + newRoot: H256; + } + >; + /** + * Notifies the expiration of a storage request. + **/ + StorageRequestExpired: AugmentedEvent< + ApiType, + [fileKey: H256], + { + fileKey: H256; + } + >; + /** + * Notifies that a storage request for a file key has been fulfilled. + **/ + StorageRequestFulfilled: AugmentedEvent< + ApiType, + [fileKey: H256], + { + fileKey: H256; + } + >; + /** + * Notifies that a storage request has been revoked by the user who initiated it. + **/ + StorageRequestRevoked: AugmentedEvent< + ApiType, + [fileKey: H256], + { + fileKey: H256; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent< + ApiType, + [ + id: U8aFixed, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + pageIndex: u32, + messageIndex: u32 + ], + { + id: U8aFixed; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + pageIndex: u32; + messageIndex: u32; + } + >; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent< + ApiType, + [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], + { + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + index: u32; + } + >; + /** + * Message is processed. + **/ + Processed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + weightUsed: SpWeightsWeightV2Weight, + success: bool + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + weightUsed: SpWeightsWeightV2Weight; + success: bool; + } + >; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + error: FrameSupportMessagesProcessMessageError + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + error: FrameSupportMessagesProcessMessageError; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + } + >; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + delegate: AccountId32; + } + >; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + value: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + value: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + } + >; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent< + ApiType, + [collection: u32, maxSupply: u32], + { + collection: u32; + maxSupply: u32; + } + >; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, data: Bytes], + { + collection: u32; + data: Bytes; + } + >; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent< + ApiType, + [collection: u32, creator: AccountId32, owner: AccountId32], + { + collection: u32; + creator: AccountId32; + owner: AccountId32; + } + >; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent< + ApiType, + [collection: u32, owner: AccountId32], + { + collection: u32; + owner: AccountId32; + } + >; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + } + >; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { + collection: u32; + item: u32; + delegate: AccountId32; + } + >; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { + collection: u32; + item: u32; + delegate: AccountId32; + } + >; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], + { + collection: u32; + item: u32; + price: u128; + seller: AccountId32; + buyer: AccountId32; + } + >; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, data: Bytes], + { + collection: u32; + item: u32; + data: Bytes; + } + >; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], + { + collection: u32; + item: u32; + price: u128; + whitelistedBuyer: Option; + } + >; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], + { + collection: u32; + item: u32; + lockMetadata: bool; + lockAttributes: bool; + } + >; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent< + ApiType, + [nextId: Option], + { + nextId: Option; + } + >; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent< + ApiType, + [collection: u32, newOwner: AccountId32], + { + collection: u32; + newOwner: AccountId32; + } + >; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent< + ApiType, + [who: AccountId32, maybeCollection: Option], + { + who: AccountId32; + maybeCollection: Option; + } + >; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent< + ApiType, + [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], + { + collection: u32; + item: Option; + attribute: PalletNftsPalletAttributes; + value: Bytes; + } + >; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], + { + collection: u32; + item: u32; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent< + ApiType, + [collection: u32, successfulItems: Vec], + { + collection: u32; + successfulItems: Vec; + } + >; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent< + ApiType, + [ + sentCollection: u32, + sentItem: u32, + sentItemOwner: AccountId32, + receivedCollection: u32, + receivedItem: u32, + receivedItemOwner: AccountId32, + price: Option, + deadline: u32 + ], + { + sentCollection: u32; + sentItem: u32; + sentItemOwner: AccountId32; + receivedCollection: u32; + receivedItem: u32; + receivedItemOwner: AccountId32; + price: Option; + deadline: u32; + } + >; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent< + ApiType, + [ + collection: u32, + issuer: Option, + admin: Option, + freezer: Option + ], + { + collection: u32; + issuer: Option; + admin: Option; + freezer: Option; + } + >; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent< + ApiType, + [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], + { + collection: u32; + item: u32; + sender: AccountId32; + receiver: AccountId32; + amount: u128; + } + >; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent< + ApiType, + [ + collection: u32, + item: u32, + owner: AccountId32, + delegate: AccountId32, + deadline: Option + ], + { + collection: u32; + item: u32; + owner: AccountId32; + delegate: AccountId32; + deadline: Option; + } + >; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent< + ApiType, + [collection: u32, item: u32, from: AccountId32, to: AccountId32], + { + collection: u32; + item: u32; + from: AccountId32; + to: AccountId32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parachainSystem: { + /** + * Downward messages were processed using the given weight. + **/ + DownwardMessagesProcessed: AugmentedEvent< + ApiType, + [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], + { + weightUsed: SpWeightsWeightV2Weight; + dmqHead: H256; + } + >; + /** + * Some downward messages have been received and will be processed. + **/ + DownwardMessagesReceived: AugmentedEvent< + ApiType, + [count: u32], + { + count: u32; + } + >; + /** + * An upward message was sent to the relay chain. + **/ + UpwardMessageSent: AugmentedEvent< + ApiType, + [messageHash: Option], + { + messageHash: Option; + } + >; + /** + * The validation function was applied as of the contained relay chain block number. + **/ + ValidationFunctionApplied: AugmentedEvent< + ApiType, + [relayChainBlockNum: u32], + { + relayChainBlockNum: u32; + } + >; + /** + * The relay-chain aborted the upgrade process. + **/ + ValidationFunctionDiscarded: AugmentedEvent; + /** + * The validation function has been scheduled to apply. + **/ + ValidationFunctionStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent< + ApiType, + [ + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + oldValue: Option, + newValue: Option + ], + { + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + oldValue: Option; + newValue: Option; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paymentStreams: { + /** + * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream + * and the initial amount provided. + **/ + DynamicRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amountProvided: u64], + { + userAccount: AccountId32; + providerId: H256; + amountProvided: u64; + } + >; + /** + * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + DynamicRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { + userAccount: AccountId32; + providerId: H256; + } + >; + /** + * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new amount provided. + **/ + DynamicRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], + { + userAccount: AccountId32; + providerId: H256; + newAmountProvided: u64; + } + >; + /** + * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream + * and its initial rate. + **/ + FixedRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, rate: u128], + { + userAccount: AccountId32; + providerId: H256; + rate: u128; + } + >; + /** + * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + FixedRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { + userAccount: AccountId32; + providerId: H256; + } + >; + /** + * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new rate of the stream. + **/ + FixedRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newRate: u128], + { + userAccount: AccountId32; + providerId: H256; + newRate: u128; + } + >; + /** + * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, + * the tick number of the last chargeable tick and the price index at that tick. + **/ + LastChargeableInfoUpdated: AugmentedEvent< + ApiType, + [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], + { + providerId: H256; + lastChargeableTick: u32; + lastChargeablePriceIndex: u128; + } + >; + /** + * Event emitted when a payment is charged. Provides information about the user that was charged, + * the Provider that received the funds, and the amount that was charged. + **/ + PaymentStreamCharged: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amount: u128], + { + userAccount: AccountId32; + providerId: H256; + amount: u128; + } + >; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. + **/ + UserPaidDebts: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, + * correctly paid all their outstanding debt and can now contract new services again. + **/ + UserSolvent: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. + * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can + * stop providing services to that user. + **/ + UserWithoutFunds: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + polkadotXcm: { + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { + hash_: H256; + origin: StagingXcmV4Location; + assets: XcmVersionedAssets; + } + >; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { + hash_: H256; + origin: StagingXcmV4Location; + assets: XcmVersionedAssets; + } + >; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent< + ApiType, + [outcome: StagingXcmV4TraitsOutcome], + { + outcome: StagingXcmV4TraitsOutcome; + } + >; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent< + ApiType, + [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], + { + paying: StagingXcmV4Location; + fees: StagingXcmV4AssetAssets; + } + >; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedQuerier: StagingXcmV4Location, + maybeActualQuerier: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedQuerier: StagingXcmV4Location; + maybeActualQuerier: Option; + } + >; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { + origin: StagingXcmV4Location; + queryId: u64; + } + >; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedLocation: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedLocation: Option; + } + >; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { + origin: StagingXcmV4Location; + queryId: u64; + } + >; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + } + >; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + } + >; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + } + >; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent< + ApiType, + [ + queryId: u64, + palletIndex: u8, + callIndex: u8, + actualWeight: SpWeightsWeightV2Weight, + maxBudgetedWeight: SpWeightsWeightV2Weight + ], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + actualWeight: SpWeightsWeightV2Weight; + maxBudgetedWeight: SpWeightsWeightV2Weight; + } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent< + ApiType, + [location: XcmVersionedLocation, queryId: u64], + { + location: XcmVersionedLocation; + queryId: u64; + } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], + { + location: StagingXcmV4Location; + queryId: u64; + error: XcmV3TraitsError; + } + >; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent< + ApiType, + [queryId: u64, response: StagingXcmV4Response], + { + queryId: u64; + response: StagingXcmV4Response; + } + >; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent< + ApiType, + [queryId: u64], + { + queryId: u64; + } + >; + /** + * A XCM message was sent. + **/ + Sent: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + destination: StagingXcmV4Location, + message: StagingXcmV4Xcm, + messageId: U8aFixed + ], + { + origin: StagingXcmV4Location; + destination: StagingXcmV4Location; + message: StagingXcmV4Xcm; + messageId: U8aFixed; + } + >; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, version: u32], + { + location: StagingXcmV4Location; + version: u32; + } + >; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { + origin: StagingXcmV4Location; + queryId: u64; + } + >; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent< + ApiType, + [ + destination: StagingXcmV4Location, + result: u32, + cost: StagingXcmV4AssetAssets, + messageId: U8aFixed + ], + { + destination: StagingXcmV4Location; + result: u32; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent< + ApiType, + [version: u32], + { + version: u32; + } + >; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { + destination: StagingXcmV4Location; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { + destination: StagingXcmV4Location; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { + destination: StagingXcmV4Location; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proofsDealer: { + /** + * The [`ChallengesTicker`] has been paused or unpaused. + **/ + ChallengesTickerSet: AugmentedEvent< + ApiType, + [paused: bool], + { + paused: bool; + } + >; + /** + * A set of mutations has been applied to the Forest. + **/ + MutationsApplied: AugmentedEvent< + ApiType, + [ + provider: H256, + mutations: Vec>, + newRoot: H256 + ], + { + provider: H256; + mutations: Vec>; + newRoot: H256; + } + >; + /** + * A manual challenge was submitted. + **/ + NewChallenge: AugmentedEvent< + ApiType, + [who: AccountId32, keyChallenged: H256], + { + who: AccountId32; + keyChallenged: H256; + } + >; + /** + * A provider's challenge cycle was initialised. + **/ + NewChallengeCycleInitialised: AugmentedEvent< + ApiType, + [ + currentTick: u32, + nextChallengeDeadline: u32, + provider: H256, + maybeProviderAccount: Option + ], + { + currentTick: u32; + nextChallengeDeadline: u32; + provider: H256; + maybeProviderAccount: Option; + } + >; + /** + * A new challenge seed was generated. + **/ + NewChallengeSeed: AugmentedEvent< + ApiType, + [challengesTicker: u32, seed: H256], + { + challengesTicker: u32; + seed: H256; + } + >; + /** + * A new checkpoint challenge was generated. + **/ + NewCheckpointChallenge: AugmentedEvent< + ApiType, + [ + challengesTicker: u32, + challenges: Vec]>> + ], + { + challengesTicker: u32; + challenges: Vec]>>; + } + >; + /** + * No record of the last tick the Provider submitted a proof for. + **/ + NoRecordOfLastSubmittedProof: AugmentedEvent< + ApiType, + [provider: H256], + { + provider: H256; + } + >; + /** + * A proof was accepted. + **/ + ProofAccepted: AugmentedEvent< + ApiType, + [provider: H256, proof: PalletProofsDealerProof], + { + provider: H256; + proof: PalletProofsDealerProof; + } + >; + /** + * A provider was marked as slashable and their challenge deadline was forcefully pushed. + **/ + SlashableProvider: AugmentedEvent< + ApiType, + [provider: H256, nextChallengeDeadline: u32], + { + provider: H256; + nextChallengeDeadline: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + providers: { + /** + * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about + * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. + **/ + BspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, multiaddresses: Vec, capacity: u64], + { + who: AccountId32; + multiaddresses: Vec; + capacity: u64; + } + >; + /** + * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about + * that BSP's account id. + **/ + BspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { + who: AccountId32; + bspId: H256; + } + >; + /** + * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about + * that BSP's account id, the total data it can store according to its stake, and its multiaddress. + **/ + BspSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], + { + who: AccountId32; + bspId: H256; + multiaddresses: Vec; + capacity: u64; + } + >; + /** + * Event emitted when a SP has changed its capacity successfully. Provides information about + * that SP's account id, its old total data that could store, and the new total data. + **/ + CapacityChanged: AugmentedEvent< + ApiType, + [ + who: AccountId32, + providerId: PalletStorageProvidersStorageProviderId, + oldCapacity: u64, + newCapacity: u64, + nextBlockWhenChangeAllowed: u32 + ], + { + who: AccountId32; + providerId: PalletStorageProvidersStorageProviderId; + oldCapacity: u64; + newCapacity: u64; + nextBlockWhenChangeAllowed: u32; + } + >; + /** + * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about + * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. + **/ + MspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a Main Storage Provider has signed off successfully. Provides information about + * that MSP's account id. + **/ + MspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, mspId: H256], + { + who: AccountId32; + mspId: H256; + } + >; + /** + * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about + * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. + **/ + MspSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + mspId: H256; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a sign up request has been canceled successfully. Provides information about + * the account id of the user that canceled the request. + **/ + SignUpRequestCanceled: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Event emitted when an SP has been slashed. + **/ + Slashed: AugmentedEvent< + ApiType, + [providerId: H256, amountSlashed: u128], + { + providerId: H256; + amountSlashed: u128; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + randomness: { + /** + * Event emitted when a new random seed is available from the relay chain + **/ + NewOneEpochAgoRandomnessAvailable: AugmentedEvent< + ApiType, + [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], + { + randomnessSeed: H256; + fromEpoch: u64; + validUntilBlock: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent< + ApiType, + [sessionIndex: u32], + { + sessionIndex: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + sudo: { + /** + * The sudo key has been updated. + **/ + KeyChanged: AugmentedEvent< + ApiType, + [old: Option, new_: AccountId32], + { + old: Option; + new_: AccountId32; + } + >; + /** + * The key was permanently removed. + **/ + KeyRemoved: AugmentedEvent; + /** + * A sudo call just took place. + **/ + Sudid: AugmentedEvent< + ApiType, + [sudoResult: Result], + { + sudoResult: Result; + } + >; + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + **/ + SudoAsDone: AugmentedEvent< + ApiType, + [sudoResult: Result], + { + sudoResult: Result; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent< + ApiType, + [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], + { + dispatchError: SpRuntimeDispatchError; + dispatchInfo: FrameSupportDispatchDispatchInfo; + } + >; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent< + ApiType, + [dispatchInfo: FrameSupportDispatchDispatchInfo], + { + dispatchInfo: FrameSupportDispatchDispatchInfo; + } + >; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent< + ApiType, + [account: AccountId32], + { + account: AccountId32; + } + >; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent< + ApiType, + [account: AccountId32], + { + account: AccountId32; + } + >; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent< + ApiType, + [sender: AccountId32, hash_: H256], + { + sender: AccountId32; + hash_: H256; + } + >; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent< + ApiType, + [codeHash: H256, checkVersion: bool], + { + codeHash: H256; + checkVersion: bool; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent< + ApiType, + [who: AccountId32, actualFee: u128, tip: u128], + { + who: AccountId32; + actualFee: u128; + tip: u128; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmpQueue: { + /** + * An HRMP message was sent to a sibling parachain. + **/ + XcmpMessageSent: AugmentedEvent< + ApiType, + [messageHash: U8aFixed], + { + messageHash: U8aFixed; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-runtime.d.ts b/api-augment/dist/types/interfaces/augment-api-runtime.d.ts index 1f4fdbf37..852421745 100644 --- a/api-augment/dist/types/interfaces/augment-api-runtime.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-runtime.d.ts @@ -1,806 +1,806 @@ -import "@polkadot/api-base/types/calls"; -import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; -import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; -import type { BlockHash } from "@polkadot/types/interfaces/chain"; -import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; -import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; -import type { - CallDryRunEffects, - XcmDryRunApiError, - XcmDryRunEffects -} from "@polkadot/types/interfaces/dryRunApi"; -import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; -import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; -import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; -import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; -import type { - AccountId, - Balance, - Block, - BlockNumber, - Call, - ExtrinsicInclusionMode, - H256, - Header, - Index, - KeyTypeId, - OriginCaller, - RuntimeCall, - Slot, - SlotDuration, - Weight, - WeightV2 -} from "@polkadot/types/interfaces/runtime"; -import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; -import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; -import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; -import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; -import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; -import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; -import type { IExtrinsic, Observable } from "@polkadot/types/types"; -import type { - BackupStorageProvider, - BackupStorageProviderId, - ChunkId, - GetBspInfoError, - GetChallengePeriodError, - GetChallengeSeedError, - GetCheckpointChallengesError, - GetLastTickProviderSubmittedProofError, - GetNextDeadlineTickError, - GetUsersWithDebtOverThresholdError, - MainStorageProviderId, - ProviderId, - QueryAvailableStorageCapacityError, - QueryBspConfirmChunksToProveForFileError, - QueryEarliestChangeCapacityBlockError, - QueryFileEarliestVolunteerBlockError, - QueryMspConfirmChunksToProveForFileError, - QueryMspIdOfBucketIdError, - QueryStorageProviderCapacityError, - RandomnessOutput, - StorageDataUnit, - StorageProviderId, - TrieRemoveMutation -} from "@storagehub/api-augment/interfaces/storagehubclient"; -export type __AugmentedCall = AugmentedCall; -export type __DecoratedCallBase = DecoratedCallBase; -declare module "@polkadot/api-base/types/calls" { - interface AugmentedCalls { - /** 0xbc9d89904f5b923f/1 */ - accountNonceApi: { - /** - * The API to query account nonce (aka transaction index) - **/ - accountNonce: AugmentedCall< - ApiType, - (accountId: AccountId | string | Uint8Array) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdd718d5cc53262d4/1 */ - auraApi: { - /** - * Return the current set of authorities. - **/ - authorities: AugmentedCall Observable>>; - /** - * Returns the slot duration for Aura. - **/ - slotDuration: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd7bdd8a272ca0d65/1 */ - auraUnincludedSegmentApi: { - /** - * Whether it is legal to extend the chain - **/ - canBuildUpon: AugmentedCall< - ApiType, - ( - includedHash: BlockHash | string | Uint8Array, - slot: Slot | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x40fe3ad401f8959a/6 */ - blockBuilder: { - /** - * Apply the given extrinsic. - **/ - applyExtrinsic: AugmentedCall< - ApiType, - ( - extrinsic: Extrinsic | IExtrinsic | string | Uint8Array - ) => Observable - >; - /** - * Check that the inherents are valid. - **/ - checkInherents: AugmentedCall< - ApiType, - ( - block: - | Block - | { - header?: any; - extrinsics?: any; - } - | string - | Uint8Array, - data: - | InherentData - | { - data?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Finish the current block. - **/ - finalizeBlock: AugmentedCall Observable
>; - /** - * Generate inherent extrinsics. - **/ - inherentExtrinsics: AugmentedCall< - ApiType, - ( - inherent: - | InherentData - | { - data?: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xea93e3f16f3d6962/2 */ - collectCollationInfo: { - /** - * Collect information about a collation. - **/ - collectCollationInfo: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdf6acb689907609b/5 */ - core: { - /** - * Execute the given block. - **/ - executeBlock: AugmentedCall< - ApiType, - ( - block: - | Block - | { - header?: any; - extrinsics?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Initialize a block with the given header. - **/ - initializeBlock: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Returns the version of the runtime. - **/ - version: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x91b1c8b16328eb92/1 */ - dryRunApi: { - /** - * Dry run call - **/ - dryRunCall: AugmentedCall< - ApiType, - ( - origin: - | OriginCaller - | { - System: any; - } - | string - | Uint8Array, - call: RuntimeCall | IMethod | string | Uint8Array - ) => Observable> - >; - /** - * Dry run XCM program - **/ - dryRunXcm: AugmentedCall< - ApiType, - ( - originLocation: - | VersionedMultiLocation - | { - V0: any; - } - | { - V1: any; - } - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - xcm: - | VersionedXcm - | { - V0: any; - } - | { - V1: any; - } - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xb9e7717ace5b45cd/1 */ - fileSystemApi: { - /** - * Query the chunks that a BSP needs to prove to confirm that it is storing a file. - **/ - queryBspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryBspConfirmChunksToProveForFileError>> - >; - /** - * Query the earliest tick number that a BSP can volunteer for a file. - **/ - queryEarliestFileVolunteerTick: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the chunks that a MSP needs to prove to confirm that it is storing a file. - **/ - queryMspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - mspId: MainStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryMspConfirmChunksToProveForFileError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xfbc577b9d747efd6/1 */ - genesisBuilder: { - /** - * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. - **/ - buildConfig: AugmentedCall< - ApiType, - (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> - >; - /** - * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. - **/ - createDefaultConfig: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37e397fc7c91f5e4/2 */ - metadata: { - /** - * Returns the metadata of a runtime - **/ - metadata: AugmentedCall Observable>; - /** - * Returns the metadata at a given version. - **/ - metadataAtVersion: AugmentedCall< - ApiType, - (version: u32 | AnyNumber | Uint8Array) => Observable> - >; - /** - * Returns the supported metadata versions. - **/ - metadataVersions: AugmentedCall Observable>>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf78b278be53f454c/2 */ - offchainWorkerApi: { - /** - * Starts the off-chain task for given block header. - **/ - offchainWorker: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x1078d7ac24a07b0e/1 */ - paymentStreamsApi: { - /** - * Get the payment streams of a provider. - **/ - getUsersOfPaymentStreamsOfProvider: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Get the users that have a debt to the provider greater than the threshold. - **/ - getUsersWithDebtOverThreshold: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array, - threshold: Balance | AnyNumber | Uint8Array - ) => Observable, GetUsersWithDebtOverThresholdError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x0be7208954c7c6c9/1 */ - proofsDealerApi: { - /** - * Get the challenge period for a given Provider. - **/ - getChallengePeriod: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the seed for a given challenge tick. - **/ - getChallengeSeed: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get challenges from a seed. - **/ - getChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array, - count: u32 | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get the checkpoint challenge period. - **/ - getCheckpointChallengePeriod: AugmentedCall Observable>; - /** - * Get checkpoint challenges for a given block. - **/ - getCheckpointChallenges: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable< - Result]>>, GetCheckpointChallengesError> - > - >; - /** - * Get the current tick. - **/ - getCurrentTick: AugmentedCall Observable>; - /** - * Get forest challenges from a seed. - **/ - getForestChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the last checkpoint challenge tick. - **/ - getLastCheckpointChallengeTick: AugmentedCall Observable>; - /** - * Get the last tick for which the submitter submitted a proof. - **/ - getLastTickProviderSubmittedProof: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the next deadline tick. - **/ - getNextDeadlineTick: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xab3c0572291feb8b/1 */ - sessionKeys: { - /** - * Decode the given public session keys. - **/ - decodeSessionKeys: AugmentedCall< - ApiType, - ( - encoded: Bytes | string | Uint8Array - ) => Observable>>> - >; - /** - * Generate a set of session keys with optionally using the given seed. - **/ - generateSessionKeys: AugmentedCall< - ApiType, - (seed: Option | null | Uint8Array | Bytes | string) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x966604ffe78eb092/1 */ - storageProvidersApi: { - /** - * Get the BSP info for a given BSP ID. - **/ - getBspInfo: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the slashable amount corresponding to the configured max file size. - **/ - getSlashAmountPerMaxFileSize: AugmentedCall Observable>; - /** - * Get the Storage Provider ID for a given Account ID. - **/ - getStorageProviderId: AugmentedCall< - ApiType, - (who: AccountId | string | Uint8Array) => Observable> - >; - /** - * Get the worst case scenario slashable amount for a provider. - **/ - getWorstCaseScenarioSlashableAmount: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Query the available storage capacity. - **/ - queryAvailableStorageCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the earliest block number that a BSP can change its capacity. - **/ - queryEarliestChangeCapacityBlock: AugmentedCall< - ApiType, - ( - providerId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the MSP ID of a bucket ID. - **/ - queryMspIdOfBucketId: AugmentedCall< - ApiType, - ( - bucketId: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the storage provider capacity. - **/ - queryStorageProviderCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd2bc9897eed08f15/3 */ - taggedTransactionQueue: { - /** - * Validate the transaction. - **/ - validateTransaction: AugmentedCall< - ApiType, - ( - source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, - tx: Extrinsic | IExtrinsic | string | Uint8Array, - blockHash: BlockHash | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37c8bb1350a9a2a8/4 */ - transactionPaymentApi: { - /** - * The transaction fee details - **/ - queryFeeDetails: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The transaction info - **/ - queryInfo: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: - | Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf3ff14d5ab527059/3 */ - transactionPaymentCallApi: { - /** - * The call fee details - **/ - queryCallFeeDetails: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The call info - **/ - queryCallInfo: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: - | Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x6ff52ee858e6c5bd/1 */ - xcmPaymentApi: { - /** - * The API to query acceptable payment assets - **/ - queryAcceptablePaymentAssets: AugmentedCall< - ApiType, - ( - version: u32 | AnyNumber | Uint8Array - ) => Observable, XcmPaymentApiError>> - >; - /** - * - **/ - queryWeightToAssetFee: AugmentedCall< - ApiType, - ( - weight: - | WeightV2 - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array, - asset: - | XcmVersionedAssetId - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * - **/ - queryXcmWeight: AugmentedCall< - ApiType, - ( - message: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - } -} +import "@polkadot/api-base/types/calls"; +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; +import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; +import type { BlockHash } from "@polkadot/types/interfaces/chain"; +import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; +import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; +import type { + CallDryRunEffects, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; +import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; +import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; +import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; +import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; +import type { + AccountId, + Balance, + Block, + BlockNumber, + Call, + ExtrinsicInclusionMode, + H256, + Header, + Index, + KeyTypeId, + OriginCaller, + RuntimeCall, + Slot, + SlotDuration, + Weight, + WeightV2 +} from "@polkadot/types/interfaces/runtime"; +import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; +import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; +import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; +import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; +import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; +import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; +import type { IExtrinsic, Observable } from "@polkadot/types/types"; +import type { + BackupStorageProvider, + BackupStorageProviderId, + ChunkId, + GetBspInfoError, + GetChallengePeriodError, + GetChallengeSeedError, + GetCheckpointChallengesError, + GetLastTickProviderSubmittedProofError, + GetNextDeadlineTickError, + GetUsersWithDebtOverThresholdError, + MainStorageProviderId, + ProviderId, + QueryAvailableStorageCapacityError, + QueryBspConfirmChunksToProveForFileError, + QueryEarliestChangeCapacityBlockError, + QueryFileEarliestVolunteerBlockError, + QueryMspConfirmChunksToProveForFileError, + QueryMspIdOfBucketIdError, + QueryStorageProviderCapacityError, + RandomnessOutput, + StorageDataUnit, + StorageProviderId, + TrieRemoveMutation +} from "@storagehub/api-augment/interfaces/storagehubclient"; +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; +declare module "@polkadot/api-base/types/calls" { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/1 */ + accountNonceApi: { + /** + * The API to query account nonce (aka transaction index) + **/ + accountNonce: AugmentedCall< + ApiType, + (accountId: AccountId | string | Uint8Array) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdd718d5cc53262d4/1 */ + auraApi: { + /** + * Return the current set of authorities. + **/ + authorities: AugmentedCall Observable>>; + /** + * Returns the slot duration for Aura. + **/ + slotDuration: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd7bdd8a272ca0d65/1 */ + auraUnincludedSegmentApi: { + /** + * Whether it is legal to extend the chain + **/ + canBuildUpon: AugmentedCall< + ApiType, + ( + includedHash: BlockHash | string | Uint8Array, + slot: Slot | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/6 */ + blockBuilder: { + /** + * Apply the given extrinsic. + **/ + applyExtrinsic: AugmentedCall< + ApiType, + ( + extrinsic: Extrinsic | IExtrinsic | string | Uint8Array + ) => Observable + >; + /** + * Check that the inherents are valid. + **/ + checkInherents: AugmentedCall< + ApiType, + ( + block: + | Block + | { + header?: any; + extrinsics?: any; + } + | string + | Uint8Array, + data: + | InherentData + | { + data?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable
>; + /** + * Generate inherent extrinsics. + **/ + inherentExtrinsics: AugmentedCall< + ApiType, + ( + inherent: + | InherentData + | { + data?: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xea93e3f16f3d6962/2 */ + collectCollationInfo: { + /** + * Collect information about a collation. + **/ + collectCollationInfo: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/5 */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall< + ApiType, + ( + block: + | Block + | { + header?: any; + extrinsics?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Initialize a block with the given header. + **/ + initializeBlock: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91b1c8b16328eb92/1 */ + dryRunApi: { + /** + * Dry run call + **/ + dryRunCall: AugmentedCall< + ApiType, + ( + origin: + | OriginCaller + | { + System: any; + } + | string + | Uint8Array, + call: RuntimeCall | IMethod | string | Uint8Array + ) => Observable> + >; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall< + ApiType, + ( + originLocation: + | VersionedMultiLocation + | { + V0: any; + } + | { + V1: any; + } + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + xcm: + | VersionedXcm + | { + V0: any; + } + | { + V1: any; + } + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xb9e7717ace5b45cd/1 */ + fileSystemApi: { + /** + * Query the chunks that a BSP needs to prove to confirm that it is storing a file. + **/ + queryBspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryBspConfirmChunksToProveForFileError>> + >; + /** + * Query the earliest tick number that a BSP can volunteer for a file. + **/ + queryEarliestFileVolunteerTick: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the chunks that a MSP needs to prove to confirm that it is storing a file. + **/ + queryMspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + mspId: MainStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryMspConfirmChunksToProveForFileError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/1 */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. + **/ + buildConfig: AugmentedCall< + ApiType, + (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> + >; + /** + * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. + **/ + createDefaultConfig: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/2 */ + metadata: { + /** + * Returns the metadata of a runtime + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version. + **/ + metadataAtVersion: AugmentedCall< + ApiType, + (version: u32 | AnyNumber | Uint8Array) => Observable> + >; + /** + * Returns the supported metadata versions. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/2 */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x1078d7ac24a07b0e/1 */ + paymentStreamsApi: { + /** + * Get the payment streams of a provider. + **/ + getUsersOfPaymentStreamsOfProvider: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Get the users that have a debt to the provider greater than the threshold. + **/ + getUsersWithDebtOverThreshold: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array, + threshold: Balance | AnyNumber | Uint8Array + ) => Observable, GetUsersWithDebtOverThresholdError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x0be7208954c7c6c9/1 */ + proofsDealerApi: { + /** + * Get the challenge period for a given Provider. + **/ + getChallengePeriod: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the seed for a given challenge tick. + **/ + getChallengeSeed: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get challenges from a seed. + **/ + getChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array, + count: u32 | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get the checkpoint challenge period. + **/ + getCheckpointChallengePeriod: AugmentedCall Observable>; + /** + * Get checkpoint challenges for a given block. + **/ + getCheckpointChallenges: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable< + Result]>>, GetCheckpointChallengesError> + > + >; + /** + * Get the current tick. + **/ + getCurrentTick: AugmentedCall Observable>; + /** + * Get forest challenges from a seed. + **/ + getForestChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the last checkpoint challenge tick. + **/ + getLastCheckpointChallengeTick: AugmentedCall Observable>; + /** + * Get the last tick for which the submitter submitted a proof. + **/ + getLastTickProviderSubmittedProof: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the next deadline tick. + **/ + getNextDeadlineTick: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/1 */ + sessionKeys: { + /** + * Decode the given public session keys. + **/ + decodeSessionKeys: AugmentedCall< + ApiType, + ( + encoded: Bytes | string | Uint8Array + ) => Observable>>> + >; + /** + * Generate a set of session keys with optionally using the given seed. + **/ + generateSessionKeys: AugmentedCall< + ApiType, + (seed: Option | null | Uint8Array | Bytes | string) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x966604ffe78eb092/1 */ + storageProvidersApi: { + /** + * Get the BSP info for a given BSP ID. + **/ + getBspInfo: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the slashable amount corresponding to the configured max file size. + **/ + getSlashAmountPerMaxFileSize: AugmentedCall Observable>; + /** + * Get the Storage Provider ID for a given Account ID. + **/ + getStorageProviderId: AugmentedCall< + ApiType, + (who: AccountId | string | Uint8Array) => Observable> + >; + /** + * Get the worst case scenario slashable amount for a provider. + **/ + getWorstCaseScenarioSlashableAmount: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Query the available storage capacity. + **/ + queryAvailableStorageCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the earliest block number that a BSP can change its capacity. + **/ + queryEarliestChangeCapacityBlock: AugmentedCall< + ApiType, + ( + providerId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the MSP ID of a bucket ID. + **/ + queryMspIdOfBucketId: AugmentedCall< + ApiType, + ( + bucketId: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the storage provider capacity. + **/ + queryStorageProviderCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/3 */ + taggedTransactionQueue: { + /** + * Validate the transaction. + **/ + validateTransaction: AugmentedCall< + ApiType, + ( + source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, + tx: Extrinsic | IExtrinsic | string | Uint8Array, + blockHash: BlockHash | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/4 */ + transactionPaymentApi: { + /** + * The transaction fee details + **/ + queryFeeDetails: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The transaction info + **/ + queryInfo: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: + | Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/3 */ + transactionPaymentCallApi: { + /** + * The call fee details + **/ + queryCallFeeDetails: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The call info + **/ + queryCallInfo: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: + | Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6ff52ee858e6c5bd/1 */ + xcmPaymentApi: { + /** + * The API to query acceptable payment assets + **/ + queryAcceptablePaymentAssets: AugmentedCall< + ApiType, + ( + version: u32 | AnyNumber | Uint8Array + ) => Observable, XcmPaymentApiError>> + >; + /** + * + **/ + queryWeightToAssetFee: AugmentedCall< + ApiType, + ( + weight: + | WeightV2 + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array, + asset: + | XcmVersionedAssetId + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * + **/ + queryXcmWeight: AugmentedCall< + ApiType, + ( + message: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-tx.d.ts b/api-augment/dist/types/interfaces/augment-api-tx.d.ts index 5cc67b51f..2a7f8fd83 100644 --- a/api-augment/dist/types/interfaces/augment-api-tx.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-tx.d.ts @@ -1,4020 +1,4020 @@ -import "@polkadot/api-base/types/submittable"; -import type { - ApiTypes, - AugmentedSubmittable, - SubmittableExtrinsic, - SubmittableExtrinsicFunction -} from "@polkadot/api-base/types"; -import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - PalletBalancesAdjustmentDirection, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemMspStorageRequestResponse, - PalletNftsAttributeNamespace, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsDestroyWitness, - PalletNftsItemConfig, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintWitness, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersValueProposition, - ShpFileKeyVerifierFileKeyProof, - SpRuntimeMultiSignature, - SpTrieStorageProofCompactProof, - SpWeightsWeightV2Weight, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV4Location, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeSessionKeys, - XcmV3WeightLimit, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedXcm -} from "@polkadot/types/lookup"; -export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; -export type __SubmittableExtrinsic = SubmittableExtrinsic; -export type __SubmittableExtrinsicFunction = - SubmittableExtrinsicFunction; -declare module "@polkadot/api-base/types/submittable" { - interface AugmentedSubmittables { - balances: { - /** - * Burn the specified liquid free balance from the origin account. - * - * If the origin's account ends up below the existential deposit as a result - * of the burn and `keep_alive` is false, the account will be reaped. - * - * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, - * this `burn` operation will reduce total issuance by the amount _burned_. - **/ - burn: AugmentedSubmittable< - ( - value: Compact | AnyNumber | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [Compact, bool] - >; - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - **/ - forceAdjustTotalIssuance: AugmentedSubmittable< - ( - direction: - | PalletBalancesAdjustmentDirection - | "Increase" - | "Decrease" - | number - | Uint8Array, - delta: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [PalletBalancesAdjustmentDirection, Compact] - >; - /** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - **/ - forceSetBalance: AugmentedSubmittable< - ( - who: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - newFree: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - **/ - forceTransfer: AugmentedSubmittable< - ( - source: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, MultiAddress, Compact] - >; - /** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - **/ - forceUnreserve: AugmentedSubmittable< - ( - who: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - amount: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, u128] - >; - /** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - **/ - transferAll: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, bool] - >; - /** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - **/ - transferAllowDeath: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - **/ - transferKeepAlive: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - **/ - upgradeAccounts: AugmentedSubmittable< - ( - who: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - bucketNfts: { - /** - * Share access to files within a bucket with another account. - * - * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. - **/ - shareAccess: AugmentedSubmittable< - ( - recipient: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [MultiAddress, H256, u32, Option] - >; - /** - * Update read access for an item. - **/ - updateReadAccess: AugmentedSubmittable< - ( - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [H256, u32, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - collatorSelection: { - /** - * Add a new account `who` to the list of `Invulnerables` collators. `who` must have - * registered session keys. If `who` is a candidate, they will be removed. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - addInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Deregister `origin` as a collator candidate. Note that the collator can only leave on - * session change. The `CandidacyBond` will be unreserved immediately. - * - * This call will fail if the total number of candidates would drop below - * `MinEligibleCollators`. - **/ - leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Register this account as a collator candidate. The account must (a) already have - * registered session keys and (b) be able to reserve the `CandidacyBond`. - * - * This call is not available to `Invulnerable` collators. - **/ - registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must - * be sorted. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - removeInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Set the candidacy bond amount. - * - * If the candidacy bond is increased by this call, all current candidates which have a - * deposit lower than the new bond will be kicked from the list and get their deposits - * back. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setCandidacyBond: AugmentedSubmittable< - (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Set the ideal number of non-invulnerable collators. If lowering this number, then the - * number of running collators could be higher than this figure. Aside from that edge case, - * there should be no other way to have more candidates than the desired number. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setDesiredCandidates: AugmentedSubmittable< - (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Set the list of invulnerable (fixed) collators. These collators must do some - * preparation, namely to have registered session keys. - * - * The call will remove any accounts that have not registered keys from the set. That is, - * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as - * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. - * - * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It - * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A - * `batch_all` can also be used to enforce atomicity. If any candidates are included in - * `new`, they should be removed with `remove_invulnerable_candidate` after execution. - * - * Must be called by the `UpdateOrigin`. - **/ - setInvulnerables: AugmentedSubmittable< - ( - updated: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * The caller `origin` replaces a candidate `target` in the collator candidate list by - * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than - * the existing bond of the target it is trying to replace. - * - * This call will fail if the caller is already a collator candidate or invulnerable, the - * caller does not have registered session keys, the target is not a collator candidate, - * and/or the `deposit` amount cannot be reserved. - **/ - takeCandidateSlot: AugmentedSubmittable< - ( - deposit: u128 | AnyNumber | Uint8Array, - target: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u128, AccountId32] - >; - /** - * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. - * - * Setting a `new_deposit` that is lower than the current deposit while `origin` is - * occupying a top-`DesiredCandidates` slot is not allowed. - * - * This call will fail if `origin` is not a collator candidate, the updated bond is lower - * than the minimum candidacy bond, and/or the amount cannot be reserved. - **/ - updateBond: AugmentedSubmittable< - (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - cumulusXcm: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - fileSystem: { - /** - * Add yourself as a data server for providing the files of the bucket requested to be moved. - **/ - bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Executed by a BSP to confirm to stop storing a file. - * - * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. - * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the - * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. - **/ - bspConfirmStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to confirm they are storing data of a storage request. - **/ - bspConfirmStoring: AugmentedSubmittable< - ( - nonInclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array, - fileKeysAndProofs: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | ShpFileKeyVerifierFileKeyProof - | { - fileMetadata?: any; - proof?: any; - } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [SpTrieStorageProofCompactProof, Vec>] - >; - /** - * Executed by a BSP to request to stop storing a file. - * - * In the event when a storage request no longer exists for the data the BSP no longer stores, - * it is required that the BSP still has access to the metadata of the initial storage request. - * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever - * the BSP gets that data is up to it. One example could be from the assigned MSP. - * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage - * provider's Merkle Forest. - **/ - bspRequestStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - canServe: bool | boolean | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to volunteer for storing a file. - * - * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, - * so a BSP is strongly advised to check beforehand. Another reason for failure is - * if the maximum number of BSPs has been reached. A successful assignment as BSP means - * that some of the collateral tokens of that MSP are frozen. - **/ - bspVolunteer: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Create and associate a collection with a bucket. - **/ - createAndAssociateCollectionWithBucket: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - createBucket: AugmentedSubmittable< - ( - mspId: H256 | string | Uint8Array, - name: Bytes | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, Bytes, bool] - >; - deleteFile: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - fingerprint: H256 | string | Uint8Array, - maybeInclusionForestProof: - | Option - | null - | Uint8Array - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - ) => SubmittableExtrinsic, - [H256, H256, Bytes, u64, H256, Option] - >; - /** - * Issue a new storage request for a file - **/ - issueStorageRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - mspId: H256 | string | Uint8Array, - peerIds: Vec | (Bytes | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [H256, Bytes, H256, u64, H256, Vec] - >; - mspRespondMoveBucketRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - response: - | PalletFileSystemBucketMoveRequestResponse - | "Accepted" - | "Rejected" - | number - | Uint8Array - ) => SubmittableExtrinsic, - [H256, PalletFileSystemBucketMoveRequestResponse] - >; - /** - * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. - * - * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be - * accepted, rejected or have failed to be processed in the results of the event emitted. - * - * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys - * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that - * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP - * wasn't storing it before. - **/ - mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< - ( - fileKeyResponsesInput: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | PalletFileSystemMspStorageRequestResponse - | { - accept?: any; - reject?: any; - } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [Vec>] - >; - pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< - ( - user: AccountId32 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - forestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, H256, SpTrieStorageProofCompactProof] - >; - requestMoveBucket: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - newMspId: H256 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256] - >; - /** - * Revoke storage request - **/ - revokeStorageRequest: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - setGlobalParameters: AugmentedSubmittable< - ( - replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, - tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option, Option] - >; - /** - * Executed by a SP to stop storing a file from an insolvent user. - * - * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since - * it won't be getting paid for it anymore. - * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to - * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. - **/ - stopStoringForInsolventUser: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] - >; - updateBucketPrivacy: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - messageQueue: { - /** - * Execute an overweight message. - * - * Temporary processing errors will be propagated whereas permanent errors are treated - * as success condition. - * - * - `origin`: Must be `Signed`. - * - `message_origin`: The origin from which the message to be executed arrived. - * - `page`: The page in the queue in which the message to be executed is sitting. - * - `index`: The index into the queue of the message to be executed. - * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution - * of the message. - * - * Benchmark complexity considerations: O(index + weight_limit). - **/ - executeOverweight: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { - Here: any; - } - | { - Parent: any; - } - | { - Sibling: any; - } - | string - | Uint8Array, - page: u32 | AnyNumber | Uint8Array, - index: u32 | AnyNumber | Uint8Array, - weightLimit: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] - >; - /** - * Remove a page which has no more messages remaining to be processed or is stale. - **/ - reapPage: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { - Here: any; - } - | { - Parent: any; - } - | { - Sibling: any; - } - | string - | Uint8Array, - pageIndex: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - nfts: { - /** - * Approve item's attributes to be changed by a delegated third-party account. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: A collection of the item. - * - `item`: The item that holds attributes. - * - `delegate`: The account to delegate permission to change attributes of the item. - * - * Emits `ItemAttributesApprovalAdded` on success. - **/ - approveItemAttributes: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Approve an item to be transferred by a delegated third-party account. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `item`. - * - * - `collection`: The collection of the item to be approved for delegated transfer. - * - `item`: The item to be approved for delegated transfer. - * - `delegate`: The account to delegate permission to transfer the item. - * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the - * number of blocks after which the approval will expire - * - * Emits `TransferApproved` on success. - * - * Weight: `O(1)` - **/ - approveTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Destroy a single item. - * - * The origin must conform to `ForceOrigin` or must be Signed and the signing account must - * be the owner of the `item`. - * - * - `collection`: The collection of the item to be burned. - * - `item`: The item to be burned. - * - * Emits `Burned`. - * - * Weight: `O(1)` - **/ - burn: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Allows to buy an item if it's up for sale. - * - * Origin must be Signed and must not be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item the sender wants to buy. - * - `bid_price`: The price the sender is willing to pay. - * - * Emits `ItemBought` on success. - **/ - buyItem: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - bidPrice: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u128] - >; - /** - * Cancel one of the transfer approvals for a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approval will be cancelled. - * - `item`: The item of the collection of whose approval will be cancelled. - * - `delegate`: The account that is going to loose their approval. - * - * Emits `ApprovalCancelled` on success. - * - * Weight: `O(1)` - **/ - cancelApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Cancel the previously provided approval to change item's attributes. - * All the previously set attributes by the `delegate` will be removed. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: Collection that the item is contained within. - * - `item`: The item that holds attributes. - * - `delegate`: The previously approved account to remove. - * - * Emits `ItemAttributesApprovalRemoved` on success. - **/ - cancelItemAttributesApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - witness: - | PalletNftsCancelAttributesApprovalWitness - | { - accountAttributes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] - >; - /** - * Cancel an atomic swap. - * - * Origin must be Signed. - * Origin must be an owner of the `item` if the deadline hasn't expired. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - * Emits `SwapCancelled` on success. - **/ - cancelSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Claim an atomic swap. - * This method executes a pending swap, that was created by a counterpart before. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `send_collection`: The collection of the item to be sent. - * - `send_item`: The item to be sent. - * - `receive_collection`: The collection of the item to be received. - * - `receive_item`: The item to be received. - * - `witness_price`: A price that was previously agreed on. - * - * Emits `SwapClaimed` on success. - **/ - claimSwap: AugmentedSubmittable< - ( - sendCollection: u32 | AnyNumber | Uint8Array, - sendItem: u32 | AnyNumber | Uint8Array, - receiveCollection: u32 | AnyNumber | Uint8Array, - receiveItem: u32 | AnyNumber | Uint8Array, - witnessPrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { - amount?: any; - direction?: any; - } - | string - ) => SubmittableExtrinsic, - [u32, u32, u32, u32, Option] - >; - /** - * Cancel all the approvals of a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approvals will be cleared. - * - `item`: The item of the collection of whose approvals will be cleared. - * - * Emits `AllApprovalsCancelled` on success. - * - * Weight: `O(1)` - **/ - clearAllTransferApprovals: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Clear an attribute for a collection or item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * attribute. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `maybe_item`: The identifier of the item whose metadata to clear. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - * Emits `AttributeCleared`. - * - * Weight: `O(1)` - **/ - clearAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - key: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes] - >; - /** - * Clear the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose metadata to clear. - * - * Emits `CollectionMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearCollectionMetadata: AugmentedSubmittable< - (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Clear the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `item`: The identifier of the item whose metadata to clear. - * - * Emits `ItemMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Issue a new collection of non-fungible items from a public origin. - * - * This new collection has no items initially and its owner is the origin. - * - * The origin must be Signed and the sender must have sufficient funds free. - * - * `CollectionDeposit` funds of sender are reserved. - * - * Parameters: - * - `admin`: The admin of this collection. The admin is the initial address of each - * member of the collection's admin team. - * - * Emits `Created` event when successful. - * - * Weight: `O(1)` - **/ - create: AugmentedSubmittable< - ( - admin: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { - settings?: any; - maxSupply?: any; - mintSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Register a new atomic swap, declaring an intention to send an `item` in exchange for - * `desired_item` from origin to target on the current blockchain. - * The target can execute the swap during the specified `duration` of blocks (if set). - * Additionally, the price could be set for the desired `item`. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - `desired_collection`: The collection of the desired item. - * - `desired_item`: The desired item an owner wants to receive. - * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. - * - `duration`: A deadline for the swap. Specified by providing the number of blocks - * after which the swap will expire. - * - * Emits `SwapCreated` on success. - **/ - createSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array, - desiredCollection: u32 | AnyNumber | Uint8Array, - maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, - maybePrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { - amount?: any; - direction?: any; - } - | string, - duration: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u32, Option, Option, u32] - >; - /** - * Destroy a collection of fungible items. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * owner of the `collection`. - * - * NOTE: The collection must have 0 items to be destroyed. - * - * - `collection`: The identifier of the collection to be destroyed. - * - `witness`: Information on the items minted in the collection. This must be - * correct. - * - * Emits `Destroyed` event when successful. - * - * Weight: `O(m + c + a)` where: - * - `m = witness.item_metadatas` - * - `c = witness.item_configs` - * - `a = witness.attributes` - **/ - destroy: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - witness: - | PalletNftsDestroyWitness - | { - itemMetadatas?: any; - itemConfigs?: any; - attributes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsDestroyWitness] - >; - /** - * Change the config of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `config`: The new config of this collection. - * - * Emits `CollectionConfigChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionConfig: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - config: - | PalletNftsCollectionConfig - | { - settings?: any; - maxSupply?: any; - mintSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsCollectionConfig] - >; - /** - * Change the Owner of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `owner`: The new Owner of this collection. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionOwner: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - owner: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Issue a new collection of non-fungible items from a privileged origin. - * - * This new collection has no items initially. - * - * The origin must conform to `ForceOrigin`. - * - * Unlike `create`, no funds are reserved. - * - * - `owner`: The owner of this collection of items. The owner has full superuser - * permissions over this item, but may later change and configure the permissions using - * `transfer_ownership` and `set_team`. - * - * Emits `ForceCreated` event when successful. - * - * Weight: `O(1)` - **/ - forceCreate: AugmentedSubmittable< - ( - owner: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { - settings?: any; - maxSupply?: any; - mintSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Mint an item of a particular collection from a privileged origin. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * Issuer of the `collection`. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `item_config`: A config of the new item. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - forceMint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - itemConfig: - | PalletNftsItemConfig - | { - settings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsItemConfig] - >; - /** - * Force-set an attribute for a collection or item. - * - * Origin must be `ForceOrigin`. - * - * If the attribute already exists and it was set by another account, the deposit - * will be returned to the previous owner. - * - * - `set_as`: An optional owner of the attribute. - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - forceSetAttribute: AugmentedSubmittable< - ( - setAs: Option | null | Uint8Array | AccountId32 | string, - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Disallows specified settings for the whole collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection to be locked. - * - `lock_settings`: The settings to be locked. - * - * Note: it's possible to only lock(set) the setting, but not to unset it. - * - * Emits `CollectionLocked`. - * - * Weight: `O(1)` - **/ - lockCollection: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - lockSettings: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u64] - >; - /** - * Disallows changing the metadata or attributes of the item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin - * of the `collection`. - * - * - `collection`: The collection if the `item`. - * - `item`: An item to be locked. - * - `lock_metadata`: Specifies whether the metadata should be locked. - * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace - * should be locked. - * - * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. - * When the metadata or attributes are locked, it won't be possible the unlock them. - * - * Emits `ItemPropertiesLocked`. - * - * Weight: `O(1)` - **/ - lockItemProperties: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - lockMetadata: bool | boolean | Uint8Array, - lockAttributes: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, bool, bool] - >; - /** - * Disallow further unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become non-transferable. - * - * Emits `ItemTransferLocked`. - * - * Weight: `O(1)` - **/ - lockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Mint an item of a particular collection. - * - * The origin must be Signed and the sender must comply with the `mint_settings` rules. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned - * item_id from that collection needs to be provided within the witness data object. If - * the mint price is set, then it should be additionally confirmed in the `witness_data`. - * - * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - mint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - witnessData: - | Option - | null - | Uint8Array - | PalletNftsMintWitness - | { - ownedItem?: any; - mintPrice?: any; - } - | string - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Mint an item by providing the pre-signed approval. - * - * Origin must be Signed. - * - * - `mint_data`: The pre-signed approval that consists of the information about the item, - * its metadata, attributes, who can mint it (`None` for anyone) and until what block - * number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Issuer of the collection. - * - * Emits `Issued` on success. - * Emits `AttributeSet` if the attributes were provided. - * Emits `ItemMetadataSet` if the metadata was not empty. - **/ - mintPreSigned: AugmentedSubmittable< - ( - mintData: - | PalletNftsPreSignedMint - | { - collection?: any; - item?: any; - attributes?: any; - metadata?: any; - onlyAccount?: any; - deadline?: any; - mintPrice?: any; - } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { - Ed25519: any; - } - | { - Sr25519: any; - } - | { - Ecdsa: any; - } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Allows to pay the tips. - * - * Origin must be Signed. - * - * - `tips`: Tips array. - * - * Emits `TipSent` on every tip transfer. - **/ - payTips: AugmentedSubmittable< - ( - tips: - | Vec - | ( - | PalletNftsItemTip - | { - collection?: any; - item?: any; - receiver?: any; - amount?: any; - } - | string - | Uint8Array - )[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Re-evaluate the deposits on some items. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection of the items to be reevaluated. - * - `items`: The items of the collection whose deposits will be reevaluated. - * - * NOTE: This exists as a best-effort function. Any items which are unknown or - * in the case that the owner account does not have reservable funds to pay for a - * deposit increase are ignored. Generally the owner isn't going to call this on items - * whose existing deposit is less than the refreshed deposit as it would only cost them, - * so it's of little consequence. - * - * It will still return an error in the case that the collection is unknown or the signer - * is not permitted to call it. - * - * Weight: `O(items.len())` - **/ - redeposit: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - items: Vec | (u32 | AnyNumber | Uint8Array)[] - ) => SubmittableExtrinsic, - [u32, Vec] - >; - /** - * Set (or reset) the acceptance of ownership for a particular account. - * - * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a - * provider reference. - * - * - `maybe_collection`: The identifier of the collection whose ownership the signer is - * willing to accept, or if `None`, an indication that the signer is willing to accept no - * ownership transferal. - * - * Emits `OwnershipAcceptanceChanged`. - **/ - setAcceptOwnership: AugmentedSubmittable< - ( - maybeCollection: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Set an attribute for a collection or item. - * - * Origin must be Signed and must conform to the namespace ruleset: - * - `CollectionOwner` namespace could be modified by the `collection` Admin only; - * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` - * should be set in that case; - * - `Account(AccountId)` namespace could be modified only when the `origin` was given a - * permission to do so; - * - * The funds of `origin` are reserved according to the formula: - * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - setAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Set attributes for an item by providing the pre-signed approval. - * - * Origin must be Signed and must be an owner of the `data.item`. - * - * - `data`: The pre-signed approval that consists of the information about the item, - * attributes to update and until what block number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Admin of the collection for the - * `CollectionOwner` namespace. - * - * Emits `AttributeSet` for each provided attribute. - * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. - * Emits `PreSignedAttributesSet` on success. - **/ - setAttributesPreSigned: AugmentedSubmittable< - ( - data: - | PalletNftsPreSignedAttributes - | { - collection?: any; - item?: any; - attributes?: any; - namespace?: any; - deadline?: any; - } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { - Ed25519: any; - } - | { - Sr25519: any; - } - | { - Ecdsa: any; - } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Set the maximum number of items a collection could have. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of - * the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `max_supply`: The maximum number of items a collection could have. - * - * Emits `CollectionMaxSupplySet` event when successful. - **/ - setCollectionMaxSupply: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maxSupply: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Set the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * If the origin is `Signed`, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the item whose metadata to update. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `CollectionMetadataSet`. - * - * Weight: `O(1)` - **/ - setCollectionMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Bytes] - >; - /** - * Set the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * If the origin is Signed, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `item`: The identifier of the item whose metadata to set. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `ItemMetadataSet`. - * - * Weight: `O(1)` - **/ - setMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, Bytes] - >; - /** - * Set (or reset) the price for an item. - * - * Origin must be Signed and must be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item to set the price for. - * - `price`: The price for the item. Pass `None`, to reset the price. - * - `buyer`: Restricts the buy operation to a specific account. - * - * Emits `ItemPriceSet` on success if the price is not `None`. - * Emits `ItemPriceRemoved` on success if the price is `None`. - **/ - setPrice: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - price: Option | null | Uint8Array | u128 | AnyNumber, - whitelistedBuyer: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - ) => SubmittableExtrinsic, - [u32, u32, Option, Option] - >; - /** - * Change the Issuer, Admin and Freezer of a collection. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `collection`. - * - * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it - * after to `Some(account)`. - * - * - `collection`: The collection whose team should be changed. - * - `issuer`: The new Issuer of this collection. - * - `admin`: The new Admin of this collection. - * - `freezer`: The new Freezer of this collection. - * - * Emits `TeamChanged`. - * - * Weight: `O(1)` - **/ - setTeam: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - issuer: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string, - admin: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string, - freezer: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - ) => SubmittableExtrinsic, - [u32, Option, Option, Option] - >; - /** - * Move an item from the sender account to another. - * - * Origin must be Signed and the signing account must be either: - * - the Owner of the `item`; - * - the approved delegate for the `item` (in this case, the approval is reset). - * - * Arguments: - * - `collection`: The collection of the item to be transferred. - * - `item`: The item to be transferred. - * - `dest`: The account to receive ownership of the item. - * - * Emits `Transferred`. - * - * Weight: `O(1)` - **/ - transfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Change the Owner of a collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection whose owner should be changed. - * - `owner`: The new Owner of this collection. They must have called - * `set_accept_ownership` with `collection` in order for this operation to succeed. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - transferOwnership: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - newOwner: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Re-allow unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become transferable. - * - * Emits `ItemTransferUnlocked`. - * - * Weight: `O(1)` - **/ - unlockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Update mint settings. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer - * of the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `mint_settings`: The new mint settings. - * - * Emits `CollectionMintSettingsUpdated` event when successful. - **/ - updateMintSettings: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - mintSettings: - | PalletNftsMintSettings - | { - mintType?: any; - price?: any; - startBlock?: any; - endBlock?: any; - defaultItemSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsMintSettings] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainInfo: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainSystem: { - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec - * version and name should be verified on upgrade. Since the authorization only has a hash, - * it cannot actually perform the verification. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - ( - codeHash: H256 | string | Uint8Array, - checkVersion: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Note that this function will not apply the new `code`, but only attempt to schedule the - * upgrade with the Relay Chain. - * - * All origins are allowed. - **/ - enactAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the current validation data. - * - * This should be invoked exactly once per block. It will panic at the finalization - * phase if the call was not invoked. - * - * The dispatch origin for this call must be `Inherent` - * - * As a side effect, this function upgrades the current validation function - * if the appropriate time has come. - **/ - setValidationData: AugmentedSubmittable< - ( - data: - | CumulusPrimitivesParachainInherentParachainInherentData - | { - validationData?: any; - relayChainState?: any; - downwardMessages?: any; - horizontalMessages?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesParachainInherentParachainInherentData] - >; - sudoSendUpwardMessage: AugmentedSubmittable< - (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parameters: { - /** - * Set the value of a parameter. - * - * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be - * deleted by setting them to `None`. - **/ - setParameter: AugmentedSubmittable< - ( - keyValue: - | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters - | { - RuntimeConfig: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - paymentStreams: { - /** - * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. - * - * The dispatch origin for this call must be Signed. - * The origin must be the Provider that has at least one type of payment stream with the User. - * - * Parameters: - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that a payment stream between the signer (Provider) and the User exists - * 3. If there is a fixed-rate payment stream: - * 1. Get the rate of the payment stream - * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream - * 3. Calculate the amount to charge doing `rate * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the last charged tick number of the payment stream - * 4. If there is a dynamic-rate payment stream: - * 1. Get the amount provided by the Provider - * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick - * 3. Calculate the amount to charge doing `amount_provided * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the price index when the stream was last charged of the payment stream - * - * Emits a `PaymentStreamCharged` event when successful. - * - * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic - * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. - **/ - chargePaymentStreams: AugmentedSubmittable< - (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, - * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Check that the cooldown period has passed since the user was flagged as without funds. - * 4. Check if there's any outstanding debt and charge it. This is done by: - * a. Releasing any remaining funds held as a deposit for each payment stream. - * b. Getting all payment streams of the user and charging them, paying the Providers for the services. - * c. Returning the User any remaining funds. - * d. Deleting all payment streams of the user. - * 5. Unflag the user as without funds. - * - * Emits a 'UserSolvent' event when successful. - * - * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `amount_provided`: The initial amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `DynamicRatePaymentStreamCreated` event when successful. - **/ - createDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - amountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `rate`: The initial rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `FixedRatePaymentStreamCreated` event when successful. - **/ - createFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - rate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `DynamicRatePaymentStreamDeleted` event when successful. - **/ - deleteDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `FixedRatePaymentStreamDeleted` event when successful. - **/ - deleteFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover - * its deposits. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Release the user's funds that were held as a deposit for each payment stream. - * 4. Get all payment streams of the user and charge them, paying the Providers for the services. - * 5. Delete all payment streams of the user. - * - * Emits a 'UserPaidDebts' event when successful. - * - * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_amount_provided`: The new amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `DynamicRatePaymentStreamUpdated` event when successful. - **/ - updateDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newAmountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_rate`: The new rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `FixedRatePaymentStreamUpdated` event when successful. - **/ - updateFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newRate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - polkadotXcm: { - /** - * Claims assets trapped on this pallet because of leftover assets during XCM execution. - * - * - `origin`: Anyone can call this extrinsic. - * - `assets`: The exact assets that were trapped. Use the version to specify what version - * was the latest when they were trapped. - * - `beneficiary`: The location/account where the claimed assets will be deposited. - **/ - claimAssets: AugmentedSubmittable< - ( - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedAssets, XcmVersionedLocation] - >; - /** - * Execute an XCM message from a local, signed, origin. - * - * An event is deposited indicating whether `msg` could be executed completely or only - * partially. - * - * No more than `max_weight` will be used in its attempted execution. If this is less than - * the maximum amount of weight that the message could take to be executed, then no - * execution attempt will be made. - **/ - execute: AugmentedSubmittable< - ( - message: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - maxWeight: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedXcm, SpWeightsWeightV2Weight] - >; - /** - * Set a safe XCM version (the version that XCM should be encoded with if the most recent - * version a destination can accept is unknown). - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. - **/ - forceDefaultXcmVersion: AugmentedSubmittable< - ( - maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Ask a location to notify us regarding their XCM version and any changes to it. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we should subscribe for XCM version notifications. - **/ - forceSubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Set or unset the global suspension state of the XCM executor. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `suspended`: `true` to suspend, `false` to resume. - **/ - forceSuspension: AugmentedSubmittable< - (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * Require that a particular destination should no longer notify us regarding any XCM - * version changes. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we are currently subscribed for XCM version - * notifications which we no longer desire. - **/ - forceUnsubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Extoll that a particular destination can be communicated with through a particular - * version of XCM. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The destination that is being described. - * - `xcm_version`: The latest version of XCM that `location` supports. - **/ - forceXcmVersion: AugmentedSubmittable< - ( - location: - | StagingXcmV4Location - | { - parents?: any; - interior?: any; - } - | string - | Uint8Array, - version: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [StagingXcmV4Location, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedReserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedTeleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - reserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - send: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - message: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedXcm] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * **This function is deprecated: Use `limited_teleport_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - teleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve, or through teleports. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for - * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the - * operation will fail and the sent assets may be at risk. - * - * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable - * to `dest`, no limitations imposed on `fees`. - * - for local reserve: transfer assets to sovereign account of destination chain and - * forward a notification XCM to `dest` to mint and deposit reserve-based assets to - * `beneficiary`. - * - for destination reserve: burn local assets and forward a notification to `dest` chain - * to withdraw the reserve assets from this chain's sovereign account and deposit them - * to `beneficiary`. - * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves - * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint - * and deposit reserve-based assets to `beneficiary`. - * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport - * assets and deposit them to `beneficiary`. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `X2(Parent, - * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send - * from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer assets from the local chain to the destination chain using explicit transfer - * types for assets and fees. - * - * `assets` must have same reserve location or may be teleportable to `dest`. Caller must - * provide the `assets_transfer_type` to be used for `assets`: - * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `TransferType::DestinationReserve`: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` - * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another - * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically - * the remote `reserve` is Asset Hub. - * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to - * mint/teleport assets and deposit them to `beneficiary`. - * - * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to - * buy execution using transferred `assets` identified by `remote_fees_id`. - * Make sure enough of the specified `remote_fees_id` asset is included in the given list - * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * `remote_fees_id` may use different transfer type than rest of `assets` and can be - * specified through `fees_transfer_type`. - * - * The caller needs to specify what should happen to the transferred assets once they reach - * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which - * contains the instructions to execute on `dest` as a final step. - * This is usually as simple as: - * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, - * but could be something more exotic like sending the `assets` even further. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from - * parachain across a bridge to another ecosystem destination. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. - * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. - * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. - * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the - * transfer, which also determines what happens to the assets on the destination chain. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssetsUsingTypeAndThen: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assetsTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { - Teleport: any; - } - | { - LocalReserve: any; - } - | { - DestinationReserve: any; - } - | { - RemoteReserve: any; - } - | string - | Uint8Array, - remoteFeesId: - | XcmVersionedAssetId - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feesTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { - Teleport: any; - } - | { - LocalReserve: any; - } - | { - DestinationReserve: any; - } - | { - RemoteReserve: any; - } - | string - | Uint8Array, - customXcmOnDest: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [ - XcmVersionedLocation, - XcmVersionedAssets, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedAssetId, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedXcm, - XcmV3WeightLimit - ] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - proofsDealer: { - /** - * Introduce a new challenge. - * - * This function allows anyone to add a new challenge to the `ChallengesQueue`. - * The challenge will be dispatched in the coming blocks. - * Users are charged a small fee for submitting a challenge, which - * goes to the Treasury. - **/ - challenge: AugmentedSubmittable< - (key: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Initialise a Provider's challenge cycle. - * - * Only callable by sudo. - * - * Sets the last tick the Provider submitted a proof for to the current tick, and sets the - * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. - **/ - forceInitialiseChallengeCycle: AugmentedSubmittable< - (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Set the [`ChallengesTickerPaused`] to `true` or `false`. - * - * Only callable by sudo. - **/ - setPaused: AugmentedSubmittable< - (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * For a Provider to submit a proof. - * - * Checks that `provider` is a registered Provider. If none - * is provided, the proof submitter is considered to be the Provider. - * Relies on a Providers pallet to get the root for the Provider. - * Validates that the proof corresponds to a challenge that was made in the past, - * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the - * Provider should have submitted a proof is calculated based on the last tick they - * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for - * that Provider, which is a function of their stake. - * This extrinsic also checks that there hasn't been a checkpoint challenge round - * in between the last time the Provider submitted a proof for and the tick - * for which the proof is being submitted. If there has been, the Provider is - * subject to slashing. - * - * If valid: - * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number - * of ticks corresponding to the stake of the Provider. - * - Registers this tick as the last tick in which the Provider submitted a proof. - * - * Execution of this extrinsic should be refunded if the proof is valid. - **/ - submitProof: AugmentedSubmittable< - ( - proof: - | PalletProofsDealerProof - | { - forestProof?: any; - keyProofs?: any; - } - | string - | Uint8Array, - provider: Option | null | Uint8Array | H256 | string - ) => SubmittableExtrinsic, - [PalletProofsDealerProof, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - providers: { - /** - * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to add a value proposition. - * - * Parameters: - * - `new_value_prop`: The value proposition that the MSP wants to add to its service. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has not reached the maximum amount of value propositions - * 4. Check that the value proposition is valid (size and any other relevant checks) - * 5. Update the MSPs storage to add the value proposition (with its identifier) - * - * Emits `ValuePropAdded` event when successful. - **/ - addValueProp: AugmentedSubmittable< - ( - newValueProp: - | PalletStorageProvidersValueProposition - | { - identifier?: any; - dataLimit?: any; - protocols?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [PalletStorageProvidersValueProposition] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Backup Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a BSP - * 3. Check that the BSP has no storage assigned to it - * 4. Update the BSPs storage, removing the signer as an BSP - * 5. Update the total capacity of all BSPs, removing the capacity of the signer - * 6. Return the deposit to the signer - * 7. Decrement the storage that holds total amount of BSPs currently in the system - * - * Emits `BspSignOffSuccess` event when successful. - **/ - bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer has requested to sign up as a SP - * 3. Delete the request from the Sign Up Requests storage - * 4. Return the deposit to the signer - * - * Emits `SignUpRequestCanceled` event when successful. - **/ - cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to change their amount of stored data - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to change its capacity. - * - * Parameters: - * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a SP - * 3. Check that enough time has passed since the last time the SP changed its capacity - * 4. Check that the new capacity is greater than the minimum required by the runtime - * 5. Check that the new capacity is greater than the data used by this SP - * 6. Calculate the new deposit needed for this new capacity - * 7. Check to see if the new deposit needed is greater or less than the current deposit - * a. If the new deposit is greater than the current deposit: - * i. Check that the signer has enough funds to pay this extra deposit - * ii. Hold the extra deposit from the signer - * b. If the new deposit is less than the current deposit, return the held difference to the signer - * 7. Update the SPs storage to change the total data - * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) - * - * Emits `CapacityChanged` event when successful. - **/ - changeCapacity: AugmentedSubmittable< - (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider, except when providing a - * `provider_account` parameter, in which case the origin can be any account. - * - * Parameters: - * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer - * will be considered the account that requested to sign up. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed - * 2. Check that the account received has requested to register as a SP - * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request - * 4. Check that the request has not expired - * 5. Register the signer as a MSP or BSP with the data provided in the request - * - * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. - * - * Notes: - * - This extrinsic could be called by the user itself or by a third party - * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP - * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating - **/ - confirmSignUp: AugmentedSubmittable< - ( - providerAccount: Option | null | Uint8Array | AccountId32 | string - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Backup Storage Provider. - * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the steps of: - * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. - **/ - forceBspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - bspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array, - weight: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, AccountId32, Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Main Storage Provider. - * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the steps of: - * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. - **/ - forceMspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - mspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { - identifier?: any; - dataLimit?: any; - protocols?: any; - } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Main Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) - * 4. Update the MSPs storage, removing the signer as an MSP - * 5. Return the deposit to the signer - * 6. Decrement the storage that holds total amount of MSPs currently in the system - * - * Emits `MspSignOffSuccess` event when successful. - **/ - mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP - * - * Emits `BspRequestSignUpSuccess` event when successful. - **/ - requestBspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime. - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP - * - * Emits `MspRequestSignUpSuccess` event when successful. - **/ - requestMspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { - identifier?: any; - dataLimit?: any; - protocols?: any; - } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic to slash a _slashable_ Storage Provider. - * - * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. - * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. - **/ - slash: AugmentedSubmittable< - (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - randomness: { - /** - * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the - * relay chain into a variable that can then be used as a seed for commitments that happened during - * the previous relay chain epoch - **/ - setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - session: { - /** - * Removes any session key(s) of the function caller. - * - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be Signed and the account must be either be - * convertible to a validator ID using the chain's typical addressing system (this usually - * means being a controller account) or directly convertible into a validator ID (which - * usually means being a stash account). - * - * ## Complexity - * - `O(1)` in number of key types. Actual cost depends on the number of length of - * `T::Keys::key_ids()` which is fixed. - **/ - purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Sets the session key(s) of the function caller to `keys`. - * Allows an account to set its session key prior to becoming a validator. - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be signed. - * - * ## Complexity - * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is - * fixed. - **/ - setKeys: AugmentedSubmittable< - ( - keys: - | StorageHubRuntimeSessionKeys - | { - aura?: any; - } - | string - | Uint8Array, - proof: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeSessionKeys, Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - sudo: { - /** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - **/ - removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - **/ - setKey: AugmentedSubmittable< - ( - updated: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - **/ - sudo: AugmentedSubmittable< - (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, - [Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoAs: AugmentedSubmittable< - ( - who: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - call: Call | IMethod | string | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoUncheckedWeight: AugmentedSubmittable< - ( - call: Call | IMethod | string | Uint8Array, - weight: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [Call, SpWeightsWeightV2Weight] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - system: { - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - **/ - applyAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - **/ - authorizeUpgradeWithoutChecks: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - **/ - killPrefix: AugmentedSubmittable< - ( - prefix: Bytes | string | Uint8Array, - subkeys: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [Bytes, u32] - >; - /** - * Kill some items from storage. - **/ - killStorage: AugmentedSubmittable< - (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, - [Vec] - >; - /** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - **/ - remark: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Make some on-chain remark and emit event. - **/ - remarkWithEvent: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code. - **/ - setCode: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - **/ - setCodeWithoutChecks: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the number of pages in the WebAssembly environment's heap. - **/ - setHeapPages: AugmentedSubmittable< - (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Set some items of storage. - **/ - setStorage: AugmentedSubmittable< - ( - items: - | Vec> - | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] - ) => SubmittableExtrinsic, - [Vec>] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - timestamp: { - /** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - **/ - set: AugmentedSubmittable< - (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [Compact] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - xcmpQueue: { - /** - * Resumes all XCM executions for the XCMP queue. - * - * Note that this function doesn't change the status of the in/out bound channels. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Overwrites the number of pages which must be in the queue after which we drop any - * further messages from the channel. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.drop_threshold` - **/ - updateDropThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which the queue must be reduced to before it signals - * that message sending may recommence after it has been suspended. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.resume_threshold` - **/ - updateResumeThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which must be in the queue for the other side to be - * told to suspend their sending. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.suspend_value` - **/ - updateSuspendThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - } -} +import "@polkadot/api-base/types/submittable"; +import type { + ApiTypes, + AugmentedSubmittable, + SubmittableExtrinsic, + SubmittableExtrinsicFunction +} from "@polkadot/api-base/types"; +import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + PalletBalancesAdjustmentDirection, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemMspStorageRequestResponse, + PalletNftsAttributeNamespace, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsDestroyWitness, + PalletNftsItemConfig, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintWitness, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersValueProposition, + ShpFileKeyVerifierFileKeyProof, + SpRuntimeMultiSignature, + SpTrieStorageProofCompactProof, + SpWeightsWeightV2Weight, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV4Location, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeSessionKeys, + XcmV3WeightLimit, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedXcm +} from "@polkadot/types/lookup"; +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = + SubmittableExtrinsicFunction; +declare module "@polkadot/api-base/types/submittable" { + interface AugmentedSubmittables { + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable< + ( + value: Compact | AnyNumber | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [Compact, bool] + >; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable< + ( + direction: + | PalletBalancesAdjustmentDirection + | "Increase" + | "Decrease" + | number + | Uint8Array, + delta: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [PalletBalancesAdjustmentDirection, Compact] + >; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable< + ( + who: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + newFree: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable< + ( + source: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, MultiAddress, Compact] + >; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable< + ( + who: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + amount: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, u128] + >; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, bool] + >; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable< + ( + who: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bucketNfts: { + /** + * Share access to files within a bucket with another account. + * + * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. + **/ + shareAccess: AugmentedSubmittable< + ( + recipient: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [MultiAddress, H256, u32, Option] + >; + /** + * Update read access for an item. + **/ + updateReadAccess: AugmentedSubmittable< + ( + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [H256, u32, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + collatorSelection: { + /** + * Add a new account `who` to the list of `Invulnerables` collators. `who` must have + * registered session keys. If `who` is a candidate, they will be removed. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + addInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Deregister `origin` as a collator candidate. Note that the collator can only leave on + * session change. The `CandidacyBond` will be unreserved immediately. + * + * This call will fail if the total number of candidates would drop below + * `MinEligibleCollators`. + **/ + leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register this account as a collator candidate. The account must (a) already have + * registered session keys and (b) be able to reserve the `CandidacyBond`. + * + * This call is not available to `Invulnerable` collators. + **/ + registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must + * be sorted. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + removeInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Set the candidacy bond amount. + * + * If the candidacy bond is increased by this call, all current candidates which have a + * deposit lower than the new bond will be kicked from the list and get their deposits + * back. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setCandidacyBond: AugmentedSubmittable< + (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Set the ideal number of non-invulnerable collators. If lowering this number, then the + * number of running collators could be higher than this figure. Aside from that edge case, + * there should be no other way to have more candidates than the desired number. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setDesiredCandidates: AugmentedSubmittable< + (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Set the list of invulnerable (fixed) collators. These collators must do some + * preparation, namely to have registered session keys. + * + * The call will remove any accounts that have not registered keys from the set. That is, + * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as + * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. + * + * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It + * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A + * `batch_all` can also be used to enforce atomicity. If any candidates are included in + * `new`, they should be removed with `remove_invulnerable_candidate` after execution. + * + * Must be called by the `UpdateOrigin`. + **/ + setInvulnerables: AugmentedSubmittable< + ( + updated: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * The caller `origin` replaces a candidate `target` in the collator candidate list by + * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than + * the existing bond of the target it is trying to replace. + * + * This call will fail if the caller is already a collator candidate or invulnerable, the + * caller does not have registered session keys, the target is not a collator candidate, + * and/or the `deposit` amount cannot be reserved. + **/ + takeCandidateSlot: AugmentedSubmittable< + ( + deposit: u128 | AnyNumber | Uint8Array, + target: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u128, AccountId32] + >; + /** + * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. + * + * Setting a `new_deposit` that is lower than the current deposit while `origin` is + * occupying a top-`DesiredCandidates` slot is not allowed. + * + * This call will fail if `origin` is not a collator candidate, the updated bond is lower + * than the minimum candidacy bond, and/or the amount cannot be reserved. + **/ + updateBond: AugmentedSubmittable< + (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + cumulusXcm: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fileSystem: { + /** + * Add yourself as a data server for providing the files of the bucket requested to be moved. + **/ + bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Executed by a BSP to confirm to stop storing a file. + * + * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. + * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the + * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. + **/ + bspConfirmStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to confirm they are storing data of a storage request. + **/ + bspConfirmStoring: AugmentedSubmittable< + ( + nonInclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array, + fileKeysAndProofs: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | ShpFileKeyVerifierFileKeyProof + | { + fileMetadata?: any; + proof?: any; + } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [SpTrieStorageProofCompactProof, Vec>] + >; + /** + * Executed by a BSP to request to stop storing a file. + * + * In the event when a storage request no longer exists for the data the BSP no longer stores, + * it is required that the BSP still has access to the metadata of the initial storage request. + * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever + * the BSP gets that data is up to it. One example could be from the assigned MSP. + * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage + * provider's Merkle Forest. + **/ + bspRequestStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + canServe: bool | boolean | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to volunteer for storing a file. + * + * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, + * so a BSP is strongly advised to check beforehand. Another reason for failure is + * if the maximum number of BSPs has been reached. A successful assignment as BSP means + * that some of the collateral tokens of that MSP are frozen. + **/ + bspVolunteer: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Create and associate a collection with a bucket. + **/ + createAndAssociateCollectionWithBucket: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + createBucket: AugmentedSubmittable< + ( + mspId: H256 | string | Uint8Array, + name: Bytes | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, Bytes, bool] + >; + deleteFile: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + fingerprint: H256 | string | Uint8Array, + maybeInclusionForestProof: + | Option + | null + | Uint8Array + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + ) => SubmittableExtrinsic, + [H256, H256, Bytes, u64, H256, Option] + >; + /** + * Issue a new storage request for a file + **/ + issueStorageRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + mspId: H256 | string | Uint8Array, + peerIds: Vec | (Bytes | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [H256, Bytes, H256, u64, H256, Vec] + >; + mspRespondMoveBucketRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + response: + | PalletFileSystemBucketMoveRequestResponse + | "Accepted" + | "Rejected" + | number + | Uint8Array + ) => SubmittableExtrinsic, + [H256, PalletFileSystemBucketMoveRequestResponse] + >; + /** + * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. + * + * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be + * accepted, rejected or have failed to be processed in the results of the event emitted. + * + * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys + * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that + * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP + * wasn't storing it before. + **/ + mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< + ( + fileKeyResponsesInput: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | PalletFileSystemMspStorageRequestResponse + | { + accept?: any; + reject?: any; + } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [Vec>] + >; + pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< + ( + user: AccountId32 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + forestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, H256, SpTrieStorageProofCompactProof] + >; + requestMoveBucket: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + newMspId: H256 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256] + >; + /** + * Revoke storage request + **/ + revokeStorageRequest: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + setGlobalParameters: AugmentedSubmittable< + ( + replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, + tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option, Option] + >; + /** + * Executed by a SP to stop storing a file from an insolvent user. + * + * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since + * it won't be getting paid for it anymore. + * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to + * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. + **/ + stopStoringForInsolventUser: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] + >; + updateBucketPrivacy: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { + Here: any; + } + | { + Parent: any; + } + | { + Sibling: any; + } + | string + | Uint8Array, + page: u32 | AnyNumber | Uint8Array, + index: u32 | AnyNumber | Uint8Array, + weightLimit: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] + >; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { + Here: any; + } + | { + Parent: any; + } + | { + Sibling: any; + } + | string + | Uint8Array, + pageIndex: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + bidPrice: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u128] + >; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + witness: + | PalletNftsCancelAttributesApprovalWitness + | { + accountAttributes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] + >; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable< + ( + sendCollection: u32 | AnyNumber | Uint8Array, + sendItem: u32 | AnyNumber | Uint8Array, + receiveCollection: u32 | AnyNumber | Uint8Array, + receiveItem: u32 | AnyNumber | Uint8Array, + witnessPrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { + amount?: any; + direction?: any; + } + | string + ) => SubmittableExtrinsic, + [u32, u32, u32, u32, Option] + >; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + key: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes] + >; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable< + (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable< + ( + admin: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { + settings?: any; + maxSupply?: any; + mintSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array, + desiredCollection: u32 | AnyNumber | Uint8Array, + maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, + maybePrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { + amount?: any; + direction?: any; + } + | string, + duration: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u32, Option, Option, u32] + >; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + witness: + | PalletNftsDestroyWitness + | { + itemMetadatas?: any; + itemConfigs?: any; + attributes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsDestroyWitness] + >; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + config: + | PalletNftsCollectionConfig + | { + settings?: any; + maxSupply?: any; + mintSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsCollectionConfig] + >; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + owner: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable< + ( + owner: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { + settings?: any; + maxSupply?: any; + mintSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + itemConfig: + | PalletNftsItemConfig + | { + settings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsItemConfig] + >; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable< + ( + setAs: Option | null | Uint8Array | AccountId32 | string, + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + lockSettings: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u64] + >; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + lockMetadata: bool | boolean | Uint8Array, + lockAttributes: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, bool, bool] + >; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + witnessData: + | Option + | null + | Uint8Array + | PalletNftsMintWitness + | { + ownedItem?: any; + mintPrice?: any; + } + | string + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable< + ( + mintData: + | PalletNftsPreSignedMint + | { + collection?: any; + item?: any; + attributes?: any; + metadata?: any; + onlyAccount?: any; + deadline?: any; + mintPrice?: any; + } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { + Ed25519: any; + } + | { + Sr25519: any; + } + | { + Ecdsa: any; + } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable< + ( + tips: + | Vec + | ( + | PalletNftsItemTip + | { + collection?: any; + item?: any; + receiver?: any; + amount?: any; + } + | string + | Uint8Array + )[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + items: Vec | (u32 | AnyNumber | Uint8Array)[] + ) => SubmittableExtrinsic, + [u32, Vec] + >; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable< + ( + maybeCollection: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable< + ( + data: + | PalletNftsPreSignedAttributes + | { + collection?: any; + item?: any; + attributes?: any; + namespace?: any; + deadline?: any; + } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { + Ed25519: any; + } + | { + Sr25519: any; + } + | { + Ecdsa: any; + } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maxSupply: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Bytes] + >; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, Bytes] + >; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + price: Option | null | Uint8Array | u128 | AnyNumber, + whitelistedBuyer: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + ) => SubmittableExtrinsic, + [u32, u32, Option, Option] + >; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + issuer: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string, + admin: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string, + freezer: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + ) => SubmittableExtrinsic, + [u32, Option, Option, Option] + >; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + newOwner: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + mintSettings: + | PalletNftsMintSettings + | { + mintType?: any; + price?: any; + startBlock?: any; + endBlock?: any; + defaultItemSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsMintSettings] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainInfo: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainSystem: { + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec + * version and name should be verified on upgrade. Since the authorization only has a hash, + * it cannot actually perform the verification. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + ( + codeHash: H256 | string | Uint8Array, + checkVersion: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Note that this function will not apply the new `code`, but only attempt to schedule the + * upgrade with the Relay Chain. + * + * All origins are allowed. + **/ + enactAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the current validation data. + * + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. + * + * The dispatch origin for this call must be `Inherent` + * + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ + setValidationData: AugmentedSubmittable< + ( + data: + | CumulusPrimitivesParachainInherentParachainInherentData + | { + validationData?: any; + relayChainState?: any; + downwardMessages?: any; + horizontalMessages?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesParachainInherentParachainInherentData] + >; + sudoSendUpwardMessage: AugmentedSubmittable< + (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable< + ( + keyValue: + | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters + | { + RuntimeConfig: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paymentStreams: { + /** + * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. + * + * The dispatch origin for this call must be Signed. + * The origin must be the Provider that has at least one type of payment stream with the User. + * + * Parameters: + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that a payment stream between the signer (Provider) and the User exists + * 3. If there is a fixed-rate payment stream: + * 1. Get the rate of the payment stream + * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream + * 3. Calculate the amount to charge doing `rate * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the last charged tick number of the payment stream + * 4. If there is a dynamic-rate payment stream: + * 1. Get the amount provided by the Provider + * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick + * 3. Calculate the amount to charge doing `amount_provided * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the price index when the stream was last charged of the payment stream + * + * Emits a `PaymentStreamCharged` event when successful. + * + * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic + * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. + **/ + chargePaymentStreams: AugmentedSubmittable< + (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, + * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Check that the cooldown period has passed since the user was flagged as without funds. + * 4. Check if there's any outstanding debt and charge it. This is done by: + * a. Releasing any remaining funds held as a deposit for each payment stream. + * b. Getting all payment streams of the user and charging them, paying the Providers for the services. + * c. Returning the User any remaining funds. + * d. Deleting all payment streams of the user. + * 5. Unflag the user as without funds. + * + * Emits a 'UserSolvent' event when successful. + * + * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `amount_provided`: The initial amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `DynamicRatePaymentStreamCreated` event when successful. + **/ + createDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + amountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `rate`: The initial rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `FixedRatePaymentStreamCreated` event when successful. + **/ + createFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + rate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `DynamicRatePaymentStreamDeleted` event when successful. + **/ + deleteDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `FixedRatePaymentStreamDeleted` event when successful. + **/ + deleteFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover + * its deposits. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Release the user's funds that were held as a deposit for each payment stream. + * 4. Get all payment streams of the user and charge them, paying the Providers for the services. + * 5. Delete all payment streams of the user. + * + * Emits a 'UserPaidDebts' event when successful. + * + * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_amount_provided`: The new amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `DynamicRatePaymentStreamUpdated` event when successful. + **/ + updateDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newAmountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_rate`: The new rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `FixedRatePaymentStreamUpdated` event when successful. + **/ + updateFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newRate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + polkadotXcm: { + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable< + ( + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedAssets, XcmVersionedLocation] + >; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable< + ( + message: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + maxWeight: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedXcm, SpWeightsWeightV2Weight] + >; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable< + ( + maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable< + (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable< + ( + location: + | StagingXcmV4Location + | { + parents?: any; + interior?: any; + } + | string + | Uint8Array, + version: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [StagingXcmV4Location, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + send: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + message: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedXcm] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assetsTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { + Teleport: any; + } + | { + LocalReserve: any; + } + | { + DestinationReserve: any; + } + | { + RemoteReserve: any; + } + | string + | Uint8Array, + remoteFeesId: + | XcmVersionedAssetId + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feesTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { + Teleport: any; + } + | { + LocalReserve: any; + } + | { + DestinationReserve: any; + } + | { + RemoteReserve: any; + } + | string + | Uint8Array, + customXcmOnDest: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [ + XcmVersionedLocation, + XcmVersionedAssets, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedAssetId, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedXcm, + XcmV3WeightLimit + ] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proofsDealer: { + /** + * Introduce a new challenge. + * + * This function allows anyone to add a new challenge to the `ChallengesQueue`. + * The challenge will be dispatched in the coming blocks. + * Users are charged a small fee for submitting a challenge, which + * goes to the Treasury. + **/ + challenge: AugmentedSubmittable< + (key: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Initialise a Provider's challenge cycle. + * + * Only callable by sudo. + * + * Sets the last tick the Provider submitted a proof for to the current tick, and sets the + * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. + **/ + forceInitialiseChallengeCycle: AugmentedSubmittable< + (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Set the [`ChallengesTickerPaused`] to `true` or `false`. + * + * Only callable by sudo. + **/ + setPaused: AugmentedSubmittable< + (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * For a Provider to submit a proof. + * + * Checks that `provider` is a registered Provider. If none + * is provided, the proof submitter is considered to be the Provider. + * Relies on a Providers pallet to get the root for the Provider. + * Validates that the proof corresponds to a challenge that was made in the past, + * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the + * Provider should have submitted a proof is calculated based on the last tick they + * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for + * that Provider, which is a function of their stake. + * This extrinsic also checks that there hasn't been a checkpoint challenge round + * in between the last time the Provider submitted a proof for and the tick + * for which the proof is being submitted. If there has been, the Provider is + * subject to slashing. + * + * If valid: + * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number + * of ticks corresponding to the stake of the Provider. + * - Registers this tick as the last tick in which the Provider submitted a proof. + * + * Execution of this extrinsic should be refunded if the proof is valid. + **/ + submitProof: AugmentedSubmittable< + ( + proof: + | PalletProofsDealerProof + | { + forestProof?: any; + keyProofs?: any; + } + | string + | Uint8Array, + provider: Option | null | Uint8Array | H256 | string + ) => SubmittableExtrinsic, + [PalletProofsDealerProof, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + providers: { + /** + * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to add a value proposition. + * + * Parameters: + * - `new_value_prop`: The value proposition that the MSP wants to add to its service. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has not reached the maximum amount of value propositions + * 4. Check that the value proposition is valid (size and any other relevant checks) + * 5. Update the MSPs storage to add the value proposition (with its identifier) + * + * Emits `ValuePropAdded` event when successful. + **/ + addValueProp: AugmentedSubmittable< + ( + newValueProp: + | PalletStorageProvidersValueProposition + | { + identifier?: any; + dataLimit?: any; + protocols?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [PalletStorageProvidersValueProposition] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Backup Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a BSP + * 3. Check that the BSP has no storage assigned to it + * 4. Update the BSPs storage, removing the signer as an BSP + * 5. Update the total capacity of all BSPs, removing the capacity of the signer + * 6. Return the deposit to the signer + * 7. Decrement the storage that holds total amount of BSPs currently in the system + * + * Emits `BspSignOffSuccess` event when successful. + **/ + bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer has requested to sign up as a SP + * 3. Delete the request from the Sign Up Requests storage + * 4. Return the deposit to the signer + * + * Emits `SignUpRequestCanceled` event when successful. + **/ + cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to change their amount of stored data + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to change its capacity. + * + * Parameters: + * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a SP + * 3. Check that enough time has passed since the last time the SP changed its capacity + * 4. Check that the new capacity is greater than the minimum required by the runtime + * 5. Check that the new capacity is greater than the data used by this SP + * 6. Calculate the new deposit needed for this new capacity + * 7. Check to see if the new deposit needed is greater or less than the current deposit + * a. If the new deposit is greater than the current deposit: + * i. Check that the signer has enough funds to pay this extra deposit + * ii. Hold the extra deposit from the signer + * b. If the new deposit is less than the current deposit, return the held difference to the signer + * 7. Update the SPs storage to change the total data + * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) + * + * Emits `CapacityChanged` event when successful. + **/ + changeCapacity: AugmentedSubmittable< + (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider, except when providing a + * `provider_account` parameter, in which case the origin can be any account. + * + * Parameters: + * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer + * will be considered the account that requested to sign up. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed + * 2. Check that the account received has requested to register as a SP + * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request + * 4. Check that the request has not expired + * 5. Register the signer as a MSP or BSP with the data provided in the request + * + * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. + * + * Notes: + * - This extrinsic could be called by the user itself or by a third party + * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP + * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating + **/ + confirmSignUp: AugmentedSubmittable< + ( + providerAccount: Option | null | Uint8Array | AccountId32 | string + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Backup Storage Provider. + * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the steps of: + * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. + **/ + forceBspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + bspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array, + weight: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, AccountId32, Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Main Storage Provider. + * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the steps of: + * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. + **/ + forceMspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + mspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { + identifier?: any; + dataLimit?: any; + protocols?: any; + } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Main Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) + * 4. Update the MSPs storage, removing the signer as an MSP + * 5. Return the deposit to the signer + * 6. Decrement the storage that holds total amount of MSPs currently in the system + * + * Emits `MspSignOffSuccess` event when successful. + **/ + mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP + * + * Emits `BspRequestSignUpSuccess` event when successful. + **/ + requestBspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime. + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP + * + * Emits `MspRequestSignUpSuccess` event when successful. + **/ + requestMspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { + identifier?: any; + dataLimit?: any; + protocols?: any; + } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic to slash a _slashable_ Storage Provider. + * + * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. + * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. + **/ + slash: AugmentedSubmittable< + (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + randomness: { + /** + * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the + * relay chain into a variable that can then be used as a seed for commitments that happened during + * the previous relay chain epoch + **/ + setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable< + ( + keys: + | StorageHubRuntimeSessionKeys + | { + aura?: any; + } + | string + | Uint8Array, + proof: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeSessionKeys, Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + sudo: { + /** + * Permanently removes the sudo key. + * + * **This cannot be un-done.** + **/ + removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + **/ + setKey: AugmentedSubmittable< + ( + updated: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + **/ + sudo: AugmentedSubmittable< + (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, + [Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoAs: AugmentedSubmittable< + ( + who: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoUncheckedWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [Call, SpWeightsWeightV2Weight] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable< + ( + prefix: Bytes | string | Uint8Array, + subkeys: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [Bytes, u32] + >; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable< + (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, + [Vec] + >; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable< + (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable< + ( + items: + | Vec> + | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] + ) => SubmittableExtrinsic, + [Vec>] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable< + (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [Compact] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmpQueue: { + /** + * Resumes all XCM executions for the XCMP queue. + * + * Note that this function doesn't change the status of the in/out bound channels. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.drop_threshold` + **/ + updateDropThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.resume_threshold` + **/ + updateResumeThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.suspend_value` + **/ + updateSuspendThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } +} diff --git a/api-augment/dist/types/interfaces/registry.d.ts b/api-augment/dist/types/interfaces/registry.d.ts index 16295be98..6ab351d23 100644 --- a/api-augment/dist/types/interfaces/registry.d.ts +++ b/api-augment/dist/types/interfaces/registry.d.ts @@ -1,539 +1,539 @@ -import "@polkadot/types/types/registry"; -import type { - CumulusPalletParachainSystemCall, - CumulusPalletParachainSystemError, - CumulusPalletParachainSystemEvent, - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, - CumulusPalletParachainSystemUnincludedSegmentAncestor, - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, - CumulusPalletXcmCall, - CumulusPalletXcmEvent, - CumulusPalletXcmpQueueCall, - CumulusPalletXcmpQueueError, - CumulusPalletXcmpQueueEvent, - CumulusPalletXcmpQueueOutboundChannelDetails, - CumulusPalletXcmpQueueOutboundState, - CumulusPalletXcmpQueueQueueConfigData, - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, - FrameMetadataHashExtensionCheckMetadataHash, - FrameMetadataHashExtensionMode, - FrameSupportDispatchDispatchClass, - FrameSupportDispatchDispatchInfo, - FrameSupportDispatchPays, - FrameSupportDispatchPerDispatchClassU32, - FrameSupportDispatchPerDispatchClassWeight, - FrameSupportDispatchPerDispatchClassWeightsPerClass, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - FrameSystemAccountInfo, - FrameSystemCall, - FrameSystemCodeUpgradeAuthorization, - FrameSystemError, - FrameSystemEvent, - FrameSystemEventRecord, - FrameSystemExtensionsCheckGenesis, - FrameSystemExtensionsCheckNonZeroSender, - FrameSystemExtensionsCheckNonce, - FrameSystemExtensionsCheckSpecVersion, - FrameSystemExtensionsCheckTxVersion, - FrameSystemExtensionsCheckWeight, - FrameSystemLastRuntimeUpgradeInfo, - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - FrameSystemLimitsWeightsPerClass, - FrameSystemPhase, - PalletBalancesAccountData, - PalletBalancesAdjustmentDirection, - PalletBalancesBalanceLock, - PalletBalancesCall, - PalletBalancesError, - PalletBalancesEvent, - PalletBalancesIdAmount, - PalletBalancesReasons, - PalletBalancesReserveData, - PalletBucketNftsCall, - PalletBucketNftsError, - PalletBucketNftsEvent, - PalletCollatorSelectionCall, - PalletCollatorSelectionCandidateInfo, - PalletCollatorSelectionError, - PalletCollatorSelectionEvent, - PalletFileSystemAcceptedStorageRequestParameters, - PalletFileSystemBatchResponses, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemCall, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemError, - PalletFileSystemEvent, - PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemMspAcceptedBatchStorageRequests, - PalletFileSystemMspFailedBatchStorageRequests, - PalletFileSystemMspRejectedBatchStorageRequests, - PalletFileSystemMspRespondStorageRequestsResult, - PalletFileSystemMspStorageRequestResponse, - PalletFileSystemRejectedStorageRequestReason, - PalletFileSystemStorageRequestBspsMetadata, - PalletFileSystemStorageRequestMetadata, - PalletMessageQueueBookState, - PalletMessageQueueCall, - PalletMessageQueueError, - PalletMessageQueueEvent, - PalletMessageQueueNeighbours, - PalletMessageQueuePage, - PalletNftsAttributeDeposit, - PalletNftsAttributeNamespace, - PalletNftsCall, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsCollectionDetails, - PalletNftsCollectionMetadata, - PalletNftsCollectionRole, - PalletNftsCollectionSetting, - PalletNftsDestroyWitness, - PalletNftsError, - PalletNftsEvent, - PalletNftsItemConfig, - PalletNftsItemDeposit, - PalletNftsItemDetails, - PalletNftsItemMetadata, - PalletNftsItemMetadataDeposit, - PalletNftsItemSetting, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintType, - PalletNftsMintWitness, - PalletNftsPalletAttributes, - PalletNftsPalletFeature, - PalletNftsPendingSwap, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceDirection, - PalletNftsPriceWithDirection, - PalletParametersCall, - PalletParametersEvent, - PalletPaymentStreamsCall, - PalletPaymentStreamsDynamicRatePaymentStream, - PalletPaymentStreamsError, - PalletPaymentStreamsEvent, - PalletPaymentStreamsFixedRatePaymentStream, - PalletPaymentStreamsHoldReason, - PalletPaymentStreamsProviderLastChargeableInfo, - PalletProofsDealerCall, - PalletProofsDealerError, - PalletProofsDealerEvent, - PalletProofsDealerKeyProof, - PalletProofsDealerProof, - PalletRandomnessCall, - PalletRandomnessEvent, - PalletSessionCall, - PalletSessionError, - PalletSessionEvent, - PalletStorageProvidersBackupStorageProvider, - PalletStorageProvidersBucket, - PalletStorageProvidersCall, - PalletStorageProvidersError, - PalletStorageProvidersEvent, - PalletStorageProvidersHoldReason, - PalletStorageProvidersMainStorageProvider, - PalletStorageProvidersStorageProvider, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - PalletSudoCall, - PalletSudoError, - PalletSudoEvent, - PalletTimestampCall, - PalletTransactionPaymentChargeTransactionPayment, - PalletTransactionPaymentEvent, - PalletTransactionPaymentReleases, - PalletXcmCall, - PalletXcmError, - PalletXcmEvent, - PalletXcmQueryStatus, - PalletXcmRemoteLockedFungibleRecord, - PalletXcmVersionMigrationStage, - PolkadotCorePrimitivesInboundDownwardMessage, - PolkadotCorePrimitivesInboundHrmpMessage, - PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV7AbridgedHostConfiguration, - PolkadotPrimitivesV7AbridgedHrmpChannel, - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, - PolkadotPrimitivesV7PersistedValidationData, - PolkadotPrimitivesV7UpgradeGoAhead, - PolkadotPrimitivesV7UpgradeRestriction, - ShpFileKeyVerifierFileKeyProof, - ShpFileMetadataFileMetadata, - ShpFileMetadataFingerprint, - ShpTraitsTrieRemoveMutation, - SpArithmeticArithmeticError, - SpConsensusAuraSr25519AppSr25519Public, - SpCoreCryptoKeyTypeId, - SpRuntimeDigest, - SpRuntimeDigestDigestItem, - SpRuntimeDispatchError, - SpRuntimeModuleError, - SpRuntimeMultiSignature, - SpRuntimeTokenError, - SpRuntimeTransactionalError, - SpTrieStorageProof, - SpTrieStorageProofCompactProof, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight, - StagingParachainInfoCall, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV3MultiLocation, - StagingXcmV4Asset, - StagingXcmV4AssetAssetFilter, - StagingXcmV4AssetAssetId, - StagingXcmV4AssetAssetInstance, - StagingXcmV4AssetAssets, - StagingXcmV4AssetFungibility, - StagingXcmV4AssetWildAsset, - StagingXcmV4AssetWildFungibility, - StagingXcmV4Instruction, - StagingXcmV4Junction, - StagingXcmV4JunctionNetworkId, - StagingXcmV4Junctions, - StagingXcmV4Location, - StagingXcmV4PalletInfo, - StagingXcmV4QueryResponseInfo, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - StorageHubRuntimeRuntime, - StorageHubRuntimeRuntimeHoldReason, - StorageHubRuntimeSessionKeys, - XcmDoubleEncoded, - XcmV2BodyId, - XcmV2BodyPart, - XcmV2Instruction, - XcmV2Junction, - XcmV2MultiAsset, - XcmV2MultiLocation, - XcmV2MultiassetAssetId, - XcmV2MultiassetAssetInstance, - XcmV2MultiassetFungibility, - XcmV2MultiassetMultiAssetFilter, - XcmV2MultiassetMultiAssets, - XcmV2MultiassetWildFungibility, - XcmV2MultiassetWildMultiAsset, - XcmV2MultilocationJunctions, - XcmV2NetworkId, - XcmV2OriginKind, - XcmV2Response, - XcmV2TraitsError, - XcmV2WeightLimit, - XcmV2Xcm, - XcmV3Instruction, - XcmV3Junction, - XcmV3JunctionBodyId, - XcmV3JunctionBodyPart, - XcmV3JunctionNetworkId, - XcmV3Junctions, - XcmV3MaybeErrorCode, - XcmV3MultiAsset, - XcmV3MultiassetAssetId, - XcmV3MultiassetAssetInstance, - XcmV3MultiassetFungibility, - XcmV3MultiassetMultiAssetFilter, - XcmV3MultiassetMultiAssets, - XcmV3MultiassetWildFungibility, - XcmV3MultiassetWildMultiAsset, - XcmV3OriginKind, - XcmV3PalletInfo, - XcmV3QueryResponseInfo, - XcmV3Response, - XcmV3TraitsError, - XcmV3WeightLimit, - XcmV3Xcm, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedResponse, - XcmVersionedXcm -} from "@polkadot/types/lookup"; -declare module "@polkadot/types/types/registry" { - interface InterfaceTypes { - CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; - CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; - CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - CumulusPalletXcmCall: CumulusPalletXcmCall; - CumulusPalletXcmEvent: CumulusPalletXcmEvent; - CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; - CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; - CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; - CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; - CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; - CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; - CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; - FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; - FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; - FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; - FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; - FrameSupportDispatchPays: FrameSupportDispatchPays; - FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; - FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; - FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; - FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; - FrameSystemAccountInfo: FrameSystemAccountInfo; - FrameSystemCall: FrameSystemCall; - FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; - FrameSystemError: FrameSystemError; - FrameSystemEvent: FrameSystemEvent; - FrameSystemEventRecord: FrameSystemEventRecord; - FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; - FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; - FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; - FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; - FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; - FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; - FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; - FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; - FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; - FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; - FrameSystemPhase: FrameSystemPhase; - PalletBalancesAccountData: PalletBalancesAccountData; - PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; - PalletBalancesBalanceLock: PalletBalancesBalanceLock; - PalletBalancesCall: PalletBalancesCall; - PalletBalancesError: PalletBalancesError; - PalletBalancesEvent: PalletBalancesEvent; - PalletBalancesIdAmount: PalletBalancesIdAmount; - PalletBalancesReasons: PalletBalancesReasons; - PalletBalancesReserveData: PalletBalancesReserveData; - PalletBucketNftsCall: PalletBucketNftsCall; - PalletBucketNftsError: PalletBucketNftsError; - PalletBucketNftsEvent: PalletBucketNftsEvent; - PalletCollatorSelectionCall: PalletCollatorSelectionCall; - PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; - PalletCollatorSelectionError: PalletCollatorSelectionError; - PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; - PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; - PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; - PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; - PalletFileSystemCall: PalletFileSystemCall; - PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; - PalletFileSystemError: PalletFileSystemError; - PalletFileSystemEvent: PalletFileSystemEvent; - PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; - PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; - PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; - PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; - PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; - PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; - PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; - PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; - PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; - PalletMessageQueueBookState: PalletMessageQueueBookState; - PalletMessageQueueCall: PalletMessageQueueCall; - PalletMessageQueueError: PalletMessageQueueError; - PalletMessageQueueEvent: PalletMessageQueueEvent; - PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; - PalletMessageQueuePage: PalletMessageQueuePage; - PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; - PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; - PalletNftsCall: PalletNftsCall; - PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; - PalletNftsCollectionConfig: PalletNftsCollectionConfig; - PalletNftsCollectionDetails: PalletNftsCollectionDetails; - PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; - PalletNftsCollectionRole: PalletNftsCollectionRole; - PalletNftsCollectionSetting: PalletNftsCollectionSetting; - PalletNftsDestroyWitness: PalletNftsDestroyWitness; - PalletNftsError: PalletNftsError; - PalletNftsEvent: PalletNftsEvent; - PalletNftsItemConfig: PalletNftsItemConfig; - PalletNftsItemDeposit: PalletNftsItemDeposit; - PalletNftsItemDetails: PalletNftsItemDetails; - PalletNftsItemMetadata: PalletNftsItemMetadata; - PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; - PalletNftsItemSetting: PalletNftsItemSetting; - PalletNftsItemTip: PalletNftsItemTip; - PalletNftsMintSettings: PalletNftsMintSettings; - PalletNftsMintType: PalletNftsMintType; - PalletNftsMintWitness: PalletNftsMintWitness; - PalletNftsPalletAttributes: PalletNftsPalletAttributes; - PalletNftsPalletFeature: PalletNftsPalletFeature; - PalletNftsPendingSwap: PalletNftsPendingSwap; - PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; - PalletNftsPreSignedMint: PalletNftsPreSignedMint; - PalletNftsPriceDirection: PalletNftsPriceDirection; - PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; - PalletParametersCall: PalletParametersCall; - PalletParametersEvent: PalletParametersEvent; - PalletPaymentStreamsCall: PalletPaymentStreamsCall; - PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; - PalletPaymentStreamsError: PalletPaymentStreamsError; - PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; - PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; - PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; - PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; - PalletProofsDealerCall: PalletProofsDealerCall; - PalletProofsDealerError: PalletProofsDealerError; - PalletProofsDealerEvent: PalletProofsDealerEvent; - PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; - PalletProofsDealerProof: PalletProofsDealerProof; - PalletRandomnessCall: PalletRandomnessCall; - PalletRandomnessEvent: PalletRandomnessEvent; - PalletSessionCall: PalletSessionCall; - PalletSessionError: PalletSessionError; - PalletSessionEvent: PalletSessionEvent; - PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; - PalletStorageProvidersBucket: PalletStorageProvidersBucket; - PalletStorageProvidersCall: PalletStorageProvidersCall; - PalletStorageProvidersError: PalletStorageProvidersError; - PalletStorageProvidersEvent: PalletStorageProvidersEvent; - PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; - PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; - PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; - PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; - PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; - PalletSudoCall: PalletSudoCall; - PalletSudoError: PalletSudoError; - PalletSudoEvent: PalletSudoEvent; - PalletTimestampCall: PalletTimestampCall; - PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; - PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; - PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; - PalletXcmCall: PalletXcmCall; - PalletXcmError: PalletXcmError; - PalletXcmEvent: PalletXcmEvent; - PalletXcmQueryStatus: PalletXcmQueryStatus; - PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; - PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; - PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; - PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; - PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; - PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; - PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; - PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; - PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; - PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; - ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; - ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; - ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; - ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; - SpArithmeticArithmeticError: SpArithmeticArithmeticError; - SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; - SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; - SpRuntimeDigest: SpRuntimeDigest; - SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; - SpRuntimeDispatchError: SpRuntimeDispatchError; - SpRuntimeModuleError: SpRuntimeModuleError; - SpRuntimeMultiSignature: SpRuntimeMultiSignature; - SpRuntimeTokenError: SpRuntimeTokenError; - SpRuntimeTransactionalError: SpRuntimeTransactionalError; - SpTrieStorageProof: SpTrieStorageProof; - SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; - SpVersionRuntimeVersion: SpVersionRuntimeVersion; - SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; - SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; - StagingParachainInfoCall: StagingParachainInfoCall; - StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; - StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; - StagingXcmV4Asset: StagingXcmV4Asset; - StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; - StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; - StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; - StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; - StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; - StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; - StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; - StagingXcmV4Instruction: StagingXcmV4Instruction; - StagingXcmV4Junction: StagingXcmV4Junction; - StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; - StagingXcmV4Junctions: StagingXcmV4Junctions; - StagingXcmV4Location: StagingXcmV4Location; - StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; - StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; - StagingXcmV4Response: StagingXcmV4Response; - StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; - StagingXcmV4Xcm: StagingXcmV4Xcm; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; - StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; - StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; - StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; - XcmDoubleEncoded: XcmDoubleEncoded; - XcmV2BodyId: XcmV2BodyId; - XcmV2BodyPart: XcmV2BodyPart; - XcmV2Instruction: XcmV2Instruction; - XcmV2Junction: XcmV2Junction; - XcmV2MultiAsset: XcmV2MultiAsset; - XcmV2MultiLocation: XcmV2MultiLocation; - XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; - XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; - XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; - XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; - XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; - XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; - XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; - XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; - XcmV2NetworkId: XcmV2NetworkId; - XcmV2OriginKind: XcmV2OriginKind; - XcmV2Response: XcmV2Response; - XcmV2TraitsError: XcmV2TraitsError; - XcmV2WeightLimit: XcmV2WeightLimit; - XcmV2Xcm: XcmV2Xcm; - XcmV3Instruction: XcmV3Instruction; - XcmV3Junction: XcmV3Junction; - XcmV3JunctionBodyId: XcmV3JunctionBodyId; - XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; - XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; - XcmV3Junctions: XcmV3Junctions; - XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; - XcmV3MultiAsset: XcmV3MultiAsset; - XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; - XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; - XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; - XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; - XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; - XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; - XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; - XcmV3OriginKind: XcmV3OriginKind; - XcmV3PalletInfo: XcmV3PalletInfo; - XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; - XcmV3Response: XcmV3Response; - XcmV3TraitsError: XcmV3TraitsError; - XcmV3WeightLimit: XcmV3WeightLimit; - XcmV3Xcm: XcmV3Xcm; - XcmVersionedAssetId: XcmVersionedAssetId; - XcmVersionedAssets: XcmVersionedAssets; - XcmVersionedLocation: XcmVersionedLocation; - XcmVersionedResponse: XcmVersionedResponse; - XcmVersionedXcm: XcmVersionedXcm; - } -} +import "@polkadot/types/types/registry"; +import type { + CumulusPalletParachainSystemCall, + CumulusPalletParachainSystemError, + CumulusPalletParachainSystemEvent, + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, + CumulusPalletParachainSystemUnincludedSegmentAncestor, + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, + CumulusPalletXcmCall, + CumulusPalletXcmEvent, + CumulusPalletXcmpQueueCall, + CumulusPalletXcmpQueueError, + CumulusPalletXcmpQueueEvent, + CumulusPalletXcmpQueueOutboundChannelDetails, + CumulusPalletXcmpQueueOutboundState, + CumulusPalletXcmpQueueQueueConfigData, + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, + FrameMetadataHashExtensionCheckMetadataHash, + FrameMetadataHashExtensionMode, + FrameSupportDispatchDispatchClass, + FrameSupportDispatchDispatchInfo, + FrameSupportDispatchPays, + FrameSupportDispatchPerDispatchClassU32, + FrameSupportDispatchPerDispatchClassWeight, + FrameSupportDispatchPerDispatchClassWeightsPerClass, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + FrameSystemAccountInfo, + FrameSystemCall, + FrameSystemCodeUpgradeAuthorization, + FrameSystemError, + FrameSystemEvent, + FrameSystemEventRecord, + FrameSystemExtensionsCheckGenesis, + FrameSystemExtensionsCheckNonZeroSender, + FrameSystemExtensionsCheckNonce, + FrameSystemExtensionsCheckSpecVersion, + FrameSystemExtensionsCheckTxVersion, + FrameSystemExtensionsCheckWeight, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + FrameSystemLimitsWeightsPerClass, + FrameSystemPhase, + PalletBalancesAccountData, + PalletBalancesAdjustmentDirection, + PalletBalancesBalanceLock, + PalletBalancesCall, + PalletBalancesError, + PalletBalancesEvent, + PalletBalancesIdAmount, + PalletBalancesReasons, + PalletBalancesReserveData, + PalletBucketNftsCall, + PalletBucketNftsError, + PalletBucketNftsEvent, + PalletCollatorSelectionCall, + PalletCollatorSelectionCandidateInfo, + PalletCollatorSelectionError, + PalletCollatorSelectionEvent, + PalletFileSystemAcceptedStorageRequestParameters, + PalletFileSystemBatchResponses, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemCall, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemError, + PalletFileSystemEvent, + PalletFileSystemMoveBucketRequestMetadata, + PalletFileSystemMspAcceptedBatchStorageRequests, + PalletFileSystemMspFailedBatchStorageRequests, + PalletFileSystemMspRejectedBatchStorageRequests, + PalletFileSystemMspRespondStorageRequestsResult, + PalletFileSystemMspStorageRequestResponse, + PalletFileSystemRejectedStorageRequestReason, + PalletFileSystemStorageRequestBspsMetadata, + PalletFileSystemStorageRequestMetadata, + PalletMessageQueueBookState, + PalletMessageQueueCall, + PalletMessageQueueError, + PalletMessageQueueEvent, + PalletMessageQueueNeighbours, + PalletMessageQueuePage, + PalletNftsAttributeDeposit, + PalletNftsAttributeNamespace, + PalletNftsCall, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsCollectionDetails, + PalletNftsCollectionMetadata, + PalletNftsCollectionRole, + PalletNftsCollectionSetting, + PalletNftsDestroyWitness, + PalletNftsError, + PalletNftsEvent, + PalletNftsItemConfig, + PalletNftsItemDeposit, + PalletNftsItemDetails, + PalletNftsItemMetadata, + PalletNftsItemMetadataDeposit, + PalletNftsItemSetting, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintType, + PalletNftsMintWitness, + PalletNftsPalletAttributes, + PalletNftsPalletFeature, + PalletNftsPendingSwap, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceDirection, + PalletNftsPriceWithDirection, + PalletParametersCall, + PalletParametersEvent, + PalletPaymentStreamsCall, + PalletPaymentStreamsDynamicRatePaymentStream, + PalletPaymentStreamsError, + PalletPaymentStreamsEvent, + PalletPaymentStreamsFixedRatePaymentStream, + PalletPaymentStreamsHoldReason, + PalletPaymentStreamsProviderLastChargeableInfo, + PalletProofsDealerCall, + PalletProofsDealerError, + PalletProofsDealerEvent, + PalletProofsDealerKeyProof, + PalletProofsDealerProof, + PalletRandomnessCall, + PalletRandomnessEvent, + PalletSessionCall, + PalletSessionError, + PalletSessionEvent, + PalletStorageProvidersBackupStorageProvider, + PalletStorageProvidersBucket, + PalletStorageProvidersCall, + PalletStorageProvidersError, + PalletStorageProvidersEvent, + PalletStorageProvidersHoldReason, + PalletStorageProvidersMainStorageProvider, + PalletStorageProvidersStorageProvider, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + PalletSudoCall, + PalletSudoError, + PalletSudoEvent, + PalletTimestampCall, + PalletTransactionPaymentChargeTransactionPayment, + PalletTransactionPaymentEvent, + PalletTransactionPaymentReleases, + PalletXcmCall, + PalletXcmError, + PalletXcmEvent, + PalletXcmQueryStatus, + PalletXcmRemoteLockedFungibleRecord, + PalletXcmVersionMigrationStage, + PolkadotCorePrimitivesInboundDownwardMessage, + PolkadotCorePrimitivesInboundHrmpMessage, + PolkadotCorePrimitivesOutboundHrmpMessage, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7AbridgedHrmpChannel, + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, + ShpFileKeyVerifierFileKeyProof, + ShpFileMetadataFileMetadata, + ShpFileMetadataFingerprint, + ShpTraitsTrieRemoveMutation, + SpArithmeticArithmeticError, + SpConsensusAuraSr25519AppSr25519Public, + SpCoreCryptoKeyTypeId, + SpRuntimeDigest, + SpRuntimeDigestDigestItem, + SpRuntimeDispatchError, + SpRuntimeModuleError, + SpRuntimeMultiSignature, + SpRuntimeTokenError, + SpRuntimeTransactionalError, + SpTrieStorageProof, + SpTrieStorageProofCompactProof, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight, + StagingParachainInfoCall, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV3MultiLocation, + StagingXcmV4Asset, + StagingXcmV4AssetAssetFilter, + StagingXcmV4AssetAssetId, + StagingXcmV4AssetAssetInstance, + StagingXcmV4AssetAssets, + StagingXcmV4AssetFungibility, + StagingXcmV4AssetWildAsset, + StagingXcmV4AssetWildFungibility, + StagingXcmV4Instruction, + StagingXcmV4Junction, + StagingXcmV4JunctionNetworkId, + StagingXcmV4Junctions, + StagingXcmV4Location, + StagingXcmV4PalletInfo, + StagingXcmV4QueryResponseInfo, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + StorageHubRuntimeRuntime, + StorageHubRuntimeRuntimeHoldReason, + StorageHubRuntimeSessionKeys, + XcmDoubleEncoded, + XcmV2BodyId, + XcmV2BodyPart, + XcmV2Instruction, + XcmV2Junction, + XcmV2MultiAsset, + XcmV2MultiLocation, + XcmV2MultiassetAssetId, + XcmV2MultiassetAssetInstance, + XcmV2MultiassetFungibility, + XcmV2MultiassetMultiAssetFilter, + XcmV2MultiassetMultiAssets, + XcmV2MultiassetWildFungibility, + XcmV2MultiassetWildMultiAsset, + XcmV2MultilocationJunctions, + XcmV2NetworkId, + XcmV2OriginKind, + XcmV2Response, + XcmV2TraitsError, + XcmV2WeightLimit, + XcmV2Xcm, + XcmV3Instruction, + XcmV3Junction, + XcmV3JunctionBodyId, + XcmV3JunctionBodyPart, + XcmV3JunctionNetworkId, + XcmV3Junctions, + XcmV3MaybeErrorCode, + XcmV3MultiAsset, + XcmV3MultiassetAssetId, + XcmV3MultiassetAssetInstance, + XcmV3MultiassetFungibility, + XcmV3MultiassetMultiAssetFilter, + XcmV3MultiassetMultiAssets, + XcmV3MultiassetWildFungibility, + XcmV3MultiassetWildMultiAsset, + XcmV3OriginKind, + XcmV3PalletInfo, + XcmV3QueryResponseInfo, + XcmV3Response, + XcmV3TraitsError, + XcmV3WeightLimit, + XcmV3Xcm, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedResponse, + XcmVersionedXcm +} from "@polkadot/types/lookup"; +declare module "@polkadot/types/types/registry" { + interface InterfaceTypes { + CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; + CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; + CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + CumulusPalletXcmCall: CumulusPalletXcmCall; + CumulusPalletXcmEvent: CumulusPalletXcmEvent; + CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; + CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; + CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; + CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; + CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; + CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; + CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; + FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; + FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; + FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; + FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; + FrameSupportDispatchPays: FrameSupportDispatchPays; + FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; + FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; + FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; + FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; + FrameSystemAccountInfo: FrameSystemAccountInfo; + FrameSystemCall: FrameSystemCall; + FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; + FrameSystemError: FrameSystemError; + FrameSystemEvent: FrameSystemEvent; + FrameSystemEventRecord: FrameSystemEventRecord; + FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; + FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; + FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; + FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; + FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; + FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; + FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; + FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; + FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; + FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; + FrameSystemPhase: FrameSystemPhase; + PalletBalancesAccountData: PalletBalancesAccountData; + PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; + PalletBalancesBalanceLock: PalletBalancesBalanceLock; + PalletBalancesCall: PalletBalancesCall; + PalletBalancesError: PalletBalancesError; + PalletBalancesEvent: PalletBalancesEvent; + PalletBalancesIdAmount: PalletBalancesIdAmount; + PalletBalancesReasons: PalletBalancesReasons; + PalletBalancesReserveData: PalletBalancesReserveData; + PalletBucketNftsCall: PalletBucketNftsCall; + PalletBucketNftsError: PalletBucketNftsError; + PalletBucketNftsEvent: PalletBucketNftsEvent; + PalletCollatorSelectionCall: PalletCollatorSelectionCall; + PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; + PalletCollatorSelectionError: PalletCollatorSelectionError; + PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; + PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; + PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; + PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; + PalletFileSystemCall: PalletFileSystemCall; + PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; + PalletFileSystemError: PalletFileSystemError; + PalletFileSystemEvent: PalletFileSystemEvent; + PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; + PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; + PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; + PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; + PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; + PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; + PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; + PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; + PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; + PalletMessageQueueBookState: PalletMessageQueueBookState; + PalletMessageQueueCall: PalletMessageQueueCall; + PalletMessageQueueError: PalletMessageQueueError; + PalletMessageQueueEvent: PalletMessageQueueEvent; + PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; + PalletMessageQueuePage: PalletMessageQueuePage; + PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; + PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; + PalletNftsCall: PalletNftsCall; + PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; + PalletNftsCollectionConfig: PalletNftsCollectionConfig; + PalletNftsCollectionDetails: PalletNftsCollectionDetails; + PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; + PalletNftsCollectionRole: PalletNftsCollectionRole; + PalletNftsCollectionSetting: PalletNftsCollectionSetting; + PalletNftsDestroyWitness: PalletNftsDestroyWitness; + PalletNftsError: PalletNftsError; + PalletNftsEvent: PalletNftsEvent; + PalletNftsItemConfig: PalletNftsItemConfig; + PalletNftsItemDeposit: PalletNftsItemDeposit; + PalletNftsItemDetails: PalletNftsItemDetails; + PalletNftsItemMetadata: PalletNftsItemMetadata; + PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; + PalletNftsItemSetting: PalletNftsItemSetting; + PalletNftsItemTip: PalletNftsItemTip; + PalletNftsMintSettings: PalletNftsMintSettings; + PalletNftsMintType: PalletNftsMintType; + PalletNftsMintWitness: PalletNftsMintWitness; + PalletNftsPalletAttributes: PalletNftsPalletAttributes; + PalletNftsPalletFeature: PalletNftsPalletFeature; + PalletNftsPendingSwap: PalletNftsPendingSwap; + PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; + PalletNftsPreSignedMint: PalletNftsPreSignedMint; + PalletNftsPriceDirection: PalletNftsPriceDirection; + PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; + PalletParametersCall: PalletParametersCall; + PalletParametersEvent: PalletParametersEvent; + PalletPaymentStreamsCall: PalletPaymentStreamsCall; + PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; + PalletPaymentStreamsError: PalletPaymentStreamsError; + PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; + PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; + PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; + PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; + PalletProofsDealerCall: PalletProofsDealerCall; + PalletProofsDealerError: PalletProofsDealerError; + PalletProofsDealerEvent: PalletProofsDealerEvent; + PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; + PalletProofsDealerProof: PalletProofsDealerProof; + PalletRandomnessCall: PalletRandomnessCall; + PalletRandomnessEvent: PalletRandomnessEvent; + PalletSessionCall: PalletSessionCall; + PalletSessionError: PalletSessionError; + PalletSessionEvent: PalletSessionEvent; + PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; + PalletStorageProvidersBucket: PalletStorageProvidersBucket; + PalletStorageProvidersCall: PalletStorageProvidersCall; + PalletStorageProvidersError: PalletStorageProvidersError; + PalletStorageProvidersEvent: PalletStorageProvidersEvent; + PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; + PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; + PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; + PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; + PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; + PalletSudoCall: PalletSudoCall; + PalletSudoError: PalletSudoError; + PalletSudoEvent: PalletSudoEvent; + PalletTimestampCall: PalletTimestampCall; + PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; + PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; + PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; + PalletXcmCall: PalletXcmCall; + PalletXcmError: PalletXcmError; + PalletXcmEvent: PalletXcmEvent; + PalletXcmQueryStatus: PalletXcmQueryStatus; + PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; + PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; + PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; + PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; + PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; + PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; + PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; + PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; + PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; + ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; + ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; + ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; + ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; + SpArithmeticArithmeticError: SpArithmeticArithmeticError; + SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; + SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; + SpRuntimeDigest: SpRuntimeDigest; + SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; + SpRuntimeDispatchError: SpRuntimeDispatchError; + SpRuntimeModuleError: SpRuntimeModuleError; + SpRuntimeMultiSignature: SpRuntimeMultiSignature; + SpRuntimeTokenError: SpRuntimeTokenError; + SpRuntimeTransactionalError: SpRuntimeTransactionalError; + SpTrieStorageProof: SpTrieStorageProof; + SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; + SpVersionRuntimeVersion: SpVersionRuntimeVersion; + SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; + SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; + StagingParachainInfoCall: StagingParachainInfoCall; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; + StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; + StagingXcmV4Asset: StagingXcmV4Asset; + StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; + StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; + StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; + StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; + StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; + StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; + StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; + StagingXcmV4Instruction: StagingXcmV4Instruction; + StagingXcmV4Junction: StagingXcmV4Junction; + StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; + StagingXcmV4Junctions: StagingXcmV4Junctions; + StagingXcmV4Location: StagingXcmV4Location; + StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; + StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; + StagingXcmV4Response: StagingXcmV4Response; + StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; + StagingXcmV4Xcm: StagingXcmV4Xcm; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; + StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; + StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; + StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; + XcmDoubleEncoded: XcmDoubleEncoded; + XcmV2BodyId: XcmV2BodyId; + XcmV2BodyPart: XcmV2BodyPart; + XcmV2Instruction: XcmV2Instruction; + XcmV2Junction: XcmV2Junction; + XcmV2MultiAsset: XcmV2MultiAsset; + XcmV2MultiLocation: XcmV2MultiLocation; + XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; + XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; + XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; + XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; + XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; + XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; + XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; + XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; + XcmV2NetworkId: XcmV2NetworkId; + XcmV2OriginKind: XcmV2OriginKind; + XcmV2Response: XcmV2Response; + XcmV2TraitsError: XcmV2TraitsError; + XcmV2WeightLimit: XcmV2WeightLimit; + XcmV2Xcm: XcmV2Xcm; + XcmV3Instruction: XcmV3Instruction; + XcmV3Junction: XcmV3Junction; + XcmV3JunctionBodyId: XcmV3JunctionBodyId; + XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; + XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; + XcmV3Junctions: XcmV3Junctions; + XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; + XcmV3MultiAsset: XcmV3MultiAsset; + XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; + XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; + XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; + XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; + XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; + XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; + XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; + XcmV3PalletInfo: XcmV3PalletInfo; + XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; + XcmV3Response: XcmV3Response; + XcmV3TraitsError: XcmV3TraitsError; + XcmV3WeightLimit: XcmV3WeightLimit; + XcmV3Xcm: XcmV3Xcm; + XcmVersionedAssetId: XcmVersionedAssetId; + XcmVersionedAssets: XcmVersionedAssets; + XcmVersionedLocation: XcmVersionedLocation; + XcmVersionedResponse: XcmVersionedResponse; + XcmVersionedXcm: XcmVersionedXcm; + } +} diff --git a/api-augment/dist/types/interfaces/storagehubclient/types.d.ts b/api-augment/dist/types/interfaces/storagehubclient/types.d.ts index 7e2b0598a..8a7925772 100644 --- a/api-augment/dist/types/interfaces/storagehubclient/types.d.ts +++ b/api-augment/dist/types/interfaces/storagehubclient/types.d.ts @@ -1,196 +1,196 @@ -import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; -import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; -/** @name BackupStorageProvider */ -export interface BackupStorageProvider extends Struct { - readonly capacity: StorageData; - readonly data_used: StorageData; - readonly multiaddresses: Bytes; - readonly root: MerklePatriciaRoot; - readonly last_capacity_change: BlockNumber; - readonly owner_account: AccountId; - readonly payment_account: AccountId; -} -/** @name BackupStorageProviderId */ -export interface BackupStorageProviderId extends H256 {} -/** @name ChunkId */ -export interface ChunkId extends u64 {} -/** @name FileMetadata */ -export interface FileMetadata extends Struct { - readonly owner: Bytes; - readonly bucket_id: Bytes; - readonly location: Bytes; - readonly file_size: u64; - readonly fingerprint: U8aFixed; -} -/** @name GetBspInfoError */ -export interface GetBspInfoError extends Enum { - readonly isBspNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "BspNotRegistered" | "InternalApiError"; -} -/** @name GetChallengePeriodError */ -export interface GetChallengePeriodError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name GetChallengeSeedError */ -export interface GetChallengeSeedError extends Enum { - readonly isTickBeyondLastSeedStored: boolean; - readonly isTickIsInTheFuture: boolean; - readonly isInternalApiError: boolean; - readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; -} -/** @name GetCheckpointChallengesError */ -export interface GetCheckpointChallengesError extends Enum { - readonly isTickGreaterThanLastCheckpointTick: boolean; - readonly isNoCheckpointChallengesInTick: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "TickGreaterThanLastCheckpointTick" - | "NoCheckpointChallengesInTick" - | "InternalApiError"; -} -/** @name GetFileFromFileStorageResult */ -export interface GetFileFromFileStorageResult extends Enum { - readonly isFileNotFound: boolean; - readonly isFileFound: boolean; - readonly asFileFound: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly isFileFoundWithInconsistency: boolean; - readonly asFileFoundWithInconsistency: FileMetadata; - readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; -} -/** @name GetLastTickProviderSubmittedProofError */ -export interface GetLastTickProviderSubmittedProofError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNeverSubmittedProof: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; -} -/** @name GetNextDeadlineTickError */ -export interface GetNextDeadlineTickError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNotInitialised: boolean; - readonly isArithmeticOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderNotInitialised" - | "ArithmeticOverflow" - | "InternalApiError"; -} -/** @name GetUsersWithDebtOverThresholdError */ -export interface GetUsersWithDebtOverThresholdError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderWithoutPaymentStreams: boolean; - readonly isAmountToChargeOverflow: boolean; - readonly isDebtOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderWithoutPaymentStreams" - | "AmountToChargeOverflow" - | "DebtOverflow" - | "InternalApiError"; -} -/** @name IncompleteFileStatus */ -export interface IncompleteFileStatus extends Struct { - readonly file_metadata: FileMetadata; - readonly stored_chunks: u64; - readonly total_chunks: u64; -} -/** @name Key */ -export interface Key extends H256 {} -/** @name MainStorageProviderId */ -export interface MainStorageProviderId extends H256 {} -/** @name MerklePatriciaRoot */ -export interface MerklePatriciaRoot extends H256 {} -/** @name ProviderId */ -export interface ProviderId extends H256 {} -/** @name QueryAvailableStorageCapacityError */ -export interface QueryAvailableStorageCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name QueryBspConfirmChunksToProveForFileError */ -export interface QueryBspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} -/** @name QueryConfirmChunksToProveForFileError */ -export interface QueryConfirmChunksToProveForFileError extends Enum { - readonly isChallengedChunkToChunkIdError: boolean; - readonly type: "ChallengedChunkToChunkIdError"; -} -/** @name QueryEarliestChangeCapacityBlockError */ -export interface QueryEarliestChangeCapacityBlockError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name QueryFileEarliestVolunteerBlockError */ -export interface QueryFileEarliestVolunteerBlockError extends Enum { - readonly isFailedToEncodeFingerprint: boolean; - readonly isFailedToEncodeBsp: boolean; - readonly isThresholdArithmeticError: boolean; - readonly isStorageRequestNotFound: boolean; - readonly isInternalError: boolean; - readonly type: - | "FailedToEncodeFingerprint" - | "FailedToEncodeBsp" - | "ThresholdArithmeticError" - | "StorageRequestNotFound" - | "InternalError"; -} -/** @name QueryMspConfirmChunksToProveForFileError */ -export interface QueryMspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} -/** @name QueryMspIdOfBucketIdError */ -export interface QueryMspIdOfBucketIdError extends Enum { - readonly isBucketNotFound: boolean; - readonly isInternalApiError: boolean; - readonly type: "BucketNotFound" | "InternalApiError"; -} -/** @name QueryStorageProviderCapacityError */ -export interface QueryStorageProviderCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name RandomnessOutput */ -export interface RandomnessOutput extends H256 {} -/** @name SaveFileToDisk */ -export interface SaveFileToDisk extends Enum { - readonly isFileNotFound: boolean; - readonly isSuccess: boolean; - readonly asSuccess: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly type: "FileNotFound" | "Success" | "IncompleteFile"; -} -/** @name StorageData */ -export interface StorageData extends u32 {} -/** @name StorageDataUnit */ -export interface StorageDataUnit extends u32 {} -/** @name StorageProviderId */ -export interface StorageProviderId extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: BackupStorageProviderId; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: MainStorageProviderId; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; -} -/** @name TrieRemoveMutation */ -export interface TrieRemoveMutation extends Struct {} -export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; +import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; +import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; +/** @name BackupStorageProvider */ +export interface BackupStorageProvider extends Struct { + readonly capacity: StorageData; + readonly data_used: StorageData; + readonly multiaddresses: Bytes; + readonly root: MerklePatriciaRoot; + readonly last_capacity_change: BlockNumber; + readonly owner_account: AccountId; + readonly payment_account: AccountId; +} +/** @name BackupStorageProviderId */ +export interface BackupStorageProviderId extends H256 {} +/** @name ChunkId */ +export interface ChunkId extends u64 {} +/** @name FileMetadata */ +export interface FileMetadata extends Struct { + readonly owner: Bytes; + readonly bucket_id: Bytes; + readonly location: Bytes; + readonly file_size: u64; + readonly fingerprint: U8aFixed; +} +/** @name GetBspInfoError */ +export interface GetBspInfoError extends Enum { + readonly isBspNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "BspNotRegistered" | "InternalApiError"; +} +/** @name GetChallengePeriodError */ +export interface GetChallengePeriodError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name GetChallengeSeedError */ +export interface GetChallengeSeedError extends Enum { + readonly isTickBeyondLastSeedStored: boolean; + readonly isTickIsInTheFuture: boolean; + readonly isInternalApiError: boolean; + readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; +} +/** @name GetCheckpointChallengesError */ +export interface GetCheckpointChallengesError extends Enum { + readonly isTickGreaterThanLastCheckpointTick: boolean; + readonly isNoCheckpointChallengesInTick: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "TickGreaterThanLastCheckpointTick" + | "NoCheckpointChallengesInTick" + | "InternalApiError"; +} +/** @name GetFileFromFileStorageResult */ +export interface GetFileFromFileStorageResult extends Enum { + readonly isFileNotFound: boolean; + readonly isFileFound: boolean; + readonly asFileFound: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly isFileFoundWithInconsistency: boolean; + readonly asFileFoundWithInconsistency: FileMetadata; + readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; +} +/** @name GetLastTickProviderSubmittedProofError */ +export interface GetLastTickProviderSubmittedProofError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNeverSubmittedProof: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; +} +/** @name GetNextDeadlineTickError */ +export interface GetNextDeadlineTickError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNotInitialised: boolean; + readonly isArithmeticOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderNotInitialised" + | "ArithmeticOverflow" + | "InternalApiError"; +} +/** @name GetUsersWithDebtOverThresholdError */ +export interface GetUsersWithDebtOverThresholdError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderWithoutPaymentStreams: boolean; + readonly isAmountToChargeOverflow: boolean; + readonly isDebtOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderWithoutPaymentStreams" + | "AmountToChargeOverflow" + | "DebtOverflow" + | "InternalApiError"; +} +/** @name IncompleteFileStatus */ +export interface IncompleteFileStatus extends Struct { + readonly file_metadata: FileMetadata; + readonly stored_chunks: u64; + readonly total_chunks: u64; +} +/** @name Key */ +export interface Key extends H256 {} +/** @name MainStorageProviderId */ +export interface MainStorageProviderId extends H256 {} +/** @name MerklePatriciaRoot */ +export interface MerklePatriciaRoot extends H256 {} +/** @name ProviderId */ +export interface ProviderId extends H256 {} +/** @name QueryAvailableStorageCapacityError */ +export interface QueryAvailableStorageCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name QueryBspConfirmChunksToProveForFileError */ +export interface QueryBspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} +/** @name QueryConfirmChunksToProveForFileError */ +export interface QueryConfirmChunksToProveForFileError extends Enum { + readonly isChallengedChunkToChunkIdError: boolean; + readonly type: "ChallengedChunkToChunkIdError"; +} +/** @name QueryEarliestChangeCapacityBlockError */ +export interface QueryEarliestChangeCapacityBlockError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name QueryFileEarliestVolunteerBlockError */ +export interface QueryFileEarliestVolunteerBlockError extends Enum { + readonly isFailedToEncodeFingerprint: boolean; + readonly isFailedToEncodeBsp: boolean; + readonly isThresholdArithmeticError: boolean; + readonly isStorageRequestNotFound: boolean; + readonly isInternalError: boolean; + readonly type: + | "FailedToEncodeFingerprint" + | "FailedToEncodeBsp" + | "ThresholdArithmeticError" + | "StorageRequestNotFound" + | "InternalError"; +} +/** @name QueryMspConfirmChunksToProveForFileError */ +export interface QueryMspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} +/** @name QueryMspIdOfBucketIdError */ +export interface QueryMspIdOfBucketIdError extends Enum { + readonly isBucketNotFound: boolean; + readonly isInternalApiError: boolean; + readonly type: "BucketNotFound" | "InternalApiError"; +} +/** @name QueryStorageProviderCapacityError */ +export interface QueryStorageProviderCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name RandomnessOutput */ +export interface RandomnessOutput extends H256 {} +/** @name SaveFileToDisk */ +export interface SaveFileToDisk extends Enum { + readonly isFileNotFound: boolean; + readonly isSuccess: boolean; + readonly asSuccess: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly type: "FileNotFound" | "Success" | "IncompleteFile"; +} +/** @name StorageData */ +export interface StorageData extends u32 {} +/** @name StorageDataUnit */ +export interface StorageDataUnit extends u32 {} +/** @name StorageProviderId */ +export interface StorageProviderId extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: BackupStorageProviderId; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: MainStorageProviderId; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; +} +/** @name TrieRemoveMutation */ +export interface TrieRemoveMutation extends Struct {} +export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; diff --git a/api-augment/src/interfaces/augment-api-consts.ts b/api-augment/src/interfaces/augment-api-consts.ts index af81d7dd7..ec8520734 100644 --- a/api-augment/src/interfaces/augment-api-consts.ts +++ b/api-augment/src/interfaces/augment-api-consts.ts @@ -1,570 +1,570 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/consts"; - -import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; -import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; -import type { Codec } from "@polkadot/types-codec/types"; -import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; -import type { - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight -} from "@polkadot/types/lookup"; - -export type __AugmentedConst = AugmentedConst; - -declare module "@polkadot/api-base/types/consts" { - interface AugmentedConsts { - aura: { - /** - * The slot duration Aura should run with, expressed in milliseconds. - * The effective value of this type should not change while the chain is running. - * - * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. - **/ - slotDuration: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - balances: { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - **/ - existentialDeposit: u128 & AugmentedConst; - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - **/ - maxFreezes: u32 & AugmentedConst; - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - * - * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxLocks: u32 & AugmentedConst; - /** - * The maximum number of named reserves that can exist on an account. - * - * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxReserves: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - fileSystem: { - /** - * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. - **/ - maxBatchConfirmStorageRequests: u32 & AugmentedConst; - /** - * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. - **/ - maxBatchMspRespondStorageRequests: u32 & AugmentedConst; - /** - * Maximum number of SPs (MSP + BSPs) that can store a file. - * - * This is used to limit the number of BSPs storing a file and claiming rewards for it. - * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. - **/ - maxBspsPerStorageRequest: u32 & AugmentedConst; - /** - * Maximum number of multiaddresses for a storage request. - **/ - maxDataServerMultiAddresses: u32 & AugmentedConst; - /** - * Maximum number of expired items (per type) to clean up in a single block. - **/ - maxExpiredItemsInBlock: u32 & AugmentedConst; - /** - * Maximum byte size of a file path. - **/ - maxFilePathSize: u32 & AugmentedConst; - /** - * Maximum number of peer ids for a storage request. - **/ - maxNumberOfPeerIds: u32 & AugmentedConst; - /** - * Maximum byte size of a peer id. - **/ - maxPeerIdSize: u32 & AugmentedConst; - /** - * Maximum number of file deletion requests a user can have pending. - **/ - maxUserPendingDeletionRequests: u32 & AugmentedConst; - /** - * Maximum number of move bucket requests a user can have pending. - **/ - maxUserPendingMoveBucketRequests: u32 & AugmentedConst; - /** - * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. - **/ - minWaitForStopStoring: u32 & AugmentedConst; - /** - * Time-to-live for a move bucket request, after which the request is considered expired. - **/ - moveBucketRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. - **/ - pendingFileDeletionRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a storage request. - **/ - storageRequestTtl: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - messageQueue: { - /** - * The size of the page; this implies the maximum message size which can be sent. - * - * A good value depends on the expected message sizes, their weights, the weight that is - * available for processing them and the maximal needed message size. The maximal message - * size is slightly lower than this as defined by [`MaxMessageLenOf`]. - **/ - heapSize: u32 & AugmentedConst; - /** - * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which - * should be provided to the message queue for servicing enqueued items `on_idle`. - * Useful for parachains to process messages at the same block they are received. - * - * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. - **/ - idleMaxServiceWeight: Option & AugmentedConst; - /** - * The maximum number of stale pages (i.e. of overweight messages) allowed before culling - * can happen. Once there are more stale pages than this, then historical pages may be - * dropped, even if they contain unprocessed overweight messages. - **/ - maxStale: u32 & AugmentedConst; - /** - * The amount of weight (if any) which should be provided to the message queue for - * servicing enqueued items `on_initialize`. - * - * This may be legitimately `None` in the case that you will call - * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have - * it run in `on_idle`. - **/ - serviceWeight: Option & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - nfts: { - /** - * The maximum approvals an item could have. - **/ - approvalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding an attribute to an item. - **/ - attributeDepositBase: u128 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for collection. - **/ - collectionDeposit: u128 & AugmentedConst; - /** - * The additional funds that must be reserved for the number of bytes store in metadata, - * either "normal" metadata or attribute metadata. - **/ - depositPerByte: u128 & AugmentedConst; - /** - * Disables some of pallet's features. - **/ - features: u64 & AugmentedConst; - /** - * The maximum attributes approvals an item could have. - **/ - itemAttributesApprovalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for an item. - **/ - itemDeposit: u128 & AugmentedConst; - /** - * The maximum length of an attribute key. - **/ - keyLimit: u32 & AugmentedConst; - /** - * The max number of attributes a user could set per call. - **/ - maxAttributesPerCall: u32 & AugmentedConst; - /** - * The max duration in blocks for deadlines. - **/ - maxDeadlineDuration: u32 & AugmentedConst; - /** - * The max number of tips a user could send. - **/ - maxTips: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding metadata to your item. - **/ - metadataDepositBase: u128 & AugmentedConst; - /** - * The maximum length of data stored on-chain. - **/ - stringLimit: u32 & AugmentedConst; - /** - * The maximum length of an attribute value. - **/ - valueLimit: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - parachainSystem: { - /** - * Returns the parachain ID we are running with. - **/ - selfParaId: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - paymentStreams: { - /** - * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. - * This means that, from the balance of the User for which the payment stream is being created, the amount - * `NewStreamDeposit * rate` will be held as a deposit. - * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has - * to be provided by the pallet using the `PaymentStreamsInterface` interface. - **/ - newStreamDeposit: u32 & AugmentedConst; - /** - * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag - * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. - **/ - userWithoutFundsCooldown: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - proofsDealer: { - /** - * The minimum unused weight that a block must have to be considered _not_ full. - * - * This is used as part of the criteria for checking if the network is presumably under a spam attack. - * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would - * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. - **/ - blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; - /** - * The period of blocks for which the block fullness is checked. - * - * This is the amount of blocks from the past, for which the block fullness has been checked - * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are - * cleared from storage. - * - * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, - * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting - * their proofs in time. - **/ - blockFullnessPeriod: u32 & AugmentedConst; - /** - * The number of ticks that challenges history is kept for. - * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. - * A "tick" is usually one block, but some blocks may be skipped due to migrations. - **/ - challengeHistoryLength: u32 & AugmentedConst; - /** - * The fee charged for submitting a challenge. - * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are - * exempt from this fee. - **/ - challengesFee: u128 & AugmentedConst; - /** - * The length of the `ChallengesQueue` StorageValue. - * This is to limit the size of the queue, and therefore the number of - * manual challenges that can be made. - **/ - challengesQueueLength: u32 & AugmentedConst; - /** - * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that - * a Provider has to submit a proof, counting from the tick the challenge is emitted for - * that Provider. - * - * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance - * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before - * `n + t`. - **/ - challengeTicksTolerance: u32 & AugmentedConst; - /** - * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). - * This is used to determine when to include the challenges from the `ChallengesQueue` and - * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge - * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` - * extrinsic. - * - * WARNING: This period needs to be equal or larger than the challenge period of the smallest - * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), - * then the checkpoint challenge period needs to be at least 10 ticks. - **/ - checkpointChallengePeriod: u32 & AugmentedConst; - /** - * The maximum number of custom challenges that can be made in a single checkpoint block. - **/ - maxCustomChallengesPerBlock: u32 & AugmentedConst; - /** - * The maximum amount of Providers that can submit a proof in a single block. - * Although this can be seen as an arbitrary limit, if set to the already existing - * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of - * a block, this wouldn't add any additional artificial limit. - **/ - maxSubmittersPerTick: u32 & AugmentedConst; - /** - * The minimum period in which a Provider can be challenged, regardless of their stake. - **/ - minChallengePeriod: u32 & AugmentedConst; - /** - * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, - * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. - * - * If less than this percentage of blocks are not full, the networks is considered to be presumably - * under a spam attack. - * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, - * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` - * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning - * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. - **/ - minNotFullBlocksRatio: Perbill & AugmentedConst; - /** - * The number of random challenges that are generated per block, using the random seed - * generated for that block. - **/ - randomChallengesPerBlock: u32 & AugmentedConst; - /** - * The ratio to convert staked balance to block period. - * This is used to determine the period in which a Provider should submit a proof, based on - * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. - **/ - stakeToChallengePeriod: u128 & AugmentedConst; - /** - * The target number of ticks for which to store the submitters that submitted valid proofs in them, - * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number - * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. - **/ - targetTicksStorageOfSubmitters: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - providers: { - /** - * The amount that an account has to deposit to create a bucket. - **/ - bucketDeposit: u128 & AugmentedConst; - /** - * Type that represents the byte limit of a bucket name. - **/ - bucketNameLimit: u32 & AugmentedConst; - /** - * The default value of the root of the Merkle Patricia Trie of the runtime - **/ - defaultMerkleRoot: H256 & AugmentedConst; - /** - * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. - **/ - depositPerData: u128 & AugmentedConst; - /** - * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen - **/ - maxBlocksForRandomness: u32 & AugmentedConst; - /** - * The maximum amount of Buckets that a MSP can have. - **/ - maxBuckets: u32 & AugmentedConst; - /** - * The estimated maximum size of an unknown file. - * - * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. - **/ - maxFileSize: u64 & AugmentedConst; - /** - * The maximum amount of multiaddresses that a Storage Provider can have. - **/ - maxMultiAddressAmount: u32 & AugmentedConst; - /** - * The maximum size of a multiaddress. - **/ - maxMultiAddressSize: u32 & AugmentedConst; - /** - * The maximum number of protocols the MSP can support (at least within the runtime). - **/ - maxProtocols: u32 & AugmentedConst; - /** - * The minimum amount of blocks between capacity changes for a SP - **/ - minBlocksBetweenCapacityChanges: u32 & AugmentedConst; - /** - * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. - **/ - slashAmountPerMaxFileSize: u128 & AugmentedConst; - /** - * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. - **/ - spMinCapacity: u64 & AugmentedConst; - /** - * The minimum amount that an account has to deposit to become a storage provider. - **/ - spMinDeposit: u128 & AugmentedConst; - /** - * Starting reputation weight for a newly registered BSP. - **/ - startingReputationWeight: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - system: { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - **/ - blockHashCount: u32 & AugmentedConst; - /** - * The maximum length of a block (in bytes). - **/ - blockLength: FrameSystemLimitsBlockLength & AugmentedConst; - /** - * Block & extrinsics weights: base values and limits. - **/ - blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; - /** - * The weight of runtime database operations the runtime can invoke. - **/ - dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - **/ - ss58Prefix: u16 & AugmentedConst; - /** - * Get the chain's in-code version. - **/ - version: SpVersionRuntimeVersion & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - timestamp: { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - **/ - minimumPeriod: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - transactionPayment: { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - **/ - operationalFeeMultiplier: u8 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - xcmpQueue: { - /** - * Maximal number of outbound XCMP channels that can have messages queued at the same time. - * - * If this is reached, then no further messages can be sent to channels that do not yet - * have a message queued. This should be set to the expected maximum of outbound channels - * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, - * since otherwise the congestion control protocol will not work as intended and messages - * may be dropped. This value increases the PoV and should therefore not be picked too - * high. Governance needs to pay attention to not open more channels than this value. - **/ - maxActiveOutboundChannels: u32 & AugmentedConst; - /** - * The maximum number of inbound XCMP channels that can be suspended simultaneously. - * - * Any further channel suspensions will fail and messages may get dropped without further - * notice. Choosing a high value (1000) is okay; the trade-off that is described in - * [`InboundXcmpSuspended`] still applies at that scale. - **/ - maxInboundSuspended: u32 & AugmentedConst; - /** - * The maximal page size for HRMP message pages. - * - * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case - * benchmarking. The limit for the size of a message is slightly below this, since some - * overhead is incurred for encoding the format. - **/ - maxPageSize: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - } // AugmentedConsts -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/consts"; + +import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; +import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; +import type { Codec } from "@polkadot/types-codec/types"; +import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; +import type { + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight +} from "@polkadot/types/lookup"; + +export type __AugmentedConst = AugmentedConst; + +declare module "@polkadot/api-base/types/consts" { + interface AugmentedConsts { + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fileSystem: { + /** + * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. + **/ + maxBatchConfirmStorageRequests: u32 & AugmentedConst; + /** + * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. + **/ + maxBatchMspRespondStorageRequests: u32 & AugmentedConst; + /** + * Maximum number of SPs (MSP + BSPs) that can store a file. + * + * This is used to limit the number of BSPs storing a file and claiming rewards for it. + * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. + **/ + maxBspsPerStorageRequest: u32 & AugmentedConst; + /** + * Maximum number of multiaddresses for a storage request. + **/ + maxDataServerMultiAddresses: u32 & AugmentedConst; + /** + * Maximum number of expired items (per type) to clean up in a single block. + **/ + maxExpiredItemsInBlock: u32 & AugmentedConst; + /** + * Maximum byte size of a file path. + **/ + maxFilePathSize: u32 & AugmentedConst; + /** + * Maximum number of peer ids for a storage request. + **/ + maxNumberOfPeerIds: u32 & AugmentedConst; + /** + * Maximum byte size of a peer id. + **/ + maxPeerIdSize: u32 & AugmentedConst; + /** + * Maximum number of file deletion requests a user can have pending. + **/ + maxUserPendingDeletionRequests: u32 & AugmentedConst; + /** + * Maximum number of move bucket requests a user can have pending. + **/ + maxUserPendingMoveBucketRequests: u32 & AugmentedConst; + /** + * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. + **/ + minWaitForStopStoring: u32 & AugmentedConst; + /** + * Time-to-live for a move bucket request, after which the request is considered expired. + **/ + moveBucketRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. + **/ + pendingFileDeletionRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a storage request. + **/ + storageRequestTtl: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + parachainSystem: { + /** + * Returns the parachain ID we are running with. + **/ + selfParaId: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + paymentStreams: { + /** + * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. + * This means that, from the balance of the User for which the payment stream is being created, the amount + * `NewStreamDeposit * rate` will be held as a deposit. + * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has + * to be provided by the pallet using the `PaymentStreamsInterface` interface. + **/ + newStreamDeposit: u32 & AugmentedConst; + /** + * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag + * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. + **/ + userWithoutFundsCooldown: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proofsDealer: { + /** + * The minimum unused weight that a block must have to be considered _not_ full. + * + * This is used as part of the criteria for checking if the network is presumably under a spam attack. + * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would + * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. + **/ + blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; + /** + * The period of blocks for which the block fullness is checked. + * + * This is the amount of blocks from the past, for which the block fullness has been checked + * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are + * cleared from storage. + * + * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, + * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting + * their proofs in time. + **/ + blockFullnessPeriod: u32 & AugmentedConst; + /** + * The number of ticks that challenges history is kept for. + * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. + * A "tick" is usually one block, but some blocks may be skipped due to migrations. + **/ + challengeHistoryLength: u32 & AugmentedConst; + /** + * The fee charged for submitting a challenge. + * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are + * exempt from this fee. + **/ + challengesFee: u128 & AugmentedConst; + /** + * The length of the `ChallengesQueue` StorageValue. + * This is to limit the size of the queue, and therefore the number of + * manual challenges that can be made. + **/ + challengesQueueLength: u32 & AugmentedConst; + /** + * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that + * a Provider has to submit a proof, counting from the tick the challenge is emitted for + * that Provider. + * + * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance + * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before + * `n + t`. + **/ + challengeTicksTolerance: u32 & AugmentedConst; + /** + * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). + * This is used to determine when to include the challenges from the `ChallengesQueue` and + * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge + * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` + * extrinsic. + * + * WARNING: This period needs to be equal or larger than the challenge period of the smallest + * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), + * then the checkpoint challenge period needs to be at least 10 ticks. + **/ + checkpointChallengePeriod: u32 & AugmentedConst; + /** + * The maximum number of custom challenges that can be made in a single checkpoint block. + **/ + maxCustomChallengesPerBlock: u32 & AugmentedConst; + /** + * The maximum amount of Providers that can submit a proof in a single block. + * Although this can be seen as an arbitrary limit, if set to the already existing + * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of + * a block, this wouldn't add any additional artificial limit. + **/ + maxSubmittersPerTick: u32 & AugmentedConst; + /** + * The minimum period in which a Provider can be challenged, regardless of their stake. + **/ + minChallengePeriod: u32 & AugmentedConst; + /** + * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, + * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. + * + * If less than this percentage of blocks are not full, the networks is considered to be presumably + * under a spam attack. + * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, + * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` + * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning + * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. + **/ + minNotFullBlocksRatio: Perbill & AugmentedConst; + /** + * The number of random challenges that are generated per block, using the random seed + * generated for that block. + **/ + randomChallengesPerBlock: u32 & AugmentedConst; + /** + * The ratio to convert staked balance to block period. + * This is used to determine the period in which a Provider should submit a proof, based on + * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. + **/ + stakeToChallengePeriod: u128 & AugmentedConst; + /** + * The target number of ticks for which to store the submitters that submitted valid proofs in them, + * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number + * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. + **/ + targetTicksStorageOfSubmitters: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + providers: { + /** + * The amount that an account has to deposit to create a bucket. + **/ + bucketDeposit: u128 & AugmentedConst; + /** + * Type that represents the byte limit of a bucket name. + **/ + bucketNameLimit: u32 & AugmentedConst; + /** + * The default value of the root of the Merkle Patricia Trie of the runtime + **/ + defaultMerkleRoot: H256 & AugmentedConst; + /** + * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. + **/ + depositPerData: u128 & AugmentedConst; + /** + * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen + **/ + maxBlocksForRandomness: u32 & AugmentedConst; + /** + * The maximum amount of Buckets that a MSP can have. + **/ + maxBuckets: u32 & AugmentedConst; + /** + * The estimated maximum size of an unknown file. + * + * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. + **/ + maxFileSize: u64 & AugmentedConst; + /** + * The maximum amount of multiaddresses that a Storage Provider can have. + **/ + maxMultiAddressAmount: u32 & AugmentedConst; + /** + * The maximum size of a multiaddress. + **/ + maxMultiAddressSize: u32 & AugmentedConst; + /** + * The maximum number of protocols the MSP can support (at least within the runtime). + **/ + maxProtocols: u32 & AugmentedConst; + /** + * The minimum amount of blocks between capacity changes for a SP + **/ + minBlocksBetweenCapacityChanges: u32 & AugmentedConst; + /** + * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. + **/ + slashAmountPerMaxFileSize: u128 & AugmentedConst; + /** + * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. + **/ + spMinCapacity: u64 & AugmentedConst; + /** + * The minimum amount that an account has to deposit to become a storage provider. + **/ + spMinDeposit: u128 & AugmentedConst; + /** + * Starting reputation weight for a newly registered BSP. + **/ + startingReputationWeight: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: FrameSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: SpVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; + /** + * The maximum number of inbound XCMP channels that can be suspended simultaneously. + * + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ + maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/api-augment/src/interfaces/augment-api-errors.ts b/api-augment/src/interfaces/augment-api-errors.ts index 7b5af4ea5..f4c80fa61 100644 --- a/api-augment/src/interfaces/augment-api-errors.ts +++ b/api-augment/src/interfaces/augment-api-errors.ts @@ -1,1203 +1,1203 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/errors"; - -import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; - -export type __AugmentedError = AugmentedError; - -declare module "@polkadot/api-base/types/errors" { - interface AugmentedErrors { - balances: { - /** - * Beneficiary account must pre-exist. - **/ - DeadAccount: AugmentedError; - /** - * The delta cannot be zero. - **/ - DeltaZero: AugmentedError; - /** - * Value too low to create account due to existential deposit. - **/ - ExistentialDeposit: AugmentedError; - /** - * A vesting schedule already exists for this account. - **/ - ExistingVestingSchedule: AugmentedError; - /** - * Transfer/payment would kill account. - **/ - Expendability: AugmentedError; - /** - * Balance too low to send value. - **/ - InsufficientBalance: AugmentedError; - /** - * The issuance cannot be modified since it is already deactivated. - **/ - IssuanceDeactivated: AugmentedError; - /** - * Account liquidity restrictions prevent withdrawal. - **/ - LiquidityRestrictions: AugmentedError; - /** - * Number of freezes exceed `MaxFreezes`. - **/ - TooManyFreezes: AugmentedError; - /** - * Number of holds exceed `VariantCountOf`. - **/ - TooManyHolds: AugmentedError; - /** - * Number of named reserves exceed `MaxReserves`. - **/ - TooManyReserves: AugmentedError; - /** - * Vesting balance too high to send value. - **/ - VestingBalance: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - bucketNfts: { - /** - * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Failed to convert bytes to `BoundedVec` - **/ - ConvertBytesToBoundedVec: AugmentedError; - /** - * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - NoCorrespondingCollection: AugmentedError; - /** - * Account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - collatorSelection: { - /** - * Account is already a candidate. - **/ - AlreadyCandidate: AugmentedError; - /** - * Account is already an Invulnerable. - **/ - AlreadyInvulnerable: AugmentedError; - /** - * New deposit amount would be below the minimum candidacy bond. - **/ - DepositTooLow: AugmentedError; - /** - * The updated deposit amount is equal to the amount already reserved. - **/ - IdenticalDeposit: AugmentedError; - /** - * Could not insert in the candidate list. - **/ - InsertToCandidateListFailed: AugmentedError; - /** - * Deposit amount is too low to take the target's slot in the candidate list. - **/ - InsufficientBond: AugmentedError; - /** - * Cannot lower candidacy bond while occupying a future collator slot in the list. - **/ - InvalidUnreserve: AugmentedError; - /** - * Account has no associated validator ID. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * Account is not a candidate. - **/ - NotCandidate: AugmentedError; - /** - * Account is not an Invulnerable. - **/ - NotInvulnerable: AugmentedError; - /** - * Could not remove from the candidate list. - **/ - RemoveFromCandidateListFailed: AugmentedError; - /** - * The target account to be replaced in the candidate list is not a candidate. - **/ - TargetIsNotCandidate: AugmentedError; - /** - * Leaving would result in too few candidates. - **/ - TooFewEligibleCollators: AugmentedError; - /** - * The pallet has too many candidates. - **/ - TooManyCandidates: AugmentedError; - /** - * There are too many Invulnerables. - **/ - TooManyInvulnerables: AugmentedError; - /** - * Could not update the candidate list. - **/ - UpdateCandidateListFailed: AugmentedError; - /** - * Validator ID is not yet registered. - **/ - ValidatorNotRegistered: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - fileSystem: { - /** - * BSP did not succeed threshold check. - **/ - AboveThreshold: AugmentedError; - /** - * BSP has already confirmed storing the given file. - **/ - BspAlreadyConfirmed: AugmentedError; - /** - * BSP is already a data server for the move bucket request. - **/ - BspAlreadyDataServer: AugmentedError; - /** - * BSP already volunteered to store the given file. - **/ - BspAlreadyVolunteered: AugmentedError; - /** - * Too many registered data servers for the move bucket request. - **/ - BspDataServersExceeded: AugmentedError; - /** - * BSP has not confirmed storing the given file. - **/ - BspNotConfirmed: AugmentedError; - /** - * BSP has not volunteered to store the given file. - **/ - BspNotVolunteered: AugmentedError; - /** - * BSPs required for storage request cannot exceed the maximum allowed. - **/ - BspsRequiredExceedsTarget: AugmentedError; - /** - * Action not allowed while the bucket is being moved. - **/ - BucketIsBeingMoved: AugmentedError; - /** - * Bucket is not private. Call `update_bucket_privacy` to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Bucket does not exist - **/ - BucketNotFound: AugmentedError; - /** - * Divided by 0 - **/ - DividedByZero: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of inclusion. - **/ - ExpectedInclusionProof: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of non-inclusion. - **/ - ExpectedNonInclusionProof: AugmentedError; - /** - * Failed to decode threshold. - **/ - FailedToDecodeThreshold: AugmentedError; - /** - * Failed to encode BSP id as slice. - **/ - FailedToEncodeBsp: AugmentedError; - /** - * Failed to encode fingerprint as slice. - **/ - FailedToEncodeFingerprint: AugmentedError; - /** - * Failed to convert to primitive type. - **/ - FailedTypeConversion: AugmentedError; - /** - * File key already pending deletion. - **/ - FileKeyAlreadyPendingDeletion: AugmentedError; - /** - * File key not found in pending deletion requests. - **/ - FileKeyNotPendingDeletion: AugmentedError; - /** - * The bounded vector that holds file metadata to process it is full but there's still more to process. - **/ - FileMetadataProcessingQueueFull: AugmentedError; - /** - * File size cannot be zero. - **/ - FileSizeCannotBeZero: AugmentedError; - /** - * Failed to get value when just checked it existed. - **/ - ImpossibleFailedToGetValue: AugmentedError; - /** - * Key already exists in mapping when it should not. - **/ - InconsistentStateKeyAlreadyExists: AugmentedError; - /** - * SP does not have enough storage capacity to store the file. - **/ - InsufficientAvailableCapacity: AugmentedError; - /** - * Bucket id and file key pair is invalid. - **/ - InvalidBucketIdFileKeyPair: AugmentedError; - /** - * Metadata does not correspond to expected file key. - **/ - InvalidFileKeyMetadata: AugmentedError; - /** - * Error created in 2024. If you see this, you are well beyond the singularity and should - * probably stop using this pallet. - **/ - MaxBlockNumberReached: AugmentedError; - /** - * Maximum threshold cannot be zero. - **/ - MaximumThresholdCannotBeZero: AugmentedError; - /** - * Max number of user pending deletion requests reached. - **/ - MaxUserPendingDeletionRequestsReached: AugmentedError; - /** - * Minimum amount of blocks between the request opening and being able to confirm it not reached. - **/ - MinWaitForStopStoringNotReached: AugmentedError; - /** - * Move bucket request not found in storage. - **/ - MoveBucketRequestNotFound: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. - **/ - MspAlreadyConfirmed: AugmentedError; - /** - * The MSP is already storing the bucket. - **/ - MspAlreadyStoringBucket: AugmentedError; - /** - * Unauthorized operation, signer is not an MSP of the bucket id. - **/ - MspNotStoringBucket: AugmentedError; - /** - * No global reputation weight set. - **/ - NoGlobalReputationWeightSet: AugmentedError; - /** - * Account is not a BSP. - **/ - NotABsp: AugmentedError; - /** - * Account is not a MSP. - **/ - NotAMsp: AugmentedError; - /** - * Account is not a SP. - **/ - NotASp: AugmentedError; - /** - * Operation failed because the account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Unauthorized operation, signer does not own the file. - **/ - NotFileOwner: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. - **/ - NotSelectedMsp: AugmentedError; - /** - * Pending stop storing request already exists. - **/ - PendingStopStoringRequestAlreadyExists: AugmentedError; - /** - * Pending stop storing request not found. - **/ - PendingStopStoringRequestNotFound: AugmentedError; - /** - * Root of the provider not found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * Replication target cannot be zero. - **/ - ReplicationTargetCannotBeZero: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. - **/ - RequestWithoutMsp: AugmentedError; - /** - * Storage request already registered for the given file. - **/ - StorageRequestAlreadyRegistered: AugmentedError; - /** - * Number of BSPs required for storage request has been reached. - **/ - StorageRequestBspsRequiredFulfilled: AugmentedError; - /** - * Operation not allowed while the storage request exists. - **/ - StorageRequestExists: AugmentedError; - /** - * No slot available found in blocks to insert storage request expiration time. - **/ - StorageRequestExpiredNoSlotAvailable: AugmentedError; - /** - * Not authorized to delete the storage request. - **/ - StorageRequestNotAuthorized: AugmentedError; - /** - * Storage request not registered for the given file. - **/ - StorageRequestNotFound: AugmentedError; - /** - * Operation not allowed while the storage request is not being revoked. - **/ - StorageRequestNotRevoked: AugmentedError; - /** - * Arithmetic error in threshold calculation. - **/ - ThresholdArithmeticError: AugmentedError; - /** - * BSPs assignment threshold cannot be below asymptote. - **/ - ThresholdBelowAsymptote: AugmentedError; - /** - * Tick range to maximum threshold cannot be zero. - **/ - TickRangeToMaximumThresholdCannotBeZero: AugmentedError; - /** - * Too many batch responses to process. - **/ - TooManyBatchResponses: AugmentedError; - /** - * Too many storage request responses. - **/ - TooManyStorageRequestResponses: AugmentedError; - /** - * Number of removed BSPs volunteered from storage request prefix did not match the expected number. - **/ - UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; - /** - * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. - **/ - UserNotInsolvent: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - messageQueue: { - /** - * The message was already processed and cannot be processed again. - **/ - AlreadyProcessed: AugmentedError; - /** - * There is temporarily not enough weight to continue servicing messages. - **/ - InsufficientWeight: AugmentedError; - /** - * The referenced message could not be found. - **/ - NoMessage: AugmentedError; - /** - * Page to be reaped does not exist. - **/ - NoPage: AugmentedError; - /** - * Page is not reapable because it has items remaining to be processed and is not old - * enough. - **/ - NotReapable: AugmentedError; - /** - * The message is queued for future execution. - **/ - Queued: AugmentedError; - /** - * The queue is paused and no message can be executed from it. - * - * This can change at any time and may resolve in the future by re-trying. - **/ - QueuePaused: AugmentedError; - /** - * Another call is in progress and needs to finish before this call can happen. - **/ - RecursiveDisallowed: AugmentedError; - /** - * This message is temporarily unprocessable. - * - * Such errors are expected, but not guaranteed, to resolve themselves eventually through - * retrying. - **/ - TemporarilyUnprocessable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - nfts: { - /** - * The provided Item was already used for claiming. - **/ - AlreadyClaimed: AugmentedError; - /** - * The item ID has already been used for an item. - **/ - AlreadyExists: AugmentedError; - /** - * The approval had a deadline that expired, so the approval isn't valid anymore. - **/ - ApprovalExpired: AugmentedError; - /** - * The provided attribute can't be found. - **/ - AttributeNotFound: AugmentedError; - /** - * The witness data given does not match the current state of the chain. - **/ - BadWitness: AugmentedError; - /** - * The provided bid is too low. - **/ - BidTooLow: AugmentedError; - /** - * Collection ID is already taken. - **/ - CollectionIdInUse: AugmentedError; - /** - * Can't delete non-empty collections. - **/ - CollectionNotEmpty: AugmentedError; - /** - * The deadline has already expired. - **/ - DeadlineExpired: AugmentedError; - /** - * Item's config already exists and should be equal to the provided one. - **/ - InconsistentItemConfig: AugmentedError; - /** - * The provided data is incorrect. - **/ - IncorrectData: AugmentedError; - /** - * The provided metadata might be too long. - **/ - IncorrectMetadata: AugmentedError; - /** - * The item is locked (non-transferable). - **/ - ItemLocked: AugmentedError; - /** - * Items within that collection are non-transferable. - **/ - ItemsNonTransferable: AugmentedError; - /** - * Collection's attributes are locked. - **/ - LockedCollectionAttributes: AugmentedError; - /** - * Collection's metadata is locked. - **/ - LockedCollectionMetadata: AugmentedError; - /** - * Item's attributes are locked. - **/ - LockedItemAttributes: AugmentedError; - /** - * Item's metadata is locked. - **/ - LockedItemMetadata: AugmentedError; - /** - * Can't set more attributes per one call. - **/ - MaxAttributesLimitReached: AugmentedError; - /** - * The max supply is locked and can't be changed. - **/ - MaxSupplyLocked: AugmentedError; - /** - * All items have been minted. - **/ - MaxSupplyReached: AugmentedError; - /** - * The provided max supply is less than the number of items a collection already has. - **/ - MaxSupplyTooSmall: AugmentedError; - /** - * The given item has no metadata set. - **/ - MetadataNotFound: AugmentedError; - /** - * The method is disabled by system settings. - **/ - MethodDisabled: AugmentedError; - /** - * Mint has already ended. - **/ - MintEnded: AugmentedError; - /** - * Mint has not started yet. - **/ - MintNotStarted: AugmentedError; - /** - * Config for a collection or an item can't be found. - **/ - NoConfig: AugmentedError; - /** - * The signing account has no permission to do the operation. - **/ - NoPermission: AugmentedError; - /** - * The provided account is not a delegate. - **/ - NotDelegate: AugmentedError; - /** - * Item is not for sale. - **/ - NotForSale: AugmentedError; - /** - * The item has reached its approval limit. - **/ - ReachedApprovalLimit: AugmentedError; - /** - * Some roles were not cleared. - **/ - RolesNotCleared: AugmentedError; - /** - * The named owner has not signed ownership acceptance of the collection. - **/ - Unaccepted: AugmentedError; - /** - * No approval exists that would allow the transfer. - **/ - Unapproved: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownCollection: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownItem: AugmentedError; - /** - * Swap doesn't exist. - **/ - UnknownSwap: AugmentedError; - /** - * The witness data should be provided. - **/ - WitnessRequired: AugmentedError; - /** - * The delegate turned out to be different to what was expected. - **/ - WrongDelegate: AugmentedError; - /** - * The duration provided should be less than or equal to `MaxDeadlineDuration`. - **/ - WrongDuration: AugmentedError; - /** - * The provided namespace isn't supported in this call. - **/ - WrongNamespace: AugmentedError; - /** - * The extrinsic was sent by the wrong origin. - **/ - WrongOrigin: AugmentedError; - /** - * The owner turned out to be different to what was expected. - **/ - WrongOwner: AugmentedError; - /** - * The provided setting can't be set. - **/ - WrongSetting: AugmentedError; - /** - * The provided signature is incorrect. - **/ - WrongSignature: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - parachainSystem: { - /** - * The inherent which supplies the host configuration did not run this block. - **/ - HostConfigurationNotAvailable: AugmentedError; - /** - * No code upgrade has been authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * No validation function upgrade is currently scheduled. - **/ - NotScheduled: AugmentedError; - /** - * Attempt to upgrade validation function while existing upgrade pending. - **/ - OverlappingUpgrades: AugmentedError; - /** - * Polkadot currently prohibits this parachain from upgrading its validation function. - **/ - ProhibitedByPolkadot: AugmentedError; - /** - * The supplied validation function has compiled into a blob larger than Polkadot is - * willing to run. - **/ - TooBig: AugmentedError; - /** - * The given code upgrade has not been authorized. - **/ - Unauthorized: AugmentedError; - /** - * The inherent which supplies the validation data did not run this block. - **/ - ValidationDataNotAvailable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - paymentStreams: { - /** - * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) - **/ - AmountProvidedCantBeZero: AugmentedError; - /** - * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when charging a payment stream would result in an overflow of the balance type - **/ - ChargeOverflow: AugmentedError; - /** - * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed - **/ - CooldownPeriodNotPassed: AugmentedError; - /** - * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number - **/ - InvalidLastChargeableBlockNumber: AugmentedError; - /** - * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index - **/ - InvalidLastChargeablePriceIndex: AugmentedError; - /** - * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick - **/ - LastChargedGreaterThanLastChargeable: AugmentedError; - /** - * Error thrown when a user tries to charge a payment stream and it's not a registered Provider - **/ - NotAProvider: AugmentedError; - /** - * Error thrown when a user of this pallet tries to add a payment stream that already exists. - **/ - PaymentStreamAlreadyExists: AugmentedError; - /** - * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when failing to get the payment account of a registered Provider - **/ - ProviderInconsistencyError: AugmentedError; - /** - * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) - **/ - RateCantBeZero: AugmentedError; - /** - * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before - **/ - UpdateAmountToSameAmount: AugmentedError; - /** - * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before - **/ - UpdateRateToSameRate: AugmentedError; - /** - * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt - **/ - UserNotFlaggedAsWithoutFunds: AugmentedError; - /** - * Error thrown when trying to operate when the User has been flagged for not having enough funds. - **/ - UserWithoutFunds: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - polkadotXcm: { - /** - * The given account is not an identifiable sovereign account for any location. - **/ - AccountNotSovereign: AugmentedError; - /** - * The location is invalid since it already has a subscription from us. - **/ - AlreadySubscribed: AugmentedError; - /** - * The given location could not be used (e.g. because it cannot be expressed in the - * desired version of XCM). - **/ - BadLocation: AugmentedError; - /** - * The version of the `Versioned` value used is not able to be interpreted. - **/ - BadVersion: AugmentedError; - /** - * Could not check-out the assets for teleportation to the destination chain. - **/ - CannotCheckOutTeleport: AugmentedError; - /** - * Could not re-anchor the assets to declare the fees for the destination chain. - **/ - CannotReanchor: AugmentedError; - /** - * The destination `Location` provided cannot be inverted. - **/ - DestinationNotInvertible: AugmentedError; - /** - * The assets to be sent are empty. - **/ - Empty: AugmentedError; - /** - * The operation required fees to be paid which the initiator could not meet. - **/ - FeesNotMet: AugmentedError; - /** - * The message execution fails the filter. - **/ - Filtered: AugmentedError; - /** - * The unlock operation cannot succeed because there are still consumers of the lock. - **/ - InUse: AugmentedError; - /** - * Invalid asset, reserve chain could not be determined for it. - **/ - InvalidAssetUnknownReserve: AugmentedError; - /** - * Invalid asset, do not support remote asset reserves with different fees reserves. - **/ - InvalidAssetUnsupportedReserve: AugmentedError; - /** - * Origin is invalid for sending. - **/ - InvalidOrigin: AugmentedError; - /** - * Local XCM execution incomplete. - **/ - LocalExecutionIncomplete: AugmentedError; - /** - * A remote lock with the corresponding data could not be found. - **/ - LockNotFound: AugmentedError; - /** - * The owner does not own (all) of the asset that they wish to do the operation on. - **/ - LowBalance: AugmentedError; - /** - * The referenced subscription could not be found. - **/ - NoSubscription: AugmentedError; - /** - * There was some other issue (i.e. not to do with routing) in sending the message. - * Perhaps a lack of space for buffering the message. - **/ - SendFailure: AugmentedError; - /** - * Too many assets have been attempted for transfer. - **/ - TooManyAssets: AugmentedError; - /** - * The asset owner has too many locks on the asset. - **/ - TooManyLocks: AugmentedError; - /** - * Too many assets with different reserve locations have been attempted for transfer. - **/ - TooManyReserves: AugmentedError; - /** - * The desired destination was unreachable, generally because there is a no way of routing - * to it. - **/ - Unreachable: AugmentedError; - /** - * The message's weight could not be determined. - **/ - UnweighableMessage: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - proofsDealer: { - /** - * `challenge` extrinsic errors - * The ChallengesQueue is full. No more manual challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - ChallengesQueueOverflow: AugmentedError; - /** - * Provider is submitting a proof for a tick in the future. - **/ - ChallengesTickNotReached: AugmentedError; - /** - * Provider is submitting a proof for a tick too late, i.e. that the challenges tick - * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. - **/ - ChallengesTickTooLate: AugmentedError; - /** - * Provider is submitting a proof for a tick before the last tick this pallet registers - * challenges for. - **/ - ChallengesTickTooOld: AugmentedError; - /** - * Checkpoint challenges not found in block. - * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick - * that is not a checkpoint tick. - **/ - CheckpointChallengesNotFound: AugmentedError; - /** - * `submit_proof` extrinsic errors - * There are no key proofs submitted. - **/ - EmptyKeyProofs: AugmentedError; - /** - * Failed to apply delta to the forest proof partial trie. - **/ - FailedToApplyDelta: AugmentedError; - /** - * Failed to update the provider after a key removal mutation. - **/ - FailedToUpdateProviderAfterKeyRemoval: AugmentedError; - /** - * The fee for submitting a challenge could not be charged. - **/ - FeeChargeFailed: AugmentedError; - /** - * The forest proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root, or because the proof is - * not sufficient for the challenges made. - **/ - ForestProofVerificationFailed: AugmentedError; - /** - * There is at least one key proven in the forest proof, that does not have a corresponding - * key proof. - **/ - KeyProofNotFound: AugmentedError; - /** - * A key proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root of that key, or because the proof - * is not sufficient for the challenges made. - **/ - KeyProofVerificationFailed: AugmentedError; - /** - * Provider is submitting a proof but there is no record of the last tick they - * submitted a proof for. - * Providers who are required to submit proofs should always have a record of the - * last tick they submitted a proof for, otherwise it means they haven't started - * providing service for any user yet. - **/ - NoRecordOfLastSubmittedProof: AugmentedError; - /** - * General errors - * The proof submitter is not a registered Provider. - **/ - NotProvider: AugmentedError; - /** - * The PriorityChallengesQueue is full. No more priority challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - PriorityChallengesQueueOverflow: AugmentedError; - /** - * The root for the Provider could not be found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * The provider stake could not be found. - **/ - ProviderStakeNotFound: AugmentedError; - /** - * The seed for the tick could not be found. - * This should not be possible for a tick within the `ChallengeHistoryLength` range, as - * seeds are generated for all ticks, and stored within this range. - **/ - SeedNotFound: AugmentedError; - /** - * The staked balance of the Provider could not be converted to `u128`. - * This should not be possible, as the `Balance` type should be an unsigned integer type. - **/ - StakeCouldNotBeConverted: AugmentedError; - /** - * The limit of Providers that can submit a proof in a single tick has been reached. - **/ - TooManyValidProofSubmitters: AugmentedError; - /** - * Provider is submitting a proof when they have a zero root. - * Providers with zero roots are not providing any service, so they should not be - * submitting proofs. - **/ - ZeroRoot: AugmentedError; - /** - * Provider is submitting a proof but their stake is zero. - **/ - ZeroStake: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - providers: { - /** - * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. - **/ - AlreadyRegistered: AugmentedError; - /** - * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. - **/ - AppendBucketToMspFailed: AugmentedError; - /** - * Error thrown when a bucket ID already exists in storage. - **/ - BucketAlreadyExists: AugmentedError; - /** - * Error thrown when a bucket ID is not found in storage. - **/ - BucketNotFound: AugmentedError; - /** - * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when failing to decode the owner Account ID from the received metadata. - **/ - InvalidEncodedAccountId: AugmentedError; - /** - * Error thrown when failing to decode the metadata from a received trie value that was removed. - **/ - InvalidEncodedFileMetadata: AugmentedError; - /** - * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. - **/ - InvalidMultiAddress: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). - **/ - NewCapacityCantBeZero: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to the same value it already has. - **/ - NewCapacityEqualsCurrentCapacity: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to less than its used storage. - **/ - NewCapacityLessThanUsedStorage: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. - **/ - NewUsedCapacityExceedsStorageCapacity: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a Bucket ID. - **/ - NoBucketId: AugmentedError; - /** - * Error thrown when a user tries to sign up without any multiaddress. - **/ - NoMultiAddress: AugmentedError; - /** - * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. - **/ - NotEnoughBalance: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. - **/ - NotEnoughTimePassed: AugmentedError; - /** - * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. - **/ - NotRegistered: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a User ID. - **/ - NoUserId: AugmentedError; - /** - * Error thrown when trying to update a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when an attempt was made to slash an unslashable Storage Provider. - **/ - ProviderNotSlashable: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. - **/ - RandomnessNotValidYet: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up that was not requested previously. - **/ - SignUpNotRequested: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. - **/ - SignUpRequestExpired: AugmentedError; - /** - * Error thrown when a user tries to request to sign up when it already has a sign up request pending. - **/ - SignUpRequestPending: AugmentedError; - /** - * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). - **/ - SpRegisteredButDataNotFound: AugmentedError; - /** - * Error thrown when a user tries to sign off as a SP but still has used storage. - **/ - StorageStillInUse: AugmentedError; - /** - * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. - **/ - StorageTooLow: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - session: { - /** - * Registered duplicate key. - **/ - DuplicatedKey: AugmentedError; - /** - * Invalid ownership proof. - **/ - InvalidProof: AugmentedError; - /** - * Key setting account is not live, so it's impossible to associate keys. - **/ - NoAccount: AugmentedError; - /** - * No associated validator ID for account. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * No keys are associated with this account. - **/ - NoKeys: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - sudo: { - /** - * Sender must be the Sudo account. - **/ - RequireSudo: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - system: { - /** - * The origin filter prevent the call to be dispatched. - **/ - CallFiltered: AugmentedError; - /** - * Failed to extract the runtime version from the new runtime. - * - * Either calling `Core_version` or decoding `RuntimeVersion` failed. - **/ - FailedToExtractRuntimeVersion: AugmentedError; - /** - * The name of specification does not match between the current runtime - * and the new runtime. - **/ - InvalidSpecName: AugmentedError; - /** - * A multi-block migration is ongoing and prevents the current code from being replaced. - **/ - MultiBlockMigrationsOngoing: AugmentedError; - /** - * Suicide called when the account has non-default composite data. - **/ - NonDefaultComposite: AugmentedError; - /** - * There is a non-zero reference count preventing the account from being purged. - **/ - NonZeroRefCount: AugmentedError; - /** - * No upgrade authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * The specification version is not allowed to decrease between the current runtime - * and the new runtime. - **/ - SpecVersionNeedsToIncrease: AugmentedError; - /** - * The submitted code is not authorized. - **/ - Unauthorized: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - xcmpQueue: { - /** - * The execution is already resumed. - **/ - AlreadyResumed: AugmentedError; - /** - * The execution is already suspended. - **/ - AlreadySuspended: AugmentedError; - /** - * Setting the queue config failed since one of its values was invalid. - **/ - BadQueueConfig: AugmentedError; - /** - * The message is too big. - **/ - TooBig: AugmentedError; - /** - * There are too many active outbound channels. - **/ - TooManyActiveOutboundChannels: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - } // AugmentedErrors -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/errors"; + +import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; + +export type __AugmentedError = AugmentedError; + +declare module "@polkadot/api-base/types/errors" { + interface AugmentedErrors { + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bucketNfts: { + /** + * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Failed to convert bytes to `BoundedVec` + **/ + ConvertBytesToBoundedVec: AugmentedError; + /** + * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + NoCorrespondingCollection: AugmentedError; + /** + * Account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + collatorSelection: { + /** + * Account is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * Account is already an Invulnerable. + **/ + AlreadyInvulnerable: AugmentedError; + /** + * New deposit amount would be below the minimum candidacy bond. + **/ + DepositTooLow: AugmentedError; + /** + * The updated deposit amount is equal to the amount already reserved. + **/ + IdenticalDeposit: AugmentedError; + /** + * Could not insert in the candidate list. + **/ + InsertToCandidateListFailed: AugmentedError; + /** + * Deposit amount is too low to take the target's slot in the candidate list. + **/ + InsufficientBond: AugmentedError; + /** + * Cannot lower candidacy bond while occupying a future collator slot in the list. + **/ + InvalidUnreserve: AugmentedError; + /** + * Account has no associated validator ID. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * Account is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * Account is not an Invulnerable. + **/ + NotInvulnerable: AugmentedError; + /** + * Could not remove from the candidate list. + **/ + RemoveFromCandidateListFailed: AugmentedError; + /** + * The target account to be replaced in the candidate list is not a candidate. + **/ + TargetIsNotCandidate: AugmentedError; + /** + * Leaving would result in too few candidates. + **/ + TooFewEligibleCollators: AugmentedError; + /** + * The pallet has too many candidates. + **/ + TooManyCandidates: AugmentedError; + /** + * There are too many Invulnerables. + **/ + TooManyInvulnerables: AugmentedError; + /** + * Could not update the candidate list. + **/ + UpdateCandidateListFailed: AugmentedError; + /** + * Validator ID is not yet registered. + **/ + ValidatorNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fileSystem: { + /** + * BSP did not succeed threshold check. + **/ + AboveThreshold: AugmentedError; + /** + * BSP has already confirmed storing the given file. + **/ + BspAlreadyConfirmed: AugmentedError; + /** + * BSP is already a data server for the move bucket request. + **/ + BspAlreadyDataServer: AugmentedError; + /** + * BSP already volunteered to store the given file. + **/ + BspAlreadyVolunteered: AugmentedError; + /** + * Too many registered data servers for the move bucket request. + **/ + BspDataServersExceeded: AugmentedError; + /** + * BSP has not confirmed storing the given file. + **/ + BspNotConfirmed: AugmentedError; + /** + * BSP has not volunteered to store the given file. + **/ + BspNotVolunteered: AugmentedError; + /** + * BSPs required for storage request cannot exceed the maximum allowed. + **/ + BspsRequiredExceedsTarget: AugmentedError; + /** + * Action not allowed while the bucket is being moved. + **/ + BucketIsBeingMoved: AugmentedError; + /** + * Bucket is not private. Call `update_bucket_privacy` to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Bucket does not exist + **/ + BucketNotFound: AugmentedError; + /** + * Divided by 0 + **/ + DividedByZero: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of inclusion. + **/ + ExpectedInclusionProof: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of non-inclusion. + **/ + ExpectedNonInclusionProof: AugmentedError; + /** + * Failed to decode threshold. + **/ + FailedToDecodeThreshold: AugmentedError; + /** + * Failed to encode BSP id as slice. + **/ + FailedToEncodeBsp: AugmentedError; + /** + * Failed to encode fingerprint as slice. + **/ + FailedToEncodeFingerprint: AugmentedError; + /** + * Failed to convert to primitive type. + **/ + FailedTypeConversion: AugmentedError; + /** + * File key already pending deletion. + **/ + FileKeyAlreadyPendingDeletion: AugmentedError; + /** + * File key not found in pending deletion requests. + **/ + FileKeyNotPendingDeletion: AugmentedError; + /** + * The bounded vector that holds file metadata to process it is full but there's still more to process. + **/ + FileMetadataProcessingQueueFull: AugmentedError; + /** + * File size cannot be zero. + **/ + FileSizeCannotBeZero: AugmentedError; + /** + * Failed to get value when just checked it existed. + **/ + ImpossibleFailedToGetValue: AugmentedError; + /** + * Key already exists in mapping when it should not. + **/ + InconsistentStateKeyAlreadyExists: AugmentedError; + /** + * SP does not have enough storage capacity to store the file. + **/ + InsufficientAvailableCapacity: AugmentedError; + /** + * Bucket id and file key pair is invalid. + **/ + InvalidBucketIdFileKeyPair: AugmentedError; + /** + * Metadata does not correspond to expected file key. + **/ + InvalidFileKeyMetadata: AugmentedError; + /** + * Error created in 2024. If you see this, you are well beyond the singularity and should + * probably stop using this pallet. + **/ + MaxBlockNumberReached: AugmentedError; + /** + * Maximum threshold cannot be zero. + **/ + MaximumThresholdCannotBeZero: AugmentedError; + /** + * Max number of user pending deletion requests reached. + **/ + MaxUserPendingDeletionRequestsReached: AugmentedError; + /** + * Minimum amount of blocks between the request opening and being able to confirm it not reached. + **/ + MinWaitForStopStoringNotReached: AugmentedError; + /** + * Move bucket request not found in storage. + **/ + MoveBucketRequestNotFound: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. + **/ + MspAlreadyConfirmed: AugmentedError; + /** + * The MSP is already storing the bucket. + **/ + MspAlreadyStoringBucket: AugmentedError; + /** + * Unauthorized operation, signer is not an MSP of the bucket id. + **/ + MspNotStoringBucket: AugmentedError; + /** + * No global reputation weight set. + **/ + NoGlobalReputationWeightSet: AugmentedError; + /** + * Account is not a BSP. + **/ + NotABsp: AugmentedError; + /** + * Account is not a MSP. + **/ + NotAMsp: AugmentedError; + /** + * Account is not a SP. + **/ + NotASp: AugmentedError; + /** + * Operation failed because the account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Unauthorized operation, signer does not own the file. + **/ + NotFileOwner: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. + **/ + NotSelectedMsp: AugmentedError; + /** + * Pending stop storing request already exists. + **/ + PendingStopStoringRequestAlreadyExists: AugmentedError; + /** + * Pending stop storing request not found. + **/ + PendingStopStoringRequestNotFound: AugmentedError; + /** + * Root of the provider not found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * Replication target cannot be zero. + **/ + ReplicationTargetCannotBeZero: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. + **/ + RequestWithoutMsp: AugmentedError; + /** + * Storage request already registered for the given file. + **/ + StorageRequestAlreadyRegistered: AugmentedError; + /** + * Number of BSPs required for storage request has been reached. + **/ + StorageRequestBspsRequiredFulfilled: AugmentedError; + /** + * Operation not allowed while the storage request exists. + **/ + StorageRequestExists: AugmentedError; + /** + * No slot available found in blocks to insert storage request expiration time. + **/ + StorageRequestExpiredNoSlotAvailable: AugmentedError; + /** + * Not authorized to delete the storage request. + **/ + StorageRequestNotAuthorized: AugmentedError; + /** + * Storage request not registered for the given file. + **/ + StorageRequestNotFound: AugmentedError; + /** + * Operation not allowed while the storage request is not being revoked. + **/ + StorageRequestNotRevoked: AugmentedError; + /** + * Arithmetic error in threshold calculation. + **/ + ThresholdArithmeticError: AugmentedError; + /** + * BSPs assignment threshold cannot be below asymptote. + **/ + ThresholdBelowAsymptote: AugmentedError; + /** + * Tick range to maximum threshold cannot be zero. + **/ + TickRangeToMaximumThresholdCannotBeZero: AugmentedError; + /** + * Too many batch responses to process. + **/ + TooManyBatchResponses: AugmentedError; + /** + * Too many storage request responses. + **/ + TooManyStorageRequestResponses: AugmentedError; + /** + * Number of removed BSPs volunteered from storage request prefix did not match the expected number. + **/ + UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; + /** + * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. + **/ + UserNotInsolvent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parachainSystem: { + /** + * The inherent which supplies the host configuration did not run this block. + **/ + HostConfigurationNotAvailable: AugmentedError; + /** + * No code upgrade has been authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * No validation function upgrade is currently scheduled. + **/ + NotScheduled: AugmentedError; + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ + OverlappingUpgrades: AugmentedError; + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ + ProhibitedByPolkadot: AugmentedError; + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ + TooBig: AugmentedError; + /** + * The given code upgrade has not been authorized. + **/ + Unauthorized: AugmentedError; + /** + * The inherent which supplies the validation data did not run this block. + **/ + ValidationDataNotAvailable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paymentStreams: { + /** + * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) + **/ + AmountProvidedCantBeZero: AugmentedError; + /** + * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when charging a payment stream would result in an overflow of the balance type + **/ + ChargeOverflow: AugmentedError; + /** + * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed + **/ + CooldownPeriodNotPassed: AugmentedError; + /** + * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number + **/ + InvalidLastChargeableBlockNumber: AugmentedError; + /** + * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index + **/ + InvalidLastChargeablePriceIndex: AugmentedError; + /** + * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick + **/ + LastChargedGreaterThanLastChargeable: AugmentedError; + /** + * Error thrown when a user tries to charge a payment stream and it's not a registered Provider + **/ + NotAProvider: AugmentedError; + /** + * Error thrown when a user of this pallet tries to add a payment stream that already exists. + **/ + PaymentStreamAlreadyExists: AugmentedError; + /** + * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when failing to get the payment account of a registered Provider + **/ + ProviderInconsistencyError: AugmentedError; + /** + * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) + **/ + RateCantBeZero: AugmentedError; + /** + * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before + **/ + UpdateAmountToSameAmount: AugmentedError; + /** + * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before + **/ + UpdateRateToSameRate: AugmentedError; + /** + * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt + **/ + UserNotFlaggedAsWithoutFunds: AugmentedError; + /** + * Error thrown when trying to operate when the User has been flagged for not having enough funds. + **/ + UserWithoutFunds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + polkadotXcm: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proofsDealer: { + /** + * `challenge` extrinsic errors + * The ChallengesQueue is full. No more manual challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + ChallengesQueueOverflow: AugmentedError; + /** + * Provider is submitting a proof for a tick in the future. + **/ + ChallengesTickNotReached: AugmentedError; + /** + * Provider is submitting a proof for a tick too late, i.e. that the challenges tick + * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. + **/ + ChallengesTickTooLate: AugmentedError; + /** + * Provider is submitting a proof for a tick before the last tick this pallet registers + * challenges for. + **/ + ChallengesTickTooOld: AugmentedError; + /** + * Checkpoint challenges not found in block. + * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick + * that is not a checkpoint tick. + **/ + CheckpointChallengesNotFound: AugmentedError; + /** + * `submit_proof` extrinsic errors + * There are no key proofs submitted. + **/ + EmptyKeyProofs: AugmentedError; + /** + * Failed to apply delta to the forest proof partial trie. + **/ + FailedToApplyDelta: AugmentedError; + /** + * Failed to update the provider after a key removal mutation. + **/ + FailedToUpdateProviderAfterKeyRemoval: AugmentedError; + /** + * The fee for submitting a challenge could not be charged. + **/ + FeeChargeFailed: AugmentedError; + /** + * The forest proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root, or because the proof is + * not sufficient for the challenges made. + **/ + ForestProofVerificationFailed: AugmentedError; + /** + * There is at least one key proven in the forest proof, that does not have a corresponding + * key proof. + **/ + KeyProofNotFound: AugmentedError; + /** + * A key proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root of that key, or because the proof + * is not sufficient for the challenges made. + **/ + KeyProofVerificationFailed: AugmentedError; + /** + * Provider is submitting a proof but there is no record of the last tick they + * submitted a proof for. + * Providers who are required to submit proofs should always have a record of the + * last tick they submitted a proof for, otherwise it means they haven't started + * providing service for any user yet. + **/ + NoRecordOfLastSubmittedProof: AugmentedError; + /** + * General errors + * The proof submitter is not a registered Provider. + **/ + NotProvider: AugmentedError; + /** + * The PriorityChallengesQueue is full. No more priority challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + PriorityChallengesQueueOverflow: AugmentedError; + /** + * The root for the Provider could not be found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * The provider stake could not be found. + **/ + ProviderStakeNotFound: AugmentedError; + /** + * The seed for the tick could not be found. + * This should not be possible for a tick within the `ChallengeHistoryLength` range, as + * seeds are generated for all ticks, and stored within this range. + **/ + SeedNotFound: AugmentedError; + /** + * The staked balance of the Provider could not be converted to `u128`. + * This should not be possible, as the `Balance` type should be an unsigned integer type. + **/ + StakeCouldNotBeConverted: AugmentedError; + /** + * The limit of Providers that can submit a proof in a single tick has been reached. + **/ + TooManyValidProofSubmitters: AugmentedError; + /** + * Provider is submitting a proof when they have a zero root. + * Providers with zero roots are not providing any service, so they should not be + * submitting proofs. + **/ + ZeroRoot: AugmentedError; + /** + * Provider is submitting a proof but their stake is zero. + **/ + ZeroStake: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + providers: { + /** + * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. + **/ + AlreadyRegistered: AugmentedError; + /** + * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. + **/ + AppendBucketToMspFailed: AugmentedError; + /** + * Error thrown when a bucket ID already exists in storage. + **/ + BucketAlreadyExists: AugmentedError; + /** + * Error thrown when a bucket ID is not found in storage. + **/ + BucketNotFound: AugmentedError; + /** + * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when failing to decode the owner Account ID from the received metadata. + **/ + InvalidEncodedAccountId: AugmentedError; + /** + * Error thrown when failing to decode the metadata from a received trie value that was removed. + **/ + InvalidEncodedFileMetadata: AugmentedError; + /** + * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. + **/ + InvalidMultiAddress: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). + **/ + NewCapacityCantBeZero: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to the same value it already has. + **/ + NewCapacityEqualsCurrentCapacity: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to less than its used storage. + **/ + NewCapacityLessThanUsedStorage: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. + **/ + NewUsedCapacityExceedsStorageCapacity: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a Bucket ID. + **/ + NoBucketId: AugmentedError; + /** + * Error thrown when a user tries to sign up without any multiaddress. + **/ + NoMultiAddress: AugmentedError; + /** + * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. + **/ + NotEnoughBalance: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. + **/ + NotEnoughTimePassed: AugmentedError; + /** + * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. + **/ + NotRegistered: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a User ID. + **/ + NoUserId: AugmentedError; + /** + * Error thrown when trying to update a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when an attempt was made to slash an unslashable Storage Provider. + **/ + ProviderNotSlashable: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. + **/ + RandomnessNotValidYet: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up that was not requested previously. + **/ + SignUpNotRequested: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. + **/ + SignUpRequestExpired: AugmentedError; + /** + * Error thrown when a user tries to request to sign up when it already has a sign up request pending. + **/ + SignUpRequestPending: AugmentedError; + /** + * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). + **/ + SpRegisteredButDataNotFound: AugmentedError; + /** + * Error thrown when a user tries to sign off as a SP but still has used storage. + **/ + StorageStillInUse: AugmentedError; + /** + * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. + **/ + StorageTooLow: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + sudo: { + /** + * Sender must be the Sudo account. + **/ + RequireSudo: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmpQueue: { + /** + * The execution is already resumed. + **/ + AlreadyResumed: AugmentedError; + /** + * The execution is already suspended. + **/ + AlreadySuspended: AugmentedError; + /** + * Setting the queue config failed since one of its values was invalid. + **/ + BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/api-augment/src/interfaces/augment-api-events.ts b/api-augment/src/interfaces/augment-api-events.ts index f1dcba983..87e2dca74 100644 --- a/api-augment/src/interfaces/augment-api-events.ts +++ b/api-augment/src/interfaces/augment-api-events.ts @@ -1,1824 +1,1824 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/events"; - -import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; -import type { - Bytes, - Null, - Option, - Result, - U8aFixed, - Vec, - bool, - u128, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - FrameSupportDispatchDispatchInfo, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemMspRespondStorageRequestsResult, - PalletNftsAttributeNamespace, - PalletNftsPalletAttributes, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - ShpTraitsTrieRemoveMutation, - SpRuntimeDispatchError, - SpWeightsWeightV2Weight, - StagingXcmV4AssetAssets, - StagingXcmV4Location, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - XcmV3TraitsError, - XcmVersionedAssets, - XcmVersionedLocation -} from "@polkadot/types/lookup"; - -export type __AugmentedEvent = AugmentedEvent; - -declare module "@polkadot/api-base/types/events" { - interface AugmentedEvents { - balances: { - /** - * A balance was set by root. - **/ - BalanceSet: AugmentedEvent< - ApiType, - [who: AccountId32, free: u128], - { who: AccountId32; free: u128 } - >; - /** - * Some amount was burned from an account. - **/ - Burned: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was deposited (e.g. for transaction fees). - **/ - Deposit: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - **/ - DustLost: AugmentedEvent< - ApiType, - [account: AccountId32, amount: u128], - { account: AccountId32; amount: u128 } - >; - /** - * An account was created with some free balance. - **/ - Endowed: AugmentedEvent< - ApiType, - [account: AccountId32, freeBalance: u128], - { account: AccountId32; freeBalance: u128 } - >; - /** - * Some balance was frozen. - **/ - Frozen: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - **/ - Issued: AugmentedEvent; - /** - * Some balance was locked. - **/ - Locked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was minted into an account. - **/ - Minted: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - **/ - Rescinded: AugmentedEvent; - /** - * Some balance was reserved (moved from free to reserved). - **/ - Reserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - **/ - ReserveRepatriated: AugmentedEvent< - ApiType, - [ - from: AccountId32, - to: AccountId32, - amount: u128, - destinationStatus: FrameSupportTokensMiscBalanceStatus - ], - { - from: AccountId32; - to: AccountId32; - amount: u128; - destinationStatus: FrameSupportTokensMiscBalanceStatus; - } - >; - /** - * Some amount was restored into an account. - **/ - Restored: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was removed from the account (e.g. for misbehavior). - **/ - Slashed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was suspended from an account (it can be restored later). - **/ - Suspended: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some balance was thawed. - **/ - Thawed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * The `TotalIssuance` was forcefully changed. - **/ - TotalIssuanceForced: AugmentedEvent< - ApiType, - [old: u128, new_: u128], - { old: u128; new_: u128 } - >; - /** - * Transfer succeeded. - **/ - Transfer: AugmentedEvent< - ApiType, - [from: AccountId32, to: AccountId32, amount: u128], - { from: AccountId32; to: AccountId32; amount: u128 } - >; - /** - * Some balance was unlocked. - **/ - Unlocked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some balance was unreserved (moved from reserved to free). - **/ - Unreserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * An account was upgraded. - **/ - Upgraded: AugmentedEvent; - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - **/ - Withdraw: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - bucketNfts: { - /** - * Notifies that access to a bucket has been shared with another account. - **/ - AccessShared: AugmentedEvent< - ApiType, - [issuer: AccountId32, recipient: AccountId32], - { issuer: AccountId32; recipient: AccountId32 } - >; - /** - * Notifies that an item has been burned. - **/ - ItemBurned: AugmentedEvent< - ApiType, - [account: AccountId32, bucket: H256, itemId: u32], - { account: AccountId32; bucket: H256; itemId: u32 } - >; - /** - * Notifies that the read access for an item has been updated. - **/ - ItemReadAccessUpdated: AugmentedEvent< - ApiType, - [admin: AccountId32, bucket: H256, itemId: u32], - { admin: AccountId32; bucket: H256; itemId: u32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - collatorSelection: { - /** - * A new candidate joined. - **/ - CandidateAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { accountId: AccountId32; deposit: u128 } - >; - /** - * Bond of a candidate updated. - **/ - CandidateBondUpdated: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { accountId: AccountId32; deposit: u128 } - >; - /** - * A candidate was removed. - **/ - CandidateRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * An account was replaced in the candidate list by another one. - **/ - CandidateReplaced: AugmentedEvent< - ApiType, - [old: AccountId32, new_: AccountId32, deposit: u128], - { old: AccountId32; new_: AccountId32; deposit: u128 } - >; - /** - * An account was unable to be added to the Invulnerables because they did not have keys - * registered. Other Invulnerables may have been set. - **/ - InvalidInvulnerableSkipped: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * A new Invulnerable was added. - **/ - InvulnerableAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * An Invulnerable was removed. - **/ - InvulnerableRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * The candidacy bond was set. - **/ - NewCandidacyBond: AugmentedEvent; - /** - * The number of desired candidates was set. - **/ - NewDesiredCandidates: AugmentedEvent< - ApiType, - [desiredCandidates: u32], - { desiredCandidates: u32 } - >; - /** - * New Invulnerables were set. - **/ - NewInvulnerables: AugmentedEvent< - ApiType, - [invulnerables: Vec], - { invulnerables: Vec } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - cumulusXcm: { - /** - * Downward message executed with the given outcome. - * \[ id, outcome \] - **/ - ExecutedDownward: AugmentedEvent; - /** - * Downward message is invalid XCM. - * \[ id \] - **/ - InvalidFormat: AugmentedEvent; - /** - * Downward message is unsupported version of XCM. - * \[ id \] - **/ - UnsupportedVersion: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - fileSystem: { - /** - * Notifies that a BSP has been accepted to store a given file. - **/ - AcceptedBspVolunteer: AugmentedEvent< - ApiType, - [ - bspId: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - multiaddresses: Vec, - owner: AccountId32, - size_: u64 - ], - { - bspId: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - multiaddresses: Vec; - owner: AccountId32; - size_: u64; - } - >; - /** - * Notifies that a BSP's challenge cycle has been initialised, adding the first file - * key(s) to the BSP's Merkle Patricia Forest. - **/ - BspChallengeCycleInitialised: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { who: AccountId32; bspId: H256 } - >; - /** - * Notifies that a BSP confirmed storing a file(s). - **/ - BspConfirmedStoring: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], - { who: AccountId32; bspId: H256; fileKeys: Vec; newRoot: H256 } - >; - /** - * Notifies that a BSP has stopped storing a file. - **/ - BspConfirmStoppedStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, newRoot: H256], - { bspId: H256; fileKey: H256; newRoot: H256 } - >; - /** - * Notifies that a BSP has opened a request to stop storing a file. - **/ - BspRequestedToStopStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], - { bspId: H256; fileKey: H256; owner: AccountId32; location: Bytes } - >; - /** - * Notifies that a bucket's privacy has been updated. - **/ - BucketPrivacyUpdated: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], - { who: AccountId32; bucketId: H256; collectionId: Option; private: bool } - >; - /** - * Notifies that a data server has been registered for a move bucket request. - **/ - DataServerRegisteredForMoveBucket: AugmentedEvent< - ApiType, - [bspId: H256, bucketId: H256], - { bspId: H256; bucketId: H256 } - >; - /** - * Notifies that a priority challenge failed to be queued for pending file deletion. - **/ - FailedToQueuePriorityChallenge: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256], - { user: AccountId32; fileKey: H256 } - >; - /** - * Notifies that a file will be deleted. - **/ - FileDeletionRequest: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], - { user: AccountId32; fileKey: H256; bucketId: H256; mspId: H256; proofOfInclusion: bool } - >; - /** - * Notifies that a bucket has been moved to a new MSP. - **/ - MoveBucketAccepted: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { bucketId: H256; mspId: H256 } - >; - /** - * Notifies that a bucket move request has been rejected by the MSP. - **/ - MoveBucketRejected: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { bucketId: H256; mspId: H256 } - >; - /** - * Notifies that a bucket is being moved to a new MSP. - **/ - MoveBucketRequested: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, newMspId: H256], - { who: AccountId32; bucketId: H256; newMspId: H256 } - >; - /** - * Notifies that a move bucket request has expired. - **/ - MoveBucketRequestExpired: AugmentedEvent< - ApiType, - [mspId: H256, bucketId: H256], - { mspId: H256; bucketId: H256 } - >; - /** - * Notifies that a MSP has responded to storage request(s). - **/ - MspRespondedToStorageRequests: AugmentedEvent< - ApiType, - [results: PalletFileSystemMspRespondStorageRequestsResult], - { results: PalletFileSystemMspRespondStorageRequestsResult } - >; - /** - * Notifies that a new bucket has been created. - **/ - NewBucket: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - bucketId: H256, - name: Bytes, - collectionId: Option, - private: bool - ], - { - who: AccountId32; - mspId: H256; - bucketId: H256; - name: Bytes; - collectionId: Option; - private: bool; - } - >; - /** - * Notifies that a new collection has been created and associated with a bucket. - **/ - NewCollectionAndAssociation: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: u32], - { who: AccountId32; bucketId: H256; collectionId: u32 } - >; - /** - * Notifies that a new file has been requested to be stored. - **/ - NewStorageRequest: AugmentedEvent< - ApiType, - [ - who: AccountId32, - fileKey: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - size_: u64, - peerIds: Vec - ], - { - who: AccountId32; - fileKey: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - size_: u64; - peerIds: Vec; - } - >; - /** - * Notifies that a file key has been queued for a priority challenge for file deletion. - **/ - PriorityChallengeForFileDeletionQueued: AugmentedEvent< - ApiType, - [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], - { issuer: PalletFileSystemEitherAccountIdOrMspId; fileKey: H256 } - >; - /** - * Notifies that a proof has been submitted for a pending file deletion request. - **/ - ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< - ApiType, - [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], - { mspId: H256; user: AccountId32; fileKey: H256; bucketId: H256; proofOfInclusion: bool } - >; - /** - * Notifies that a SP has stopped storing a file because its owner has become insolvent. - **/ - SpStopStoringInsolventUser: AugmentedEvent< - ApiType, - [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], - { spId: H256; fileKey: H256; owner: AccountId32; location: Bytes; newRoot: H256 } - >; - /** - * Notifies the expiration of a storage request. - **/ - StorageRequestExpired: AugmentedEvent; - /** - * Notifies that a storage request for a file key has been fulfilled. - **/ - StorageRequestFulfilled: AugmentedEvent; - /** - * Notifies that a storage request has been revoked by the user who initiated it. - **/ - StorageRequestRevoked: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - messageQueue: { - /** - * Message placed in overweight queue. - **/ - OverweightEnqueued: AugmentedEvent< - ApiType, - [ - id: U8aFixed, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - pageIndex: u32, - messageIndex: u32 - ], - { - id: U8aFixed; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - pageIndex: u32; - messageIndex: u32; - } - >; - /** - * This page was reaped. - **/ - PageReaped: AugmentedEvent< - ApiType, - [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], - { origin: CumulusPrimitivesCoreAggregateMessageOrigin; index: u32 } - >; - /** - * Message is processed. - **/ - Processed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - weightUsed: SpWeightsWeightV2Weight, - success: bool - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - weightUsed: SpWeightsWeightV2Weight; - success: bool; - } - >; - /** - * Message discarded due to an error in the `MessageProcessor` (usually a format error). - **/ - ProcessingFailed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - error: FrameSupportMessagesProcessMessageError - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - error: FrameSupportMessagesProcessMessageError; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - nfts: { - /** - * All approvals of an item got cancelled. - **/ - AllApprovalsCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { collection: u32; item: u32; owner: AccountId32 } - >; - /** - * An approval for a `delegate` account to transfer the `item` of an item - * `collection` was cancelled by its `owner`. - **/ - ApprovalCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], - { collection: u32; item: u32; owner: AccountId32; delegate: AccountId32 } - >; - /** - * Attribute metadata has been cleared for a `collection` or `item`. - **/ - AttributeCleared: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * New attribute metadata has been set for a `collection` or `item`. - **/ - AttributeSet: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - value: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - value: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * An `item` was destroyed. - **/ - Burned: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { collection: u32; item: u32; owner: AccountId32 } - >; - /** - * A `collection` has had its config changed by the `Force` origin. - **/ - CollectionConfigChanged: AugmentedEvent; - /** - * Some `collection` was locked. - **/ - CollectionLocked: AugmentedEvent; - /** - * Max supply has been set for a collection. - **/ - CollectionMaxSupplySet: AugmentedEvent< - ApiType, - [collection: u32, maxSupply: u32], - { collection: u32; maxSupply: u32 } - >; - /** - * Metadata has been cleared for a `collection`. - **/ - CollectionMetadataCleared: AugmentedEvent; - /** - * New metadata has been set for a `collection`. - **/ - CollectionMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, data: Bytes], - { collection: u32; data: Bytes } - >; - /** - * Mint settings for a collection had changed. - **/ - CollectionMintSettingsUpdated: AugmentedEvent< - ApiType, - [collection: u32], - { collection: u32 } - >; - /** - * A `collection` was created. - **/ - Created: AugmentedEvent< - ApiType, - [collection: u32, creator: AccountId32, owner: AccountId32], - { collection: u32; creator: AccountId32; owner: AccountId32 } - >; - /** - * A `collection` was destroyed. - **/ - Destroyed: AugmentedEvent; - /** - * A `collection` was force-created. - **/ - ForceCreated: AugmentedEvent< - ApiType, - [collection: u32, owner: AccountId32], - { collection: u32; owner: AccountId32 } - >; - /** - * An `item` was issued. - **/ - Issued: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { collection: u32; item: u32; owner: AccountId32 } - >; - /** - * A new approval to modify item attributes was added. - **/ - ItemAttributesApprovalAdded: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { collection: u32; item: u32; delegate: AccountId32 } - >; - /** - * A new approval to modify item attributes was removed. - **/ - ItemAttributesApprovalRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { collection: u32; item: u32; delegate: AccountId32 } - >; - /** - * An item was bought. - **/ - ItemBought: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], - { collection: u32; item: u32; price: u128; seller: AccountId32; buyer: AccountId32 } - >; - /** - * Metadata has been cleared for an item. - **/ - ItemMetadataCleared: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * New metadata has been set for an item. - **/ - ItemMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, data: Bytes], - { collection: u32; item: u32; data: Bytes } - >; - /** - * The price for the item was removed. - **/ - ItemPriceRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * The price was set for the item. - **/ - ItemPriceSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], - { collection: u32; item: u32; price: u128; whitelistedBuyer: Option } - >; - /** - * `item` metadata or attributes were locked. - **/ - ItemPropertiesLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], - { collection: u32; item: u32; lockMetadata: bool; lockAttributes: bool } - >; - /** - * An `item` became non-transferable. - **/ - ItemTransferLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * An `item` became transferable. - **/ - ItemTransferUnlocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * Event gets emitted when the `NextCollectionId` gets incremented. - **/ - NextCollectionIdIncremented: AugmentedEvent< - ApiType, - [nextId: Option], - { nextId: Option } - >; - /** - * The owner changed. - **/ - OwnerChanged: AugmentedEvent< - ApiType, - [collection: u32, newOwner: AccountId32], - { collection: u32; newOwner: AccountId32 } - >; - /** - * Ownership acceptance has changed for an account. - **/ - OwnershipAcceptanceChanged: AugmentedEvent< - ApiType, - [who: AccountId32, maybeCollection: Option], - { who: AccountId32; maybeCollection: Option } - >; - /** - * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` - * within that `collection`. - **/ - PalletAttributeSet: AugmentedEvent< - ApiType, - [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], - { collection: u32; item: Option; attribute: PalletNftsPalletAttributes; value: Bytes } - >; - /** - * New attributes have been set for an `item` of the `collection`. - **/ - PreSignedAttributesSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], - { collection: u32; item: u32; namespace: PalletNftsAttributeNamespace } - >; - /** - * The deposit for a set of `item`s within a `collection` has been updated. - **/ - Redeposited: AugmentedEvent< - ApiType, - [collection: u32, successfulItems: Vec], - { collection: u32; successfulItems: Vec } - >; - /** - * The swap was cancelled. - **/ - SwapCancelled: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The swap has been claimed. - **/ - SwapClaimed: AugmentedEvent< - ApiType, - [ - sentCollection: u32, - sentItem: u32, - sentItemOwner: AccountId32, - receivedCollection: u32, - receivedItem: u32, - receivedItemOwner: AccountId32, - price: Option, - deadline: u32 - ], - { - sentCollection: u32; - sentItem: u32; - sentItemOwner: AccountId32; - receivedCollection: u32; - receivedItem: u32; - receivedItemOwner: AccountId32; - price: Option; - deadline: u32; - } - >; - /** - * An `item` swap intent was created. - **/ - SwapCreated: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The management team changed. - **/ - TeamChanged: AugmentedEvent< - ApiType, - [ - collection: u32, - issuer: Option, - admin: Option, - freezer: Option - ], - { - collection: u32; - issuer: Option; - admin: Option; - freezer: Option; - } - >; - /** - * A tip was sent. - **/ - TipSent: AugmentedEvent< - ApiType, - [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], - { collection: u32; item: u32; sender: AccountId32; receiver: AccountId32; amount: u128 } - >; - /** - * An `item` of a `collection` has been approved by the `owner` for transfer by - * a `delegate`. - **/ - TransferApproved: AugmentedEvent< - ApiType, - [ - collection: u32, - item: u32, - owner: AccountId32, - delegate: AccountId32, - deadline: Option - ], - { - collection: u32; - item: u32; - owner: AccountId32; - delegate: AccountId32; - deadline: Option; - } - >; - /** - * An `item` was transferred. - **/ - Transferred: AugmentedEvent< - ApiType, - [collection: u32, item: u32, from: AccountId32, to: AccountId32], - { collection: u32; item: u32; from: AccountId32; to: AccountId32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parachainSystem: { - /** - * Downward messages were processed using the given weight. - **/ - DownwardMessagesProcessed: AugmentedEvent< - ApiType, - [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], - { weightUsed: SpWeightsWeightV2Weight; dmqHead: H256 } - >; - /** - * Some downward messages have been received and will be processed. - **/ - DownwardMessagesReceived: AugmentedEvent; - /** - * An upward message was sent to the relay chain. - **/ - UpwardMessageSent: AugmentedEvent< - ApiType, - [messageHash: Option], - { messageHash: Option } - >; - /** - * The validation function was applied as of the contained relay chain block number. - **/ - ValidationFunctionApplied: AugmentedEvent< - ApiType, - [relayChainBlockNum: u32], - { relayChainBlockNum: u32 } - >; - /** - * The relay-chain aborted the upgrade process. - **/ - ValidationFunctionDiscarded: AugmentedEvent; - /** - * The validation function has been scheduled to apply. - **/ - ValidationFunctionStored: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parameters: { - /** - * A Parameter was set. - * - * Is also emitted when the value was not changed. - **/ - Updated: AugmentedEvent< - ApiType, - [ - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - oldValue: Option, - newValue: Option - ], - { - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - oldValue: Option; - newValue: Option; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - paymentStreams: { - /** - * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream - * and the initial amount provided. - **/ - DynamicRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amountProvided: u64], - { userAccount: AccountId32; providerId: H256; amountProvided: u64 } - >; - /** - * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - DynamicRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { userAccount: AccountId32; providerId: H256 } - >; - /** - * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new amount provided. - **/ - DynamicRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], - { userAccount: AccountId32; providerId: H256; newAmountProvided: u64 } - >; - /** - * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream - * and its initial rate. - **/ - FixedRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, rate: u128], - { userAccount: AccountId32; providerId: H256; rate: u128 } - >; - /** - * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - FixedRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { userAccount: AccountId32; providerId: H256 } - >; - /** - * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new rate of the stream. - **/ - FixedRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newRate: u128], - { userAccount: AccountId32; providerId: H256; newRate: u128 } - >; - /** - * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, - * the tick number of the last chargeable tick and the price index at that tick. - **/ - LastChargeableInfoUpdated: AugmentedEvent< - ApiType, - [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], - { providerId: H256; lastChargeableTick: u32; lastChargeablePriceIndex: u128 } - >; - /** - * Event emitted when a payment is charged. Provides information about the user that was charged, - * the Provider that received the funds, and the amount that was charged. - **/ - PaymentStreamCharged: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amount: u128], - { userAccount: AccountId32; providerId: H256; amount: u128 } - >; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. - **/ - UserPaidDebts: AugmentedEvent; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, - * correctly paid all their outstanding debt and can now contract new services again. - **/ - UserSolvent: AugmentedEvent; - /** - * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. - * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can - * stop providing services to that user. - **/ - UserWithoutFunds: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - polkadotXcm: { - /** - * Some assets have been claimed from an asset trap - **/ - AssetsClaimed: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } - >; - /** - * Some assets have been placed in an asset trap. - **/ - AssetsTrapped: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } - >; - /** - * Execution of an XCM message was attempted. - **/ - Attempted: AugmentedEvent< - ApiType, - [outcome: StagingXcmV4TraitsOutcome], - { outcome: StagingXcmV4TraitsOutcome } - >; - /** - * Fees were paid from a location for an operation (often for using `SendXcm`). - **/ - FeesPaid: AugmentedEvent< - ApiType, - [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], - { paying: StagingXcmV4Location; fees: StagingXcmV4AssetAssets } - >; - /** - * Expected query response has been received but the querier location of the response does - * not match the expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidQuerier: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedQuerier: StagingXcmV4Location, - maybeActualQuerier: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedQuerier: StagingXcmV4Location; - maybeActualQuerier: Option; - } - >; - /** - * Expected query response has been received but the expected querier location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidQuerierVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { origin: StagingXcmV4Location; queryId: u64 } - >; - /** - * Expected query response has been received but the origin location of the response does - * not match that expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidResponder: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedLocation: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedLocation: Option; - } - >; - /** - * Expected query response has been received but the expected origin location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidResponderVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { origin: StagingXcmV4Location; queryId: u64 } - >; - /** - * Query response has been received and query is removed. The registered notification has - * been dispatched and executed successfully. - **/ - Notified: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { queryId: u64; palletIndex: u8; callIndex: u8 } - >; - /** - * Query response has been received and query is removed. The dispatch was unable to be - * decoded into a `Call`; this might be due to dispatch function having a signature which - * is not `(origin, QueryId, Response)`. - **/ - NotifyDecodeFailed: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { queryId: u64; palletIndex: u8; callIndex: u8 } - >; - /** - * Query response has been received and query is removed. There was a general error with - * dispatching the notification call. - **/ - NotifyDispatchError: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { queryId: u64; palletIndex: u8; callIndex: u8 } - >; - /** - * Query response has been received and query is removed. The registered notification - * could not be dispatched because the dispatch weight is greater than the maximum weight - * originally budgeted by this runtime for the query result. - **/ - NotifyOverweight: AugmentedEvent< - ApiType, - [ - queryId: u64, - palletIndex: u8, - callIndex: u8, - actualWeight: SpWeightsWeightV2Weight, - maxBudgetedWeight: SpWeightsWeightV2Weight - ], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - actualWeight: SpWeightsWeightV2Weight; - maxBudgetedWeight: SpWeightsWeightV2Weight; - } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * migrating the location to our new XCM format. - **/ - NotifyTargetMigrationFail: AugmentedEvent< - ApiType, - [location: XcmVersionedLocation, queryId: u64], - { location: XcmVersionedLocation; queryId: u64 } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * sending the notification to it. - **/ - NotifyTargetSendFail: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], - { location: StagingXcmV4Location; queryId: u64; error: XcmV3TraitsError } - >; - /** - * Query response has been received and is ready for taking with `take_response`. There is - * no registered notification call. - **/ - ResponseReady: AugmentedEvent< - ApiType, - [queryId: u64, response: StagingXcmV4Response], - { queryId: u64; response: StagingXcmV4Response } - >; - /** - * Received query response has been read and removed. - **/ - ResponseTaken: AugmentedEvent; - /** - * A XCM message was sent. - **/ - Sent: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - destination: StagingXcmV4Location, - message: StagingXcmV4Xcm, - messageId: U8aFixed - ], - { - origin: StagingXcmV4Location; - destination: StagingXcmV4Location; - message: StagingXcmV4Xcm; - messageId: U8aFixed; - } - >; - /** - * The supported version of a location has been changed. This might be through an - * automatic notification or a manual intervention. - **/ - SupportedVersionChanged: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, version: u32], - { location: StagingXcmV4Location; version: u32 } - >; - /** - * Query response received which does not match a registered query. This may be because a - * matching query was never registered, it may be because it is a duplicate response, or - * because the query timed out. - **/ - UnexpectedResponse: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { origin: StagingXcmV4Location; queryId: u64 } - >; - /** - * An XCM version change notification message has been attempted to be sent. - * - * The cost of sending it (borne by the chain) is included. - **/ - VersionChangeNotified: AugmentedEvent< - ApiType, - [ - destination: StagingXcmV4Location, - result: u32, - cost: StagingXcmV4AssetAssets, - messageId: U8aFixed - ], - { - destination: StagingXcmV4Location; - result: u32; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * A XCM version migration finished. - **/ - VersionMigrationFinished: AugmentedEvent; - /** - * We have requested that a remote chain send us XCM version change notifications. - **/ - VersionNotifyRequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } - >; - /** - * A remote has requested XCM version change notification from us and we have honored it. - * A version information message is sent to them and its cost is included. - **/ - VersionNotifyStarted: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } - >; - /** - * We have requested that a remote chain stops sending us XCM version change - * notifications. - **/ - VersionNotifyUnrequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - proofsDealer: { - /** - * The [`ChallengesTicker`] has been paused or unpaused. - **/ - ChallengesTickerSet: AugmentedEvent; - /** - * A set of mutations has been applied to the Forest. - **/ - MutationsApplied: AugmentedEvent< - ApiType, - [ - provider: H256, - mutations: Vec>, - newRoot: H256 - ], - { - provider: H256; - mutations: Vec>; - newRoot: H256; - } - >; - /** - * A manual challenge was submitted. - **/ - NewChallenge: AugmentedEvent< - ApiType, - [who: AccountId32, keyChallenged: H256], - { who: AccountId32; keyChallenged: H256 } - >; - /** - * A provider's challenge cycle was initialised. - **/ - NewChallengeCycleInitialised: AugmentedEvent< - ApiType, - [ - currentTick: u32, - nextChallengeDeadline: u32, - provider: H256, - maybeProviderAccount: Option - ], - { - currentTick: u32; - nextChallengeDeadline: u32; - provider: H256; - maybeProviderAccount: Option; - } - >; - /** - * A new challenge seed was generated. - **/ - NewChallengeSeed: AugmentedEvent< - ApiType, - [challengesTicker: u32, seed: H256], - { challengesTicker: u32; seed: H256 } - >; - /** - * A new checkpoint challenge was generated. - **/ - NewCheckpointChallenge: AugmentedEvent< - ApiType, - [ - challengesTicker: u32, - challenges: Vec]>> - ], - { - challengesTicker: u32; - challenges: Vec]>>; - } - >; - /** - * No record of the last tick the Provider submitted a proof for. - **/ - NoRecordOfLastSubmittedProof: AugmentedEvent; - /** - * A proof was accepted. - **/ - ProofAccepted: AugmentedEvent< - ApiType, - [provider: H256, proof: PalletProofsDealerProof], - { provider: H256; proof: PalletProofsDealerProof } - >; - /** - * A provider was marked as slashable and their challenge deadline was forcefully pushed. - **/ - SlashableProvider: AugmentedEvent< - ApiType, - [provider: H256, nextChallengeDeadline: u32], - { provider: H256; nextChallengeDeadline: u32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - providers: { - /** - * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about - * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. - **/ - BspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, multiaddresses: Vec, capacity: u64], - { who: AccountId32; multiaddresses: Vec; capacity: u64 } - >; - /** - * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about - * that BSP's account id. - **/ - BspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { who: AccountId32; bspId: H256 } - >; - /** - * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about - * that BSP's account id, the total data it can store according to its stake, and its multiaddress. - **/ - BspSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], - { who: AccountId32; bspId: H256; multiaddresses: Vec; capacity: u64 } - >; - /** - * Event emitted when a SP has changed its capacity successfully. Provides information about - * that SP's account id, its old total data that could store, and the new total data. - **/ - CapacityChanged: AugmentedEvent< - ApiType, - [ - who: AccountId32, - providerId: PalletStorageProvidersStorageProviderId, - oldCapacity: u64, - newCapacity: u64, - nextBlockWhenChangeAllowed: u32 - ], - { - who: AccountId32; - providerId: PalletStorageProvidersStorageProviderId; - oldCapacity: u64; - newCapacity: u64; - nextBlockWhenChangeAllowed: u32; - } - >; - /** - * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about - * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. - **/ - MspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a Main Storage Provider has signed off successfully. Provides information about - * that MSP's account id. - **/ - MspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, mspId: H256], - { who: AccountId32; mspId: H256 } - >; - /** - * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about - * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. - **/ - MspSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - mspId: H256; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a sign up request has been canceled successfully. Provides information about - * the account id of the user that canceled the request. - **/ - SignUpRequestCanceled: AugmentedEvent; - /** - * Event emitted when an SP has been slashed. - **/ - Slashed: AugmentedEvent< - ApiType, - [providerId: H256, amountSlashed: u128], - { providerId: H256; amountSlashed: u128 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - randomness: { - /** - * Event emitted when a new random seed is available from the relay chain - **/ - NewOneEpochAgoRandomnessAvailable: AugmentedEvent< - ApiType, - [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], - { randomnessSeed: H256; fromEpoch: u64; validUntilBlock: u32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - session: { - /** - * New session has happened. Note that the argument is the session index, not the - * block number as the type might suggest. - **/ - NewSession: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - sudo: { - /** - * The sudo key has been updated. - **/ - KeyChanged: AugmentedEvent< - ApiType, - [old: Option, new_: AccountId32], - { old: Option; new_: AccountId32 } - >; - /** - * The key was permanently removed. - **/ - KeyRemoved: AugmentedEvent; - /** - * A sudo call just took place. - **/ - Sudid: AugmentedEvent< - ApiType, - [sudoResult: Result], - { sudoResult: Result } - >; - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - **/ - SudoAsDone: AugmentedEvent< - ApiType, - [sudoResult: Result], - { sudoResult: Result } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - system: { - /** - * `:code` was updated. - **/ - CodeUpdated: AugmentedEvent; - /** - * An extrinsic failed. - **/ - ExtrinsicFailed: AugmentedEvent< - ApiType, - [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], - { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSupportDispatchDispatchInfo } - >; - /** - * An extrinsic completed successfully. - **/ - ExtrinsicSuccess: AugmentedEvent< - ApiType, - [dispatchInfo: FrameSupportDispatchDispatchInfo], - { dispatchInfo: FrameSupportDispatchDispatchInfo } - >; - /** - * An account was reaped. - **/ - KilledAccount: AugmentedEvent; - /** - * A new account was created. - **/ - NewAccount: AugmentedEvent; - /** - * On on-chain remark happened. - **/ - Remarked: AugmentedEvent< - ApiType, - [sender: AccountId32, hash_: H256], - { sender: AccountId32; hash_: H256 } - >; - /** - * An upgrade was authorized. - **/ - UpgradeAuthorized: AugmentedEvent< - ApiType, - [codeHash: H256, checkVersion: bool], - { codeHash: H256; checkVersion: bool } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - transactionPayment: { - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - **/ - TransactionFeePaid: AugmentedEvent< - ApiType, - [who: AccountId32, actualFee: u128, tip: u128], - { who: AccountId32; actualFee: u128; tip: u128 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - xcmpQueue: { - /** - * An HRMP message was sent to a sibling parachain. - **/ - XcmpMessageSent: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - } // AugmentedEvents -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/events"; + +import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; +import type { + Bytes, + Null, + Option, + Result, + U8aFixed, + Vec, + bool, + u128, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + FrameSupportDispatchDispatchInfo, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemMspRespondStorageRequestsResult, + PalletNftsAttributeNamespace, + PalletNftsPalletAttributes, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + ShpTraitsTrieRemoveMutation, + SpRuntimeDispatchError, + SpWeightsWeightV2Weight, + StagingXcmV4AssetAssets, + StagingXcmV4Location, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + XcmV3TraitsError, + XcmVersionedAssets, + XcmVersionedLocation +} from "@polkadot/types/lookup"; + +export type __AugmentedEvent = AugmentedEvent; + +declare module "@polkadot/api-base/types/events" { + interface AugmentedEvents { + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent< + ApiType, + [who: AccountId32, free: u128], + { who: AccountId32; free: u128 } + >; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent< + ApiType, + [account: AccountId32, amount: u128], + { account: AccountId32; amount: u128 } + >; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent< + ApiType, + [account: AccountId32, freeBalance: u128], + { account: AccountId32; freeBalance: u128 } + >; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent< + ApiType, + [ + from: AccountId32, + to: AccountId32, + amount: u128, + destinationStatus: FrameSupportTokensMiscBalanceStatus + ], + { + from: AccountId32; + to: AccountId32; + amount: u128; + destinationStatus: FrameSupportTokensMiscBalanceStatus; + } + >; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent< + ApiType, + [old: u128, new_: u128], + { old: u128; new_: u128 } + >; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent< + ApiType, + [from: AccountId32, to: AccountId32, amount: u128], + { from: AccountId32; to: AccountId32; amount: u128 } + >; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bucketNfts: { + /** + * Notifies that access to a bucket has been shared with another account. + **/ + AccessShared: AugmentedEvent< + ApiType, + [issuer: AccountId32, recipient: AccountId32], + { issuer: AccountId32; recipient: AccountId32 } + >; + /** + * Notifies that an item has been burned. + **/ + ItemBurned: AugmentedEvent< + ApiType, + [account: AccountId32, bucket: H256, itemId: u32], + { account: AccountId32; bucket: H256; itemId: u32 } + >; + /** + * Notifies that the read access for an item has been updated. + **/ + ItemReadAccessUpdated: AugmentedEvent< + ApiType, + [admin: AccountId32, bucket: H256, itemId: u32], + { admin: AccountId32; bucket: H256; itemId: u32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + collatorSelection: { + /** + * A new candidate joined. + **/ + CandidateAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { accountId: AccountId32; deposit: u128 } + >; + /** + * Bond of a candidate updated. + **/ + CandidateBondUpdated: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { accountId: AccountId32; deposit: u128 } + >; + /** + * A candidate was removed. + **/ + CandidateRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * An account was replaced in the candidate list by another one. + **/ + CandidateReplaced: AugmentedEvent< + ApiType, + [old: AccountId32, new_: AccountId32, deposit: u128], + { old: AccountId32; new_: AccountId32; deposit: u128 } + >; + /** + * An account was unable to be added to the Invulnerables because they did not have keys + * registered. Other Invulnerables may have been set. + **/ + InvalidInvulnerableSkipped: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * A new Invulnerable was added. + **/ + InvulnerableAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * An Invulnerable was removed. + **/ + InvulnerableRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * The candidacy bond was set. + **/ + NewCandidacyBond: AugmentedEvent; + /** + * The number of desired candidates was set. + **/ + NewDesiredCandidates: AugmentedEvent< + ApiType, + [desiredCandidates: u32], + { desiredCandidates: u32 } + >; + /** + * New Invulnerables were set. + **/ + NewInvulnerables: AugmentedEvent< + ApiType, + [invulnerables: Vec], + { invulnerables: Vec } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + cumulusXcm: { + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ + ExecutedDownward: AugmentedEvent; + /** + * Downward message is invalid XCM. + * \[ id \] + **/ + InvalidFormat: AugmentedEvent; + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ + UnsupportedVersion: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fileSystem: { + /** + * Notifies that a BSP has been accepted to store a given file. + **/ + AcceptedBspVolunteer: AugmentedEvent< + ApiType, + [ + bspId: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + multiaddresses: Vec, + owner: AccountId32, + size_: u64 + ], + { + bspId: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + multiaddresses: Vec; + owner: AccountId32; + size_: u64; + } + >; + /** + * Notifies that a BSP's challenge cycle has been initialised, adding the first file + * key(s) to the BSP's Merkle Patricia Forest. + **/ + BspChallengeCycleInitialised: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { who: AccountId32; bspId: H256 } + >; + /** + * Notifies that a BSP confirmed storing a file(s). + **/ + BspConfirmedStoring: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], + { who: AccountId32; bspId: H256; fileKeys: Vec; newRoot: H256 } + >; + /** + * Notifies that a BSP has stopped storing a file. + **/ + BspConfirmStoppedStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, newRoot: H256], + { bspId: H256; fileKey: H256; newRoot: H256 } + >; + /** + * Notifies that a BSP has opened a request to stop storing a file. + **/ + BspRequestedToStopStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], + { bspId: H256; fileKey: H256; owner: AccountId32; location: Bytes } + >; + /** + * Notifies that a bucket's privacy has been updated. + **/ + BucketPrivacyUpdated: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], + { who: AccountId32; bucketId: H256; collectionId: Option; private: bool } + >; + /** + * Notifies that a data server has been registered for a move bucket request. + **/ + DataServerRegisteredForMoveBucket: AugmentedEvent< + ApiType, + [bspId: H256, bucketId: H256], + { bspId: H256; bucketId: H256 } + >; + /** + * Notifies that a priority challenge failed to be queued for pending file deletion. + **/ + FailedToQueuePriorityChallenge: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256], + { user: AccountId32; fileKey: H256 } + >; + /** + * Notifies that a file will be deleted. + **/ + FileDeletionRequest: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], + { user: AccountId32; fileKey: H256; bucketId: H256; mspId: H256; proofOfInclusion: bool } + >; + /** + * Notifies that a bucket has been moved to a new MSP. + **/ + MoveBucketAccepted: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { bucketId: H256; mspId: H256 } + >; + /** + * Notifies that a bucket move request has been rejected by the MSP. + **/ + MoveBucketRejected: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { bucketId: H256; mspId: H256 } + >; + /** + * Notifies that a bucket is being moved to a new MSP. + **/ + MoveBucketRequested: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, newMspId: H256], + { who: AccountId32; bucketId: H256; newMspId: H256 } + >; + /** + * Notifies that a move bucket request has expired. + **/ + MoveBucketRequestExpired: AugmentedEvent< + ApiType, + [mspId: H256, bucketId: H256], + { mspId: H256; bucketId: H256 } + >; + /** + * Notifies that a MSP has responded to storage request(s). + **/ + MspRespondedToStorageRequests: AugmentedEvent< + ApiType, + [results: PalletFileSystemMspRespondStorageRequestsResult], + { results: PalletFileSystemMspRespondStorageRequestsResult } + >; + /** + * Notifies that a new bucket has been created. + **/ + NewBucket: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + bucketId: H256, + name: Bytes, + collectionId: Option, + private: bool + ], + { + who: AccountId32; + mspId: H256; + bucketId: H256; + name: Bytes; + collectionId: Option; + private: bool; + } + >; + /** + * Notifies that a new collection has been created and associated with a bucket. + **/ + NewCollectionAndAssociation: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: u32], + { who: AccountId32; bucketId: H256; collectionId: u32 } + >; + /** + * Notifies that a new file has been requested to be stored. + **/ + NewStorageRequest: AugmentedEvent< + ApiType, + [ + who: AccountId32, + fileKey: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + size_: u64, + peerIds: Vec + ], + { + who: AccountId32; + fileKey: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + size_: u64; + peerIds: Vec; + } + >; + /** + * Notifies that a file key has been queued for a priority challenge for file deletion. + **/ + PriorityChallengeForFileDeletionQueued: AugmentedEvent< + ApiType, + [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], + { issuer: PalletFileSystemEitherAccountIdOrMspId; fileKey: H256 } + >; + /** + * Notifies that a proof has been submitted for a pending file deletion request. + **/ + ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< + ApiType, + [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], + { mspId: H256; user: AccountId32; fileKey: H256; bucketId: H256; proofOfInclusion: bool } + >; + /** + * Notifies that a SP has stopped storing a file because its owner has become insolvent. + **/ + SpStopStoringInsolventUser: AugmentedEvent< + ApiType, + [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], + { spId: H256; fileKey: H256; owner: AccountId32; location: Bytes; newRoot: H256 } + >; + /** + * Notifies the expiration of a storage request. + **/ + StorageRequestExpired: AugmentedEvent; + /** + * Notifies that a storage request for a file key has been fulfilled. + **/ + StorageRequestFulfilled: AugmentedEvent; + /** + * Notifies that a storage request has been revoked by the user who initiated it. + **/ + StorageRequestRevoked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent< + ApiType, + [ + id: U8aFixed, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + pageIndex: u32, + messageIndex: u32 + ], + { + id: U8aFixed; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + pageIndex: u32; + messageIndex: u32; + } + >; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent< + ApiType, + [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], + { origin: CumulusPrimitivesCoreAggregateMessageOrigin; index: u32 } + >; + /** + * Message is processed. + **/ + Processed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + weightUsed: SpWeightsWeightV2Weight, + success: bool + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + weightUsed: SpWeightsWeightV2Weight; + success: bool; + } + >; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + error: FrameSupportMessagesProcessMessageError + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + error: FrameSupportMessagesProcessMessageError; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { collection: u32; item: u32; owner: AccountId32 } + >; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], + { collection: u32; item: u32; owner: AccountId32; delegate: AccountId32 } + >; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + value: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + value: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { collection: u32; item: u32; owner: AccountId32 } + >; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent< + ApiType, + [collection: u32, maxSupply: u32], + { collection: u32; maxSupply: u32 } + >; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, data: Bytes], + { collection: u32; data: Bytes } + >; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent< + ApiType, + [collection: u32], + { collection: u32 } + >; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent< + ApiType, + [collection: u32, creator: AccountId32, owner: AccountId32], + { collection: u32; creator: AccountId32; owner: AccountId32 } + >; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent< + ApiType, + [collection: u32, owner: AccountId32], + { collection: u32; owner: AccountId32 } + >; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { collection: u32; item: u32; owner: AccountId32 } + >; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { collection: u32; item: u32; delegate: AccountId32 } + >; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { collection: u32; item: u32; delegate: AccountId32 } + >; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], + { collection: u32; item: u32; price: u128; seller: AccountId32; buyer: AccountId32 } + >; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, data: Bytes], + { collection: u32; item: u32; data: Bytes } + >; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], + { collection: u32; item: u32; price: u128; whitelistedBuyer: Option } + >; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], + { collection: u32; item: u32; lockMetadata: bool; lockAttributes: bool } + >; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent< + ApiType, + [nextId: Option], + { nextId: Option } + >; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent< + ApiType, + [collection: u32, newOwner: AccountId32], + { collection: u32; newOwner: AccountId32 } + >; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent< + ApiType, + [who: AccountId32, maybeCollection: Option], + { who: AccountId32; maybeCollection: Option } + >; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent< + ApiType, + [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], + { collection: u32; item: Option; attribute: PalletNftsPalletAttributes; value: Bytes } + >; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], + { collection: u32; item: u32; namespace: PalletNftsAttributeNamespace } + >; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent< + ApiType, + [collection: u32, successfulItems: Vec], + { collection: u32; successfulItems: Vec } + >; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent< + ApiType, + [ + sentCollection: u32, + sentItem: u32, + sentItemOwner: AccountId32, + receivedCollection: u32, + receivedItem: u32, + receivedItemOwner: AccountId32, + price: Option, + deadline: u32 + ], + { + sentCollection: u32; + sentItem: u32; + sentItemOwner: AccountId32; + receivedCollection: u32; + receivedItem: u32; + receivedItemOwner: AccountId32; + price: Option; + deadline: u32; + } + >; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent< + ApiType, + [ + collection: u32, + issuer: Option, + admin: Option, + freezer: Option + ], + { + collection: u32; + issuer: Option; + admin: Option; + freezer: Option; + } + >; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent< + ApiType, + [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], + { collection: u32; item: u32; sender: AccountId32; receiver: AccountId32; amount: u128 } + >; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent< + ApiType, + [ + collection: u32, + item: u32, + owner: AccountId32, + delegate: AccountId32, + deadline: Option + ], + { + collection: u32; + item: u32; + owner: AccountId32; + delegate: AccountId32; + deadline: Option; + } + >; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent< + ApiType, + [collection: u32, item: u32, from: AccountId32, to: AccountId32], + { collection: u32; item: u32; from: AccountId32; to: AccountId32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parachainSystem: { + /** + * Downward messages were processed using the given weight. + **/ + DownwardMessagesProcessed: AugmentedEvent< + ApiType, + [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], + { weightUsed: SpWeightsWeightV2Weight; dmqHead: H256 } + >; + /** + * Some downward messages have been received and will be processed. + **/ + DownwardMessagesReceived: AugmentedEvent; + /** + * An upward message was sent to the relay chain. + **/ + UpwardMessageSent: AugmentedEvent< + ApiType, + [messageHash: Option], + { messageHash: Option } + >; + /** + * The validation function was applied as of the contained relay chain block number. + **/ + ValidationFunctionApplied: AugmentedEvent< + ApiType, + [relayChainBlockNum: u32], + { relayChainBlockNum: u32 } + >; + /** + * The relay-chain aborted the upgrade process. + **/ + ValidationFunctionDiscarded: AugmentedEvent; + /** + * The validation function has been scheduled to apply. + **/ + ValidationFunctionStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent< + ApiType, + [ + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + oldValue: Option, + newValue: Option + ], + { + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + oldValue: Option; + newValue: Option; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paymentStreams: { + /** + * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream + * and the initial amount provided. + **/ + DynamicRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amountProvided: u64], + { userAccount: AccountId32; providerId: H256; amountProvided: u64 } + >; + /** + * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + DynamicRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { userAccount: AccountId32; providerId: H256 } + >; + /** + * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new amount provided. + **/ + DynamicRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], + { userAccount: AccountId32; providerId: H256; newAmountProvided: u64 } + >; + /** + * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream + * and its initial rate. + **/ + FixedRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, rate: u128], + { userAccount: AccountId32; providerId: H256; rate: u128 } + >; + /** + * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + FixedRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { userAccount: AccountId32; providerId: H256 } + >; + /** + * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new rate of the stream. + **/ + FixedRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newRate: u128], + { userAccount: AccountId32; providerId: H256; newRate: u128 } + >; + /** + * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, + * the tick number of the last chargeable tick and the price index at that tick. + **/ + LastChargeableInfoUpdated: AugmentedEvent< + ApiType, + [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], + { providerId: H256; lastChargeableTick: u32; lastChargeablePriceIndex: u128 } + >; + /** + * Event emitted when a payment is charged. Provides information about the user that was charged, + * the Provider that received the funds, and the amount that was charged. + **/ + PaymentStreamCharged: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amount: u128], + { userAccount: AccountId32; providerId: H256; amount: u128 } + >; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. + **/ + UserPaidDebts: AugmentedEvent; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, + * correctly paid all their outstanding debt and can now contract new services again. + **/ + UserSolvent: AugmentedEvent; + /** + * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. + * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can + * stop providing services to that user. + **/ + UserWithoutFunds: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + polkadotXcm: { + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } + >; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } + >; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent< + ApiType, + [outcome: StagingXcmV4TraitsOutcome], + { outcome: StagingXcmV4TraitsOutcome } + >; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent< + ApiType, + [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], + { paying: StagingXcmV4Location; fees: StagingXcmV4AssetAssets } + >; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedQuerier: StagingXcmV4Location, + maybeActualQuerier: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedQuerier: StagingXcmV4Location; + maybeActualQuerier: Option; + } + >; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { origin: StagingXcmV4Location; queryId: u64 } + >; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedLocation: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedLocation: Option; + } + >; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { origin: StagingXcmV4Location; queryId: u64 } + >; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { queryId: u64; palletIndex: u8; callIndex: u8 } + >; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { queryId: u64; palletIndex: u8; callIndex: u8 } + >; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { queryId: u64; palletIndex: u8; callIndex: u8 } + >; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent< + ApiType, + [ + queryId: u64, + palletIndex: u8, + callIndex: u8, + actualWeight: SpWeightsWeightV2Weight, + maxBudgetedWeight: SpWeightsWeightV2Weight + ], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + actualWeight: SpWeightsWeightV2Weight; + maxBudgetedWeight: SpWeightsWeightV2Weight; + } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent< + ApiType, + [location: XcmVersionedLocation, queryId: u64], + { location: XcmVersionedLocation; queryId: u64 } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], + { location: StagingXcmV4Location; queryId: u64; error: XcmV3TraitsError } + >; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent< + ApiType, + [queryId: u64, response: StagingXcmV4Response], + { queryId: u64; response: StagingXcmV4Response } + >; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent; + /** + * A XCM message was sent. + **/ + Sent: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + destination: StagingXcmV4Location, + message: StagingXcmV4Xcm, + messageId: U8aFixed + ], + { + origin: StagingXcmV4Location; + destination: StagingXcmV4Location; + message: StagingXcmV4Xcm; + messageId: U8aFixed; + } + >; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, version: u32], + { location: StagingXcmV4Location; version: u32 } + >; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { origin: StagingXcmV4Location; queryId: u64 } + >; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent< + ApiType, + [ + destination: StagingXcmV4Location, + result: u32, + cost: StagingXcmV4AssetAssets, + messageId: U8aFixed + ], + { + destination: StagingXcmV4Location; + result: u32; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } + >; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } + >; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proofsDealer: { + /** + * The [`ChallengesTicker`] has been paused or unpaused. + **/ + ChallengesTickerSet: AugmentedEvent; + /** + * A set of mutations has been applied to the Forest. + **/ + MutationsApplied: AugmentedEvent< + ApiType, + [ + provider: H256, + mutations: Vec>, + newRoot: H256 + ], + { + provider: H256; + mutations: Vec>; + newRoot: H256; + } + >; + /** + * A manual challenge was submitted. + **/ + NewChallenge: AugmentedEvent< + ApiType, + [who: AccountId32, keyChallenged: H256], + { who: AccountId32; keyChallenged: H256 } + >; + /** + * A provider's challenge cycle was initialised. + **/ + NewChallengeCycleInitialised: AugmentedEvent< + ApiType, + [ + currentTick: u32, + nextChallengeDeadline: u32, + provider: H256, + maybeProviderAccount: Option + ], + { + currentTick: u32; + nextChallengeDeadline: u32; + provider: H256; + maybeProviderAccount: Option; + } + >; + /** + * A new challenge seed was generated. + **/ + NewChallengeSeed: AugmentedEvent< + ApiType, + [challengesTicker: u32, seed: H256], + { challengesTicker: u32; seed: H256 } + >; + /** + * A new checkpoint challenge was generated. + **/ + NewCheckpointChallenge: AugmentedEvent< + ApiType, + [ + challengesTicker: u32, + challenges: Vec]>> + ], + { + challengesTicker: u32; + challenges: Vec]>>; + } + >; + /** + * No record of the last tick the Provider submitted a proof for. + **/ + NoRecordOfLastSubmittedProof: AugmentedEvent; + /** + * A proof was accepted. + **/ + ProofAccepted: AugmentedEvent< + ApiType, + [provider: H256, proof: PalletProofsDealerProof], + { provider: H256; proof: PalletProofsDealerProof } + >; + /** + * A provider was marked as slashable and their challenge deadline was forcefully pushed. + **/ + SlashableProvider: AugmentedEvent< + ApiType, + [provider: H256, nextChallengeDeadline: u32], + { provider: H256; nextChallengeDeadline: u32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + providers: { + /** + * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about + * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. + **/ + BspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, multiaddresses: Vec, capacity: u64], + { who: AccountId32; multiaddresses: Vec; capacity: u64 } + >; + /** + * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about + * that BSP's account id. + **/ + BspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { who: AccountId32; bspId: H256 } + >; + /** + * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about + * that BSP's account id, the total data it can store according to its stake, and its multiaddress. + **/ + BspSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], + { who: AccountId32; bspId: H256; multiaddresses: Vec; capacity: u64 } + >; + /** + * Event emitted when a SP has changed its capacity successfully. Provides information about + * that SP's account id, its old total data that could store, and the new total data. + **/ + CapacityChanged: AugmentedEvent< + ApiType, + [ + who: AccountId32, + providerId: PalletStorageProvidersStorageProviderId, + oldCapacity: u64, + newCapacity: u64, + nextBlockWhenChangeAllowed: u32 + ], + { + who: AccountId32; + providerId: PalletStorageProvidersStorageProviderId; + oldCapacity: u64; + newCapacity: u64; + nextBlockWhenChangeAllowed: u32; + } + >; + /** + * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about + * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. + **/ + MspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a Main Storage Provider has signed off successfully. Provides information about + * that MSP's account id. + **/ + MspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, mspId: H256], + { who: AccountId32; mspId: H256 } + >; + /** + * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about + * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. + **/ + MspSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + mspId: H256; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a sign up request has been canceled successfully. Provides information about + * the account id of the user that canceled the request. + **/ + SignUpRequestCanceled: AugmentedEvent; + /** + * Event emitted when an SP has been slashed. + **/ + Slashed: AugmentedEvent< + ApiType, + [providerId: H256, amountSlashed: u128], + { providerId: H256; amountSlashed: u128 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + randomness: { + /** + * Event emitted when a new random seed is available from the relay chain + **/ + NewOneEpochAgoRandomnessAvailable: AugmentedEvent< + ApiType, + [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], + { randomnessSeed: H256; fromEpoch: u64; validUntilBlock: u32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + sudo: { + /** + * The sudo key has been updated. + **/ + KeyChanged: AugmentedEvent< + ApiType, + [old: Option, new_: AccountId32], + { old: Option; new_: AccountId32 } + >; + /** + * The key was permanently removed. + **/ + KeyRemoved: AugmentedEvent; + /** + * A sudo call just took place. + **/ + Sudid: AugmentedEvent< + ApiType, + [sudoResult: Result], + { sudoResult: Result } + >; + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + **/ + SudoAsDone: AugmentedEvent< + ApiType, + [sudoResult: Result], + { sudoResult: Result } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent< + ApiType, + [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], + { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSupportDispatchDispatchInfo } + >; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent< + ApiType, + [dispatchInfo: FrameSupportDispatchDispatchInfo], + { dispatchInfo: FrameSupportDispatchDispatchInfo } + >; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent< + ApiType, + [sender: AccountId32, hash_: H256], + { sender: AccountId32; hash_: H256 } + >; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent< + ApiType, + [codeHash: H256, checkVersion: bool], + { codeHash: H256; checkVersion: bool } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent< + ApiType, + [who: AccountId32, actualFee: u128, tip: u128], + { who: AccountId32; actualFee: u128; tip: u128 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmpQueue: { + /** + * An HRMP message was sent to a sibling parachain. + **/ + XcmpMessageSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/api-augment/src/interfaces/augment-api-runtime.ts b/api-augment/src/interfaces/augment-api-runtime.ts index b25bd5a33..aeb3a1fab 100644 --- a/api-augment/src/interfaces/augment-api-runtime.ts +++ b/api-augment/src/interfaces/augment-api-runtime.ts @@ -1,720 +1,720 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/calls"; - -import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; -import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; -import type { BlockHash } from "@polkadot/types/interfaces/chain"; -import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; -import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; -import type { - CallDryRunEffects, - XcmDryRunApiError, - XcmDryRunEffects -} from "@polkadot/types/interfaces/dryRunApi"; -import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; -import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; -import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; -import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; -import type { - AccountId, - Balance, - Block, - BlockNumber, - Call, - ExtrinsicInclusionMode, - H256, - Header, - Index, - KeyTypeId, - OriginCaller, - RuntimeCall, - Slot, - SlotDuration, - Weight, - WeightV2 -} from "@polkadot/types/interfaces/runtime"; -import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; -import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; -import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; -import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; -import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; -import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; -import type { IExtrinsic, Observable } from "@polkadot/types/types"; -import type { - BackupStorageProvider, - BackupStorageProviderId, - ChunkId, - GetBspInfoError, - GetChallengePeriodError, - GetChallengeSeedError, - GetCheckpointChallengesError, - GetLastTickProviderSubmittedProofError, - GetNextDeadlineTickError, - GetUsersWithDebtOverThresholdError, - MainStorageProviderId, - ProviderId, - QueryAvailableStorageCapacityError, - QueryBspConfirmChunksToProveForFileError, - QueryEarliestChangeCapacityBlockError, - QueryFileEarliestVolunteerBlockError, - QueryMspConfirmChunksToProveForFileError, - QueryMspIdOfBucketIdError, - QueryStorageProviderCapacityError, - RandomnessOutput, - StorageDataUnit, - StorageProviderId, - TrieRemoveMutation -} from "@storagehub/api-augment/interfaces/storagehubclient"; - -export type __AugmentedCall = AugmentedCall; -export type __DecoratedCallBase = DecoratedCallBase; - -declare module "@polkadot/api-base/types/calls" { - interface AugmentedCalls { - /** 0xbc9d89904f5b923f/1 */ - accountNonceApi: { - /** - * The API to query account nonce (aka transaction index) - **/ - accountNonce: AugmentedCall< - ApiType, - (accountId: AccountId | string | Uint8Array) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdd718d5cc53262d4/1 */ - auraApi: { - /** - * Return the current set of authorities. - **/ - authorities: AugmentedCall Observable>>; - /** - * Returns the slot duration for Aura. - **/ - slotDuration: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd7bdd8a272ca0d65/1 */ - auraUnincludedSegmentApi: { - /** - * Whether it is legal to extend the chain - **/ - canBuildUpon: AugmentedCall< - ApiType, - ( - includedHash: BlockHash | string | Uint8Array, - slot: Slot | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x40fe3ad401f8959a/6 */ - blockBuilder: { - /** - * Apply the given extrinsic. - **/ - applyExtrinsic: AugmentedCall< - ApiType, - ( - extrinsic: Extrinsic | IExtrinsic | string | Uint8Array - ) => Observable - >; - /** - * Check that the inherents are valid. - **/ - checkInherents: AugmentedCall< - ApiType, - ( - block: Block | { header?: any; extrinsics?: any } | string | Uint8Array, - data: InherentData | { data?: any } | string | Uint8Array - ) => Observable - >; - /** - * Finish the current block. - **/ - finalizeBlock: AugmentedCall Observable
>; - /** - * Generate inherent extrinsics. - **/ - inherentExtrinsics: AugmentedCall< - ApiType, - ( - inherent: InherentData | { data?: any } | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xea93e3f16f3d6962/2 */ - collectCollationInfo: { - /** - * Collect information about a collation. - **/ - collectCollationInfo: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdf6acb689907609b/5 */ - core: { - /** - * Execute the given block. - **/ - executeBlock: AugmentedCall< - ApiType, - ( - block: Block | { header?: any; extrinsics?: any } | string | Uint8Array - ) => Observable - >; - /** - * Initialize a block with the given header. - **/ - initializeBlock: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Returns the version of the runtime. - **/ - version: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x91b1c8b16328eb92/1 */ - dryRunApi: { - /** - * Dry run call - **/ - dryRunCall: AugmentedCall< - ApiType, - ( - origin: OriginCaller | { System: any } | string | Uint8Array, - call: RuntimeCall | IMethod | string | Uint8Array - ) => Observable> - >; - /** - * Dry run XCM program - **/ - dryRunXcm: AugmentedCall< - ApiType, - ( - originLocation: - | VersionedMultiLocation - | { V0: any } - | { V1: any } - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - xcm: - | VersionedXcm - | { V0: any } - | { V1: any } - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xb9e7717ace5b45cd/1 */ - fileSystemApi: { - /** - * Query the chunks that a BSP needs to prove to confirm that it is storing a file. - **/ - queryBspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryBspConfirmChunksToProveForFileError>> - >; - /** - * Query the earliest tick number that a BSP can volunteer for a file. - **/ - queryEarliestFileVolunteerTick: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the chunks that a MSP needs to prove to confirm that it is storing a file. - **/ - queryMspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - mspId: MainStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryMspConfirmChunksToProveForFileError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xfbc577b9d747efd6/1 */ - genesisBuilder: { - /** - * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. - **/ - buildConfig: AugmentedCall< - ApiType, - (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> - >; - /** - * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. - **/ - createDefaultConfig: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37e397fc7c91f5e4/2 */ - metadata: { - /** - * Returns the metadata of a runtime - **/ - metadata: AugmentedCall Observable>; - /** - * Returns the metadata at a given version. - **/ - metadataAtVersion: AugmentedCall< - ApiType, - (version: u32 | AnyNumber | Uint8Array) => Observable> - >; - /** - * Returns the supported metadata versions. - **/ - metadataVersions: AugmentedCall Observable>>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf78b278be53f454c/2 */ - offchainWorkerApi: { - /** - * Starts the off-chain task for given block header. - **/ - offchainWorker: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x1078d7ac24a07b0e/1 */ - paymentStreamsApi: { - /** - * Get the payment streams of a provider. - **/ - getUsersOfPaymentStreamsOfProvider: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Get the users that have a debt to the provider greater than the threshold. - **/ - getUsersWithDebtOverThreshold: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array, - threshold: Balance | AnyNumber | Uint8Array - ) => Observable, GetUsersWithDebtOverThresholdError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x0be7208954c7c6c9/1 */ - proofsDealerApi: { - /** - * Get the challenge period for a given Provider. - **/ - getChallengePeriod: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the seed for a given challenge tick. - **/ - getChallengeSeed: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get challenges from a seed. - **/ - getChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array, - count: u32 | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get the checkpoint challenge period. - **/ - getCheckpointChallengePeriod: AugmentedCall Observable>; - /** - * Get checkpoint challenges for a given block. - **/ - getCheckpointChallenges: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable< - Result]>>, GetCheckpointChallengesError> - > - >; - /** - * Get the current tick. - **/ - getCurrentTick: AugmentedCall Observable>; - /** - * Get forest challenges from a seed. - **/ - getForestChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the last checkpoint challenge tick. - **/ - getLastCheckpointChallengeTick: AugmentedCall Observable>; - /** - * Get the last tick for which the submitter submitted a proof. - **/ - getLastTickProviderSubmittedProof: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the next deadline tick. - **/ - getNextDeadlineTick: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xab3c0572291feb8b/1 */ - sessionKeys: { - /** - * Decode the given public session keys. - **/ - decodeSessionKeys: AugmentedCall< - ApiType, - ( - encoded: Bytes | string | Uint8Array - ) => Observable>>> - >; - /** - * Generate a set of session keys with optionally using the given seed. - **/ - generateSessionKeys: AugmentedCall< - ApiType, - (seed: Option | null | Uint8Array | Bytes | string) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x966604ffe78eb092/1 */ - storageProvidersApi: { - /** - * Get the BSP info for a given BSP ID. - **/ - getBspInfo: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the slashable amount corresponding to the configured max file size. - **/ - getSlashAmountPerMaxFileSize: AugmentedCall Observable>; - /** - * Get the Storage Provider ID for a given Account ID. - **/ - getStorageProviderId: AugmentedCall< - ApiType, - (who: AccountId | string | Uint8Array) => Observable> - >; - /** - * Get the worst case scenario slashable amount for a provider. - **/ - getWorstCaseScenarioSlashableAmount: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Query the available storage capacity. - **/ - queryAvailableStorageCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the earliest block number that a BSP can change its capacity. - **/ - queryEarliestChangeCapacityBlock: AugmentedCall< - ApiType, - ( - providerId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the MSP ID of a bucket ID. - **/ - queryMspIdOfBucketId: AugmentedCall< - ApiType, - ( - bucketId: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the storage provider capacity. - **/ - queryStorageProviderCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd2bc9897eed08f15/3 */ - taggedTransactionQueue: { - /** - * Validate the transaction. - **/ - validateTransaction: AugmentedCall< - ApiType, - ( - source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, - tx: Extrinsic | IExtrinsic | string | Uint8Array, - blockHash: BlockHash | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37c8bb1350a9a2a8/4 */ - transactionPaymentApi: { - /** - * The transaction fee details - **/ - queryFeeDetails: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The transaction info - **/ - queryInfo: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf3ff14d5ab527059/3 */ - transactionPaymentCallApi: { - /** - * The call fee details - **/ - queryCallFeeDetails: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The call info - **/ - queryCallInfo: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x6ff52ee858e6c5bd/1 */ - xcmPaymentApi: { - /** - * The API to query acceptable payment assets - **/ - queryAcceptablePaymentAssets: AugmentedCall< - ApiType, - ( - version: u32 | AnyNumber | Uint8Array - ) => Observable, XcmPaymentApiError>> - >; - /** - * - **/ - queryWeightToAssetFee: AugmentedCall< - ApiType, - ( - weight: WeightV2 | { refTime?: any; proofSize?: any } | string | Uint8Array, - asset: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable> - >; - /** - * - **/ - queryXcmWeight: AugmentedCall< - ApiType, - ( - message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - } // AugmentedCalls -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/calls"; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; +import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; +import type { BlockHash } from "@polkadot/types/interfaces/chain"; +import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; +import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; +import type { + CallDryRunEffects, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; +import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; +import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; +import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; +import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; +import type { + AccountId, + Balance, + Block, + BlockNumber, + Call, + ExtrinsicInclusionMode, + H256, + Header, + Index, + KeyTypeId, + OriginCaller, + RuntimeCall, + Slot, + SlotDuration, + Weight, + WeightV2 +} from "@polkadot/types/interfaces/runtime"; +import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; +import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; +import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; +import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; +import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; +import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; +import type { IExtrinsic, Observable } from "@polkadot/types/types"; +import type { + BackupStorageProvider, + BackupStorageProviderId, + ChunkId, + GetBspInfoError, + GetChallengePeriodError, + GetChallengeSeedError, + GetCheckpointChallengesError, + GetLastTickProviderSubmittedProofError, + GetNextDeadlineTickError, + GetUsersWithDebtOverThresholdError, + MainStorageProviderId, + ProviderId, + QueryAvailableStorageCapacityError, + QueryBspConfirmChunksToProveForFileError, + QueryEarliestChangeCapacityBlockError, + QueryFileEarliestVolunteerBlockError, + QueryMspConfirmChunksToProveForFileError, + QueryMspIdOfBucketIdError, + QueryStorageProviderCapacityError, + RandomnessOutput, + StorageDataUnit, + StorageProviderId, + TrieRemoveMutation +} from "@storagehub/api-augment/interfaces/storagehubclient"; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module "@polkadot/api-base/types/calls" { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/1 */ + accountNonceApi: { + /** + * The API to query account nonce (aka transaction index) + **/ + accountNonce: AugmentedCall< + ApiType, + (accountId: AccountId | string | Uint8Array) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdd718d5cc53262d4/1 */ + auraApi: { + /** + * Return the current set of authorities. + **/ + authorities: AugmentedCall Observable>>; + /** + * Returns the slot duration for Aura. + **/ + slotDuration: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd7bdd8a272ca0d65/1 */ + auraUnincludedSegmentApi: { + /** + * Whether it is legal to extend the chain + **/ + canBuildUpon: AugmentedCall< + ApiType, + ( + includedHash: BlockHash | string | Uint8Array, + slot: Slot | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/6 */ + blockBuilder: { + /** + * Apply the given extrinsic. + **/ + applyExtrinsic: AugmentedCall< + ApiType, + ( + extrinsic: Extrinsic | IExtrinsic | string | Uint8Array + ) => Observable + >; + /** + * Check that the inherents are valid. + **/ + checkInherents: AugmentedCall< + ApiType, + ( + block: Block | { header?: any; extrinsics?: any } | string | Uint8Array, + data: InherentData | { data?: any } | string | Uint8Array + ) => Observable + >; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable
>; + /** + * Generate inherent extrinsics. + **/ + inherentExtrinsics: AugmentedCall< + ApiType, + ( + inherent: InherentData | { data?: any } | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xea93e3f16f3d6962/2 */ + collectCollationInfo: { + /** + * Collect information about a collation. + **/ + collectCollationInfo: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/5 */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall< + ApiType, + ( + block: Block | { header?: any; extrinsics?: any } | string | Uint8Array + ) => Observable + >; + /** + * Initialize a block with the given header. + **/ + initializeBlock: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91b1c8b16328eb92/1 */ + dryRunApi: { + /** + * Dry run call + **/ + dryRunCall: AugmentedCall< + ApiType, + ( + origin: OriginCaller | { System: any } | string | Uint8Array, + call: RuntimeCall | IMethod | string | Uint8Array + ) => Observable> + >; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall< + ApiType, + ( + originLocation: + | VersionedMultiLocation + | { V0: any } + | { V1: any } + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + xcm: + | VersionedXcm + | { V0: any } + | { V1: any } + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xb9e7717ace5b45cd/1 */ + fileSystemApi: { + /** + * Query the chunks that a BSP needs to prove to confirm that it is storing a file. + **/ + queryBspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryBspConfirmChunksToProveForFileError>> + >; + /** + * Query the earliest tick number that a BSP can volunteer for a file. + **/ + queryEarliestFileVolunteerTick: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the chunks that a MSP needs to prove to confirm that it is storing a file. + **/ + queryMspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + mspId: MainStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryMspConfirmChunksToProveForFileError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/1 */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. + **/ + buildConfig: AugmentedCall< + ApiType, + (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> + >; + /** + * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. + **/ + createDefaultConfig: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/2 */ + metadata: { + /** + * Returns the metadata of a runtime + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version. + **/ + metadataAtVersion: AugmentedCall< + ApiType, + (version: u32 | AnyNumber | Uint8Array) => Observable> + >; + /** + * Returns the supported metadata versions. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/2 */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x1078d7ac24a07b0e/1 */ + paymentStreamsApi: { + /** + * Get the payment streams of a provider. + **/ + getUsersOfPaymentStreamsOfProvider: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Get the users that have a debt to the provider greater than the threshold. + **/ + getUsersWithDebtOverThreshold: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array, + threshold: Balance | AnyNumber | Uint8Array + ) => Observable, GetUsersWithDebtOverThresholdError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x0be7208954c7c6c9/1 */ + proofsDealerApi: { + /** + * Get the challenge period for a given Provider. + **/ + getChallengePeriod: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the seed for a given challenge tick. + **/ + getChallengeSeed: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get challenges from a seed. + **/ + getChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array, + count: u32 | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get the checkpoint challenge period. + **/ + getCheckpointChallengePeriod: AugmentedCall Observable>; + /** + * Get checkpoint challenges for a given block. + **/ + getCheckpointChallenges: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable< + Result]>>, GetCheckpointChallengesError> + > + >; + /** + * Get the current tick. + **/ + getCurrentTick: AugmentedCall Observable>; + /** + * Get forest challenges from a seed. + **/ + getForestChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the last checkpoint challenge tick. + **/ + getLastCheckpointChallengeTick: AugmentedCall Observable>; + /** + * Get the last tick for which the submitter submitted a proof. + **/ + getLastTickProviderSubmittedProof: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the next deadline tick. + **/ + getNextDeadlineTick: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/1 */ + sessionKeys: { + /** + * Decode the given public session keys. + **/ + decodeSessionKeys: AugmentedCall< + ApiType, + ( + encoded: Bytes | string | Uint8Array + ) => Observable>>> + >; + /** + * Generate a set of session keys with optionally using the given seed. + **/ + generateSessionKeys: AugmentedCall< + ApiType, + (seed: Option | null | Uint8Array | Bytes | string) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x966604ffe78eb092/1 */ + storageProvidersApi: { + /** + * Get the BSP info for a given BSP ID. + **/ + getBspInfo: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the slashable amount corresponding to the configured max file size. + **/ + getSlashAmountPerMaxFileSize: AugmentedCall Observable>; + /** + * Get the Storage Provider ID for a given Account ID. + **/ + getStorageProviderId: AugmentedCall< + ApiType, + (who: AccountId | string | Uint8Array) => Observable> + >; + /** + * Get the worst case scenario slashable amount for a provider. + **/ + getWorstCaseScenarioSlashableAmount: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Query the available storage capacity. + **/ + queryAvailableStorageCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the earliest block number that a BSP can change its capacity. + **/ + queryEarliestChangeCapacityBlock: AugmentedCall< + ApiType, + ( + providerId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the MSP ID of a bucket ID. + **/ + queryMspIdOfBucketId: AugmentedCall< + ApiType, + ( + bucketId: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the storage provider capacity. + **/ + queryStorageProviderCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/3 */ + taggedTransactionQueue: { + /** + * Validate the transaction. + **/ + validateTransaction: AugmentedCall< + ApiType, + ( + source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, + tx: Extrinsic | IExtrinsic | string | Uint8Array, + blockHash: BlockHash | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/4 */ + transactionPaymentApi: { + /** + * The transaction fee details + **/ + queryFeeDetails: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The transaction info + **/ + queryInfo: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/3 */ + transactionPaymentCallApi: { + /** + * The call fee details + **/ + queryCallFeeDetails: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The call info + **/ + queryCallInfo: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6ff52ee858e6c5bd/1 */ + xcmPaymentApi: { + /** + * The API to query acceptable payment assets + **/ + queryAcceptablePaymentAssets: AugmentedCall< + ApiType, + ( + version: u32 | AnyNumber | Uint8Array + ) => Observable, XcmPaymentApiError>> + >; + /** + * + **/ + queryWeightToAssetFee: AugmentedCall< + ApiType, + ( + weight: WeightV2 | { refTime?: any; proofSize?: any } | string | Uint8Array, + asset: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable> + >; + /** + * + **/ + queryXcmWeight: AugmentedCall< + ApiType, + ( + message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/api-augment/src/interfaces/augment-api-tx.ts b/api-augment/src/interfaces/augment-api-tx.ts index 31d5ad652..8741d8401 100644 --- a/api-augment/src/interfaces/augment-api-tx.ts +++ b/api-augment/src/interfaces/augment-api-tx.ts @@ -1,3418 +1,3418 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/submittable"; - -import type { - ApiTypes, - AugmentedSubmittable, - SubmittableExtrinsic, - SubmittableExtrinsicFunction -} from "@polkadot/api-base/types"; -import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - PalletBalancesAdjustmentDirection, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemMspStorageRequestResponse, - PalletNftsAttributeNamespace, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsDestroyWitness, - PalletNftsItemConfig, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintWitness, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersValueProposition, - ShpFileKeyVerifierFileKeyProof, - SpRuntimeMultiSignature, - SpTrieStorageProofCompactProof, - SpWeightsWeightV2Weight, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV4Location, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeSessionKeys, - XcmV3WeightLimit, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedXcm -} from "@polkadot/types/lookup"; - -export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; -export type __SubmittableExtrinsic = SubmittableExtrinsic; -export type __SubmittableExtrinsicFunction = - SubmittableExtrinsicFunction; - -declare module "@polkadot/api-base/types/submittable" { - interface AugmentedSubmittables { - balances: { - /** - * Burn the specified liquid free balance from the origin account. - * - * If the origin's account ends up below the existential deposit as a result - * of the burn and `keep_alive` is false, the account will be reaped. - * - * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, - * this `burn` operation will reduce total issuance by the amount _burned_. - **/ - burn: AugmentedSubmittable< - ( - value: Compact | AnyNumber | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [Compact, bool] - >; - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - **/ - forceAdjustTotalIssuance: AugmentedSubmittable< - ( - direction: - | PalletBalancesAdjustmentDirection - | "Increase" - | "Decrease" - | number - | Uint8Array, - delta: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [PalletBalancesAdjustmentDirection, Compact] - >; - /** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - **/ - forceSetBalance: AugmentedSubmittable< - ( - who: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - newFree: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - **/ - forceTransfer: AugmentedSubmittable< - ( - source: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, MultiAddress, Compact] - >; - /** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - **/ - forceUnreserve: AugmentedSubmittable< - ( - who: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - amount: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, u128] - >; - /** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - **/ - transferAll: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, bool] - >; - /** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - **/ - transferAllowDeath: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - **/ - transferKeepAlive: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - **/ - upgradeAccounts: AugmentedSubmittable< - ( - who: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - bucketNfts: { - /** - * Share access to files within a bucket with another account. - * - * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. - **/ - shareAccess: AugmentedSubmittable< - ( - recipient: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [MultiAddress, H256, u32, Option] - >; - /** - * Update read access for an item. - **/ - updateReadAccess: AugmentedSubmittable< - ( - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [H256, u32, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - collatorSelection: { - /** - * Add a new account `who` to the list of `Invulnerables` collators. `who` must have - * registered session keys. If `who` is a candidate, they will be removed. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - addInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Deregister `origin` as a collator candidate. Note that the collator can only leave on - * session change. The `CandidacyBond` will be unreserved immediately. - * - * This call will fail if the total number of candidates would drop below - * `MinEligibleCollators`. - **/ - leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Register this account as a collator candidate. The account must (a) already have - * registered session keys and (b) be able to reserve the `CandidacyBond`. - * - * This call is not available to `Invulnerable` collators. - **/ - registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must - * be sorted. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - removeInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Set the candidacy bond amount. - * - * If the candidacy bond is increased by this call, all current candidates which have a - * deposit lower than the new bond will be kicked from the list and get their deposits - * back. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setCandidacyBond: AugmentedSubmittable< - (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Set the ideal number of non-invulnerable collators. If lowering this number, then the - * number of running collators could be higher than this figure. Aside from that edge case, - * there should be no other way to have more candidates than the desired number. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setDesiredCandidates: AugmentedSubmittable< - (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Set the list of invulnerable (fixed) collators. These collators must do some - * preparation, namely to have registered session keys. - * - * The call will remove any accounts that have not registered keys from the set. That is, - * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as - * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. - * - * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It - * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A - * `batch_all` can also be used to enforce atomicity. If any candidates are included in - * `new`, they should be removed with `remove_invulnerable_candidate` after execution. - * - * Must be called by the `UpdateOrigin`. - **/ - setInvulnerables: AugmentedSubmittable< - ( - updated: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * The caller `origin` replaces a candidate `target` in the collator candidate list by - * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than - * the existing bond of the target it is trying to replace. - * - * This call will fail if the caller is already a collator candidate or invulnerable, the - * caller does not have registered session keys, the target is not a collator candidate, - * and/or the `deposit` amount cannot be reserved. - **/ - takeCandidateSlot: AugmentedSubmittable< - ( - deposit: u128 | AnyNumber | Uint8Array, - target: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u128, AccountId32] - >; - /** - * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. - * - * Setting a `new_deposit` that is lower than the current deposit while `origin` is - * occupying a top-`DesiredCandidates` slot is not allowed. - * - * This call will fail if `origin` is not a collator candidate, the updated bond is lower - * than the minimum candidacy bond, and/or the amount cannot be reserved. - **/ - updateBond: AugmentedSubmittable< - (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - cumulusXcm: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - fileSystem: { - /** - * Add yourself as a data server for providing the files of the bucket requested to be moved. - **/ - bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Executed by a BSP to confirm to stop storing a file. - * - * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. - * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the - * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. - **/ - bspConfirmStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to confirm they are storing data of a storage request. - **/ - bspConfirmStoring: AugmentedSubmittable< - ( - nonInclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array, - fileKeysAndProofs: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | ShpFileKeyVerifierFileKeyProof - | { fileMetadata?: any; proof?: any } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [SpTrieStorageProofCompactProof, Vec>] - >; - /** - * Executed by a BSP to request to stop storing a file. - * - * In the event when a storage request no longer exists for the data the BSP no longer stores, - * it is required that the BSP still has access to the metadata of the initial storage request. - * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever - * the BSP gets that data is up to it. One example could be from the assigned MSP. - * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage - * provider's Merkle Forest. - **/ - bspRequestStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - canServe: bool | boolean | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to volunteer for storing a file. - * - * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, - * so a BSP is strongly advised to check beforehand. Another reason for failure is - * if the maximum number of BSPs has been reached. A successful assignment as BSP means - * that some of the collateral tokens of that MSP are frozen. - **/ - bspVolunteer: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Create and associate a collection with a bucket. - **/ - createAndAssociateCollectionWithBucket: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - createBucket: AugmentedSubmittable< - ( - mspId: H256 | string | Uint8Array, - name: Bytes | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, Bytes, bool] - >; - deleteFile: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - fingerprint: H256 | string | Uint8Array, - maybeInclusionForestProof: - | Option - | null - | Uint8Array - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - ) => SubmittableExtrinsic, - [H256, H256, Bytes, u64, H256, Option] - >; - /** - * Issue a new storage request for a file - **/ - issueStorageRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - mspId: H256 | string | Uint8Array, - peerIds: Vec | (Bytes | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [H256, Bytes, H256, u64, H256, Vec] - >; - mspRespondMoveBucketRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - response: - | PalletFileSystemBucketMoveRequestResponse - | "Accepted" - | "Rejected" - | number - | Uint8Array - ) => SubmittableExtrinsic, - [H256, PalletFileSystemBucketMoveRequestResponse] - >; - /** - * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. - * - * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be - * accepted, rejected or have failed to be processed in the results of the event emitted. - * - * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys - * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that - * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP - * wasn't storing it before. - **/ - mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< - ( - fileKeyResponsesInput: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | PalletFileSystemMspStorageRequestResponse - | { accept?: any; reject?: any } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [Vec>] - >; - pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< - ( - user: AccountId32 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - forestProof: SpTrieStorageProofCompactProof | { encodedNodes?: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, H256, SpTrieStorageProofCompactProof] - >; - requestMoveBucket: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - newMspId: H256 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256] - >; - /** - * Revoke storage request - **/ - revokeStorageRequest: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - setGlobalParameters: AugmentedSubmittable< - ( - replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, - tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option, Option] - >; - /** - * Executed by a SP to stop storing a file from an insolvent user. - * - * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since - * it won't be getting paid for it anymore. - * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to - * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. - **/ - stopStoringForInsolventUser: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] - >; - updateBucketPrivacy: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - messageQueue: { - /** - * Execute an overweight message. - * - * Temporary processing errors will be propagated whereas permanent errors are treated - * as success condition. - * - * - `origin`: Must be `Signed`. - * - `message_origin`: The origin from which the message to be executed arrived. - * - `page`: The page in the queue in which the message to be executed is sitting. - * - `index`: The index into the queue of the message to be executed. - * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution - * of the message. - * - * Benchmark complexity considerations: O(index + weight_limit). - **/ - executeOverweight: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { Here: any } - | { Parent: any } - | { Sibling: any } - | string - | Uint8Array, - page: u32 | AnyNumber | Uint8Array, - index: u32 | AnyNumber | Uint8Array, - weightLimit: - | SpWeightsWeightV2Weight - | { refTime?: any; proofSize?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] - >; - /** - * Remove a page which has no more messages remaining to be processed or is stale. - **/ - reapPage: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { Here: any } - | { Parent: any } - | { Sibling: any } - | string - | Uint8Array, - pageIndex: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - nfts: { - /** - * Approve item's attributes to be changed by a delegated third-party account. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: A collection of the item. - * - `item`: The item that holds attributes. - * - `delegate`: The account to delegate permission to change attributes of the item. - * - * Emits `ItemAttributesApprovalAdded` on success. - **/ - approveItemAttributes: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Approve an item to be transferred by a delegated third-party account. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `item`. - * - * - `collection`: The collection of the item to be approved for delegated transfer. - * - `item`: The item to be approved for delegated transfer. - * - `delegate`: The account to delegate permission to transfer the item. - * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the - * number of blocks after which the approval will expire - * - * Emits `TransferApproved` on success. - * - * Weight: `O(1)` - **/ - approveTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Destroy a single item. - * - * The origin must conform to `ForceOrigin` or must be Signed and the signing account must - * be the owner of the `item`. - * - * - `collection`: The collection of the item to be burned. - * - `item`: The item to be burned. - * - * Emits `Burned`. - * - * Weight: `O(1)` - **/ - burn: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Allows to buy an item if it's up for sale. - * - * Origin must be Signed and must not be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item the sender wants to buy. - * - `bid_price`: The price the sender is willing to pay. - * - * Emits `ItemBought` on success. - **/ - buyItem: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - bidPrice: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u128] - >; - /** - * Cancel one of the transfer approvals for a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approval will be cancelled. - * - `item`: The item of the collection of whose approval will be cancelled. - * - `delegate`: The account that is going to loose their approval. - * - * Emits `ApprovalCancelled` on success. - * - * Weight: `O(1)` - **/ - cancelApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Cancel the previously provided approval to change item's attributes. - * All the previously set attributes by the `delegate` will be removed. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: Collection that the item is contained within. - * - `item`: The item that holds attributes. - * - `delegate`: The previously approved account to remove. - * - * Emits `ItemAttributesApprovalRemoved` on success. - **/ - cancelItemAttributesApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - witness: - | PalletNftsCancelAttributesApprovalWitness - | { accountAttributes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] - >; - /** - * Cancel an atomic swap. - * - * Origin must be Signed. - * Origin must be an owner of the `item` if the deadline hasn't expired. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - * Emits `SwapCancelled` on success. - **/ - cancelSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Claim an atomic swap. - * This method executes a pending swap, that was created by a counterpart before. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `send_collection`: The collection of the item to be sent. - * - `send_item`: The item to be sent. - * - `receive_collection`: The collection of the item to be received. - * - `receive_item`: The item to be received. - * - `witness_price`: A price that was previously agreed on. - * - * Emits `SwapClaimed` on success. - **/ - claimSwap: AugmentedSubmittable< - ( - sendCollection: u32 | AnyNumber | Uint8Array, - sendItem: u32 | AnyNumber | Uint8Array, - receiveCollection: u32 | AnyNumber | Uint8Array, - receiveItem: u32 | AnyNumber | Uint8Array, - witnessPrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { amount?: any; direction?: any } - | string - ) => SubmittableExtrinsic, - [u32, u32, u32, u32, Option] - >; - /** - * Cancel all the approvals of a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approvals will be cleared. - * - `item`: The item of the collection of whose approvals will be cleared. - * - * Emits `AllApprovalsCancelled` on success. - * - * Weight: `O(1)` - **/ - clearAllTransferApprovals: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Clear an attribute for a collection or item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * attribute. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `maybe_item`: The identifier of the item whose metadata to clear. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - * Emits `AttributeCleared`. - * - * Weight: `O(1)` - **/ - clearAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - key: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes] - >; - /** - * Clear the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose metadata to clear. - * - * Emits `CollectionMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearCollectionMetadata: AugmentedSubmittable< - (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Clear the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `item`: The identifier of the item whose metadata to clear. - * - * Emits `ItemMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Issue a new collection of non-fungible items from a public origin. - * - * This new collection has no items initially and its owner is the origin. - * - * The origin must be Signed and the sender must have sufficient funds free. - * - * `CollectionDeposit` funds of sender are reserved. - * - * Parameters: - * - `admin`: The admin of this collection. The admin is the initial address of each - * member of the collection's admin team. - * - * Emits `Created` event when successful. - * - * Weight: `O(1)` - **/ - create: AugmentedSubmittable< - ( - admin: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { settings?: any; maxSupply?: any; mintSettings?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Register a new atomic swap, declaring an intention to send an `item` in exchange for - * `desired_item` from origin to target on the current blockchain. - * The target can execute the swap during the specified `duration` of blocks (if set). - * Additionally, the price could be set for the desired `item`. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - `desired_collection`: The collection of the desired item. - * - `desired_item`: The desired item an owner wants to receive. - * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. - * - `duration`: A deadline for the swap. Specified by providing the number of blocks - * after which the swap will expire. - * - * Emits `SwapCreated` on success. - **/ - createSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array, - desiredCollection: u32 | AnyNumber | Uint8Array, - maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, - maybePrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { amount?: any; direction?: any } - | string, - duration: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u32, Option, Option, u32] - >; - /** - * Destroy a collection of fungible items. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * owner of the `collection`. - * - * NOTE: The collection must have 0 items to be destroyed. - * - * - `collection`: The identifier of the collection to be destroyed. - * - `witness`: Information on the items minted in the collection. This must be - * correct. - * - * Emits `Destroyed` event when successful. - * - * Weight: `O(m + c + a)` where: - * - `m = witness.item_metadatas` - * - `c = witness.item_configs` - * - `a = witness.attributes` - **/ - destroy: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - witness: - | PalletNftsDestroyWitness - | { itemMetadatas?: any; itemConfigs?: any; attributes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsDestroyWitness] - >; - /** - * Change the config of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `config`: The new config of this collection. - * - * Emits `CollectionConfigChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionConfig: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - config: - | PalletNftsCollectionConfig - | { settings?: any; maxSupply?: any; mintSettings?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsCollectionConfig] - >; - /** - * Change the Owner of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `owner`: The new Owner of this collection. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionOwner: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - owner: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Issue a new collection of non-fungible items from a privileged origin. - * - * This new collection has no items initially. - * - * The origin must conform to `ForceOrigin`. - * - * Unlike `create`, no funds are reserved. - * - * - `owner`: The owner of this collection of items. The owner has full superuser - * permissions over this item, but may later change and configure the permissions using - * `transfer_ownership` and `set_team`. - * - * Emits `ForceCreated` event when successful. - * - * Weight: `O(1)` - **/ - forceCreate: AugmentedSubmittable< - ( - owner: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { settings?: any; maxSupply?: any; mintSettings?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Mint an item of a particular collection from a privileged origin. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * Issuer of the `collection`. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `item_config`: A config of the new item. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - forceMint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - itemConfig: PalletNftsItemConfig | { settings?: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsItemConfig] - >; - /** - * Force-set an attribute for a collection or item. - * - * Origin must be `ForceOrigin`. - * - * If the attribute already exists and it was set by another account, the deposit - * will be returned to the previous owner. - * - * - `set_as`: An optional owner of the attribute. - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - forceSetAttribute: AugmentedSubmittable< - ( - setAs: Option | null | Uint8Array | AccountId32 | string, - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Disallows specified settings for the whole collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection to be locked. - * - `lock_settings`: The settings to be locked. - * - * Note: it's possible to only lock(set) the setting, but not to unset it. - * - * Emits `CollectionLocked`. - * - * Weight: `O(1)` - **/ - lockCollection: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - lockSettings: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u64] - >; - /** - * Disallows changing the metadata or attributes of the item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin - * of the `collection`. - * - * - `collection`: The collection if the `item`. - * - `item`: An item to be locked. - * - `lock_metadata`: Specifies whether the metadata should be locked. - * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace - * should be locked. - * - * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. - * When the metadata or attributes are locked, it won't be possible the unlock them. - * - * Emits `ItemPropertiesLocked`. - * - * Weight: `O(1)` - **/ - lockItemProperties: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - lockMetadata: bool | boolean | Uint8Array, - lockAttributes: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, bool, bool] - >; - /** - * Disallow further unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become non-transferable. - * - * Emits `ItemTransferLocked`. - * - * Weight: `O(1)` - **/ - lockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Mint an item of a particular collection. - * - * The origin must be Signed and the sender must comply with the `mint_settings` rules. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned - * item_id from that collection needs to be provided within the witness data object. If - * the mint price is set, then it should be additionally confirmed in the `witness_data`. - * - * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - mint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - witnessData: - | Option - | null - | Uint8Array - | PalletNftsMintWitness - | { ownedItem?: any; mintPrice?: any } - | string - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Mint an item by providing the pre-signed approval. - * - * Origin must be Signed. - * - * - `mint_data`: The pre-signed approval that consists of the information about the item, - * its metadata, attributes, who can mint it (`None` for anyone) and until what block - * number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Issuer of the collection. - * - * Emits `Issued` on success. - * Emits `AttributeSet` if the attributes were provided. - * Emits `ItemMetadataSet` if the metadata was not empty. - **/ - mintPreSigned: AugmentedSubmittable< - ( - mintData: - | PalletNftsPreSignedMint - | { - collection?: any; - item?: any; - attributes?: any; - metadata?: any; - onlyAccount?: any; - deadline?: any; - mintPrice?: any; - } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { Ed25519: any } - | { Sr25519: any } - | { Ecdsa: any } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Allows to pay the tips. - * - * Origin must be Signed. - * - * - `tips`: Tips array. - * - * Emits `TipSent` on every tip transfer. - **/ - payTips: AugmentedSubmittable< - ( - tips: - | Vec - | ( - | PalletNftsItemTip - | { collection?: any; item?: any; receiver?: any; amount?: any } - | string - | Uint8Array - )[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Re-evaluate the deposits on some items. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection of the items to be reevaluated. - * - `items`: The items of the collection whose deposits will be reevaluated. - * - * NOTE: This exists as a best-effort function. Any items which are unknown or - * in the case that the owner account does not have reservable funds to pay for a - * deposit increase are ignored. Generally the owner isn't going to call this on items - * whose existing deposit is less than the refreshed deposit as it would only cost them, - * so it's of little consequence. - * - * It will still return an error in the case that the collection is unknown or the signer - * is not permitted to call it. - * - * Weight: `O(items.len())` - **/ - redeposit: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - items: Vec | (u32 | AnyNumber | Uint8Array)[] - ) => SubmittableExtrinsic, - [u32, Vec] - >; - /** - * Set (or reset) the acceptance of ownership for a particular account. - * - * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a - * provider reference. - * - * - `maybe_collection`: The identifier of the collection whose ownership the signer is - * willing to accept, or if `None`, an indication that the signer is willing to accept no - * ownership transferal. - * - * Emits `OwnershipAcceptanceChanged`. - **/ - setAcceptOwnership: AugmentedSubmittable< - ( - maybeCollection: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Set an attribute for a collection or item. - * - * Origin must be Signed and must conform to the namespace ruleset: - * - `CollectionOwner` namespace could be modified by the `collection` Admin only; - * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` - * should be set in that case; - * - `Account(AccountId)` namespace could be modified only when the `origin` was given a - * permission to do so; - * - * The funds of `origin` are reserved according to the formula: - * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - setAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Set attributes for an item by providing the pre-signed approval. - * - * Origin must be Signed and must be an owner of the `data.item`. - * - * - `data`: The pre-signed approval that consists of the information about the item, - * attributes to update and until what block number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Admin of the collection for the - * `CollectionOwner` namespace. - * - * Emits `AttributeSet` for each provided attribute. - * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. - * Emits `PreSignedAttributesSet` on success. - **/ - setAttributesPreSigned: AugmentedSubmittable< - ( - data: - | PalletNftsPreSignedAttributes - | { collection?: any; item?: any; attributes?: any; namespace?: any; deadline?: any } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { Ed25519: any } - | { Sr25519: any } - | { Ecdsa: any } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Set the maximum number of items a collection could have. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of - * the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `max_supply`: The maximum number of items a collection could have. - * - * Emits `CollectionMaxSupplySet` event when successful. - **/ - setCollectionMaxSupply: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maxSupply: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Set the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * If the origin is `Signed`, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the item whose metadata to update. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `CollectionMetadataSet`. - * - * Weight: `O(1)` - **/ - setCollectionMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Bytes] - >; - /** - * Set the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * If the origin is Signed, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `item`: The identifier of the item whose metadata to set. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `ItemMetadataSet`. - * - * Weight: `O(1)` - **/ - setMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, Bytes] - >; - /** - * Set (or reset) the price for an item. - * - * Origin must be Signed and must be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item to set the price for. - * - `price`: The price for the item. Pass `None`, to reset the price. - * - `buyer`: Restricts the buy operation to a specific account. - * - * Emits `ItemPriceSet` on success if the price is not `None`. - * Emits `ItemPriceRemoved` on success if the price is `None`. - **/ - setPrice: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - price: Option | null | Uint8Array | u128 | AnyNumber, - whitelistedBuyer: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - ) => SubmittableExtrinsic, - [u32, u32, Option, Option] - >; - /** - * Change the Issuer, Admin and Freezer of a collection. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `collection`. - * - * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it - * after to `Some(account)`. - * - * - `collection`: The collection whose team should be changed. - * - `issuer`: The new Issuer of this collection. - * - `admin`: The new Admin of this collection. - * - `freezer`: The new Freezer of this collection. - * - * Emits `TeamChanged`. - * - * Weight: `O(1)` - **/ - setTeam: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - issuer: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string, - admin: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string, - freezer: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - ) => SubmittableExtrinsic, - [u32, Option, Option, Option] - >; - /** - * Move an item from the sender account to another. - * - * Origin must be Signed and the signing account must be either: - * - the Owner of the `item`; - * - the approved delegate for the `item` (in this case, the approval is reset). - * - * Arguments: - * - `collection`: The collection of the item to be transferred. - * - `item`: The item to be transferred. - * - `dest`: The account to receive ownership of the item. - * - * Emits `Transferred`. - * - * Weight: `O(1)` - **/ - transfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Change the Owner of a collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection whose owner should be changed. - * - `owner`: The new Owner of this collection. They must have called - * `set_accept_ownership` with `collection` in order for this operation to succeed. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - transferOwnership: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - newOwner: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Re-allow unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become transferable. - * - * Emits `ItemTransferUnlocked`. - * - * Weight: `O(1)` - **/ - unlockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Update mint settings. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer - * of the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `mint_settings`: The new mint settings. - * - * Emits `CollectionMintSettingsUpdated` event when successful. - **/ - updateMintSettings: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - mintSettings: - | PalletNftsMintSettings - | { - mintType?: any; - price?: any; - startBlock?: any; - endBlock?: any; - defaultItemSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsMintSettings] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainInfo: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainSystem: { - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec - * version and name should be verified on upgrade. Since the authorization only has a hash, - * it cannot actually perform the verification. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - ( - codeHash: H256 | string | Uint8Array, - checkVersion: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Note that this function will not apply the new `code`, but only attempt to schedule the - * upgrade with the Relay Chain. - * - * All origins are allowed. - **/ - enactAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the current validation data. - * - * This should be invoked exactly once per block. It will panic at the finalization - * phase if the call was not invoked. - * - * The dispatch origin for this call must be `Inherent` - * - * As a side effect, this function upgrades the current validation function - * if the appropriate time has come. - **/ - setValidationData: AugmentedSubmittable< - ( - data: - | CumulusPrimitivesParachainInherentParachainInherentData - | { - validationData?: any; - relayChainState?: any; - downwardMessages?: any; - horizontalMessages?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesParachainInherentParachainInherentData] - >; - sudoSendUpwardMessage: AugmentedSubmittable< - (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parameters: { - /** - * Set the value of a parameter. - * - * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be - * deleted by setting them to `None`. - **/ - setParameter: AugmentedSubmittable< - ( - keyValue: - | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters - | { RuntimeConfig: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - paymentStreams: { - /** - * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. - * - * The dispatch origin for this call must be Signed. - * The origin must be the Provider that has at least one type of payment stream with the User. - * - * Parameters: - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that a payment stream between the signer (Provider) and the User exists - * 3. If there is a fixed-rate payment stream: - * 1. Get the rate of the payment stream - * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream - * 3. Calculate the amount to charge doing `rate * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the last charged tick number of the payment stream - * 4. If there is a dynamic-rate payment stream: - * 1. Get the amount provided by the Provider - * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick - * 3. Calculate the amount to charge doing `amount_provided * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the price index when the stream was last charged of the payment stream - * - * Emits a `PaymentStreamCharged` event when successful. - * - * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic - * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. - **/ - chargePaymentStreams: AugmentedSubmittable< - (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, - * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Check that the cooldown period has passed since the user was flagged as without funds. - * 4. Check if there's any outstanding debt and charge it. This is done by: - * a. Releasing any remaining funds held as a deposit for each payment stream. - * b. Getting all payment streams of the user and charging them, paying the Providers for the services. - * c. Returning the User any remaining funds. - * d. Deleting all payment streams of the user. - * 5. Unflag the user as without funds. - * - * Emits a 'UserSolvent' event when successful. - * - * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `amount_provided`: The initial amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `DynamicRatePaymentStreamCreated` event when successful. - **/ - createDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - amountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `rate`: The initial rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `FixedRatePaymentStreamCreated` event when successful. - **/ - createFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - rate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `DynamicRatePaymentStreamDeleted` event when successful. - **/ - deleteDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `FixedRatePaymentStreamDeleted` event when successful. - **/ - deleteFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover - * its deposits. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Release the user's funds that were held as a deposit for each payment stream. - * 4. Get all payment streams of the user and charge them, paying the Providers for the services. - * 5. Delete all payment streams of the user. - * - * Emits a 'UserPaidDebts' event when successful. - * - * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_amount_provided`: The new amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `DynamicRatePaymentStreamUpdated` event when successful. - **/ - updateDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newAmountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_rate`: The new rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `FixedRatePaymentStreamUpdated` event when successful. - **/ - updateFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newRate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - polkadotXcm: { - /** - * Claims assets trapped on this pallet because of leftover assets during XCM execution. - * - * - `origin`: Anyone can call this extrinsic. - * - `assets`: The exact assets that were trapped. Use the version to specify what version - * was the latest when they were trapped. - * - `beneficiary`: The location/account where the claimed assets will be deposited. - **/ - claimAssets: AugmentedSubmittable< - ( - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedAssets, XcmVersionedLocation] - >; - /** - * Execute an XCM message from a local, signed, origin. - * - * An event is deposited indicating whether `msg` could be executed completely or only - * partially. - * - * No more than `max_weight` will be used in its attempted execution. If this is less than - * the maximum amount of weight that the message could take to be executed, then no - * execution attempt will be made. - **/ - execute: AugmentedSubmittable< - ( - message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, - maxWeight: - | SpWeightsWeightV2Weight - | { refTime?: any; proofSize?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedXcm, SpWeightsWeightV2Weight] - >; - /** - * Set a safe XCM version (the version that XCM should be encoded with if the most recent - * version a destination can accept is unknown). - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. - **/ - forceDefaultXcmVersion: AugmentedSubmittable< - ( - maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Ask a location to notify us regarding their XCM version and any changes to it. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we should subscribe for XCM version notifications. - **/ - forceSubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Set or unset the global suspension state of the XCM executor. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `suspended`: `true` to suspend, `false` to resume. - **/ - forceSuspension: AugmentedSubmittable< - (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * Require that a particular destination should no longer notify us regarding any XCM - * version changes. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we are currently subscribed for XCM version - * notifications which we no longer desire. - **/ - forceUnsubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Extoll that a particular destination can be communicated with through a particular - * version of XCM. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The destination that is being described. - * - `xcm_version`: The latest version of XCM that `location` supports. - **/ - forceXcmVersion: AugmentedSubmittable< - ( - location: StagingXcmV4Location | { parents?: any; interior?: any } | string | Uint8Array, - version: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [StagingXcmV4Location, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedReserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedTeleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - reserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - send: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedXcm] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * **This function is deprecated: Use `limited_teleport_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - teleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve, or through teleports. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for - * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the - * operation will fail and the sent assets may be at risk. - * - * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable - * to `dest`, no limitations imposed on `fees`. - * - for local reserve: transfer assets to sovereign account of destination chain and - * forward a notification XCM to `dest` to mint and deposit reserve-based assets to - * `beneficiary`. - * - for destination reserve: burn local assets and forward a notification to `dest` chain - * to withdraw the reserve assets from this chain's sovereign account and deposit them - * to `beneficiary`. - * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves - * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint - * and deposit reserve-based assets to `beneficiary`. - * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport - * assets and deposit them to `beneficiary`. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `X2(Parent, - * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send - * from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer assets from the local chain to the destination chain using explicit transfer - * types for assets and fees. - * - * `assets` must have same reserve location or may be teleportable to `dest`. Caller must - * provide the `assets_transfer_type` to be used for `assets`: - * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `TransferType::DestinationReserve`: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` - * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another - * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically - * the remote `reserve` is Asset Hub. - * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to - * mint/teleport assets and deposit them to `beneficiary`. - * - * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to - * buy execution using transferred `assets` identified by `remote_fees_id`. - * Make sure enough of the specified `remote_fees_id` asset is included in the given list - * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * `remote_fees_id` may use different transfer type than rest of `assets` and can be - * specified through `fees_transfer_type`. - * - * The caller needs to specify what should happen to the transferred assets once they reach - * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which - * contains the instructions to execute on `dest` as a final step. - * This is usually as simple as: - * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, - * but could be something more exotic like sending the `assets` even further. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from - * parachain across a bridge to another ecosystem destination. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. - * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. - * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. - * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the - * transfer, which also determines what happens to the assets on the destination chain. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssetsUsingTypeAndThen: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assetsTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { Teleport: any } - | { LocalReserve: any } - | { DestinationReserve: any } - | { RemoteReserve: any } - | string - | Uint8Array, - remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array, - feesTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { Teleport: any } - | { LocalReserve: any } - | { DestinationReserve: any } - | { RemoteReserve: any } - | string - | Uint8Array, - customXcmOnDest: - | XcmVersionedXcm - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [ - XcmVersionedLocation, - XcmVersionedAssets, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedAssetId, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedXcm, - XcmV3WeightLimit - ] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - proofsDealer: { - /** - * Introduce a new challenge. - * - * This function allows anyone to add a new challenge to the `ChallengesQueue`. - * The challenge will be dispatched in the coming blocks. - * Users are charged a small fee for submitting a challenge, which - * goes to the Treasury. - **/ - challenge: AugmentedSubmittable< - (key: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Initialise a Provider's challenge cycle. - * - * Only callable by sudo. - * - * Sets the last tick the Provider submitted a proof for to the current tick, and sets the - * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. - **/ - forceInitialiseChallengeCycle: AugmentedSubmittable< - (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Set the [`ChallengesTickerPaused`] to `true` or `false`. - * - * Only callable by sudo. - **/ - setPaused: AugmentedSubmittable< - (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * For a Provider to submit a proof. - * - * Checks that `provider` is a registered Provider. If none - * is provided, the proof submitter is considered to be the Provider. - * Relies on a Providers pallet to get the root for the Provider. - * Validates that the proof corresponds to a challenge that was made in the past, - * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the - * Provider should have submitted a proof is calculated based on the last tick they - * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for - * that Provider, which is a function of their stake. - * This extrinsic also checks that there hasn't been a checkpoint challenge round - * in between the last time the Provider submitted a proof for and the tick - * for which the proof is being submitted. If there has been, the Provider is - * subject to slashing. - * - * If valid: - * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number - * of ticks corresponding to the stake of the Provider. - * - Registers this tick as the last tick in which the Provider submitted a proof. - * - * Execution of this extrinsic should be refunded if the proof is valid. - **/ - submitProof: AugmentedSubmittable< - ( - proof: - | PalletProofsDealerProof - | { forestProof?: any; keyProofs?: any } - | string - | Uint8Array, - provider: Option | null | Uint8Array | H256 | string - ) => SubmittableExtrinsic, - [PalletProofsDealerProof, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - providers: { - /** - * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to add a value proposition. - * - * Parameters: - * - `new_value_prop`: The value proposition that the MSP wants to add to its service. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has not reached the maximum amount of value propositions - * 4. Check that the value proposition is valid (size and any other relevant checks) - * 5. Update the MSPs storage to add the value proposition (with its identifier) - * - * Emits `ValuePropAdded` event when successful. - **/ - addValueProp: AugmentedSubmittable< - ( - newValueProp: - | PalletStorageProvidersValueProposition - | { identifier?: any; dataLimit?: any; protocols?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [PalletStorageProvidersValueProposition] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Backup Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a BSP - * 3. Check that the BSP has no storage assigned to it - * 4. Update the BSPs storage, removing the signer as an BSP - * 5. Update the total capacity of all BSPs, removing the capacity of the signer - * 6. Return the deposit to the signer - * 7. Decrement the storage that holds total amount of BSPs currently in the system - * - * Emits `BspSignOffSuccess` event when successful. - **/ - bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer has requested to sign up as a SP - * 3. Delete the request from the Sign Up Requests storage - * 4. Return the deposit to the signer - * - * Emits `SignUpRequestCanceled` event when successful. - **/ - cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to change their amount of stored data - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to change its capacity. - * - * Parameters: - * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a SP - * 3. Check that enough time has passed since the last time the SP changed its capacity - * 4. Check that the new capacity is greater than the minimum required by the runtime - * 5. Check that the new capacity is greater than the data used by this SP - * 6. Calculate the new deposit needed for this new capacity - * 7. Check to see if the new deposit needed is greater or less than the current deposit - * a. If the new deposit is greater than the current deposit: - * i. Check that the signer has enough funds to pay this extra deposit - * ii. Hold the extra deposit from the signer - * b. If the new deposit is less than the current deposit, return the held difference to the signer - * 7. Update the SPs storage to change the total data - * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) - * - * Emits `CapacityChanged` event when successful. - **/ - changeCapacity: AugmentedSubmittable< - (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider, except when providing a - * `provider_account` parameter, in which case the origin can be any account. - * - * Parameters: - * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer - * will be considered the account that requested to sign up. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed - * 2. Check that the account received has requested to register as a SP - * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request - * 4. Check that the request has not expired - * 5. Register the signer as a MSP or BSP with the data provided in the request - * - * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. - * - * Notes: - * - This extrinsic could be called by the user itself or by a third party - * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP - * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating - **/ - confirmSignUp: AugmentedSubmittable< - ( - providerAccount: Option | null | Uint8Array | AccountId32 | string - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Backup Storage Provider. - * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the steps of: - * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. - **/ - forceBspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - bspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array, - weight: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, AccountId32, Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Main Storage Provider. - * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the steps of: - * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. - **/ - forceMspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - mspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { identifier?: any; dataLimit?: any; protocols?: any } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Main Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) - * 4. Update the MSPs storage, removing the signer as an MSP - * 5. Return the deposit to the signer - * 6. Decrement the storage that holds total amount of MSPs currently in the system - * - * Emits `MspSignOffSuccess` event when successful. - **/ - mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP - * - * Emits `BspRequestSignUpSuccess` event when successful. - **/ - requestBspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime. - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP - * - * Emits `MspRequestSignUpSuccess` event when successful. - **/ - requestMspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { identifier?: any; dataLimit?: any; protocols?: any } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic to slash a _slashable_ Storage Provider. - * - * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. - * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. - **/ - slash: AugmentedSubmittable< - (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - randomness: { - /** - * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the - * relay chain into a variable that can then be used as a seed for commitments that happened during - * the previous relay chain epoch - **/ - setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - session: { - /** - * Removes any session key(s) of the function caller. - * - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be Signed and the account must be either be - * convertible to a validator ID using the chain's typical addressing system (this usually - * means being a controller account) or directly convertible into a validator ID (which - * usually means being a stash account). - * - * ## Complexity - * - `O(1)` in number of key types. Actual cost depends on the number of length of - * `T::Keys::key_ids()` which is fixed. - **/ - purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Sets the session key(s) of the function caller to `keys`. - * Allows an account to set its session key prior to becoming a validator. - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be signed. - * - * ## Complexity - * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is - * fixed. - **/ - setKeys: AugmentedSubmittable< - ( - keys: StorageHubRuntimeSessionKeys | { aura?: any } | string | Uint8Array, - proof: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeSessionKeys, Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - sudo: { - /** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - **/ - removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - **/ - setKey: AugmentedSubmittable< - ( - updated: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - **/ - sudo: AugmentedSubmittable< - (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, - [Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoAs: AugmentedSubmittable< - ( - who: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - call: Call | IMethod | string | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoUncheckedWeight: AugmentedSubmittable< - ( - call: Call | IMethod | string | Uint8Array, - weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [Call, SpWeightsWeightV2Weight] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - system: { - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - **/ - applyAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - **/ - authorizeUpgradeWithoutChecks: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - **/ - killPrefix: AugmentedSubmittable< - ( - prefix: Bytes | string | Uint8Array, - subkeys: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [Bytes, u32] - >; - /** - * Kill some items from storage. - **/ - killStorage: AugmentedSubmittable< - (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, - [Vec] - >; - /** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - **/ - remark: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Make some on-chain remark and emit event. - **/ - remarkWithEvent: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code. - **/ - setCode: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - **/ - setCodeWithoutChecks: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the number of pages in the WebAssembly environment's heap. - **/ - setHeapPages: AugmentedSubmittable< - (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Set some items of storage. - **/ - setStorage: AugmentedSubmittable< - ( - items: - | Vec> - | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] - ) => SubmittableExtrinsic, - [Vec>] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - timestamp: { - /** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - **/ - set: AugmentedSubmittable< - (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [Compact] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - xcmpQueue: { - /** - * Resumes all XCM executions for the XCMP queue. - * - * Note that this function doesn't change the status of the in/out bound channels. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Overwrites the number of pages which must be in the queue after which we drop any - * further messages from the channel. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.drop_threshold` - **/ - updateDropThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which the queue must be reduced to before it signals - * that message sending may recommence after it has been suspended. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.resume_threshold` - **/ - updateResumeThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which must be in the queue for the other side to be - * told to suspend their sending. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.suspend_value` - **/ - updateSuspendThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - } // AugmentedSubmittables -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/submittable"; + +import type { + ApiTypes, + AugmentedSubmittable, + SubmittableExtrinsic, + SubmittableExtrinsicFunction +} from "@polkadot/api-base/types"; +import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + PalletBalancesAdjustmentDirection, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemMspStorageRequestResponse, + PalletNftsAttributeNamespace, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsDestroyWitness, + PalletNftsItemConfig, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintWitness, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersValueProposition, + ShpFileKeyVerifierFileKeyProof, + SpRuntimeMultiSignature, + SpTrieStorageProofCompactProof, + SpWeightsWeightV2Weight, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV4Location, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeSessionKeys, + XcmV3WeightLimit, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedXcm +} from "@polkadot/types/lookup"; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = + SubmittableExtrinsicFunction; + +declare module "@polkadot/api-base/types/submittable" { + interface AugmentedSubmittables { + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable< + ( + value: Compact | AnyNumber | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [Compact, bool] + >; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable< + ( + direction: + | PalletBalancesAdjustmentDirection + | "Increase" + | "Decrease" + | number + | Uint8Array, + delta: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [PalletBalancesAdjustmentDirection, Compact] + >; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable< + ( + who: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + newFree: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable< + ( + source: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, MultiAddress, Compact] + >; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable< + ( + who: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + amount: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, u128] + >; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, bool] + >; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable< + ( + who: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bucketNfts: { + /** + * Share access to files within a bucket with another account. + * + * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. + **/ + shareAccess: AugmentedSubmittable< + ( + recipient: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [MultiAddress, H256, u32, Option] + >; + /** + * Update read access for an item. + **/ + updateReadAccess: AugmentedSubmittable< + ( + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [H256, u32, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + collatorSelection: { + /** + * Add a new account `who` to the list of `Invulnerables` collators. `who` must have + * registered session keys. If `who` is a candidate, they will be removed. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + addInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Deregister `origin` as a collator candidate. Note that the collator can only leave on + * session change. The `CandidacyBond` will be unreserved immediately. + * + * This call will fail if the total number of candidates would drop below + * `MinEligibleCollators`. + **/ + leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register this account as a collator candidate. The account must (a) already have + * registered session keys and (b) be able to reserve the `CandidacyBond`. + * + * This call is not available to `Invulnerable` collators. + **/ + registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must + * be sorted. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + removeInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Set the candidacy bond amount. + * + * If the candidacy bond is increased by this call, all current candidates which have a + * deposit lower than the new bond will be kicked from the list and get their deposits + * back. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setCandidacyBond: AugmentedSubmittable< + (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Set the ideal number of non-invulnerable collators. If lowering this number, then the + * number of running collators could be higher than this figure. Aside from that edge case, + * there should be no other way to have more candidates than the desired number. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setDesiredCandidates: AugmentedSubmittable< + (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Set the list of invulnerable (fixed) collators. These collators must do some + * preparation, namely to have registered session keys. + * + * The call will remove any accounts that have not registered keys from the set. That is, + * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as + * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. + * + * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It + * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A + * `batch_all` can also be used to enforce atomicity. If any candidates are included in + * `new`, they should be removed with `remove_invulnerable_candidate` after execution. + * + * Must be called by the `UpdateOrigin`. + **/ + setInvulnerables: AugmentedSubmittable< + ( + updated: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * The caller `origin` replaces a candidate `target` in the collator candidate list by + * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than + * the existing bond of the target it is trying to replace. + * + * This call will fail if the caller is already a collator candidate or invulnerable, the + * caller does not have registered session keys, the target is not a collator candidate, + * and/or the `deposit` amount cannot be reserved. + **/ + takeCandidateSlot: AugmentedSubmittable< + ( + deposit: u128 | AnyNumber | Uint8Array, + target: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u128, AccountId32] + >; + /** + * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. + * + * Setting a `new_deposit` that is lower than the current deposit while `origin` is + * occupying a top-`DesiredCandidates` slot is not allowed. + * + * This call will fail if `origin` is not a collator candidate, the updated bond is lower + * than the minimum candidacy bond, and/or the amount cannot be reserved. + **/ + updateBond: AugmentedSubmittable< + (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + cumulusXcm: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fileSystem: { + /** + * Add yourself as a data server for providing the files of the bucket requested to be moved. + **/ + bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Executed by a BSP to confirm to stop storing a file. + * + * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. + * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the + * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. + **/ + bspConfirmStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to confirm they are storing data of a storage request. + **/ + bspConfirmStoring: AugmentedSubmittable< + ( + nonInclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array, + fileKeysAndProofs: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | ShpFileKeyVerifierFileKeyProof + | { fileMetadata?: any; proof?: any } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [SpTrieStorageProofCompactProof, Vec>] + >; + /** + * Executed by a BSP to request to stop storing a file. + * + * In the event when a storage request no longer exists for the data the BSP no longer stores, + * it is required that the BSP still has access to the metadata of the initial storage request. + * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever + * the BSP gets that data is up to it. One example could be from the assigned MSP. + * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage + * provider's Merkle Forest. + **/ + bspRequestStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + canServe: bool | boolean | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to volunteer for storing a file. + * + * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, + * so a BSP is strongly advised to check beforehand. Another reason for failure is + * if the maximum number of BSPs has been reached. A successful assignment as BSP means + * that some of the collateral tokens of that MSP are frozen. + **/ + bspVolunteer: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Create and associate a collection with a bucket. + **/ + createAndAssociateCollectionWithBucket: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + createBucket: AugmentedSubmittable< + ( + mspId: H256 | string | Uint8Array, + name: Bytes | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, Bytes, bool] + >; + deleteFile: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + fingerprint: H256 | string | Uint8Array, + maybeInclusionForestProof: + | Option + | null + | Uint8Array + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + ) => SubmittableExtrinsic, + [H256, H256, Bytes, u64, H256, Option] + >; + /** + * Issue a new storage request for a file + **/ + issueStorageRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + mspId: H256 | string | Uint8Array, + peerIds: Vec | (Bytes | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [H256, Bytes, H256, u64, H256, Vec] + >; + mspRespondMoveBucketRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + response: + | PalletFileSystemBucketMoveRequestResponse + | "Accepted" + | "Rejected" + | number + | Uint8Array + ) => SubmittableExtrinsic, + [H256, PalletFileSystemBucketMoveRequestResponse] + >; + /** + * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. + * + * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be + * accepted, rejected or have failed to be processed in the results of the event emitted. + * + * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys + * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that + * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP + * wasn't storing it before. + **/ + mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< + ( + fileKeyResponsesInput: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | PalletFileSystemMspStorageRequestResponse + | { accept?: any; reject?: any } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [Vec>] + >; + pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< + ( + user: AccountId32 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + forestProof: SpTrieStorageProofCompactProof | { encodedNodes?: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, H256, SpTrieStorageProofCompactProof] + >; + requestMoveBucket: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + newMspId: H256 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256] + >; + /** + * Revoke storage request + **/ + revokeStorageRequest: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + setGlobalParameters: AugmentedSubmittable< + ( + replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, + tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option, Option] + >; + /** + * Executed by a SP to stop storing a file from an insolvent user. + * + * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since + * it won't be getting paid for it anymore. + * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to + * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. + **/ + stopStoringForInsolventUser: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] + >; + updateBucketPrivacy: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { Here: any } + | { Parent: any } + | { Sibling: any } + | string + | Uint8Array, + page: u32 | AnyNumber | Uint8Array, + index: u32 | AnyNumber | Uint8Array, + weightLimit: + | SpWeightsWeightV2Weight + | { refTime?: any; proofSize?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] + >; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { Here: any } + | { Parent: any } + | { Sibling: any } + | string + | Uint8Array, + pageIndex: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + bidPrice: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u128] + >; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + witness: + | PalletNftsCancelAttributesApprovalWitness + | { accountAttributes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] + >; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable< + ( + sendCollection: u32 | AnyNumber | Uint8Array, + sendItem: u32 | AnyNumber | Uint8Array, + receiveCollection: u32 | AnyNumber | Uint8Array, + receiveItem: u32 | AnyNumber | Uint8Array, + witnessPrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { amount?: any; direction?: any } + | string + ) => SubmittableExtrinsic, + [u32, u32, u32, u32, Option] + >; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + key: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes] + >; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable< + (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable< + ( + admin: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { settings?: any; maxSupply?: any; mintSettings?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array, + desiredCollection: u32 | AnyNumber | Uint8Array, + maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, + maybePrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { amount?: any; direction?: any } + | string, + duration: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u32, Option, Option, u32] + >; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + witness: + | PalletNftsDestroyWitness + | { itemMetadatas?: any; itemConfigs?: any; attributes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsDestroyWitness] + >; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + config: + | PalletNftsCollectionConfig + | { settings?: any; maxSupply?: any; mintSettings?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsCollectionConfig] + >; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + owner: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable< + ( + owner: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { settings?: any; maxSupply?: any; mintSettings?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + itemConfig: PalletNftsItemConfig | { settings?: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsItemConfig] + >; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable< + ( + setAs: Option | null | Uint8Array | AccountId32 | string, + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + lockSettings: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u64] + >; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + lockMetadata: bool | boolean | Uint8Array, + lockAttributes: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, bool, bool] + >; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + witnessData: + | Option + | null + | Uint8Array + | PalletNftsMintWitness + | { ownedItem?: any; mintPrice?: any } + | string + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable< + ( + mintData: + | PalletNftsPreSignedMint + | { + collection?: any; + item?: any; + attributes?: any; + metadata?: any; + onlyAccount?: any; + deadline?: any; + mintPrice?: any; + } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { Ed25519: any } + | { Sr25519: any } + | { Ecdsa: any } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable< + ( + tips: + | Vec + | ( + | PalletNftsItemTip + | { collection?: any; item?: any; receiver?: any; amount?: any } + | string + | Uint8Array + )[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + items: Vec | (u32 | AnyNumber | Uint8Array)[] + ) => SubmittableExtrinsic, + [u32, Vec] + >; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable< + ( + maybeCollection: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable< + ( + data: + | PalletNftsPreSignedAttributes + | { collection?: any; item?: any; attributes?: any; namespace?: any; deadline?: any } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { Ed25519: any } + | { Sr25519: any } + | { Ecdsa: any } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maxSupply: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Bytes] + >; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, Bytes] + >; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + price: Option | null | Uint8Array | u128 | AnyNumber, + whitelistedBuyer: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + ) => SubmittableExtrinsic, + [u32, u32, Option, Option] + >; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + issuer: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string, + admin: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string, + freezer: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + ) => SubmittableExtrinsic, + [u32, Option, Option, Option] + >; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + newOwner: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + mintSettings: + | PalletNftsMintSettings + | { + mintType?: any; + price?: any; + startBlock?: any; + endBlock?: any; + defaultItemSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsMintSettings] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainInfo: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainSystem: { + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec + * version and name should be verified on upgrade. Since the authorization only has a hash, + * it cannot actually perform the verification. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + ( + codeHash: H256 | string | Uint8Array, + checkVersion: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Note that this function will not apply the new `code`, but only attempt to schedule the + * upgrade with the Relay Chain. + * + * All origins are allowed. + **/ + enactAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the current validation data. + * + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. + * + * The dispatch origin for this call must be `Inherent` + * + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ + setValidationData: AugmentedSubmittable< + ( + data: + | CumulusPrimitivesParachainInherentParachainInherentData + | { + validationData?: any; + relayChainState?: any; + downwardMessages?: any; + horizontalMessages?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesParachainInherentParachainInherentData] + >; + sudoSendUpwardMessage: AugmentedSubmittable< + (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable< + ( + keyValue: + | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters + | { RuntimeConfig: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paymentStreams: { + /** + * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. + * + * The dispatch origin for this call must be Signed. + * The origin must be the Provider that has at least one type of payment stream with the User. + * + * Parameters: + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that a payment stream between the signer (Provider) and the User exists + * 3. If there is a fixed-rate payment stream: + * 1. Get the rate of the payment stream + * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream + * 3. Calculate the amount to charge doing `rate * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the last charged tick number of the payment stream + * 4. If there is a dynamic-rate payment stream: + * 1. Get the amount provided by the Provider + * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick + * 3. Calculate the amount to charge doing `amount_provided * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the price index when the stream was last charged of the payment stream + * + * Emits a `PaymentStreamCharged` event when successful. + * + * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic + * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. + **/ + chargePaymentStreams: AugmentedSubmittable< + (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, + * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Check that the cooldown period has passed since the user was flagged as without funds. + * 4. Check if there's any outstanding debt and charge it. This is done by: + * a. Releasing any remaining funds held as a deposit for each payment stream. + * b. Getting all payment streams of the user and charging them, paying the Providers for the services. + * c. Returning the User any remaining funds. + * d. Deleting all payment streams of the user. + * 5. Unflag the user as without funds. + * + * Emits a 'UserSolvent' event when successful. + * + * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `amount_provided`: The initial amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `DynamicRatePaymentStreamCreated` event when successful. + **/ + createDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + amountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `rate`: The initial rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `FixedRatePaymentStreamCreated` event when successful. + **/ + createFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + rate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `DynamicRatePaymentStreamDeleted` event when successful. + **/ + deleteDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `FixedRatePaymentStreamDeleted` event when successful. + **/ + deleteFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover + * its deposits. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Release the user's funds that were held as a deposit for each payment stream. + * 4. Get all payment streams of the user and charge them, paying the Providers for the services. + * 5. Delete all payment streams of the user. + * + * Emits a 'UserPaidDebts' event when successful. + * + * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_amount_provided`: The new amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `DynamicRatePaymentStreamUpdated` event when successful. + **/ + updateDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newAmountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_rate`: The new rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `FixedRatePaymentStreamUpdated` event when successful. + **/ + updateFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newRate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + polkadotXcm: { + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable< + ( + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedAssets, XcmVersionedLocation] + >; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable< + ( + message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, + maxWeight: + | SpWeightsWeightV2Weight + | { refTime?: any; proofSize?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedXcm, SpWeightsWeightV2Weight] + >; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable< + ( + maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable< + (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable< + ( + location: StagingXcmV4Location | { parents?: any; interior?: any } | string | Uint8Array, + version: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [StagingXcmV4Location, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + send: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedXcm] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assetsTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { Teleport: any } + | { LocalReserve: any } + | { DestinationReserve: any } + | { RemoteReserve: any } + | string + | Uint8Array, + remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array, + feesTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { Teleport: any } + | { LocalReserve: any } + | { DestinationReserve: any } + | { RemoteReserve: any } + | string + | Uint8Array, + customXcmOnDest: + | XcmVersionedXcm + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [ + XcmVersionedLocation, + XcmVersionedAssets, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedAssetId, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedXcm, + XcmV3WeightLimit + ] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proofsDealer: { + /** + * Introduce a new challenge. + * + * This function allows anyone to add a new challenge to the `ChallengesQueue`. + * The challenge will be dispatched in the coming blocks. + * Users are charged a small fee for submitting a challenge, which + * goes to the Treasury. + **/ + challenge: AugmentedSubmittable< + (key: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Initialise a Provider's challenge cycle. + * + * Only callable by sudo. + * + * Sets the last tick the Provider submitted a proof for to the current tick, and sets the + * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. + **/ + forceInitialiseChallengeCycle: AugmentedSubmittable< + (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Set the [`ChallengesTickerPaused`] to `true` or `false`. + * + * Only callable by sudo. + **/ + setPaused: AugmentedSubmittable< + (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * For a Provider to submit a proof. + * + * Checks that `provider` is a registered Provider. If none + * is provided, the proof submitter is considered to be the Provider. + * Relies on a Providers pallet to get the root for the Provider. + * Validates that the proof corresponds to a challenge that was made in the past, + * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the + * Provider should have submitted a proof is calculated based on the last tick they + * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for + * that Provider, which is a function of their stake. + * This extrinsic also checks that there hasn't been a checkpoint challenge round + * in between the last time the Provider submitted a proof for and the tick + * for which the proof is being submitted. If there has been, the Provider is + * subject to slashing. + * + * If valid: + * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number + * of ticks corresponding to the stake of the Provider. + * - Registers this tick as the last tick in which the Provider submitted a proof. + * + * Execution of this extrinsic should be refunded if the proof is valid. + **/ + submitProof: AugmentedSubmittable< + ( + proof: + | PalletProofsDealerProof + | { forestProof?: any; keyProofs?: any } + | string + | Uint8Array, + provider: Option | null | Uint8Array | H256 | string + ) => SubmittableExtrinsic, + [PalletProofsDealerProof, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + providers: { + /** + * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to add a value proposition. + * + * Parameters: + * - `new_value_prop`: The value proposition that the MSP wants to add to its service. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has not reached the maximum amount of value propositions + * 4. Check that the value proposition is valid (size and any other relevant checks) + * 5. Update the MSPs storage to add the value proposition (with its identifier) + * + * Emits `ValuePropAdded` event when successful. + **/ + addValueProp: AugmentedSubmittable< + ( + newValueProp: + | PalletStorageProvidersValueProposition + | { identifier?: any; dataLimit?: any; protocols?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [PalletStorageProvidersValueProposition] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Backup Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a BSP + * 3. Check that the BSP has no storage assigned to it + * 4. Update the BSPs storage, removing the signer as an BSP + * 5. Update the total capacity of all BSPs, removing the capacity of the signer + * 6. Return the deposit to the signer + * 7. Decrement the storage that holds total amount of BSPs currently in the system + * + * Emits `BspSignOffSuccess` event when successful. + **/ + bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer has requested to sign up as a SP + * 3. Delete the request from the Sign Up Requests storage + * 4. Return the deposit to the signer + * + * Emits `SignUpRequestCanceled` event when successful. + **/ + cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to change their amount of stored data + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to change its capacity. + * + * Parameters: + * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a SP + * 3. Check that enough time has passed since the last time the SP changed its capacity + * 4. Check that the new capacity is greater than the minimum required by the runtime + * 5. Check that the new capacity is greater than the data used by this SP + * 6. Calculate the new deposit needed for this new capacity + * 7. Check to see if the new deposit needed is greater or less than the current deposit + * a. If the new deposit is greater than the current deposit: + * i. Check that the signer has enough funds to pay this extra deposit + * ii. Hold the extra deposit from the signer + * b. If the new deposit is less than the current deposit, return the held difference to the signer + * 7. Update the SPs storage to change the total data + * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) + * + * Emits `CapacityChanged` event when successful. + **/ + changeCapacity: AugmentedSubmittable< + (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider, except when providing a + * `provider_account` parameter, in which case the origin can be any account. + * + * Parameters: + * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer + * will be considered the account that requested to sign up. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed + * 2. Check that the account received has requested to register as a SP + * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request + * 4. Check that the request has not expired + * 5. Register the signer as a MSP or BSP with the data provided in the request + * + * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. + * + * Notes: + * - This extrinsic could be called by the user itself or by a third party + * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP + * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating + **/ + confirmSignUp: AugmentedSubmittable< + ( + providerAccount: Option | null | Uint8Array | AccountId32 | string + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Backup Storage Provider. + * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the steps of: + * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. + **/ + forceBspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + bspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array, + weight: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, AccountId32, Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Main Storage Provider. + * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the steps of: + * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. + **/ + forceMspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + mspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { identifier?: any; dataLimit?: any; protocols?: any } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Main Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) + * 4. Update the MSPs storage, removing the signer as an MSP + * 5. Return the deposit to the signer + * 6. Decrement the storage that holds total amount of MSPs currently in the system + * + * Emits `MspSignOffSuccess` event when successful. + **/ + mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP + * + * Emits `BspRequestSignUpSuccess` event when successful. + **/ + requestBspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime. + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP + * + * Emits `MspRequestSignUpSuccess` event when successful. + **/ + requestMspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { identifier?: any; dataLimit?: any; protocols?: any } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic to slash a _slashable_ Storage Provider. + * + * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. + * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. + **/ + slash: AugmentedSubmittable< + (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + randomness: { + /** + * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the + * relay chain into a variable that can then be used as a seed for commitments that happened during + * the previous relay chain epoch + **/ + setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable< + ( + keys: StorageHubRuntimeSessionKeys | { aura?: any } | string | Uint8Array, + proof: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeSessionKeys, Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + sudo: { + /** + * Permanently removes the sudo key. + * + * **This cannot be un-done.** + **/ + removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + **/ + setKey: AugmentedSubmittable< + ( + updated: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + **/ + sudo: AugmentedSubmittable< + (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, + [Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoAs: AugmentedSubmittable< + ( + who: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoUncheckedWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [Call, SpWeightsWeightV2Weight] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable< + ( + prefix: Bytes | string | Uint8Array, + subkeys: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [Bytes, u32] + >; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable< + (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, + [Vec] + >; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable< + (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable< + ( + items: + | Vec> + | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] + ) => SubmittableExtrinsic, + [Vec>] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable< + (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [Compact] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmpQueue: { + /** + * Resumes all XCM executions for the XCMP queue. + * + * Note that this function doesn't change the status of the in/out bound channels. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.drop_threshold` + **/ + updateDropThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.resume_threshold` + **/ + updateResumeThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.suspend_value` + **/ + updateSuspendThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/api-augment/src/interfaces/registry.ts b/api-augment/src/interfaces/registry.ts index ca45806ab..8e309a887 100644 --- a/api-augment/src/interfaces/registry.ts +++ b/api-augment/src/interfaces/registry.ts @@ -1,546 +1,546 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/types/types/registry"; - -import type { - CumulusPalletParachainSystemCall, - CumulusPalletParachainSystemError, - CumulusPalletParachainSystemEvent, - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, - CumulusPalletParachainSystemUnincludedSegmentAncestor, - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, - CumulusPalletXcmCall, - CumulusPalletXcmEvent, - CumulusPalletXcmpQueueCall, - CumulusPalletXcmpQueueError, - CumulusPalletXcmpQueueEvent, - CumulusPalletXcmpQueueOutboundChannelDetails, - CumulusPalletXcmpQueueOutboundState, - CumulusPalletXcmpQueueQueueConfigData, - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, - FrameMetadataHashExtensionCheckMetadataHash, - FrameMetadataHashExtensionMode, - FrameSupportDispatchDispatchClass, - FrameSupportDispatchDispatchInfo, - FrameSupportDispatchPays, - FrameSupportDispatchPerDispatchClassU32, - FrameSupportDispatchPerDispatchClassWeight, - FrameSupportDispatchPerDispatchClassWeightsPerClass, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - FrameSystemAccountInfo, - FrameSystemCall, - FrameSystemCodeUpgradeAuthorization, - FrameSystemError, - FrameSystemEvent, - FrameSystemEventRecord, - FrameSystemExtensionsCheckGenesis, - FrameSystemExtensionsCheckNonZeroSender, - FrameSystemExtensionsCheckNonce, - FrameSystemExtensionsCheckSpecVersion, - FrameSystemExtensionsCheckTxVersion, - FrameSystemExtensionsCheckWeight, - FrameSystemLastRuntimeUpgradeInfo, - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - FrameSystemLimitsWeightsPerClass, - FrameSystemPhase, - PalletBalancesAccountData, - PalletBalancesAdjustmentDirection, - PalletBalancesBalanceLock, - PalletBalancesCall, - PalletBalancesError, - PalletBalancesEvent, - PalletBalancesIdAmount, - PalletBalancesReasons, - PalletBalancesReserveData, - PalletBucketNftsCall, - PalletBucketNftsError, - PalletBucketNftsEvent, - PalletCollatorSelectionCall, - PalletCollatorSelectionCandidateInfo, - PalletCollatorSelectionError, - PalletCollatorSelectionEvent, - PalletFileSystemAcceptedStorageRequestParameters, - PalletFileSystemBatchResponses, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemCall, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemError, - PalletFileSystemEvent, - PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemMspAcceptedBatchStorageRequests, - PalletFileSystemMspFailedBatchStorageRequests, - PalletFileSystemMspRejectedBatchStorageRequests, - PalletFileSystemMspRespondStorageRequestsResult, - PalletFileSystemMspStorageRequestResponse, - PalletFileSystemRejectedStorageRequestReason, - PalletFileSystemStorageRequestBspsMetadata, - PalletFileSystemStorageRequestMetadata, - PalletMessageQueueBookState, - PalletMessageQueueCall, - PalletMessageQueueError, - PalletMessageQueueEvent, - PalletMessageQueueNeighbours, - PalletMessageQueuePage, - PalletNftsAttributeDeposit, - PalletNftsAttributeNamespace, - PalletNftsCall, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsCollectionDetails, - PalletNftsCollectionMetadata, - PalletNftsCollectionRole, - PalletNftsCollectionSetting, - PalletNftsDestroyWitness, - PalletNftsError, - PalletNftsEvent, - PalletNftsItemConfig, - PalletNftsItemDeposit, - PalletNftsItemDetails, - PalletNftsItemMetadata, - PalletNftsItemMetadataDeposit, - PalletNftsItemSetting, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintType, - PalletNftsMintWitness, - PalletNftsPalletAttributes, - PalletNftsPalletFeature, - PalletNftsPendingSwap, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceDirection, - PalletNftsPriceWithDirection, - PalletParametersCall, - PalletParametersEvent, - PalletPaymentStreamsCall, - PalletPaymentStreamsDynamicRatePaymentStream, - PalletPaymentStreamsError, - PalletPaymentStreamsEvent, - PalletPaymentStreamsFixedRatePaymentStream, - PalletPaymentStreamsHoldReason, - PalletPaymentStreamsProviderLastChargeableInfo, - PalletProofsDealerCall, - PalletProofsDealerError, - PalletProofsDealerEvent, - PalletProofsDealerKeyProof, - PalletProofsDealerProof, - PalletRandomnessCall, - PalletRandomnessEvent, - PalletSessionCall, - PalletSessionError, - PalletSessionEvent, - PalletStorageProvidersBackupStorageProvider, - PalletStorageProvidersBucket, - PalletStorageProvidersCall, - PalletStorageProvidersError, - PalletStorageProvidersEvent, - PalletStorageProvidersHoldReason, - PalletStorageProvidersMainStorageProvider, - PalletStorageProvidersStorageProvider, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - PalletSudoCall, - PalletSudoError, - PalletSudoEvent, - PalletTimestampCall, - PalletTransactionPaymentChargeTransactionPayment, - PalletTransactionPaymentEvent, - PalletTransactionPaymentReleases, - PalletXcmCall, - PalletXcmError, - PalletXcmEvent, - PalletXcmQueryStatus, - PalletXcmRemoteLockedFungibleRecord, - PalletXcmVersionMigrationStage, - PolkadotCorePrimitivesInboundDownwardMessage, - PolkadotCorePrimitivesInboundHrmpMessage, - PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV7AbridgedHostConfiguration, - PolkadotPrimitivesV7AbridgedHrmpChannel, - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, - PolkadotPrimitivesV7PersistedValidationData, - PolkadotPrimitivesV7UpgradeGoAhead, - PolkadotPrimitivesV7UpgradeRestriction, - ShpFileKeyVerifierFileKeyProof, - ShpFileMetadataFileMetadata, - ShpFileMetadataFingerprint, - ShpTraitsTrieRemoveMutation, - SpArithmeticArithmeticError, - SpConsensusAuraSr25519AppSr25519Public, - SpCoreCryptoKeyTypeId, - SpRuntimeDigest, - SpRuntimeDigestDigestItem, - SpRuntimeDispatchError, - SpRuntimeModuleError, - SpRuntimeMultiSignature, - SpRuntimeTokenError, - SpRuntimeTransactionalError, - SpTrieStorageProof, - SpTrieStorageProofCompactProof, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight, - StagingParachainInfoCall, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV3MultiLocation, - StagingXcmV4Asset, - StagingXcmV4AssetAssetFilter, - StagingXcmV4AssetAssetId, - StagingXcmV4AssetAssetInstance, - StagingXcmV4AssetAssets, - StagingXcmV4AssetFungibility, - StagingXcmV4AssetWildAsset, - StagingXcmV4AssetWildFungibility, - StagingXcmV4Instruction, - StagingXcmV4Junction, - StagingXcmV4JunctionNetworkId, - StagingXcmV4Junctions, - StagingXcmV4Location, - StagingXcmV4PalletInfo, - StagingXcmV4QueryResponseInfo, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - StorageHubRuntimeRuntime, - StorageHubRuntimeRuntimeHoldReason, - StorageHubRuntimeSessionKeys, - XcmDoubleEncoded, - XcmV2BodyId, - XcmV2BodyPart, - XcmV2Instruction, - XcmV2Junction, - XcmV2MultiAsset, - XcmV2MultiLocation, - XcmV2MultiassetAssetId, - XcmV2MultiassetAssetInstance, - XcmV2MultiassetFungibility, - XcmV2MultiassetMultiAssetFilter, - XcmV2MultiassetMultiAssets, - XcmV2MultiassetWildFungibility, - XcmV2MultiassetWildMultiAsset, - XcmV2MultilocationJunctions, - XcmV2NetworkId, - XcmV2OriginKind, - XcmV2Response, - XcmV2TraitsError, - XcmV2WeightLimit, - XcmV2Xcm, - XcmV3Instruction, - XcmV3Junction, - XcmV3JunctionBodyId, - XcmV3JunctionBodyPart, - XcmV3JunctionNetworkId, - XcmV3Junctions, - XcmV3MaybeErrorCode, - XcmV3MultiAsset, - XcmV3MultiassetAssetId, - XcmV3MultiassetAssetInstance, - XcmV3MultiassetFungibility, - XcmV3MultiassetMultiAssetFilter, - XcmV3MultiassetMultiAssets, - XcmV3MultiassetWildFungibility, - XcmV3MultiassetWildMultiAsset, - XcmV3OriginKind, - XcmV3PalletInfo, - XcmV3QueryResponseInfo, - XcmV3Response, - XcmV3TraitsError, - XcmV3WeightLimit, - XcmV3Xcm, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedResponse, - XcmVersionedXcm -} from "@polkadot/types/lookup"; - -declare module "@polkadot/types/types/registry" { - interface InterfaceTypes { - CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; - CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; - CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - CumulusPalletXcmCall: CumulusPalletXcmCall; - CumulusPalletXcmEvent: CumulusPalletXcmEvent; - CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; - CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; - CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; - CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; - CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; - CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; - CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; - FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; - FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; - FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; - FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; - FrameSupportDispatchPays: FrameSupportDispatchPays; - FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; - FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; - FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; - FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; - FrameSystemAccountInfo: FrameSystemAccountInfo; - FrameSystemCall: FrameSystemCall; - FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; - FrameSystemError: FrameSystemError; - FrameSystemEvent: FrameSystemEvent; - FrameSystemEventRecord: FrameSystemEventRecord; - FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; - FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; - FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; - FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; - FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; - FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; - FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; - FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; - FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; - FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; - FrameSystemPhase: FrameSystemPhase; - PalletBalancesAccountData: PalletBalancesAccountData; - PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; - PalletBalancesBalanceLock: PalletBalancesBalanceLock; - PalletBalancesCall: PalletBalancesCall; - PalletBalancesError: PalletBalancesError; - PalletBalancesEvent: PalletBalancesEvent; - PalletBalancesIdAmount: PalletBalancesIdAmount; - PalletBalancesReasons: PalletBalancesReasons; - PalletBalancesReserveData: PalletBalancesReserveData; - PalletBucketNftsCall: PalletBucketNftsCall; - PalletBucketNftsError: PalletBucketNftsError; - PalletBucketNftsEvent: PalletBucketNftsEvent; - PalletCollatorSelectionCall: PalletCollatorSelectionCall; - PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; - PalletCollatorSelectionError: PalletCollatorSelectionError; - PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; - PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; - PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; - PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; - PalletFileSystemCall: PalletFileSystemCall; - PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; - PalletFileSystemError: PalletFileSystemError; - PalletFileSystemEvent: PalletFileSystemEvent; - PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; - PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; - PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; - PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; - PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; - PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; - PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; - PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; - PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; - PalletMessageQueueBookState: PalletMessageQueueBookState; - PalletMessageQueueCall: PalletMessageQueueCall; - PalletMessageQueueError: PalletMessageQueueError; - PalletMessageQueueEvent: PalletMessageQueueEvent; - PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; - PalletMessageQueuePage: PalletMessageQueuePage; - PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; - PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; - PalletNftsCall: PalletNftsCall; - PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; - PalletNftsCollectionConfig: PalletNftsCollectionConfig; - PalletNftsCollectionDetails: PalletNftsCollectionDetails; - PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; - PalletNftsCollectionRole: PalletNftsCollectionRole; - PalletNftsCollectionSetting: PalletNftsCollectionSetting; - PalletNftsDestroyWitness: PalletNftsDestroyWitness; - PalletNftsError: PalletNftsError; - PalletNftsEvent: PalletNftsEvent; - PalletNftsItemConfig: PalletNftsItemConfig; - PalletNftsItemDeposit: PalletNftsItemDeposit; - PalletNftsItemDetails: PalletNftsItemDetails; - PalletNftsItemMetadata: PalletNftsItemMetadata; - PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; - PalletNftsItemSetting: PalletNftsItemSetting; - PalletNftsItemTip: PalletNftsItemTip; - PalletNftsMintSettings: PalletNftsMintSettings; - PalletNftsMintType: PalletNftsMintType; - PalletNftsMintWitness: PalletNftsMintWitness; - PalletNftsPalletAttributes: PalletNftsPalletAttributes; - PalletNftsPalletFeature: PalletNftsPalletFeature; - PalletNftsPendingSwap: PalletNftsPendingSwap; - PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; - PalletNftsPreSignedMint: PalletNftsPreSignedMint; - PalletNftsPriceDirection: PalletNftsPriceDirection; - PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; - PalletParametersCall: PalletParametersCall; - PalletParametersEvent: PalletParametersEvent; - PalletPaymentStreamsCall: PalletPaymentStreamsCall; - PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; - PalletPaymentStreamsError: PalletPaymentStreamsError; - PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; - PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; - PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; - PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; - PalletProofsDealerCall: PalletProofsDealerCall; - PalletProofsDealerError: PalletProofsDealerError; - PalletProofsDealerEvent: PalletProofsDealerEvent; - PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; - PalletProofsDealerProof: PalletProofsDealerProof; - PalletRandomnessCall: PalletRandomnessCall; - PalletRandomnessEvent: PalletRandomnessEvent; - PalletSessionCall: PalletSessionCall; - PalletSessionError: PalletSessionError; - PalletSessionEvent: PalletSessionEvent; - PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; - PalletStorageProvidersBucket: PalletStorageProvidersBucket; - PalletStorageProvidersCall: PalletStorageProvidersCall; - PalletStorageProvidersError: PalletStorageProvidersError; - PalletStorageProvidersEvent: PalletStorageProvidersEvent; - PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; - PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; - PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; - PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; - PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; - PalletSudoCall: PalletSudoCall; - PalletSudoError: PalletSudoError; - PalletSudoEvent: PalletSudoEvent; - PalletTimestampCall: PalletTimestampCall; - PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; - PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; - PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; - PalletXcmCall: PalletXcmCall; - PalletXcmError: PalletXcmError; - PalletXcmEvent: PalletXcmEvent; - PalletXcmQueryStatus: PalletXcmQueryStatus; - PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; - PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; - PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; - PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; - PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; - PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; - PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; - PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; - PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; - PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; - ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; - ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; - ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; - ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; - SpArithmeticArithmeticError: SpArithmeticArithmeticError; - SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; - SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; - SpRuntimeDigest: SpRuntimeDigest; - SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; - SpRuntimeDispatchError: SpRuntimeDispatchError; - SpRuntimeModuleError: SpRuntimeModuleError; - SpRuntimeMultiSignature: SpRuntimeMultiSignature; - SpRuntimeTokenError: SpRuntimeTokenError; - SpRuntimeTransactionalError: SpRuntimeTransactionalError; - SpTrieStorageProof: SpTrieStorageProof; - SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; - SpVersionRuntimeVersion: SpVersionRuntimeVersion; - SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; - SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; - StagingParachainInfoCall: StagingParachainInfoCall; - StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; - StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; - StagingXcmV4Asset: StagingXcmV4Asset; - StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; - StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; - StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; - StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; - StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; - StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; - StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; - StagingXcmV4Instruction: StagingXcmV4Instruction; - StagingXcmV4Junction: StagingXcmV4Junction; - StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; - StagingXcmV4Junctions: StagingXcmV4Junctions; - StagingXcmV4Location: StagingXcmV4Location; - StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; - StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; - StagingXcmV4Response: StagingXcmV4Response; - StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; - StagingXcmV4Xcm: StagingXcmV4Xcm; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; - StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; - StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; - StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; - XcmDoubleEncoded: XcmDoubleEncoded; - XcmV2BodyId: XcmV2BodyId; - XcmV2BodyPart: XcmV2BodyPart; - XcmV2Instruction: XcmV2Instruction; - XcmV2Junction: XcmV2Junction; - XcmV2MultiAsset: XcmV2MultiAsset; - XcmV2MultiLocation: XcmV2MultiLocation; - XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; - XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; - XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; - XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; - XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; - XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; - XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; - XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; - XcmV2NetworkId: XcmV2NetworkId; - XcmV2OriginKind: XcmV2OriginKind; - XcmV2Response: XcmV2Response; - XcmV2TraitsError: XcmV2TraitsError; - XcmV2WeightLimit: XcmV2WeightLimit; - XcmV2Xcm: XcmV2Xcm; - XcmV3Instruction: XcmV3Instruction; - XcmV3Junction: XcmV3Junction; - XcmV3JunctionBodyId: XcmV3JunctionBodyId; - XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; - XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; - XcmV3Junctions: XcmV3Junctions; - XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; - XcmV3MultiAsset: XcmV3MultiAsset; - XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; - XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; - XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; - XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; - XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; - XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; - XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; - XcmV3OriginKind: XcmV3OriginKind; - XcmV3PalletInfo: XcmV3PalletInfo; - XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; - XcmV3Response: XcmV3Response; - XcmV3TraitsError: XcmV3TraitsError; - XcmV3WeightLimit: XcmV3WeightLimit; - XcmV3Xcm: XcmV3Xcm; - XcmVersionedAssetId: XcmVersionedAssetId; - XcmVersionedAssets: XcmVersionedAssets; - XcmVersionedLocation: XcmVersionedLocation; - XcmVersionedResponse: XcmVersionedResponse; - XcmVersionedXcm: XcmVersionedXcm; - } // InterfaceTypes -} // declare module +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/types/types/registry"; + +import type { + CumulusPalletParachainSystemCall, + CumulusPalletParachainSystemError, + CumulusPalletParachainSystemEvent, + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, + CumulusPalletParachainSystemUnincludedSegmentAncestor, + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, + CumulusPalletXcmCall, + CumulusPalletXcmEvent, + CumulusPalletXcmpQueueCall, + CumulusPalletXcmpQueueError, + CumulusPalletXcmpQueueEvent, + CumulusPalletXcmpQueueOutboundChannelDetails, + CumulusPalletXcmpQueueOutboundState, + CumulusPalletXcmpQueueQueueConfigData, + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, + FrameMetadataHashExtensionCheckMetadataHash, + FrameMetadataHashExtensionMode, + FrameSupportDispatchDispatchClass, + FrameSupportDispatchDispatchInfo, + FrameSupportDispatchPays, + FrameSupportDispatchPerDispatchClassU32, + FrameSupportDispatchPerDispatchClassWeight, + FrameSupportDispatchPerDispatchClassWeightsPerClass, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + FrameSystemAccountInfo, + FrameSystemCall, + FrameSystemCodeUpgradeAuthorization, + FrameSystemError, + FrameSystemEvent, + FrameSystemEventRecord, + FrameSystemExtensionsCheckGenesis, + FrameSystemExtensionsCheckNonZeroSender, + FrameSystemExtensionsCheckNonce, + FrameSystemExtensionsCheckSpecVersion, + FrameSystemExtensionsCheckTxVersion, + FrameSystemExtensionsCheckWeight, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + FrameSystemLimitsWeightsPerClass, + FrameSystemPhase, + PalletBalancesAccountData, + PalletBalancesAdjustmentDirection, + PalletBalancesBalanceLock, + PalletBalancesCall, + PalletBalancesError, + PalletBalancesEvent, + PalletBalancesIdAmount, + PalletBalancesReasons, + PalletBalancesReserveData, + PalletBucketNftsCall, + PalletBucketNftsError, + PalletBucketNftsEvent, + PalletCollatorSelectionCall, + PalletCollatorSelectionCandidateInfo, + PalletCollatorSelectionError, + PalletCollatorSelectionEvent, + PalletFileSystemAcceptedStorageRequestParameters, + PalletFileSystemBatchResponses, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemCall, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemError, + PalletFileSystemEvent, + PalletFileSystemMoveBucketRequestMetadata, + PalletFileSystemMspAcceptedBatchStorageRequests, + PalletFileSystemMspFailedBatchStorageRequests, + PalletFileSystemMspRejectedBatchStorageRequests, + PalletFileSystemMspRespondStorageRequestsResult, + PalletFileSystemMspStorageRequestResponse, + PalletFileSystemRejectedStorageRequestReason, + PalletFileSystemStorageRequestBspsMetadata, + PalletFileSystemStorageRequestMetadata, + PalletMessageQueueBookState, + PalletMessageQueueCall, + PalletMessageQueueError, + PalletMessageQueueEvent, + PalletMessageQueueNeighbours, + PalletMessageQueuePage, + PalletNftsAttributeDeposit, + PalletNftsAttributeNamespace, + PalletNftsCall, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsCollectionDetails, + PalletNftsCollectionMetadata, + PalletNftsCollectionRole, + PalletNftsCollectionSetting, + PalletNftsDestroyWitness, + PalletNftsError, + PalletNftsEvent, + PalletNftsItemConfig, + PalletNftsItemDeposit, + PalletNftsItemDetails, + PalletNftsItemMetadata, + PalletNftsItemMetadataDeposit, + PalletNftsItemSetting, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintType, + PalletNftsMintWitness, + PalletNftsPalletAttributes, + PalletNftsPalletFeature, + PalletNftsPendingSwap, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceDirection, + PalletNftsPriceWithDirection, + PalletParametersCall, + PalletParametersEvent, + PalletPaymentStreamsCall, + PalletPaymentStreamsDynamicRatePaymentStream, + PalletPaymentStreamsError, + PalletPaymentStreamsEvent, + PalletPaymentStreamsFixedRatePaymentStream, + PalletPaymentStreamsHoldReason, + PalletPaymentStreamsProviderLastChargeableInfo, + PalletProofsDealerCall, + PalletProofsDealerError, + PalletProofsDealerEvent, + PalletProofsDealerKeyProof, + PalletProofsDealerProof, + PalletRandomnessCall, + PalletRandomnessEvent, + PalletSessionCall, + PalletSessionError, + PalletSessionEvent, + PalletStorageProvidersBackupStorageProvider, + PalletStorageProvidersBucket, + PalletStorageProvidersCall, + PalletStorageProvidersError, + PalletStorageProvidersEvent, + PalletStorageProvidersHoldReason, + PalletStorageProvidersMainStorageProvider, + PalletStorageProvidersStorageProvider, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + PalletSudoCall, + PalletSudoError, + PalletSudoEvent, + PalletTimestampCall, + PalletTransactionPaymentChargeTransactionPayment, + PalletTransactionPaymentEvent, + PalletTransactionPaymentReleases, + PalletXcmCall, + PalletXcmError, + PalletXcmEvent, + PalletXcmQueryStatus, + PalletXcmRemoteLockedFungibleRecord, + PalletXcmVersionMigrationStage, + PolkadotCorePrimitivesInboundDownwardMessage, + PolkadotCorePrimitivesInboundHrmpMessage, + PolkadotCorePrimitivesOutboundHrmpMessage, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7AbridgedHrmpChannel, + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, + ShpFileKeyVerifierFileKeyProof, + ShpFileMetadataFileMetadata, + ShpFileMetadataFingerprint, + ShpTraitsTrieRemoveMutation, + SpArithmeticArithmeticError, + SpConsensusAuraSr25519AppSr25519Public, + SpCoreCryptoKeyTypeId, + SpRuntimeDigest, + SpRuntimeDigestDigestItem, + SpRuntimeDispatchError, + SpRuntimeModuleError, + SpRuntimeMultiSignature, + SpRuntimeTokenError, + SpRuntimeTransactionalError, + SpTrieStorageProof, + SpTrieStorageProofCompactProof, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight, + StagingParachainInfoCall, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV3MultiLocation, + StagingXcmV4Asset, + StagingXcmV4AssetAssetFilter, + StagingXcmV4AssetAssetId, + StagingXcmV4AssetAssetInstance, + StagingXcmV4AssetAssets, + StagingXcmV4AssetFungibility, + StagingXcmV4AssetWildAsset, + StagingXcmV4AssetWildFungibility, + StagingXcmV4Instruction, + StagingXcmV4Junction, + StagingXcmV4JunctionNetworkId, + StagingXcmV4Junctions, + StagingXcmV4Location, + StagingXcmV4PalletInfo, + StagingXcmV4QueryResponseInfo, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + StorageHubRuntimeRuntime, + StorageHubRuntimeRuntimeHoldReason, + StorageHubRuntimeSessionKeys, + XcmDoubleEncoded, + XcmV2BodyId, + XcmV2BodyPart, + XcmV2Instruction, + XcmV2Junction, + XcmV2MultiAsset, + XcmV2MultiLocation, + XcmV2MultiassetAssetId, + XcmV2MultiassetAssetInstance, + XcmV2MultiassetFungibility, + XcmV2MultiassetMultiAssetFilter, + XcmV2MultiassetMultiAssets, + XcmV2MultiassetWildFungibility, + XcmV2MultiassetWildMultiAsset, + XcmV2MultilocationJunctions, + XcmV2NetworkId, + XcmV2OriginKind, + XcmV2Response, + XcmV2TraitsError, + XcmV2WeightLimit, + XcmV2Xcm, + XcmV3Instruction, + XcmV3Junction, + XcmV3JunctionBodyId, + XcmV3JunctionBodyPart, + XcmV3JunctionNetworkId, + XcmV3Junctions, + XcmV3MaybeErrorCode, + XcmV3MultiAsset, + XcmV3MultiassetAssetId, + XcmV3MultiassetAssetInstance, + XcmV3MultiassetFungibility, + XcmV3MultiassetMultiAssetFilter, + XcmV3MultiassetMultiAssets, + XcmV3MultiassetWildFungibility, + XcmV3MultiassetWildMultiAsset, + XcmV3OriginKind, + XcmV3PalletInfo, + XcmV3QueryResponseInfo, + XcmV3Response, + XcmV3TraitsError, + XcmV3WeightLimit, + XcmV3Xcm, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedResponse, + XcmVersionedXcm +} from "@polkadot/types/lookup"; + +declare module "@polkadot/types/types/registry" { + interface InterfaceTypes { + CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; + CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; + CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + CumulusPalletXcmCall: CumulusPalletXcmCall; + CumulusPalletXcmEvent: CumulusPalletXcmEvent; + CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; + CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; + CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; + CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; + CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; + CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; + CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; + FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; + FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; + FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; + FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; + FrameSupportDispatchPays: FrameSupportDispatchPays; + FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; + FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; + FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; + FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; + FrameSystemAccountInfo: FrameSystemAccountInfo; + FrameSystemCall: FrameSystemCall; + FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; + FrameSystemError: FrameSystemError; + FrameSystemEvent: FrameSystemEvent; + FrameSystemEventRecord: FrameSystemEventRecord; + FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; + FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; + FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; + FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; + FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; + FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; + FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; + FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; + FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; + FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; + FrameSystemPhase: FrameSystemPhase; + PalletBalancesAccountData: PalletBalancesAccountData; + PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; + PalletBalancesBalanceLock: PalletBalancesBalanceLock; + PalletBalancesCall: PalletBalancesCall; + PalletBalancesError: PalletBalancesError; + PalletBalancesEvent: PalletBalancesEvent; + PalletBalancesIdAmount: PalletBalancesIdAmount; + PalletBalancesReasons: PalletBalancesReasons; + PalletBalancesReserveData: PalletBalancesReserveData; + PalletBucketNftsCall: PalletBucketNftsCall; + PalletBucketNftsError: PalletBucketNftsError; + PalletBucketNftsEvent: PalletBucketNftsEvent; + PalletCollatorSelectionCall: PalletCollatorSelectionCall; + PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; + PalletCollatorSelectionError: PalletCollatorSelectionError; + PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; + PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; + PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; + PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; + PalletFileSystemCall: PalletFileSystemCall; + PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; + PalletFileSystemError: PalletFileSystemError; + PalletFileSystemEvent: PalletFileSystemEvent; + PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; + PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; + PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; + PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; + PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; + PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; + PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; + PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; + PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; + PalletMessageQueueBookState: PalletMessageQueueBookState; + PalletMessageQueueCall: PalletMessageQueueCall; + PalletMessageQueueError: PalletMessageQueueError; + PalletMessageQueueEvent: PalletMessageQueueEvent; + PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; + PalletMessageQueuePage: PalletMessageQueuePage; + PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; + PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; + PalletNftsCall: PalletNftsCall; + PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; + PalletNftsCollectionConfig: PalletNftsCollectionConfig; + PalletNftsCollectionDetails: PalletNftsCollectionDetails; + PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; + PalletNftsCollectionRole: PalletNftsCollectionRole; + PalletNftsCollectionSetting: PalletNftsCollectionSetting; + PalletNftsDestroyWitness: PalletNftsDestroyWitness; + PalletNftsError: PalletNftsError; + PalletNftsEvent: PalletNftsEvent; + PalletNftsItemConfig: PalletNftsItemConfig; + PalletNftsItemDeposit: PalletNftsItemDeposit; + PalletNftsItemDetails: PalletNftsItemDetails; + PalletNftsItemMetadata: PalletNftsItemMetadata; + PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; + PalletNftsItemSetting: PalletNftsItemSetting; + PalletNftsItemTip: PalletNftsItemTip; + PalletNftsMintSettings: PalletNftsMintSettings; + PalletNftsMintType: PalletNftsMintType; + PalletNftsMintWitness: PalletNftsMintWitness; + PalletNftsPalletAttributes: PalletNftsPalletAttributes; + PalletNftsPalletFeature: PalletNftsPalletFeature; + PalletNftsPendingSwap: PalletNftsPendingSwap; + PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; + PalletNftsPreSignedMint: PalletNftsPreSignedMint; + PalletNftsPriceDirection: PalletNftsPriceDirection; + PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; + PalletParametersCall: PalletParametersCall; + PalletParametersEvent: PalletParametersEvent; + PalletPaymentStreamsCall: PalletPaymentStreamsCall; + PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; + PalletPaymentStreamsError: PalletPaymentStreamsError; + PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; + PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; + PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; + PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; + PalletProofsDealerCall: PalletProofsDealerCall; + PalletProofsDealerError: PalletProofsDealerError; + PalletProofsDealerEvent: PalletProofsDealerEvent; + PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; + PalletProofsDealerProof: PalletProofsDealerProof; + PalletRandomnessCall: PalletRandomnessCall; + PalletRandomnessEvent: PalletRandomnessEvent; + PalletSessionCall: PalletSessionCall; + PalletSessionError: PalletSessionError; + PalletSessionEvent: PalletSessionEvent; + PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; + PalletStorageProvidersBucket: PalletStorageProvidersBucket; + PalletStorageProvidersCall: PalletStorageProvidersCall; + PalletStorageProvidersError: PalletStorageProvidersError; + PalletStorageProvidersEvent: PalletStorageProvidersEvent; + PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; + PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; + PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; + PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; + PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; + PalletSudoCall: PalletSudoCall; + PalletSudoError: PalletSudoError; + PalletSudoEvent: PalletSudoEvent; + PalletTimestampCall: PalletTimestampCall; + PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; + PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; + PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; + PalletXcmCall: PalletXcmCall; + PalletXcmError: PalletXcmError; + PalletXcmEvent: PalletXcmEvent; + PalletXcmQueryStatus: PalletXcmQueryStatus; + PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; + PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; + PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; + PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; + PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; + PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; + PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; + PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; + PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; + ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; + ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; + ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; + ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; + SpArithmeticArithmeticError: SpArithmeticArithmeticError; + SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; + SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; + SpRuntimeDigest: SpRuntimeDigest; + SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; + SpRuntimeDispatchError: SpRuntimeDispatchError; + SpRuntimeModuleError: SpRuntimeModuleError; + SpRuntimeMultiSignature: SpRuntimeMultiSignature; + SpRuntimeTokenError: SpRuntimeTokenError; + SpRuntimeTransactionalError: SpRuntimeTransactionalError; + SpTrieStorageProof: SpTrieStorageProof; + SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; + SpVersionRuntimeVersion: SpVersionRuntimeVersion; + SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; + SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; + StagingParachainInfoCall: StagingParachainInfoCall; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; + StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; + StagingXcmV4Asset: StagingXcmV4Asset; + StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; + StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; + StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; + StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; + StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; + StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; + StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; + StagingXcmV4Instruction: StagingXcmV4Instruction; + StagingXcmV4Junction: StagingXcmV4Junction; + StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; + StagingXcmV4Junctions: StagingXcmV4Junctions; + StagingXcmV4Location: StagingXcmV4Location; + StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; + StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; + StagingXcmV4Response: StagingXcmV4Response; + StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; + StagingXcmV4Xcm: StagingXcmV4Xcm; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; + StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; + StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; + StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; + XcmDoubleEncoded: XcmDoubleEncoded; + XcmV2BodyId: XcmV2BodyId; + XcmV2BodyPart: XcmV2BodyPart; + XcmV2Instruction: XcmV2Instruction; + XcmV2Junction: XcmV2Junction; + XcmV2MultiAsset: XcmV2MultiAsset; + XcmV2MultiLocation: XcmV2MultiLocation; + XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; + XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; + XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; + XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; + XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; + XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; + XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; + XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; + XcmV2NetworkId: XcmV2NetworkId; + XcmV2OriginKind: XcmV2OriginKind; + XcmV2Response: XcmV2Response; + XcmV2TraitsError: XcmV2TraitsError; + XcmV2WeightLimit: XcmV2WeightLimit; + XcmV2Xcm: XcmV2Xcm; + XcmV3Instruction: XcmV3Instruction; + XcmV3Junction: XcmV3Junction; + XcmV3JunctionBodyId: XcmV3JunctionBodyId; + XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; + XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; + XcmV3Junctions: XcmV3Junctions; + XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; + XcmV3MultiAsset: XcmV3MultiAsset; + XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; + XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; + XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; + XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; + XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; + XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; + XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; + XcmV3PalletInfo: XcmV3PalletInfo; + XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; + XcmV3Response: XcmV3Response; + XcmV3TraitsError: XcmV3TraitsError; + XcmV3WeightLimit: XcmV3WeightLimit; + XcmV3Xcm: XcmV3Xcm; + XcmVersionedAssetId: XcmVersionedAssetId; + XcmVersionedAssets: XcmVersionedAssets; + XcmVersionedLocation: XcmVersionedLocation; + XcmVersionedResponse: XcmVersionedResponse; + XcmVersionedXcm: XcmVersionedXcm; + } // InterfaceTypes +} // declare module diff --git a/api-augment/src/interfaces/storagehubclient/types.ts b/api-augment/src/interfaces/storagehubclient/types.ts index 596ce1587..2d4a108ec 100644 --- a/api-augment/src/interfaces/storagehubclient/types.ts +++ b/api-augment/src/interfaces/storagehubclient/types.ts @@ -1,231 +1,231 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; -import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; - -/** @name BackupStorageProvider */ -export interface BackupStorageProvider extends Struct { - readonly capacity: StorageData; - readonly data_used: StorageData; - readonly multiaddresses: Bytes; - readonly root: MerklePatriciaRoot; - readonly last_capacity_change: BlockNumber; - readonly owner_account: AccountId; - readonly payment_account: AccountId; -} - -/** @name BackupStorageProviderId */ -export interface BackupStorageProviderId extends H256 {} - -/** @name ChunkId */ -export interface ChunkId extends u64 {} - -/** @name FileMetadata */ -export interface FileMetadata extends Struct { - readonly owner: Bytes; - readonly bucket_id: Bytes; - readonly location: Bytes; - readonly file_size: u64; - readonly fingerprint: U8aFixed; -} - -/** @name GetBspInfoError */ -export interface GetBspInfoError extends Enum { - readonly isBspNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "BspNotRegistered" | "InternalApiError"; -} - -/** @name GetChallengePeriodError */ -export interface GetChallengePeriodError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name GetChallengeSeedError */ -export interface GetChallengeSeedError extends Enum { - readonly isTickBeyondLastSeedStored: boolean; - readonly isTickIsInTheFuture: boolean; - readonly isInternalApiError: boolean; - readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; -} - -/** @name GetCheckpointChallengesError */ -export interface GetCheckpointChallengesError extends Enum { - readonly isTickGreaterThanLastCheckpointTick: boolean; - readonly isNoCheckpointChallengesInTick: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "TickGreaterThanLastCheckpointTick" - | "NoCheckpointChallengesInTick" - | "InternalApiError"; -} - -/** @name GetFileFromFileStorageResult */ -export interface GetFileFromFileStorageResult extends Enum { - readonly isFileNotFound: boolean; - readonly isFileFound: boolean; - readonly asFileFound: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly isFileFoundWithInconsistency: boolean; - readonly asFileFoundWithInconsistency: FileMetadata; - readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; -} - -/** @name GetLastTickProviderSubmittedProofError */ -export interface GetLastTickProviderSubmittedProofError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNeverSubmittedProof: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; -} - -/** @name GetNextDeadlineTickError */ -export interface GetNextDeadlineTickError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNotInitialised: boolean; - readonly isArithmeticOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderNotInitialised" - | "ArithmeticOverflow" - | "InternalApiError"; -} - -/** @name GetUsersWithDebtOverThresholdError */ -export interface GetUsersWithDebtOverThresholdError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderWithoutPaymentStreams: boolean; - readonly isAmountToChargeOverflow: boolean; - readonly isDebtOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderWithoutPaymentStreams" - | "AmountToChargeOverflow" - | "DebtOverflow" - | "InternalApiError"; -} - -/** @name IncompleteFileStatus */ -export interface IncompleteFileStatus extends Struct { - readonly file_metadata: FileMetadata; - readonly stored_chunks: u64; - readonly total_chunks: u64; -} - -/** @name Key */ -export interface Key extends H256 {} - -/** @name MainStorageProviderId */ -export interface MainStorageProviderId extends H256 {} - -/** @name MerklePatriciaRoot */ -export interface MerklePatriciaRoot extends H256 {} - -/** @name ProviderId */ -export interface ProviderId extends H256 {} - -/** @name QueryAvailableStorageCapacityError */ -export interface QueryAvailableStorageCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name QueryBspConfirmChunksToProveForFileError */ -export interface QueryBspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} - -/** @name QueryConfirmChunksToProveForFileError */ -export interface QueryConfirmChunksToProveForFileError extends Enum { - readonly isChallengedChunkToChunkIdError: boolean; - readonly type: "ChallengedChunkToChunkIdError"; -} - -/** @name QueryEarliestChangeCapacityBlockError */ -export interface QueryEarliestChangeCapacityBlockError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name QueryFileEarliestVolunteerBlockError */ -export interface QueryFileEarliestVolunteerBlockError extends Enum { - readonly isFailedToEncodeFingerprint: boolean; - readonly isFailedToEncodeBsp: boolean; - readonly isThresholdArithmeticError: boolean; - readonly isStorageRequestNotFound: boolean; - readonly isInternalError: boolean; - readonly type: - | "FailedToEncodeFingerprint" - | "FailedToEncodeBsp" - | "ThresholdArithmeticError" - | "StorageRequestNotFound" - | "InternalError"; -} - -/** @name QueryMspConfirmChunksToProveForFileError */ -export interface QueryMspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} - -/** @name QueryMspIdOfBucketIdError */ -export interface QueryMspIdOfBucketIdError extends Enum { - readonly isBucketNotFound: boolean; - readonly isInternalApiError: boolean; - readonly type: "BucketNotFound" | "InternalApiError"; -} - -/** @name QueryStorageProviderCapacityError */ -export interface QueryStorageProviderCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name RandomnessOutput */ -export interface RandomnessOutput extends H256 {} - -/** @name SaveFileToDisk */ -export interface SaveFileToDisk extends Enum { - readonly isFileNotFound: boolean; - readonly isSuccess: boolean; - readonly asSuccess: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly type: "FileNotFound" | "Success" | "IncompleteFile"; -} - -/** @name StorageData */ -export interface StorageData extends u32 {} - -/** @name StorageDataUnit */ -export interface StorageDataUnit extends u32 {} - -/** @name StorageProviderId */ -export interface StorageProviderId extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: BackupStorageProviderId; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: MainStorageProviderId; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; -} - -/** @name TrieRemoveMutation */ -export interface TrieRemoveMutation extends Struct {} - -export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; +import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; + +/** @name BackupStorageProvider */ +export interface BackupStorageProvider extends Struct { + readonly capacity: StorageData; + readonly data_used: StorageData; + readonly multiaddresses: Bytes; + readonly root: MerklePatriciaRoot; + readonly last_capacity_change: BlockNumber; + readonly owner_account: AccountId; + readonly payment_account: AccountId; +} + +/** @name BackupStorageProviderId */ +export interface BackupStorageProviderId extends H256 {} + +/** @name ChunkId */ +export interface ChunkId extends u64 {} + +/** @name FileMetadata */ +export interface FileMetadata extends Struct { + readonly owner: Bytes; + readonly bucket_id: Bytes; + readonly location: Bytes; + readonly file_size: u64; + readonly fingerprint: U8aFixed; +} + +/** @name GetBspInfoError */ +export interface GetBspInfoError extends Enum { + readonly isBspNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "BspNotRegistered" | "InternalApiError"; +} + +/** @name GetChallengePeriodError */ +export interface GetChallengePeriodError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name GetChallengeSeedError */ +export interface GetChallengeSeedError extends Enum { + readonly isTickBeyondLastSeedStored: boolean; + readonly isTickIsInTheFuture: boolean; + readonly isInternalApiError: boolean; + readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; +} + +/** @name GetCheckpointChallengesError */ +export interface GetCheckpointChallengesError extends Enum { + readonly isTickGreaterThanLastCheckpointTick: boolean; + readonly isNoCheckpointChallengesInTick: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "TickGreaterThanLastCheckpointTick" + | "NoCheckpointChallengesInTick" + | "InternalApiError"; +} + +/** @name GetFileFromFileStorageResult */ +export interface GetFileFromFileStorageResult extends Enum { + readonly isFileNotFound: boolean; + readonly isFileFound: boolean; + readonly asFileFound: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly isFileFoundWithInconsistency: boolean; + readonly asFileFoundWithInconsistency: FileMetadata; + readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; +} + +/** @name GetLastTickProviderSubmittedProofError */ +export interface GetLastTickProviderSubmittedProofError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNeverSubmittedProof: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; +} + +/** @name GetNextDeadlineTickError */ +export interface GetNextDeadlineTickError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNotInitialised: boolean; + readonly isArithmeticOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderNotInitialised" + | "ArithmeticOverflow" + | "InternalApiError"; +} + +/** @name GetUsersWithDebtOverThresholdError */ +export interface GetUsersWithDebtOverThresholdError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderWithoutPaymentStreams: boolean; + readonly isAmountToChargeOverflow: boolean; + readonly isDebtOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderWithoutPaymentStreams" + | "AmountToChargeOverflow" + | "DebtOverflow" + | "InternalApiError"; +} + +/** @name IncompleteFileStatus */ +export interface IncompleteFileStatus extends Struct { + readonly file_metadata: FileMetadata; + readonly stored_chunks: u64; + readonly total_chunks: u64; +} + +/** @name Key */ +export interface Key extends H256 {} + +/** @name MainStorageProviderId */ +export interface MainStorageProviderId extends H256 {} + +/** @name MerklePatriciaRoot */ +export interface MerklePatriciaRoot extends H256 {} + +/** @name ProviderId */ +export interface ProviderId extends H256 {} + +/** @name QueryAvailableStorageCapacityError */ +export interface QueryAvailableStorageCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name QueryBspConfirmChunksToProveForFileError */ +export interface QueryBspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} + +/** @name QueryConfirmChunksToProveForFileError */ +export interface QueryConfirmChunksToProveForFileError extends Enum { + readonly isChallengedChunkToChunkIdError: boolean; + readonly type: "ChallengedChunkToChunkIdError"; +} + +/** @name QueryEarliestChangeCapacityBlockError */ +export interface QueryEarliestChangeCapacityBlockError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name QueryFileEarliestVolunteerBlockError */ +export interface QueryFileEarliestVolunteerBlockError extends Enum { + readonly isFailedToEncodeFingerprint: boolean; + readonly isFailedToEncodeBsp: boolean; + readonly isThresholdArithmeticError: boolean; + readonly isStorageRequestNotFound: boolean; + readonly isInternalError: boolean; + readonly type: + | "FailedToEncodeFingerprint" + | "FailedToEncodeBsp" + | "ThresholdArithmeticError" + | "StorageRequestNotFound" + | "InternalError"; +} + +/** @name QueryMspConfirmChunksToProveForFileError */ +export interface QueryMspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} + +/** @name QueryMspIdOfBucketIdError */ +export interface QueryMspIdOfBucketIdError extends Enum { + readonly isBucketNotFound: boolean; + readonly isInternalApiError: boolean; + readonly type: "BucketNotFound" | "InternalApiError"; +} + +/** @name QueryStorageProviderCapacityError */ +export interface QueryStorageProviderCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name RandomnessOutput */ +export interface RandomnessOutput extends H256 {} + +/** @name SaveFileToDisk */ +export interface SaveFileToDisk extends Enum { + readonly isFileNotFound: boolean; + readonly isSuccess: boolean; + readonly asSuccess: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly type: "FileNotFound" | "Success" | "IncompleteFile"; +} + +/** @name StorageData */ +export interface StorageData extends u32 {} + +/** @name StorageDataUnit */ +export interface StorageDataUnit extends u32 {} + +/** @name StorageProviderId */ +export interface StorageProviderId extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: BackupStorageProviderId; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: MainStorageProviderId; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; +} + +/** @name TrieRemoveMutation */ +export interface TrieRemoveMutation extends Struct {} + +export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; diff --git a/client/blockchain-service/src/commands.rs b/client/blockchain-service/src/commands.rs index 94bada61b..ddeaaa61b 100644 --- a/client/blockchain-service/src/commands.rs +++ b/client/blockchain-service/src/commands.rs @@ -1,775 +1,775 @@ -use anyhow::Result; -use async_trait::async_trait; -use log::warn; -use serde_json::Number; - -use pallet_file_system_runtime_api::{ - QueryBspConfirmChunksToProveForFileError, QueryFileEarliestVolunteerTickError, - QueryMspConfirmChunksToProveForFileError, -}; -use pallet_payment_streams_runtime_api::GetUsersWithDebtOverThresholdError; -use pallet_proofs_dealer_runtime_api::{ - GetChallengePeriodError, GetCheckpointChallengesError, GetLastTickProviderSubmittedProofError, -}; -use pallet_storage_providers_runtime_api::{ - GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, - QueryMspIdOfBucketIdError, QueryStorageProviderCapacityError, -}; -use shc_actors_framework::actor::ActorHandle; -use shc_common::types::{ - BlockNumber, BucketId, ChunkId, ForestLeaf, MainStorageProviderId, ProviderId, - RandomnessOutput, StorageProviderId, TickNumber, TrieRemoveMutation, -}; -use sp_api::ApiError; -use sp_core::H256; -use storage_hub_runtime::{AccountId, Balance, StorageDataUnit}; - -use super::{ - handler::BlockchainService, - transaction::SubmittedTransaction, - types::{ - ConfirmStoringRequest, Extrinsic, ExtrinsicResult, RespondStorageRequest, RetryStrategy, - StopStoringForInsolventUserRequest, SubmitProofRequest, Tip, - }, -}; - -const LOG_TARGET: &str = "blockchain-service-interface"; - -/// Commands that can be sent to the BlockchainService actor. -pub enum BlockchainServiceCommand { - SendExtrinsic { - call: storage_hub_runtime::RuntimeCall, - tip: Tip, - callback: tokio::sync::oneshot::Sender>, - }, - GetExtrinsicFromBlock { - block_hash: H256, - extrinsic_hash: H256, - callback: tokio::sync::oneshot::Sender>, - }, - UnwatchExtrinsic { - subscription_id: Number, - callback: tokio::sync::oneshot::Sender>, - }, - WaitForBlock { - block_number: BlockNumber, - callback: tokio::sync::oneshot::Sender>, - }, - WaitForTick { - tick_number: TickNumber, - callback: - tokio::sync::oneshot::Sender>>, - }, - QueryFileEarliestVolunteerTick { - bsp_id: ProviderId, - file_key: H256, - callback: - tokio::sync::oneshot::Sender>, - }, - QueryEarliestChangeCapacityBlock { - bsp_id: ProviderId, - callback: tokio::sync::oneshot::Sender< - Result, - >, - }, - GetNodePublicKey { - callback: tokio::sync::oneshot::Sender, - }, - QueryBspConfirmChunksToProveForFile { - bsp_id: ProviderId, - file_key: H256, - callback: tokio::sync::oneshot::Sender< - Result, QueryBspConfirmChunksToProveForFileError>, - >, - }, - QueryMspConfirmChunksToProveForFile { - msp_id: ProviderId, - file_key: H256, - callback: tokio::sync::oneshot::Sender< - Result, QueryMspConfirmChunksToProveForFileError>, - >, - }, - QueueSubmitProofRequest { - request: SubmitProofRequest, - callback: tokio::sync::oneshot::Sender>, - }, - QueueConfirmBspRequest { - request: ConfirmStoringRequest, - callback: tokio::sync::oneshot::Sender>, - }, - QueueMspRespondStorageRequest { - request: RespondStorageRequest, - callback: tokio::sync::oneshot::Sender>, - }, - QueueStopStoringForInsolventUserRequest { - request: StopStoringForInsolventUserRequest, - callback: tokio::sync::oneshot::Sender>, - }, - QueryChallengesFromSeed { - seed: RandomnessOutput, - provider_id: ProviderId, - count: u32, - callback: tokio::sync::oneshot::Sender, ApiError>>, - }, - QueryForestChallengesFromSeed { - seed: RandomnessOutput, - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender, ApiError>>, - }, - QueryLastTickProviderSubmittedProof { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender< - Result, - >, - }, - QueryChallengePeriod { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender>, - }, - QueryNextChallengeTickForProvider { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender>, - }, - QueryLastCheckpointChallengeTick { - callback: tokio::sync::oneshot::Sender>, - }, - QueryLastCheckpointChallenges { - tick: BlockNumber, - callback: tokio::sync::oneshot::Sender< - Result)>, GetCheckpointChallengesError>, - >, - }, - QueryProviderForestRoot { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender>, - }, - QueryStorageProviderCapacity { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender< - Result, - >, - }, - QueryAvailableStorageCapacity { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender< - Result, - >, - }, - QueryStorageProviderId { - maybe_node_pub_key: Option, - callback: tokio::sync::oneshot::Sender>>, - }, - QueryUsersWithDebt { - provider_id: ProviderId, - min_debt: Balance, - callback: tokio::sync::oneshot::Sender< - Result, GetUsersWithDebtOverThresholdError>, - >, - }, - QueryWorstCaseScenarioSlashableAmount { - provider_id: ProviderId, - callback: tokio::sync::oneshot::Sender>>, - }, - QuerySlashAmountPerMaxFileSize { - callback: tokio::sync::oneshot::Sender>, - }, - QueryMspIdOfBucketId { - bucket_id: BucketId, - callback: - tokio::sync::oneshot::Sender>, - }, -} - -/// Interface for interacting with the BlockchainService actor. -#[async_trait] -pub trait BlockchainServiceInterface { - /// Send an extrinsic to the runtime. - async fn send_extrinsic( - &self, - call: impl Into + Send, - tip: Tip, - ) -> Result; - - /// Get an extrinsic from a block. - async fn get_extrinsic_from_block( - &self, - block_hash: H256, - extrinsic_hash: H256, - ) -> Result; - - /// Unwatch an extrinsic. - async fn unwatch_extrinsic(&self, subscription_id: Number) -> Result<()>; - - /// Wait for a block number. - async fn wait_for_block(&self, block_number: BlockNumber) -> Result<()>; - - /// Wait for a tick number. - async fn wait_for_tick(&self, tick_number: TickNumber) -> Result<(), ApiError>; - - /// Query the earliest tick number that a file was volunteered for storage. - async fn query_file_earliest_volunteer_tick( - &self, - bsp_id: ProviderId, - file_key: H256, - ) -> Result; - - async fn query_earliest_change_capacity_block( - &self, - bsp_id: ProviderId, - ) -> Result; - - /// Get the node's public key. - async fn get_node_public_key(&self) -> sp_core::sr25519::Public; - - /// Query the chunks that a BSP needs to confirm for a file. - async fn query_bsp_confirm_chunks_to_prove_for_file( - &self, - bsp_id: ProviderId, - file_key: H256, - ) -> Result, QueryBspConfirmChunksToProveForFileError>; - - /// Query the chunks that a MSP needs to confirm for a file. - async fn query_msp_confirm_chunks_to_prove_for_file( - &self, - msp_id: ProviderId, - file_key: H256, - ) -> Result, QueryMspConfirmChunksToProveForFileError>; - - /// Queue a SubmitProofRequest to be processed. - async fn queue_submit_proof_request(&self, request: SubmitProofRequest) -> Result<()>; - - /// Queue a ConfirmBspRequest to be processed. - async fn queue_confirm_bsp_request(&self, request: ConfirmStoringRequest) -> Result<()>; - - // Queue a BspStopStoringForInsolventUserRequest to be processed. - async fn queue_stop_storing_for_insolvent_user_request( - &self, - request: StopStoringForInsolventUserRequest, - ) -> Result<()>; - - /// Queue a RespondStoringRequest to be processed. - async fn queue_msp_respond_storage_request(&self, request: RespondStorageRequest) - -> Result<()>; - - /// Query the challenges that a Provider needs to submit for a given seed. - async fn query_challenges_from_seed( - &self, - seed: RandomnessOutput, - provider_id: ProviderId, - count: u32, - ) -> Result, ApiError>; - - /// Query the forest challenges that a Provider needs to submit for a given seed. - /// This is the same as the `query_challenges_from_seed` method, but it does not - /// require specifying the `count`, as the runtime will know how many challenges - /// to generate. - async fn query_forest_challenges_from_seed( - &self, - seed: RandomnessOutput, - provider_id: ProviderId, - ) -> Result, ApiError>; - - /// Query the last tick that a Provider submitted a proof for. - async fn query_last_tick_provider_submitted_proof( - &self, - provider_id: ProviderId, - ) -> Result; - - /// Query the challenge period for a given Provider. - async fn query_challenge_period( - &self, - provider_id: ProviderId, - ) -> Result; - - /// Query the next challenge tick for a given Provider. - async fn get_next_challenge_tick_for_provider( - &self, - provider_id: ProviderId, - ) -> Result; - - /// Query the last checkpoint tick. - async fn query_last_checkpoint_challenge_tick(&self) -> Result; - - /// Query the checkpoint challenges for a given tick. - async fn query_last_checkpoint_challenges( - &self, - tick: BlockNumber, - ) -> Result)>, GetCheckpointChallengesError>; - - /// Query the Merkle Patricia Forest root for a given Provider. - async fn query_provider_forest_root( - &self, - provider_id: ProviderId, - ) -> Result; - - /// Query the storage capacity for a Provider. - async fn query_storage_provider_capacity( - &self, - provider_id: ProviderId, - ) -> Result; - - /// Query the available storage capacity for a Provider. - async fn query_available_storage_capacity( - &self, - provider_id: ProviderId, - ) -> Result; - - /// Query the ProviderId for a given account. If no account is provided, the node's account is - /// used. - async fn query_storage_provider_id( - &self, - maybe_node_pub_key: Option, - ) -> Result>; - - async fn query_users_with_debt( - &self, - provider_id: ProviderId, - min_debt: Balance, - ) -> Result, GetUsersWithDebtOverThresholdError>; - - async fn query_worst_case_scenario_slashable_amount( - &self, - provider_id: ProviderId, - ) -> Result>; - - async fn query_slash_amount_per_max_file_size(&self) -> Result; - - /// Helper function to check if an extrinsic failed or succeeded in a block. - fn extrinsic_result(extrinsic: Extrinsic) -> Result; - - /// Helper function to submit an extrinsic with a retry strategy. Returns when the extrinsic is - /// included in a block or when the retry strategy is exhausted. - async fn submit_extrinsic_with_retry( - &self, - call: impl Into + Send, - retry_strategy: RetryStrategy, - ) -> Result<()>; - - /// Helper function to get the MSP ID of a bucket ID. - async fn query_msp_id_of_bucket_id( - &self, - bucket_id: BucketId, - ) -> Result; -} - -/// Implement the BlockchainServiceInterface for the ActorHandle. -#[async_trait] -impl BlockchainServiceInterface for ActorHandle { - async fn send_extrinsic( - &self, - call: impl Into + Send, - tip: Tip, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::SendExtrinsic { - call: call.into(), - tip, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn get_extrinsic_from_block( - &self, - block_hash: H256, - extrinsic_hash: H256, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::GetExtrinsicFromBlock { - block_hash, - extrinsic_hash, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn unwatch_extrinsic(&self, subscription_id: Number) -> Result<()> { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::UnwatchExtrinsic { - subscription_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn wait_for_block(&self, block_number: BlockNumber) -> Result<()> { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::WaitForBlock { - block_number, - callback, - }; - self.send(message).await; - let rx = rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed."); - rx.await.expect("Failed to wait for block"); - Ok(()) - } - - async fn wait_for_tick(&self, tick_number: TickNumber) -> Result<(), ApiError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::WaitForTick { - tick_number, - callback, - }; - self.send(message).await; - let rx = rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed."); - rx.await.expect("Failed to wait for tick") - } - - async fn query_file_earliest_volunteer_tick( - &self, - bsp_id: ProviderId, - file_key: H256, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::QueryFileEarliestVolunteerTick { - bsp_id, - file_key, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_earliest_change_capacity_block( - &self, - bsp_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = - BlockchainServiceCommand::QueryEarliestChangeCapacityBlock { bsp_id, callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - /// Get the node's public key. - async fn get_node_public_key(&self) -> sp_core::sr25519::Public { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::GetNodePublicKey { callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_bsp_confirm_chunks_to_prove_for_file( - &self, - bsp_id: ProviderId, - file_key: H256, - ) -> Result, QueryBspConfirmChunksToProveForFileError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::QueryBspConfirmChunksToProveForFile { - bsp_id, - file_key, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_msp_confirm_chunks_to_prove_for_file( - &self, - msp_id: ProviderId, - file_key: H256, - ) -> Result, QueryMspConfirmChunksToProveForFileError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::QueryMspConfirmChunksToProveForFile { - msp_id, - file_key, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn queue_submit_proof_request(&self, request: SubmitProofRequest) -> Result<()> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueueSubmitProofRequest { request, callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn queue_confirm_bsp_request(&self, request: ConfirmStoringRequest) -> Result<()> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueueConfirmBspRequest { request, callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn queue_msp_respond_storage_request( - &self, - request: RespondStorageRequest, - ) -> Result<()> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueueMspRespondStorageRequest { request, callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn queue_stop_storing_for_insolvent_user_request( - &self, - request: StopStoringForInsolventUserRequest, - ) -> Result<()> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = - BlockchainServiceCommand::QueueStopStoringForInsolventUserRequest { request, callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_challenges_from_seed( - &self, - seed: RandomnessOutput, - provider_id: ProviderId, - count: u32, - ) -> Result, ApiError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - // Build command to send to blockchain service. - let message = BlockchainServiceCommand::QueryChallengesFromSeed { - seed, - provider_id, - count, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_forest_challenges_from_seed( - &self, - seed: RandomnessOutput, - provider_id: ProviderId, - ) -> Result, ApiError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryForestChallengesFromSeed { - seed, - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_last_tick_provider_submitted_proof( - &self, - provider_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryLastTickProviderSubmittedProof { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_challenge_period( - &self, - provider_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryChallengePeriod { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn get_next_challenge_tick_for_provider( - &self, - provider_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryNextChallengeTickForProvider { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_last_checkpoint_challenge_tick(&self) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryLastCheckpointChallengeTick { callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_last_checkpoint_challenges( - &self, - tick: BlockNumber, - ) -> Result)>, GetCheckpointChallengesError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryLastCheckpointChallenges { tick, callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_provider_forest_root( - &self, - provider_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryProviderForestRoot { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_storage_provider_id( - &self, - maybe_node_pub_key: Option, - ) -> Result> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryStorageProviderId { - maybe_node_pub_key, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_storage_provider_capacity( - &self, - provider_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryStorageProviderCapacity { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_available_storage_capacity( - &self, - provider_id: ProviderId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryAvailableStorageCapacity { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_users_with_debt( - &self, - provider_id: ProviderId, - min_debt: Balance, - ) -> Result, GetUsersWithDebtOverThresholdError> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryUsersWithDebt { - provider_id, - min_debt, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_worst_case_scenario_slashable_amount( - &self, - provider_id: ProviderId, - ) -> Result> { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryWorstCaseScenarioSlashableAmount { - provider_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - async fn query_slash_amount_per_max_file_size(&self) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QuerySlashAmountPerMaxFileSize { callback }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } - - fn extrinsic_result(extrinsic: Extrinsic) -> Result { - for ev in extrinsic.events { - match ev.event { - storage_hub_runtime::RuntimeEvent::System( - frame_system::Event::ExtrinsicFailed { - dispatch_error, - dispatch_info, - }, - ) => { - return Ok(ExtrinsicResult::Failure { - dispatch_info, - dispatch_error, - }); - } - storage_hub_runtime::RuntimeEvent::System( - frame_system::Event::ExtrinsicSuccess { dispatch_info }, - ) => { - return Ok(ExtrinsicResult::Success { dispatch_info }); - } - _ => {} - } - } - - Err(anyhow::anyhow!( - "Extrinsic does not contain an ExtrinsicFailed event." - )) - } - - async fn submit_extrinsic_with_retry( - &self, - call: impl Into + Send, - retry_strategy: RetryStrategy, - ) -> Result<()> { - let call = call.into(); - - for retry_count in 0..=retry_strategy.max_retries { - let tip = retry_strategy.compute_tip(retry_count); - let mut transaction = self - .send_extrinsic(call.clone(), Tip::from(tip as u128)) - .await? - .with_timeout(retry_strategy.timeout); - - if transaction.watch_for_success(&self).await.is_ok() { - return Ok(()); - } - - if let Some(ref should_retry) = retry_strategy.should_retry { - if !should_retry().await { - return Err(anyhow::anyhow!("Exhausted retry strategy")); - } - } - - warn!(target: LOG_TARGET, "Failed to submit transaction, attempt #{}", retry_count + 1); - } - - Ok(()) - } - - async fn query_msp_id_of_bucket_id( - &self, - bucket_id: BucketId, - ) -> Result { - let (callback, rx) = tokio::sync::oneshot::channel(); - let message = BlockchainServiceCommand::QueryMspIdOfBucketId { - bucket_id, - callback, - }; - self.send(message).await; - rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") - } -} +use anyhow::Result; +use async_trait::async_trait; +use log::warn; +use serde_json::Number; + +use pallet_file_system_runtime_api::{ + QueryBspConfirmChunksToProveForFileError, QueryFileEarliestVolunteerTickError, + QueryMspConfirmChunksToProveForFileError, +}; +use pallet_payment_streams_runtime_api::GetUsersWithDebtOverThresholdError; +use pallet_proofs_dealer_runtime_api::{ + GetChallengePeriodError, GetCheckpointChallengesError, GetLastTickProviderSubmittedProofError, +}; +use pallet_storage_providers_runtime_api::{ + GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, + QueryMspIdOfBucketIdError, QueryStorageProviderCapacityError, +}; +use shc_actors_framework::actor::ActorHandle; +use shc_common::types::{ + BlockNumber, BucketId, ChunkId, ForestLeaf, MainStorageProviderId, ProviderId, + RandomnessOutput, StorageProviderId, TickNumber, TrieRemoveMutation, +}; +use sp_api::ApiError; +use sp_core::H256; +use storage_hub_runtime::{AccountId, Balance, StorageDataUnit}; + +use super::{ + handler::BlockchainService, + transaction::SubmittedTransaction, + types::{ + ConfirmStoringRequest, Extrinsic, ExtrinsicResult, RespondStorageRequest, RetryStrategy, + StopStoringForInsolventUserRequest, SubmitProofRequest, Tip, + }, +}; + +const LOG_TARGET: &str = "blockchain-service-interface"; + +/// Commands that can be sent to the BlockchainService actor. +pub enum BlockchainServiceCommand { + SendExtrinsic { + call: storage_hub_runtime::RuntimeCall, + tip: Tip, + callback: tokio::sync::oneshot::Sender>, + }, + GetExtrinsicFromBlock { + block_hash: H256, + extrinsic_hash: H256, + callback: tokio::sync::oneshot::Sender>, + }, + UnwatchExtrinsic { + subscription_id: Number, + callback: tokio::sync::oneshot::Sender>, + }, + WaitForBlock { + block_number: BlockNumber, + callback: tokio::sync::oneshot::Sender>, + }, + WaitForTick { + tick_number: TickNumber, + callback: + tokio::sync::oneshot::Sender>>, + }, + QueryFileEarliestVolunteerTick { + bsp_id: ProviderId, + file_key: H256, + callback: + tokio::sync::oneshot::Sender>, + }, + QueryEarliestChangeCapacityBlock { + bsp_id: ProviderId, + callback: tokio::sync::oneshot::Sender< + Result, + >, + }, + GetNodePublicKey { + callback: tokio::sync::oneshot::Sender, + }, + QueryBspConfirmChunksToProveForFile { + bsp_id: ProviderId, + file_key: H256, + callback: tokio::sync::oneshot::Sender< + Result, QueryBspConfirmChunksToProveForFileError>, + >, + }, + QueryMspConfirmChunksToProveForFile { + msp_id: ProviderId, + file_key: H256, + callback: tokio::sync::oneshot::Sender< + Result, QueryMspConfirmChunksToProveForFileError>, + >, + }, + QueueSubmitProofRequest { + request: SubmitProofRequest, + callback: tokio::sync::oneshot::Sender>, + }, + QueueConfirmBspRequest { + request: ConfirmStoringRequest, + callback: tokio::sync::oneshot::Sender>, + }, + QueueMspRespondStorageRequest { + request: RespondStorageRequest, + callback: tokio::sync::oneshot::Sender>, + }, + QueueStopStoringForInsolventUserRequest { + request: StopStoringForInsolventUserRequest, + callback: tokio::sync::oneshot::Sender>, + }, + QueryChallengesFromSeed { + seed: RandomnessOutput, + provider_id: ProviderId, + count: u32, + callback: tokio::sync::oneshot::Sender, ApiError>>, + }, + QueryForestChallengesFromSeed { + seed: RandomnessOutput, + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender, ApiError>>, + }, + QueryLastTickProviderSubmittedProof { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender< + Result, + >, + }, + QueryChallengePeriod { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender>, + }, + QueryNextChallengeTickForProvider { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender>, + }, + QueryLastCheckpointChallengeTick { + callback: tokio::sync::oneshot::Sender>, + }, + QueryLastCheckpointChallenges { + tick: BlockNumber, + callback: tokio::sync::oneshot::Sender< + Result)>, GetCheckpointChallengesError>, + >, + }, + QueryProviderForestRoot { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender>, + }, + QueryStorageProviderCapacity { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender< + Result, + >, + }, + QueryAvailableStorageCapacity { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender< + Result, + >, + }, + QueryStorageProviderId { + maybe_node_pub_key: Option, + callback: tokio::sync::oneshot::Sender>>, + }, + QueryUsersWithDebt { + provider_id: ProviderId, + min_debt: Balance, + callback: tokio::sync::oneshot::Sender< + Result, GetUsersWithDebtOverThresholdError>, + >, + }, + QueryWorstCaseScenarioSlashableAmount { + provider_id: ProviderId, + callback: tokio::sync::oneshot::Sender>>, + }, + QuerySlashAmountPerMaxFileSize { + callback: tokio::sync::oneshot::Sender>, + }, + QueryMspIdOfBucketId { + bucket_id: BucketId, + callback: + tokio::sync::oneshot::Sender>, + }, +} + +/// Interface for interacting with the BlockchainService actor. +#[async_trait] +pub trait BlockchainServiceInterface { + /// Send an extrinsic to the runtime. + async fn send_extrinsic( + &self, + call: impl Into + Send, + tip: Tip, + ) -> Result; + + /// Get an extrinsic from a block. + async fn get_extrinsic_from_block( + &self, + block_hash: H256, + extrinsic_hash: H256, + ) -> Result; + + /// Unwatch an extrinsic. + async fn unwatch_extrinsic(&self, subscription_id: Number) -> Result<()>; + + /// Wait for a block number. + async fn wait_for_block(&self, block_number: BlockNumber) -> Result<()>; + + /// Wait for a tick number. + async fn wait_for_tick(&self, tick_number: TickNumber) -> Result<(), ApiError>; + + /// Query the earliest tick number that a file was volunteered for storage. + async fn query_file_earliest_volunteer_tick( + &self, + bsp_id: ProviderId, + file_key: H256, + ) -> Result; + + async fn query_earliest_change_capacity_block( + &self, + bsp_id: ProviderId, + ) -> Result; + + /// Get the node's public key. + async fn get_node_public_key(&self) -> sp_core::sr25519::Public; + + /// Query the chunks that a BSP needs to confirm for a file. + async fn query_bsp_confirm_chunks_to_prove_for_file( + &self, + bsp_id: ProviderId, + file_key: H256, + ) -> Result, QueryBspConfirmChunksToProveForFileError>; + + /// Query the chunks that a MSP needs to confirm for a file. + async fn query_msp_confirm_chunks_to_prove_for_file( + &self, + msp_id: ProviderId, + file_key: H256, + ) -> Result, QueryMspConfirmChunksToProveForFileError>; + + /// Queue a SubmitProofRequest to be processed. + async fn queue_submit_proof_request(&self, request: SubmitProofRequest) -> Result<()>; + + /// Queue a ConfirmBspRequest to be processed. + async fn queue_confirm_bsp_request(&self, request: ConfirmStoringRequest) -> Result<()>; + + // Queue a BspStopStoringForInsolventUserRequest to be processed. + async fn queue_stop_storing_for_insolvent_user_request( + &self, + request: StopStoringForInsolventUserRequest, + ) -> Result<()>; + + /// Queue a RespondStoringRequest to be processed. + async fn queue_msp_respond_storage_request(&self, request: RespondStorageRequest) + -> Result<()>; + + /// Query the challenges that a Provider needs to submit for a given seed. + async fn query_challenges_from_seed( + &self, + seed: RandomnessOutput, + provider_id: ProviderId, + count: u32, + ) -> Result, ApiError>; + + /// Query the forest challenges that a Provider needs to submit for a given seed. + /// This is the same as the `query_challenges_from_seed` method, but it does not + /// require specifying the `count`, as the runtime will know how many challenges + /// to generate. + async fn query_forest_challenges_from_seed( + &self, + seed: RandomnessOutput, + provider_id: ProviderId, + ) -> Result, ApiError>; + + /// Query the last tick that a Provider submitted a proof for. + async fn query_last_tick_provider_submitted_proof( + &self, + provider_id: ProviderId, + ) -> Result; + + /// Query the challenge period for a given Provider. + async fn query_challenge_period( + &self, + provider_id: ProviderId, + ) -> Result; + + /// Query the next challenge tick for a given Provider. + async fn get_next_challenge_tick_for_provider( + &self, + provider_id: ProviderId, + ) -> Result; + + /// Query the last checkpoint tick. + async fn query_last_checkpoint_challenge_tick(&self) -> Result; + + /// Query the checkpoint challenges for a given tick. + async fn query_last_checkpoint_challenges( + &self, + tick: BlockNumber, + ) -> Result)>, GetCheckpointChallengesError>; + + /// Query the Merkle Patricia Forest root for a given Provider. + async fn query_provider_forest_root( + &self, + provider_id: ProviderId, + ) -> Result; + + /// Query the storage capacity for a Provider. + async fn query_storage_provider_capacity( + &self, + provider_id: ProviderId, + ) -> Result; + + /// Query the available storage capacity for a Provider. + async fn query_available_storage_capacity( + &self, + provider_id: ProviderId, + ) -> Result; + + /// Query the ProviderId for a given account. If no account is provided, the node's account is + /// used. + async fn query_storage_provider_id( + &self, + maybe_node_pub_key: Option, + ) -> Result>; + + async fn query_users_with_debt( + &self, + provider_id: ProviderId, + min_debt: Balance, + ) -> Result, GetUsersWithDebtOverThresholdError>; + + async fn query_worst_case_scenario_slashable_amount( + &self, + provider_id: ProviderId, + ) -> Result>; + + async fn query_slash_amount_per_max_file_size(&self) -> Result; + + /// Helper function to check if an extrinsic failed or succeeded in a block. + fn extrinsic_result(extrinsic: Extrinsic) -> Result; + + /// Helper function to submit an extrinsic with a retry strategy. Returns when the extrinsic is + /// included in a block or when the retry strategy is exhausted. + async fn submit_extrinsic_with_retry( + &self, + call: impl Into + Send, + retry_strategy: RetryStrategy, + ) -> Result<()>; + + /// Helper function to get the MSP ID of a bucket ID. + async fn query_msp_id_of_bucket_id( + &self, + bucket_id: BucketId, + ) -> Result; +} + +/// Implement the BlockchainServiceInterface for the ActorHandle. +#[async_trait] +impl BlockchainServiceInterface for ActorHandle { + async fn send_extrinsic( + &self, + call: impl Into + Send, + tip: Tip, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::SendExtrinsic { + call: call.into(), + tip, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn get_extrinsic_from_block( + &self, + block_hash: H256, + extrinsic_hash: H256, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::GetExtrinsicFromBlock { + block_hash, + extrinsic_hash, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn unwatch_extrinsic(&self, subscription_id: Number) -> Result<()> { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::UnwatchExtrinsic { + subscription_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn wait_for_block(&self, block_number: BlockNumber) -> Result<()> { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::WaitForBlock { + block_number, + callback, + }; + self.send(message).await; + let rx = rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed."); + rx.await.expect("Failed to wait for block"); + Ok(()) + } + + async fn wait_for_tick(&self, tick_number: TickNumber) -> Result<(), ApiError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::WaitForTick { + tick_number, + callback, + }; + self.send(message).await; + let rx = rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed."); + rx.await.expect("Failed to wait for tick") + } + + async fn query_file_earliest_volunteer_tick( + &self, + bsp_id: ProviderId, + file_key: H256, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::QueryFileEarliestVolunteerTick { + bsp_id, + file_key, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_earliest_change_capacity_block( + &self, + bsp_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = + BlockchainServiceCommand::QueryEarliestChangeCapacityBlock { bsp_id, callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + /// Get the node's public key. + async fn get_node_public_key(&self) -> sp_core::sr25519::Public { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::GetNodePublicKey { callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_bsp_confirm_chunks_to_prove_for_file( + &self, + bsp_id: ProviderId, + file_key: H256, + ) -> Result, QueryBspConfirmChunksToProveForFileError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::QueryBspConfirmChunksToProveForFile { + bsp_id, + file_key, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_msp_confirm_chunks_to_prove_for_file( + &self, + msp_id: ProviderId, + file_key: H256, + ) -> Result, QueryMspConfirmChunksToProveForFileError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::QueryMspConfirmChunksToProveForFile { + msp_id, + file_key, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn queue_submit_proof_request(&self, request: SubmitProofRequest) -> Result<()> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueueSubmitProofRequest { request, callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn queue_confirm_bsp_request(&self, request: ConfirmStoringRequest) -> Result<()> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueueConfirmBspRequest { request, callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn queue_msp_respond_storage_request( + &self, + request: RespondStorageRequest, + ) -> Result<()> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueueMspRespondStorageRequest { request, callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn queue_stop_storing_for_insolvent_user_request( + &self, + request: StopStoringForInsolventUserRequest, + ) -> Result<()> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = + BlockchainServiceCommand::QueueStopStoringForInsolventUserRequest { request, callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_challenges_from_seed( + &self, + seed: RandomnessOutput, + provider_id: ProviderId, + count: u32, + ) -> Result, ApiError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + // Build command to send to blockchain service. + let message = BlockchainServiceCommand::QueryChallengesFromSeed { + seed, + provider_id, + count, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_forest_challenges_from_seed( + &self, + seed: RandomnessOutput, + provider_id: ProviderId, + ) -> Result, ApiError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryForestChallengesFromSeed { + seed, + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_last_tick_provider_submitted_proof( + &self, + provider_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryLastTickProviderSubmittedProof { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_challenge_period( + &self, + provider_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryChallengePeriod { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn get_next_challenge_tick_for_provider( + &self, + provider_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryNextChallengeTickForProvider { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_last_checkpoint_challenge_tick(&self) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryLastCheckpointChallengeTick { callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_last_checkpoint_challenges( + &self, + tick: BlockNumber, + ) -> Result)>, GetCheckpointChallengesError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryLastCheckpointChallenges { tick, callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_provider_forest_root( + &self, + provider_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryProviderForestRoot { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_storage_provider_id( + &self, + maybe_node_pub_key: Option, + ) -> Result> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryStorageProviderId { + maybe_node_pub_key, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_storage_provider_capacity( + &self, + provider_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryStorageProviderCapacity { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_available_storage_capacity( + &self, + provider_id: ProviderId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryAvailableStorageCapacity { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_users_with_debt( + &self, + provider_id: ProviderId, + min_debt: Balance, + ) -> Result, GetUsersWithDebtOverThresholdError> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryUsersWithDebt { + provider_id, + min_debt, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_worst_case_scenario_slashable_amount( + &self, + provider_id: ProviderId, + ) -> Result> { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryWorstCaseScenarioSlashableAmount { + provider_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + async fn query_slash_amount_per_max_file_size(&self) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QuerySlashAmountPerMaxFileSize { callback }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } + + fn extrinsic_result(extrinsic: Extrinsic) -> Result { + for ev in extrinsic.events { + match ev.event { + storage_hub_runtime::RuntimeEvent::System( + frame_system::Event::ExtrinsicFailed { + dispatch_error, + dispatch_info, + }, + ) => { + return Ok(ExtrinsicResult::Failure { + dispatch_info, + dispatch_error, + }); + } + storage_hub_runtime::RuntimeEvent::System( + frame_system::Event::ExtrinsicSuccess { dispatch_info }, + ) => { + return Ok(ExtrinsicResult::Success { dispatch_info }); + } + _ => {} + } + } + + Err(anyhow::anyhow!( + "Extrinsic does not contain an ExtrinsicFailed event." + )) + } + + async fn submit_extrinsic_with_retry( + &self, + call: impl Into + Send, + retry_strategy: RetryStrategy, + ) -> Result<()> { + let call = call.into(); + + for retry_count in 0..=retry_strategy.max_retries { + let tip = retry_strategy.compute_tip(retry_count); + let mut transaction = self + .send_extrinsic(call.clone(), Tip::from(tip as u128)) + .await? + .with_timeout(retry_strategy.timeout); + + if transaction.watch_for_success(&self).await.is_ok() { + return Ok(()); + } + + if let Some(ref should_retry) = retry_strategy.should_retry { + if !should_retry().await { + return Err(anyhow::anyhow!("Exhausted retry strategy")); + } + } + + warn!(target: LOG_TARGET, "Failed to submit transaction, attempt #{}", retry_count + 1); + } + + Ok(()) + } + + async fn query_msp_id_of_bucket_id( + &self, + bucket_id: BucketId, + ) -> Result { + let (callback, rx) = tokio::sync::oneshot::channel(); + let message = BlockchainServiceCommand::QueryMspIdOfBucketId { + bucket_id, + callback, + }; + self.send(message).await; + rx.await.expect("Failed to receive response from BlockchainService. Probably means BlockchainService has crashed.") + } +} diff --git a/client/blockchain-service/src/events.rs b/client/blockchain-service/src/events.rs index fa8b0cb3b..5c9ce85bc 100644 --- a/client/blockchain-service/src/events.rs +++ b/client/blockchain-service/src/events.rs @@ -1,363 +1,363 @@ -use codec::{Decode, Encode}; -use sc_network::Multiaddr; -use shc_actors_framework::event_bus::{EventBus, EventBusMessage, ProvidesEventBus}; -use shc_common::types::{ - Balance, BlockNumber, BucketId, FileKey, FileLocation, Fingerprint, ForestRoot, KeyProofs, - PeerIds, ProviderId, RandomnessOutput, StorageData, TrieRemoveMutation, -}; -use sp_core::H256; -use sp_runtime::AccountId32; -use std::sync::Arc; -use tokio::sync::{oneshot, Mutex}; - -use crate::types::{ConfirmStoringRequest, RespondStorageRequest}; - -/// New random challenge emitted by the StorageHub runtime. -/// -/// This event is emitted when there's a new random challenge seed that affects this -/// BSP. In other words, it only pays attention to the random seeds in the challenge -/// period of this BSP. -#[derive(Debug, Clone, Encode, Decode)] -pub struct NewChallengeSeed { - pub provider_id: ProviderId, - pub tick: BlockNumber, - pub seed: RandomnessOutput, -} - -impl EventBusMessage for NewChallengeSeed {} - -/// Multiple new challenge seeds that have to be responded in order. -/// -/// This event is emitted when catching up to proof submissions, and there are multiple -/// new challenge seeds that have to be responded in order. -/// The `seeds` vector is expected to be sorted in ascending order, where the first element -/// is the seed that should be responded to first, and the last element is the seed that -/// should be responded to last. -#[derive(Debug, Clone, Encode, Decode)] -pub struct MultipleNewChallengeSeeds { - pub provider_id: ProviderId, - pub seeds: Vec<(BlockNumber, RandomnessOutput)>, -} - -impl EventBusMessage for MultipleNewChallengeSeeds {} - -/// New storage request event. -/// -/// This event is emitted when a new storage request is created on-chain. -#[derive(Debug, Clone)] -pub struct NewStorageRequest { - /// Account ID of the requester. - pub who: AccountId32, - /// Computed file key for the file. - pub file_key: FileKey, - /// Bucket ID of the file. - pub bucket_id: BucketId, - /// Location of the file (as a file path). - pub location: FileLocation, - /// Fingerprint of the file (root hash of the merkelized file). - pub fingerprint: Fingerprint, - /// Size of the file. - pub size: StorageData, - /// libp2p peer IDs from where the user would send the file. - pub user_peer_ids: PeerIds, -} - -impl EventBusMessage for NewStorageRequest {} - -/// Accepted BSP volunteer event. -/// -/// This event is emitted when a BSP volunteer is accepted to store a file. -#[derive(Debug, Clone)] -pub struct AcceptedBspVolunteer { - pub bsp_id: H256, - pub bucket_id: BucketId, - pub location: FileLocation, - pub fingerprint: Fingerprint, - pub multiaddresses: Vec, - pub owner: AccountId32, - pub size: StorageData, -} - -impl EventBusMessage for AcceptedBspVolunteer {} - -#[derive(Debug, Clone, Encode, Decode)] -pub enum ForestWriteLockTaskData { - SubmitProofRequest(ProcessSubmitProofRequestData), - ConfirmStoringRequest(ProcessConfirmStoringRequestData), - MspRespondStorageRequest(ProcessMspRespondStoringRequestData), - StopStoringForInsolventUserRequest(ProcessStopStoringForInsolventUserRequestData), -} - -impl From for ForestWriteLockTaskData { - fn from(data: ProcessSubmitProofRequestData) -> Self { - Self::SubmitProofRequest(data) - } -} - -impl From for ForestWriteLockTaskData { - fn from(data: ProcessConfirmStoringRequestData) -> Self { - Self::ConfirmStoringRequest(data) - } -} - -impl From for ForestWriteLockTaskData { - fn from(data: ProcessMspRespondStoringRequestData) -> Self { - Self::MspRespondStorageRequest(data) - } -} - -impl From for ForestWriteLockTaskData { - fn from(data: ProcessStopStoringForInsolventUserRequestData) -> Self { - Self::StopStoringForInsolventUserRequest(data) - } -} - -#[derive(Debug, Clone, Encode, Decode)] -pub struct ProcessSubmitProofRequestData { - pub provider_id: ProviderId, - pub tick: BlockNumber, - pub seed: RandomnessOutput, - pub forest_challenges: Vec, - pub checkpoint_challenges: Vec<(H256, Option)>, -} - -#[derive(Debug, Clone)] -pub struct ProcessSubmitProofRequest { - pub data: ProcessSubmitProofRequestData, - pub forest_root_write_tx: Arc>>>, -} - -impl EventBusMessage for ProcessSubmitProofRequest {} - -#[derive(Debug, Clone, Encode, Decode)] -pub struct ProcessConfirmStoringRequestData { - pub confirm_storing_requests: Vec, -} - -#[derive(Debug, Clone)] -pub struct ProcessConfirmStoringRequest { - pub data: ProcessConfirmStoringRequestData, - pub forest_root_write_tx: Arc>>>, -} - -impl EventBusMessage for ProcessConfirmStoringRequest {} - -#[derive(Debug, Clone, Encode, Decode)] -pub struct ProcessMspRespondStoringRequestData { - pub respond_storing_requests: Vec, -} - -#[derive(Debug, Clone)] -pub struct ProcessMspRespondStoringRequest { - pub data: crate::events::ProcessMspRespondStoringRequestData, - pub forest_root_write_tx: Arc>>>, -} - -impl EventBusMessage for ProcessMspRespondStoringRequest {} - -#[derive(Debug, Clone, Encode, Decode)] -pub struct ProcessStopStoringForInsolventUserRequestData { - pub who: AccountId32, -} - -#[derive(Debug, Clone)] -pub struct ProcessStopStoringForInsolventUserRequest { - pub data: ProcessStopStoringForInsolventUserRequestData, - pub forest_root_write_tx: Arc>>>, -} - -impl EventBusMessage for ProcessStopStoringForInsolventUserRequest {} - -/// Slashable Provider event. -/// -/// This event is emitted when a provider is marked as slashable by the runtime. -#[derive(Debug, Clone)] -pub struct SlashableProvider { - pub provider: ProviderId, - pub next_challenge_deadline: BlockNumber, -} - -impl EventBusMessage for SlashableProvider {} - -/// Mutations applied event in a finalised block. -/// -/// This event is emitted when a finalised block is received by the Blockchain service, -/// in which there is a `MutationsApplied` event for one of the providers that this node is tracking. -#[derive(Debug, Clone)] -pub struct FinalisedTrieRemoveMutationsApplied { - pub provider_id: ProviderId, - pub mutations: Vec<(ForestRoot, TrieRemoveMutation)>, - pub new_root: H256, -} - -impl EventBusMessage for FinalisedTrieRemoveMutationsApplied {} - -#[derive(Debug, Clone)] -pub struct ProofAccepted { - pub provider_id: ProviderId, - pub proofs: KeyProofs, -} - -impl EventBusMessage for ProofAccepted {} - -#[derive(Debug, Clone)] -pub struct LastChargeableInfoUpdated { - pub provider_id: ProviderId, - pub last_chargeable_tick: BlockNumber, - pub last_chargeable_price_index: Balance, -} - -impl EventBusMessage for LastChargeableInfoUpdated {} - -/// User without funds event. -/// -/// This event is emitted when a User has been determined as insolvent by the Payment Streams pallet for -/// being unable to pay for their payment streams for a prolonged period of time. -#[derive(Debug, Clone)] -pub struct UserWithoutFunds { - pub who: AccountId32, -} -impl EventBusMessage for UserWithoutFunds {} - -/// Provider stopped storing for insolvent user event. -/// -/// This event is emitted when a provider has stopped storing a file for an insolvent user. -#[derive(Debug, Clone)] -pub struct SpStopStoringInsolventUser { - pub sp_id: ProviderId, - pub file_key: FileKey, - pub owner: AccountId32, - pub location: FileLocation, - pub new_root: H256, -} -impl EventBusMessage for SpStopStoringInsolventUser {} - -/// The event bus provider for the BlockchainService actor. -/// -/// It holds the event buses for the different events that the BlockchainService actor -/// can emit. -#[derive(Clone, Default)] -pub struct BlockchainServiceEventBusProvider { - new_challenge_seed_event_bus: EventBus, - multiple_new_challenge_seeds_event_bus: EventBus, - new_storage_request_event_bus: EventBus, - accepted_bsp_volunteer_event_bus: EventBus, - process_submit_proof_request_event_bus: EventBus, - process_confirm_storage_request_event_bus: EventBus, - process_msp_respond_storing_request_event_bus: EventBus, - process_stop_storing_for_insolvent_user_request_event_bus: - EventBus, - slashable_provider_event_bus: EventBus, - finalised_mutations_applied_event_bus: EventBus, - proof_accepted_event_bus: EventBus, - last_chargeable_info_updated_event_bus: EventBus, - user_without_funds_event_bus: EventBus, - sp_stop_storing_insolvent_user_event_bus: EventBus, -} - -impl BlockchainServiceEventBusProvider { - pub fn new() -> Self { - Self { - new_challenge_seed_event_bus: EventBus::new(), - multiple_new_challenge_seeds_event_bus: EventBus::new(), - new_storage_request_event_bus: EventBus::new(), - accepted_bsp_volunteer_event_bus: EventBus::new(), - process_submit_proof_request_event_bus: EventBus::new(), - process_confirm_storage_request_event_bus: EventBus::new(), - process_msp_respond_storing_request_event_bus: EventBus::new(), - process_stop_storing_for_insolvent_user_request_event_bus: EventBus::new(), - slashable_provider_event_bus: EventBus::new(), - finalised_mutations_applied_event_bus: EventBus::new(), - proof_accepted_event_bus: EventBus::new(), - last_chargeable_info_updated_event_bus: EventBus::new(), - user_without_funds_event_bus: EventBus::new(), - sp_stop_storing_insolvent_user_event_bus: EventBus::new(), - } - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.new_challenge_seed_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.multiple_new_challenge_seeds_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.new_storage_request_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.accepted_bsp_volunteer_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.process_submit_proof_request_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.process_confirm_storage_request_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.process_msp_respond_storing_request_event_bus - } -} - -impl ProvidesEventBus - for BlockchainServiceEventBusProvider -{ - fn event_bus(&self) -> &EventBus { - &self.process_stop_storing_for_insolvent_user_request_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.slashable_provider_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.finalised_mutations_applied_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.proof_accepted_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.last_chargeable_info_updated_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.user_without_funds_event_bus - } -} - -impl ProvidesEventBus for BlockchainServiceEventBusProvider { - fn event_bus(&self) -> &EventBus { - &self.sp_stop_storing_insolvent_user_event_bus - } -} +use codec::{Decode, Encode}; +use sc_network::Multiaddr; +use shc_actors_framework::event_bus::{EventBus, EventBusMessage, ProvidesEventBus}; +use shc_common::types::{ + Balance, BlockNumber, BucketId, FileKey, FileLocation, Fingerprint, ForestRoot, KeyProofs, + PeerIds, ProviderId, RandomnessOutput, StorageData, TrieRemoveMutation, +}; +use sp_core::H256; +use sp_runtime::AccountId32; +use std::sync::Arc; +use tokio::sync::{oneshot, Mutex}; + +use crate::types::{ConfirmStoringRequest, RespondStorageRequest}; + +/// New random challenge emitted by the StorageHub runtime. +/// +/// This event is emitted when there's a new random challenge seed that affects this +/// BSP. In other words, it only pays attention to the random seeds in the challenge +/// period of this BSP. +#[derive(Debug, Clone, Encode, Decode)] +pub struct NewChallengeSeed { + pub provider_id: ProviderId, + pub tick: BlockNumber, + pub seed: RandomnessOutput, +} + +impl EventBusMessage for NewChallengeSeed {} + +/// Multiple new challenge seeds that have to be responded in order. +/// +/// This event is emitted when catching up to proof submissions, and there are multiple +/// new challenge seeds that have to be responded in order. +/// The `seeds` vector is expected to be sorted in ascending order, where the first element +/// is the seed that should be responded to first, and the last element is the seed that +/// should be responded to last. +#[derive(Debug, Clone, Encode, Decode)] +pub struct MultipleNewChallengeSeeds { + pub provider_id: ProviderId, + pub seeds: Vec<(BlockNumber, RandomnessOutput)>, +} + +impl EventBusMessage for MultipleNewChallengeSeeds {} + +/// New storage request event. +/// +/// This event is emitted when a new storage request is created on-chain. +#[derive(Debug, Clone)] +pub struct NewStorageRequest { + /// Account ID of the requester. + pub who: AccountId32, + /// Computed file key for the file. + pub file_key: FileKey, + /// Bucket ID of the file. + pub bucket_id: BucketId, + /// Location of the file (as a file path). + pub location: FileLocation, + /// Fingerprint of the file (root hash of the merkelized file). + pub fingerprint: Fingerprint, + /// Size of the file. + pub size: StorageData, + /// libp2p peer IDs from where the user would send the file. + pub user_peer_ids: PeerIds, +} + +impl EventBusMessage for NewStorageRequest {} + +/// Accepted BSP volunteer event. +/// +/// This event is emitted when a BSP volunteer is accepted to store a file. +#[derive(Debug, Clone)] +pub struct AcceptedBspVolunteer { + pub bsp_id: H256, + pub bucket_id: BucketId, + pub location: FileLocation, + pub fingerprint: Fingerprint, + pub multiaddresses: Vec, + pub owner: AccountId32, + pub size: StorageData, +} + +impl EventBusMessage for AcceptedBspVolunteer {} + +#[derive(Debug, Clone, Encode, Decode)] +pub enum ForestWriteLockTaskData { + SubmitProofRequest(ProcessSubmitProofRequestData), + ConfirmStoringRequest(ProcessConfirmStoringRequestData), + MspRespondStorageRequest(ProcessMspRespondStoringRequestData), + StopStoringForInsolventUserRequest(ProcessStopStoringForInsolventUserRequestData), +} + +impl From for ForestWriteLockTaskData { + fn from(data: ProcessSubmitProofRequestData) -> Self { + Self::SubmitProofRequest(data) + } +} + +impl From for ForestWriteLockTaskData { + fn from(data: ProcessConfirmStoringRequestData) -> Self { + Self::ConfirmStoringRequest(data) + } +} + +impl From for ForestWriteLockTaskData { + fn from(data: ProcessMspRespondStoringRequestData) -> Self { + Self::MspRespondStorageRequest(data) + } +} + +impl From for ForestWriteLockTaskData { + fn from(data: ProcessStopStoringForInsolventUserRequestData) -> Self { + Self::StopStoringForInsolventUserRequest(data) + } +} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct ProcessSubmitProofRequestData { + pub provider_id: ProviderId, + pub tick: BlockNumber, + pub seed: RandomnessOutput, + pub forest_challenges: Vec, + pub checkpoint_challenges: Vec<(H256, Option)>, +} + +#[derive(Debug, Clone)] +pub struct ProcessSubmitProofRequest { + pub data: ProcessSubmitProofRequestData, + pub forest_root_write_tx: Arc>>>, +} + +impl EventBusMessage for ProcessSubmitProofRequest {} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct ProcessConfirmStoringRequestData { + pub confirm_storing_requests: Vec, +} + +#[derive(Debug, Clone)] +pub struct ProcessConfirmStoringRequest { + pub data: ProcessConfirmStoringRequestData, + pub forest_root_write_tx: Arc>>>, +} + +impl EventBusMessage for ProcessConfirmStoringRequest {} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct ProcessMspRespondStoringRequestData { + pub respond_storing_requests: Vec, +} + +#[derive(Debug, Clone)] +pub struct ProcessMspRespondStoringRequest { + pub data: crate::events::ProcessMspRespondStoringRequestData, + pub forest_root_write_tx: Arc>>>, +} + +impl EventBusMessage for ProcessMspRespondStoringRequest {} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct ProcessStopStoringForInsolventUserRequestData { + pub who: AccountId32, +} + +#[derive(Debug, Clone)] +pub struct ProcessStopStoringForInsolventUserRequest { + pub data: ProcessStopStoringForInsolventUserRequestData, + pub forest_root_write_tx: Arc>>>, +} + +impl EventBusMessage for ProcessStopStoringForInsolventUserRequest {} + +/// Slashable Provider event. +/// +/// This event is emitted when a provider is marked as slashable by the runtime. +#[derive(Debug, Clone)] +pub struct SlashableProvider { + pub provider: ProviderId, + pub next_challenge_deadline: BlockNumber, +} + +impl EventBusMessage for SlashableProvider {} + +/// Mutations applied event in a finalised block. +/// +/// This event is emitted when a finalised block is received by the Blockchain service, +/// in which there is a `MutationsApplied` event for one of the providers that this node is tracking. +#[derive(Debug, Clone)] +pub struct FinalisedTrieRemoveMutationsApplied { + pub provider_id: ProviderId, + pub mutations: Vec<(ForestRoot, TrieRemoveMutation)>, + pub new_root: H256, +} + +impl EventBusMessage for FinalisedTrieRemoveMutationsApplied {} + +#[derive(Debug, Clone)] +pub struct ProofAccepted { + pub provider_id: ProviderId, + pub proofs: KeyProofs, +} + +impl EventBusMessage for ProofAccepted {} + +#[derive(Debug, Clone)] +pub struct LastChargeableInfoUpdated { + pub provider_id: ProviderId, + pub last_chargeable_tick: BlockNumber, + pub last_chargeable_price_index: Balance, +} + +impl EventBusMessage for LastChargeableInfoUpdated {} + +/// User without funds event. +/// +/// This event is emitted when a User has been determined as insolvent by the Payment Streams pallet for +/// being unable to pay for their payment streams for a prolonged period of time. +#[derive(Debug, Clone)] +pub struct UserWithoutFunds { + pub who: AccountId32, +} +impl EventBusMessage for UserWithoutFunds {} + +/// Provider stopped storing for insolvent user event. +/// +/// This event is emitted when a provider has stopped storing a file for an insolvent user. +#[derive(Debug, Clone)] +pub struct SpStopStoringInsolventUser { + pub sp_id: ProviderId, + pub file_key: FileKey, + pub owner: AccountId32, + pub location: FileLocation, + pub new_root: H256, +} +impl EventBusMessage for SpStopStoringInsolventUser {} + +/// The event bus provider for the BlockchainService actor. +/// +/// It holds the event buses for the different events that the BlockchainService actor +/// can emit. +#[derive(Clone, Default)] +pub struct BlockchainServiceEventBusProvider { + new_challenge_seed_event_bus: EventBus, + multiple_new_challenge_seeds_event_bus: EventBus, + new_storage_request_event_bus: EventBus, + accepted_bsp_volunteer_event_bus: EventBus, + process_submit_proof_request_event_bus: EventBus, + process_confirm_storage_request_event_bus: EventBus, + process_msp_respond_storing_request_event_bus: EventBus, + process_stop_storing_for_insolvent_user_request_event_bus: + EventBus, + slashable_provider_event_bus: EventBus, + finalised_mutations_applied_event_bus: EventBus, + proof_accepted_event_bus: EventBus, + last_chargeable_info_updated_event_bus: EventBus, + user_without_funds_event_bus: EventBus, + sp_stop_storing_insolvent_user_event_bus: EventBus, +} + +impl BlockchainServiceEventBusProvider { + pub fn new() -> Self { + Self { + new_challenge_seed_event_bus: EventBus::new(), + multiple_new_challenge_seeds_event_bus: EventBus::new(), + new_storage_request_event_bus: EventBus::new(), + accepted_bsp_volunteer_event_bus: EventBus::new(), + process_submit_proof_request_event_bus: EventBus::new(), + process_confirm_storage_request_event_bus: EventBus::new(), + process_msp_respond_storing_request_event_bus: EventBus::new(), + process_stop_storing_for_insolvent_user_request_event_bus: EventBus::new(), + slashable_provider_event_bus: EventBus::new(), + finalised_mutations_applied_event_bus: EventBus::new(), + proof_accepted_event_bus: EventBus::new(), + last_chargeable_info_updated_event_bus: EventBus::new(), + user_without_funds_event_bus: EventBus::new(), + sp_stop_storing_insolvent_user_event_bus: EventBus::new(), + } + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.new_challenge_seed_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.multiple_new_challenge_seeds_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.new_storage_request_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.accepted_bsp_volunteer_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.process_submit_proof_request_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.process_confirm_storage_request_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.process_msp_respond_storing_request_event_bus + } +} + +impl ProvidesEventBus + for BlockchainServiceEventBusProvider +{ + fn event_bus(&self) -> &EventBus { + &self.process_stop_storing_for_insolvent_user_request_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.slashable_provider_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.finalised_mutations_applied_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.proof_accepted_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.last_chargeable_info_updated_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.user_without_funds_event_bus + } +} + +impl ProvidesEventBus for BlockchainServiceEventBusProvider { + fn event_bus(&self) -> &EventBus { + &self.sp_stop_storing_insolvent_user_event_bus + } +} diff --git a/client/blockchain-service/src/handler.rs b/client/blockchain-service/src/handler.rs index 9b320f5f3..30883750b 100644 --- a/client/blockchain-service/src/handler.rs +++ b/client/blockchain-service/src/handler.rs @@ -1,1249 +1,1249 @@ -use anyhow::anyhow; -use futures::prelude::*; -use log::{debug, trace, warn}; -use std::{ - collections::{BTreeMap, BTreeSet}, - path::PathBuf, - str::FromStr, - sync::Arc, -}; - -use sc_client_api::{ - BlockImportNotification, BlockchainEvents, FinalityNotification, HeaderBackend, -}; -use sc_network::Multiaddr; -use sc_service::RpcHandlers; -use sc_tracing::tracing::{error, info}; -use sp_api::{ApiError, ProvideRuntimeApi}; -use sp_core::H256; -use sp_keystore::{Keystore, KeystorePtr}; -use sp_runtime::{ - traits::{Header, Zero}, - AccountId32, SaturatedConversion, -}; - -use pallet_file_system_runtime_api::{ - FileSystemApi, QueryBspConfirmChunksToProveForFileError, QueryFileEarliestVolunteerTickError, - QueryMspConfirmChunksToProveForFileError, -}; -use pallet_payment_streams_runtime_api::{GetUsersWithDebtOverThresholdError, PaymentStreamsApi}; -use pallet_proofs_dealer_runtime_api::{ - GetChallengePeriodError, GetCheckpointChallengesError, GetLastTickProviderSubmittedProofError, - ProofsDealerApi, -}; -use pallet_storage_providers_runtime_api::{ - GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, - QueryMspIdOfBucketIdError, QueryStorageProviderCapacityError, StorageProvidersApi, -}; -use shc_actors_framework::actor::{Actor, ActorEventLoop}; -use shc_common::types::{BlockNumber, ParachainClient, ProviderId}; -use shc_common::{ - blockchain_utils::get_events_at_block, - types::{Fingerprint, TickNumber, BCSV_KEY_TYPE}, -}; -use shp_file_metadata::FileKey; -use storage_hub_runtime::RuntimeEvent; - -use crate::state::OngoingProcessMspRespondStorageRequestCf; -use crate::{ - commands::BlockchainServiceCommand, - events::{ - AcceptedBspVolunteer, BlockchainServiceEventBusProvider, - FinalisedTrieRemoveMutationsApplied, LastChargeableInfoUpdated, NewStorageRequest, - SlashableProvider, SpStopStoringInsolventUser, UserWithoutFunds, - }, - state::{ - BlockchainServiceStateStore, LastProcessedBlockNumberCf, - OngoingProcessConfirmStoringRequestCf, OngoingProcessStopStoringForInsolventUserRequestCf, - }, - transaction::SubmittedTransaction, - typed_store::{CFDequeAPI, ProvidesTypedDbSingleAccess}, - types::{StopStoringForInsolventUserRequest, SubmitProofRequest}, -}; - -pub(crate) const LOG_TARGET: &str = "blockchain-service"; -pub(crate) const SYNC_MODE_MIN_BLOCKS_BEHIND: BlockNumber = 5; - -/// The BlockchainService actor. -/// -/// This actor is responsible for sending extrinsics to the runtime and handling block import notifications. -/// For such purposes, it uses the [`ParachainClient`] to interact with the runtime, the [`RpcHandlers`] to send -/// extrinsics, and the [`Keystore`] to sign the extrinsics. -pub struct BlockchainService { - /// The event bus provider. - pub(crate) event_bus_provider: BlockchainServiceEventBusProvider, - /// The parachain client. Used to interact with the runtime. - pub(crate) client: Arc, - /// The keystore. Used to sign extrinsics. - pub(crate) keystore: KeystorePtr, - /// The RPC handlers. Used to send extrinsics. - pub(crate) rpc_handlers: Arc, - /// Nonce counter for the extrinsics. - pub(crate) nonce_counter: u32, - /// A registry of waiters for a block number. - pub(crate) wait_for_block_request_by_number: - BTreeMap>>, - /// A registry of waiters for a tick number. - pub(crate) wait_for_tick_request_by_number: - BTreeMap>>>, - /// A list of Provider IDs that this node has to pay attention to submit proofs for. - /// This could be a BSP or a list of buckets that an MSP has. - pub(crate) provider_ids: BTreeSet, - /// A lock to prevent multiple tasks from writing to the runtime forest root (send transactions) at the same time. - /// This is a oneshot channel instead of a regular mutex because we want to "lock" in 1 - /// thread (blockchain service) and unlock it at the end of the spawned task. The alternative - /// would be to send a [`MutexGuard`]. - pub(crate) forest_root_write_lock: Option>, - /// The last block number that was processed by the BlockchainService. - /// This is used to detect when the BlockchainService gets out of syncing mode and should therefore - /// run some initialisation tasks. - pub(crate) last_block_processed: BlockNumber, - /// A persistent state store for the BlockchainService actor. - pub(crate) persistent_state: BlockchainServiceStateStore, - /// Pending submit proof requests. Note: this is not kept in the persistent state because of - /// various edge cases when restarting the node, all originating from the "dynamic" way of - /// computing the next challenges tick. This case is handled separately. - pub(crate) pending_submit_proof_requests: BTreeSet, -} - -/// Event loop for the BlockchainService actor. -pub struct BlockchainServiceEventLoop { - receiver: sc_utils::mpsc::TracingUnboundedReceiver, - actor: BlockchainService, -} - -/// Merged event loop message for the BlockchainService actor. -enum MergedEventLoopMessage -where - Block: cumulus_primitives_core::BlockT, -{ - Command(BlockchainServiceCommand), - BlockImportNotification(BlockImportNotification), - FinalityNotification(FinalityNotification), -} - -/// Implement the ActorEventLoop trait for the BlockchainServiceEventLoop. -impl ActorEventLoop for BlockchainServiceEventLoop { - fn new( - actor: BlockchainService, - receiver: sc_utils::mpsc::TracingUnboundedReceiver, - ) -> Self { - Self { actor, receiver } - } - - async fn run(mut self) { - info!(target: LOG_TARGET, "BlockchainService starting up!"); - - // Import notification stream to be notified of new blocks. - // The behaviour of this stream is: - // 1. While the node is syncing to the tip of the chain (initial sync, i.e. it just started - // or got behind due to connectivity issues), it will only notify us of re-orgs. - // 2. Once the node is synced, it will notify us of every new block. - let block_import_notification_stream = self.actor.client.import_notification_stream(); - - // Finality notification stream to be notified of blocks being finalised. - let finality_notification_stream = self.actor.client.finality_notification_stream(); - - // Merging notification streams with command stream. - let mut merged_stream = stream::select_all(vec![ - self.receiver.map(MergedEventLoopMessage::Command).boxed(), - block_import_notification_stream - .map(MergedEventLoopMessage::BlockImportNotification) - .boxed(), - finality_notification_stream - .map(MergedEventLoopMessage::FinalityNotification) - .boxed(), - ]); - - // Process incoming messages. - while let Some(notification) = merged_stream.next().await { - match notification { - MergedEventLoopMessage::Command(command) => { - self.actor.handle_message(command).await; - } - MergedEventLoopMessage::BlockImportNotification(notification) => { - self.actor - .handle_block_import_notification(notification) - .await; - } - MergedEventLoopMessage::FinalityNotification(notification) => { - self.actor.handle_finality_notification(notification).await; - } - }; - } - } -} - -/// Implement the Actor trait for the BlockchainService actor. -impl Actor for BlockchainService { - type Message = BlockchainServiceCommand; - type EventLoop = BlockchainServiceEventLoop; - type EventBusProvider = BlockchainServiceEventBusProvider; - - fn handle_message( - &mut self, - message: Self::Message, - ) -> impl std::future::Future + Send { - async { - match message { - BlockchainServiceCommand::SendExtrinsic { - call, - tip, - callback, - } => match self.send_extrinsic(call, tip).await { - Ok(output) => { - debug!(target: LOG_TARGET, "Extrinsic sent successfully: {:?}", output); - match callback - .send(Ok(SubmittedTransaction::new(output.receiver, output.hash))) - { - Ok(_) => { - trace!(target: LOG_TARGET, "Receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - Err(e) => { - warn!(target: LOG_TARGET, "Failed to send extrinsic: {:?}", e); - - match callback.send(Err(e)) { - Ok(_) => { - trace!(target: LOG_TARGET, "RPC error sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send error message through channel: {:?}", e); - } - } - } - }, - BlockchainServiceCommand::GetExtrinsicFromBlock { - block_hash, - extrinsic_hash, - callback, - } => { - match self - .get_extrinsic_from_block(block_hash, extrinsic_hash) - .await - { - Ok(extrinsic) => { - debug!(target: LOG_TARGET, "Extrinsic retrieved successfully: {:?}", extrinsic); - match callback.send(Ok(extrinsic)) { - Ok(_) => { - trace!(target: LOG_TARGET, "Receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - Err(e) => { - warn!(target: LOG_TARGET, "Failed to retrieve extrinsic: {:?}", e); - match callback.send(Err(e)) { - Ok(_) => { - trace!(target: LOG_TARGET, "Receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - } - } - BlockchainServiceCommand::UnwatchExtrinsic { - subscription_id, - callback, - } => match self.unwatch_extrinsic(subscription_id).await { - Ok(output) => { - debug!(target: LOG_TARGET, "Extrinsic unwatched successfully: {:?}", output); - match callback.send(Ok(())) { - Ok(_) => { - trace!(target: LOG_TARGET, "Receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - Err(e) => { - warn!(target: LOG_TARGET, "Failed to unwatch extrinsic: {:?}", e); - match callback.send(Err(e)) { - Ok(_) => { - trace!(target: LOG_TARGET, "Receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - }, - BlockchainServiceCommand::WaitForBlock { - block_number, - callback, - } => { - let current_block_number = self.client.info().best_number; - - let (tx, rx) = tokio::sync::oneshot::channel(); - - if current_block_number >= block_number { - match tx.send(()) { - Ok(_) => {} - Err(_) => { - error!(target: LOG_TARGET, "Failed to notify task about waiting block number. \nThis should never happen, in this same code we have both the sender and receiver of the oneshot channel, so it should always be possible to send the message."); - } - } - } else { - self.wait_for_block_request_by_number - .entry(block_number) - .or_insert_with(Vec::new) - .push(tx); - } - - match callback.send(rx) { - Ok(_) => { - trace!(target: LOG_TARGET, "Block message receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send block message receiver: {:?}", e); - } - } - } - BlockchainServiceCommand::WaitForTick { - tick_number, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - // Current Tick should always return a value, unless there's an internal API error. - let current_tick_result = self - .client - .runtime_api() - .get_current_tick(current_block_hash); - - let (tx, rx) = tokio::sync::oneshot::channel(); - - match current_tick_result { - Ok(current_tick) => { - // If there is no API error, and the current tick is greater than or equal to the tick number - // we are waiting for, we notify the task that the tick has been reached. - if current_tick >= tick_number { - match tx.send(Ok(())) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to notify task about tick reached: {:?}. \nThis should never happen, in this same code we have both the sender and receiver of the oneshot channel, so it should always be possible to send the message.", e); - } - } - } else { - // If the current tick is less than the tick number we are waiting for, we insert it in - // the waiting queue. - self.wait_for_tick_request_by_number - .entry(tick_number) - .or_insert_with(Vec::new) - .push(tx); - } - } - Err(e) => { - // If there is an API error, we notify the task about it immediately. - match tx.send(Err(e)) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to notify API error to task querying current tick: {:?}. \nThis should never happen, in this same code we have both the sender and receiver of the oneshot channel, so it should always be possible to send the message.", e); - } - } - } - } - - match callback.send(rx) { - Ok(_) => { - trace!(target: LOG_TARGET, "Tick message receiver sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send tick message receiver: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryEarliestChangeCapacityBlock { bsp_id, callback } => { - let current_block_hash = self.client.info().best_hash; - - let earliest_block_to_change_capacity = self - .client - .runtime_api() - .query_earliest_change_capacity_block(current_block_hash, &bsp_id) - .unwrap_or_else(|_| { - error!(target: LOG_TARGET, "Failed to query earliest block to change capacity"); - Err(QueryEarliestChangeCapacityBlockError::InternalError) - }); - - match callback.send(earliest_block_to_change_capacity) { - Ok(_) => { - trace!(target: LOG_TARGET, "Earliest block to change capacity result sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send earliest block to change capacity: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryFileEarliestVolunteerTick { - bsp_id, - file_key, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let earliest_block_to_volunteer = self - .client - .runtime_api() - .query_earliest_file_volunteer_tick( - current_block_hash, - bsp_id.into(), - file_key, - ) - .unwrap_or_else(|_| { - Err(QueryFileEarliestVolunteerTickError::InternalError) - }); - - match callback.send(earliest_block_to_volunteer) { - Ok(_) => { - trace!(target: LOG_TARGET, "Earliest block to volunteer result sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send earliest block to volunteer: {:?}", e); - } - } - } - BlockchainServiceCommand::GetNodePublicKey { callback } => { - let pub_key = Self::caller_pub_key(self.keystore.clone()); - match callback.send(pub_key) { - Ok(_) => { - trace!(target: LOG_TARGET, "Node's public key sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send node's public key: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryBspConfirmChunksToProveForFile { - bsp_id, - file_key, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let chunks_to_prove = self - .client - .runtime_api() - .query_bsp_confirm_chunks_to_prove_for_file( - current_block_hash, - bsp_id.into(), - file_key, - ) - .unwrap_or_else(|_| { - Err(QueryBspConfirmChunksToProveForFileError::InternalError) - }); - - match callback.send(chunks_to_prove) { - Ok(_) => { - trace!(target: LOG_TARGET, "Chunks to prove file sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send chunks to prove file: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryMspConfirmChunksToProveForFile { - msp_id, - file_key, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let chunks_to_prove = self - .client - .runtime_api() - .query_msp_confirm_chunks_to_prove_for_file( - current_block_hash, - msp_id.into(), - file_key, - ) - .unwrap_or_else(|_| { - Err(QueryMspConfirmChunksToProveForFileError::InternalError) - }); - - match callback.send(chunks_to_prove) { - Ok(_) => { - trace!(target: LOG_TARGET, "Chunks to prove file sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send chunks to prove file: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryChallengesFromSeed { - seed, - provider_id, - count, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let challenges = self.client.runtime_api().get_challenges_from_seed( - current_block_hash, - &seed, - &provider_id, - count, - ); - - match callback.send(challenges) { - Ok(_) => { - trace!(target: LOG_TARGET, "Challenges sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send challenges: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryForestChallengesFromSeed { - seed, - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let challenges = self.client.runtime_api().get_forest_challenges_from_seed( - current_block_hash, - &seed, - &provider_id, - ); - - match callback.send(challenges) { - Ok(_) => { - trace!(target: LOG_TARGET, "Challenges sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send challenges: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryLastTickProviderSubmittedProof { - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let last_tick = self - .client - .runtime_api() - .get_last_tick_provider_submitted_proof(current_block_hash, &provider_id) - .unwrap_or_else(|_| { - Err(GetLastTickProviderSubmittedProofError::InternalApiError) - }); - - match callback.send(last_tick) { - Ok(_) => { - trace!(target: LOG_TARGET, "Last tick sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send last tick provider submitted proof: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryChallengePeriod { - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let challenge_period = self - .client - .runtime_api() - .get_challenge_period(current_block_hash, &provider_id) - .unwrap_or_else(|_| { - error!(target: LOG_TARGET, "Failed to query challenge period for provider [{:?}]", provider_id); - Err(GetChallengePeriodError::InternalApiError) - }); - - match callback.send(challenge_period) { - Ok(_) => { - trace!(target: LOG_TARGET, "Challenge period sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send challenge period: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryNextChallengeTickForProvider { - provider_id, - callback, - } => { - let next_challenge_tick = - self.get_next_challenge_tick_for_provider(&provider_id); - - match callback.send(next_challenge_tick) { - Ok(_) => { - trace!(target: LOG_TARGET, "Next challenge tick sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send next challenge tick: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryLastCheckpointChallengeTick { callback } => { - let current_block_hash = self.client.info().best_hash; - - let last_checkpoint_tick = self - .client - .runtime_api() - .get_last_checkpoint_challenge_tick(current_block_hash); - - match callback.send(last_checkpoint_tick) { - Ok(_) => { - trace!(target: LOG_TARGET, "Last checkpoint tick sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send last checkpoint challenge tick: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryLastCheckpointChallenges { tick, callback } => { - let current_block_hash = self.client.info().best_hash; - - let checkpoint_challenges = self - .client - .runtime_api() - .get_checkpoint_challenges(current_block_hash, tick) - .unwrap_or_else(|_| Err(GetCheckpointChallengesError::InternalApiError)); - - match callback.send(checkpoint_challenges) { - Ok(_) => { - trace!(target: LOG_TARGET, "Checkpoint challenges sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send checkpoint challenges: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryProviderForestRoot { - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let bsp_info = self - .client - .runtime_api() - .get_bsp_info(current_block_hash, &provider_id) - .unwrap_or_else(|_| Err(GetBspInfoError::InternalApiError)); - - let root = bsp_info.map(|bsp_info| bsp_info.root); - - match callback.send(root) { - Ok(_) => { - trace!(target: LOG_TARGET, "BSP root sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send BSP root: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryStorageProviderCapacity { - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let capacity = self - .client - .runtime_api() - .query_storage_provider_capacity(current_block_hash, &provider_id) - .unwrap_or_else(|_| Err(QueryStorageProviderCapacityError::InternalError)); - - match callback.send(capacity) { - Ok(_) => { - trace!(target: LOG_TARGET, "Storage provider capacity sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send storage provider capacity: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryAvailableStorageCapacity { - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let capacity = self - .client - .runtime_api() - .query_available_storage_capacity(current_block_hash, &provider_id) - .unwrap_or_else(|_| Err(QueryAvailableStorageCapacityError::InternalError)); - - match callback.send(capacity) { - Ok(_) => { - trace!(target: LOG_TARGET, "Available storage capacity sent successfully"); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to send available storage capacity: {:?}", e); - } - } - } - BlockchainServiceCommand::QueueConfirmBspRequest { request, callback } => { - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .pending_confirm_storing_request_deque() - .push_back(request); - state_store_context.commit(); - // We check right away if we can process the request so we don't waste time. - self.check_pending_forest_root_writes(); - match callback.send(Ok(())) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - BlockchainServiceCommand::QueueMspRespondStorageRequest { request, callback } => { - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .pending_msp_respond_storage_request_deque() - .push_back(request); - state_store_context.commit(); - // We check right away if we can process the request so we don't waste time. - self.check_pending_forest_root_writes(); - match callback.send(Ok(())) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - BlockchainServiceCommand::QueueSubmitProofRequest { request, callback } => { - // The strategy used here is to replace the request in the set with the new request. - // This is because new insertions are presumed to be done with more information of the current state of the chain, - // so we want to make sure that the request is the most up-to-date one. - if let Some(replaced_request) = - self.pending_submit_proof_requests.replace(request.clone()) - { - trace!(target: LOG_TARGET, "Replacing pending submit proof request {:?} with {:?}", replaced_request, request); - } - - // We check right away if we can process the request so we don't waste time. - self.check_pending_forest_root_writes(); - match callback.send(Ok(())) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - BlockchainServiceCommand::QueueStopStoringForInsolventUserRequest { - request, - callback, - } => { - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .pending_stop_storing_for_insolvent_user_request_deque() - .push_back(request); - state_store_context.commit(); - // We check right away if we can process the request so we don't waste time. - self.check_pending_forest_root_writes(); - match callback.send(Ok(())) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryStorageProviderId { - maybe_node_pub_key, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let node_pub_key = maybe_node_pub_key - .unwrap_or_else(|| Self::caller_pub_key(self.keystore.clone())); - - let provider_id = self - .client - .runtime_api() - .get_storage_provider_id(current_block_hash, &node_pub_key.into()) - .map_err(|_| anyhow!("Internal API error")); - - match callback.send(provider_id) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send storage provider ID: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryUsersWithDebt { - provider_id, - min_debt, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let users_with_debt = self - .client - .runtime_api() - .get_users_with_debt_over_threshold( - current_block_hash, - &provider_id, - min_debt, - ) - .unwrap_or_else(|e| { - error!(target: LOG_TARGET, "{}", e); - Err(GetUsersWithDebtOverThresholdError::InternalApiError) - }); - - match callback.send(users_with_debt) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send back users with debt: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryWorstCaseScenarioSlashableAmount { - provider_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let worst_case_scenario_slashable_amount = self - .client - .runtime_api() - .get_worst_case_scenario_slashable_amount(current_block_hash, provider_id) - .map_err(|_| anyhow!("Internal API error")); - - match callback.send(worst_case_scenario_slashable_amount) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send back slashable amount: {:?}", e); - } - } - } - BlockchainServiceCommand::QuerySlashAmountPerMaxFileSize { callback } => { - // Get the current block hash. - let current_block_hash = self.client.info().best_hash; - - let slash_amount_per_max_file_size = self - .client - .runtime_api() - .get_slash_amount_per_max_file_size(current_block_hash) - .map_err(|_| anyhow!("Internal API error")); - - match callback.send(slash_amount_per_max_file_size) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send back `SlashAmountPerMaxFileSize`: {:?}", e); - } - } - } - BlockchainServiceCommand::QueryMspIdOfBucketId { - bucket_id, - callback, - } => { - let current_block_hash = self.client.info().best_hash; - - let msp_id = self - .client - .runtime_api() - .query_msp_id_of_bucket_id(current_block_hash, &bucket_id) - .unwrap_or_else(|e| { - error!(target: LOG_TARGET, "{}", e); - Err(QueryMspIdOfBucketIdError::BucketNotFound) - }); - - match callback.send(msp_id) { - Ok(_) => {} - Err(e) => { - error!(target: LOG_TARGET, "Failed to send back MSP ID: {:?}", e); - } - } - } - } - } - } - - fn get_event_bus_provider(&self) -> &Self::EventBusProvider { - &self.event_bus_provider - } -} - -impl BlockchainService { - /// Create a new [`BlockchainService`]. - pub fn new( - client: Arc, - rpc_handlers: Arc, - keystore: KeystorePtr, - rocksdb_root_path: impl Into, - ) -> Self { - Self { - client, - rpc_handlers, - keystore, - event_bus_provider: BlockchainServiceEventBusProvider::new(), - nonce_counter: 0, - wait_for_block_request_by_number: BTreeMap::new(), - wait_for_tick_request_by_number: BTreeMap::new(), - provider_ids: BTreeSet::new(), - forest_root_write_lock: None, - last_block_processed: Zero::zero(), - persistent_state: BlockchainServiceStateStore::new(rocksdb_root_path.into()), - pending_submit_proof_requests: BTreeSet::new(), - } - } - - async fn handle_block_import_notification( - &mut self, - notification: BlockImportNotification, - ) where - Block: cumulus_primitives_core::BlockT, - { - let block_hash: H256 = notification.hash; - let block_number: BlockNumber = (*notification.header.number()).saturated_into(); - - // If this is the first block import notification, we might need to catch up. - info!(target: LOG_TARGET, "Block import notification (#{}): {}", block_number, block_hash); - - // Get provider IDs linked to keys in this node's keystore and update the nonce. - self.pre_block_processing_checks(&block_hash); - - // Check if we just came out of syncing mode. - if block_number - self.last_block_processed < SYNC_MODE_MIN_BLOCKS_BEHIND { - self.handle_initial_sync(notification).await; - } - - self.process_block_import(&block_hash, &block_number).await; - } - - fn pre_block_processing_checks(&mut self, block_hash: &H256) { - // We query the [`BlockchainService`] account nonce at this height - // and update our internal counter if it's smaller than the result. - self.check_nonce(&block_hash); - - // Get provider IDs linked to keys in this node's keystore. - self.get_provider_ids(&block_hash); - } - - /// Handle the first time this node syncs with the chain. - async fn handle_initial_sync(&mut self, notification: BlockImportNotification) - where - Block: cumulus_primitives_core::BlockT, - { - let block_hash: H256 = notification.hash; - let block_number: BlockNumber = (*notification.header.number()).saturated_into(); - - // If this is the first block import notification, we might need to catch up. - info!(target: LOG_TARGET, "First block import notification (synced to #{}): {}", block_number, block_hash); - - // Check if there was an ongoing process confirm storing task. - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - - // Check if there was an ongoing process confirm storing task. - // Note: This would only exist if the node was running as a BSP. - let maybe_ongoing_process_confirm_storing_request = state_store_context - .access_value(&OngoingProcessConfirmStoringRequestCf) - .read(); - - // If there was an ongoing process confirm storing task, we need to re-queue the requests. - if let Some(process_confirm_storing_request) = maybe_ongoing_process_confirm_storing_request - { - for request in process_confirm_storing_request.confirm_storing_requests { - state_store_context - .pending_confirm_storing_request_deque() - .push_back(request); - } - } - - // Check if there was an ongoing process msp respond storage request task. - // Note: This would only exist if the node was running as an MSP. - let maybe_ongoing_process_msp_respond_storage_request = state_store_context - .access_value(&OngoingProcessMspRespondStorageRequestCf) - .read(); - - // If there was an ongoing process msp respond storage request task, we need to re-queue the requests. - if let Some(process_msp_respond_storage_request) = - maybe_ongoing_process_msp_respond_storage_request - { - for request in process_msp_respond_storage_request.respond_storing_requests { - state_store_context - .pending_msp_respond_storage_request_deque() - .push_back(request); - } - } - - // Check if there was an ongoing process stop storing task. - let maybe_ongoing_process_stop_storing_for_insolvent_user_request = state_store_context - .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) - .read(); - - // If there was an ongoing process stop storing task, we need to re-queue the requests. - if let Some(process_stop_storing_for_insolvent_user_request) = - maybe_ongoing_process_stop_storing_for_insolvent_user_request - { - state_store_context - .pending_stop_storing_for_insolvent_user_request_deque() - .push_back(StopStoringForInsolventUserRequest::new( - process_stop_storing_for_insolvent_user_request.who, - )); - } - - state_store_context.commit(); - - // Catch up to proofs that this node might have missed. - for provider_id in self.provider_ids.clone() { - self.proof_submission_catch_up(&block_hash, &provider_id); - } - } - - async fn process_block_import(&mut self, block_hash: &H256, block_number: &BlockNumber) { - info!(target: LOG_TARGET, "Processing block import #{}: {}", block_number, block_hash); - - // Notify all tasks waiting for this block number (or lower). - self.notify_import_block_number(&block_number); - - // Notify all tasks waiting for this tick number (or lower). - // It is not guaranteed that the tick number will increase at every block import. - self.notify_tick_number(&block_hash); - - // Process pending requests that update the forest root. - self.check_pending_forest_root_writes(); - - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - // Get events from storage. - match get_events_at_block(&self.client, block_hash) { - Ok(block_events) => { - // Process the events. - for ev in block_events { - match ev.event.clone() { - // New storage request event coming from pallet-file-system. - RuntimeEvent::FileSystem( - pallet_file_system::Event::NewStorageRequest { - who, - file_key, - bucket_id, - location, - fingerprint, - size, - peer_ids, - }, - ) => self.emit(NewStorageRequest { - who, - file_key: FileKey::from(file_key.as_ref()), - bucket_id, - location, - fingerprint: fingerprint.as_ref().into(), - size, - user_peer_ids: peer_ids, - }), - // A Provider's challenge cycle has been initialised. - RuntimeEvent::ProofsDealer( - pallet_proofs_dealer::Event::NewChallengeCycleInitialised { - current_tick: _, - next_challenge_deadline: _, - provider: provider_id, - maybe_provider_account, - }, - ) => { - // This node only cares if the Provider account matches one of the accounts in the keystore. - if let Some(account) = maybe_provider_account { - let account: Vec = - >::as_ref(&account) - .to_vec(); - if self.keystore.has_keys(&[(account.clone(), BCSV_KEY_TYPE)]) { - // If so, add the Provider ID to the list of Providers that this node is monitoring. - info!(target: LOG_TARGET, "New Provider ID to monitor [{:?}] for account [{:?}]", provider_id, account); - self.provider_ids.insert(provider_id); - } - } - } - // New challenge seed event coming from pallet-proofs-dealer. - RuntimeEvent::ProofsDealer( - pallet_proofs_dealer::Event::NewChallengeSeed { - challenges_ticker, - seed: _, - }, - ) => { - // For each Provider ID this node monitors... - for provider_id in &self.provider_ids { - // ...check if the challenges tick is one that this provider has to submit a proof for. - if self.should_provider_submit_proof( - &block_hash, - provider_id, - &challenges_ticker, - ) { - self.proof_submission_catch_up(&block_hash, provider_id); - } else { - trace!(target: LOG_TARGET, "Challenges tick is not the next one to be submitted for Provider [{:?}]", provider_id); - } - } - } - // A provider has been marked as slashable. - RuntimeEvent::ProofsDealer( - pallet_proofs_dealer::Event::SlashableProvider { - provider, - next_challenge_deadline, - }, - ) => self.emit(SlashableProvider { - provider, - next_challenge_deadline, - }), - // The last chargeable info of a provider has been updated - RuntimeEvent::PaymentStreams( - pallet_payment_streams::Event::LastChargeableInfoUpdated { - provider_id, - last_chargeable_tick, - last_chargeable_price_index, - }, - ) => { - if self.provider_ids.contains(&provider_id) { - self.emit(LastChargeableInfoUpdated { - provider_id: provider_id, - last_chargeable_tick: last_chargeable_tick, - last_chargeable_price_index: last_chargeable_price_index, - }) - } - } - // A user has been flagged as without funds in the runtime - RuntimeEvent::PaymentStreams( - pallet_payment_streams::Event::UserWithoutFunds { who }, - ) => { - self.emit(UserWithoutFunds { who }); - } - // A file was correctly deleted from a user without funds - RuntimeEvent::FileSystem( - pallet_file_system::Event::SpStopStoringInsolventUser { - sp_id, - file_key, - owner, - location, - new_root, - }, - ) => { - if self.provider_ids.contains(&sp_id) { - self.emit(SpStopStoringInsolventUser { - sp_id, - file_key: file_key.into(), - owner, - location, - new_root, - }) - } - } - // This event should only be of any use if a node is run by as a user. - RuntimeEvent::FileSystem( - pallet_file_system::Event::AcceptedBspVolunteer { - bsp_id, - bucket_id, - location, - fingerprint, - multiaddresses, - owner, - size, - }, - ) if owner - == AccountId32::from(Self::caller_pub_key(self.keystore.clone())) => - { - // We try to convert the types coming from the runtime into our expected types. - let fingerprint: Fingerprint = fingerprint.as_bytes().into(); - // Here the Multiaddresses come as a BoundedVec of BoundedVecs of bytes, - // and we need to convert them. Returns if any of the provided multiaddresses are invalid. - let mut multiaddress_vec: Vec = Vec::new(); - for raw_multiaddr in multiaddresses.into_iter() { - let multiaddress = match std::str::from_utf8(&raw_multiaddr) { - Ok(s) => match Multiaddr::from_str(s) { - Ok(multiaddr) => multiaddr, - Err(e) => { - error!(target: LOG_TARGET, "Failed to parse Multiaddress from string in AcceptedBspVolunteer event. bsp: {:?}, file owner: {:?}, file fingerprint: {:?}\n Error: {:?}", bsp_id, owner, fingerprint, e); - return; - } - }, - Err(e) => { - error!(target: LOG_TARGET, "Failed to parse Multiaddress from bytes in AcceptedBspVolunteer event. bsp: {:?}, file owner: {:?}, file fingerprint: {:?}\n Error: {:?}", bsp_id, owner, fingerprint, e); - return; - } - }; - - multiaddress_vec.push(multiaddress); - } - - self.emit(AcceptedBspVolunteer { - bsp_id, - bucket_id, - location, - fingerprint, - multiaddresses: multiaddress_vec, - owner, - size, - }) - } - // Ignore all other events. - _ => {} - } - } - } - Err(e) => { - // TODO: Handle case where the storage cannot be decoded. - // TODO: This would happen if we're parsing a block authored with an older version of the runtime, using - // TODO: a node that has a newer version of the runtime, therefore the EventsVec type is different. - // TODO: Consider using runtime APIs for getting old data of previous blocks, and this just for current blocks. - error!(target: LOG_TARGET, "Failed to get events storage element: {:?}", e); - } - } - state_store_context - .access_value(&LastProcessedBlockNumberCf) - .write(block_number); - state_store_context.commit(); - } - - /// Handle a finality notification. - async fn handle_finality_notification( - &mut self, - notification: FinalityNotification, - ) where - Block: cumulus_primitives_core::BlockT, - { - let block_hash: H256 = notification.hash; - let block_number: BlockNumber = (*notification.header.number()).saturated_into(); - - debug!(target: LOG_TARGET, "Finality notification #{}: {}", block_number, block_hash); - - // Get events from storage. - match get_events_at_block(&self.client, &block_hash) { - Ok(block_events) => { - // Process the events. - for ev in block_events { - match ev.event.clone() { - // New storage request event coming from pallet-file-system. - RuntimeEvent::ProofsDealer( - pallet_proofs_dealer::Event::MutationsApplied { - provider, - mutations, - new_root, - }, - ) => { - // Check if the provider ID is one of the provider IDs this node is tracking. - if self.provider_ids.contains(&provider) { - self.emit(FinalisedTrieRemoveMutationsApplied { - provider_id: provider, - mutations: mutations.clone(), - new_root, - }) - } - } - // Ignore all other events. - _ => {} - } - } - } - Err(e) => { - // TODO: Handle case where the storage cannot be decoded. - // TODO: This would happen if we're parsing a block authored with an older version of the runtime, using - // TODO: a node that has a newer version of the runtime, therefore the EventsVec type is different. - // TODO: Consider using runtime APIs for getting old data of previous blocks, and this just for current blocks. - error!(target: LOG_TARGET, "Failed to get events storage element: {:?}", e); - } - } - } -} +use anyhow::anyhow; +use futures::prelude::*; +use log::{debug, trace, warn}; +use std::{ + collections::{BTreeMap, BTreeSet}, + path::PathBuf, + str::FromStr, + sync::Arc, +}; + +use sc_client_api::{ + BlockImportNotification, BlockchainEvents, FinalityNotification, HeaderBackend, +}; +use sc_network::Multiaddr; +use sc_service::RpcHandlers; +use sc_tracing::tracing::{error, info}; +use sp_api::{ApiError, ProvideRuntimeApi}; +use sp_core::H256; +use sp_keystore::{Keystore, KeystorePtr}; +use sp_runtime::{ + traits::{Header, Zero}, + AccountId32, SaturatedConversion, +}; + +use pallet_file_system_runtime_api::{ + FileSystemApi, QueryBspConfirmChunksToProveForFileError, QueryFileEarliestVolunteerTickError, + QueryMspConfirmChunksToProveForFileError, +}; +use pallet_payment_streams_runtime_api::{GetUsersWithDebtOverThresholdError, PaymentStreamsApi}; +use pallet_proofs_dealer_runtime_api::{ + GetChallengePeriodError, GetCheckpointChallengesError, GetLastTickProviderSubmittedProofError, + ProofsDealerApi, +}; +use pallet_storage_providers_runtime_api::{ + GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, + QueryMspIdOfBucketIdError, QueryStorageProviderCapacityError, StorageProvidersApi, +}; +use shc_actors_framework::actor::{Actor, ActorEventLoop}; +use shc_common::types::{BlockNumber, ParachainClient, ProviderId}; +use shc_common::{ + blockchain_utils::get_events_at_block, + types::{Fingerprint, TickNumber, BCSV_KEY_TYPE}, +}; +use shp_file_metadata::FileKey; +use storage_hub_runtime::RuntimeEvent; + +use crate::state::OngoingProcessMspRespondStorageRequestCf; +use crate::{ + commands::BlockchainServiceCommand, + events::{ + AcceptedBspVolunteer, BlockchainServiceEventBusProvider, + FinalisedTrieRemoveMutationsApplied, LastChargeableInfoUpdated, NewStorageRequest, + SlashableProvider, SpStopStoringInsolventUser, UserWithoutFunds, + }, + state::{ + BlockchainServiceStateStore, LastProcessedBlockNumberCf, + OngoingProcessConfirmStoringRequestCf, OngoingProcessStopStoringForInsolventUserRequestCf, + }, + transaction::SubmittedTransaction, + typed_store::{CFDequeAPI, ProvidesTypedDbSingleAccess}, + types::{StopStoringForInsolventUserRequest, SubmitProofRequest}, +}; + +pub(crate) const LOG_TARGET: &str = "blockchain-service"; +pub(crate) const SYNC_MODE_MIN_BLOCKS_BEHIND: BlockNumber = 5; + +/// The BlockchainService actor. +/// +/// This actor is responsible for sending extrinsics to the runtime and handling block import notifications. +/// For such purposes, it uses the [`ParachainClient`] to interact with the runtime, the [`RpcHandlers`] to send +/// extrinsics, and the [`Keystore`] to sign the extrinsics. +pub struct BlockchainService { + /// The event bus provider. + pub(crate) event_bus_provider: BlockchainServiceEventBusProvider, + /// The parachain client. Used to interact with the runtime. + pub(crate) client: Arc, + /// The keystore. Used to sign extrinsics. + pub(crate) keystore: KeystorePtr, + /// The RPC handlers. Used to send extrinsics. + pub(crate) rpc_handlers: Arc, + /// Nonce counter for the extrinsics. + pub(crate) nonce_counter: u32, + /// A registry of waiters for a block number. + pub(crate) wait_for_block_request_by_number: + BTreeMap>>, + /// A registry of waiters for a tick number. + pub(crate) wait_for_tick_request_by_number: + BTreeMap>>>, + /// A list of Provider IDs that this node has to pay attention to submit proofs for. + /// This could be a BSP or a list of buckets that an MSP has. + pub(crate) provider_ids: BTreeSet, + /// A lock to prevent multiple tasks from writing to the runtime forest root (send transactions) at the same time. + /// This is a oneshot channel instead of a regular mutex because we want to "lock" in 1 + /// thread (blockchain service) and unlock it at the end of the spawned task. The alternative + /// would be to send a [`MutexGuard`]. + pub(crate) forest_root_write_lock: Option>, + /// The last block number that was processed by the BlockchainService. + /// This is used to detect when the BlockchainService gets out of syncing mode and should therefore + /// run some initialisation tasks. + pub(crate) last_block_processed: BlockNumber, + /// A persistent state store for the BlockchainService actor. + pub(crate) persistent_state: BlockchainServiceStateStore, + /// Pending submit proof requests. Note: this is not kept in the persistent state because of + /// various edge cases when restarting the node, all originating from the "dynamic" way of + /// computing the next challenges tick. This case is handled separately. + pub(crate) pending_submit_proof_requests: BTreeSet, +} + +/// Event loop for the BlockchainService actor. +pub struct BlockchainServiceEventLoop { + receiver: sc_utils::mpsc::TracingUnboundedReceiver, + actor: BlockchainService, +} + +/// Merged event loop message for the BlockchainService actor. +enum MergedEventLoopMessage +where + Block: cumulus_primitives_core::BlockT, +{ + Command(BlockchainServiceCommand), + BlockImportNotification(BlockImportNotification), + FinalityNotification(FinalityNotification), +} + +/// Implement the ActorEventLoop trait for the BlockchainServiceEventLoop. +impl ActorEventLoop for BlockchainServiceEventLoop { + fn new( + actor: BlockchainService, + receiver: sc_utils::mpsc::TracingUnboundedReceiver, + ) -> Self { + Self { actor, receiver } + } + + async fn run(mut self) { + info!(target: LOG_TARGET, "BlockchainService starting up!"); + + // Import notification stream to be notified of new blocks. + // The behaviour of this stream is: + // 1. While the node is syncing to the tip of the chain (initial sync, i.e. it just started + // or got behind due to connectivity issues), it will only notify us of re-orgs. + // 2. Once the node is synced, it will notify us of every new block. + let block_import_notification_stream = self.actor.client.import_notification_stream(); + + // Finality notification stream to be notified of blocks being finalised. + let finality_notification_stream = self.actor.client.finality_notification_stream(); + + // Merging notification streams with command stream. + let mut merged_stream = stream::select_all(vec![ + self.receiver.map(MergedEventLoopMessage::Command).boxed(), + block_import_notification_stream + .map(MergedEventLoopMessage::BlockImportNotification) + .boxed(), + finality_notification_stream + .map(MergedEventLoopMessage::FinalityNotification) + .boxed(), + ]); + + // Process incoming messages. + while let Some(notification) = merged_stream.next().await { + match notification { + MergedEventLoopMessage::Command(command) => { + self.actor.handle_message(command).await; + } + MergedEventLoopMessage::BlockImportNotification(notification) => { + self.actor + .handle_block_import_notification(notification) + .await; + } + MergedEventLoopMessage::FinalityNotification(notification) => { + self.actor.handle_finality_notification(notification).await; + } + }; + } + } +} + +/// Implement the Actor trait for the BlockchainService actor. +impl Actor for BlockchainService { + type Message = BlockchainServiceCommand; + type EventLoop = BlockchainServiceEventLoop; + type EventBusProvider = BlockchainServiceEventBusProvider; + + fn handle_message( + &mut self, + message: Self::Message, + ) -> impl std::future::Future + Send { + async { + match message { + BlockchainServiceCommand::SendExtrinsic { + call, + tip, + callback, + } => match self.send_extrinsic(call, tip).await { + Ok(output) => { + debug!(target: LOG_TARGET, "Extrinsic sent successfully: {:?}", output); + match callback + .send(Ok(SubmittedTransaction::new(output.receiver, output.hash))) + { + Ok(_) => { + trace!(target: LOG_TARGET, "Receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + Err(e) => { + warn!(target: LOG_TARGET, "Failed to send extrinsic: {:?}", e); + + match callback.send(Err(e)) { + Ok(_) => { + trace!(target: LOG_TARGET, "RPC error sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send error message through channel: {:?}", e); + } + } + } + }, + BlockchainServiceCommand::GetExtrinsicFromBlock { + block_hash, + extrinsic_hash, + callback, + } => { + match self + .get_extrinsic_from_block(block_hash, extrinsic_hash) + .await + { + Ok(extrinsic) => { + debug!(target: LOG_TARGET, "Extrinsic retrieved successfully: {:?}", extrinsic); + match callback.send(Ok(extrinsic)) { + Ok(_) => { + trace!(target: LOG_TARGET, "Receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + Err(e) => { + warn!(target: LOG_TARGET, "Failed to retrieve extrinsic: {:?}", e); + match callback.send(Err(e)) { + Ok(_) => { + trace!(target: LOG_TARGET, "Receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + } + } + BlockchainServiceCommand::UnwatchExtrinsic { + subscription_id, + callback, + } => match self.unwatch_extrinsic(subscription_id).await { + Ok(output) => { + debug!(target: LOG_TARGET, "Extrinsic unwatched successfully: {:?}", output); + match callback.send(Ok(())) { + Ok(_) => { + trace!(target: LOG_TARGET, "Receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + Err(e) => { + warn!(target: LOG_TARGET, "Failed to unwatch extrinsic: {:?}", e); + match callback.send(Err(e)) { + Ok(_) => { + trace!(target: LOG_TARGET, "Receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + }, + BlockchainServiceCommand::WaitForBlock { + block_number, + callback, + } => { + let current_block_number = self.client.info().best_number; + + let (tx, rx) = tokio::sync::oneshot::channel(); + + if current_block_number >= block_number { + match tx.send(()) { + Ok(_) => {} + Err(_) => { + error!(target: LOG_TARGET, "Failed to notify task about waiting block number. \nThis should never happen, in this same code we have both the sender and receiver of the oneshot channel, so it should always be possible to send the message."); + } + } + } else { + self.wait_for_block_request_by_number + .entry(block_number) + .or_insert_with(Vec::new) + .push(tx); + } + + match callback.send(rx) { + Ok(_) => { + trace!(target: LOG_TARGET, "Block message receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send block message receiver: {:?}", e); + } + } + } + BlockchainServiceCommand::WaitForTick { + tick_number, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + // Current Tick should always return a value, unless there's an internal API error. + let current_tick_result = self + .client + .runtime_api() + .get_current_tick(current_block_hash); + + let (tx, rx) = tokio::sync::oneshot::channel(); + + match current_tick_result { + Ok(current_tick) => { + // If there is no API error, and the current tick is greater than or equal to the tick number + // we are waiting for, we notify the task that the tick has been reached. + if current_tick >= tick_number { + match tx.send(Ok(())) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to notify task about tick reached: {:?}. \nThis should never happen, in this same code we have both the sender and receiver of the oneshot channel, so it should always be possible to send the message.", e); + } + } + } else { + // If the current tick is less than the tick number we are waiting for, we insert it in + // the waiting queue. + self.wait_for_tick_request_by_number + .entry(tick_number) + .or_insert_with(Vec::new) + .push(tx); + } + } + Err(e) => { + // If there is an API error, we notify the task about it immediately. + match tx.send(Err(e)) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to notify API error to task querying current tick: {:?}. \nThis should never happen, in this same code we have both the sender and receiver of the oneshot channel, so it should always be possible to send the message.", e); + } + } + } + } + + match callback.send(rx) { + Ok(_) => { + trace!(target: LOG_TARGET, "Tick message receiver sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send tick message receiver: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryEarliestChangeCapacityBlock { bsp_id, callback } => { + let current_block_hash = self.client.info().best_hash; + + let earliest_block_to_change_capacity = self + .client + .runtime_api() + .query_earliest_change_capacity_block(current_block_hash, &bsp_id) + .unwrap_or_else(|_| { + error!(target: LOG_TARGET, "Failed to query earliest block to change capacity"); + Err(QueryEarliestChangeCapacityBlockError::InternalError) + }); + + match callback.send(earliest_block_to_change_capacity) { + Ok(_) => { + trace!(target: LOG_TARGET, "Earliest block to change capacity result sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send earliest block to change capacity: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryFileEarliestVolunteerTick { + bsp_id, + file_key, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let earliest_block_to_volunteer = self + .client + .runtime_api() + .query_earliest_file_volunteer_tick( + current_block_hash, + bsp_id.into(), + file_key, + ) + .unwrap_or_else(|_| { + Err(QueryFileEarliestVolunteerTickError::InternalError) + }); + + match callback.send(earliest_block_to_volunteer) { + Ok(_) => { + trace!(target: LOG_TARGET, "Earliest block to volunteer result sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send earliest block to volunteer: {:?}", e); + } + } + } + BlockchainServiceCommand::GetNodePublicKey { callback } => { + let pub_key = Self::caller_pub_key(self.keystore.clone()); + match callback.send(pub_key) { + Ok(_) => { + trace!(target: LOG_TARGET, "Node's public key sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send node's public key: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryBspConfirmChunksToProveForFile { + bsp_id, + file_key, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let chunks_to_prove = self + .client + .runtime_api() + .query_bsp_confirm_chunks_to_prove_for_file( + current_block_hash, + bsp_id.into(), + file_key, + ) + .unwrap_or_else(|_| { + Err(QueryBspConfirmChunksToProveForFileError::InternalError) + }); + + match callback.send(chunks_to_prove) { + Ok(_) => { + trace!(target: LOG_TARGET, "Chunks to prove file sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send chunks to prove file: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryMspConfirmChunksToProveForFile { + msp_id, + file_key, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let chunks_to_prove = self + .client + .runtime_api() + .query_msp_confirm_chunks_to_prove_for_file( + current_block_hash, + msp_id.into(), + file_key, + ) + .unwrap_or_else(|_| { + Err(QueryMspConfirmChunksToProveForFileError::InternalError) + }); + + match callback.send(chunks_to_prove) { + Ok(_) => { + trace!(target: LOG_TARGET, "Chunks to prove file sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send chunks to prove file: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryChallengesFromSeed { + seed, + provider_id, + count, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let challenges = self.client.runtime_api().get_challenges_from_seed( + current_block_hash, + &seed, + &provider_id, + count, + ); + + match callback.send(challenges) { + Ok(_) => { + trace!(target: LOG_TARGET, "Challenges sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send challenges: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryForestChallengesFromSeed { + seed, + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let challenges = self.client.runtime_api().get_forest_challenges_from_seed( + current_block_hash, + &seed, + &provider_id, + ); + + match callback.send(challenges) { + Ok(_) => { + trace!(target: LOG_TARGET, "Challenges sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send challenges: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryLastTickProviderSubmittedProof { + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let last_tick = self + .client + .runtime_api() + .get_last_tick_provider_submitted_proof(current_block_hash, &provider_id) + .unwrap_or_else(|_| { + Err(GetLastTickProviderSubmittedProofError::InternalApiError) + }); + + match callback.send(last_tick) { + Ok(_) => { + trace!(target: LOG_TARGET, "Last tick sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send last tick provider submitted proof: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryChallengePeriod { + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let challenge_period = self + .client + .runtime_api() + .get_challenge_period(current_block_hash, &provider_id) + .unwrap_or_else(|_| { + error!(target: LOG_TARGET, "Failed to query challenge period for provider [{:?}]", provider_id); + Err(GetChallengePeriodError::InternalApiError) + }); + + match callback.send(challenge_period) { + Ok(_) => { + trace!(target: LOG_TARGET, "Challenge period sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send challenge period: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryNextChallengeTickForProvider { + provider_id, + callback, + } => { + let next_challenge_tick = + self.get_next_challenge_tick_for_provider(&provider_id); + + match callback.send(next_challenge_tick) { + Ok(_) => { + trace!(target: LOG_TARGET, "Next challenge tick sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send next challenge tick: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryLastCheckpointChallengeTick { callback } => { + let current_block_hash = self.client.info().best_hash; + + let last_checkpoint_tick = self + .client + .runtime_api() + .get_last_checkpoint_challenge_tick(current_block_hash); + + match callback.send(last_checkpoint_tick) { + Ok(_) => { + trace!(target: LOG_TARGET, "Last checkpoint tick sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send last checkpoint challenge tick: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryLastCheckpointChallenges { tick, callback } => { + let current_block_hash = self.client.info().best_hash; + + let checkpoint_challenges = self + .client + .runtime_api() + .get_checkpoint_challenges(current_block_hash, tick) + .unwrap_or_else(|_| Err(GetCheckpointChallengesError::InternalApiError)); + + match callback.send(checkpoint_challenges) { + Ok(_) => { + trace!(target: LOG_TARGET, "Checkpoint challenges sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send checkpoint challenges: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryProviderForestRoot { + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let bsp_info = self + .client + .runtime_api() + .get_bsp_info(current_block_hash, &provider_id) + .unwrap_or_else(|_| Err(GetBspInfoError::InternalApiError)); + + let root = bsp_info.map(|bsp_info| bsp_info.root); + + match callback.send(root) { + Ok(_) => { + trace!(target: LOG_TARGET, "BSP root sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send BSP root: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryStorageProviderCapacity { + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let capacity = self + .client + .runtime_api() + .query_storage_provider_capacity(current_block_hash, &provider_id) + .unwrap_or_else(|_| Err(QueryStorageProviderCapacityError::InternalError)); + + match callback.send(capacity) { + Ok(_) => { + trace!(target: LOG_TARGET, "Storage provider capacity sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send storage provider capacity: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryAvailableStorageCapacity { + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let capacity = self + .client + .runtime_api() + .query_available_storage_capacity(current_block_hash, &provider_id) + .unwrap_or_else(|_| Err(QueryAvailableStorageCapacityError::InternalError)); + + match callback.send(capacity) { + Ok(_) => { + trace!(target: LOG_TARGET, "Available storage capacity sent successfully"); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to send available storage capacity: {:?}", e); + } + } + } + BlockchainServiceCommand::QueueConfirmBspRequest { request, callback } => { + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .pending_confirm_storing_request_deque() + .push_back(request); + state_store_context.commit(); + // We check right away if we can process the request so we don't waste time. + self.check_pending_forest_root_writes(); + match callback.send(Ok(())) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + BlockchainServiceCommand::QueueMspRespondStorageRequest { request, callback } => { + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .pending_msp_respond_storage_request_deque() + .push_back(request); + state_store_context.commit(); + // We check right away if we can process the request so we don't waste time. + self.check_pending_forest_root_writes(); + match callback.send(Ok(())) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + BlockchainServiceCommand::QueueSubmitProofRequest { request, callback } => { + // The strategy used here is to replace the request in the set with the new request. + // This is because new insertions are presumed to be done with more information of the current state of the chain, + // so we want to make sure that the request is the most up-to-date one. + if let Some(replaced_request) = + self.pending_submit_proof_requests.replace(request.clone()) + { + trace!(target: LOG_TARGET, "Replacing pending submit proof request {:?} with {:?}", replaced_request, request); + } + + // We check right away if we can process the request so we don't waste time. + self.check_pending_forest_root_writes(); + match callback.send(Ok(())) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + BlockchainServiceCommand::QueueStopStoringForInsolventUserRequest { + request, + callback, + } => { + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .pending_stop_storing_for_insolvent_user_request_deque() + .push_back(request); + state_store_context.commit(); + // We check right away if we can process the request so we don't waste time. + self.check_pending_forest_root_writes(); + match callback.send(Ok(())) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send receiver: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryStorageProviderId { + maybe_node_pub_key, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let node_pub_key = maybe_node_pub_key + .unwrap_or_else(|| Self::caller_pub_key(self.keystore.clone())); + + let provider_id = self + .client + .runtime_api() + .get_storage_provider_id(current_block_hash, &node_pub_key.into()) + .map_err(|_| anyhow!("Internal API error")); + + match callback.send(provider_id) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send storage provider ID: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryUsersWithDebt { + provider_id, + min_debt, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let users_with_debt = self + .client + .runtime_api() + .get_users_with_debt_over_threshold( + current_block_hash, + &provider_id, + min_debt, + ) + .unwrap_or_else(|e| { + error!(target: LOG_TARGET, "{}", e); + Err(GetUsersWithDebtOverThresholdError::InternalApiError) + }); + + match callback.send(users_with_debt) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send back users with debt: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryWorstCaseScenarioSlashableAmount { + provider_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let worst_case_scenario_slashable_amount = self + .client + .runtime_api() + .get_worst_case_scenario_slashable_amount(current_block_hash, provider_id) + .map_err(|_| anyhow!("Internal API error")); + + match callback.send(worst_case_scenario_slashable_amount) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send back slashable amount: {:?}", e); + } + } + } + BlockchainServiceCommand::QuerySlashAmountPerMaxFileSize { callback } => { + // Get the current block hash. + let current_block_hash = self.client.info().best_hash; + + let slash_amount_per_max_file_size = self + .client + .runtime_api() + .get_slash_amount_per_max_file_size(current_block_hash) + .map_err(|_| anyhow!("Internal API error")); + + match callback.send(slash_amount_per_max_file_size) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send back `SlashAmountPerMaxFileSize`: {:?}", e); + } + } + } + BlockchainServiceCommand::QueryMspIdOfBucketId { + bucket_id, + callback, + } => { + let current_block_hash = self.client.info().best_hash; + + let msp_id = self + .client + .runtime_api() + .query_msp_id_of_bucket_id(current_block_hash, &bucket_id) + .unwrap_or_else(|e| { + error!(target: LOG_TARGET, "{}", e); + Err(QueryMspIdOfBucketIdError::BucketNotFound) + }); + + match callback.send(msp_id) { + Ok(_) => {} + Err(e) => { + error!(target: LOG_TARGET, "Failed to send back MSP ID: {:?}", e); + } + } + } + } + } + } + + fn get_event_bus_provider(&self) -> &Self::EventBusProvider { + &self.event_bus_provider + } +} + +impl BlockchainService { + /// Create a new [`BlockchainService`]. + pub fn new( + client: Arc, + rpc_handlers: Arc, + keystore: KeystorePtr, + rocksdb_root_path: impl Into, + ) -> Self { + Self { + client, + rpc_handlers, + keystore, + event_bus_provider: BlockchainServiceEventBusProvider::new(), + nonce_counter: 0, + wait_for_block_request_by_number: BTreeMap::new(), + wait_for_tick_request_by_number: BTreeMap::new(), + provider_ids: BTreeSet::new(), + forest_root_write_lock: None, + last_block_processed: Zero::zero(), + persistent_state: BlockchainServiceStateStore::new(rocksdb_root_path.into()), + pending_submit_proof_requests: BTreeSet::new(), + } + } + + async fn handle_block_import_notification( + &mut self, + notification: BlockImportNotification, + ) where + Block: cumulus_primitives_core::BlockT, + { + let block_hash: H256 = notification.hash; + let block_number: BlockNumber = (*notification.header.number()).saturated_into(); + + // If this is the first block import notification, we might need to catch up. + info!(target: LOG_TARGET, "Block import notification (#{}): {}", block_number, block_hash); + + // Get provider IDs linked to keys in this node's keystore and update the nonce. + self.pre_block_processing_checks(&block_hash); + + // Check if we just came out of syncing mode. + if block_number - self.last_block_processed < SYNC_MODE_MIN_BLOCKS_BEHIND { + self.handle_initial_sync(notification).await; + } + + self.process_block_import(&block_hash, &block_number).await; + } + + fn pre_block_processing_checks(&mut self, block_hash: &H256) { + // We query the [`BlockchainService`] account nonce at this height + // and update our internal counter if it's smaller than the result. + self.check_nonce(&block_hash); + + // Get provider IDs linked to keys in this node's keystore. + self.get_provider_ids(&block_hash); + } + + /// Handle the first time this node syncs with the chain. + async fn handle_initial_sync(&mut self, notification: BlockImportNotification) + where + Block: cumulus_primitives_core::BlockT, + { + let block_hash: H256 = notification.hash; + let block_number: BlockNumber = (*notification.header.number()).saturated_into(); + + // If this is the first block import notification, we might need to catch up. + info!(target: LOG_TARGET, "First block import notification (synced to #{}): {}", block_number, block_hash); + + // Check if there was an ongoing process confirm storing task. + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + + // Check if there was an ongoing process confirm storing task. + // Note: This would only exist if the node was running as a BSP. + let maybe_ongoing_process_confirm_storing_request = state_store_context + .access_value(&OngoingProcessConfirmStoringRequestCf) + .read(); + + // If there was an ongoing process confirm storing task, we need to re-queue the requests. + if let Some(process_confirm_storing_request) = maybe_ongoing_process_confirm_storing_request + { + for request in process_confirm_storing_request.confirm_storing_requests { + state_store_context + .pending_confirm_storing_request_deque() + .push_back(request); + } + } + + // Check if there was an ongoing process msp respond storage request task. + // Note: This would only exist if the node was running as an MSP. + let maybe_ongoing_process_msp_respond_storage_request = state_store_context + .access_value(&OngoingProcessMspRespondStorageRequestCf) + .read(); + + // If there was an ongoing process msp respond storage request task, we need to re-queue the requests. + if let Some(process_msp_respond_storage_request) = + maybe_ongoing_process_msp_respond_storage_request + { + for request in process_msp_respond_storage_request.respond_storing_requests { + state_store_context + .pending_msp_respond_storage_request_deque() + .push_back(request); + } + } + + // Check if there was an ongoing process stop storing task. + let maybe_ongoing_process_stop_storing_for_insolvent_user_request = state_store_context + .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) + .read(); + + // If there was an ongoing process stop storing task, we need to re-queue the requests. + if let Some(process_stop_storing_for_insolvent_user_request) = + maybe_ongoing_process_stop_storing_for_insolvent_user_request + { + state_store_context + .pending_stop_storing_for_insolvent_user_request_deque() + .push_back(StopStoringForInsolventUserRequest::new( + process_stop_storing_for_insolvent_user_request.who, + )); + } + + state_store_context.commit(); + + // Catch up to proofs that this node might have missed. + for provider_id in self.provider_ids.clone() { + self.proof_submission_catch_up(&block_hash, &provider_id); + } + } + + async fn process_block_import(&mut self, block_hash: &H256, block_number: &BlockNumber) { + info!(target: LOG_TARGET, "Processing block import #{}: {}", block_number, block_hash); + + // Notify all tasks waiting for this block number (or lower). + self.notify_import_block_number(&block_number); + + // Notify all tasks waiting for this tick number (or lower). + // It is not guaranteed that the tick number will increase at every block import. + self.notify_tick_number(&block_hash); + + // Process pending requests that update the forest root. + self.check_pending_forest_root_writes(); + + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + // Get events from storage. + match get_events_at_block(&self.client, block_hash) { + Ok(block_events) => { + // Process the events. + for ev in block_events { + match ev.event.clone() { + // New storage request event coming from pallet-file-system. + RuntimeEvent::FileSystem( + pallet_file_system::Event::NewStorageRequest { + who, + file_key, + bucket_id, + location, + fingerprint, + size, + peer_ids, + }, + ) => self.emit(NewStorageRequest { + who, + file_key: FileKey::from(file_key.as_ref()), + bucket_id, + location, + fingerprint: fingerprint.as_ref().into(), + size, + user_peer_ids: peer_ids, + }), + // A Provider's challenge cycle has been initialised. + RuntimeEvent::ProofsDealer( + pallet_proofs_dealer::Event::NewChallengeCycleInitialised { + current_tick: _, + next_challenge_deadline: _, + provider: provider_id, + maybe_provider_account, + }, + ) => { + // This node only cares if the Provider account matches one of the accounts in the keystore. + if let Some(account) = maybe_provider_account { + let account: Vec = + >::as_ref(&account) + .to_vec(); + if self.keystore.has_keys(&[(account.clone(), BCSV_KEY_TYPE)]) { + // If so, add the Provider ID to the list of Providers that this node is monitoring. + info!(target: LOG_TARGET, "New Provider ID to monitor [{:?}] for account [{:?}]", provider_id, account); + self.provider_ids.insert(provider_id); + } + } + } + // New challenge seed event coming from pallet-proofs-dealer. + RuntimeEvent::ProofsDealer( + pallet_proofs_dealer::Event::NewChallengeSeed { + challenges_ticker, + seed: _, + }, + ) => { + // For each Provider ID this node monitors... + for provider_id in &self.provider_ids { + // ...check if the challenges tick is one that this provider has to submit a proof for. + if self.should_provider_submit_proof( + &block_hash, + provider_id, + &challenges_ticker, + ) { + self.proof_submission_catch_up(&block_hash, provider_id); + } else { + trace!(target: LOG_TARGET, "Challenges tick is not the next one to be submitted for Provider [{:?}]", provider_id); + } + } + } + // A provider has been marked as slashable. + RuntimeEvent::ProofsDealer( + pallet_proofs_dealer::Event::SlashableProvider { + provider, + next_challenge_deadline, + }, + ) => self.emit(SlashableProvider { + provider, + next_challenge_deadline, + }), + // The last chargeable info of a provider has been updated + RuntimeEvent::PaymentStreams( + pallet_payment_streams::Event::LastChargeableInfoUpdated { + provider_id, + last_chargeable_tick, + last_chargeable_price_index, + }, + ) => { + if self.provider_ids.contains(&provider_id) { + self.emit(LastChargeableInfoUpdated { + provider_id: provider_id, + last_chargeable_tick: last_chargeable_tick, + last_chargeable_price_index: last_chargeable_price_index, + }) + } + } + // A user has been flagged as without funds in the runtime + RuntimeEvent::PaymentStreams( + pallet_payment_streams::Event::UserWithoutFunds { who }, + ) => { + self.emit(UserWithoutFunds { who }); + } + // A file was correctly deleted from a user without funds + RuntimeEvent::FileSystem( + pallet_file_system::Event::SpStopStoringInsolventUser { + sp_id, + file_key, + owner, + location, + new_root, + }, + ) => { + if self.provider_ids.contains(&sp_id) { + self.emit(SpStopStoringInsolventUser { + sp_id, + file_key: file_key.into(), + owner, + location, + new_root, + }) + } + } + // This event should only be of any use if a node is run by as a user. + RuntimeEvent::FileSystem( + pallet_file_system::Event::AcceptedBspVolunteer { + bsp_id, + bucket_id, + location, + fingerprint, + multiaddresses, + owner, + size, + }, + ) if owner + == AccountId32::from(Self::caller_pub_key(self.keystore.clone())) => + { + // We try to convert the types coming from the runtime into our expected types. + let fingerprint: Fingerprint = fingerprint.as_bytes().into(); + // Here the Multiaddresses come as a BoundedVec of BoundedVecs of bytes, + // and we need to convert them. Returns if any of the provided multiaddresses are invalid. + let mut multiaddress_vec: Vec = Vec::new(); + for raw_multiaddr in multiaddresses.into_iter() { + let multiaddress = match std::str::from_utf8(&raw_multiaddr) { + Ok(s) => match Multiaddr::from_str(s) { + Ok(multiaddr) => multiaddr, + Err(e) => { + error!(target: LOG_TARGET, "Failed to parse Multiaddress from string in AcceptedBspVolunteer event. bsp: {:?}, file owner: {:?}, file fingerprint: {:?}\n Error: {:?}", bsp_id, owner, fingerprint, e); + return; + } + }, + Err(e) => { + error!(target: LOG_TARGET, "Failed to parse Multiaddress from bytes in AcceptedBspVolunteer event. bsp: {:?}, file owner: {:?}, file fingerprint: {:?}\n Error: {:?}", bsp_id, owner, fingerprint, e); + return; + } + }; + + multiaddress_vec.push(multiaddress); + } + + self.emit(AcceptedBspVolunteer { + bsp_id, + bucket_id, + location, + fingerprint, + multiaddresses: multiaddress_vec, + owner, + size, + }) + } + // Ignore all other events. + _ => {} + } + } + } + Err(e) => { + // TODO: Handle case where the storage cannot be decoded. + // TODO: This would happen if we're parsing a block authored with an older version of the runtime, using + // TODO: a node that has a newer version of the runtime, therefore the EventsVec type is different. + // TODO: Consider using runtime APIs for getting old data of previous blocks, and this just for current blocks. + error!(target: LOG_TARGET, "Failed to get events storage element: {:?}", e); + } + } + state_store_context + .access_value(&LastProcessedBlockNumberCf) + .write(block_number); + state_store_context.commit(); + } + + /// Handle a finality notification. + async fn handle_finality_notification( + &mut self, + notification: FinalityNotification, + ) where + Block: cumulus_primitives_core::BlockT, + { + let block_hash: H256 = notification.hash; + let block_number: BlockNumber = (*notification.header.number()).saturated_into(); + + debug!(target: LOG_TARGET, "Finality notification #{}: {}", block_number, block_hash); + + // Get events from storage. + match get_events_at_block(&self.client, &block_hash) { + Ok(block_events) => { + // Process the events. + for ev in block_events { + match ev.event.clone() { + // New storage request event coming from pallet-file-system. + RuntimeEvent::ProofsDealer( + pallet_proofs_dealer::Event::MutationsApplied { + provider, + mutations, + new_root, + }, + ) => { + // Check if the provider ID is one of the provider IDs this node is tracking. + if self.provider_ids.contains(&provider) { + self.emit(FinalisedTrieRemoveMutationsApplied { + provider_id: provider, + mutations: mutations.clone(), + new_root, + }) + } + } + // Ignore all other events. + _ => {} + } + } + } + Err(e) => { + // TODO: Handle case where the storage cannot be decoded. + // TODO: This would happen if we're parsing a block authored with an older version of the runtime, using + // TODO: a node that has a newer version of the runtime, therefore the EventsVec type is different. + // TODO: Consider using runtime APIs for getting old data of previous blocks, and this just for current blocks. + error!(target: LOG_TARGET, "Failed to get events storage element: {:?}", e); + } + } + } +} diff --git a/client/blockchain-service/src/state.rs b/client/blockchain-service/src/state.rs index 711037202..426f172cf 100644 --- a/client/blockchain-service/src/state.rs +++ b/client/blockchain-service/src/state.rs @@ -1,306 +1,306 @@ -use std::path::PathBuf; - -use log::info; -use rocksdb::{ColumnFamilyDescriptor, Options, DB}; -use shc_common::types::BlockNumber; - -use crate::events::ProcessMspRespondStoringRequestData; -use crate::{ - events::{ProcessConfirmStoringRequestData, ProcessStopStoringForInsolventUserRequestData}, - typed_store::{ - BufferedWriteSupport, CFDequeAPI, ProvidesDbContext, ProvidesTypedDbAccess, - ProvidesTypedDbSingleAccess, ScaleEncodedCf, SingleScaleEncodedValueCf, TypedCf, - TypedDbContext, TypedRocksDB, - }, - types::{ - StopStoringForInsolventUserRequest, {ConfirmStoringRequest, RespondStorageRequest}, - }, -}; - -/// Last processed block number. -pub struct LastProcessedBlockNumberCf; -impl SingleScaleEncodedValueCf for LastProcessedBlockNumberCf { - type Value = BlockNumber; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = "last_processed_block_number"; -} - -/// Current ongoing task which requires a forest write lock. -pub struct OngoingProcessConfirmStoringRequestCf; -impl SingleScaleEncodedValueCf for OngoingProcessConfirmStoringRequestCf { - type Value = ProcessConfirmStoringRequestData; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = "ongoing_process_confirm_storing_request"; -} - -/// Current ongoing task which requires a forest write lock. -pub struct OngoingProcessStopStoringForInsolventUserRequestCf; -impl SingleScaleEncodedValueCf for OngoingProcessStopStoringForInsolventUserRequestCf { - type Value = ProcessStopStoringForInsolventUserRequestData; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "ongoing_process_stop_storing_for_insolvent_user_request"; -} - -/// Pending confirm storing requests. -#[derive(Default)] -pub struct PendingConfirmStoringRequestCf; -impl ScaleEncodedCf for PendingConfirmStoringRequestCf { - type Key = u64; - type Value = ConfirmStoringRequest; - - const SCALE_ENCODED_NAME: &'static str = "pending_confirm_storing_request"; -} - -/// Pending stop storing requests. -#[derive(Default)] -pub struct PendingStopStoringForInsolventUserRequestCf; -impl ScaleEncodedCf for PendingStopStoringForInsolventUserRequestCf { - type Key = u64; - type Value = StopStoringForInsolventUserRequest; - - const SCALE_ENCODED_NAME: &'static str = "pending_stop_storing_for_insolvent_user_request"; -} - -/// Pending submit proof requests left side (inclusive) index for the [`PendingConfirmStoringRequestCf`] CF. -#[derive(Default)] -pub struct PendingConfirmStoringRequestLeftIndexCf; -impl SingleScaleEncodedValueCf for PendingConfirmStoringRequestLeftIndexCf { - type Value = u64; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "pending_confirm_storing_request_left_index"; -} - -/// Pending submit proof requests right side (exclusive) index for the [`PendingConfirmStoringRequestCf`] CF. -#[derive(Default)] -pub struct PendingConfirmStoringRequestRightIndexCf; -impl SingleScaleEncodedValueCf for PendingConfirmStoringRequestRightIndexCf { - type Value = u64; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "pending_confirm_storing_request_right_index"; -} - -pub struct OngoingProcessMspRespondStorageRequestCf; -impl SingleScaleEncodedValueCf for OngoingProcessMspRespondStorageRequestCf { - type Value = ProcessMspRespondStoringRequestData; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "ongoing_process_msp_respond_storage_request"; -} - -/// Pending respond storage requests. -#[derive(Default)] -pub struct PendingMspRespondStorageRequestCf; -impl ScaleEncodedCf for PendingMspRespondStorageRequestCf { - type Key = u64; - type Value = RespondStorageRequest; - - const SCALE_ENCODED_NAME: &'static str = "pending_msp_respond_storage_request"; -} - -/// Pending respond storage requests left side (inclusive) index for the [`PendingMspRespondStorageRequestCf`] CF. -#[derive(Default)] -pub struct PendingMspRespondStorageRequestLeftIndexCf; -impl SingleScaleEncodedValueCf for PendingMspRespondStorageRequestLeftIndexCf { - type Value = u64; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "pending_msp_respond_storage_request_left_index"; -} - -/// Pending respond storage requests right side (exclusive) index for the [`PendingMspRespondStorageRequestCf`] CF. -#[derive(Default)] -pub struct PendingMspRespondStorageRequestRightIndexCf; -impl SingleScaleEncodedValueCf for PendingMspRespondStorageRequestRightIndexCf { - type Value = u64; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "pending_msp_respond_storage_request_right_index"; -} - -/// Pending submit proof requests left side (inclusive) index for the [`PendingStopStoringForInsolventUserRequestCf`] CF. -#[derive(Default)] -pub struct PendingStopStoringForInsolventUserRequestLeftIndexCf; -impl SingleScaleEncodedValueCf for PendingStopStoringForInsolventUserRequestLeftIndexCf { - type Value = u64; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "pending_stop_storing_for_insolvent_user_request_left_index"; -} - -/// Pending submit proof requests right side (exclusive) index for the [`PendingStopStoringForInsolventUserRequestCf`] CF. -#[derive(Default)] -pub struct PendingStopStoringForInsolventUserRequestRightIndexCf; -impl SingleScaleEncodedValueCf for PendingStopStoringForInsolventUserRequestRightIndexCf { - type Value = u64; - - const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = - "pending_stop_storing_for_insolvent_user_request_right_index"; -} - -const ALL_COLUMN_FAMILIES: [&str; 13] = [ - LastProcessedBlockNumberCf::NAME, - OngoingProcessConfirmStoringRequestCf::NAME, - PendingConfirmStoringRequestLeftIndexCf::NAME, - PendingConfirmStoringRequestRightIndexCf::NAME, - PendingConfirmStoringRequestCf::NAME, - OngoingProcessMspRespondStorageRequestCf::NAME, - PendingMspRespondStorageRequestLeftIndexCf::NAME, - PendingMspRespondStorageRequestRightIndexCf::NAME, - PendingMspRespondStorageRequestCf::NAME, - OngoingProcessStopStoringForInsolventUserRequestCf::NAME, - PendingStopStoringForInsolventUserRequestLeftIndexCf::NAME, - PendingStopStoringForInsolventUserRequestRightIndexCf::NAME, - PendingStopStoringForInsolventUserRequestCf::NAME, -]; - -/// A persistent blockchain service state store. -pub struct BlockchainServiceStateStore { - /// The RocksDB database. - rocks: TypedRocksDB, -} - -impl BlockchainServiceStateStore { - pub fn new(root_path: PathBuf) -> Self { - let mut path = root_path; - path.push("storagehub/blockchain_service/"); - - let db_path_str = path.to_str().expect("Failed to convert path to string"); - info!("Blockchain service state store path: {}", db_path_str); - std::fs::create_dir_all(&db_path_str).expect("Failed to create directory"); - - let mut db_opts = Options::default(); - db_opts.create_if_missing(true); - db_opts.create_missing_column_families(true); - - let column_families: Vec = ALL_COLUMN_FAMILIES - .iter() - .map(|cf| ColumnFamilyDescriptor::new(cf.to_string(), Options::default())) - .collect(); - - let db = DB::open_cf_descriptors(&db_opts, db_path_str, column_families).unwrap(); - - BlockchainServiceStateStore { - rocks: TypedRocksDB { db }, - } - } - - /// Starts a read/buffered-write interaction with the DB through per-CF type-safe APIs. - pub fn open_rw_context_with_overlay(&self) -> BlockchainServiceStateStoreRwContext<'_> { - BlockchainServiceStateStoreRwContext::new(TypedDbContext::new( - &self.rocks, - BufferedWriteSupport::new(&self.rocks), - )) - } -} - -pub struct BlockchainServiceStateStoreRwContext<'a> { - /// The RocksDB database. - db_context: TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, -} - -impl<'a> BlockchainServiceStateStoreRwContext<'a> { - pub fn new( - db_context: TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, - ) -> Self { - BlockchainServiceStateStoreRwContext { db_context } - } - - pub fn pending_confirm_storing_request_deque( - &'a self, - ) -> PendingConfirmStoringRequestDequeAPI<'a> { - PendingConfirmStoringRequestDequeAPI { - db_context: &self.db_context, - } - } - - pub fn pending_msp_respond_storage_request_deque( - &'a self, - ) -> PendingMspRespondStorageRequestDequeAPI<'a> { - PendingMspRespondStorageRequestDequeAPI { - db_context: &self.db_context, - } - } - - pub fn pending_stop_storing_for_insolvent_user_request_deque( - &'a self, - ) -> PendingStopStoringForInsolventUserRequestDequeAPI<'a> { - PendingStopStoringForInsolventUserRequestDequeAPI { - db_context: &self.db_context, - } - } - - /// Flushes the buffered writes to the DB. - pub fn commit(self) { - self.db_context.flush(); - } -} - -impl<'a> ProvidesDbContext for BlockchainServiceStateStoreRwContext<'a> { - fn db_context(&self) -> &TypedDbContext> { - &self.db_context - } -} - -impl<'a> ProvidesTypedDbSingleAccess for BlockchainServiceStateStoreRwContext<'a> {} - -impl<'a> ProvidesTypedDbAccess for BlockchainServiceStateStoreRwContext<'a> {} - -pub struct PendingConfirmStoringRequestDequeAPI<'a> { - db_context: &'a TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, -} - -impl<'a> ProvidesDbContext for PendingConfirmStoringRequestDequeAPI<'a> { - fn db_context(&self) -> &TypedDbContext> { - &self.db_context - } -} - -impl<'a> ProvidesTypedDbSingleAccess for PendingConfirmStoringRequestDequeAPI<'a> {} - -impl<'a> CFDequeAPI for PendingConfirmStoringRequestDequeAPI<'a> { - type Value = ConfirmStoringRequest; - type LeftIndexCF = PendingConfirmStoringRequestLeftIndexCf; - type RightIndexCF = PendingConfirmStoringRequestRightIndexCf; - type DataCF = PendingConfirmStoringRequestCf; -} - -pub struct PendingMspRespondStorageRequestDequeAPI<'a> { - db_context: &'a TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, -} - -impl<'a> ProvidesDbContext for PendingMspRespondStorageRequestDequeAPI<'a> { - fn db_context(&self) -> &TypedDbContext> { - &self.db_context - } -} - -impl<'a> ProvidesTypedDbSingleAccess for PendingMspRespondStorageRequestDequeAPI<'a> {} - -impl<'a> CFDequeAPI for PendingMspRespondStorageRequestDequeAPI<'a> { - type Value = RespondStorageRequest; - type LeftIndexCF = PendingMspRespondStorageRequestLeftIndexCf; - type RightIndexCF = PendingMspRespondStorageRequestRightIndexCf; - type DataCF = PendingMspRespondStorageRequestCf; -} - -pub struct PendingStopStoringForInsolventUserRequestDequeAPI<'a> { - db_context: &'a TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, -} - -impl<'a> ProvidesDbContext for PendingStopStoringForInsolventUserRequestDequeAPI<'a> { - fn db_context(&self) -> &TypedDbContext> { - &self.db_context - } -} - -impl<'a> ProvidesTypedDbSingleAccess for PendingStopStoringForInsolventUserRequestDequeAPI<'a> {} - -impl<'a> CFDequeAPI for PendingStopStoringForInsolventUserRequestDequeAPI<'a> { - type Value = StopStoringForInsolventUserRequest; - type LeftIndexCF = PendingStopStoringForInsolventUserRequestLeftIndexCf; - type RightIndexCF = PendingStopStoringForInsolventUserRequestRightIndexCf; - type DataCF = PendingStopStoringForInsolventUserRequestCf; -} +use std::path::PathBuf; + +use log::info; +use rocksdb::{ColumnFamilyDescriptor, Options, DB}; +use shc_common::types::BlockNumber; + +use crate::events::ProcessMspRespondStoringRequestData; +use crate::{ + events::{ProcessConfirmStoringRequestData, ProcessStopStoringForInsolventUserRequestData}, + typed_store::{ + BufferedWriteSupport, CFDequeAPI, ProvidesDbContext, ProvidesTypedDbAccess, + ProvidesTypedDbSingleAccess, ScaleEncodedCf, SingleScaleEncodedValueCf, TypedCf, + TypedDbContext, TypedRocksDB, + }, + types::{ + StopStoringForInsolventUserRequest, {ConfirmStoringRequest, RespondStorageRequest}, + }, +}; + +/// Last processed block number. +pub struct LastProcessedBlockNumberCf; +impl SingleScaleEncodedValueCf for LastProcessedBlockNumberCf { + type Value = BlockNumber; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = "last_processed_block_number"; +} + +/// Current ongoing task which requires a forest write lock. +pub struct OngoingProcessConfirmStoringRequestCf; +impl SingleScaleEncodedValueCf for OngoingProcessConfirmStoringRequestCf { + type Value = ProcessConfirmStoringRequestData; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = "ongoing_process_confirm_storing_request"; +} + +/// Current ongoing task which requires a forest write lock. +pub struct OngoingProcessStopStoringForInsolventUserRequestCf; +impl SingleScaleEncodedValueCf for OngoingProcessStopStoringForInsolventUserRequestCf { + type Value = ProcessStopStoringForInsolventUserRequestData; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "ongoing_process_stop_storing_for_insolvent_user_request"; +} + +/// Pending confirm storing requests. +#[derive(Default)] +pub struct PendingConfirmStoringRequestCf; +impl ScaleEncodedCf for PendingConfirmStoringRequestCf { + type Key = u64; + type Value = ConfirmStoringRequest; + + const SCALE_ENCODED_NAME: &'static str = "pending_confirm_storing_request"; +} + +/// Pending stop storing requests. +#[derive(Default)] +pub struct PendingStopStoringForInsolventUserRequestCf; +impl ScaleEncodedCf for PendingStopStoringForInsolventUserRequestCf { + type Key = u64; + type Value = StopStoringForInsolventUserRequest; + + const SCALE_ENCODED_NAME: &'static str = "pending_stop_storing_for_insolvent_user_request"; +} + +/// Pending submit proof requests left side (inclusive) index for the [`PendingConfirmStoringRequestCf`] CF. +#[derive(Default)] +pub struct PendingConfirmStoringRequestLeftIndexCf; +impl SingleScaleEncodedValueCf for PendingConfirmStoringRequestLeftIndexCf { + type Value = u64; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "pending_confirm_storing_request_left_index"; +} + +/// Pending submit proof requests right side (exclusive) index for the [`PendingConfirmStoringRequestCf`] CF. +#[derive(Default)] +pub struct PendingConfirmStoringRequestRightIndexCf; +impl SingleScaleEncodedValueCf for PendingConfirmStoringRequestRightIndexCf { + type Value = u64; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "pending_confirm_storing_request_right_index"; +} + +pub struct OngoingProcessMspRespondStorageRequestCf; +impl SingleScaleEncodedValueCf for OngoingProcessMspRespondStorageRequestCf { + type Value = ProcessMspRespondStoringRequestData; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "ongoing_process_msp_respond_storage_request"; +} + +/// Pending respond storage requests. +#[derive(Default)] +pub struct PendingMspRespondStorageRequestCf; +impl ScaleEncodedCf for PendingMspRespondStorageRequestCf { + type Key = u64; + type Value = RespondStorageRequest; + + const SCALE_ENCODED_NAME: &'static str = "pending_msp_respond_storage_request"; +} + +/// Pending respond storage requests left side (inclusive) index for the [`PendingMspRespondStorageRequestCf`] CF. +#[derive(Default)] +pub struct PendingMspRespondStorageRequestLeftIndexCf; +impl SingleScaleEncodedValueCf for PendingMspRespondStorageRequestLeftIndexCf { + type Value = u64; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "pending_msp_respond_storage_request_left_index"; +} + +/// Pending respond storage requests right side (exclusive) index for the [`PendingMspRespondStorageRequestCf`] CF. +#[derive(Default)] +pub struct PendingMspRespondStorageRequestRightIndexCf; +impl SingleScaleEncodedValueCf for PendingMspRespondStorageRequestRightIndexCf { + type Value = u64; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "pending_msp_respond_storage_request_right_index"; +} + +/// Pending submit proof requests left side (inclusive) index for the [`PendingStopStoringForInsolventUserRequestCf`] CF. +#[derive(Default)] +pub struct PendingStopStoringForInsolventUserRequestLeftIndexCf; +impl SingleScaleEncodedValueCf for PendingStopStoringForInsolventUserRequestLeftIndexCf { + type Value = u64; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "pending_stop_storing_for_insolvent_user_request_left_index"; +} + +/// Pending submit proof requests right side (exclusive) index for the [`PendingStopStoringForInsolventUserRequestCf`] CF. +#[derive(Default)] +pub struct PendingStopStoringForInsolventUserRequestRightIndexCf; +impl SingleScaleEncodedValueCf for PendingStopStoringForInsolventUserRequestRightIndexCf { + type Value = u64; + + const SINGLE_SCALE_ENCODED_VALUE_NAME: &'static str = + "pending_stop_storing_for_insolvent_user_request_right_index"; +} + +const ALL_COLUMN_FAMILIES: [&str; 13] = [ + LastProcessedBlockNumberCf::NAME, + OngoingProcessConfirmStoringRequestCf::NAME, + PendingConfirmStoringRequestLeftIndexCf::NAME, + PendingConfirmStoringRequestRightIndexCf::NAME, + PendingConfirmStoringRequestCf::NAME, + OngoingProcessMspRespondStorageRequestCf::NAME, + PendingMspRespondStorageRequestLeftIndexCf::NAME, + PendingMspRespondStorageRequestRightIndexCf::NAME, + PendingMspRespondStorageRequestCf::NAME, + OngoingProcessStopStoringForInsolventUserRequestCf::NAME, + PendingStopStoringForInsolventUserRequestLeftIndexCf::NAME, + PendingStopStoringForInsolventUserRequestRightIndexCf::NAME, + PendingStopStoringForInsolventUserRequestCf::NAME, +]; + +/// A persistent blockchain service state store. +pub struct BlockchainServiceStateStore { + /// The RocksDB database. + rocks: TypedRocksDB, +} + +impl BlockchainServiceStateStore { + pub fn new(root_path: PathBuf) -> Self { + let mut path = root_path; + path.push("storagehub/blockchain_service/"); + + let db_path_str = path.to_str().expect("Failed to convert path to string"); + info!("Blockchain service state store path: {}", db_path_str); + std::fs::create_dir_all(&db_path_str).expect("Failed to create directory"); + + let mut db_opts = Options::default(); + db_opts.create_if_missing(true); + db_opts.create_missing_column_families(true); + + let column_families: Vec = ALL_COLUMN_FAMILIES + .iter() + .map(|cf| ColumnFamilyDescriptor::new(cf.to_string(), Options::default())) + .collect(); + + let db = DB::open_cf_descriptors(&db_opts, db_path_str, column_families).unwrap(); + + BlockchainServiceStateStore { + rocks: TypedRocksDB { db }, + } + } + + /// Starts a read/buffered-write interaction with the DB through per-CF type-safe APIs. + pub fn open_rw_context_with_overlay(&self) -> BlockchainServiceStateStoreRwContext<'_> { + BlockchainServiceStateStoreRwContext::new(TypedDbContext::new( + &self.rocks, + BufferedWriteSupport::new(&self.rocks), + )) + } +} + +pub struct BlockchainServiceStateStoreRwContext<'a> { + /// The RocksDB database. + db_context: TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, +} + +impl<'a> BlockchainServiceStateStoreRwContext<'a> { + pub fn new( + db_context: TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, + ) -> Self { + BlockchainServiceStateStoreRwContext { db_context } + } + + pub fn pending_confirm_storing_request_deque( + &'a self, + ) -> PendingConfirmStoringRequestDequeAPI<'a> { + PendingConfirmStoringRequestDequeAPI { + db_context: &self.db_context, + } + } + + pub fn pending_msp_respond_storage_request_deque( + &'a self, + ) -> PendingMspRespondStorageRequestDequeAPI<'a> { + PendingMspRespondStorageRequestDequeAPI { + db_context: &self.db_context, + } + } + + pub fn pending_stop_storing_for_insolvent_user_request_deque( + &'a self, + ) -> PendingStopStoringForInsolventUserRequestDequeAPI<'a> { + PendingStopStoringForInsolventUserRequestDequeAPI { + db_context: &self.db_context, + } + } + + /// Flushes the buffered writes to the DB. + pub fn commit(self) { + self.db_context.flush(); + } +} + +impl<'a> ProvidesDbContext for BlockchainServiceStateStoreRwContext<'a> { + fn db_context(&self) -> &TypedDbContext> { + &self.db_context + } +} + +impl<'a> ProvidesTypedDbSingleAccess for BlockchainServiceStateStoreRwContext<'a> {} + +impl<'a> ProvidesTypedDbAccess for BlockchainServiceStateStoreRwContext<'a> {} + +pub struct PendingConfirmStoringRequestDequeAPI<'a> { + db_context: &'a TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, +} + +impl<'a> ProvidesDbContext for PendingConfirmStoringRequestDequeAPI<'a> { + fn db_context(&self) -> &TypedDbContext> { + &self.db_context + } +} + +impl<'a> ProvidesTypedDbSingleAccess for PendingConfirmStoringRequestDequeAPI<'a> {} + +impl<'a> CFDequeAPI for PendingConfirmStoringRequestDequeAPI<'a> { + type Value = ConfirmStoringRequest; + type LeftIndexCF = PendingConfirmStoringRequestLeftIndexCf; + type RightIndexCF = PendingConfirmStoringRequestRightIndexCf; + type DataCF = PendingConfirmStoringRequestCf; +} + +pub struct PendingMspRespondStorageRequestDequeAPI<'a> { + db_context: &'a TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, +} + +impl<'a> ProvidesDbContext for PendingMspRespondStorageRequestDequeAPI<'a> { + fn db_context(&self) -> &TypedDbContext> { + &self.db_context + } +} + +impl<'a> ProvidesTypedDbSingleAccess for PendingMspRespondStorageRequestDequeAPI<'a> {} + +impl<'a> CFDequeAPI for PendingMspRespondStorageRequestDequeAPI<'a> { + type Value = RespondStorageRequest; + type LeftIndexCF = PendingMspRespondStorageRequestLeftIndexCf; + type RightIndexCF = PendingMspRespondStorageRequestRightIndexCf; + type DataCF = PendingMspRespondStorageRequestCf; +} + +pub struct PendingStopStoringForInsolventUserRequestDequeAPI<'a> { + db_context: &'a TypedDbContext<'a, TypedRocksDB, BufferedWriteSupport<'a, TypedRocksDB>>, +} + +impl<'a> ProvidesDbContext for PendingStopStoringForInsolventUserRequestDequeAPI<'a> { + fn db_context(&self) -> &TypedDbContext> { + &self.db_context + } +} + +impl<'a> ProvidesTypedDbSingleAccess for PendingStopStoringForInsolventUserRequestDequeAPI<'a> {} + +impl<'a> CFDequeAPI for PendingStopStoringForInsolventUserRequestDequeAPI<'a> { + type Value = StopStoringForInsolventUserRequest; + type LeftIndexCF = PendingStopStoringForInsolventUserRequestLeftIndexCf; + type RightIndexCF = PendingStopStoringForInsolventUserRequestRightIndexCf; + type DataCF = PendingStopStoringForInsolventUserRequestCf; +} diff --git a/client/blockchain-service/src/types.rs b/client/blockchain-service/src/types.rs index cb46b0340..ea60dcc8b 100644 --- a/client/blockchain-service/src/types.rs +++ b/client/blockchain-service/src/types.rs @@ -1,272 +1,272 @@ -use std::{ - cmp::{min, Ordering}, - future::Future, - pin::Pin, - time::Duration, -}; - -use codec::{Decode, Encode}; -use frame_support::dispatch::DispatchInfo; -use sp_core::H256; -use sp_runtime::{AccountId32, DispatchError}; - -use shc_common::types::{ - BlockNumber, ProviderId, RandomnessOutput, RejectedStorageRequestReason, StorageHubEventsVec, - TrieRemoveMutation, -}; - -/// A struct that holds the information to submit a storage proof. -/// -/// This struct is used as an item in the `pending_submit_proof_requests` queue. -#[derive(Debug, Clone, Encode, Decode)] -pub struct SubmitProofRequest { - pub provider_id: ProviderId, - pub tick: BlockNumber, - pub seed: RandomnessOutput, - pub forest_challenges: Vec, - pub checkpoint_challenges: Vec<(H256, Option)>, -} - -impl SubmitProofRequest { - pub fn new( - provider_id: ProviderId, - tick: BlockNumber, - seed: RandomnessOutput, - forest_challenges: Vec, - checkpoint_challenges: Vec<(H256, Option)>, - ) -> Self { - Self { - provider_id, - tick, - seed, - forest_challenges, - checkpoint_challenges, - } - } -} - -impl Ord for SubmitProofRequest { - fn cmp(&self, other: &Self) -> Ordering { - self.tick.cmp(&other.tick) - } -} - -impl PartialOrd for SubmitProofRequest { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.cmp(other)) - } -} - -// Two `SubmitProofRequest`s are considered equal if they have the same `tick` and `provider_id`. -// This helps to identify and remove duplicate requests from the queue. -impl PartialEq for SubmitProofRequest { - fn eq(&self, other: &Self) -> bool { - self.tick == other.tick && self.provider_id == other.provider_id - } -} - -impl Eq for SubmitProofRequest {} - -#[derive(Debug, Clone, Encode, Decode)] -pub struct ConfirmStoringRequest { - pub file_key: H256, - pub try_count: u32, -} - -impl ConfirmStoringRequest { - pub fn new(file_key: H256) -> Self { - Self { - file_key, - try_count: 0, - } - } - - pub fn increment_try_count(&mut self) { - self.try_count += 1; - } -} - -#[derive(Debug, Clone, Encode, Decode)] -pub enum MspRespondStorageRequest { - Accept, - Reject(RejectedStorageRequestReason), -} - -#[derive(Debug, Clone, Encode, Decode)] -pub struct RespondStorageRequest { - pub file_key: H256, - pub response: MspRespondStorageRequest, - pub try_count: u32, -} - -impl RespondStorageRequest { - pub fn new(file_key: H256, response: MspRespondStorageRequest) -> Self { - Self { - file_key, - response, - try_count: 0, - } - } - - pub fn increment_try_count(&mut self) { - self.try_count += 1; - } -} - -/// A struct that holds the information to stop storing all files from an insolvent user. -/// (Which is only the user's account ID). -/// -/// This struct is used as an item in the `pending_stop_storing_for_insolvent_user_requests` queue. -#[derive(Debug, Clone, Encode, Decode)] -pub struct StopStoringForInsolventUserRequest { - pub user: AccountId32, -} - -impl StopStoringForInsolventUserRequest { - pub fn new(user: AccountId32) -> Self { - Self { user } - } -} - -/// Extrinsic struct. -/// -/// This struct represents an extrinsic in the blockchain. -#[derive(Debug, Clone)] -pub struct Extrinsic { - /// Extrinsic hash. - pub hash: H256, - /// Block hash. - pub block_hash: H256, - /// Events vector. - pub events: StorageHubEventsVec, -} - -/// ExtrinsicResult enum. -/// -/// This enum represents the result of an extrinsic execution. It can be either a success or a failure. -pub enum ExtrinsicResult { - /// Success variant. - /// - /// This variant represents a successful extrinsic execution. - Success { - /// Dispatch info. - dispatch_info: DispatchInfo, - }, - /// Failure variant. - /// - /// This variant represents a failed extrinsic execution. - Failure { - /// Dispatch error. - dispatch_error: DispatchError, - /// Dispatch info. - dispatch_info: DispatchInfo, - }, -} - -/// Type alias for the extrinsic hash. -pub type ExtrinsicHash = H256; - -/// Type alias for the tip. -pub type Tip = pallet_transaction_payment::ChargeTransactionPayment; - -/// A struct which defines a submit extrinsic retry strategy. This defines a simple strategy when -/// sending and extrinsic. It will retry a maximum number of times ([Self::max_retries]). -/// If the extrinsic is not included in a block within a certain time frame [`Self::timeout`] it is -/// considered a failure. -/// The tip will increase with each retry, up to a maximum tip of [`Self::max_tip`]. -/// The tip series (with the exception of the first try which is 0) is a geometric progression with -/// a multiplier of [`Self::base_multiplier`]. -/// The final tip for each retry is calculated as: -/// [`Self::max_tip`] * (([`Self::base_multiplier`] ^ (retry_count / [`Self::max_retries`]) - 1) / -/// ([`Self::base_multiplier`] - 1)). -/// An optional check function can be provided to determine if the extrinsic should be retried, -/// aborting early if the function returns false. -pub struct RetryStrategy { - /// Maximum number of retries after which the extrinsic submission will be considered failed. - pub max_retries: u32, - /// Maximum time to wait for a response before assuming the extrinsic submission has failed. - pub timeout: Duration, - /// Maximum tip to be paid for the extrinsic submission. The progression follows an exponential - /// backoff strategy. - pub max_tip: f64, - /// Base multiplier for the tip calculation. This is the base of the geometric progression. - /// A higher value will make tips grow faster. - pub base_multiplier: f64, - /// An optional check function to determine if the extrinsic should be retried. - /// If this is provided, the function will be called before each retry to determine if the - /// extrinsic should be retried or the submission should be considered failed. If this is not - /// provided, the extrinsic will be retried until [`Self::max_retries`] is reached. - pub should_retry: Option Pin + Send>> + Send>>, -} - -impl RetryStrategy { - /// Creates a new `RetryStrategy` instance. - pub fn new(max_retries: u32, timeout: Duration, max_tip: f64, base_multiplier: f64) -> Self { - Self { - max_retries, - timeout, - max_tip, - base_multiplier, - should_retry: None, - } - } - - pub fn with_max_retries(mut self, max_retries: u32) -> Self { - self.max_retries = max_retries; - self - } - - pub fn with_timeout(mut self, timeout: Duration) -> Self { - self.timeout = timeout; - self - } - - pub fn with_max_tip(mut self, max_tip: f64) -> Self { - self.max_tip = max_tip; - self - } - - pub fn with_base_multiplier(mut self, base_multiplier: f64) -> Self { - self.base_multiplier = base_multiplier; - self - } - - pub fn with_should_retry( - mut self, - should_retry: Option Pin + Send>> + Send>>, - ) -> Self { - self.should_retry = should_retry; - self - } - - /// Computes the tip for the given retry count. - /// The formula for the tip is: - /// [`Self::max_tip`] * (([`Self::base_multiplier`] ^ (retry_count / [`Self::max_retries`]) - 1) / - /// ([`Self::base_multiplier`] - 1)). - pub fn compute_tip(&self, retry_count: u32) -> f64 { - // Ensure the retry_count is within the bounds of max_retries - let retry_count = min(retry_count, self.max_retries); - - // Calculate the geometric progression factor for this retry_count - let factor = (self - .base_multiplier - .powf(retry_count as f64 / self.max_retries as f64) - - 1.0) - / (self.base_multiplier - 1.0); - - // Final tip formula for each retry, scaled to max_tip - self.max_tip * factor - } -} - -impl Default for RetryStrategy { - fn default() -> Self { - Self { - max_retries: 5, - timeout: Duration::from_secs(30), - max_tip: 0.0, - base_multiplier: 2.0, - should_retry: None, - } - } -} +use std::{ + cmp::{min, Ordering}, + future::Future, + pin::Pin, + time::Duration, +}; + +use codec::{Decode, Encode}; +use frame_support::dispatch::DispatchInfo; +use sp_core::H256; +use sp_runtime::{AccountId32, DispatchError}; + +use shc_common::types::{ + BlockNumber, ProviderId, RandomnessOutput, RejectedStorageRequestReason, StorageHubEventsVec, + TrieRemoveMutation, +}; + +/// A struct that holds the information to submit a storage proof. +/// +/// This struct is used as an item in the `pending_submit_proof_requests` queue. +#[derive(Debug, Clone, Encode, Decode)] +pub struct SubmitProofRequest { + pub provider_id: ProviderId, + pub tick: BlockNumber, + pub seed: RandomnessOutput, + pub forest_challenges: Vec, + pub checkpoint_challenges: Vec<(H256, Option)>, +} + +impl SubmitProofRequest { + pub fn new( + provider_id: ProviderId, + tick: BlockNumber, + seed: RandomnessOutput, + forest_challenges: Vec, + checkpoint_challenges: Vec<(H256, Option)>, + ) -> Self { + Self { + provider_id, + tick, + seed, + forest_challenges, + checkpoint_challenges, + } + } +} + +impl Ord for SubmitProofRequest { + fn cmp(&self, other: &Self) -> Ordering { + self.tick.cmp(&other.tick) + } +} + +impl PartialOrd for SubmitProofRequest { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +// Two `SubmitProofRequest`s are considered equal if they have the same `tick` and `provider_id`. +// This helps to identify and remove duplicate requests from the queue. +impl PartialEq for SubmitProofRequest { + fn eq(&self, other: &Self) -> bool { + self.tick == other.tick && self.provider_id == other.provider_id + } +} + +impl Eq for SubmitProofRequest {} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct ConfirmStoringRequest { + pub file_key: H256, + pub try_count: u32, +} + +impl ConfirmStoringRequest { + pub fn new(file_key: H256) -> Self { + Self { + file_key, + try_count: 0, + } + } + + pub fn increment_try_count(&mut self) { + self.try_count += 1; + } +} + +#[derive(Debug, Clone, Encode, Decode)] +pub enum MspRespondStorageRequest { + Accept, + Reject(RejectedStorageRequestReason), +} + +#[derive(Debug, Clone, Encode, Decode)] +pub struct RespondStorageRequest { + pub file_key: H256, + pub response: MspRespondStorageRequest, + pub try_count: u32, +} + +impl RespondStorageRequest { + pub fn new(file_key: H256, response: MspRespondStorageRequest) -> Self { + Self { + file_key, + response, + try_count: 0, + } + } + + pub fn increment_try_count(&mut self) { + self.try_count += 1; + } +} + +/// A struct that holds the information to stop storing all files from an insolvent user. +/// (Which is only the user's account ID). +/// +/// This struct is used as an item in the `pending_stop_storing_for_insolvent_user_requests` queue. +#[derive(Debug, Clone, Encode, Decode)] +pub struct StopStoringForInsolventUserRequest { + pub user: AccountId32, +} + +impl StopStoringForInsolventUserRequest { + pub fn new(user: AccountId32) -> Self { + Self { user } + } +} + +/// Extrinsic struct. +/// +/// This struct represents an extrinsic in the blockchain. +#[derive(Debug, Clone)] +pub struct Extrinsic { + /// Extrinsic hash. + pub hash: H256, + /// Block hash. + pub block_hash: H256, + /// Events vector. + pub events: StorageHubEventsVec, +} + +/// ExtrinsicResult enum. +/// +/// This enum represents the result of an extrinsic execution. It can be either a success or a failure. +pub enum ExtrinsicResult { + /// Success variant. + /// + /// This variant represents a successful extrinsic execution. + Success { + /// Dispatch info. + dispatch_info: DispatchInfo, + }, + /// Failure variant. + /// + /// This variant represents a failed extrinsic execution. + Failure { + /// Dispatch error. + dispatch_error: DispatchError, + /// Dispatch info. + dispatch_info: DispatchInfo, + }, +} + +/// Type alias for the extrinsic hash. +pub type ExtrinsicHash = H256; + +/// Type alias for the tip. +pub type Tip = pallet_transaction_payment::ChargeTransactionPayment; + +/// A struct which defines a submit extrinsic retry strategy. This defines a simple strategy when +/// sending and extrinsic. It will retry a maximum number of times ([Self::max_retries]). +/// If the extrinsic is not included in a block within a certain time frame [`Self::timeout`] it is +/// considered a failure. +/// The tip will increase with each retry, up to a maximum tip of [`Self::max_tip`]. +/// The tip series (with the exception of the first try which is 0) is a geometric progression with +/// a multiplier of [`Self::base_multiplier`]. +/// The final tip for each retry is calculated as: +/// [`Self::max_tip`] * (([`Self::base_multiplier`] ^ (retry_count / [`Self::max_retries`]) - 1) / +/// ([`Self::base_multiplier`] - 1)). +/// An optional check function can be provided to determine if the extrinsic should be retried, +/// aborting early if the function returns false. +pub struct RetryStrategy { + /// Maximum number of retries after which the extrinsic submission will be considered failed. + pub max_retries: u32, + /// Maximum time to wait for a response before assuming the extrinsic submission has failed. + pub timeout: Duration, + /// Maximum tip to be paid for the extrinsic submission. The progression follows an exponential + /// backoff strategy. + pub max_tip: f64, + /// Base multiplier for the tip calculation. This is the base of the geometric progression. + /// A higher value will make tips grow faster. + pub base_multiplier: f64, + /// An optional check function to determine if the extrinsic should be retried. + /// If this is provided, the function will be called before each retry to determine if the + /// extrinsic should be retried or the submission should be considered failed. If this is not + /// provided, the extrinsic will be retried until [`Self::max_retries`] is reached. + pub should_retry: Option Pin + Send>> + Send>>, +} + +impl RetryStrategy { + /// Creates a new `RetryStrategy` instance. + pub fn new(max_retries: u32, timeout: Duration, max_tip: f64, base_multiplier: f64) -> Self { + Self { + max_retries, + timeout, + max_tip, + base_multiplier, + should_retry: None, + } + } + + pub fn with_max_retries(mut self, max_retries: u32) -> Self { + self.max_retries = max_retries; + self + } + + pub fn with_timeout(mut self, timeout: Duration) -> Self { + self.timeout = timeout; + self + } + + pub fn with_max_tip(mut self, max_tip: f64) -> Self { + self.max_tip = max_tip; + self + } + + pub fn with_base_multiplier(mut self, base_multiplier: f64) -> Self { + self.base_multiplier = base_multiplier; + self + } + + pub fn with_should_retry( + mut self, + should_retry: Option Pin + Send>> + Send>>, + ) -> Self { + self.should_retry = should_retry; + self + } + + /// Computes the tip for the given retry count. + /// The formula for the tip is: + /// [`Self::max_tip`] * (([`Self::base_multiplier`] ^ (retry_count / [`Self::max_retries`]) - 1) / + /// ([`Self::base_multiplier`] - 1)). + pub fn compute_tip(&self, retry_count: u32) -> f64 { + // Ensure the retry_count is within the bounds of max_retries + let retry_count = min(retry_count, self.max_retries); + + // Calculate the geometric progression factor for this retry_count + let factor = (self + .base_multiplier + .powf(retry_count as f64 / self.max_retries as f64) + - 1.0) + / (self.base_multiplier - 1.0); + + // Final tip formula for each retry, scaled to max_tip + self.max_tip * factor + } +} + +impl Default for RetryStrategy { + fn default() -> Self { + Self { + max_retries: 5, + timeout: Duration::from_secs(30), + max_tip: 0.0, + base_multiplier: 2.0, + should_retry: None, + } + } +} diff --git a/client/blockchain-service/src/utils.rs b/client/blockchain-service/src/utils.rs index 68a1eb1c4..887842c41 100644 --- a/client/blockchain-service/src/utils.rs +++ b/client/blockchain-service/src/utils.rs @@ -1,862 +1,862 @@ -use std::sync::Arc; - -use anyhow::{anyhow, Result}; -use codec::Encode; -use cumulus_primitives_core::BlockT; -use log::{debug, error, trace, warn}; -use pallet_proofs_dealer_runtime_api::{ - GetChallengePeriodError, GetChallengeSeedError, GetLastTickProviderSubmittedProofError, - ProofsDealerApi, -}; -use pallet_storage_providers::types::StorageProviderId; -use pallet_storage_providers_runtime_api::StorageProvidersApi; -use polkadot_runtime_common::BlockHashCount; -use sc_client_api::{BlockBackend, HeaderBackend}; -use serde_json::Number; -use shc_actors_framework::actor::Actor; -use shc_common::{ - blockchain_utils::get_events_at_block, - types::{BlockNumber, ParachainClient, ProviderId, BCSV_KEY_TYPE}, -}; -use sp_api::ProvideRuntimeApi; -use sp_core::{Blake2Hasher, Get, Hasher, H256}; -use sp_keystore::KeystorePtr; -use sp_runtime::{ - generic::{self, SignedPayload}, - SaturatedConversion, -}; -use storage_hub_runtime::{Runtime, SignedExtra, UncheckedExtrinsic}; -use substrate_frame_rpc_system::AccountNonceApi; -use tokio::sync::{oneshot::error::TryRecvError, Mutex}; - -use crate::{ - events::{ - ForestWriteLockTaskData, MultipleNewChallengeSeeds, ProcessConfirmStoringRequest, - ProcessConfirmStoringRequestData, ProcessMspRespondStoringRequest, - ProcessStopStoringForInsolventUserRequest, ProcessStopStoringForInsolventUserRequestData, - ProcessSubmitProofRequest, ProcessSubmitProofRequestData, - }, - handler::LOG_TARGET, - state::{ - OngoingProcessConfirmStoringRequestCf, OngoingProcessMspRespondStorageRequestCf, - OngoingProcessStopStoringForInsolventUserRequestCf, - }, - typed_store::{CFDequeAPI, ProvidesTypedDbSingleAccess}, - types::{Extrinsic, Tip}, - BlockchainService, -}; - -impl BlockchainService { - /// Notify tasks waiting for a block number. - pub(crate) fn notify_import_block_number(&mut self, block_number: &BlockNumber) { - let mut keys_to_remove = Vec::new(); - - for (block_number, waiters) in self - .wait_for_block_request_by_number - .range_mut(..=block_number) - { - keys_to_remove.push(*block_number); - for waiter in waiters.drain(..) { - match waiter.send(()) { - Ok(_) => {} - Err(_) => { - error!(target: LOG_TARGET, "Failed to notify task about block number."); - } - } - } - } - - for key in keys_to_remove { - self.wait_for_block_request_by_number.remove(&key); - } - } - - /// Notify tasks waiting for a tick number. - pub(crate) fn notify_tick_number(&mut self, block_hash: &H256) { - // Get the current tick number. - let tick_number = match self.client.runtime_api().get_current_tick(*block_hash) { - Ok(current_tick) => current_tick, - Err(_) => { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to query current tick from runtime in block hash {:?} and block number {:?}. This should not happen.", block_hash, self.client.info().best_number); - return; - } - }; - - let mut keys_to_remove = Vec::new(); - - for (tick_number, waiters) in self - .wait_for_tick_request_by_number - .range_mut(..=tick_number) - { - keys_to_remove.push(*tick_number); - for waiter in waiters.drain(..) { - match waiter.send(Ok(())) { - Ok(_) => {} - Err(_) => { - error!(target: LOG_TARGET, "Failed to notify task about tick number."); - } - } - } - } - - for key in keys_to_remove { - self.wait_for_tick_request_by_number.remove(&key); - } - } - - /// Checks if the account nonce on-chain is higher than the nonce in the [`BlockchainService`]. - /// - /// If the nonce is higher, the account nonce is updated in the [`BlockchainService`]. - pub(crate) fn check_nonce(&mut self, block_hash: &H256) { - let pub_key = Self::caller_pub_key(self.keystore.clone()); - let latest_nonce = self - .client - .runtime_api() - .account_nonce(*block_hash, pub_key.into()) - .expect("Fetching account nonce works; qed"); - if latest_nonce > self.nonce_counter { - self.nonce_counter = latest_nonce - } - } - - /// Get all the provider IDs linked to keys in this node's keystore. - /// - /// The provider IDs found are added to the [`BlockchainService`]'s list of provider IDs. - pub(crate) fn get_provider_ids(&mut self, block_hash: &H256) { - for key in self.keystore.sr25519_public_keys(BCSV_KEY_TYPE) { - self.client - .runtime_api() - .get_storage_provider_id(*block_hash, &key.into()) - .map(|provider_id| { - if let Some(provider_id) = provider_id { - match provider_id { - StorageProviderId::BackupStorageProvider(bsp_id) => { - self.provider_ids.insert(bsp_id); - } - StorageProviderId::MainStorageProvider(msp_id) => { - self.provider_ids.insert(msp_id); - } - } - } else { - warn!(target: LOG_TARGET, "There is no provider ID for key: {:?}. This means that the node has a BCSV key in the keystore for which there is no provider ID.", key); - } - }) - .unwrap_or_else(|_| { - warn!(target: LOG_TARGET, "Failed to get provider ID for key: {:?}.", key); - }); - } - } - - /// Send an extrinsic to this node using an RPC call. - pub(crate) async fn send_extrinsic( - &mut self, - call: impl Into, - tip: Tip, - ) -> Result { - debug!(target: LOG_TARGET, "Sending extrinsic to the runtime"); - - // Get the nonce for the caller and increment it for the next transaction. - // TODO: Handle nonce overflow. - let nonce = self.nonce_counter; - - // Construct the extrinsic. - let extrinsic = self.construct_extrinsic(self.client.clone(), call, nonce, tip); - - // Generate a unique ID for this query. - let id_hash = Blake2Hasher::hash(&extrinsic.encode()); - // TODO: Consider storing the ID in a hashmap if later retrieval is needed. - - let (result, rx) = self - .rpc_handlers - .rpc_query(&format!( - r#"{{ - "jsonrpc": "2.0", - "method": "author_submitAndWatchExtrinsic", - "params": ["0x{}"], - "id": {:?} - }}"#, - array_bytes::bytes2hex("", &extrinsic.encode()), - array_bytes::bytes2hex("", &id_hash.as_bytes()) - )) - .await - .expect("Sending query failed even when it is correctly formatted as JSON-RPC; qed"); - - let json: serde_json::Value = - serde_json::from_str(&result).expect("the result can only be a JSONRPC string; qed"); - let error = json - .as_object() - .expect("JSON result is always an object; qed") - .get("error"); - - if let Some(error) = error { - // TODO: Consider how to handle a low nonce error, and retry. - return Err(anyhow::anyhow!("Error in RPC call: {}", error.to_string())); - } - - // Only update nonce after we are sure no errors - // occurred submitting the extrinsic. - self.nonce_counter += 1; - - Ok(RpcExtrinsicOutput { - hash: id_hash, - result, - receiver: rx, - }) - } - - /// Construct an extrinsic that can be applied to the runtime. - pub fn construct_extrinsic( - &self, - client: Arc, - function: impl Into, - nonce: u32, - tip: Tip, - ) -> UncheckedExtrinsic { - let function = function.into(); - let current_block_hash = client.info().best_hash; - let current_block = client.info().best_number.saturated_into(); - let genesis_block = client - .hash(0) - .expect("Failed to get genesis block hash, always present; qed") - .expect("Genesis block hash should never not be on-chain; qed"); - let period = BlockHashCount::get() - .checked_next_power_of_two() - .map(|c| c / 2) - .unwrap_or(2) as u64; - let extra: SignedExtra = ( - frame_system::CheckNonZeroSender::::new(), - frame_system::CheckSpecVersion::::new(), - frame_system::CheckTxVersion::::new(), - frame_system::CheckGenesis::::new(), - frame_system::CheckEra::::from(generic::Era::mortal( - period, - current_block, - )), - frame_system::CheckNonce::::from(nonce), - frame_system::CheckWeight::::new(), - tip, - cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::< - storage_hub_runtime::Runtime, - >::new(), - frame_metadata_hash_extension::CheckMetadataHash::new(false), - ); - - let raw_payload = SignedPayload::from_raw( - function.clone(), - extra.clone(), - ( - (), - storage_hub_runtime::VERSION.spec_version, - storage_hub_runtime::VERSION.transaction_version, - genesis_block, - current_block_hash, - (), - (), - (), - (), - None, - ), - ); - - let caller_pub_key = Self::caller_pub_key(self.keystore.clone()); - - // Sign the payload. - let signature = raw_payload - .using_encoded(|e| self.keystore.sr25519_sign(BCSV_KEY_TYPE, &caller_pub_key, e)) - .expect("The payload is always valid and should be possible to sign; qed") - .expect("They key type and public key are valid because we just extracted them from the keystore; qed"); - - // Construct the extrinsic. - UncheckedExtrinsic::new_signed( - function.clone(), - storage_hub_runtime::Address::Id(>::into(caller_pub_key)), - polkadot_primitives::Signature::Sr25519(signature), - extra.clone(), - ) - } - - // Getting signer public key. - pub fn caller_pub_key(keystore: KeystorePtr) -> sp_core::sr25519::Public { - let caller_pub_key = keystore.sr25519_public_keys(BCSV_KEY_TYPE).pop().expect( - format!( - "There should be at least one sr25519 key in the keystore with key type '{:?}' ; qed", - BCSV_KEY_TYPE - ) - .as_str(), - ); - caller_pub_key - } - - /// Get an extrinsic from a block. - pub(crate) async fn get_extrinsic_from_block( - &self, - block_hash: H256, - extrinsic_hash: H256, - ) -> Result { - // Get the block. - let block = self - .client - .block(block_hash) - .expect("Failed to get block. This shouldn't be possible for known existing block hash; qed") - .expect("Block returned None for known existing block hash. This shouldn't be the case for a block known to have at least one transaction; qed"); - - // Get the extrinsics. - let extrinsics = block.block.extrinsics(); - - // Find the extrinsic index in the block. - let extrinsic_index = extrinsics - .iter() - .position(|e| { - let hash = Blake2Hasher::hash(&e.encode()); - hash == extrinsic_hash - }) - .expect("Extrinsic not found in block. This shouldn't be possible if we're looking into a block for which we got confirmation that the extrinsic was included; qed"); - - // Get the events from storage. - let events_in_block = get_events_at_block(&self.client, &block_hash)?; - - // Filter the events for the extrinsic. - // Each event record is composed of the `phase`, `event` and `topics` fields. - // We are interested in those events whose `phase` is equal to `ApplyExtrinsic` with the index of the extrinsic. - // For more information see: https://polkadot.js.org/docs/api/cookbook/blocks/#how-do-i-map-extrinsics-to-their-events - let events = events_in_block - .into_iter() - .filter(|ev| ev.phase == frame_system::Phase::ApplyExtrinsic(extrinsic_index as u32)) - .collect(); - - // Construct the extrinsic. - Ok(Extrinsic { - hash: extrinsic_hash, - block_hash, - events, - }) - } - - /// Unwatch an extrinsic. - pub(crate) async fn unwatch_extrinsic(&self, subscription_id: Number) -> Result { - let (result, _rx) = self - .rpc_handlers - .rpc_query(&format!( - r#"{{ - "jsonrpc": "2.0", - "method": "author_unwatchExtrinsic", - "params": [{}], - "id": {} - }}"#, - subscription_id, subscription_id - )) - .await - .expect("Sending query failed even when it is correctly formatted as JSON-RPC; qed"); - - let json: serde_json::Value = - serde_json::from_str(&result).expect("the result can only be a JSONRPC string; qed"); - let unwatch_result = json - .as_object() - .expect("JSON result is always an object; qed") - .get("result"); - - if let Some(unwatch_result) = unwatch_result { - if unwatch_result - .as_bool() - .expect("Result is always a boolean; qed") - { - debug!(target: LOG_TARGET, "Extrinsic unwatched successfully"); - } else { - return Err(anyhow::anyhow!("Failed to unwatch extrinsic")); - } - } else { - return Err(anyhow::anyhow!("Failed to unwatch extrinsic")); - } - - Ok(result) - } - - /// Check if the challenges tick is one that this provider has to submit a proof for, - /// and if so, return true. - pub(crate) fn should_provider_submit_proof( - &self, - block_hash: &H256, - provider_id: &ProviderId, - current_tick: &BlockNumber, - ) -> bool { - // Get the last tick for which the BSP submitted a proof. - let last_tick_provided = match self - .client - .runtime_api() - .get_last_tick_provider_submitted_proof(*block_hash, provider_id) - { - Ok(last_tick_provided_result) => match last_tick_provided_result { - Ok(last_tick_provided) => last_tick_provided, - Err(e) => match e { - GetLastTickProviderSubmittedProofError::ProviderNotRegistered => { - debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); - return false; - } - GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof => { - debug!(target: LOG_TARGET, "Provider [{:?}] does not have an initialised challenge cycle", provider_id); - return false; - } - GetLastTickProviderSubmittedProofError::InternalApiError => { - error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); - return false; - } - }, - }, - Err(e) => { - error!(target: LOG_TARGET, "Runtime API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); - return false; - } - }; - - // Get the challenge period for the provider. - let provider_challenge_period = match self - .client - .runtime_api() - .get_challenge_period(*block_hash, provider_id) - { - Ok(provider_challenge_period_result) => match provider_challenge_period_result { - Ok(provider_challenge_period) => provider_challenge_period, - Err(e) => match e { - GetChallengePeriodError::ProviderNotRegistered => { - debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); - return false; - } - GetChallengePeriodError::InternalApiError => { - error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting challenge period for Provider [{:?}]", provider_id); - return false; - } - }, - }, - Err(e) => { - error!(target: LOG_TARGET, "Runtime API error while getting challenge period for Provider [{:?}]: {:?}", provider_id, e); - return false; - } - }; - - // Check if the current tick is a tick this provider should submit a proof for. - let current_tick_minus_last_submission = match current_tick.checked_sub(last_tick_provided) - { - Some(tick) => tick, - None => { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Current tick is smaller than the last tick this provider submitted a proof for. This should not happen. \nThis is a bug. Please report it to the StorageHub team."); - return false; - } - }; - - (current_tick_minus_last_submission % provider_challenge_period) == 0 - } - - /// Check if there are any pending requests to update the forest root on the runtime, and process them. - /// Takes care of prioritizing requests, favouring `SubmitProofRequest` over `ConfirmStoringRequest` over `StopStoringForInsolventUserRequest`. - /// This function is called every time a new block is imported and after each request is queued. - pub(crate) fn check_pending_forest_root_writes(&mut self) { - if let Some(mut rx) = self.forest_root_write_lock.take() { - // Note: tasks that get ownership of the lock are responsible for sending a message back when done processing. - match rx.try_recv() { - // If the channel is empty, means we still need to wait for the current task to finish. - Err(TryRecvError::Empty) => { - // If we have a task writing to the runtime, we don't want to start another one. - self.forest_root_write_lock = Some(rx); - trace!(target: LOG_TARGET, "Waiting for current forest root write task to finish"); - return; - } - Ok(_) => { - trace!(target: LOG_TARGET, "Forest root write task finished, lock is released!"); - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .access_value(&OngoingProcessConfirmStoringRequestCf) - .delete(); - state_store_context - .access_value(&OngoingProcessMspRespondStorageRequestCf) - .delete(); - state_store_context - .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) - .delete(); - state_store_context.commit(); - } - Err(TryRecvError::Closed) => { - error!(target: LOG_TARGET, "Forest root write task channel closed unexpectedly. Lock is released anyway!"); - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .access_value(&OngoingProcessConfirmStoringRequestCf) - .delete(); - state_store_context - .access_value(&OngoingProcessMspRespondStorageRequestCf) - .delete(); - state_store_context - .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) - .delete(); - state_store_context.commit(); - } - } - } - - // At this point we know that the lock is released and we can start processing new requests. - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - let mut next_event_data = None; - - // If we have a submit proof request, prioritise it. - while let Some(request) = self.pending_submit_proof_requests.pop_first() { - // Check if the proof is still the next one to be submitted. - let provider_id = request.provider_id; - let next_challenge_tick = match self.get_next_challenge_tick_for_provider(&provider_id) - { - Ok(next_challenge_tick) => next_challenge_tick, - Err(e) => { - error!(target: LOG_TARGET, "Failed to get next challenge tick for provider [{:?}]: {:?}", provider_id, e); - break; - } - }; - - // This is to avoid starting a new task if the proof is not the next one to be submitted. - if next_challenge_tick == request.tick { - // If the proof is still the next one to be submitted, we can process it. - next_event_data = Some(ForestWriteLockTaskData::SubmitProofRequest( - ProcessSubmitProofRequestData { - seed: request.seed, - provider_id: request.provider_id, - tick: request.tick, - forest_challenges: request.forest_challenges, - checkpoint_challenges: request.checkpoint_challenges, - }, - )); - break; - } else { - // If the proof is not the next one to be submitted, we can remove it from the list of pending submit proof requests. - trace!(target: LOG_TARGET, "Proof for tick [{:?}] is not the next one to be submitted. Removing it from the list of pending submit proof requests.", request.tick); - self.pending_submit_proof_requests.remove(&request); - } - } - - // If we have no pending submit proof requests, we can also check for pending confirm storing requests. - if next_event_data.is_none() { - let max_batch_confirm = - <::MaxBatchConfirmStorageRequests as Get< - u32, - >>::get(); - - // Batch multiple confirm file storing taking the runtime maximum. - let mut confirm_storing_requests = Vec::new(); - for _ in 0..max_batch_confirm { - if let Some(request) = state_store_context - .pending_confirm_storing_request_deque() - .pop_front() - { - confirm_storing_requests.push(request); - } else { - break; - } - } - - // If we have at least 1 confirm storing request, send the process event. - if confirm_storing_requests.len() > 0 { - next_event_data = Some( - ProcessConfirmStoringRequestData { - confirm_storing_requests, - } - .into(), - ); - } - } - - // If we have no pending submit proof requests nor pending confirm storing requests, we can also check for pending stop storing for insolvent user requests. - if next_event_data.is_none() { - if let Some(request) = state_store_context - .pending_stop_storing_for_insolvent_user_request_deque() - .pop_front() - { - next_event_data = Some( - ProcessStopStoringForInsolventUserRequestData { who: request.user }.into(), - ); - } - } - state_store_context.commit(); - - if let Some(event_data) = next_event_data { - self.emit_forest_write_event(event_data); - } - } - - pub(crate) fn emit_forest_write_event(&mut self, data: impl Into) { - let (tx, rx) = tokio::sync::oneshot::channel(); - self.forest_root_write_lock = Some(rx); - - let data = data.into(); - - // If this is a confirm storing request or a stop storing for insolvent user request, we need to store it in the state store. - match &data { - ForestWriteLockTaskData::ConfirmStoringRequest(data) => { - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .access_value(&OngoingProcessConfirmStoringRequestCf) - .write(data); - state_store_context.commit(); - } - ForestWriteLockTaskData::StopStoringForInsolventUserRequest(data) => { - let state_store_context = self.persistent_state.open_rw_context_with_overlay(); - state_store_context - .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) - .write(data); - state_store_context.commit(); - } - _ => {} - } - - // This is an [`Arc>>`] (in this case [`oneshot::Sender<()>`]) instead of just - // T so that we can keep using the current actors event bus (emit) which requires Clone on the - // event. Clone is required because there is no constraint on the number of listeners that can - // subscribe to the event (and each is guaranteed to receive all emitted events). - let forest_root_write_tx = Arc::new(Mutex::new(Some(tx))); - match data.into() { - ForestWriteLockTaskData::SubmitProofRequest(data) => { - self.emit(ProcessSubmitProofRequest { - data, - forest_root_write_tx, - }); - } - ForestWriteLockTaskData::ConfirmStoringRequest(data) => { - self.emit(ProcessConfirmStoringRequest { - data, - forest_root_write_tx, - }); - } - ForestWriteLockTaskData::MspRespondStorageRequest(data) => { - self.emit(ProcessMspRespondStoringRequest { - data, - forest_root_write_tx, - }); - } - ForestWriteLockTaskData::StopStoringForInsolventUserRequest(data) => { - self.emit(ProcessStopStoringForInsolventUserRequest { - data, - forest_root_write_tx, - }); - } - } - } - - /// Emits a `MultipleNewChallengeSeeds` event with all the pending proof submissions for this provider. - /// This is used to catch up to the latest proof submissions that were missed due to a node restart. - /// Also, it can help to catch up to proofs in case there is a change in the BSP's stake (therefore - /// also a change in it's challenge period). - /// - /// IMPORTANT: This function takes into account whether a proof should be submitted for the current tick. - pub(crate) fn proof_submission_catch_up( - &self, - current_block_hash: &H256, - provider_id: &ProviderId, - ) { - // Get the last tick for which the BSP submitted a proof, according to the runtime right now. - let last_tick_provider_submitted_proof = match self - .client - .runtime_api() - .get_last_tick_provider_submitted_proof(*current_block_hash, provider_id) - { - Ok(last_tick_provided_result) => match last_tick_provided_result { - Ok(last_tick_provided) => last_tick_provided, - Err(e) => match e { - GetLastTickProviderSubmittedProofError::ProviderNotRegistered => { - debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); - return; - } - GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof => { - debug!(target: LOG_TARGET, "Provider [{:?}] does not have an initialised challenge cycle", provider_id); - return; - } - GetLastTickProviderSubmittedProofError::InternalApiError => { - error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); - return; - } - }, - }, - Err(e) => { - error!(target: LOG_TARGET, "Runtime API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); - return; - } - }; - trace!(target: LOG_TARGET, "Last tick Provider [{:?}] submitted a proof for: {}", provider_id, last_tick_provider_submitted_proof); - - // Get the current challenge period for this provider. - let challenge_period = match self - .client - .runtime_api() - .get_challenge_period(*current_block_hash, provider_id) - { - Ok(challenge_period_result) => match challenge_period_result { - Ok(challenge_period) => challenge_period, - Err(e) => match e { - GetChallengePeriodError::ProviderNotRegistered => { - debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); - return; - } - GetChallengePeriodError::InternalApiError => { - error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting challenge period for Provider [{:?}]", provider_id); - return; - } - }, - }, - Err(e) => { - error!(target: LOG_TARGET, "Runtime API error while getting challenge period for Provider [{:?}]: {:?}", provider_id, e); - return; - } - }; - - // Get the current tick. - let current_tick = match self - .client - .runtime_api() - .get_current_tick(*current_block_hash) - { - Ok(current_tick) => current_tick, - Err(e) => { - error!(target: LOG_TARGET, "Runtime API error while getting current tick for Provider [{:?}]: {:?}", provider_id, e); - return; - } - }; - - // Advance by `challenge_period` ticks and add the seed to the list of challenge seeds. - let mut challenge_seeds = Vec::new(); - let mut next_challenge_tick = last_tick_provider_submitted_proof + challenge_period; - while next_challenge_tick <= current_tick { - // Get the seed for the challenge tick. - let seed = match self - .client - .runtime_api() - .get_challenge_seed(*current_block_hash, next_challenge_tick) - { - Ok(seed_result) => match seed_result { - Ok(seed) => seed, - Err(e) => match e { - GetChallengeSeedError::TickBeyondLastSeedStored => { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Tick [{:?}] is beyond last seed stored and this provider needs to submit a proof for it.", next_challenge_tick); - return; - } - GetChallengeSeedError::TickIsInTheFuture => { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Tick [{:?}] is in the future. This should never happen. \nThis is a bug. Please report it to the StorageHub team.", next_challenge_tick); - return; - } - GetChallengeSeedError::InternalApiError => { - error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting challenge seed for challenge tick [{:?}]: {:?}", next_challenge_tick, e); - return; - } - }, - }, - Err(e) => { - error!(target: LOG_TARGET, "Runtime API error while getting challenges from seed for challenge tick [{:?}]: {:?}", next_challenge_tick, e); - return; - } - }; - challenge_seeds.push((next_challenge_tick, seed)); - next_challenge_tick += challenge_period; - } - - // Emit the `MultiNewChallengeSeeds` event. - if challenge_seeds.len() > 0 { - trace!(target: LOG_TARGET, "Emitting MultipleNewChallengeSeeds event for provider [{:?}] with challenge seeds: {:?}", provider_id, challenge_seeds); - self.emit(MultipleNewChallengeSeeds { - provider_id: *provider_id, - seeds: challenge_seeds, - }); - } - } - - pub(crate) fn get_next_challenge_tick_for_provider( - &self, - provider_id: &ProviderId, - ) -> Result { - // Get the current block hash. - let current_block_hash = self.client.info().best_hash; - - // Get the last tick for which the provider submitted a proof. - let last_tick_provider_submitted_proof = match self - .client - .runtime_api() - .get_last_tick_provider_submitted_proof(current_block_hash, provider_id) - { - Ok(last_tick_provided_result) => match last_tick_provided_result { - Ok(last_tick_provided) => last_tick_provided, - Err(e) => match e { - GetLastTickProviderSubmittedProofError::ProviderNotRegistered => { - return Err(anyhow!("Provider [{:?}] is not registered", provider_id)); - } - GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof => { - return Err(anyhow!( - "Provider [{:?}] does not have an initialised challenge cycle", - provider_id - )); - } - GetLastTickProviderSubmittedProofError::InternalApiError => { - return Err(anyhow!( - "Internal API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", - provider_id, e - )); - } - }, - }, - Err(e) => { - return Err(anyhow!( - "Runtime API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", - provider_id, - e - )); - } - }; - - // Get the challenge period for the provider. - let challenge_period = match self - .client - .runtime_api() - .get_challenge_period(current_block_hash, provider_id) - { - Ok(challenge_period_result) => match challenge_period_result { - Ok(challenge_period) => challenge_period, - Err(e) => match e { - GetChallengePeriodError::ProviderNotRegistered => { - return Err(anyhow!("Provider [{:?}] is not registered", provider_id)); - } - GetChallengePeriodError::InternalApiError => { - return Err(anyhow!( - "Internal API error while getting challenge period for Provider [{:?}]", - provider_id - )); - } - }, - }, - Err(e) => { - return Err(anyhow!( - "Runtime API error while getting challenge period for Provider [{:?}]: {:?}", - provider_id, - e - )); - } - }; - - // Calculate the next challenge tick. - let next_challenge_tick = last_tick_provider_submitted_proof + challenge_period; - - // Check if the current tick is a tick this provider should submit a proof for. - Ok(next_challenge_tick) - } -} - -/// The output of an RPC transaction. -pub struct RpcExtrinsicOutput { - /// Hash of the extrinsic. - pub hash: H256, - /// The output string of the transaction if any. - pub result: String, - /// An async receiver if data will be returned via a callback. - pub receiver: tokio::sync::mpsc::Receiver, -} - -impl std::fmt::Debug for RpcExtrinsicOutput { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { - write!( - f, - "RpcExtrinsicOutput {{ hash: {:?}, result: {:?}, receiver }}", - self.hash, self.result - ) - } -} +use std::sync::Arc; + +use anyhow::{anyhow, Result}; +use codec::Encode; +use cumulus_primitives_core::BlockT; +use log::{debug, error, trace, warn}; +use pallet_proofs_dealer_runtime_api::{ + GetChallengePeriodError, GetChallengeSeedError, GetLastTickProviderSubmittedProofError, + ProofsDealerApi, +}; +use pallet_storage_providers::types::StorageProviderId; +use pallet_storage_providers_runtime_api::StorageProvidersApi; +use polkadot_runtime_common::BlockHashCount; +use sc_client_api::{BlockBackend, HeaderBackend}; +use serde_json::Number; +use shc_actors_framework::actor::Actor; +use shc_common::{ + blockchain_utils::get_events_at_block, + types::{BlockNumber, ParachainClient, ProviderId, BCSV_KEY_TYPE}, +}; +use sp_api::ProvideRuntimeApi; +use sp_core::{Blake2Hasher, Get, Hasher, H256}; +use sp_keystore::KeystorePtr; +use sp_runtime::{ + generic::{self, SignedPayload}, + SaturatedConversion, +}; +use storage_hub_runtime::{Runtime, SignedExtra, UncheckedExtrinsic}; +use substrate_frame_rpc_system::AccountNonceApi; +use tokio::sync::{oneshot::error::TryRecvError, Mutex}; + +use crate::{ + events::{ + ForestWriteLockTaskData, MultipleNewChallengeSeeds, ProcessConfirmStoringRequest, + ProcessConfirmStoringRequestData, ProcessMspRespondStoringRequest, + ProcessStopStoringForInsolventUserRequest, ProcessStopStoringForInsolventUserRequestData, + ProcessSubmitProofRequest, ProcessSubmitProofRequestData, + }, + handler::LOG_TARGET, + state::{ + OngoingProcessConfirmStoringRequestCf, OngoingProcessMspRespondStorageRequestCf, + OngoingProcessStopStoringForInsolventUserRequestCf, + }, + typed_store::{CFDequeAPI, ProvidesTypedDbSingleAccess}, + types::{Extrinsic, Tip}, + BlockchainService, +}; + +impl BlockchainService { + /// Notify tasks waiting for a block number. + pub(crate) fn notify_import_block_number(&mut self, block_number: &BlockNumber) { + let mut keys_to_remove = Vec::new(); + + for (block_number, waiters) in self + .wait_for_block_request_by_number + .range_mut(..=block_number) + { + keys_to_remove.push(*block_number); + for waiter in waiters.drain(..) { + match waiter.send(()) { + Ok(_) => {} + Err(_) => { + error!(target: LOG_TARGET, "Failed to notify task about block number."); + } + } + } + } + + for key in keys_to_remove { + self.wait_for_block_request_by_number.remove(&key); + } + } + + /// Notify tasks waiting for a tick number. + pub(crate) fn notify_tick_number(&mut self, block_hash: &H256) { + // Get the current tick number. + let tick_number = match self.client.runtime_api().get_current_tick(*block_hash) { + Ok(current_tick) => current_tick, + Err(_) => { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to query current tick from runtime in block hash {:?} and block number {:?}. This should not happen.", block_hash, self.client.info().best_number); + return; + } + }; + + let mut keys_to_remove = Vec::new(); + + for (tick_number, waiters) in self + .wait_for_tick_request_by_number + .range_mut(..=tick_number) + { + keys_to_remove.push(*tick_number); + for waiter in waiters.drain(..) { + match waiter.send(Ok(())) { + Ok(_) => {} + Err(_) => { + error!(target: LOG_TARGET, "Failed to notify task about tick number."); + } + } + } + } + + for key in keys_to_remove { + self.wait_for_tick_request_by_number.remove(&key); + } + } + + /// Checks if the account nonce on-chain is higher than the nonce in the [`BlockchainService`]. + /// + /// If the nonce is higher, the account nonce is updated in the [`BlockchainService`]. + pub(crate) fn check_nonce(&mut self, block_hash: &H256) { + let pub_key = Self::caller_pub_key(self.keystore.clone()); + let latest_nonce = self + .client + .runtime_api() + .account_nonce(*block_hash, pub_key.into()) + .expect("Fetching account nonce works; qed"); + if latest_nonce > self.nonce_counter { + self.nonce_counter = latest_nonce + } + } + + /// Get all the provider IDs linked to keys in this node's keystore. + /// + /// The provider IDs found are added to the [`BlockchainService`]'s list of provider IDs. + pub(crate) fn get_provider_ids(&mut self, block_hash: &H256) { + for key in self.keystore.sr25519_public_keys(BCSV_KEY_TYPE) { + self.client + .runtime_api() + .get_storage_provider_id(*block_hash, &key.into()) + .map(|provider_id| { + if let Some(provider_id) = provider_id { + match provider_id { + StorageProviderId::BackupStorageProvider(bsp_id) => { + self.provider_ids.insert(bsp_id); + } + StorageProviderId::MainStorageProvider(msp_id) => { + self.provider_ids.insert(msp_id); + } + } + } else { + warn!(target: LOG_TARGET, "There is no provider ID for key: {:?}. This means that the node has a BCSV key in the keystore for which there is no provider ID.", key); + } + }) + .unwrap_or_else(|_| { + warn!(target: LOG_TARGET, "Failed to get provider ID for key: {:?}.", key); + }); + } + } + + /// Send an extrinsic to this node using an RPC call. + pub(crate) async fn send_extrinsic( + &mut self, + call: impl Into, + tip: Tip, + ) -> Result { + debug!(target: LOG_TARGET, "Sending extrinsic to the runtime"); + + // Get the nonce for the caller and increment it for the next transaction. + // TODO: Handle nonce overflow. + let nonce = self.nonce_counter; + + // Construct the extrinsic. + let extrinsic = self.construct_extrinsic(self.client.clone(), call, nonce, tip); + + // Generate a unique ID for this query. + let id_hash = Blake2Hasher::hash(&extrinsic.encode()); + // TODO: Consider storing the ID in a hashmap if later retrieval is needed. + + let (result, rx) = self + .rpc_handlers + .rpc_query(&format!( + r#"{{ + "jsonrpc": "2.0", + "method": "author_submitAndWatchExtrinsic", + "params": ["0x{}"], + "id": {:?} + }}"#, + array_bytes::bytes2hex("", &extrinsic.encode()), + array_bytes::bytes2hex("", &id_hash.as_bytes()) + )) + .await + .expect("Sending query failed even when it is correctly formatted as JSON-RPC; qed"); + + let json: serde_json::Value = + serde_json::from_str(&result).expect("the result can only be a JSONRPC string; qed"); + let error = json + .as_object() + .expect("JSON result is always an object; qed") + .get("error"); + + if let Some(error) = error { + // TODO: Consider how to handle a low nonce error, and retry. + return Err(anyhow::anyhow!("Error in RPC call: {}", error.to_string())); + } + + // Only update nonce after we are sure no errors + // occurred submitting the extrinsic. + self.nonce_counter += 1; + + Ok(RpcExtrinsicOutput { + hash: id_hash, + result, + receiver: rx, + }) + } + + /// Construct an extrinsic that can be applied to the runtime. + pub fn construct_extrinsic( + &self, + client: Arc, + function: impl Into, + nonce: u32, + tip: Tip, + ) -> UncheckedExtrinsic { + let function = function.into(); + let current_block_hash = client.info().best_hash; + let current_block = client.info().best_number.saturated_into(); + let genesis_block = client + .hash(0) + .expect("Failed to get genesis block hash, always present; qed") + .expect("Genesis block hash should never not be on-chain; qed"); + let period = BlockHashCount::get() + .checked_next_power_of_two() + .map(|c| c / 2) + .unwrap_or(2) as u64; + let extra: SignedExtra = ( + frame_system::CheckNonZeroSender::::new(), + frame_system::CheckSpecVersion::::new(), + frame_system::CheckTxVersion::::new(), + frame_system::CheckGenesis::::new(), + frame_system::CheckEra::::from(generic::Era::mortal( + period, + current_block, + )), + frame_system::CheckNonce::::from(nonce), + frame_system::CheckWeight::::new(), + tip, + cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim::< + storage_hub_runtime::Runtime, + >::new(), + frame_metadata_hash_extension::CheckMetadataHash::new(false), + ); + + let raw_payload = SignedPayload::from_raw( + function.clone(), + extra.clone(), + ( + (), + storage_hub_runtime::VERSION.spec_version, + storage_hub_runtime::VERSION.transaction_version, + genesis_block, + current_block_hash, + (), + (), + (), + (), + None, + ), + ); + + let caller_pub_key = Self::caller_pub_key(self.keystore.clone()); + + // Sign the payload. + let signature = raw_payload + .using_encoded(|e| self.keystore.sr25519_sign(BCSV_KEY_TYPE, &caller_pub_key, e)) + .expect("The payload is always valid and should be possible to sign; qed") + .expect("They key type and public key are valid because we just extracted them from the keystore; qed"); + + // Construct the extrinsic. + UncheckedExtrinsic::new_signed( + function.clone(), + storage_hub_runtime::Address::Id(>::into(caller_pub_key)), + polkadot_primitives::Signature::Sr25519(signature), + extra.clone(), + ) + } + + // Getting signer public key. + pub fn caller_pub_key(keystore: KeystorePtr) -> sp_core::sr25519::Public { + let caller_pub_key = keystore.sr25519_public_keys(BCSV_KEY_TYPE).pop().expect( + format!( + "There should be at least one sr25519 key in the keystore with key type '{:?}' ; qed", + BCSV_KEY_TYPE + ) + .as_str(), + ); + caller_pub_key + } + + /// Get an extrinsic from a block. + pub(crate) async fn get_extrinsic_from_block( + &self, + block_hash: H256, + extrinsic_hash: H256, + ) -> Result { + // Get the block. + let block = self + .client + .block(block_hash) + .expect("Failed to get block. This shouldn't be possible for known existing block hash; qed") + .expect("Block returned None for known existing block hash. This shouldn't be the case for a block known to have at least one transaction; qed"); + + // Get the extrinsics. + let extrinsics = block.block.extrinsics(); + + // Find the extrinsic index in the block. + let extrinsic_index = extrinsics + .iter() + .position(|e| { + let hash = Blake2Hasher::hash(&e.encode()); + hash == extrinsic_hash + }) + .expect("Extrinsic not found in block. This shouldn't be possible if we're looking into a block for which we got confirmation that the extrinsic was included; qed"); + + // Get the events from storage. + let events_in_block = get_events_at_block(&self.client, &block_hash)?; + + // Filter the events for the extrinsic. + // Each event record is composed of the `phase`, `event` and `topics` fields. + // We are interested in those events whose `phase` is equal to `ApplyExtrinsic` with the index of the extrinsic. + // For more information see: https://polkadot.js.org/docs/api/cookbook/blocks/#how-do-i-map-extrinsics-to-their-events + let events = events_in_block + .into_iter() + .filter(|ev| ev.phase == frame_system::Phase::ApplyExtrinsic(extrinsic_index as u32)) + .collect(); + + // Construct the extrinsic. + Ok(Extrinsic { + hash: extrinsic_hash, + block_hash, + events, + }) + } + + /// Unwatch an extrinsic. + pub(crate) async fn unwatch_extrinsic(&self, subscription_id: Number) -> Result { + let (result, _rx) = self + .rpc_handlers + .rpc_query(&format!( + r#"{{ + "jsonrpc": "2.0", + "method": "author_unwatchExtrinsic", + "params": [{}], + "id": {} + }}"#, + subscription_id, subscription_id + )) + .await + .expect("Sending query failed even when it is correctly formatted as JSON-RPC; qed"); + + let json: serde_json::Value = + serde_json::from_str(&result).expect("the result can only be a JSONRPC string; qed"); + let unwatch_result = json + .as_object() + .expect("JSON result is always an object; qed") + .get("result"); + + if let Some(unwatch_result) = unwatch_result { + if unwatch_result + .as_bool() + .expect("Result is always a boolean; qed") + { + debug!(target: LOG_TARGET, "Extrinsic unwatched successfully"); + } else { + return Err(anyhow::anyhow!("Failed to unwatch extrinsic")); + } + } else { + return Err(anyhow::anyhow!("Failed to unwatch extrinsic")); + } + + Ok(result) + } + + /// Check if the challenges tick is one that this provider has to submit a proof for, + /// and if so, return true. + pub(crate) fn should_provider_submit_proof( + &self, + block_hash: &H256, + provider_id: &ProviderId, + current_tick: &BlockNumber, + ) -> bool { + // Get the last tick for which the BSP submitted a proof. + let last_tick_provided = match self + .client + .runtime_api() + .get_last_tick_provider_submitted_proof(*block_hash, provider_id) + { + Ok(last_tick_provided_result) => match last_tick_provided_result { + Ok(last_tick_provided) => last_tick_provided, + Err(e) => match e { + GetLastTickProviderSubmittedProofError::ProviderNotRegistered => { + debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); + return false; + } + GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof => { + debug!(target: LOG_TARGET, "Provider [{:?}] does not have an initialised challenge cycle", provider_id); + return false; + } + GetLastTickProviderSubmittedProofError::InternalApiError => { + error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); + return false; + } + }, + }, + Err(e) => { + error!(target: LOG_TARGET, "Runtime API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); + return false; + } + }; + + // Get the challenge period for the provider. + let provider_challenge_period = match self + .client + .runtime_api() + .get_challenge_period(*block_hash, provider_id) + { + Ok(provider_challenge_period_result) => match provider_challenge_period_result { + Ok(provider_challenge_period) => provider_challenge_period, + Err(e) => match e { + GetChallengePeriodError::ProviderNotRegistered => { + debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); + return false; + } + GetChallengePeriodError::InternalApiError => { + error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting challenge period for Provider [{:?}]", provider_id); + return false; + } + }, + }, + Err(e) => { + error!(target: LOG_TARGET, "Runtime API error while getting challenge period for Provider [{:?}]: {:?}", provider_id, e); + return false; + } + }; + + // Check if the current tick is a tick this provider should submit a proof for. + let current_tick_minus_last_submission = match current_tick.checked_sub(last_tick_provided) + { + Some(tick) => tick, + None => { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Current tick is smaller than the last tick this provider submitted a proof for. This should not happen. \nThis is a bug. Please report it to the StorageHub team."); + return false; + } + }; + + (current_tick_minus_last_submission % provider_challenge_period) == 0 + } + + /// Check if there are any pending requests to update the forest root on the runtime, and process them. + /// Takes care of prioritizing requests, favouring `SubmitProofRequest` over `ConfirmStoringRequest` over `StopStoringForInsolventUserRequest`. + /// This function is called every time a new block is imported and after each request is queued. + pub(crate) fn check_pending_forest_root_writes(&mut self) { + if let Some(mut rx) = self.forest_root_write_lock.take() { + // Note: tasks that get ownership of the lock are responsible for sending a message back when done processing. + match rx.try_recv() { + // If the channel is empty, means we still need to wait for the current task to finish. + Err(TryRecvError::Empty) => { + // If we have a task writing to the runtime, we don't want to start another one. + self.forest_root_write_lock = Some(rx); + trace!(target: LOG_TARGET, "Waiting for current forest root write task to finish"); + return; + } + Ok(_) => { + trace!(target: LOG_TARGET, "Forest root write task finished, lock is released!"); + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .access_value(&OngoingProcessConfirmStoringRequestCf) + .delete(); + state_store_context + .access_value(&OngoingProcessMspRespondStorageRequestCf) + .delete(); + state_store_context + .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) + .delete(); + state_store_context.commit(); + } + Err(TryRecvError::Closed) => { + error!(target: LOG_TARGET, "Forest root write task channel closed unexpectedly. Lock is released anyway!"); + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .access_value(&OngoingProcessConfirmStoringRequestCf) + .delete(); + state_store_context + .access_value(&OngoingProcessMspRespondStorageRequestCf) + .delete(); + state_store_context + .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) + .delete(); + state_store_context.commit(); + } + } + } + + // At this point we know that the lock is released and we can start processing new requests. + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + let mut next_event_data = None; + + // If we have a submit proof request, prioritise it. + while let Some(request) = self.pending_submit_proof_requests.pop_first() { + // Check if the proof is still the next one to be submitted. + let provider_id = request.provider_id; + let next_challenge_tick = match self.get_next_challenge_tick_for_provider(&provider_id) + { + Ok(next_challenge_tick) => next_challenge_tick, + Err(e) => { + error!(target: LOG_TARGET, "Failed to get next challenge tick for provider [{:?}]: {:?}", provider_id, e); + break; + } + }; + + // This is to avoid starting a new task if the proof is not the next one to be submitted. + if next_challenge_tick == request.tick { + // If the proof is still the next one to be submitted, we can process it. + next_event_data = Some(ForestWriteLockTaskData::SubmitProofRequest( + ProcessSubmitProofRequestData { + seed: request.seed, + provider_id: request.provider_id, + tick: request.tick, + forest_challenges: request.forest_challenges, + checkpoint_challenges: request.checkpoint_challenges, + }, + )); + break; + } else { + // If the proof is not the next one to be submitted, we can remove it from the list of pending submit proof requests. + trace!(target: LOG_TARGET, "Proof for tick [{:?}] is not the next one to be submitted. Removing it from the list of pending submit proof requests.", request.tick); + self.pending_submit_proof_requests.remove(&request); + } + } + + // If we have no pending submit proof requests, we can also check for pending confirm storing requests. + if next_event_data.is_none() { + let max_batch_confirm = + <::MaxBatchConfirmStorageRequests as Get< + u32, + >>::get(); + + // Batch multiple confirm file storing taking the runtime maximum. + let mut confirm_storing_requests = Vec::new(); + for _ in 0..max_batch_confirm { + if let Some(request) = state_store_context + .pending_confirm_storing_request_deque() + .pop_front() + { + confirm_storing_requests.push(request); + } else { + break; + } + } + + // If we have at least 1 confirm storing request, send the process event. + if confirm_storing_requests.len() > 0 { + next_event_data = Some( + ProcessConfirmStoringRequestData { + confirm_storing_requests, + } + .into(), + ); + } + } + + // If we have no pending submit proof requests nor pending confirm storing requests, we can also check for pending stop storing for insolvent user requests. + if next_event_data.is_none() { + if let Some(request) = state_store_context + .pending_stop_storing_for_insolvent_user_request_deque() + .pop_front() + { + next_event_data = Some( + ProcessStopStoringForInsolventUserRequestData { who: request.user }.into(), + ); + } + } + state_store_context.commit(); + + if let Some(event_data) = next_event_data { + self.emit_forest_write_event(event_data); + } + } + + pub(crate) fn emit_forest_write_event(&mut self, data: impl Into) { + let (tx, rx) = tokio::sync::oneshot::channel(); + self.forest_root_write_lock = Some(rx); + + let data = data.into(); + + // If this is a confirm storing request or a stop storing for insolvent user request, we need to store it in the state store. + match &data { + ForestWriteLockTaskData::ConfirmStoringRequest(data) => { + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .access_value(&OngoingProcessConfirmStoringRequestCf) + .write(data); + state_store_context.commit(); + } + ForestWriteLockTaskData::StopStoringForInsolventUserRequest(data) => { + let state_store_context = self.persistent_state.open_rw_context_with_overlay(); + state_store_context + .access_value(&OngoingProcessStopStoringForInsolventUserRequestCf) + .write(data); + state_store_context.commit(); + } + _ => {} + } + + // This is an [`Arc>>`] (in this case [`oneshot::Sender<()>`]) instead of just + // T so that we can keep using the current actors event bus (emit) which requires Clone on the + // event. Clone is required because there is no constraint on the number of listeners that can + // subscribe to the event (and each is guaranteed to receive all emitted events). + let forest_root_write_tx = Arc::new(Mutex::new(Some(tx))); + match data.into() { + ForestWriteLockTaskData::SubmitProofRequest(data) => { + self.emit(ProcessSubmitProofRequest { + data, + forest_root_write_tx, + }); + } + ForestWriteLockTaskData::ConfirmStoringRequest(data) => { + self.emit(ProcessConfirmStoringRequest { + data, + forest_root_write_tx, + }); + } + ForestWriteLockTaskData::MspRespondStorageRequest(data) => { + self.emit(ProcessMspRespondStoringRequest { + data, + forest_root_write_tx, + }); + } + ForestWriteLockTaskData::StopStoringForInsolventUserRequest(data) => { + self.emit(ProcessStopStoringForInsolventUserRequest { + data, + forest_root_write_tx, + }); + } + } + } + + /// Emits a `MultipleNewChallengeSeeds` event with all the pending proof submissions for this provider. + /// This is used to catch up to the latest proof submissions that were missed due to a node restart. + /// Also, it can help to catch up to proofs in case there is a change in the BSP's stake (therefore + /// also a change in it's challenge period). + /// + /// IMPORTANT: This function takes into account whether a proof should be submitted for the current tick. + pub(crate) fn proof_submission_catch_up( + &self, + current_block_hash: &H256, + provider_id: &ProviderId, + ) { + // Get the last tick for which the BSP submitted a proof, according to the runtime right now. + let last_tick_provider_submitted_proof = match self + .client + .runtime_api() + .get_last_tick_provider_submitted_proof(*current_block_hash, provider_id) + { + Ok(last_tick_provided_result) => match last_tick_provided_result { + Ok(last_tick_provided) => last_tick_provided, + Err(e) => match e { + GetLastTickProviderSubmittedProofError::ProviderNotRegistered => { + debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); + return; + } + GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof => { + debug!(target: LOG_TARGET, "Provider [{:?}] does not have an initialised challenge cycle", provider_id); + return; + } + GetLastTickProviderSubmittedProofError::InternalApiError => { + error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); + return; + } + }, + }, + Err(e) => { + error!(target: LOG_TARGET, "Runtime API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", provider_id, e); + return; + } + }; + trace!(target: LOG_TARGET, "Last tick Provider [{:?}] submitted a proof for: {}", provider_id, last_tick_provider_submitted_proof); + + // Get the current challenge period for this provider. + let challenge_period = match self + .client + .runtime_api() + .get_challenge_period(*current_block_hash, provider_id) + { + Ok(challenge_period_result) => match challenge_period_result { + Ok(challenge_period) => challenge_period, + Err(e) => match e { + GetChallengePeriodError::ProviderNotRegistered => { + debug!(target: LOG_TARGET, "Provider [{:?}] is not registered", provider_id); + return; + } + GetChallengePeriodError::InternalApiError => { + error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting challenge period for Provider [{:?}]", provider_id); + return; + } + }, + }, + Err(e) => { + error!(target: LOG_TARGET, "Runtime API error while getting challenge period for Provider [{:?}]: {:?}", provider_id, e); + return; + } + }; + + // Get the current tick. + let current_tick = match self + .client + .runtime_api() + .get_current_tick(*current_block_hash) + { + Ok(current_tick) => current_tick, + Err(e) => { + error!(target: LOG_TARGET, "Runtime API error while getting current tick for Provider [{:?}]: {:?}", provider_id, e); + return; + } + }; + + // Advance by `challenge_period` ticks and add the seed to the list of challenge seeds. + let mut challenge_seeds = Vec::new(); + let mut next_challenge_tick = last_tick_provider_submitted_proof + challenge_period; + while next_challenge_tick <= current_tick { + // Get the seed for the challenge tick. + let seed = match self + .client + .runtime_api() + .get_challenge_seed(*current_block_hash, next_challenge_tick) + { + Ok(seed_result) => match seed_result { + Ok(seed) => seed, + Err(e) => match e { + GetChallengeSeedError::TickBeyondLastSeedStored => { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Tick [{:?}] is beyond last seed stored and this provider needs to submit a proof for it.", next_challenge_tick); + return; + } + GetChallengeSeedError::TickIsInTheFuture => { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Tick [{:?}] is in the future. This should never happen. \nThis is a bug. Please report it to the StorageHub team.", next_challenge_tick); + return; + } + GetChallengeSeedError::InternalApiError => { + error!(target: LOG_TARGET, "This should be impossible, we just checked the API error. \nInternal API error while getting challenge seed for challenge tick [{:?}]: {:?}", next_challenge_tick, e); + return; + } + }, + }, + Err(e) => { + error!(target: LOG_TARGET, "Runtime API error while getting challenges from seed for challenge tick [{:?}]: {:?}", next_challenge_tick, e); + return; + } + }; + challenge_seeds.push((next_challenge_tick, seed)); + next_challenge_tick += challenge_period; + } + + // Emit the `MultiNewChallengeSeeds` event. + if challenge_seeds.len() > 0 { + trace!(target: LOG_TARGET, "Emitting MultipleNewChallengeSeeds event for provider [{:?}] with challenge seeds: {:?}", provider_id, challenge_seeds); + self.emit(MultipleNewChallengeSeeds { + provider_id: *provider_id, + seeds: challenge_seeds, + }); + } + } + + pub(crate) fn get_next_challenge_tick_for_provider( + &self, + provider_id: &ProviderId, + ) -> Result { + // Get the current block hash. + let current_block_hash = self.client.info().best_hash; + + // Get the last tick for which the provider submitted a proof. + let last_tick_provider_submitted_proof = match self + .client + .runtime_api() + .get_last_tick_provider_submitted_proof(current_block_hash, provider_id) + { + Ok(last_tick_provided_result) => match last_tick_provided_result { + Ok(last_tick_provided) => last_tick_provided, + Err(e) => match e { + GetLastTickProviderSubmittedProofError::ProviderNotRegistered => { + return Err(anyhow!("Provider [{:?}] is not registered", provider_id)); + } + GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof => { + return Err(anyhow!( + "Provider [{:?}] does not have an initialised challenge cycle", + provider_id + )); + } + GetLastTickProviderSubmittedProofError::InternalApiError => { + return Err(anyhow!( + "Internal API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", + provider_id, e + )); + } + }, + }, + Err(e) => { + return Err(anyhow!( + "Runtime API error while getting last tick Provider [{:?}] submitted a proof for: {:?}", + provider_id, + e + )); + } + }; + + // Get the challenge period for the provider. + let challenge_period = match self + .client + .runtime_api() + .get_challenge_period(current_block_hash, provider_id) + { + Ok(challenge_period_result) => match challenge_period_result { + Ok(challenge_period) => challenge_period, + Err(e) => match e { + GetChallengePeriodError::ProviderNotRegistered => { + return Err(anyhow!("Provider [{:?}] is not registered", provider_id)); + } + GetChallengePeriodError::InternalApiError => { + return Err(anyhow!( + "Internal API error while getting challenge period for Provider [{:?}]", + provider_id + )); + } + }, + }, + Err(e) => { + return Err(anyhow!( + "Runtime API error while getting challenge period for Provider [{:?}]: {:?}", + provider_id, + e + )); + } + }; + + // Calculate the next challenge tick. + let next_challenge_tick = last_tick_provider_submitted_proof + challenge_period; + + // Check if the current tick is a tick this provider should submit a proof for. + Ok(next_challenge_tick) + } +} + +/// The output of an RPC transaction. +pub struct RpcExtrinsicOutput { + /// Hash of the extrinsic. + pub hash: H256, + /// The output string of the transaction if any. + pub result: String, + /// An async receiver if data will be returned via a callback. + pub receiver: tokio::sync::mpsc::Receiver, +} + +impl std::fmt::Debug for RpcExtrinsicOutput { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + write!( + f, + "RpcExtrinsicOutput {{ hash: {:?}, result: {:?}, receiver }}", + self.hash, self.result + ) + } +} diff --git a/client/common/src/types.rs b/client/common/src/types.rs index 943ba4541..0ba515631 100644 --- a/client/common/src/types.rs +++ b/client/common/src/types.rs @@ -1,156 +1,156 @@ -use std::fmt::Debug; - -use codec::{Decode, Encode}; -use frame_system::EventRecord; -use sc_executor::WasmExecutor; -use sc_service::TFullClient; -pub use shp_constants::{FILE_CHUNK_SIZE, FILE_SIZE_TO_CHALLENGES, H_LENGTH}; -pub use shp_file_metadata::{Chunk, ChunkId, ChunkWithId, Leaf}; -use shp_traits::CommitmentVerifier; -use sp_core::Hasher; -use sp_runtime::{traits::Block as BlockT, KeyTypeId}; -use sp_std::collections::btree_map::BTreeMap; -use sp_trie::CompactProof; -use storage_hub_runtime::{apis::RuntimeApi, opaque::Block, Runtime}; -use trie_db::TrieLayout; - -/// The hash type of trie node keys -pub type HashT = ::Hash; -pub type HasherOutT = <::Hash as Hasher>::Out; - -/// Following types are shared between the client and the runtime. -/// They are defined as generic types in the runtime and made concrete using the runtime config -/// here to be used by the node/client. -pub type FileKeyVerifier = ::KeyVerifier; -pub type FileKeyProof = ::Proof; -pub type Hash = shp_file_metadata::Hash; -pub type Fingerprint = shp_file_metadata::Fingerprint; -pub type FileMetadata = - shp_file_metadata::FileMetadata; -pub type FileKey = shp_file_metadata::FileKey; -pub type BlockNumber = frame_system::pallet_prelude::BlockNumberFor; -pub type TickNumber = pallet_file_system::types::TickNumber; -pub type StorageData = pallet_file_system::types::StorageData; -pub type FileLocation = pallet_file_system::types::FileLocation; -pub type FileKeyResponsesInput = pallet_file_system::types::FileKeyResponsesInput; -pub type MspStorageRequestResponse = pallet_file_system::types::MspStorageRequestResponse; -pub type AcceptedStorageRequestParameters = - pallet_file_system::types::AcceptedStorageRequestParameters; -pub type RejectedStorageRequestReason = pallet_file_system::types::RejectedStorageRequestReason; -pub type PeerIds = pallet_file_system::types::PeerIds; -pub type BucketId = pallet_storage_providers::types::MerklePatriciaRoot; -pub type StorageProviderId = pallet_storage_providers::types::StorageProviderId; -pub type MainStorageProviderId = pallet_storage_providers::types::ProviderId; -pub type ProviderId = pallet_proofs_dealer::types::ProviderIdFor; -pub type RandomnessOutput = pallet_proofs_dealer::types::RandomnessOutputFor; -pub type ForestLeaf = pallet_proofs_dealer::types::KeyFor; -pub type ForestRoot = pallet_proofs_dealer::types::ForestRootFor; -pub type TrieMutation = shp_traits::TrieMutation; -pub type TrieRemoveMutation = shp_traits::TrieRemoveMutation; -pub type StorageProofsMerkleTrieLayout = storage_hub_runtime::StorageProofsMerkleTrieLayout; -pub type StorageProof = pallet_proofs_dealer::types::Proof; -pub type ForestVerifierProof = pallet_proofs_dealer::types::ForestVerifierProofFor; -pub type KeyProof = pallet_proofs_dealer::types::KeyProof; -pub type KeyProofs = BTreeMap; -pub type Balance = pallet_storage_providers::types::BalanceOf; -pub type OpaqueBlock = storage_hub_runtime::opaque::Block; -pub type BlockHash = ::Hash; - -#[cfg(not(feature = "runtime-benchmarks"))] -type HostFunctions = cumulus_client_service::ParachainHostFunctions; - -#[cfg(feature = "runtime-benchmarks")] -type HostFunctions = ( - cumulus_client_service::ParachainHostFunctions, - frame_benchmarking::benchmarking::HostFunctions, -); - -pub type ParachainExecutor = WasmExecutor; -pub type ParachainClient = TFullClient; - -/// The type of key used for [`BlockchainService`]` operations. -pub const BCSV_KEY_TYPE: KeyTypeId = KeyTypeId(*b"bcsv"); - -/// Proving either the exact key or the neighbour keys of the challenged key. -#[derive(Clone, Debug)] -pub enum Proven { - Empty, - ExactKey(Leaf), - NeighbourKeys((Option>, Option>)), -} - -impl Proven { - pub fn new_exact_key(key: K, data: D) -> Self { - Proven::ExactKey(Leaf { key, data }) - } - - pub fn new_neighbour_keys( - left: Option>, - right: Option>, - ) -> Result { - match (left, right) { - (None, None) => Err("Both left and right leaves cannot be None"), - (left, right) => Ok(Proven::NeighbourKeys((left, right))), - } - } -} - -/// Proof of file key(s) in the forest trie. -#[derive(Clone, Encode, Decode, Debug)] -pub struct ForestProof { - /// The file keys that were proven. - #[codec(skip)] - pub proven: Vec, ()>>, - /// The compact proof. - pub proof: CompactProof, - /// The root hash of the trie. - pub root: HasherOutT, -} - -#[derive(Clone, Encode, Decode)] -pub struct FileProof { - /// The compact proof. - pub proof: CompactProof, - /// The root hash of the trie, also known as the fingerprint of the file. - pub fingerprint: Fingerprint, -} - -impl FileProof { - pub fn to_file_key_proof(&self, file_metadata: FileMetadata) -> FileKeyProof { - FileKeyProof::new( - file_metadata.owner.clone(), - file_metadata.bucket_id.clone(), - file_metadata.location.clone(), - file_metadata.file_size, - file_metadata.fingerprint, - self.proof.clone(), - ) - } -} - -#[derive(Clone, Eq, Hash, PartialEq, Debug)] -pub struct DownloadRequestId(u64); - -impl DownloadRequestId { - pub fn new(id: u64) -> Self { - DownloadRequestId(id) - } - - pub fn next(&self) -> Self { - let next = self.0 + 1; - DownloadRequestId(next) - } -} - -/// Type alias for the events vector. -/// -/// The events vector is a storage element in the FRAME system pallet, which stores all the events -/// that have occurred in a block. This is syntactic sugar to make the code more readable. -pub type StorageHubEventsVec = Vec< - Box< - EventRecord< - ::RuntimeEvent, - ::Hash, - >, - >, ->; +use std::fmt::Debug; + +use codec::{Decode, Encode}; +use frame_system::EventRecord; +use sc_executor::WasmExecutor; +use sc_service::TFullClient; +pub use shp_constants::{FILE_CHUNK_SIZE, FILE_SIZE_TO_CHALLENGES, H_LENGTH}; +pub use shp_file_metadata::{Chunk, ChunkId, ChunkWithId, Leaf}; +use shp_traits::CommitmentVerifier; +use sp_core::Hasher; +use sp_runtime::{traits::Block as BlockT, KeyTypeId}; +use sp_std::collections::btree_map::BTreeMap; +use sp_trie::CompactProof; +use storage_hub_runtime::{apis::RuntimeApi, opaque::Block, Runtime}; +use trie_db::TrieLayout; + +/// The hash type of trie node keys +pub type HashT = ::Hash; +pub type HasherOutT = <::Hash as Hasher>::Out; + +/// Following types are shared between the client and the runtime. +/// They are defined as generic types in the runtime and made concrete using the runtime config +/// here to be used by the node/client. +pub type FileKeyVerifier = ::KeyVerifier; +pub type FileKeyProof = ::Proof; +pub type Hash = shp_file_metadata::Hash; +pub type Fingerprint = shp_file_metadata::Fingerprint; +pub type FileMetadata = + shp_file_metadata::FileMetadata; +pub type FileKey = shp_file_metadata::FileKey; +pub type BlockNumber = frame_system::pallet_prelude::BlockNumberFor; +pub type TickNumber = pallet_file_system::types::TickNumber; +pub type StorageData = pallet_file_system::types::StorageData; +pub type FileLocation = pallet_file_system::types::FileLocation; +pub type FileKeyResponsesInput = pallet_file_system::types::FileKeyResponsesInput; +pub type MspStorageRequestResponse = pallet_file_system::types::MspStorageRequestResponse; +pub type AcceptedStorageRequestParameters = + pallet_file_system::types::AcceptedStorageRequestParameters; +pub type RejectedStorageRequestReason = pallet_file_system::types::RejectedStorageRequestReason; +pub type PeerIds = pallet_file_system::types::PeerIds; +pub type BucketId = pallet_storage_providers::types::MerklePatriciaRoot; +pub type StorageProviderId = pallet_storage_providers::types::StorageProviderId; +pub type MainStorageProviderId = pallet_storage_providers::types::ProviderId; +pub type ProviderId = pallet_proofs_dealer::types::ProviderIdFor; +pub type RandomnessOutput = pallet_proofs_dealer::types::RandomnessOutputFor; +pub type ForestLeaf = pallet_proofs_dealer::types::KeyFor; +pub type ForestRoot = pallet_proofs_dealer::types::ForestRootFor; +pub type TrieMutation = shp_traits::TrieMutation; +pub type TrieRemoveMutation = shp_traits::TrieRemoveMutation; +pub type StorageProofsMerkleTrieLayout = storage_hub_runtime::StorageProofsMerkleTrieLayout; +pub type StorageProof = pallet_proofs_dealer::types::Proof; +pub type ForestVerifierProof = pallet_proofs_dealer::types::ForestVerifierProofFor; +pub type KeyProof = pallet_proofs_dealer::types::KeyProof; +pub type KeyProofs = BTreeMap; +pub type Balance = pallet_storage_providers::types::BalanceOf; +pub type OpaqueBlock = storage_hub_runtime::opaque::Block; +pub type BlockHash = ::Hash; + +#[cfg(not(feature = "runtime-benchmarks"))] +type HostFunctions = cumulus_client_service::ParachainHostFunctions; + +#[cfg(feature = "runtime-benchmarks")] +type HostFunctions = ( + cumulus_client_service::ParachainHostFunctions, + frame_benchmarking::benchmarking::HostFunctions, +); + +pub type ParachainExecutor = WasmExecutor; +pub type ParachainClient = TFullClient; + +/// The type of key used for [`BlockchainService`]` operations. +pub const BCSV_KEY_TYPE: KeyTypeId = KeyTypeId(*b"bcsv"); + +/// Proving either the exact key or the neighbour keys of the challenged key. +#[derive(Clone, Debug)] +pub enum Proven { + Empty, + ExactKey(Leaf), + NeighbourKeys((Option>, Option>)), +} + +impl Proven { + pub fn new_exact_key(key: K, data: D) -> Self { + Proven::ExactKey(Leaf { key, data }) + } + + pub fn new_neighbour_keys( + left: Option>, + right: Option>, + ) -> Result { + match (left, right) { + (None, None) => Err("Both left and right leaves cannot be None"), + (left, right) => Ok(Proven::NeighbourKeys((left, right))), + } + } +} + +/// Proof of file key(s) in the forest trie. +#[derive(Clone, Encode, Decode, Debug)] +pub struct ForestProof { + /// The file keys that were proven. + #[codec(skip)] + pub proven: Vec, ()>>, + /// The compact proof. + pub proof: CompactProof, + /// The root hash of the trie. + pub root: HasherOutT, +} + +#[derive(Clone, Encode, Decode)] +pub struct FileProof { + /// The compact proof. + pub proof: CompactProof, + /// The root hash of the trie, also known as the fingerprint of the file. + pub fingerprint: Fingerprint, +} + +impl FileProof { + pub fn to_file_key_proof(&self, file_metadata: FileMetadata) -> FileKeyProof { + FileKeyProof::new( + file_metadata.owner.clone(), + file_metadata.bucket_id.clone(), + file_metadata.location.clone(), + file_metadata.file_size, + file_metadata.fingerprint, + self.proof.clone(), + ) + } +} + +#[derive(Clone, Eq, Hash, PartialEq, Debug)] +pub struct DownloadRequestId(u64); + +impl DownloadRequestId { + pub fn new(id: u64) -> Self { + DownloadRequestId(id) + } + + pub fn next(&self) -> Self { + let next = self.0 + 1; + DownloadRequestId(next) + } +} + +/// Type alias for the events vector. +/// +/// The events vector is a storage element in the FRAME system pallet, which stores all the events +/// that have occurred in a block. This is syntactic sugar to make the code more readable. +pub type StorageHubEventsVec = Vec< + Box< + EventRecord< + ::RuntimeEvent, + ::Hash, + >, + >, +>; diff --git a/client/indexer-service/src/handler.rs b/client/indexer-service/src/handler.rs index e49538e41..f9fc93079 100644 --- a/client/indexer-service/src/handler.rs +++ b/client/indexer-service/src/handler.rs @@ -1,458 +1,458 @@ -use diesel_async::AsyncConnection; -use futures::prelude::*; -use log::{error, info}; -use shc_common::types::StorageProviderId; -use std::sync::Arc; -use thiserror::Error; - -use sc_client_api::{BlockBackend, BlockchainEvents}; -use sp_core::H256; -use sp_runtime::traits::Header; - -use shc_actors_framework::actor::{Actor, ActorEventLoop}; -use shc_common::blockchain_utils::EventsRetrievalError; -use shc_common::{ - blockchain_utils::get_events_at_block, - types::{BlockNumber, ParachainClient}, -}; -use shc_indexer_db::{models::*, DbConnection, DbPool}; -use storage_hub_runtime::RuntimeEvent; - -pub(crate) const LOG_TARGET: &str = "indexer-service"; - -// Since the indexed data should be used directly from the database, -// we don't need to implement commands. -#[derive(Debug)] -pub enum IndexerServiceCommand {} - -// The IndexerService actor -pub struct IndexerService { - client: Arc, - db_pool: DbPool, -} - -// Implement the Actor trait for IndexerService -impl Actor for IndexerService { - type Message = IndexerServiceCommand; - type EventLoop = IndexerServiceEventLoop; - type EventBusProvider = (); // We're not using an event bus for now - - fn handle_message( - &mut self, - message: Self::Message, - ) -> impl std::future::Future + Send { - async move { - match message { - // No commands for now - } - } - } - - fn get_event_bus_provider(&self) -> &Self::EventBusProvider { - &() - } -} - -// Implement methods for IndexerService -impl IndexerService { - pub fn new(client: Arc, db_pool: DbPool) -> Self { - Self { client, db_pool } - } - - async fn handle_finality_notification( - &mut self, - notification: sc_client_api::FinalityNotification, - ) -> Result<(), HandleFinalityNotificationError> - where - Block: sp_runtime::traits::Block, - Block::Header: Header, - { - let finalized_block_hash = notification.hash; - let finalized_block_number = *notification.header.number(); - - info!(target: LOG_TARGET, "Finality notification (#{}): {}", finalized_block_number, finalized_block_hash); - - let mut db_conn = self.db_pool.get().await?; - - let service_state = ServiceState::get(&mut db_conn).await?; - - for block_number in - (service_state.last_processed_block as BlockNumber + 1)..=finalized_block_number - { - let block_hash = self - .client - .block_hash(block_number)? - .ok_or(HandleFinalityNotificationError::BlockHashNotFound)?; - self.index_block(&mut db_conn, block_number as BlockNumber, block_hash) - .await?; - } - - Ok(()) - } - - async fn index_block<'a, 'b: 'a>( - &'b self, - conn: &mut DbConnection<'a>, - block_number: BlockNumber, - block_hash: H256, - ) -> Result<(), IndexBlockError> { - info!(target: LOG_TARGET, "Indexing block #{}: {}", block_number, block_hash); - - let block_events = get_events_at_block(&self.client, &block_hash)?; - - conn.transaction::<(), IndexBlockError, _>(move |conn| { - Box::pin(async move { - ServiceState::update(conn, block_number as i64).await?; - - for ev in block_events { - self.index_event(conn, &ev.event).await?; - } - - Ok(()) - }) - }) - .await?; - - Ok(()) - } - - async fn index_event<'a, 'b: 'a>( - &'b self, - conn: &mut DbConnection<'a>, - event: &RuntimeEvent, - ) -> Result<(), diesel::result::Error> { - match event { - RuntimeEvent::BucketNfts(event) => self.index_bucket_nfts_event(conn, event).await?, - RuntimeEvent::FileSystem(event) => self.index_file_system_event(conn, event).await?, - RuntimeEvent::PaymentStreams(event) => { - self.index_payment_streams_event(conn, event).await? - } - RuntimeEvent::ProofsDealer(event) => { - self.index_proofs_dealer_event(conn, event).await? - } - RuntimeEvent::Providers(event) => self.index_providers_event(conn, event).await?, - RuntimeEvent::Randomness(event) => self.index_randomness_event(conn, event).await?, - // Runtime events that we're not interested in. - // We add them here instead of directly matching (_ => {}) - // to ensure the compiler will let us know to treat future events when added. - RuntimeEvent::System(_) => {} - RuntimeEvent::ParachainSystem(_) => {} - RuntimeEvent::Balances(_) => {} - RuntimeEvent::TransactionPayment(_) => {} - RuntimeEvent::Sudo(_) => {} - RuntimeEvent::CollatorSelection(_) => {} - RuntimeEvent::Session(_) => {} - RuntimeEvent::XcmpQueue(_) => {} - RuntimeEvent::PolkadotXcm(_) => {} - RuntimeEvent::CumulusXcm(_) => {} - RuntimeEvent::MessageQueue(_) => {} - RuntimeEvent::Nfts(_) => {} - RuntimeEvent::Parameters(_) => {} - } - - Ok(()) - } - - async fn index_bucket_nfts_event<'a, 'b: 'a>( - &'b self, - _conn: &mut DbConnection<'a>, - event: &pallet_bucket_nfts::Event, - ) -> Result<(), diesel::result::Error> { - match event { - pallet_bucket_nfts::Event::AccessShared { .. } => {} - pallet_bucket_nfts::Event::ItemReadAccessUpdated { .. } => {} - pallet_bucket_nfts::Event::ItemBurned { .. } => {} - pallet_bucket_nfts::Event::__Ignore(_, _) => {} - } - Ok(()) - } - - async fn index_file_system_event<'a, 'b: 'a>( - &'b self, - conn: &mut DbConnection<'a>, - event: &pallet_file_system::Event, - ) -> Result<(), diesel::result::Error> { - match event { - pallet_file_system::Event::NewBucket { - who, - msp_id, - bucket_id, - name, - collection_id, - private, - } => { - let msp = Msp::get_by_onchain_msp_id(conn, msp_id.to_string()).await?; - Bucket::create( - conn, - msp.id, - who.to_string(), - bucket_id.to_string(), - name.to_vec(), - collection_id.map(|id| id.to_string()), - *private, - ) - .await?; - } - pallet_file_system::Event::MoveBucketAccepted { msp_id, bucket_id } => { - let msp = Msp::get_by_onchain_msp_id(conn, msp_id.to_string()).await?; - Bucket::update_msp(conn, bucket_id.to_string(), msp.id).await?; - } - pallet_file_system::Event::BucketPrivacyUpdated { - who, - bucket_id, - collection_id, - private, - } => { - Bucket::update_privacy( - conn, - who.to_string(), - bucket_id.to_string(), - collection_id.map(|id| id.to_string()), - *private, - ) - .await?; - } - pallet_file_system::Event::BspConfirmStoppedStoring { .. } => {} - pallet_file_system::Event::BspConfirmedStoring { .. } => {} - pallet_file_system::Event::MspRespondedToStorageRequests { .. } => {} - pallet_file_system::Event::NewStorageRequest { .. } => {} - pallet_file_system::Event::MoveBucketRequested { .. } => {} - pallet_file_system::Event::NewCollectionAndAssociation { .. } => {} - pallet_file_system::Event::AcceptedBspVolunteer { .. } => {} - pallet_file_system::Event::StorageRequestFulfilled { .. } => {} - pallet_file_system::Event::StorageRequestExpired { .. } => {} - pallet_file_system::Event::StorageRequestRevoked { .. } => {} - pallet_file_system::Event::BspRequestedToStopStoring { .. } => {} - pallet_file_system::Event::PriorityChallengeForFileDeletionQueued { .. } => {} - pallet_file_system::Event::SpStopStoringInsolventUser { .. } => {} - pallet_file_system::Event::FailedToQueuePriorityChallenge { .. } => {} - pallet_file_system::Event::FileDeletionRequest { .. } => {} - pallet_file_system::Event::ProofSubmittedForPendingFileDeletionRequest { .. } => {} - pallet_file_system::Event::BspChallengeCycleInitialised { .. } => {} - pallet_file_system::Event::MoveBucketRequestExpired { .. } => {} - pallet_file_system::Event::MoveBucketRejected { .. } => {} - pallet_file_system::Event::DataServerRegisteredForMoveBucket { .. } => {} - pallet_file_system::Event::__Ignore(_, _) => {} - } - Ok(()) - } - - async fn index_payment_streams_event<'a, 'b: 'a>( - &'b self, - _conn: &mut DbConnection<'a>, - event: &pallet_payment_streams::Event, - ) -> Result<(), diesel::result::Error> { - match event { - pallet_payment_streams::Event::DynamicRatePaymentStreamCreated { .. } => {} - pallet_payment_streams::Event::DynamicRatePaymentStreamUpdated { .. } => {} - pallet_payment_streams::Event::DynamicRatePaymentStreamDeleted { .. } => {} - pallet_payment_streams::Event::FixedRatePaymentStreamCreated { .. } => {} - pallet_payment_streams::Event::FixedRatePaymentStreamUpdated { .. } => {} - pallet_payment_streams::Event::FixedRatePaymentStreamDeleted { .. } => {} - pallet_payment_streams::Event::PaymentStreamCharged { .. } => {} - pallet_payment_streams::Event::LastChargeableInfoUpdated { .. } => {} - pallet_payment_streams::Event::UserWithoutFunds { .. } => {} - pallet_payment_streams::Event::UserPaidDebts { .. } => {} - pallet_payment_streams::Event::UserSolvent { .. } => {} - pallet_payment_streams::Event::__Ignore(_, _) => {} - } - Ok(()) - } - - async fn index_proofs_dealer_event<'a, 'b: 'a>( - &'b self, - _conn: &mut DbConnection<'a>, - event: &pallet_proofs_dealer::Event, - ) -> Result<(), diesel::result::Error> { - match event { - pallet_proofs_dealer::Event::MutationsApplied { .. } => {} - pallet_proofs_dealer::Event::NewChallenge { .. } => {} - pallet_proofs_dealer::Event::ProofAccepted { .. } => {} - pallet_proofs_dealer::Event::NewChallengeSeed { .. } => {} - pallet_proofs_dealer::Event::NewCheckpointChallenge { .. } => {} - pallet_proofs_dealer::Event::SlashableProvider { .. } => {} - pallet_proofs_dealer::Event::NoRecordOfLastSubmittedProof { .. } => {} - pallet_proofs_dealer::Event::NewChallengeCycleInitialised { .. } => {} - pallet_proofs_dealer::Event::ChallengesTickerSet { .. } => {} - pallet_proofs_dealer::Event::__Ignore(_, _) => {} - } - Ok(()) - } - - async fn index_providers_event<'a, 'b: 'a>( - &'b self, - conn: &mut DbConnection<'a>, - event: &pallet_storage_providers::Event, - ) -> Result<(), diesel::result::Error> { - match event { - pallet_storage_providers::Event::BspRequestSignUpSuccess { .. } => {} - pallet_storage_providers::Event::BspSignUpSuccess { - who, - bsp_id, - multiaddresses, - capacity, - } => { - let mut sql_multiaddresses = Vec::new(); - for multiaddress in multiaddresses { - let multiaddress_str = - String::from_utf8(multiaddress.to_vec()).expect("Invalid multiaddress"); - sql_multiaddresses.push(MultiAddress::create(conn, multiaddress_str).await?); - } - - Bsp::create( - conn, - who.to_string(), - capacity.into(), - sql_multiaddresses, - bsp_id.to_string(), - ) - .await?; - } - pallet_storage_providers::Event::BspSignOffSuccess { - who, - bsp_id: _bsp_id, - } => { - Bsp::delete(conn, who.to_string()).await?; - } - pallet_storage_providers::Event::CapacityChanged { - who, - new_capacity, - provider_id, - old_capacity: _old_capacity, - next_block_when_change_allowed: _next_block_when_change_allowed, - } => match provider_id { - StorageProviderId::BackupStorageProvider(_) => { - Bsp::update_capacity(conn, who.to_string(), new_capacity.into()).await?; - } - StorageProviderId::MainStorageProvider(_) => { - Bsp::update_capacity(conn, who.to_string(), new_capacity.into()).await?; - } - }, - pallet_storage_providers::Event::SignUpRequestCanceled { .. } => {} - pallet_storage_providers::Event::MspRequestSignUpSuccess { .. } => {} - pallet_storage_providers::Event::MspSignUpSuccess { - who, - msp_id, - multiaddresses, - capacity, - value_prop, - } => { - let mut sql_multiaddresses = Vec::new(); - for multiaddress in multiaddresses { - let multiaddress_str = - String::from_utf8(multiaddress.to_vec()).expect("Invalid multiaddress"); - sql_multiaddresses.push(MultiAddress::create(conn, multiaddress_str).await?); - } - - // TODO: update value prop after properly defined in runtime - let value_prop = format!("{value_prop:?}"); - - Msp::create( - conn, - who.to_string(), - capacity.into(), - value_prop, - sql_multiaddresses, - msp_id.to_string(), - ) - .await?; - } - pallet_storage_providers::Event::MspSignOffSuccess { - who, - msp_id: _msp_id, - } => { - Msp::delete(conn, who.to_string()).await?; - } - pallet_storage_providers::Event::Slashed { .. } => {} - pallet_storage_providers::Event::__Ignore(_, _) => {} - } - Ok(()) - } - - async fn index_randomness_event<'a, 'b: 'a>( - &'b self, - _conn: &mut DbConnection<'a>, - event: &pallet_randomness::Event, - ) -> Result<(), diesel::result::Error> { - match event { - pallet_randomness::Event::NewOneEpochAgoRandomnessAvailable { .. } => {} - pallet_randomness::Event::__Ignore(_, _) => {} - } - Ok(()) - } -} - -// Define the EventLoop for IndexerService -pub struct IndexerServiceEventLoop { - receiver: sc_utils::mpsc::TracingUnboundedReceiver, - actor: IndexerService, -} - -enum MergedEventLoopMessage -where - Block: sp_runtime::traits::Block, -{ - Command(IndexerServiceCommand), - FinalityNotification(sc_client_api::FinalityNotification), -} - -// Implement ActorEventLoop for IndexerServiceEventLoop -impl ActorEventLoop for IndexerServiceEventLoop { - fn new( - actor: IndexerService, - receiver: sc_utils::mpsc::TracingUnboundedReceiver, - ) -> Self { - Self { actor, receiver } - } - - async fn run(mut self) { - info!(target: LOG_TARGET, "IndexerService starting up!"); - - let finality_notification_stream = self.actor.client.finality_notification_stream(); - - let mut merged_stream = stream::select( - self.receiver.map(MergedEventLoopMessage::Command), - finality_notification_stream.map(MergedEventLoopMessage::FinalityNotification), - ); - - while let Some(message) = merged_stream.next().await { - match message { - MergedEventLoopMessage::Command(command) => { - self.actor.handle_message(command).await; - } - MergedEventLoopMessage::FinalityNotification(notification) => { - self.actor - .handle_finality_notification(notification) - .await - .unwrap_or_else(|e| { - error!(target: LOG_TARGET, "Failed to handle finality notification: {}", e); - }); - } - } - } - - info!(target: LOG_TARGET, "IndexerService shutting down."); - } -} - -#[derive(Error, Debug)] -pub enum IndexBlockError { - #[error("Database error: {0}")] - DatabaseError(#[from] diesel::result::Error), - #[error("Failed to retrieve or decode events: {0}")] - EventsRetrievalError(#[from] EventsRetrievalError), -} - -#[derive(Error, Debug)] -pub enum HandleFinalityNotificationError { - #[error("Database error: {0}")] - DatabaseError(#[from] diesel::result::Error), - #[error("Block hash not found")] - BlockHashNotFound, - #[error("Index block error: {0}")] - IndexBlockError(#[from] IndexBlockError), - #[error("Client error: {0}")] - ClientError(#[from] sp_blockchain::Error), - #[error("Pool run error: {0}")] - PoolRunError(#[from] diesel_async::pooled_connection::bb8::RunError), -} +use diesel_async::AsyncConnection; +use futures::prelude::*; +use log::{error, info}; +use shc_common::types::StorageProviderId; +use std::sync::Arc; +use thiserror::Error; + +use sc_client_api::{BlockBackend, BlockchainEvents}; +use sp_core::H256; +use sp_runtime::traits::Header; + +use shc_actors_framework::actor::{Actor, ActorEventLoop}; +use shc_common::blockchain_utils::EventsRetrievalError; +use shc_common::{ + blockchain_utils::get_events_at_block, + types::{BlockNumber, ParachainClient}, +}; +use shc_indexer_db::{models::*, DbConnection, DbPool}; +use storage_hub_runtime::RuntimeEvent; + +pub(crate) const LOG_TARGET: &str = "indexer-service"; + +// Since the indexed data should be used directly from the database, +// we don't need to implement commands. +#[derive(Debug)] +pub enum IndexerServiceCommand {} + +// The IndexerService actor +pub struct IndexerService { + client: Arc, + db_pool: DbPool, +} + +// Implement the Actor trait for IndexerService +impl Actor for IndexerService { + type Message = IndexerServiceCommand; + type EventLoop = IndexerServiceEventLoop; + type EventBusProvider = (); // We're not using an event bus for now + + fn handle_message( + &mut self, + message: Self::Message, + ) -> impl std::future::Future + Send { + async move { + match message { + // No commands for now + } + } + } + + fn get_event_bus_provider(&self) -> &Self::EventBusProvider { + &() + } +} + +// Implement methods for IndexerService +impl IndexerService { + pub fn new(client: Arc, db_pool: DbPool) -> Self { + Self { client, db_pool } + } + + async fn handle_finality_notification( + &mut self, + notification: sc_client_api::FinalityNotification, + ) -> Result<(), HandleFinalityNotificationError> + where + Block: sp_runtime::traits::Block, + Block::Header: Header, + { + let finalized_block_hash = notification.hash; + let finalized_block_number = *notification.header.number(); + + info!(target: LOG_TARGET, "Finality notification (#{}): {}", finalized_block_number, finalized_block_hash); + + let mut db_conn = self.db_pool.get().await?; + + let service_state = ServiceState::get(&mut db_conn).await?; + + for block_number in + (service_state.last_processed_block as BlockNumber + 1)..=finalized_block_number + { + let block_hash = self + .client + .block_hash(block_number)? + .ok_or(HandleFinalityNotificationError::BlockHashNotFound)?; + self.index_block(&mut db_conn, block_number as BlockNumber, block_hash) + .await?; + } + + Ok(()) + } + + async fn index_block<'a, 'b: 'a>( + &'b self, + conn: &mut DbConnection<'a>, + block_number: BlockNumber, + block_hash: H256, + ) -> Result<(), IndexBlockError> { + info!(target: LOG_TARGET, "Indexing block #{}: {}", block_number, block_hash); + + let block_events = get_events_at_block(&self.client, &block_hash)?; + + conn.transaction::<(), IndexBlockError, _>(move |conn| { + Box::pin(async move { + ServiceState::update(conn, block_number as i64).await?; + + for ev in block_events { + self.index_event(conn, &ev.event).await?; + } + + Ok(()) + }) + }) + .await?; + + Ok(()) + } + + async fn index_event<'a, 'b: 'a>( + &'b self, + conn: &mut DbConnection<'a>, + event: &RuntimeEvent, + ) -> Result<(), diesel::result::Error> { + match event { + RuntimeEvent::BucketNfts(event) => self.index_bucket_nfts_event(conn, event).await?, + RuntimeEvent::FileSystem(event) => self.index_file_system_event(conn, event).await?, + RuntimeEvent::PaymentStreams(event) => { + self.index_payment_streams_event(conn, event).await? + } + RuntimeEvent::ProofsDealer(event) => { + self.index_proofs_dealer_event(conn, event).await? + } + RuntimeEvent::Providers(event) => self.index_providers_event(conn, event).await?, + RuntimeEvent::Randomness(event) => self.index_randomness_event(conn, event).await?, + // Runtime events that we're not interested in. + // We add them here instead of directly matching (_ => {}) + // to ensure the compiler will let us know to treat future events when added. + RuntimeEvent::System(_) => {} + RuntimeEvent::ParachainSystem(_) => {} + RuntimeEvent::Balances(_) => {} + RuntimeEvent::TransactionPayment(_) => {} + RuntimeEvent::Sudo(_) => {} + RuntimeEvent::CollatorSelection(_) => {} + RuntimeEvent::Session(_) => {} + RuntimeEvent::XcmpQueue(_) => {} + RuntimeEvent::PolkadotXcm(_) => {} + RuntimeEvent::CumulusXcm(_) => {} + RuntimeEvent::MessageQueue(_) => {} + RuntimeEvent::Nfts(_) => {} + RuntimeEvent::Parameters(_) => {} + } + + Ok(()) + } + + async fn index_bucket_nfts_event<'a, 'b: 'a>( + &'b self, + _conn: &mut DbConnection<'a>, + event: &pallet_bucket_nfts::Event, + ) -> Result<(), diesel::result::Error> { + match event { + pallet_bucket_nfts::Event::AccessShared { .. } => {} + pallet_bucket_nfts::Event::ItemReadAccessUpdated { .. } => {} + pallet_bucket_nfts::Event::ItemBurned { .. } => {} + pallet_bucket_nfts::Event::__Ignore(_, _) => {} + } + Ok(()) + } + + async fn index_file_system_event<'a, 'b: 'a>( + &'b self, + conn: &mut DbConnection<'a>, + event: &pallet_file_system::Event, + ) -> Result<(), diesel::result::Error> { + match event { + pallet_file_system::Event::NewBucket { + who, + msp_id, + bucket_id, + name, + collection_id, + private, + } => { + let msp = Msp::get_by_onchain_msp_id(conn, msp_id.to_string()).await?; + Bucket::create( + conn, + msp.id, + who.to_string(), + bucket_id.to_string(), + name.to_vec(), + collection_id.map(|id| id.to_string()), + *private, + ) + .await?; + } + pallet_file_system::Event::MoveBucketAccepted { msp_id, bucket_id } => { + let msp = Msp::get_by_onchain_msp_id(conn, msp_id.to_string()).await?; + Bucket::update_msp(conn, bucket_id.to_string(), msp.id).await?; + } + pallet_file_system::Event::BucketPrivacyUpdated { + who, + bucket_id, + collection_id, + private, + } => { + Bucket::update_privacy( + conn, + who.to_string(), + bucket_id.to_string(), + collection_id.map(|id| id.to_string()), + *private, + ) + .await?; + } + pallet_file_system::Event::BspConfirmStoppedStoring { .. } => {} + pallet_file_system::Event::BspConfirmedStoring { .. } => {} + pallet_file_system::Event::MspRespondedToStorageRequests { .. } => {} + pallet_file_system::Event::NewStorageRequest { .. } => {} + pallet_file_system::Event::MoveBucketRequested { .. } => {} + pallet_file_system::Event::NewCollectionAndAssociation { .. } => {} + pallet_file_system::Event::AcceptedBspVolunteer { .. } => {} + pallet_file_system::Event::StorageRequestFulfilled { .. } => {} + pallet_file_system::Event::StorageRequestExpired { .. } => {} + pallet_file_system::Event::StorageRequestRevoked { .. } => {} + pallet_file_system::Event::BspRequestedToStopStoring { .. } => {} + pallet_file_system::Event::PriorityChallengeForFileDeletionQueued { .. } => {} + pallet_file_system::Event::SpStopStoringInsolventUser { .. } => {} + pallet_file_system::Event::FailedToQueuePriorityChallenge { .. } => {} + pallet_file_system::Event::FileDeletionRequest { .. } => {} + pallet_file_system::Event::ProofSubmittedForPendingFileDeletionRequest { .. } => {} + pallet_file_system::Event::BspChallengeCycleInitialised { .. } => {} + pallet_file_system::Event::MoveBucketRequestExpired { .. } => {} + pallet_file_system::Event::MoveBucketRejected { .. } => {} + pallet_file_system::Event::DataServerRegisteredForMoveBucket { .. } => {} + pallet_file_system::Event::__Ignore(_, _) => {} + } + Ok(()) + } + + async fn index_payment_streams_event<'a, 'b: 'a>( + &'b self, + _conn: &mut DbConnection<'a>, + event: &pallet_payment_streams::Event, + ) -> Result<(), diesel::result::Error> { + match event { + pallet_payment_streams::Event::DynamicRatePaymentStreamCreated { .. } => {} + pallet_payment_streams::Event::DynamicRatePaymentStreamUpdated { .. } => {} + pallet_payment_streams::Event::DynamicRatePaymentStreamDeleted { .. } => {} + pallet_payment_streams::Event::FixedRatePaymentStreamCreated { .. } => {} + pallet_payment_streams::Event::FixedRatePaymentStreamUpdated { .. } => {} + pallet_payment_streams::Event::FixedRatePaymentStreamDeleted { .. } => {} + pallet_payment_streams::Event::PaymentStreamCharged { .. } => {} + pallet_payment_streams::Event::LastChargeableInfoUpdated { .. } => {} + pallet_payment_streams::Event::UserWithoutFunds { .. } => {} + pallet_payment_streams::Event::UserPaidDebts { .. } => {} + pallet_payment_streams::Event::UserSolvent { .. } => {} + pallet_payment_streams::Event::__Ignore(_, _) => {} + } + Ok(()) + } + + async fn index_proofs_dealer_event<'a, 'b: 'a>( + &'b self, + _conn: &mut DbConnection<'a>, + event: &pallet_proofs_dealer::Event, + ) -> Result<(), diesel::result::Error> { + match event { + pallet_proofs_dealer::Event::MutationsApplied { .. } => {} + pallet_proofs_dealer::Event::NewChallenge { .. } => {} + pallet_proofs_dealer::Event::ProofAccepted { .. } => {} + pallet_proofs_dealer::Event::NewChallengeSeed { .. } => {} + pallet_proofs_dealer::Event::NewCheckpointChallenge { .. } => {} + pallet_proofs_dealer::Event::SlashableProvider { .. } => {} + pallet_proofs_dealer::Event::NoRecordOfLastSubmittedProof { .. } => {} + pallet_proofs_dealer::Event::NewChallengeCycleInitialised { .. } => {} + pallet_proofs_dealer::Event::ChallengesTickerSet { .. } => {} + pallet_proofs_dealer::Event::__Ignore(_, _) => {} + } + Ok(()) + } + + async fn index_providers_event<'a, 'b: 'a>( + &'b self, + conn: &mut DbConnection<'a>, + event: &pallet_storage_providers::Event, + ) -> Result<(), diesel::result::Error> { + match event { + pallet_storage_providers::Event::BspRequestSignUpSuccess { .. } => {} + pallet_storage_providers::Event::BspSignUpSuccess { + who, + bsp_id, + multiaddresses, + capacity, + } => { + let mut sql_multiaddresses = Vec::new(); + for multiaddress in multiaddresses { + let multiaddress_str = + String::from_utf8(multiaddress.to_vec()).expect("Invalid multiaddress"); + sql_multiaddresses.push(MultiAddress::create(conn, multiaddress_str).await?); + } + + Bsp::create( + conn, + who.to_string(), + capacity.into(), + sql_multiaddresses, + bsp_id.to_string(), + ) + .await?; + } + pallet_storage_providers::Event::BspSignOffSuccess { + who, + bsp_id: _bsp_id, + } => { + Bsp::delete(conn, who.to_string()).await?; + } + pallet_storage_providers::Event::CapacityChanged { + who, + new_capacity, + provider_id, + old_capacity: _old_capacity, + next_block_when_change_allowed: _next_block_when_change_allowed, + } => match provider_id { + StorageProviderId::BackupStorageProvider(_) => { + Bsp::update_capacity(conn, who.to_string(), new_capacity.into()).await?; + } + StorageProviderId::MainStorageProvider(_) => { + Bsp::update_capacity(conn, who.to_string(), new_capacity.into()).await?; + } + }, + pallet_storage_providers::Event::SignUpRequestCanceled { .. } => {} + pallet_storage_providers::Event::MspRequestSignUpSuccess { .. } => {} + pallet_storage_providers::Event::MspSignUpSuccess { + who, + msp_id, + multiaddresses, + capacity, + value_prop, + } => { + let mut sql_multiaddresses = Vec::new(); + for multiaddress in multiaddresses { + let multiaddress_str = + String::from_utf8(multiaddress.to_vec()).expect("Invalid multiaddress"); + sql_multiaddresses.push(MultiAddress::create(conn, multiaddress_str).await?); + } + + // TODO: update value prop after properly defined in runtime + let value_prop = format!("{value_prop:?}"); + + Msp::create( + conn, + who.to_string(), + capacity.into(), + value_prop, + sql_multiaddresses, + msp_id.to_string(), + ) + .await?; + } + pallet_storage_providers::Event::MspSignOffSuccess { + who, + msp_id: _msp_id, + } => { + Msp::delete(conn, who.to_string()).await?; + } + pallet_storage_providers::Event::Slashed { .. } => {} + pallet_storage_providers::Event::__Ignore(_, _) => {} + } + Ok(()) + } + + async fn index_randomness_event<'a, 'b: 'a>( + &'b self, + _conn: &mut DbConnection<'a>, + event: &pallet_randomness::Event, + ) -> Result<(), diesel::result::Error> { + match event { + pallet_randomness::Event::NewOneEpochAgoRandomnessAvailable { .. } => {} + pallet_randomness::Event::__Ignore(_, _) => {} + } + Ok(()) + } +} + +// Define the EventLoop for IndexerService +pub struct IndexerServiceEventLoop { + receiver: sc_utils::mpsc::TracingUnboundedReceiver, + actor: IndexerService, +} + +enum MergedEventLoopMessage +where + Block: sp_runtime::traits::Block, +{ + Command(IndexerServiceCommand), + FinalityNotification(sc_client_api::FinalityNotification), +} + +// Implement ActorEventLoop for IndexerServiceEventLoop +impl ActorEventLoop for IndexerServiceEventLoop { + fn new( + actor: IndexerService, + receiver: sc_utils::mpsc::TracingUnboundedReceiver, + ) -> Self { + Self { actor, receiver } + } + + async fn run(mut self) { + info!(target: LOG_TARGET, "IndexerService starting up!"); + + let finality_notification_stream = self.actor.client.finality_notification_stream(); + + let mut merged_stream = stream::select( + self.receiver.map(MergedEventLoopMessage::Command), + finality_notification_stream.map(MergedEventLoopMessage::FinalityNotification), + ); + + while let Some(message) = merged_stream.next().await { + match message { + MergedEventLoopMessage::Command(command) => { + self.actor.handle_message(command).await; + } + MergedEventLoopMessage::FinalityNotification(notification) => { + self.actor + .handle_finality_notification(notification) + .await + .unwrap_or_else(|e| { + error!(target: LOG_TARGET, "Failed to handle finality notification: {}", e); + }); + } + } + } + + info!(target: LOG_TARGET, "IndexerService shutting down."); + } +} + +#[derive(Error, Debug)] +pub enum IndexBlockError { + #[error("Database error: {0}")] + DatabaseError(#[from] diesel::result::Error), + #[error("Failed to retrieve or decode events: {0}")] + EventsRetrievalError(#[from] EventsRetrievalError), +} + +#[derive(Error, Debug)] +pub enum HandleFinalityNotificationError { + #[error("Database error: {0}")] + DatabaseError(#[from] diesel::result::Error), + #[error("Block hash not found")] + BlockHashNotFound, + #[error("Index block error: {0}")] + IndexBlockError(#[from] IndexBlockError), + #[error("Client error: {0}")] + ClientError(#[from] sp_blockchain::Error), + #[error("Pool run error: {0}")] + PoolRunError(#[from] diesel_async::pooled_connection::bb8::RunError), +} diff --git a/docker/local-dev-bsp-compose.yml b/docker/local-dev-bsp-compose.yml index 7dfcd7b47..ccb89340c 100644 --- a/docker/local-dev-bsp-compose.yml +++ b/docker/local-dev-bsp-compose.yml @@ -1,55 +1,55 @@ -services: - sh-bsp: - image: storage-hub:local - container_name: docker-sh-bsp-1 - platform: linux/amd64 - ports: - - "9666:9944" - - "30350:30350" - volumes: - - ./dev-keystores/bsp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=bsp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--name=sh-bsp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - sh-user: - image: storage-hub:local - platform: linux/amd64 - container_name: docker-sh-user-1 - ports: - - "9888:9944" - - "30444:30444" - volumes: - - ./dev-keystores/user:/keystore:rw - - ./resource:/res:ro - command: - [ - "--dev", - "--name=sh-user", - "--provider", - "--provider-type=user", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30444", - "--rpc-cors=all", - "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] +services: + sh-bsp: + image: storage-hub:local + container_name: docker-sh-bsp-1 + platform: linux/amd64 + ports: + - "9666:9944" + - "30350:30350" + volumes: + - ./dev-keystores/bsp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=bsp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--name=sh-bsp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + sh-user: + image: storage-hub:local + platform: linux/amd64 + container_name: docker-sh-user-1 + ports: + - "9888:9944" + - "30444:30444" + volumes: + - ./dev-keystores/user:/keystore:rw + - ./resource:/res:ro + command: + [ + "--dev", + "--name=sh-user", + "--provider", + "--provider-type=user", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30444", + "--rpc-cors=all", + "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] diff --git a/docker/local-dev-bsp-rocksdb-compose.yml b/docker/local-dev-bsp-rocksdb-compose.yml index fd186cc72..630e6a57f 100644 --- a/docker/local-dev-bsp-rocksdb-compose.yml +++ b/docker/local-dev-bsp-rocksdb-compose.yml @@ -1,59 +1,59 @@ -services: - sh-bsp: - image: storage-hub:local - container_name: docker-sh-bsp-1 - platform: linux/amd64 - ports: - - "9666:9944" - - "30350:30350" - volumes: - - ./dev-keystores/bsp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=bsp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--storage-layer=rocks-db", - "--storage-path=/tmp/bsp/${BSP_IP:-default_bsp_ip}", - "--name=sh-bsp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - sh-user: - image: storage-hub:local - platform: linux/amd64 - container_name: docker-sh-user-1 - ports: - - "9888:9944" - - "30444:30444" - volumes: - - ./dev-keystores/user:/keystore:rw - - ./resource:/res:ro - command: - [ - "--dev", - "--name=sh-user", - "--provider", - "--provider-type=user", - "--storage-layer=rocks-db", - "--storage-path=/tmp/user/${BSP_IP:-default_bsp_ip}", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30444", - "--rpc-cors=all", - "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] +services: + sh-bsp: + image: storage-hub:local + container_name: docker-sh-bsp-1 + platform: linux/amd64 + ports: + - "9666:9944" + - "30350:30350" + volumes: + - ./dev-keystores/bsp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=bsp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--storage-layer=rocks-db", + "--storage-path=/tmp/bsp/${BSP_IP:-default_bsp_ip}", + "--name=sh-bsp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + sh-user: + image: storage-hub:local + platform: linux/amd64 + container_name: docker-sh-user-1 + ports: + - "9888:9944" + - "30444:30444" + volumes: + - ./dev-keystores/user:/keystore:rw + - ./resource:/res:ro + command: + [ + "--dev", + "--name=sh-user", + "--provider", + "--provider-type=user", + "--storage-layer=rocks-db", + "--storage-path=/tmp/user/${BSP_IP:-default_bsp_ip}", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30444", + "--rpc-cors=all", + "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] diff --git a/docker/local-dev-full-compose.yml b/docker/local-dev-full-compose.yml index fe32be6b6..bbb283f77 100644 --- a/docker/local-dev-full-compose.yml +++ b/docker/local-dev-full-compose.yml @@ -1,83 +1,83 @@ -services: - sh-bsp: - image: storage-hub:local - container_name: docker-sh-bsp-1 - platform: linux/amd64 - ports: - - "9666:9944" - - "30350:30350" - volumes: - - ./dev-keystores/bsp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=bsp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--name=sh-bsp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - sh-msp: - image: storage-hub:local - container_name: docker-sh-msp-1 - platform: linux/amd64 - ports: - - "9777:9944" - - "30555:30350" - volumes: - - ./dev-keystores/msp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=msp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--name=sh-msp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=${NODE_KEY}", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - sh-user: - image: storage-hub:local - platform: linux/amd64 - container_name: docker-sh-user-1 - ports: - - "9888:9944" - - "30444:30444" - volumes: - - ./dev-keystores/user:/keystore:rw - - ./resource:/res:ro - command: - [ - "--dev", - "--name=sh-user", - "--provider", - "--provider-type=user", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30444", - "--rpc-cors=all", - "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] +services: + sh-bsp: + image: storage-hub:local + container_name: docker-sh-bsp-1 + platform: linux/amd64 + ports: + - "9666:9944" + - "30350:30350" + volumes: + - ./dev-keystores/bsp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=bsp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--name=sh-bsp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + sh-msp: + image: storage-hub:local + container_name: docker-sh-msp-1 + platform: linux/amd64 + ports: + - "9777:9944" + - "30555:30350" + volumes: + - ./dev-keystores/msp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=msp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--name=sh-msp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=${NODE_KEY}", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + sh-user: + image: storage-hub:local + platform: linux/amd64 + container_name: docker-sh-user-1 + ports: + - "9888:9944" + - "30444:30444" + volumes: + - ./dev-keystores/user:/keystore:rw + - ./resource:/res:ro + command: + [ + "--dev", + "--name=sh-user", + "--provider", + "--provider-type=user", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30444", + "--rpc-cors=all", + "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] diff --git a/docker/local-dev-full-rocksdb-compose.yml b/docker/local-dev-full-rocksdb-compose.yml index da561e2f8..d73a5b919 100644 --- a/docker/local-dev-full-rocksdb-compose.yml +++ b/docker/local-dev-full-rocksdb-compose.yml @@ -1,89 +1,89 @@ -services: - sh-bsp: - image: storage-hub:local - container_name: docker-sh-bsp-1 - platform: linux/amd64 - ports: - - "9666:9944" - - "30350:30350" - volumes: - - ./dev-keystores/bsp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=bsp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--storage-layer=rocks-db", - "--storage-path=/tmp/bsp/${BSP_IP:-default_bsp_ip}", - "--name=sh-bsp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - sh-msp: - image: storage-hub:local - container_name: docker-sh-msp-1 - platform: linux/amd64 - ports: - - "9777:9944" - - "30555:30350" - volumes: - - ./dev-keystores/msp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=msp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--storage-layer=rocks-db", - "--storage-path=/tmp/msp/${BSP_IP:-default_bsp_ip}", - "--name=sh-msp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=${NODE_KEY}", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - sh-user: - image: storage-hub:local - platform: linux/amd64 - container_name: docker-sh-user-1 - ports: - - "9888:9944" - - "30444:30444" - volumes: - - ./dev-keystores/user:/keystore:rw - - ./resource:/res:ro - command: - [ - "--dev", - "--name=sh-user", - "--provider", - "--provider-type=user", - "--storage-layer=rocks-db", - "--storage-path=/tmp/user/${BSP_IP:-default_bsp_ip}", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30444", - "--rpc-cors=all", - "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] +services: + sh-bsp: + image: storage-hub:local + container_name: docker-sh-bsp-1 + platform: linux/amd64 + ports: + - "9666:9944" + - "30350:30350" + volumes: + - ./dev-keystores/bsp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=bsp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--storage-layer=rocks-db", + "--storage-path=/tmp/bsp/${BSP_IP:-default_bsp_ip}", + "--name=sh-bsp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + sh-msp: + image: storage-hub:local + container_name: docker-sh-msp-1 + platform: linux/amd64 + ports: + - "9777:9944" + - "30555:30350" + volumes: + - ./dev-keystores/msp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=msp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--storage-layer=rocks-db", + "--storage-path=/tmp/msp/${BSP_IP:-default_bsp_ip}", + "--name=sh-msp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=${NODE_KEY}", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + sh-user: + image: storage-hub:local + platform: linux/amd64 + container_name: docker-sh-user-1 + ports: + - "9888:9944" + - "30444:30444" + volumes: + - ./dev-keystores/user:/keystore:rw + - ./resource:/res:ro + command: + [ + "--dev", + "--name=sh-user", + "--provider", + "--provider-type=user", + "--storage-layer=rocks-db", + "--storage-path=/tmp/user/${BSP_IP:-default_bsp_ip}", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30444", + "--rpc-cors=all", + "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] diff --git a/docker/noisy-bsp-compose.yml b/docker/noisy-bsp-compose.yml index be32c9354..919919902 100644 --- a/docker/noisy-bsp-compose.yml +++ b/docker/noisy-bsp-compose.yml @@ -1,80 +1,80 @@ -services: - sh-bsp: - image: storage-hub:local - container_name: docker-sh-bsp-1 - platform: linux/amd64 - ports: - - "9666:9944" - volumes: - - ./dev-keystores/bsp:/keystore:rw - command: - [ - "--dev", - "--provider", - "--provider-type=bsp", - "--max-storage-capacity=4294967295", - "--jump-capacity=1073741824", - "--name=sh-bsp", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30350", - "--rpc-cors=all", - "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - networks: - storage-hub-network: - aliases: - - sh-bsp - - sh-user: - image: storage-hub:local - platform: linux/amd64 - container_name: docker-sh-user-1 - ports: - - "9888:9944" - volumes: - - ./dev-keystores/user:/keystore:rw - - ./resource:/res:ro - command: - [ - "--dev", - "--name=sh-user", - "--provider", - "--provider-type=user", - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--port=30444", - "--rpc-cors=all", - "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", - "--keystore-path=/keystore", - "--sealing=manual", - "--base-path=/data", - ] - networks: - - storage-hub-network - depends_on: - - toxiproxy - - toxiproxy: - image: shopify/toxiproxy - container_name: toxiproxy - ports: - - "8474:8474" - - "30350:30350" - volumes: - - ./toxiproxy.json:/etc/toxiproxy.json - command: -config /etc/toxiproxy.json -host=0.0.0.0 - networks: - storage-hub-network: - aliases: - - toxiproxy - -networks: - storage-hub-network: +services: + sh-bsp: + image: storage-hub:local + container_name: docker-sh-bsp-1 + platform: linux/amd64 + ports: + - "9666:9944" + volumes: + - ./dev-keystores/bsp:/keystore:rw + command: + [ + "--dev", + "--provider", + "--provider-type=bsp", + "--max-storage-capacity=4294967295", + "--jump-capacity=1073741824", + "--name=sh-bsp", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30350", + "--rpc-cors=all", + "--node-key=0x2e6e3670c96202a2d6f5a58b7ac9092c5a51e0250f324eec2111ca94f5e568be", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + networks: + storage-hub-network: + aliases: + - sh-bsp + + sh-user: + image: storage-hub:local + platform: linux/amd64 + container_name: docker-sh-user-1 + ports: + - "9888:9944" + volumes: + - ./dev-keystores/user:/keystore:rw + - ./resource:/res:ro + command: + [ + "--dev", + "--name=sh-user", + "--provider", + "--provider-type=user", + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--port=30444", + "--rpc-cors=all", + "--node-key=0x13b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + "--bootnodes=/ip4/${BSP_IP:-default_bsp_ip}/tcp/30350/p2p/${BSP_PEER_ID:-default_bsp_peer_id}", + "--keystore-path=/keystore", + "--sealing=manual", + "--base-path=/data", + ] + networks: + - storage-hub-network + depends_on: + - toxiproxy + + toxiproxy: + image: shopify/toxiproxy + container_name: toxiproxy + ports: + - "8474:8474" + - "30350:30350" + volumes: + - ./toxiproxy.json:/etc/toxiproxy.json + command: -config /etc/toxiproxy.json -host=0.0.0.0 + networks: + storage-hub-network: + aliases: + - toxiproxy + +networks: + storage-hub-network: driver: bridge \ No newline at end of file diff --git a/node/src/services/handler.rs b/node/src/services/handler.rs index ef8674ea6..18c20edb6 100644 --- a/node/src/services/handler.rs +++ b/node/src/services/handler.rs @@ -1,275 +1,275 @@ -use std::sync::Arc; -use storage_hub_runtime::StorageDataUnit; -use tokio::sync::RwLock; - -use shc_actors_framework::{ - actor::{ActorHandle, TaskSpawner}, - event_bus::{EventBusListener, EventHandler}, -}; -use shc_blockchain_service::{ - events::{ - AcceptedBspVolunteer, LastChargeableInfoUpdated, MultipleNewChallengeSeeds, - NewStorageRequest, ProcessConfirmStoringRequest, ProcessMspRespondStoringRequest, - ProcessStopStoringForInsolventUserRequest, ProcessSubmitProofRequest, SlashableProvider, - SpStopStoringInsolventUser, UserWithoutFunds, - }, - BlockchainService, -}; -use shc_file_transfer_service::{ - events::{RemoteDownloadRequest, RemoteUploadRequest}, - FileTransferService, -}; -use shc_forest_manager::traits::ForestStorageHandler; - -use crate::tasks::{ - bsp_charge_fees::BspChargeFeesTask, bsp_download_file::BspDownloadFileTask, - bsp_submit_proof::BspSubmitProofTask, bsp_upload_file::BspUploadFileTask, - msp_upload_file::MspUploadFileTask, sp_slash_provider::SlashProviderTask, - user_sends_file::UserSendsFileTask, BspForestStorageHandlerT, FileStorageT, - MspForestStorageHandlerT, -}; - -/// Configuration paramaters for Storage Providers. -#[derive(Clone)] -pub struct ProviderConfig { - /// Maximum storage capacity of the provider (bytes). - /// - /// The Storage Provider will not request to increase its storage capacity beyond this value. - pub max_storage_capacity: StorageDataUnit, - /// Jump capacity (bytes). - /// - /// Storage capacity increases in jumps of this size. - pub jump_capacity: StorageDataUnit, - /// The time in seconds to wait before retrying an extrinsic. - pub extrinsic_retry_timeout: u64, -} - -/// Represents the handler for the Storage Hub service. -pub struct StorageHubHandler -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - /// The task spawner for spawning asynchronous tasks. - pub task_spawner: TaskSpawner, - /// The actor handle for the file transfer service. - pub file_transfer: ActorHandle, - /// The actor handle for the blockchain service. - pub blockchain: ActorHandle, - /// The file storage layer which stores all files in chunks. - pub file_storage: Arc>, - /// The forest storage layer which tracks all complete files stored in the file storage layer. - pub forest_storage_handler: FSH, - /// The configuration parameters for the provider. - pub provider_config: ProviderConfig, -} - -impl Clone for StorageHubHandler -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - fn clone(&self) -> StorageHubHandler { - Self { - task_spawner: self.task_spawner.clone(), - file_transfer: self.file_transfer.clone(), - blockchain: self.blockchain.clone(), - file_storage: self.file_storage.clone(), - forest_storage_handler: self.forest_storage_handler.clone(), - provider_config: self.provider_config.clone(), - } - } -} - -impl StorageHubHandler -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - pub fn new( - task_spawner: TaskSpawner, - file_transfer: ActorHandle, - blockchain: ActorHandle, - file_storage: Arc>, - forest_storage_handler: FSH, - provider_config: ProviderConfig, - ) -> Self { - Self { - task_spawner, - file_transfer, - blockchain, - file_storage, - forest_storage_handler, - provider_config, - } - } - - pub fn start_user_tasks(&self) { - log::info!("Starting User tasks."); - - let user_sends_file_task = UserSendsFileTask::new(self.clone()); - - // Subscribing to NewStorageRequest event from the BlockchainService. - let new_storage_request_event_bus_listener: EventBusListener = - user_sends_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - new_storage_request_event_bus_listener.start(); - - let accepted_bsp_volunteer_event_bus_listener: EventBusListener = - user_sends_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - accepted_bsp_volunteer_event_bus_listener.start(); - } -} - -impl StorageHubHandler -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - pub fn start_msp_tasks(&self) { - log::info!("Starting MSP tasks"); - - // MspUploadFileTask is triggered by a NewStorageRequest event which registers the user's peer address for - // an upcoming RemoteUploadRequest events, which happens when the user connects to the MSP and submits chunks of the file, - // along with a proof of storage, which is then queued to batch accept many storage requests at once. - // Finally once the ProcessMspRespondStoringRequest event is emitted, the MSP will respond to the user with a confirmation. - let msp_upload_file_task = MspUploadFileTask::new(self.clone()); - // Subscribing to NewStorageRequest event from the BlockchainService. - let new_storage_request_event_bus_listener: EventBusListener = - msp_upload_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - new_storage_request_event_bus_listener.start(); - // Subscribing to RemoteUploadRequest event from the FileTransferService. - let remote_upload_request_event_bus_listener: EventBusListener = - msp_upload_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.file_transfer); - remote_upload_request_event_bus_listener.start(); - // Subscribing to ProcessMspRespondStoringRequest event from the BlockchainService. - let process_confirm_storing_request_event_bus_listener: EventBusListener< - ProcessMspRespondStoringRequest, - _, - > = msp_upload_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - process_confirm_storing_request_event_bus_listener.start(); - } -} - -impl StorageHubHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - pub fn start_bsp_tasks(&self) { - log::info!("Starting BSP tasks"); - - // BspUploadFileTask is triggered by a NewStorageRequest event, to which it responds by - // volunteering to store the file. Then it waits for RemoteUploadRequest events, which - // happens when the user, now aware of the BSP volunteering, submits chunks of the file, - // along with a proof of storage. - let bsp_upload_file_task = BspUploadFileTask::new(self.clone()); - // Subscribing to NewStorageRequest event from the BlockchainService. - let new_storage_request_event_bus_listener: EventBusListener = - bsp_upload_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - new_storage_request_event_bus_listener.start(); - // Subscribing to RemoteUploadRequest event from the FileTransferService. - let remote_upload_request_event_bus_listener: EventBusListener = - bsp_upload_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.file_transfer); - remote_upload_request_event_bus_listener.start(); - // Subscribing to ProcessConfirmStoringRequest event from the BlockchainService. - let process_confirm_storing_request_event_bus_listener: EventBusListener< - ProcessConfirmStoringRequest, - _, - > = bsp_upload_file_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - process_confirm_storing_request_event_bus_listener.start(); - - // The BspDownloadFileTask - let bsp_download_file_task = BspDownloadFileTask::new(self.clone()); - // Subscribing to RemoteDownloadRequest event from the FileTransferService. - let remote_download_request_event_bus_listener: EventBusListener = - bsp_download_file_task.subscribe_to(&self.task_spawner, &self.file_transfer); - remote_download_request_event_bus_listener.start(); - - // BspSubmitProofTask is triggered by a MultipleNewChallengeSeeds event emitted by the BlockchainService. - // It responds by computing challenges derived from the seeds, taking also into account - // the custom challenges in checkpoint challenge rounds and enqueuing them in BlockchainService. - // BspSubmitProofTask also listens to ProcessSubmitProofRequest events, which are emitted by the - // BlockchainService when it is time to actually submit the proof of storage. - // Additionally, it handles file deletions as a consequence of inclusion proofs in custom challenges. - let bsp_submit_proof_task = BspSubmitProofTask::new(self.clone()); - // Subscribing to MultipleNewChallengeSeeds event from the BlockchainService. - let multiple_new_challenge_seeds_event_bus_listener: EventBusListener< - MultipleNewChallengeSeeds, - _, - > = bsp_submit_proof_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - multiple_new_challenge_seeds_event_bus_listener.start(); - // Subscribing to ProcessSubmitProofRequest event from the BlockchainService. - let process_submit_proof_request_event_bus_listener: EventBusListener< - ProcessSubmitProofRequest, - _, - > = bsp_submit_proof_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - process_submit_proof_request_event_bus_listener.start(); - - // Slash your own kin or potentially commit seppuku on your own stake. - // Running this is as a BSP is very honourable and shows a great sense of justice. - let bsp_slash_provider_task = SlashProviderTask::new(self.clone()); - // Subscribing to SlashableProvider event from the BlockchainService. - let slashable_provider_event_bus_listener: EventBusListener = - bsp_slash_provider_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - slashable_provider_event_bus_listener.start(); - - // Collect debt from users after a BSP proof is accepted. - let bsp_charge_fees_task = BspChargeFeesTask::new(self.clone()); - let last_chargeable_info_updated_event_bus_listener: EventBusListener< - LastChargeableInfoUpdated, - _, - > = bsp_charge_fees_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - last_chargeable_info_updated_event_bus_listener.start(); - - // Subscribing to ProcessStopStoringForInsolventUserRequest event from the BlockchainService. - let process_stop_storing_for_insolvent_user_request_event_bus_listener: EventBusListener< - ProcessStopStoringForInsolventUserRequest, - _, - > = bsp_charge_fees_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - process_stop_storing_for_insolvent_user_request_event_bus_listener.start(); - - // Start deletion process for stored files owned by a user that has been declared as without funds and charge - // its payment stream afterwards, getting the owed tokens and deleting it. - let user_without_funds_event_bus_listener: EventBusListener = - bsp_charge_fees_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - user_without_funds_event_bus_listener.start(); - - // Continue deletion process for stored files owned by a user that has been declared as without funds. - // Once the last file has been deleted, get the owed tokens and delete the payment stream. - let sp_stop_storing_insolvent_user_event_bus_listener: EventBusListener< - SpStopStoringInsolventUser, - _, - > = bsp_charge_fees_task - .clone() - .subscribe_to(&self.task_spawner, &self.blockchain); - sp_stop_storing_insolvent_user_event_bus_listener.start(); - } -} +use std::sync::Arc; +use storage_hub_runtime::StorageDataUnit; +use tokio::sync::RwLock; + +use shc_actors_framework::{ + actor::{ActorHandle, TaskSpawner}, + event_bus::{EventBusListener, EventHandler}, +}; +use shc_blockchain_service::{ + events::{ + AcceptedBspVolunteer, LastChargeableInfoUpdated, MultipleNewChallengeSeeds, + NewStorageRequest, ProcessConfirmStoringRequest, ProcessMspRespondStoringRequest, + ProcessStopStoringForInsolventUserRequest, ProcessSubmitProofRequest, SlashableProvider, + SpStopStoringInsolventUser, UserWithoutFunds, + }, + BlockchainService, +}; +use shc_file_transfer_service::{ + events::{RemoteDownloadRequest, RemoteUploadRequest}, + FileTransferService, +}; +use shc_forest_manager::traits::ForestStorageHandler; + +use crate::tasks::{ + bsp_charge_fees::BspChargeFeesTask, bsp_download_file::BspDownloadFileTask, + bsp_submit_proof::BspSubmitProofTask, bsp_upload_file::BspUploadFileTask, + msp_upload_file::MspUploadFileTask, sp_slash_provider::SlashProviderTask, + user_sends_file::UserSendsFileTask, BspForestStorageHandlerT, FileStorageT, + MspForestStorageHandlerT, +}; + +/// Configuration paramaters for Storage Providers. +#[derive(Clone)] +pub struct ProviderConfig { + /// Maximum storage capacity of the provider (bytes). + /// + /// The Storage Provider will not request to increase its storage capacity beyond this value. + pub max_storage_capacity: StorageDataUnit, + /// Jump capacity (bytes). + /// + /// Storage capacity increases in jumps of this size. + pub jump_capacity: StorageDataUnit, + /// The time in seconds to wait before retrying an extrinsic. + pub extrinsic_retry_timeout: u64, +} + +/// Represents the handler for the Storage Hub service. +pub struct StorageHubHandler +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + /// The task spawner for spawning asynchronous tasks. + pub task_spawner: TaskSpawner, + /// The actor handle for the file transfer service. + pub file_transfer: ActorHandle, + /// The actor handle for the blockchain service. + pub blockchain: ActorHandle, + /// The file storage layer which stores all files in chunks. + pub file_storage: Arc>, + /// The forest storage layer which tracks all complete files stored in the file storage layer. + pub forest_storage_handler: FSH, + /// The configuration parameters for the provider. + pub provider_config: ProviderConfig, +} + +impl Clone for StorageHubHandler +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + fn clone(&self) -> StorageHubHandler { + Self { + task_spawner: self.task_spawner.clone(), + file_transfer: self.file_transfer.clone(), + blockchain: self.blockchain.clone(), + file_storage: self.file_storage.clone(), + forest_storage_handler: self.forest_storage_handler.clone(), + provider_config: self.provider_config.clone(), + } + } +} + +impl StorageHubHandler +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + pub fn new( + task_spawner: TaskSpawner, + file_transfer: ActorHandle, + blockchain: ActorHandle, + file_storage: Arc>, + forest_storage_handler: FSH, + provider_config: ProviderConfig, + ) -> Self { + Self { + task_spawner, + file_transfer, + blockchain, + file_storage, + forest_storage_handler, + provider_config, + } + } + + pub fn start_user_tasks(&self) { + log::info!("Starting User tasks."); + + let user_sends_file_task = UserSendsFileTask::new(self.clone()); + + // Subscribing to NewStorageRequest event from the BlockchainService. + let new_storage_request_event_bus_listener: EventBusListener = + user_sends_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + new_storage_request_event_bus_listener.start(); + + let accepted_bsp_volunteer_event_bus_listener: EventBusListener = + user_sends_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + accepted_bsp_volunteer_event_bus_listener.start(); + } +} + +impl StorageHubHandler +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + pub fn start_msp_tasks(&self) { + log::info!("Starting MSP tasks"); + + // MspUploadFileTask is triggered by a NewStorageRequest event which registers the user's peer address for + // an upcoming RemoteUploadRequest events, which happens when the user connects to the MSP and submits chunks of the file, + // along with a proof of storage, which is then queued to batch accept many storage requests at once. + // Finally once the ProcessMspRespondStoringRequest event is emitted, the MSP will respond to the user with a confirmation. + let msp_upload_file_task = MspUploadFileTask::new(self.clone()); + // Subscribing to NewStorageRequest event from the BlockchainService. + let new_storage_request_event_bus_listener: EventBusListener = + msp_upload_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + new_storage_request_event_bus_listener.start(); + // Subscribing to RemoteUploadRequest event from the FileTransferService. + let remote_upload_request_event_bus_listener: EventBusListener = + msp_upload_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.file_transfer); + remote_upload_request_event_bus_listener.start(); + // Subscribing to ProcessMspRespondStoringRequest event from the BlockchainService. + let process_confirm_storing_request_event_bus_listener: EventBusListener< + ProcessMspRespondStoringRequest, + _, + > = msp_upload_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + process_confirm_storing_request_event_bus_listener.start(); + } +} + +impl StorageHubHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + pub fn start_bsp_tasks(&self) { + log::info!("Starting BSP tasks"); + + // BspUploadFileTask is triggered by a NewStorageRequest event, to which it responds by + // volunteering to store the file. Then it waits for RemoteUploadRequest events, which + // happens when the user, now aware of the BSP volunteering, submits chunks of the file, + // along with a proof of storage. + let bsp_upload_file_task = BspUploadFileTask::new(self.clone()); + // Subscribing to NewStorageRequest event from the BlockchainService. + let new_storage_request_event_bus_listener: EventBusListener = + bsp_upload_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + new_storage_request_event_bus_listener.start(); + // Subscribing to RemoteUploadRequest event from the FileTransferService. + let remote_upload_request_event_bus_listener: EventBusListener = + bsp_upload_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.file_transfer); + remote_upload_request_event_bus_listener.start(); + // Subscribing to ProcessConfirmStoringRequest event from the BlockchainService. + let process_confirm_storing_request_event_bus_listener: EventBusListener< + ProcessConfirmStoringRequest, + _, + > = bsp_upload_file_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + process_confirm_storing_request_event_bus_listener.start(); + + // The BspDownloadFileTask + let bsp_download_file_task = BspDownloadFileTask::new(self.clone()); + // Subscribing to RemoteDownloadRequest event from the FileTransferService. + let remote_download_request_event_bus_listener: EventBusListener = + bsp_download_file_task.subscribe_to(&self.task_spawner, &self.file_transfer); + remote_download_request_event_bus_listener.start(); + + // BspSubmitProofTask is triggered by a MultipleNewChallengeSeeds event emitted by the BlockchainService. + // It responds by computing challenges derived from the seeds, taking also into account + // the custom challenges in checkpoint challenge rounds and enqueuing them in BlockchainService. + // BspSubmitProofTask also listens to ProcessSubmitProofRequest events, which are emitted by the + // BlockchainService when it is time to actually submit the proof of storage. + // Additionally, it handles file deletions as a consequence of inclusion proofs in custom challenges. + let bsp_submit_proof_task = BspSubmitProofTask::new(self.clone()); + // Subscribing to MultipleNewChallengeSeeds event from the BlockchainService. + let multiple_new_challenge_seeds_event_bus_listener: EventBusListener< + MultipleNewChallengeSeeds, + _, + > = bsp_submit_proof_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + multiple_new_challenge_seeds_event_bus_listener.start(); + // Subscribing to ProcessSubmitProofRequest event from the BlockchainService. + let process_submit_proof_request_event_bus_listener: EventBusListener< + ProcessSubmitProofRequest, + _, + > = bsp_submit_proof_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + process_submit_proof_request_event_bus_listener.start(); + + // Slash your own kin or potentially commit seppuku on your own stake. + // Running this is as a BSP is very honourable and shows a great sense of justice. + let bsp_slash_provider_task = SlashProviderTask::new(self.clone()); + // Subscribing to SlashableProvider event from the BlockchainService. + let slashable_provider_event_bus_listener: EventBusListener = + bsp_slash_provider_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + slashable_provider_event_bus_listener.start(); + + // Collect debt from users after a BSP proof is accepted. + let bsp_charge_fees_task = BspChargeFeesTask::new(self.clone()); + let last_chargeable_info_updated_event_bus_listener: EventBusListener< + LastChargeableInfoUpdated, + _, + > = bsp_charge_fees_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + last_chargeable_info_updated_event_bus_listener.start(); + + // Subscribing to ProcessStopStoringForInsolventUserRequest event from the BlockchainService. + let process_stop_storing_for_insolvent_user_request_event_bus_listener: EventBusListener< + ProcessStopStoringForInsolventUserRequest, + _, + > = bsp_charge_fees_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + process_stop_storing_for_insolvent_user_request_event_bus_listener.start(); + + // Start deletion process for stored files owned by a user that has been declared as without funds and charge + // its payment stream afterwards, getting the owed tokens and deleting it. + let user_without_funds_event_bus_listener: EventBusListener = + bsp_charge_fees_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + user_without_funds_event_bus_listener.start(); + + // Continue deletion process for stored files owned by a user that has been declared as without funds. + // Once the last file has been deleted, get the owed tokens and delete the payment stream. + let sp_stop_storing_insolvent_user_event_bus_listener: EventBusListener< + SpStopStoringInsolventUser, + _, + > = bsp_charge_fees_task + .clone() + .subscribe_to(&self.task_spawner, &self.blockchain); + sp_stop_storing_insolvent_user_event_bus_listener.start(); + } +} diff --git a/node/src/tasks/bsp_submit_proof.rs b/node/src/tasks/bsp_submit_proof.rs index 87ea650f2..430874dab 100644 --- a/node/src/tasks/bsp_submit_proof.rs +++ b/node/src/tasks/bsp_submit_proof.rs @@ -1,605 +1,605 @@ -use std::{future::Future, pin::Pin, sync::Arc, time::Duration}; - -use anyhow::anyhow; -use sc_tracing::tracing::*; -use shp_file_metadata::ChunkId; -use sp_core::H256; - -use shc_actors_framework::{actor::ActorHandle, event_bus::EventHandler}; -use shc_blockchain_service::{ - commands::BlockchainServiceInterface, - events::{ - FinalisedTrieRemoveMutationsApplied, MultipleNewChallengeSeeds, ProcessSubmitProofRequest, - }, - types::{RetryStrategy, SubmitProofRequest}, - BlockchainService, -}; -use shc_common::types::{ - BlockNumber, FileKey, KeyProof, KeyProofs, Proven, ProviderId, RandomnessOutput, StorageProof, - TrieRemoveMutation, -}; -use shc_forest_manager::traits::ForestStorage; - -use crate::services::{forest_storage::NoKey, handler::StorageHubHandler}; -use crate::tasks::{BspForestStorageHandlerT, FileStorageT}; - -const LOG_TARGET: &str = "bsp-submit-proof-task"; -const MAX_PROOF_SUBMISSION_ATTEMPTS: u32 = 3; - -/// BSP Submit Proof Task: Handles the submission of proof for BSP (Backup Storage Provider) to the runtime. -/// -/// The flow includes the following steps: -/// - **MultipleNewChallengeSeeds Event:** -/// - Triggered by the on-chain generation of a new challenge seed. -/// - For each seed: -/// - Derives forest challenges from the seed. -/// - Checks for any checkpoint challenges and adds them to the forest challenges. -/// - Queues the challenges for submission to the runtime, to be processed when the Forest write lock is released. -/// -/// - **ProcessSubmitProofRequest Event:** -/// - Triggered when the Blockchain Service detects that the Forest write lock has been released. -/// - Generates proofs for the queued challenges derived from the seed in the [`MultipleNewChallengeSeeds`] event. -/// - Constructs key proofs for each file key involved in the challenges. -/// - Submits the proofs to the runtime, with up to [`MAX_PROOF_SUBMISSION_ATTEMPTS`] retries on failure. -/// - Applies any necessary mutations to the Forest Storage (but not the File Storage). -/// - Verifies that the new Forest root matches the one recorded on-chain to ensure consistency. -/// -/// - **FinalisedTrieRemoveMutationsApplied Event:** -/// - Triggered when mutations applied to the Merkle Trie have been finalized, indicating that certain keys should be removed. -/// - Iterates over each file key that was part of the finalised mutations. -/// - Checks if the file key is still present in the Forest Storage: -/// - If the key is still present, logs a warning, as this may indicate that the key was re-added after deletion. -/// - If the key is absent from the Forest Storage, safely removes the corresponding file from the File Storage. -/// - Ensures that no residual file keys remain in the File Storage when they should have been deleted. -pub struct BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - storage_hub_handler: StorageHubHandler, -} - -impl Clone for BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - fn clone(&self) -> BspSubmitProofTask { - Self { - storage_hub_handler: self.storage_hub_handler.clone(), - } - } -} - -impl BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - storage_hub_handler, - } - } -} - -/// Handles the `MultipleNewChallengeSeeds` event. -/// -/// This event is triggered when catching up to proof submissions, and there are multiple new challenge seeds -/// that have to be responded in order. It queues the proof submissions for the given seeds. -/// The task performs the following actions for each seed: -/// - Derives forest challenges from the seed. -/// - Checks for checkpoint challenges and adds them to the forest challenges. -/// - Queues the challenges for submission to the runtime, for when the Forest write lock is released. -impl EventHandler for BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: MultipleNewChallengeSeeds) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Initiating BSP multiple proof submissions for BSP ID: {:?}, with seeds: {:?}", - event.provider_id, - event.seeds - ); - - for seed in event.seeds { - let provider_id = event.provider_id; - let tick = seed.0; - let seed = seed.1; - self.queue_submit_proof_request(provider_id, tick, seed) - .await?; - } - - Ok(()) - } -} - -/// Handles the `ProcessSubmitProofRequest` event. -/// -/// This event is triggered when the Blockchain Service realises that the Forest write lock has been released, -/// giving this task the opportunity to generate proofs and submit them to the runtime. -/// -/// This task performs the following actions: -/// - Generates proofs for the challenges. -/// - Constructs key proofs and submits the proof to the runtime. -/// - Retries up to [`MAX_PROOF_SUBMISSION_ATTEMPTS`] times if the submission fails. -/// - Applies any necessary mutations to the Forest Storage (not the File Storage). -/// - Ensures the new Forest root matches the one on-chain. -impl EventHandler for BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: ProcessSubmitProofRequest) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Processing SubmitProofRequest {:?}", - event.data - ); - - // Check if this proof is the next one to be submitted. - // This is, for example, in case that this provider is trying to submit a proof for a tick that is not the next one to be submitted. - // Exiting early in this case is important so that the provider doesn't get stuck trying to submit an outdated proof. - Self::check_if_proof_is_outdated(&self.storage_hub_handler.blockchain, &event).await?; - - let forest_root_write_tx = match event.forest_root_write_tx.lock().await.take() { - Some(tx) => tx, - None => { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken. This is a critical bug. Please report it to the StorageHub team."); - return Err(anyhow!( - "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken!" - )); - } - }; - - let proven_file_keys = { - let fs = self - .storage_hub_handler - .forest_storage_handler - .get(&NoKey) - .await - .ok_or_else(|| anyhow!("Failed to get forest storage."))?; - - let p = fs - .read() - .await - .generate_proof(event.data.forest_challenges.clone()) - .map_err(|e| anyhow!("Failed to generate forest proof: {:?}", e))?; - - p - }; - - // Get the keys that were proven. - let mut proven_keys = Vec::new(); - for key in proven_file_keys.proven { - match key { - Proven::ExactKey(leaf) => proven_keys.push(leaf.key), - Proven::NeighbourKeys((left, right)) => match (left, right) { - (Some(left), Some(right)) => { - proven_keys.push(left.key); - proven_keys.push(right.key); - } - (Some(left), None) => proven_keys.push(left.key), - (None, Some(right)) => proven_keys.push(right.key), - (None, None) => { - error!(target: LOG_TARGET, "Both left and right leaves in forest proof are None. This should not be possible."); - } - }, - Proven::Empty => { - error!(target: LOG_TARGET, "Forest proof generated with empty forest. This should not be possible, as this provider shouldn't have been challenged with an empty forest."); - } - } - } - - // Construct key challenges and generate key proofs for them. - let mut key_proofs = KeyProofs::new(); - for file_key in &proven_keys { - // Generate the key proof for each file key. - let key_proof = self - .generate_key_proof(*file_key, event.data.seed, event.data.provider_id) - .await?; - - key_proofs.insert(*file_key, key_proof); - } - - // Construct full proof. - let proof = StorageProof { - forest_proof: proven_file_keys.proof, - key_proofs, - }; - - // Submit proof to the runtime. - // Provider is `None` since we're submitting with the account linked to the BSP. - let call = storage_hub_runtime::RuntimeCall::ProofsDealer( - pallet_proofs_dealer::Call::submit_proof { - proof, - provider: None, - }, - ); - - // We consider that the maximum tip we're willing to pay for the submission of the proof is - // equal to the amount that this BSP would be slashed for, if the proof cannot be submitted. - let max_tip = self - .storage_hub_handler - .blockchain - .query_slash_amount_per_max_file_size() - .await? - .saturating_mul(event.data.forest_challenges.len() as u128) - .saturating_mul(2u32.into()); - - let cloned_blockchain = Arc::new(self.storage_hub_handler.blockchain.clone()); - let cloned_event = Arc::new(event.clone()); - - let should_retry = move || { - let cloned_blockchain = Arc::clone(&cloned_blockchain); - let cloned_event = Arc::clone(&cloned_event); - - Box::pin(async move { - Self::check_if_proof_is_outdated(&cloned_blockchain, &cloned_event) - .await - .is_ok() - }) as Pin + Send>> - }; - - // Attempt to submit the extrinsic with retries and tip increase. - self.storage_hub_handler - .blockchain - .submit_extrinsic_with_retry( - call, - RetryStrategy::default() - .with_max_retries(MAX_PROOF_SUBMISSION_ATTEMPTS) - .with_max_tip(max_tip as f64) - .with_timeout(Duration::from_secs(self.storage_hub_handler.provider_config.extrinsic_retry_timeout)) - .with_should_retry(Some(Box::new(should_retry))), - ) - .await - .map_err(|e| { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to submit proof after {} attempts: {}", MAX_PROOF_SUBMISSION_ATTEMPTS, e); - anyhow!( - "Failed to submit proof after {} attempts", - MAX_PROOF_SUBMISSION_ATTEMPTS - ) - })?; - - trace!(target: LOG_TARGET, "Proof submitted successfully"); - - // Apply mutations, if any. - let mut mutations_applied = false; - for (file_key, maybe_mutation) in &event.data.checkpoint_challenges { - if proven_keys.contains(file_key) { - // If the file key is proven, it means that this provider had an exact match for a checkpoint challenge. - trace!(target: LOG_TARGET, "Checkpoint challenge proven with exact match for file key: {:?}", file_key); - - if let Some(mutation) = maybe_mutation { - // If the mutation (which is a remove mutation) is Some and the file key was proven exactly, - // then the mutation needs to be applied (i.e. the file key is removed from the Forest). - trace!(target: LOG_TARGET, "Applying mutation: {:?}", mutation); - - // At this point, we only remove the file and its metadata from the Forest of this BSP. - // This is because if in a future block built on top of this one, the BSP needs to provide - // a proof, it will be against the Forest root with this change applied. - // We will remove the file from the File Storage only after finality is reached. - // This gives us the opportunity to put the file back in the Forest if this block is re-orged. - self.remove_file_from_forest(file_key).await?; - mutations_applied = true; - } - } - } - - if mutations_applied { - trace!(target: LOG_TARGET, "Mutations applied successfully"); - - // Check that the new Forest root matches the one on-chain. - self.check_provider_root(event.data.provider_id).await?; - } - - // Release the forest root write "lock". - let forest_root_write_result = forest_root_write_tx.send(()); - if forest_root_write_result.is_err() { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock. This is a critical bug. Please report it to the StorageHub team."); - return Err(anyhow!( - "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock." - )); - } - - Ok(()) - } -} - -/// Handles the `FinalisedTrieRemoveMutationsApplied` event. -/// -/// This event is triggered when mutations applied to the Forest of this BSP have been finalised, -/// signalling that certain keys (representing files) should be removed from the File Storage if they are -/// not present in the Forest Storage. If the key is still present in the Forest Storage, it sends out -/// a warning, since it could indicate that the key has been re-added after being deleted. -/// -/// This task performs the following actions: -/// - Iterates over each removed file key. -/// - Checks if the file key is present in the Forest Storage. -/// - If the key is still present, it logs a warning, -/// since this could indicate that the key has been re-added after being deleted. -/// - If the key is not present in the Forest Storage, it safely removes the key from the File Storage. -impl EventHandler for BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event( - &mut self, - event: FinalisedTrieRemoveMutationsApplied, - ) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Processing finalised mutations applied for provider [{:?}] with mutations: {:?}", - event.provider_id, - event.mutations - ); - - // For each mutation... - for mutation in event.mutations { - let file_key = FileKey::from(mutation.0); - - // Check that the file_key is not in the Forest. - let read_fs = self - .storage_hub_handler - .forest_storage_handler - .get(&NoKey) - .await - .ok_or_else(|| anyhow!("Failed to get forest storage."))?; - if read_fs.read().await.contains_file_key(&file_key.into())? { - warn!( - target: LOG_TARGET, - "TrieRemoveMutation applied and finalised for file key {:?}, but file key is still in Forest. This can only happen if the same file key was added again after deleted by the user.\n Mutation: {:?}", - file_key, - mutation - ); - } else { - // If file key is not in Forest, we can now safely remove it from the File Storage. - self.remove_file_from_file_storage(&file_key.into()).await?; - } - } - - Ok(()) - } -} - -impl BspSubmitProofTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn queue_submit_proof_request( - &self, - provider_id: ProviderId, - tick: BlockNumber, - seed: RandomnessOutput, - ) -> anyhow::Result<()> { - // Derive forest challenges from seed. - let mut forest_challenges = self - .derive_forest_challenges_from_seed(seed, provider_id) - .await?; - trace!(target: LOG_TARGET, "Forest challenges to respond to: {:?}", forest_challenges); - - // Check if there are checkpoint challenges since last tick this provider submitted a proof for. - // If so, this will add them to the forest challenges. - let checkpoint_challenges = self - .add_checkpoint_challenges_to_forest_challenges(provider_id, &mut forest_challenges) - .await?; - trace!(target: LOG_TARGET, "Checkpoint challenges to respond to: {:?}", checkpoint_challenges); - - self.storage_hub_handler - .blockchain - .queue_submit_proof_request(SubmitProofRequest::new( - provider_id, - tick, - seed, - forest_challenges, - checkpoint_challenges, - )) - .await?; - - Ok(()) - } - - async fn derive_forest_challenges_from_seed( - &self, - seed: RandomnessOutput, - provider_id: ProviderId, - ) -> anyhow::Result> { - Ok(self - .storage_hub_handler - .blockchain - .query_forest_challenges_from_seed(seed, provider_id) - .await?) - } - - async fn add_checkpoint_challenges_to_forest_challenges( - &self, - provider_id: ProviderId, - forest_challenges: &mut Vec, - ) -> anyhow::Result)>> { - let last_tick_provided_submitted_proof = self - .storage_hub_handler - .blockchain - .query_last_tick_provider_submitted_proof(provider_id) - .await - .map_err(|e| { - anyhow!( - "Failed to query last tick provider submitted proof: {:?}", - e - ) - })?; - let last_checkpoint_tick = self - .storage_hub_handler - .blockchain - .query_last_checkpoint_challenge_tick() - .await?; - - // If there were checkpoint challenges since the last tick this provider submitted a proof for, - // get the checkpoint challenges. - if last_tick_provided_submitted_proof <= last_checkpoint_tick { - let checkpoint_challenges = self - .storage_hub_handler - .blockchain - .query_last_checkpoint_challenges(last_checkpoint_tick) - .await - .map_err(|e| anyhow!("Failed to query last checkpoint challenges: {:?}", e))?; - - // Add the checkpoint challenges to the forest challenges. - forest_challenges.extend(checkpoint_challenges.iter().map(|(key, _)| *key)); - - // Return the checkpoint challenges. - Ok(checkpoint_challenges) - } else { - // Else, return an empty checkpoint challenges vector. - Ok(Vec::new()) - } - } - - async fn check_if_proof_is_outdated( - blockchain: &ActorHandle, - event: &ProcessSubmitProofRequest, - ) -> anyhow::Result<()> { - // Get the next challenge tick for this provider. - let next_challenge_tick = blockchain - .get_next_challenge_tick_for_provider(event.data.provider_id) - .await?; - - if next_challenge_tick != event.data.tick { - warn!(target: LOG_TARGET, "The proof for tick [{:?}] is not the next one to be submitted. Next challenge tick is [{:?}]", event.data.tick, next_challenge_tick); - return Err(anyhow!( - "The proof for tick [{:?}] is not the next one to be submitted.", - event.data.tick, - )); - } - - Ok(()) - } - - async fn generate_key_proof( - &self, - file_key: H256, - seed: RandomnessOutput, - provider_id: ProviderId, - ) -> anyhow::Result { - // Get the metadata for the file. - let read_file_storage = self.storage_hub_handler.file_storage.read().await; - let metadata = read_file_storage - .get_metadata(&file_key) - .map_err(|e| anyhow!("Error retrieving file metadata: {:?}", e))? - .ok_or(anyhow!("File metadata not found!"))?; - // Release the file storage read lock as soon as possible. - drop(read_file_storage); - - // Calculate the number of challenges for this file. - let challenge_count = metadata.chunks_to_check(); - - // Generate the challenges for this file. - let file_key_challenges = self - .storage_hub_handler - .blockchain - .query_challenges_from_seed(seed, provider_id, challenge_count) - .await?; - - // Convert the challenges to chunk IDs. - let chunks_count = metadata.chunks_count(); - let chunks_to_prove = file_key_challenges - .iter() - .map(|challenge| ChunkId::from_challenge(challenge.as_ref(), chunks_count)) - .collect::>(); - - // Construct file key proofs for the challenges. - let read_file_storage = self.storage_hub_handler.file_storage.read().await; - let file_key_proof = read_file_storage - .generate_proof(&file_key, &chunks_to_prove) - .map_err(|e| anyhow!("File is not in storage, or proof does not exist: {:?}", e))?; - // Release the file storage read lock as soon as possible. - drop(read_file_storage); - - // Return the key proof. - Ok(KeyProof { - proof: file_key_proof, - challenge_count, - }) - } - - async fn remove_file_from_forest(&self, file_key: &H256) -> anyhow::Result<()> { - // Remove the file key from the Forest. - // Check that the new Forest root matches the one on-chain. - { - let fs = self - .storage_hub_handler - .forest_storage_handler - .get(&NoKey) - .await - .ok_or_else(|| anyhow!("Failed to get forest storage."))?; - - fs.write().await.delete_file_key(file_key).map_err(|e| { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to apply mutation to Forest storage. This may result in a mismatch between the Forest root on-chain and in this node. \nThis is a critical bug. Please report it to the StorageHub team. \nError: {:?}", e); - anyhow!( - "Failed to remove file key from Forest storage: {:?}", - e - ) - })?; - }; - - Ok(()) - } - - async fn remove_file_from_file_storage(&self, file_key: &H256) -> anyhow::Result<()> { - // Remove the file from the File Storage. - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - write_file_storage.delete_file(file_key).map_err(|e| { - error!(target: LOG_TARGET, "Failed to remove file from File Storage after it was removed from the Forest. \nError: {:?}", e); - anyhow!( - "Failed to delete file from File Storage after it was removed from the Forest: {:?}", - e - ) - })?; - // Release the file storage write lock. - drop(write_file_storage); - - Ok(()) - } - - async fn check_provider_root(&self, provider_id: ProviderId) -> anyhow::Result<()> { - // Get root for this provider according to the runtime. - let onchain_root = self - .storage_hub_handler - .blockchain - .query_provider_forest_root(provider_id) - .await - .map_err(|e| { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to query provider root from runtime after successfully submitting proof. This may result in a mismatch between the Forest root on-chain and in this node. \nThis is a critical bug. Please report it to the StorageHub team. \nError: {:?}", e); - anyhow!( - "Failed to query provider root from runtime after successfully submitting proof: {:?}", - e - ) - })?; - - trace!(target: LOG_TARGET, "Provider root according to runtime: {:?}", onchain_root); - - // Check that the new Forest root matches the one on-chain. - let fs = self - .storage_hub_handler - .forest_storage_handler - .get(&NoKey) - .await - .ok_or_else(|| anyhow!("Failed to get forest storage."))?; - - let root = { fs.read().await.root() }; - - trace!(target: LOG_TARGET, "Provider root according to Forest Storage: {:?}", root); - - if root != onchain_root { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ Applying mutations yielded different root than the one on-chain. This means that there is a mismatch between the Forest root on-chain and in this node. \nThis is a critical bug. Please report it to the StorageHub team."); - return Err(anyhow!( - "Applying mutations yielded different root than the one on-chain." - )); - } - - Ok(()) - } -} +use std::{future::Future, pin::Pin, sync::Arc, time::Duration}; + +use anyhow::anyhow; +use sc_tracing::tracing::*; +use shp_file_metadata::ChunkId; +use sp_core::H256; + +use shc_actors_framework::{actor::ActorHandle, event_bus::EventHandler}; +use shc_blockchain_service::{ + commands::BlockchainServiceInterface, + events::{ + FinalisedTrieRemoveMutationsApplied, MultipleNewChallengeSeeds, ProcessSubmitProofRequest, + }, + types::{RetryStrategy, SubmitProofRequest}, + BlockchainService, +}; +use shc_common::types::{ + BlockNumber, FileKey, KeyProof, KeyProofs, Proven, ProviderId, RandomnessOutput, StorageProof, + TrieRemoveMutation, +}; +use shc_forest_manager::traits::ForestStorage; + +use crate::services::{forest_storage::NoKey, handler::StorageHubHandler}; +use crate::tasks::{BspForestStorageHandlerT, FileStorageT}; + +const LOG_TARGET: &str = "bsp-submit-proof-task"; +const MAX_PROOF_SUBMISSION_ATTEMPTS: u32 = 3; + +/// BSP Submit Proof Task: Handles the submission of proof for BSP (Backup Storage Provider) to the runtime. +/// +/// The flow includes the following steps: +/// - **MultipleNewChallengeSeeds Event:** +/// - Triggered by the on-chain generation of a new challenge seed. +/// - For each seed: +/// - Derives forest challenges from the seed. +/// - Checks for any checkpoint challenges and adds them to the forest challenges. +/// - Queues the challenges for submission to the runtime, to be processed when the Forest write lock is released. +/// +/// - **ProcessSubmitProofRequest Event:** +/// - Triggered when the Blockchain Service detects that the Forest write lock has been released. +/// - Generates proofs for the queued challenges derived from the seed in the [`MultipleNewChallengeSeeds`] event. +/// - Constructs key proofs for each file key involved in the challenges. +/// - Submits the proofs to the runtime, with up to [`MAX_PROOF_SUBMISSION_ATTEMPTS`] retries on failure. +/// - Applies any necessary mutations to the Forest Storage (but not the File Storage). +/// - Verifies that the new Forest root matches the one recorded on-chain to ensure consistency. +/// +/// - **FinalisedTrieRemoveMutationsApplied Event:** +/// - Triggered when mutations applied to the Merkle Trie have been finalized, indicating that certain keys should be removed. +/// - Iterates over each file key that was part of the finalised mutations. +/// - Checks if the file key is still present in the Forest Storage: +/// - If the key is still present, logs a warning, as this may indicate that the key was re-added after deletion. +/// - If the key is absent from the Forest Storage, safely removes the corresponding file from the File Storage. +/// - Ensures that no residual file keys remain in the File Storage when they should have been deleted. +pub struct BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + storage_hub_handler: StorageHubHandler, +} + +impl Clone for BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + fn clone(&self) -> BspSubmitProofTask { + Self { + storage_hub_handler: self.storage_hub_handler.clone(), + } + } +} + +impl BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + storage_hub_handler, + } + } +} + +/// Handles the `MultipleNewChallengeSeeds` event. +/// +/// This event is triggered when catching up to proof submissions, and there are multiple new challenge seeds +/// that have to be responded in order. It queues the proof submissions for the given seeds. +/// The task performs the following actions for each seed: +/// - Derives forest challenges from the seed. +/// - Checks for checkpoint challenges and adds them to the forest challenges. +/// - Queues the challenges for submission to the runtime, for when the Forest write lock is released. +impl EventHandler for BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: MultipleNewChallengeSeeds) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Initiating BSP multiple proof submissions for BSP ID: {:?}, with seeds: {:?}", + event.provider_id, + event.seeds + ); + + for seed in event.seeds { + let provider_id = event.provider_id; + let tick = seed.0; + let seed = seed.1; + self.queue_submit_proof_request(provider_id, tick, seed) + .await?; + } + + Ok(()) + } +} + +/// Handles the `ProcessSubmitProofRequest` event. +/// +/// This event is triggered when the Blockchain Service realises that the Forest write lock has been released, +/// giving this task the opportunity to generate proofs and submit them to the runtime. +/// +/// This task performs the following actions: +/// - Generates proofs for the challenges. +/// - Constructs key proofs and submits the proof to the runtime. +/// - Retries up to [`MAX_PROOF_SUBMISSION_ATTEMPTS`] times if the submission fails. +/// - Applies any necessary mutations to the Forest Storage (not the File Storage). +/// - Ensures the new Forest root matches the one on-chain. +impl EventHandler for BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: ProcessSubmitProofRequest) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Processing SubmitProofRequest {:?}", + event.data + ); + + // Check if this proof is the next one to be submitted. + // This is, for example, in case that this provider is trying to submit a proof for a tick that is not the next one to be submitted. + // Exiting early in this case is important so that the provider doesn't get stuck trying to submit an outdated proof. + Self::check_if_proof_is_outdated(&self.storage_hub_handler.blockchain, &event).await?; + + let forest_root_write_tx = match event.forest_root_write_tx.lock().await.take() { + Some(tx) => tx, + None => { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken. This is a critical bug. Please report it to the StorageHub team."); + return Err(anyhow!( + "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken!" + )); + } + }; + + let proven_file_keys = { + let fs = self + .storage_hub_handler + .forest_storage_handler + .get(&NoKey) + .await + .ok_or_else(|| anyhow!("Failed to get forest storage."))?; + + let p = fs + .read() + .await + .generate_proof(event.data.forest_challenges.clone()) + .map_err(|e| anyhow!("Failed to generate forest proof: {:?}", e))?; + + p + }; + + // Get the keys that were proven. + let mut proven_keys = Vec::new(); + for key in proven_file_keys.proven { + match key { + Proven::ExactKey(leaf) => proven_keys.push(leaf.key), + Proven::NeighbourKeys((left, right)) => match (left, right) { + (Some(left), Some(right)) => { + proven_keys.push(left.key); + proven_keys.push(right.key); + } + (Some(left), None) => proven_keys.push(left.key), + (None, Some(right)) => proven_keys.push(right.key), + (None, None) => { + error!(target: LOG_TARGET, "Both left and right leaves in forest proof are None. This should not be possible."); + } + }, + Proven::Empty => { + error!(target: LOG_TARGET, "Forest proof generated with empty forest. This should not be possible, as this provider shouldn't have been challenged with an empty forest."); + } + } + } + + // Construct key challenges and generate key proofs for them. + let mut key_proofs = KeyProofs::new(); + for file_key in &proven_keys { + // Generate the key proof for each file key. + let key_proof = self + .generate_key_proof(*file_key, event.data.seed, event.data.provider_id) + .await?; + + key_proofs.insert(*file_key, key_proof); + } + + // Construct full proof. + let proof = StorageProof { + forest_proof: proven_file_keys.proof, + key_proofs, + }; + + // Submit proof to the runtime. + // Provider is `None` since we're submitting with the account linked to the BSP. + let call = storage_hub_runtime::RuntimeCall::ProofsDealer( + pallet_proofs_dealer::Call::submit_proof { + proof, + provider: None, + }, + ); + + // We consider that the maximum tip we're willing to pay for the submission of the proof is + // equal to the amount that this BSP would be slashed for, if the proof cannot be submitted. + let max_tip = self + .storage_hub_handler + .blockchain + .query_slash_amount_per_max_file_size() + .await? + .saturating_mul(event.data.forest_challenges.len() as u128) + .saturating_mul(2u32.into()); + + let cloned_blockchain = Arc::new(self.storage_hub_handler.blockchain.clone()); + let cloned_event = Arc::new(event.clone()); + + let should_retry = move || { + let cloned_blockchain = Arc::clone(&cloned_blockchain); + let cloned_event = Arc::clone(&cloned_event); + + Box::pin(async move { + Self::check_if_proof_is_outdated(&cloned_blockchain, &cloned_event) + .await + .is_ok() + }) as Pin + Send>> + }; + + // Attempt to submit the extrinsic with retries and tip increase. + self.storage_hub_handler + .blockchain + .submit_extrinsic_with_retry( + call, + RetryStrategy::default() + .with_max_retries(MAX_PROOF_SUBMISSION_ATTEMPTS) + .with_max_tip(max_tip as f64) + .with_timeout(Duration::from_secs(self.storage_hub_handler.provider_config.extrinsic_retry_timeout)) + .with_should_retry(Some(Box::new(should_retry))), + ) + .await + .map_err(|e| { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to submit proof after {} attempts: {}", MAX_PROOF_SUBMISSION_ATTEMPTS, e); + anyhow!( + "Failed to submit proof after {} attempts", + MAX_PROOF_SUBMISSION_ATTEMPTS + ) + })?; + + trace!(target: LOG_TARGET, "Proof submitted successfully"); + + // Apply mutations, if any. + let mut mutations_applied = false; + for (file_key, maybe_mutation) in &event.data.checkpoint_challenges { + if proven_keys.contains(file_key) { + // If the file key is proven, it means that this provider had an exact match for a checkpoint challenge. + trace!(target: LOG_TARGET, "Checkpoint challenge proven with exact match for file key: {:?}", file_key); + + if let Some(mutation) = maybe_mutation { + // If the mutation (which is a remove mutation) is Some and the file key was proven exactly, + // then the mutation needs to be applied (i.e. the file key is removed from the Forest). + trace!(target: LOG_TARGET, "Applying mutation: {:?}", mutation); + + // At this point, we only remove the file and its metadata from the Forest of this BSP. + // This is because if in a future block built on top of this one, the BSP needs to provide + // a proof, it will be against the Forest root with this change applied. + // We will remove the file from the File Storage only after finality is reached. + // This gives us the opportunity to put the file back in the Forest if this block is re-orged. + self.remove_file_from_forest(file_key).await?; + mutations_applied = true; + } + } + } + + if mutations_applied { + trace!(target: LOG_TARGET, "Mutations applied successfully"); + + // Check that the new Forest root matches the one on-chain. + self.check_provider_root(event.data.provider_id).await?; + } + + // Release the forest root write "lock". + let forest_root_write_result = forest_root_write_tx.send(()); + if forest_root_write_result.is_err() { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock. This is a critical bug. Please report it to the StorageHub team."); + return Err(anyhow!( + "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock." + )); + } + + Ok(()) + } +} + +/// Handles the `FinalisedTrieRemoveMutationsApplied` event. +/// +/// This event is triggered when mutations applied to the Forest of this BSP have been finalised, +/// signalling that certain keys (representing files) should be removed from the File Storage if they are +/// not present in the Forest Storage. If the key is still present in the Forest Storage, it sends out +/// a warning, since it could indicate that the key has been re-added after being deleted. +/// +/// This task performs the following actions: +/// - Iterates over each removed file key. +/// - Checks if the file key is present in the Forest Storage. +/// - If the key is still present, it logs a warning, +/// since this could indicate that the key has been re-added after being deleted. +/// - If the key is not present in the Forest Storage, it safely removes the key from the File Storage. +impl EventHandler for BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event( + &mut self, + event: FinalisedTrieRemoveMutationsApplied, + ) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Processing finalised mutations applied for provider [{:?}] with mutations: {:?}", + event.provider_id, + event.mutations + ); + + // For each mutation... + for mutation in event.mutations { + let file_key = FileKey::from(mutation.0); + + // Check that the file_key is not in the Forest. + let read_fs = self + .storage_hub_handler + .forest_storage_handler + .get(&NoKey) + .await + .ok_or_else(|| anyhow!("Failed to get forest storage."))?; + if read_fs.read().await.contains_file_key(&file_key.into())? { + warn!( + target: LOG_TARGET, + "TrieRemoveMutation applied and finalised for file key {:?}, but file key is still in Forest. This can only happen if the same file key was added again after deleted by the user.\n Mutation: {:?}", + file_key, + mutation + ); + } else { + // If file key is not in Forest, we can now safely remove it from the File Storage. + self.remove_file_from_file_storage(&file_key.into()).await?; + } + } + + Ok(()) + } +} + +impl BspSubmitProofTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn queue_submit_proof_request( + &self, + provider_id: ProviderId, + tick: BlockNumber, + seed: RandomnessOutput, + ) -> anyhow::Result<()> { + // Derive forest challenges from seed. + let mut forest_challenges = self + .derive_forest_challenges_from_seed(seed, provider_id) + .await?; + trace!(target: LOG_TARGET, "Forest challenges to respond to: {:?}", forest_challenges); + + // Check if there are checkpoint challenges since last tick this provider submitted a proof for. + // If so, this will add them to the forest challenges. + let checkpoint_challenges = self + .add_checkpoint_challenges_to_forest_challenges(provider_id, &mut forest_challenges) + .await?; + trace!(target: LOG_TARGET, "Checkpoint challenges to respond to: {:?}", checkpoint_challenges); + + self.storage_hub_handler + .blockchain + .queue_submit_proof_request(SubmitProofRequest::new( + provider_id, + tick, + seed, + forest_challenges, + checkpoint_challenges, + )) + .await?; + + Ok(()) + } + + async fn derive_forest_challenges_from_seed( + &self, + seed: RandomnessOutput, + provider_id: ProviderId, + ) -> anyhow::Result> { + Ok(self + .storage_hub_handler + .blockchain + .query_forest_challenges_from_seed(seed, provider_id) + .await?) + } + + async fn add_checkpoint_challenges_to_forest_challenges( + &self, + provider_id: ProviderId, + forest_challenges: &mut Vec, + ) -> anyhow::Result)>> { + let last_tick_provided_submitted_proof = self + .storage_hub_handler + .blockchain + .query_last_tick_provider_submitted_proof(provider_id) + .await + .map_err(|e| { + anyhow!( + "Failed to query last tick provider submitted proof: {:?}", + e + ) + })?; + let last_checkpoint_tick = self + .storage_hub_handler + .blockchain + .query_last_checkpoint_challenge_tick() + .await?; + + // If there were checkpoint challenges since the last tick this provider submitted a proof for, + // get the checkpoint challenges. + if last_tick_provided_submitted_proof <= last_checkpoint_tick { + let checkpoint_challenges = self + .storage_hub_handler + .blockchain + .query_last_checkpoint_challenges(last_checkpoint_tick) + .await + .map_err(|e| anyhow!("Failed to query last checkpoint challenges: {:?}", e))?; + + // Add the checkpoint challenges to the forest challenges. + forest_challenges.extend(checkpoint_challenges.iter().map(|(key, _)| *key)); + + // Return the checkpoint challenges. + Ok(checkpoint_challenges) + } else { + // Else, return an empty checkpoint challenges vector. + Ok(Vec::new()) + } + } + + async fn check_if_proof_is_outdated( + blockchain: &ActorHandle, + event: &ProcessSubmitProofRequest, + ) -> anyhow::Result<()> { + // Get the next challenge tick for this provider. + let next_challenge_tick = blockchain + .get_next_challenge_tick_for_provider(event.data.provider_id) + .await?; + + if next_challenge_tick != event.data.tick { + warn!(target: LOG_TARGET, "The proof for tick [{:?}] is not the next one to be submitted. Next challenge tick is [{:?}]", event.data.tick, next_challenge_tick); + return Err(anyhow!( + "The proof for tick [{:?}] is not the next one to be submitted.", + event.data.tick, + )); + } + + Ok(()) + } + + async fn generate_key_proof( + &self, + file_key: H256, + seed: RandomnessOutput, + provider_id: ProviderId, + ) -> anyhow::Result { + // Get the metadata for the file. + let read_file_storage = self.storage_hub_handler.file_storage.read().await; + let metadata = read_file_storage + .get_metadata(&file_key) + .map_err(|e| anyhow!("Error retrieving file metadata: {:?}", e))? + .ok_or(anyhow!("File metadata not found!"))?; + // Release the file storage read lock as soon as possible. + drop(read_file_storage); + + // Calculate the number of challenges for this file. + let challenge_count = metadata.chunks_to_check(); + + // Generate the challenges for this file. + let file_key_challenges = self + .storage_hub_handler + .blockchain + .query_challenges_from_seed(seed, provider_id, challenge_count) + .await?; + + // Convert the challenges to chunk IDs. + let chunks_count = metadata.chunks_count(); + let chunks_to_prove = file_key_challenges + .iter() + .map(|challenge| ChunkId::from_challenge(challenge.as_ref(), chunks_count)) + .collect::>(); + + // Construct file key proofs for the challenges. + let read_file_storage = self.storage_hub_handler.file_storage.read().await; + let file_key_proof = read_file_storage + .generate_proof(&file_key, &chunks_to_prove) + .map_err(|e| anyhow!("File is not in storage, or proof does not exist: {:?}", e))?; + // Release the file storage read lock as soon as possible. + drop(read_file_storage); + + // Return the key proof. + Ok(KeyProof { + proof: file_key_proof, + challenge_count, + }) + } + + async fn remove_file_from_forest(&self, file_key: &H256) -> anyhow::Result<()> { + // Remove the file key from the Forest. + // Check that the new Forest root matches the one on-chain. + { + let fs = self + .storage_hub_handler + .forest_storage_handler + .get(&NoKey) + .await + .ok_or_else(|| anyhow!("Failed to get forest storage."))?; + + fs.write().await.delete_file_key(file_key).map_err(|e| { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to apply mutation to Forest storage. This may result in a mismatch between the Forest root on-chain and in this node. \nThis is a critical bug. Please report it to the StorageHub team. \nError: {:?}", e); + anyhow!( + "Failed to remove file key from Forest storage: {:?}", + e + ) + })?; + }; + + Ok(()) + } + + async fn remove_file_from_file_storage(&self, file_key: &H256) -> anyhow::Result<()> { + // Remove the file from the File Storage. + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + write_file_storage.delete_file(file_key).map_err(|e| { + error!(target: LOG_TARGET, "Failed to remove file from File Storage after it was removed from the Forest. \nError: {:?}", e); + anyhow!( + "Failed to delete file from File Storage after it was removed from the Forest: {:?}", + e + ) + })?; + // Release the file storage write lock. + drop(write_file_storage); + + Ok(()) + } + + async fn check_provider_root(&self, provider_id: ProviderId) -> anyhow::Result<()> { + // Get root for this provider according to the runtime. + let onchain_root = self + .storage_hub_handler + .blockchain + .query_provider_forest_root(provider_id) + .await + .map_err(|e| { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Failed to query provider root from runtime after successfully submitting proof. This may result in a mismatch between the Forest root on-chain and in this node. \nThis is a critical bug. Please report it to the StorageHub team. \nError: {:?}", e); + anyhow!( + "Failed to query provider root from runtime after successfully submitting proof: {:?}", + e + ) + })?; + + trace!(target: LOG_TARGET, "Provider root according to runtime: {:?}", onchain_root); + + // Check that the new Forest root matches the one on-chain. + let fs = self + .storage_hub_handler + .forest_storage_handler + .get(&NoKey) + .await + .ok_or_else(|| anyhow!("Failed to get forest storage."))?; + + let root = { fs.read().await.root() }; + + trace!(target: LOG_TARGET, "Provider root according to Forest Storage: {:?}", root); + + if root != onchain_root { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ Applying mutations yielded different root than the one on-chain. This means that there is a mismatch between the Forest root on-chain and in this node. \nThis is a critical bug. Please report it to the StorageHub team."); + return Err(anyhow!( + "Applying mutations yielded different root than the one on-chain." + )); + } + + Ok(()) + } +} diff --git a/node/src/tasks/bsp_upload_file.rs b/node/src/tasks/bsp_upload_file.rs index cd1777854..f9bde6e6f 100644 --- a/node/src/tasks/bsp_upload_file.rs +++ b/node/src/tasks/bsp_upload_file.rs @@ -1,724 +1,724 @@ -use std::{cmp::max, str::FromStr, time::Duration}; - -use anyhow::anyhow; -use frame_support::BoundedVec; -use sc_network::PeerId; -use sc_tracing::tracing::*; -use sp_core::H256; -use sp_runtime::AccountId32; - -use shc_actors_framework::event_bus::EventHandler; -use shc_blockchain_service::{ - commands::BlockchainServiceInterface, - events::{NewStorageRequest, ProcessConfirmStoringRequest}, - types::{ConfirmStoringRequest, RetryStrategy, Tip}, -}; -use shc_common::types::{ - Balance, FileKey, FileMetadata, HashT, StorageProofsMerkleTrieLayout, StorageProviderId, -}; -use shc_file_manager::traits::{FileStorageWriteError, FileStorageWriteOutcome}; -use shc_file_transfer_service::{ - commands::FileTransferServiceInterface, events::RemoteUploadRequest, -}; -use shc_forest_manager::traits::ForestStorage; -use storage_hub_runtime::{StorageDataUnit, MILLIUNIT}; - -use crate::services::{forest_storage::NoKey, handler::StorageHubHandler}; -use crate::tasks::{BspForestStorageHandlerT, FileStorageT}; - -const LOG_TARGET: &str = "bsp-upload-file-task"; - -const MAX_CONFIRM_STORING_REQUEST_TRY_COUNT: u32 = 3; -const MAX_CONFIRM_STORING_REQUEST_TIP: Balance = 500 * MILLIUNIT; - -/// BSP Upload File Task: Handles the whole flow of a file being uploaded to a BSP, from -/// the BSP's perspective. -/// -/// The flow is split into three parts, which are represented here as 3 handlers for 3 -/// different events: -/// - [`NewStorageRequest`] event: The first part of the flow. It is triggered by an -/// on-chain event of a user submitting a storage request to StorageHub. It responds -/// by sending a volunteer transaction and registering the interest of this BSP in -/// receiving the file. -/// - [`RemoteUploadRequest`] event: The second part of the flow. It is triggered by a -/// user sending a chunk of the file to the BSP. It checks the proof for the chunk -/// and if it is valid, stores it, until the whole file is stored. -/// - [`ProcessConfirmStoringRequest`] event: The third part of the flow. It is triggered by the -/// runtime when the BSP should construct a proof for the new file(s) and submit a confirm storing -/// before updating it's local Forest storage root. -pub struct BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - storage_hub_handler: StorageHubHandler, - file_key_cleanup: Option, -} - -impl Clone for BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - fn clone(&self) -> BspUploadFileTask { - Self { - storage_hub_handler: self.storage_hub_handler.clone(), - file_key_cleanup: self.file_key_cleanup, - } - } -} - -impl BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - storage_hub_handler, - file_key_cleanup: None, - } - } -} - -/// Handles the `NewStorageRequest` event. -/// -/// This event is triggered by an on-chain event of a user submitting a storage request to StorageHub. -/// It responds by sending a volunteer transaction and registering the interest of this BSP in -/// receiving the file. This task optimistically assumes the transaction will succeed, and registers -/// the user and file key in the registry of the File Transfer Service, which handles incoming p2p -/// upload requests. -impl EventHandler for BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Initiating BSP volunteer for file_key {:?}, location {:?}, fingerprint {:?}", - event.file_key, - event.location, - event.fingerprint - ); - - let result = self.handle_new_storage_request_event(event).await; - if result.is_err() { - if let Some(file_key) = &self.file_key_cleanup { - self.unvolunteer_file(*file_key).await?; - } - } - result - } -} - -/// Handles the `RemoteUploadRequest` event. -/// -/// This event is triggered by a user sending a chunk of the file to the BSP. It checks the proof -/// for the chunk and if it is valid, stores it, until the whole file is stored. -impl EventHandler for BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: RemoteUploadRequest) -> anyhow::Result<()> { - info!(target: LOG_TARGET, "Received remote upload request for file {:?} and peer {:?}", event.file_key, event.peer); - - let proven = match event - .file_key_proof - .proven::() - { - Ok(proven) => { - if proven.len() != 1 { - Err(anyhow::anyhow!("Expected exactly one proven chunk.")) - } else { - Ok(proven[0].clone()) - } - } - Err(e) => Err(anyhow::anyhow!( - "Failed to verify and get proven file key chunks: {:?}", - e - )), - }; - - let proven = match proven { - Ok(proven) => proven, - Err(e) => { - warn!(target: LOG_TARGET, "{}", e); - - // Unvolunteer the file. - self.unvolunteer_file(event.file_key.into()).await?; - return Err(e); - } - }; - - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - let write_chunk_result = - write_file_storage.write_chunk(&event.file_key.into(), &proven.key, &proven.data); - // Release the file storage write lock as soon as possible. - drop(write_file_storage); - - match write_chunk_result { - Ok(outcome) => match outcome { - FileStorageWriteOutcome::FileComplete => { - self.on_file_complete(&event.file_key.into()).await? - } - FileStorageWriteOutcome::FileIncomplete => {} - }, - Err(error) => match error { - FileStorageWriteError::FileChunkAlreadyExists => { - warn!( - target: LOG_TARGET, - "Received duplicate chunk with key: {:?}", - proven.key - ); - - // TODO: Consider informing this to the file transfer service so that it can handle reputation for this peer id. - } - FileStorageWriteError::FileDoesNotExist => { - // Unvolunteer the file. - self.unvolunteer_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!("File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", event.file_key))); - } - FileStorageWriteError::FailedToGetFileChunk - | FileStorageWriteError::FailedToInsertFileChunk - | FileStorageWriteError::FailedToDeleteChunk - | FileStorageWriteError::FailedToPersistChanges - | FileStorageWriteError::FailedToParseFileMetadata - | FileStorageWriteError::FailedToParseFingerprint - | FileStorageWriteError::FailedToReadStorage - | FileStorageWriteError::FailedToUpdatePartialRoot - | FileStorageWriteError::FailedToParsePartialRoot - | FileStorageWriteError::FailedToGetStoredChunksCount => { - // This internal error should not happen. - - // Unvolunteer the file. - self.unvolunteer_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!( - "Internal trie read/write error {:?}:{:?}", - event.file_key, proven.key - ))); - } - FileStorageWriteError::FingerprintAndStoredFileMismatch => { - // This should never happen, given that the first check in the handler is verifying the proof. - // This means that something is seriously wrong, so we error out the whole task. - - // Unvolunteer the file. - self.unvolunteer_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!( - "Invariant broken! This is a bug! Fingerprint and stored file mismatch for key {:?}.", - event.file_key - ))); - } - FileStorageWriteError::FailedToConstructTrieIter => { - // This should never happen for a well constructed trie. - // This means that something is seriously wrong, so we error out the whole task. - - // Unvolunteer the file. - self.unvolunteer_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!( - "This is a bug! Failed to construct trie iter for key {:?}.", - event.file_key - ))); - } - }, - } - - Ok(()) - } -} - -/// Handles the `ProcessConfirmStoringRequest` event. -/// -/// This event is triggered by the runtime when it decides it is the right time to submit a confirm -/// storing extrinsic (and update the local forest root). -impl EventHandler for BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: ProcessConfirmStoringRequest) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Processing ConfirmStoringRequest: {:?}", - event.data.confirm_storing_requests, - ); - - let forest_root_write_tx = match event.forest_root_write_tx.lock().await.take() { - Some(tx) => tx, - None => { - let err_msg = "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken. This is a critical bug. Please report it to the StorageHub team."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }; - - let own_provider_id = self - .storage_hub_handler - .blockchain - .query_storage_provider_id(None) - .await?; - - let own_bsp_id = match own_provider_id { - Some(id) => match id { - StorageProviderId::MainStorageProvider(_) => { - let err_msg = "Current node account is a Main Storage Provider. Expected a Backup Storage Provider ID."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - StorageProviderId::BackupStorageProvider(id) => id, - }, - None => { - error!(target: LOG_TARGET, "Failed to get own BSP ID."); - return Err(anyhow!("Failed to get own BSP ID.")); - } - }; - - // Query runtime for the chunks to prove for the file. - let mut confirm_storing_requests_with_chunks_to_prove = Vec::new(); - for confirm_storing_request in event.data.confirm_storing_requests.iter() { - match self - .storage_hub_handler - .blockchain - .query_bsp_confirm_chunks_to_prove_for_file( - own_bsp_id, - confirm_storing_request.file_key, - ) - .await - { - Ok(chunks_to_prove) => { - confirm_storing_requests_with_chunks_to_prove - .push((confirm_storing_request, chunks_to_prove)); - } - Err(e) => { - let mut confirm_storing_request = confirm_storing_request.clone(); - confirm_storing_request.increment_try_count(); - if confirm_storing_request.try_count > MAX_CONFIRM_STORING_REQUEST_TRY_COUNT { - error!(target: LOG_TARGET, "Failed to query chunks to prove for file {:?}: {:?}\nMax try count exceeded! Dropping request!", confirm_storing_request.file_key, e); - } else { - error!(target: LOG_TARGET, "Failed to query chunks to prove for file {:?}: {:?}\nEnqueuing file key again! (retry {}/{})", confirm_storing_request.file_key, e, confirm_storing_request.try_count, MAX_CONFIRM_STORING_REQUEST_TRY_COUNT); - self.storage_hub_handler - .blockchain - .queue_confirm_bsp_request(confirm_storing_request) - .await?; - } - } - } - } - - // Generate the proof for the files and get metadatas. - let read_file_storage = self.storage_hub_handler.file_storage.read().await; - let mut file_keys_and_proofs = Vec::new(); - let mut file_metadatas = Vec::new(); - for (confirm_storing_request, chunks_to_prove) in - confirm_storing_requests_with_chunks_to_prove.into_iter() - { - match ( - read_file_storage - .generate_proof(&confirm_storing_request.file_key, &chunks_to_prove), - read_file_storage.get_metadata(&confirm_storing_request.file_key), - ) { - (Ok(proof), Ok(Some(metadata))) => { - file_keys_and_proofs.push((confirm_storing_request.file_key, proof)); - file_metadatas.push(metadata); - } - _ => { - let mut confirm_storing_request = confirm_storing_request.clone(); - confirm_storing_request.increment_try_count(); - if confirm_storing_request.try_count > MAX_CONFIRM_STORING_REQUEST_TRY_COUNT { - error!(target: LOG_TARGET, "Failed to generate proof or get metadatas for file {:?}.\nMax try count exceeded! Dropping request!", confirm_storing_request.file_key); - } else { - error!(target: LOG_TARGET, "Failed to generate proof or get metadatas for file {:?}.\nEnqueuing file key again! (retry {}/{})", confirm_storing_request.file_key, confirm_storing_request.try_count, MAX_CONFIRM_STORING_REQUEST_TRY_COUNT); - self.storage_hub_handler - .blockchain - .queue_confirm_bsp_request(confirm_storing_request) - .await?; - } - } - } - } - // Release the file storage read lock as soon as possible. - drop(read_file_storage); - - if file_keys_and_proofs.is_empty() { - error!(target: LOG_TARGET, "Failed to generate proofs for ALL the requested files.\n"); - return Err(anyhow!( - "Failed to generate proofs for ALL the requested files." - )); - } - - let file_keys = file_keys_and_proofs - .iter() - .map(|(file_key, _)| *file_key) - .collect::>(); - - let fs = self - .storage_hub_handler - .forest_storage_handler - .get(&NoKey) - .await - .ok_or_else(|| anyhow!("Failed to get forest storage."))?; - - // Generate a proof of non-inclusion (executed in closure to drop the read lock on the forest storage). - let non_inclusion_forest_proof = { fs.read().await.generate_proof(file_keys)? }; - - // Build extrinsic. - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::bsp_confirm_storing { - non_inclusion_forest_proof: non_inclusion_forest_proof.proof, - file_keys_and_proofs: BoundedVec::try_from(file_keys_and_proofs) - .map_err(|_| { - error!("CRITICAL❗️❗️ This is a bug! Failed to convert file keys and proofs to BoundedVec. Please report it to the StorageHub team."); - anyhow!("Failed to convert file keys and proofs to BoundedVec.") - })?, - }, - ); - - // Send the confirmation transaction and wait for it to be included in the block and - // continue only if it is successful. - self.storage_hub_handler - .blockchain - .submit_extrinsic_with_retry( - call, - RetryStrategy::default() - .with_max_retries(MAX_CONFIRM_STORING_REQUEST_TRY_COUNT) - .with_max_tip(MAX_CONFIRM_STORING_REQUEST_TIP as f64) - .with_timeout(Duration::from_secs( - self.storage_hub_handler - .provider_config - .extrinsic_retry_timeout, - )), - ) - .await?; - - // Save `FileMetadata` of the successfully retrieved stored files in the forest storage (executed in closure to drop the read lock on the forest storage). - { - fs.write() - .await - .insert_files_metadata(file_metadatas.as_slice())?; - } - - // Release the forest root write "lock". - let forest_root_write_result = forest_root_write_tx.send(()); - if forest_root_write_result.is_err() { - error!(target: LOG_TARGET, "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock. This is a critical bug. Please report it to the StorageHub team."); - return Err(anyhow!( - "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock." - )); - } - - Ok(()) - } -} - -impl BspUploadFileTask -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_new_storage_request_event( - &mut self, - event: NewStorageRequest, - ) -> anyhow::Result<()> { - // Construct file metadata. - let metadata = FileMetadata { - owner: >::as_ref(&event.who).to_vec(), - bucket_id: event.bucket_id.as_ref().to_vec(), - file_size: event.size as u64, - fingerprint: event.fingerprint, - location: event.location.to_vec(), - }; - - let own_provider_id = self - .storage_hub_handler - .blockchain - .query_storage_provider_id(None) - .await?; - - let own_bsp_id = match own_provider_id { - Some(id) => match id { - StorageProviderId::MainStorageProvider(_) => { - let err_msg = "Current node account is a Main Storage Provider. Expected a Backup Storage Provider ID."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - StorageProviderId::BackupStorageProvider(id) => id, - }, - None => { - let err_msg = "Failed to get own BSP ID."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }; - - let available_capacity = self - .storage_hub_handler - .blockchain - .query_available_storage_capacity(own_bsp_id) - .await - .map_err(|e| { - let err_msg = format!("Failed to query available storage capacity: {:?}", e); - error!( - target: LOG_TARGET, - err_msg - ); - anyhow::anyhow!(err_msg) - })?; - - // Increase storage capacity if the available capacity is less than the file size. - if available_capacity < event.size { - warn!( - target: LOG_TARGET, - "Insufficient storage capacity to volunteer for file key: {:?}", - event.file_key - ); - - let current_capacity = self - .storage_hub_handler - .blockchain - .query_storage_provider_capacity(own_bsp_id) - .await - .map_err(|e| { - error!( - target: LOG_TARGET, - "Failed to query storage provider capacity: {:?}", e - ); - anyhow::anyhow!("Failed to query storage provider capacity: {:?}", e) - })?; - - let max_storage_capacity = self - .storage_hub_handler - .provider_config - .max_storage_capacity; - - if max_storage_capacity == current_capacity { - let err_msg = "Reached maximum storage capacity limit. Unable to add more more storage capacity."; - warn!( - target: LOG_TARGET, "{}", err_msg - ); - return Err(anyhow::anyhow!(err_msg)); - } - - let new_capacity = self.calculate_capacity(&event, current_capacity)?; - - let call = storage_hub_runtime::RuntimeCall::Providers( - pallet_storage_providers::Call::change_capacity { new_capacity }, - ); - - let earliest_change_capacity_block = self - .storage_hub_handler - .blockchain - .query_earliest_change_capacity_block(own_bsp_id) - .await - .map_err(|e| { - error!( - target: LOG_TARGET, - "Failed to query storage provider capacity: {:?}", e - ); - anyhow::anyhow!("Failed to query storage provider capacity: {:?}", e) - })?; - - // Wait for the earliest block where the capacity can be changed. - self.storage_hub_handler - .blockchain - .wait_for_block(earliest_change_capacity_block) - .await?; - - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs( - self.storage_hub_handler - .provider_config - .extrinsic_retry_timeout, - )) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - info!( - target: LOG_TARGET, - "Increased storage capacity to {:?} bytes", - new_capacity - ); - - let available_capacity = self - .storage_hub_handler - .blockchain - .query_available_storage_capacity(own_bsp_id) - .await - .map_err(|e| { - error!( - target: LOG_TARGET, - "Failed to query available storage capacity: {:?}", e - ); - anyhow::anyhow!("Failed to query available storage capacity: {:?}", e) - })?; - - // Skip volunteering if the new available capacity is still less than the file size. - if available_capacity < event.size { - let err_msg = "Increased storage capacity is still insufficient to volunteer for file. Skipping volunteering."; - warn!( - target: LOG_TARGET, "{}", err_msg - ); - return Err(anyhow::anyhow!(err_msg)); - } - } - - // Get the file key. - let file_key: FileKey = metadata - .file_key::>() - .as_ref() - .try_into()?; - - self.file_key_cleanup = Some(file_key.into()); - - // Query runtime for the earliest block where the BSP can volunteer for the file. - let earliest_volunteer_tick = self - .storage_hub_handler - .blockchain - .query_file_earliest_volunteer_tick(own_bsp_id, file_key.into()) - .await - .map_err(|e| anyhow!("Failed to query file earliest volunteer block: {:?}", e))?; - - info!( - target: LOG_TARGET, - "Waiting for tick {:?} to volunteer for file {:?}", - earliest_volunteer_tick, - file_key - ); - - // TODO: if the earliest tick is too far away, we should drop the task. - // TODO: based on the limit above, also add a timeout for the task. - self.storage_hub_handler - .blockchain - .wait_for_tick(earliest_volunteer_tick) - .await?; - - // Optimistically register the file for upload in the file transfer service. - // This solves the race condition between the user and the BSP, where the user could react faster - // to the BSP volunteering than the BSP, and therefore initiate a new upload request before the - // BSP has registered the file and peer ID in the file transfer service. - for peer_id in event.user_peer_ids.iter() { - let peer_id = match std::str::from_utf8(&peer_id.as_slice()) { - Ok(str_slice) => PeerId::from_str(str_slice).map_err(|e| { - error!(target: LOG_TARGET, "Failed to convert peer ID to PeerId: {}", e); - e - })?, - Err(e) => return Err(anyhow!("Failed to convert peer ID to a string: {}", e)), - }; - self.storage_hub_handler - .file_transfer - .register_new_file_peer(peer_id, file_key) - .await - .map_err(|e| anyhow!("Failed to register new file peer: {:?}", e))?; - } - - // Also optimistically create file in file storage so we can write uploaded chunks as soon as possible. - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - write_file_storage - .insert_file( - metadata.file_key::>(), - metadata, - ) - .map_err(|e| anyhow!("Failed to insert file in file storage: {:?}", e))?; - drop(write_file_storage); - - // Build extrinsic. - let call = - storage_hub_runtime::RuntimeCall::FileSystem(pallet_file_system::Call::bsp_volunteer { - file_key: H256(file_key.into()), - }); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs( - self.storage_hub_handler - .provider_config - .extrinsic_retry_timeout, - )) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - Ok(()) - } - - /// Calculate the new capacity after adding the required capacity for the file. - /// - /// The new storage capacity will be increased by the jump capacity until it reaches the - /// `max_storage_capacity`. - /// - /// The `max_storage_capacity` is returned if the new capacity exceeds it. - fn calculate_capacity( - &mut self, - event: &NewStorageRequest, - current_capacity: StorageDataUnit, - ) -> Result { - let jump_capacity = self.storage_hub_handler.provider_config.jump_capacity; - let jumps_needed = (event.size + jump_capacity - 1) / jump_capacity; - let jumps = max(jumps_needed, 1); - let bytes_to_add = jumps * jump_capacity; - let required_capacity = current_capacity.checked_add(bytes_to_add).ok_or_else(|| { - anyhow::anyhow!( - "Reached maximum storage capacity limit. Skipping volunteering for file." - ) - })?; - - let max_storage_capacity = self - .storage_hub_handler - .provider_config - .max_storage_capacity; - - let new_capacity = std::cmp::min(required_capacity, max_storage_capacity); - - Ok(new_capacity) - } - - async fn unvolunteer_file(&self, file_key: H256) -> anyhow::Result<()> { - warn!(target: LOG_TARGET, "Unvolunteering file {:?}", file_key); - - // Unregister the file from the file transfer service. - // The error is ignored, as the file might already be unregistered. - let _ = self - .storage_hub_handler - .file_transfer - .unregister_file(file_key.as_ref().into()) - .await; - - // TODO: Send transaction to runtime to unvolunteer the file. - - // Delete the file from the file storage. - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - - // TODO: Handle error - let _ = write_file_storage.delete_file(&file_key); - - Ok(()) - } - - async fn on_file_complete(&self, file_key: &H256) -> anyhow::Result<()> { - info!(target: LOG_TARGET, "File upload complete ({:?})", file_key); - - // Unregister the file from the file transfer service. - self.storage_hub_handler - .file_transfer - .unregister_file((*file_key).into()) - .await - .map_err(|e| anyhow!("File is not registered. This should not happen!: {:?}", e))?; - - // Queue a request to confirm the storing of the file. - self.storage_hub_handler - .blockchain - .queue_confirm_bsp_request(ConfirmStoringRequest::new(*file_key)) - .await?; - - Ok(()) - } -} +use std::{cmp::max, str::FromStr, time::Duration}; + +use anyhow::anyhow; +use frame_support::BoundedVec; +use sc_network::PeerId; +use sc_tracing::tracing::*; +use sp_core::H256; +use sp_runtime::AccountId32; + +use shc_actors_framework::event_bus::EventHandler; +use shc_blockchain_service::{ + commands::BlockchainServiceInterface, + events::{NewStorageRequest, ProcessConfirmStoringRequest}, + types::{ConfirmStoringRequest, RetryStrategy, Tip}, +}; +use shc_common::types::{ + Balance, FileKey, FileMetadata, HashT, StorageProofsMerkleTrieLayout, StorageProviderId, +}; +use shc_file_manager::traits::{FileStorageWriteError, FileStorageWriteOutcome}; +use shc_file_transfer_service::{ + commands::FileTransferServiceInterface, events::RemoteUploadRequest, +}; +use shc_forest_manager::traits::ForestStorage; +use storage_hub_runtime::{StorageDataUnit, MILLIUNIT}; + +use crate::services::{forest_storage::NoKey, handler::StorageHubHandler}; +use crate::tasks::{BspForestStorageHandlerT, FileStorageT}; + +const LOG_TARGET: &str = "bsp-upload-file-task"; + +const MAX_CONFIRM_STORING_REQUEST_TRY_COUNT: u32 = 3; +const MAX_CONFIRM_STORING_REQUEST_TIP: Balance = 500 * MILLIUNIT; + +/// BSP Upload File Task: Handles the whole flow of a file being uploaded to a BSP, from +/// the BSP's perspective. +/// +/// The flow is split into three parts, which are represented here as 3 handlers for 3 +/// different events: +/// - [`NewStorageRequest`] event: The first part of the flow. It is triggered by an +/// on-chain event of a user submitting a storage request to StorageHub. It responds +/// by sending a volunteer transaction and registering the interest of this BSP in +/// receiving the file. +/// - [`RemoteUploadRequest`] event: The second part of the flow. It is triggered by a +/// user sending a chunk of the file to the BSP. It checks the proof for the chunk +/// and if it is valid, stores it, until the whole file is stored. +/// - [`ProcessConfirmStoringRequest`] event: The third part of the flow. It is triggered by the +/// runtime when the BSP should construct a proof for the new file(s) and submit a confirm storing +/// before updating it's local Forest storage root. +pub struct BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + storage_hub_handler: StorageHubHandler, + file_key_cleanup: Option, +} + +impl Clone for BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + fn clone(&self) -> BspUploadFileTask { + Self { + storage_hub_handler: self.storage_hub_handler.clone(), + file_key_cleanup: self.file_key_cleanup, + } + } +} + +impl BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + storage_hub_handler, + file_key_cleanup: None, + } + } +} + +/// Handles the `NewStorageRequest` event. +/// +/// This event is triggered by an on-chain event of a user submitting a storage request to StorageHub. +/// It responds by sending a volunteer transaction and registering the interest of this BSP in +/// receiving the file. This task optimistically assumes the transaction will succeed, and registers +/// the user and file key in the registry of the File Transfer Service, which handles incoming p2p +/// upload requests. +impl EventHandler for BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Initiating BSP volunteer for file_key {:?}, location {:?}, fingerprint {:?}", + event.file_key, + event.location, + event.fingerprint + ); + + let result = self.handle_new_storage_request_event(event).await; + if result.is_err() { + if let Some(file_key) = &self.file_key_cleanup { + self.unvolunteer_file(*file_key).await?; + } + } + result + } +} + +/// Handles the `RemoteUploadRequest` event. +/// +/// This event is triggered by a user sending a chunk of the file to the BSP. It checks the proof +/// for the chunk and if it is valid, stores it, until the whole file is stored. +impl EventHandler for BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: RemoteUploadRequest) -> anyhow::Result<()> { + info!(target: LOG_TARGET, "Received remote upload request for file {:?} and peer {:?}", event.file_key, event.peer); + + let proven = match event + .file_key_proof + .proven::() + { + Ok(proven) => { + if proven.len() != 1 { + Err(anyhow::anyhow!("Expected exactly one proven chunk.")) + } else { + Ok(proven[0].clone()) + } + } + Err(e) => Err(anyhow::anyhow!( + "Failed to verify and get proven file key chunks: {:?}", + e + )), + }; + + let proven = match proven { + Ok(proven) => proven, + Err(e) => { + warn!(target: LOG_TARGET, "{}", e); + + // Unvolunteer the file. + self.unvolunteer_file(event.file_key.into()).await?; + return Err(e); + } + }; + + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + let write_chunk_result = + write_file_storage.write_chunk(&event.file_key.into(), &proven.key, &proven.data); + // Release the file storage write lock as soon as possible. + drop(write_file_storage); + + match write_chunk_result { + Ok(outcome) => match outcome { + FileStorageWriteOutcome::FileComplete => { + self.on_file_complete(&event.file_key.into()).await? + } + FileStorageWriteOutcome::FileIncomplete => {} + }, + Err(error) => match error { + FileStorageWriteError::FileChunkAlreadyExists => { + warn!( + target: LOG_TARGET, + "Received duplicate chunk with key: {:?}", + proven.key + ); + + // TODO: Consider informing this to the file transfer service so that it can handle reputation for this peer id. + } + FileStorageWriteError::FileDoesNotExist => { + // Unvolunteer the file. + self.unvolunteer_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!("File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", event.file_key))); + } + FileStorageWriteError::FailedToGetFileChunk + | FileStorageWriteError::FailedToInsertFileChunk + | FileStorageWriteError::FailedToDeleteChunk + | FileStorageWriteError::FailedToPersistChanges + | FileStorageWriteError::FailedToParseFileMetadata + | FileStorageWriteError::FailedToParseFingerprint + | FileStorageWriteError::FailedToReadStorage + | FileStorageWriteError::FailedToUpdatePartialRoot + | FileStorageWriteError::FailedToParsePartialRoot + | FileStorageWriteError::FailedToGetStoredChunksCount => { + // This internal error should not happen. + + // Unvolunteer the file. + self.unvolunteer_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!( + "Internal trie read/write error {:?}:{:?}", + event.file_key, proven.key + ))); + } + FileStorageWriteError::FingerprintAndStoredFileMismatch => { + // This should never happen, given that the first check in the handler is verifying the proof. + // This means that something is seriously wrong, so we error out the whole task. + + // Unvolunteer the file. + self.unvolunteer_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!( + "Invariant broken! This is a bug! Fingerprint and stored file mismatch for key {:?}.", + event.file_key + ))); + } + FileStorageWriteError::FailedToConstructTrieIter => { + // This should never happen for a well constructed trie. + // This means that something is seriously wrong, so we error out the whole task. + + // Unvolunteer the file. + self.unvolunteer_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!( + "This is a bug! Failed to construct trie iter for key {:?}.", + event.file_key + ))); + } + }, + } + + Ok(()) + } +} + +/// Handles the `ProcessConfirmStoringRequest` event. +/// +/// This event is triggered by the runtime when it decides it is the right time to submit a confirm +/// storing extrinsic (and update the local forest root). +impl EventHandler for BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: ProcessConfirmStoringRequest) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Processing ConfirmStoringRequest: {:?}", + event.data.confirm_storing_requests, + ); + + let forest_root_write_tx = match event.forest_root_write_tx.lock().await.take() { + Some(tx) => tx, + None => { + let err_msg = "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken. This is a critical bug. Please report it to the StorageHub team."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }; + + let own_provider_id = self + .storage_hub_handler + .blockchain + .query_storage_provider_id(None) + .await?; + + let own_bsp_id = match own_provider_id { + Some(id) => match id { + StorageProviderId::MainStorageProvider(_) => { + let err_msg = "Current node account is a Main Storage Provider. Expected a Backup Storage Provider ID."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + StorageProviderId::BackupStorageProvider(id) => id, + }, + None => { + error!(target: LOG_TARGET, "Failed to get own BSP ID."); + return Err(anyhow!("Failed to get own BSP ID.")); + } + }; + + // Query runtime for the chunks to prove for the file. + let mut confirm_storing_requests_with_chunks_to_prove = Vec::new(); + for confirm_storing_request in event.data.confirm_storing_requests.iter() { + match self + .storage_hub_handler + .blockchain + .query_bsp_confirm_chunks_to_prove_for_file( + own_bsp_id, + confirm_storing_request.file_key, + ) + .await + { + Ok(chunks_to_prove) => { + confirm_storing_requests_with_chunks_to_prove + .push((confirm_storing_request, chunks_to_prove)); + } + Err(e) => { + let mut confirm_storing_request = confirm_storing_request.clone(); + confirm_storing_request.increment_try_count(); + if confirm_storing_request.try_count > MAX_CONFIRM_STORING_REQUEST_TRY_COUNT { + error!(target: LOG_TARGET, "Failed to query chunks to prove for file {:?}: {:?}\nMax try count exceeded! Dropping request!", confirm_storing_request.file_key, e); + } else { + error!(target: LOG_TARGET, "Failed to query chunks to prove for file {:?}: {:?}\nEnqueuing file key again! (retry {}/{})", confirm_storing_request.file_key, e, confirm_storing_request.try_count, MAX_CONFIRM_STORING_REQUEST_TRY_COUNT); + self.storage_hub_handler + .blockchain + .queue_confirm_bsp_request(confirm_storing_request) + .await?; + } + } + } + } + + // Generate the proof for the files and get metadatas. + let read_file_storage = self.storage_hub_handler.file_storage.read().await; + let mut file_keys_and_proofs = Vec::new(); + let mut file_metadatas = Vec::new(); + for (confirm_storing_request, chunks_to_prove) in + confirm_storing_requests_with_chunks_to_prove.into_iter() + { + match ( + read_file_storage + .generate_proof(&confirm_storing_request.file_key, &chunks_to_prove), + read_file_storage.get_metadata(&confirm_storing_request.file_key), + ) { + (Ok(proof), Ok(Some(metadata))) => { + file_keys_and_proofs.push((confirm_storing_request.file_key, proof)); + file_metadatas.push(metadata); + } + _ => { + let mut confirm_storing_request = confirm_storing_request.clone(); + confirm_storing_request.increment_try_count(); + if confirm_storing_request.try_count > MAX_CONFIRM_STORING_REQUEST_TRY_COUNT { + error!(target: LOG_TARGET, "Failed to generate proof or get metadatas for file {:?}.\nMax try count exceeded! Dropping request!", confirm_storing_request.file_key); + } else { + error!(target: LOG_TARGET, "Failed to generate proof or get metadatas for file {:?}.\nEnqueuing file key again! (retry {}/{})", confirm_storing_request.file_key, confirm_storing_request.try_count, MAX_CONFIRM_STORING_REQUEST_TRY_COUNT); + self.storage_hub_handler + .blockchain + .queue_confirm_bsp_request(confirm_storing_request) + .await?; + } + } + } + } + // Release the file storage read lock as soon as possible. + drop(read_file_storage); + + if file_keys_and_proofs.is_empty() { + error!(target: LOG_TARGET, "Failed to generate proofs for ALL the requested files.\n"); + return Err(anyhow!( + "Failed to generate proofs for ALL the requested files." + )); + } + + let file_keys = file_keys_and_proofs + .iter() + .map(|(file_key, _)| *file_key) + .collect::>(); + + let fs = self + .storage_hub_handler + .forest_storage_handler + .get(&NoKey) + .await + .ok_or_else(|| anyhow!("Failed to get forest storage."))?; + + // Generate a proof of non-inclusion (executed in closure to drop the read lock on the forest storage). + let non_inclusion_forest_proof = { fs.read().await.generate_proof(file_keys)? }; + + // Build extrinsic. + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::bsp_confirm_storing { + non_inclusion_forest_proof: non_inclusion_forest_proof.proof, + file_keys_and_proofs: BoundedVec::try_from(file_keys_and_proofs) + .map_err(|_| { + error!("CRITICAL❗️❗️ This is a bug! Failed to convert file keys and proofs to BoundedVec. Please report it to the StorageHub team."); + anyhow!("Failed to convert file keys and proofs to BoundedVec.") + })?, + }, + ); + + // Send the confirmation transaction and wait for it to be included in the block and + // continue only if it is successful. + self.storage_hub_handler + .blockchain + .submit_extrinsic_with_retry( + call, + RetryStrategy::default() + .with_max_retries(MAX_CONFIRM_STORING_REQUEST_TRY_COUNT) + .with_max_tip(MAX_CONFIRM_STORING_REQUEST_TIP as f64) + .with_timeout(Duration::from_secs( + self.storage_hub_handler + .provider_config + .extrinsic_retry_timeout, + )), + ) + .await?; + + // Save `FileMetadata` of the successfully retrieved stored files in the forest storage (executed in closure to drop the read lock on the forest storage). + { + fs.write() + .await + .insert_files_metadata(file_metadatas.as_slice())?; + } + + // Release the forest root write "lock". + let forest_root_write_result = forest_root_write_tx.send(()); + if forest_root_write_result.is_err() { + error!(target: LOG_TARGET, "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock. This is a critical bug. Please report it to the StorageHub team."); + return Err(anyhow!( + "CRITICAL❗️❗️ This is a bug! Failed to release forest root write lock." + )); + } + + Ok(()) + } +} + +impl BspUploadFileTask +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_new_storage_request_event( + &mut self, + event: NewStorageRequest, + ) -> anyhow::Result<()> { + // Construct file metadata. + let metadata = FileMetadata { + owner: >::as_ref(&event.who).to_vec(), + bucket_id: event.bucket_id.as_ref().to_vec(), + file_size: event.size as u64, + fingerprint: event.fingerprint, + location: event.location.to_vec(), + }; + + let own_provider_id = self + .storage_hub_handler + .blockchain + .query_storage_provider_id(None) + .await?; + + let own_bsp_id = match own_provider_id { + Some(id) => match id { + StorageProviderId::MainStorageProvider(_) => { + let err_msg = "Current node account is a Main Storage Provider. Expected a Backup Storage Provider ID."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + StorageProviderId::BackupStorageProvider(id) => id, + }, + None => { + let err_msg = "Failed to get own BSP ID."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }; + + let available_capacity = self + .storage_hub_handler + .blockchain + .query_available_storage_capacity(own_bsp_id) + .await + .map_err(|e| { + let err_msg = format!("Failed to query available storage capacity: {:?}", e); + error!( + target: LOG_TARGET, + err_msg + ); + anyhow::anyhow!(err_msg) + })?; + + // Increase storage capacity if the available capacity is less than the file size. + if available_capacity < event.size { + warn!( + target: LOG_TARGET, + "Insufficient storage capacity to volunteer for file key: {:?}", + event.file_key + ); + + let current_capacity = self + .storage_hub_handler + .blockchain + .query_storage_provider_capacity(own_bsp_id) + .await + .map_err(|e| { + error!( + target: LOG_TARGET, + "Failed to query storage provider capacity: {:?}", e + ); + anyhow::anyhow!("Failed to query storage provider capacity: {:?}", e) + })?; + + let max_storage_capacity = self + .storage_hub_handler + .provider_config + .max_storage_capacity; + + if max_storage_capacity == current_capacity { + let err_msg = "Reached maximum storage capacity limit. Unable to add more more storage capacity."; + warn!( + target: LOG_TARGET, "{}", err_msg + ); + return Err(anyhow::anyhow!(err_msg)); + } + + let new_capacity = self.calculate_capacity(&event, current_capacity)?; + + let call = storage_hub_runtime::RuntimeCall::Providers( + pallet_storage_providers::Call::change_capacity { new_capacity }, + ); + + let earliest_change_capacity_block = self + .storage_hub_handler + .blockchain + .query_earliest_change_capacity_block(own_bsp_id) + .await + .map_err(|e| { + error!( + target: LOG_TARGET, + "Failed to query storage provider capacity: {:?}", e + ); + anyhow::anyhow!("Failed to query storage provider capacity: {:?}", e) + })?; + + // Wait for the earliest block where the capacity can be changed. + self.storage_hub_handler + .blockchain + .wait_for_block(earliest_change_capacity_block) + .await?; + + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs( + self.storage_hub_handler + .provider_config + .extrinsic_retry_timeout, + )) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + info!( + target: LOG_TARGET, + "Increased storage capacity to {:?} bytes", + new_capacity + ); + + let available_capacity = self + .storage_hub_handler + .blockchain + .query_available_storage_capacity(own_bsp_id) + .await + .map_err(|e| { + error!( + target: LOG_TARGET, + "Failed to query available storage capacity: {:?}", e + ); + anyhow::anyhow!("Failed to query available storage capacity: {:?}", e) + })?; + + // Skip volunteering if the new available capacity is still less than the file size. + if available_capacity < event.size { + let err_msg = "Increased storage capacity is still insufficient to volunteer for file. Skipping volunteering."; + warn!( + target: LOG_TARGET, "{}", err_msg + ); + return Err(anyhow::anyhow!(err_msg)); + } + } + + // Get the file key. + let file_key: FileKey = metadata + .file_key::>() + .as_ref() + .try_into()?; + + self.file_key_cleanup = Some(file_key.into()); + + // Query runtime for the earliest block where the BSP can volunteer for the file. + let earliest_volunteer_tick = self + .storage_hub_handler + .blockchain + .query_file_earliest_volunteer_tick(own_bsp_id, file_key.into()) + .await + .map_err(|e| anyhow!("Failed to query file earliest volunteer block: {:?}", e))?; + + info!( + target: LOG_TARGET, + "Waiting for tick {:?} to volunteer for file {:?}", + earliest_volunteer_tick, + file_key + ); + + // TODO: if the earliest tick is too far away, we should drop the task. + // TODO: based on the limit above, also add a timeout for the task. + self.storage_hub_handler + .blockchain + .wait_for_tick(earliest_volunteer_tick) + .await?; + + // Optimistically register the file for upload in the file transfer service. + // This solves the race condition between the user and the BSP, where the user could react faster + // to the BSP volunteering than the BSP, and therefore initiate a new upload request before the + // BSP has registered the file and peer ID in the file transfer service. + for peer_id in event.user_peer_ids.iter() { + let peer_id = match std::str::from_utf8(&peer_id.as_slice()) { + Ok(str_slice) => PeerId::from_str(str_slice).map_err(|e| { + error!(target: LOG_TARGET, "Failed to convert peer ID to PeerId: {}", e); + e + })?, + Err(e) => return Err(anyhow!("Failed to convert peer ID to a string: {}", e)), + }; + self.storage_hub_handler + .file_transfer + .register_new_file_peer(peer_id, file_key) + .await + .map_err(|e| anyhow!("Failed to register new file peer: {:?}", e))?; + } + + // Also optimistically create file in file storage so we can write uploaded chunks as soon as possible. + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + write_file_storage + .insert_file( + metadata.file_key::>(), + metadata, + ) + .map_err(|e| anyhow!("Failed to insert file in file storage: {:?}", e))?; + drop(write_file_storage); + + // Build extrinsic. + let call = + storage_hub_runtime::RuntimeCall::FileSystem(pallet_file_system::Call::bsp_volunteer { + file_key: H256(file_key.into()), + }); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs( + self.storage_hub_handler + .provider_config + .extrinsic_retry_timeout, + )) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + Ok(()) + } + + /// Calculate the new capacity after adding the required capacity for the file. + /// + /// The new storage capacity will be increased by the jump capacity until it reaches the + /// `max_storage_capacity`. + /// + /// The `max_storage_capacity` is returned if the new capacity exceeds it. + fn calculate_capacity( + &mut self, + event: &NewStorageRequest, + current_capacity: StorageDataUnit, + ) -> Result { + let jump_capacity = self.storage_hub_handler.provider_config.jump_capacity; + let jumps_needed = (event.size + jump_capacity - 1) / jump_capacity; + let jumps = max(jumps_needed, 1); + let bytes_to_add = jumps * jump_capacity; + let required_capacity = current_capacity.checked_add(bytes_to_add).ok_or_else(|| { + anyhow::anyhow!( + "Reached maximum storage capacity limit. Skipping volunteering for file." + ) + })?; + + let max_storage_capacity = self + .storage_hub_handler + .provider_config + .max_storage_capacity; + + let new_capacity = std::cmp::min(required_capacity, max_storage_capacity); + + Ok(new_capacity) + } + + async fn unvolunteer_file(&self, file_key: H256) -> anyhow::Result<()> { + warn!(target: LOG_TARGET, "Unvolunteering file {:?}", file_key); + + // Unregister the file from the file transfer service. + // The error is ignored, as the file might already be unregistered. + let _ = self + .storage_hub_handler + .file_transfer + .unregister_file(file_key.as_ref().into()) + .await; + + // TODO: Send transaction to runtime to unvolunteer the file. + + // Delete the file from the file storage. + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + + // TODO: Handle error + let _ = write_file_storage.delete_file(&file_key); + + Ok(()) + } + + async fn on_file_complete(&self, file_key: &H256) -> anyhow::Result<()> { + info!(target: LOG_TARGET, "File upload complete ({:?})", file_key); + + // Unregister the file from the file transfer service. + self.storage_hub_handler + .file_transfer + .unregister_file((*file_key).into()) + .await + .map_err(|e| anyhow!("File is not registered. This should not happen!: {:?}", e))?; + + // Queue a request to confirm the storing of the file. + self.storage_hub_handler + .blockchain + .queue_confirm_bsp_request(ConfirmStoringRequest::new(*file_key)) + .await?; + + Ok(()) + } +} diff --git a/node/src/tasks/mod.rs b/node/src/tasks/mod.rs index 759463415..e9e8c2e0c 100644 --- a/node/src/tasks/mod.rs +++ b/node/src/tasks/mod.rs @@ -1,192 +1,192 @@ -// TODO: Remove this once we don't need the examples in this file -#![allow(dead_code)] - -pub mod bsp_charge_fees; -pub mod bsp_download_file; -pub mod bsp_submit_proof; -pub mod bsp_upload_file; -pub mod mock_bsp_volunteer; -pub mod mock_sp_react_to_event; -pub mod msp_upload_file; -pub mod sp_slash_provider; -pub mod user_sends_file; - -use crate::services::forest_storage::{ForestStorageCaching, ForestStorageSingle, NoKey}; -use crate::services::handler::StorageHubHandler; -use kvdb::KeyValueDB; -use sc_tracing::tracing::info; -use shc_actors_framework::event_bus::EventHandler; -use shc_blockchain_service::events::{AcceptedBspVolunteer, NewStorageRequest}; -use shc_common::types::StorageProofsMerkleTrieLayout; -use shc_file_manager::in_memory::InMemoryFileStorage; -use shc_file_manager::rocksdb::RocksDbFileStorage; -use shc_file_manager::traits::FileStorage; -use shc_file_transfer_service::events::RemoteUploadRequest; -use shc_forest_manager::traits::{ForestStorage, ForestStorageHandler}; - -pub trait FileStorageT: FileStorage + Send + Sync {} -impl FileStorageT for InMemoryFileStorage {} -impl FileStorageT for RocksDbFileStorage where - DB: KeyValueDB + 'static -{ -} - -pub trait BspForestStorageHandlerT: - ForestStorageHandler + Clone + Send + Sync + 'static -{ -} -impl BspForestStorageHandlerT for ForestStorageSingle where - FS: ForestStorage + Send + Sync + 'static -{ -} - -pub trait MspForestStorageHandlerT: - ForestStorageHandler> + Clone + Send + Sync + 'static -{ -} -impl MspForestStorageHandlerT for ForestStorageCaching, FS> where - FS: ForestStorage + Send + Sync + 'static -{ -} - -// ! The following are examples of task definitions. -pub struct ResolveRemoteUploadRequest -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - _storage_hub_handler: StorageHubHandler, -} - -impl Clone for ResolveRemoteUploadRequest -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - fn clone(&self) -> ResolveRemoteUploadRequest { - Self { - _storage_hub_handler: self._storage_hub_handler.clone(), - } - } -} - -impl ResolveRemoteUploadRequest -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - _storage_hub_handler: storage_hub_handler, - } - } -} - -impl EventHandler for ResolveRemoteUploadRequest -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: RemoteUploadRequest) -> anyhow::Result<()> { - info!( - "[ResolveRemoteUploadRequest] - file location: {:?}", - event.file_key - ); - - // self.storage_hub_handler.storage.store_chunk().await?; - - Ok(()) - } -} - -pub struct NewStorageRequestHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - _storage_hub_handler: StorageHubHandler, -} - -impl NewStorageRequestHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - _storage_hub_handler: storage_hub_handler, - } - } -} - -impl Clone for NewStorageRequestHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - fn clone(&self) -> NewStorageRequestHandler { - Self { - _storage_hub_handler: self._storage_hub_handler.clone(), - } - } -} - -impl EventHandler for NewStorageRequestHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { - info!("[NewStorageRequestHandler] - received event: {:?}", event); - - // TODO: implement - - Ok(()) - } -} - -pub struct AcceptedBspVolunteerHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - _storage_hub_handler: StorageHubHandler, -} - -impl Clone for AcceptedBspVolunteerHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - fn clone(&self) -> AcceptedBspVolunteerHandler { - Self { - _storage_hub_handler: self._storage_hub_handler.clone(), - } - } -} - -impl AcceptedBspVolunteerHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - _storage_hub_handler: storage_hub_handler, - } - } -} - -impl EventHandler for AcceptedBspVolunteerHandler -where - FL: FileStorageT, - FSH: BspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: AcceptedBspVolunteer) -> anyhow::Result<()> { - info!("[NewStorageRequestHandler] - received event: {:?}", event); - - // TODO: implement - - Ok(()) - } -} +// TODO: Remove this once we don't need the examples in this file +#![allow(dead_code)] + +pub mod bsp_charge_fees; +pub mod bsp_download_file; +pub mod bsp_submit_proof; +pub mod bsp_upload_file; +pub mod mock_bsp_volunteer; +pub mod mock_sp_react_to_event; +pub mod msp_upload_file; +pub mod sp_slash_provider; +pub mod user_sends_file; + +use crate::services::forest_storage::{ForestStorageCaching, ForestStorageSingle, NoKey}; +use crate::services::handler::StorageHubHandler; +use kvdb::KeyValueDB; +use sc_tracing::tracing::info; +use shc_actors_framework::event_bus::EventHandler; +use shc_blockchain_service::events::{AcceptedBspVolunteer, NewStorageRequest}; +use shc_common::types::StorageProofsMerkleTrieLayout; +use shc_file_manager::in_memory::InMemoryFileStorage; +use shc_file_manager::rocksdb::RocksDbFileStorage; +use shc_file_manager::traits::FileStorage; +use shc_file_transfer_service::events::RemoteUploadRequest; +use shc_forest_manager::traits::{ForestStorage, ForestStorageHandler}; + +pub trait FileStorageT: FileStorage + Send + Sync {} +impl FileStorageT for InMemoryFileStorage {} +impl FileStorageT for RocksDbFileStorage where + DB: KeyValueDB + 'static +{ +} + +pub trait BspForestStorageHandlerT: + ForestStorageHandler + Clone + Send + Sync + 'static +{ +} +impl BspForestStorageHandlerT for ForestStorageSingle where + FS: ForestStorage + Send + Sync + 'static +{ +} + +pub trait MspForestStorageHandlerT: + ForestStorageHandler> + Clone + Send + Sync + 'static +{ +} +impl MspForestStorageHandlerT for ForestStorageCaching, FS> where + FS: ForestStorage + Send + Sync + 'static +{ +} + +// ! The following are examples of task definitions. +pub struct ResolveRemoteUploadRequest +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + _storage_hub_handler: StorageHubHandler, +} + +impl Clone for ResolveRemoteUploadRequest +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + fn clone(&self) -> ResolveRemoteUploadRequest { + Self { + _storage_hub_handler: self._storage_hub_handler.clone(), + } + } +} + +impl ResolveRemoteUploadRequest +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + _storage_hub_handler: storage_hub_handler, + } + } +} + +impl EventHandler for ResolveRemoteUploadRequest +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: RemoteUploadRequest) -> anyhow::Result<()> { + info!( + "[ResolveRemoteUploadRequest] - file location: {:?}", + event.file_key + ); + + // self.storage_hub_handler.storage.store_chunk().await?; + + Ok(()) + } +} + +pub struct NewStorageRequestHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + _storage_hub_handler: StorageHubHandler, +} + +impl NewStorageRequestHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + _storage_hub_handler: storage_hub_handler, + } + } +} + +impl Clone for NewStorageRequestHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + fn clone(&self) -> NewStorageRequestHandler { + Self { + _storage_hub_handler: self._storage_hub_handler.clone(), + } + } +} + +impl EventHandler for NewStorageRequestHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { + info!("[NewStorageRequestHandler] - received event: {:?}", event); + + // TODO: implement + + Ok(()) + } +} + +pub struct AcceptedBspVolunteerHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + _storage_hub_handler: StorageHubHandler, +} + +impl Clone for AcceptedBspVolunteerHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + fn clone(&self) -> AcceptedBspVolunteerHandler { + Self { + _storage_hub_handler: self._storage_hub_handler.clone(), + } + } +} + +impl AcceptedBspVolunteerHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + _storage_hub_handler: storage_hub_handler, + } + } +} + +impl EventHandler for AcceptedBspVolunteerHandler +where + FL: FileStorageT, + FSH: BspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: AcceptedBspVolunteer) -> anyhow::Result<()> { + info!("[NewStorageRequestHandler] - received event: {:?}", event); + + // TODO: implement + + Ok(()) + } +} diff --git a/node/src/tasks/msp_upload_file.rs b/node/src/tasks/msp_upload_file.rs index fd5818969..508029b97 100644 --- a/node/src/tasks/msp_upload_file.rs +++ b/node/src/tasks/msp_upload_file.rs @@ -1,869 +1,869 @@ -use std::collections::HashMap; -use std::{cmp::max, str::FromStr, time::Duration}; - -use anyhow::anyhow; -use sc_network::PeerId; -use sc_tracing::tracing::*; -use shc_blockchain_service::types::{MspRespondStorageRequest, RespondStorageRequest, Tip}; -use sp_core::{bounded_vec, H256}; -use sp_runtime::AccountId32; - -use crate::services::handler::StorageHubHandler; -use crate::tasks::{FileStorageT, MspForestStorageHandlerT}; -use shc_actors_framework::event_bus::EventHandler; -use shc_blockchain_service::events::ProcessMspRespondStoringRequest; -use shc_blockchain_service::{commands::BlockchainServiceInterface, events::NewStorageRequest}; -use shc_common::types::{ - AcceptedStorageRequestParameters, FileKey, FileMetadata, HashT, MspStorageRequestResponse, - RejectedStorageRequestReason, StorageProofsMerkleTrieLayout, StorageProviderId, -}; -use shc_file_manager::traits::{FileStorageWriteError, FileStorageWriteOutcome}; -use shc_file_transfer_service::{ - commands::FileTransferServiceInterface, events::RemoteUploadRequest, -}; -use shc_forest_manager::traits::ForestStorage; -use storage_hub_runtime::StorageDataUnit; - -const LOG_TARGET: &str = "msp-upload-file-task"; - -const MAX_CONFIRM_STORING_REQUEST_TRY_COUNT: u32 = 3; - -/// MSP Upload File Task: Handles the whole flow of a file being uploaded to a MSP, from -/// the MSP's perspective. -/// -/// The flow is split into three parts, which are represented here as 3 handlers for 3 -/// different events: -/// - [`NewStorageRequest`] event: The first part of the flow. It is triggered by a user -/// submitting a storage request to StorageHub. The MSP will check if it has enough -/// storage capacity to store the file and increase it if necessary (up to a maximum). -/// If the MSP does not have enough capacity still, it will reject the storage request. -/// It will register the user and file key in the registry of the File Transfer Service, -/// which handles incoming p2p upload requests. Finally, it will create a file in the -/// file storage so that it can write uploaded chunks as soon as possible. -/// - [`RemoteUploadRequest`] event: The second part of the flow. It is triggered by a -/// user sending a chunk of the file to the MSP. It checks the proof for the chunk -/// and if it is valid, stores it, until the whole file is stored. Finally the MSP will -/// queue a response to accept storing the file. -/// - [`ProcessMspRespondStoringRequest`] event: The third part of the flow. It is triggered -/// when there are new storage request(s) to respond to. The batch of storage requests -/// will be responded to in a single call to the FileSystem pallet `msp_respond_storage_requests_multiple_buckets` extrinsic -/// which will emit an event that describes the final result of the batch response (i.e. all accepted, -/// rejected and/or failed file keys). The MSP will then apply the necessary deltas to each one of the bucket's -/// forest storage to reflect the result. -pub struct MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - storage_hub_handler: StorageHubHandler, - file_key_cleanup: Option, -} - -impl Clone for MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - fn clone(&self) -> MspUploadFileTask { - Self { - storage_hub_handler: self.storage_hub_handler.clone(), - file_key_cleanup: self.file_key_cleanup, - } - } -} - -impl MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - storage_hub_handler, - file_key_cleanup: None, - } - } -} - -/// Handles the [`NewStorageRequest`] event. -/// -/// This event is triggered by an on-chain event of a user submitting a storage request to StorageHub. -/// -/// This task will: -/// - Check if the MSP has enough storage capacity to store the file and increase it if necessary (up to a maximum). -/// - Register the user and file key in the registry of the File Transfer Service, which handles incoming p2p -/// upload requests. -impl EventHandler for MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Registering user peer for file_key {:?}, location {:?}, fingerprint {:?}", - event.file_key, - event.location, - event.fingerprint - ); - - let result = self.handle_new_storage_request_event(event).await; - if result.is_err() { - if let Some(file_key) = &self.file_key_cleanup { - self.unregister_file(*file_key).await?; - } - } - result - } -} - -/// Handles the `RemoteUploadRequest` event. -/// -/// This event is triggered by a user sending a chunk of the file to the MSP. It checks the proof -/// for the chunk and if it is valid, stores it, until the whole file is stored. -impl EventHandler for MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: RemoteUploadRequest) -> anyhow::Result<()> { - info!(target: LOG_TARGET, "Received remote upload request for file {:?} and peer {:?}", event.file_key, event.peer); - - let proven = match event - .file_key_proof - .proven::() - { - Ok(proven) => { - if proven.len() != 1 { - Err(anyhow::anyhow!("Expected exactly one proven chunk.")) - } else { - Ok(proven[0].clone()) - } - } - Err(e) => Err(anyhow::anyhow!( - "Failed to verify and get proven file key chunks: {:?}", - e - )), - }; - - let bucket_id = match self - .storage_hub_handler - .file_storage - .read() - .await - .get_metadata(&event.file_key.into()) - { - Ok(metadata) => match metadata { - Some(metadata) => H256(metadata.bucket_id.try_into().unwrap()), - None => { - let err_msg = format!("File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", event.file_key); - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }, - Err(e) => { - let err_msg = format!("Failed to get file metadata: {:?}", e); - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }; - - // Reject storage request if the proof is invalid. - let proven = match proven { - Ok(proven) => proven, - Err(e) => { - warn!(target: LOG_TARGET, "{}", e); - - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::ReceivedInvalidProof, - )]) - } - )], - }, - ); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - // Unregister the file. - self.unregister_file(event.file_key.into()).await?; - return Err(e); - } - }; - - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - let write_chunk_result = - write_file_storage.write_chunk(&event.file_key.into(), &proven.key, &proven.data); - // Release the file storage write lock as soon as possible. - drop(write_file_storage); - - match write_chunk_result { - Ok(outcome) => match outcome { - FileStorageWriteOutcome::FileComplete => { - self.on_file_complete(&event.file_key.into()).await?; - } - FileStorageWriteOutcome::FileIncomplete => {} - }, - Err(error) => match error { - FileStorageWriteError::FileChunkAlreadyExists => { - warn!( - target: LOG_TARGET, - "Received duplicate chunk with key: {:?}", - proven.key - ); - - // TODO: Consider informing this to the file transfer service so that it can handle reputation for this peer id. - } - FileStorageWriteError::FileDoesNotExist => { - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) - } - )], - }, - ); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - // Unregister the file. - self.unregister_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!("File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", event.file_key))); - } - FileStorageWriteError::FailedToGetFileChunk - | FileStorageWriteError::FailedToInsertFileChunk - | FileStorageWriteError::FailedToDeleteChunk - | FileStorageWriteError::FailedToPersistChanges - | FileStorageWriteError::FailedToParseFileMetadata - | FileStorageWriteError::FailedToParseFingerprint - | FileStorageWriteError::FailedToReadStorage - | FileStorageWriteError::FailedToUpdatePartialRoot - | FileStorageWriteError::FailedToParsePartialRoot - | FileStorageWriteError::FailedToGetStoredChunksCount => { - // This internal error should not happen. - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) - } - )], - }, - ); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - // Unregister the file. - self.unregister_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!( - "Internal trie read/write error {:?}:{:?}", - event.file_key, proven.key - ))); - } - FileStorageWriteError::FingerprintAndStoredFileMismatch => { - // This should never happen, given that the first check in the handler is verifying the proof. - // This means that something is seriously wrong, so we error out the whole task. - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) - } - )], - }, - ); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - // Unregister the file. - self.unregister_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!( - "Invariant broken! This is a bug! Fingerprint and stored file mismatch for key {:?}.", - event.file_key - ))); - } - FileStorageWriteError::FailedToConstructTrieIter => { - // This should never happen for a well constructed trie. - // This means that something is seriously wrong, so we error out the whole task. - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - bucket_id, - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::InternalError - )]) - } - )], - }, - ); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - // Unregister the file. - self.unregister_file(event.file_key.into()).await?; - - return Err(anyhow::anyhow!(format!( - "This is a bug! Failed to construct trie iter for key {:?}.", - event.file_key - ))); - } - }, - } - - Ok(()) - } -} - -/// Handles the `ProcessMspRespondStoringRequest` event. -/// -/// Triggered when there are new storage request(s) to respond to. Normally, storage requests are -/// immidiately rejected if the MSP cannot store the file (e.g. not enough capacity). However, this event -/// is able to respond to storage requests that are either being accepted or rejected either way. -/// -/// The MSP will call the `msp_respond_storage_requests_multiple_buckets` extrinsic on the FileSystem pallet to respond to the -/// storage requests. -impl EventHandler for MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - async fn handle_event(&mut self, event: ProcessMspRespondStoringRequest) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Processing ProcessMspRespondStoringRequest: {:?}", - event.data.respond_storing_requests, - ); - - let forest_root_write_tx = match event.forest_root_write_tx.lock().await.take() { - Some(tx) => tx, - None => { - let err_msg = "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken. This is a critical bug. Please report it to the StorageHub team."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }; - - let own_provider_id = self - .storage_hub_handler - .blockchain - .query_storage_provider_id(None) - .await?; - - let own_msp_id = match own_provider_id { - Some(StorageProviderId::MainStorageProvider(id)) => id, - Some(StorageProviderId::BackupStorageProvider(_)) => { - return Err(anyhow!("Current node account is a Backup Storage Provider. Expected a Main Storage Provider ID.")); - } - None => { - return Err(anyhow!("Failed to get own MSP ID.")); - } - }; - - let mut file_key_responses: HashMap< - H256, - (Vec<(H256, _)>, Vec<(H256, RejectedStorageRequestReason)>), - > = HashMap::new(); - let read_file_storage = self.storage_hub_handler.file_storage.read().await; - - for respond in &event.data.respond_storing_requests { - let bucket_id = match read_file_storage.get_metadata(&respond.file_key) { - Ok(Some(metadata)) => H256(metadata.bucket_id.try_into().unwrap()), - Ok(None) => { - error!(target: LOG_TARGET, "File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", respond.file_key); - continue; - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to get file metadata: {:?}", e); - continue; - } - }; - - let entry = file_key_responses - .entry(bucket_id) - .or_insert_with(|| (Vec::new(), Vec::new())); - - match &respond.response { - MspRespondStorageRequest::Accept => { - let chunks_to_prove = match self - .storage_hub_handler - .blockchain - .query_msp_confirm_chunks_to_prove_for_file(own_msp_id, respond.file_key) - .await - { - Ok(chunks) => chunks, - Err(e) => { - error!(target: LOG_TARGET, "Failed to get chunks to prove: {:?}", e); - continue; - } - }; - - let proof = match read_file_storage - .generate_proof(&respond.file_key, &chunks_to_prove) - { - Ok(p) => p, - Err(e) => { - error!(target: LOG_TARGET, "Failed to generate proof: {:?}", e); - continue; - } - }; - - entry.0.push((respond.file_key, proof)); - } - MspRespondStorageRequest::Reject(reason) => { - entry.1.push((respond.file_key, reason.clone())); - } - } - } - - drop(read_file_storage); - - let mut final_responses: HashMap = HashMap::new(); - - for (bucket_id, (accepts, rejects)) in file_key_responses.iter_mut() { - let fs = match self - .storage_hub_handler - .forest_storage_handler - .get(&bucket_id.as_ref().to_vec()) - .await - { - Some(fs) => fs, - None => { - error!(target: LOG_TARGET, "Failed to get forest storage for bucket {:?}", bucket_id); - continue; - } - }; - - let file_keys: Vec<_> = accepts.iter().map(|(file_key, _)| *file_key).collect(); - - let non_inclusion_forest_proof = match fs.read().await.generate_proof(file_keys) { - Ok(proof) => proof, - Err(e) => { - error!(target: LOG_TARGET, "Failed to generate non-inclusion forest proof: {:?}", e); - continue; - } - }; - - let file_metadatas: Vec<_> = { - let read_file_storage = self.storage_hub_handler.file_storage.read().await; - accepts - .iter() - .filter_map(|(file_key, _)| { - read_file_storage.get_metadata(file_key).ok().flatten() - }) - .collect() - }; - - if let Err(e) = fs.write().await.insert_files_metadata(&file_metadatas) { - error!(target: LOG_TARGET, "Failed to insert file metadata: {:?}", e); - continue; - } - - let response = MspStorageRequestResponse { - accept: if !accepts.is_empty() { - Some(AcceptedStorageRequestParameters { - file_keys_and_proofs: accepts - .clone() - .try_into() - .map_err(|_| anyhow!("Failed to convert accepts to bounded vec"))?, - non_inclusion_forest_proof: non_inclusion_forest_proof.proof, - }) - } else { - None - }, - reject: if !rejects.is_empty() { - Some( - rejects - .clone() - .try_into() - .map_err(|_| anyhow!("Failed to convert rejects to bounded vec"))?, - ) - } else { - None - }, - }; - - final_responses.insert(*bucket_id, response); - } - - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: final_responses - .into_iter() - .collect::>() - .try_into() - .map_err(|_| anyhow!("Failed to convert file key responses to bounded vec"))?, - }, - ); - - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - let _ = forest_root_write_tx.send(()); - - Ok(()) - } -} - -impl MspUploadFileTask -where - FL: FileStorageT, - FSH: MspForestStorageHandlerT, -{ - async fn handle_new_storage_request_event( - &mut self, - event: NewStorageRequest, - ) -> anyhow::Result<()> { - // Construct file metadata. - let metadata = FileMetadata { - owner: >::as_ref(&event.who).to_vec(), - bucket_id: event.bucket_id.as_ref().to_vec(), - file_size: event.size as u64, - fingerprint: event.fingerprint, - location: event.location.to_vec(), - }; - - let own_provider_id = self - .storage_hub_handler - .blockchain - .query_storage_provider_id(None) - .await?; - - let own_msp_id = match own_provider_id { - Some(id) => match id { - StorageProviderId::MainStorageProvider(id) => id, - StorageProviderId::BackupStorageProvider(_) => { - let err_msg = "Current node account is a Backup Storage Provider. Expected a Main Storage Provider ID."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }, - None => { - let err_msg = "Failed to get own MSP ID."; - error!(target: LOG_TARGET, err_msg); - return Err(anyhow!(err_msg)); - } - }; - - let available_capacity = self - .storage_hub_handler - .blockchain - .query_available_storage_capacity(own_msp_id) - .await - .map_err(|e| { - let err_msg = format!("Failed to query available storage capacity: {:?}", e); - error!( - target: LOG_TARGET, - err_msg - ); - anyhow::anyhow!(err_msg) - })?; - - // Increase storage capacity if the available capacity is less than the file size. - if available_capacity < event.size { - warn!( - target: LOG_TARGET, - "Insufficient storage capacity to accept file: {:?}", - event.file_key - ); - - let current_capacity = self - .storage_hub_handler - .blockchain - .query_storage_provider_capacity(own_msp_id) - .await - .map_err(|e| { - let err_msg = format!("Failed to query storage provider capacity: {:?}", e); - error!( - target: LOG_TARGET, - err_msg - ); - anyhow::anyhow!(err_msg) - })?; - - let max_storage_capacity = self - .storage_hub_handler - .provider_config - .max_storage_capacity; - - if max_storage_capacity == current_capacity { - let err_msg = "Reached maximum storage capacity limit. Unable to add more more storage capacity."; - warn!( - target: LOG_TARGET, err_msg - ); - return Err(anyhow::anyhow!(err_msg)); - } - - let new_capacity = self.calculate_capacity(&event, current_capacity)?; - - let call = storage_hub_runtime::RuntimeCall::Providers( - pallet_storage_providers::Call::change_capacity { new_capacity }, - ); - - let earliest_change_capacity_block = self - .storage_hub_handler - .blockchain - .query_earliest_change_capacity_block(own_msp_id) - .await - .map_err(|e| { - error!( - target: LOG_TARGET, - "Failed to query storage provider capacity: {:?}", e - ); - anyhow::anyhow!("Failed to query storage provider capacity: {:?}", e) - })?; - - // Wait for the earliest block where the capacity can be changed. - self.storage_hub_handler - .blockchain - .wait_for_block(earliest_change_capacity_block) - .await?; - - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - info!( - target: LOG_TARGET, - "Increased storage capacity to {:?} bytes", - new_capacity - ); - - let available_capacity = self - .storage_hub_handler - .blockchain - .query_available_storage_capacity(own_msp_id) - .await - .map_err(|e| { - error!( - target: LOG_TARGET, - "Failed to query available storage capacity: {:?}", e - ); - anyhow::anyhow!("Failed to query available storage capacity: {:?}", e) - })?; - - // Reject storage request if the new available capacity is still less than the file size. - if available_capacity < event.size { - let err_msg = "Increased storage capacity is still insufficient to volunteer for file. Rejecting storage request."; - warn!( - target: LOG_TARGET, "{}", err_msg - ); - - // Build extrinsic. - let call = storage_hub_runtime::RuntimeCall::FileSystem( - pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { - file_key_responses_input: bounded_vec![( - H256(metadata.bucket_id.try_into().map_err(|e| { - let err_msg = - format!("Failed to convert bucket ID to [u8; 32]: {:?}", e); - error!( - target: LOG_TARGET, - err_msg - ); - anyhow::anyhow!(err_msg) - })?), - MspStorageRequestResponse { - accept: None, - reject: Some(bounded_vec![( - H256(event.file_key.into()), - RejectedStorageRequestReason::ReachedMaximumCapacity, - )]) - } - )], - }, - ); - - // Send extrinsic and wait for it to be included in the block. - self.storage_hub_handler - .blockchain - .send_extrinsic(call, Tip::from(0)) - .await? - .with_timeout(Duration::from_secs(60)) - .watch_for_success(&self.storage_hub_handler.blockchain) - .await?; - - return Err(anyhow::anyhow!(err_msg)); - } - } - - // Get the file key. - let file_key: FileKey = metadata - .file_key::>() - .as_ref() - .try_into()?; - - self.file_key_cleanup = Some(file_key.into()); - - // Register the file for upload in the file transfer service. - for peer_id in event.user_peer_ids.iter() { - let peer_id = match std::str::from_utf8(&peer_id.as_slice()) { - Ok(str_slice) => PeerId::from_str(str_slice).map_err(|e| { - error!(target: LOG_TARGET, "Failed to convert peer ID to PeerId: {}", e); - e - })?, - Err(e) => return Err(anyhow!("Failed to convert peer ID to a string: {}", e)), - }; - self.storage_hub_handler - .file_transfer - .register_new_file_peer(peer_id, file_key) - .await - .map_err(|e| anyhow!("Failed to register new file peer: {:?}", e))?; - } - - // Create file in file storage so we can write uploaded chunks as soon as possible. - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - write_file_storage - .insert_file( - metadata.file_key::>(), - metadata, - ) - .map_err(|e| anyhow!("Failed to insert file in file storage: {:?}", e))?; - drop(write_file_storage); - - Ok(()) - } - - /// Calculate the new capacity after adding the required capacity for the file. - /// - /// The new storage capacity will be increased by the jump capacity until it reaches the - /// `max_storage_capacity`. - /// - /// The `max_storage_capacity` is returned if the new capacity exceeds it. - fn calculate_capacity( - &mut self, - event: &NewStorageRequest, - current_capacity: StorageDataUnit, - ) -> Result { - let jump_capacity = self.storage_hub_handler.provider_config.jump_capacity; - let jumps_needed = (event.size + jump_capacity - 1) / jump_capacity; - let jumps = max(jumps_needed, 1); - let bytes_to_add = jumps * jump_capacity; - let required_capacity = current_capacity.checked_add(bytes_to_add).ok_or_else(|| { - anyhow::anyhow!( - "Reached maximum storage capacity limit. Skipping volunteering for file." - ) - })?; - - let max_storage_capacity = self - .storage_hub_handler - .provider_config - .max_storage_capacity; - - let new_capacity = std::cmp::min(required_capacity, max_storage_capacity); - - Ok(new_capacity) - } - - async fn unregister_file(&self, file_key: H256) -> anyhow::Result<()> { - warn!(target: LOG_TARGET, "Unregistering file {:?}", file_key); - - // Unregister the file from the file transfer service. - // The error is ignored, as the file might already be unregistered. - let _ = self - .storage_hub_handler - .file_transfer - .unregister_file(file_key.as_ref().into()) - .await; - - // Delete the file from the file storage. - let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; - - // TODO: Handle error - let _ = write_file_storage.delete_file(&file_key); - - Ok(()) - } - - async fn on_file_complete(&self, file_key: &H256) -> anyhow::Result<()> { - info!(target: LOG_TARGET, "File upload complete ({:?})", file_key); - - // Unregister the file from the file transfer service. - self.storage_hub_handler - .file_transfer - .unregister_file((*file_key).into()) - .await - .map_err(|e| anyhow!("File is not registered. This should not happen!: {:?}", e))?; - - // Queue a request to confirm the storing of the file. - self.storage_hub_handler - .blockchain - .queue_msp_respond_storage_request(RespondStorageRequest::new( - *file_key, - MspRespondStorageRequest::Accept, - )) - .await?; - - Ok(()) - } -} +use std::collections::HashMap; +use std::{cmp::max, str::FromStr, time::Duration}; + +use anyhow::anyhow; +use sc_network::PeerId; +use sc_tracing::tracing::*; +use shc_blockchain_service::types::{MspRespondStorageRequest, RespondStorageRequest, Tip}; +use sp_core::{bounded_vec, H256}; +use sp_runtime::AccountId32; + +use crate::services::handler::StorageHubHandler; +use crate::tasks::{FileStorageT, MspForestStorageHandlerT}; +use shc_actors_framework::event_bus::EventHandler; +use shc_blockchain_service::events::ProcessMspRespondStoringRequest; +use shc_blockchain_service::{commands::BlockchainServiceInterface, events::NewStorageRequest}; +use shc_common::types::{ + AcceptedStorageRequestParameters, FileKey, FileMetadata, HashT, MspStorageRequestResponse, + RejectedStorageRequestReason, StorageProofsMerkleTrieLayout, StorageProviderId, +}; +use shc_file_manager::traits::{FileStorageWriteError, FileStorageWriteOutcome}; +use shc_file_transfer_service::{ + commands::FileTransferServiceInterface, events::RemoteUploadRequest, +}; +use shc_forest_manager::traits::ForestStorage; +use storage_hub_runtime::StorageDataUnit; + +const LOG_TARGET: &str = "msp-upload-file-task"; + +const MAX_CONFIRM_STORING_REQUEST_TRY_COUNT: u32 = 3; + +/// MSP Upload File Task: Handles the whole flow of a file being uploaded to a MSP, from +/// the MSP's perspective. +/// +/// The flow is split into three parts, which are represented here as 3 handlers for 3 +/// different events: +/// - [`NewStorageRequest`] event: The first part of the flow. It is triggered by a user +/// submitting a storage request to StorageHub. The MSP will check if it has enough +/// storage capacity to store the file and increase it if necessary (up to a maximum). +/// If the MSP does not have enough capacity still, it will reject the storage request. +/// It will register the user and file key in the registry of the File Transfer Service, +/// which handles incoming p2p upload requests. Finally, it will create a file in the +/// file storage so that it can write uploaded chunks as soon as possible. +/// - [`RemoteUploadRequest`] event: The second part of the flow. It is triggered by a +/// user sending a chunk of the file to the MSP. It checks the proof for the chunk +/// and if it is valid, stores it, until the whole file is stored. Finally the MSP will +/// queue a response to accept storing the file. +/// - [`ProcessMspRespondStoringRequest`] event: The third part of the flow. It is triggered +/// when there are new storage request(s) to respond to. The batch of storage requests +/// will be responded to in a single call to the FileSystem pallet `msp_respond_storage_requests_multiple_buckets` extrinsic +/// which will emit an event that describes the final result of the batch response (i.e. all accepted, +/// rejected and/or failed file keys). The MSP will then apply the necessary deltas to each one of the bucket's +/// forest storage to reflect the result. +pub struct MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + storage_hub_handler: StorageHubHandler, + file_key_cleanup: Option, +} + +impl Clone for MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + fn clone(&self) -> MspUploadFileTask { + Self { + storage_hub_handler: self.storage_hub_handler.clone(), + file_key_cleanup: self.file_key_cleanup, + } + } +} + +impl MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + storage_hub_handler, + file_key_cleanup: None, + } + } +} + +/// Handles the [`NewStorageRequest`] event. +/// +/// This event is triggered by an on-chain event of a user submitting a storage request to StorageHub. +/// +/// This task will: +/// - Check if the MSP has enough storage capacity to store the file and increase it if necessary (up to a maximum). +/// - Register the user and file key in the registry of the File Transfer Service, which handles incoming p2p +/// upload requests. +impl EventHandler for MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Registering user peer for file_key {:?}, location {:?}, fingerprint {:?}", + event.file_key, + event.location, + event.fingerprint + ); + + let result = self.handle_new_storage_request_event(event).await; + if result.is_err() { + if let Some(file_key) = &self.file_key_cleanup { + self.unregister_file(*file_key).await?; + } + } + result + } +} + +/// Handles the `RemoteUploadRequest` event. +/// +/// This event is triggered by a user sending a chunk of the file to the MSP. It checks the proof +/// for the chunk and if it is valid, stores it, until the whole file is stored. +impl EventHandler for MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: RemoteUploadRequest) -> anyhow::Result<()> { + info!(target: LOG_TARGET, "Received remote upload request for file {:?} and peer {:?}", event.file_key, event.peer); + + let proven = match event + .file_key_proof + .proven::() + { + Ok(proven) => { + if proven.len() != 1 { + Err(anyhow::anyhow!("Expected exactly one proven chunk.")) + } else { + Ok(proven[0].clone()) + } + } + Err(e) => Err(anyhow::anyhow!( + "Failed to verify and get proven file key chunks: {:?}", + e + )), + }; + + let bucket_id = match self + .storage_hub_handler + .file_storage + .read() + .await + .get_metadata(&event.file_key.into()) + { + Ok(metadata) => match metadata { + Some(metadata) => H256(metadata.bucket_id.try_into().unwrap()), + None => { + let err_msg = format!("File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", event.file_key); + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }, + Err(e) => { + let err_msg = format!("Failed to get file metadata: {:?}", e); + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }; + + // Reject storage request if the proof is invalid. + let proven = match proven { + Ok(proven) => proven, + Err(e) => { + warn!(target: LOG_TARGET, "{}", e); + + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: bounded_vec![( + bucket_id, + MspStorageRequestResponse { + accept: None, + reject: Some(bounded_vec![( + H256(event.file_key.into()), + RejectedStorageRequestReason::ReceivedInvalidProof, + )]) + } + )], + }, + ); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + // Unregister the file. + self.unregister_file(event.file_key.into()).await?; + return Err(e); + } + }; + + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + let write_chunk_result = + write_file_storage.write_chunk(&event.file_key.into(), &proven.key, &proven.data); + // Release the file storage write lock as soon as possible. + drop(write_file_storage); + + match write_chunk_result { + Ok(outcome) => match outcome { + FileStorageWriteOutcome::FileComplete => { + self.on_file_complete(&event.file_key.into()).await?; + } + FileStorageWriteOutcome::FileIncomplete => {} + }, + Err(error) => match error { + FileStorageWriteError::FileChunkAlreadyExists => { + warn!( + target: LOG_TARGET, + "Received duplicate chunk with key: {:?}", + proven.key + ); + + // TODO: Consider informing this to the file transfer service so that it can handle reputation for this peer id. + } + FileStorageWriteError::FileDoesNotExist => { + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: bounded_vec![( + bucket_id, + MspStorageRequestResponse { + accept: None, + reject: Some(bounded_vec![( + H256(event.file_key.into()), + RejectedStorageRequestReason::InternalError + )]) + } + )], + }, + ); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + // Unregister the file. + self.unregister_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!("File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", event.file_key))); + } + FileStorageWriteError::FailedToGetFileChunk + | FileStorageWriteError::FailedToInsertFileChunk + | FileStorageWriteError::FailedToDeleteChunk + | FileStorageWriteError::FailedToPersistChanges + | FileStorageWriteError::FailedToParseFileMetadata + | FileStorageWriteError::FailedToParseFingerprint + | FileStorageWriteError::FailedToReadStorage + | FileStorageWriteError::FailedToUpdatePartialRoot + | FileStorageWriteError::FailedToParsePartialRoot + | FileStorageWriteError::FailedToGetStoredChunksCount => { + // This internal error should not happen. + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: bounded_vec![( + bucket_id, + MspStorageRequestResponse { + accept: None, + reject: Some(bounded_vec![( + H256(event.file_key.into()), + RejectedStorageRequestReason::InternalError + )]) + } + )], + }, + ); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + // Unregister the file. + self.unregister_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!( + "Internal trie read/write error {:?}:{:?}", + event.file_key, proven.key + ))); + } + FileStorageWriteError::FingerprintAndStoredFileMismatch => { + // This should never happen, given that the first check in the handler is verifying the proof. + // This means that something is seriously wrong, so we error out the whole task. + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: bounded_vec![( + bucket_id, + MspStorageRequestResponse { + accept: None, + reject: Some(bounded_vec![( + H256(event.file_key.into()), + RejectedStorageRequestReason::InternalError + )]) + } + )], + }, + ); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + // Unregister the file. + self.unregister_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!( + "Invariant broken! This is a bug! Fingerprint and stored file mismatch for key {:?}.", + event.file_key + ))); + } + FileStorageWriteError::FailedToConstructTrieIter => { + // This should never happen for a well constructed trie. + // This means that something is seriously wrong, so we error out the whole task. + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: bounded_vec![( + bucket_id, + MspStorageRequestResponse { + accept: None, + reject: Some(bounded_vec![( + H256(event.file_key.into()), + RejectedStorageRequestReason::InternalError + )]) + } + )], + }, + ); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + // Unregister the file. + self.unregister_file(event.file_key.into()).await?; + + return Err(anyhow::anyhow!(format!( + "This is a bug! Failed to construct trie iter for key {:?}.", + event.file_key + ))); + } + }, + } + + Ok(()) + } +} + +/// Handles the `ProcessMspRespondStoringRequest` event. +/// +/// Triggered when there are new storage request(s) to respond to. Normally, storage requests are +/// immidiately rejected if the MSP cannot store the file (e.g. not enough capacity). However, this event +/// is able to respond to storage requests that are either being accepted or rejected either way. +/// +/// The MSP will call the `msp_respond_storage_requests_multiple_buckets` extrinsic on the FileSystem pallet to respond to the +/// storage requests. +impl EventHandler for MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + async fn handle_event(&mut self, event: ProcessMspRespondStoringRequest) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Processing ProcessMspRespondStoringRequest: {:?}", + event.data.respond_storing_requests, + ); + + let forest_root_write_tx = match event.forest_root_write_tx.lock().await.take() { + Some(tx) => tx, + None => { + let err_msg = "CRITICAL❗️❗️ This is a bug! Forest root write tx already taken. This is a critical bug. Please report it to the StorageHub team."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }; + + let own_provider_id = self + .storage_hub_handler + .blockchain + .query_storage_provider_id(None) + .await?; + + let own_msp_id = match own_provider_id { + Some(StorageProviderId::MainStorageProvider(id)) => id, + Some(StorageProviderId::BackupStorageProvider(_)) => { + return Err(anyhow!("Current node account is a Backup Storage Provider. Expected a Main Storage Provider ID.")); + } + None => { + return Err(anyhow!("Failed to get own MSP ID.")); + } + }; + + let mut file_key_responses: HashMap< + H256, + (Vec<(H256, _)>, Vec<(H256, RejectedStorageRequestReason)>), + > = HashMap::new(); + let read_file_storage = self.storage_hub_handler.file_storage.read().await; + + for respond in &event.data.respond_storing_requests { + let bucket_id = match read_file_storage.get_metadata(&respond.file_key) { + Ok(Some(metadata)) => H256(metadata.bucket_id.try_into().unwrap()), + Ok(None) => { + error!(target: LOG_TARGET, "File does not exist for key {:?}. Maybe we forgot to unregister before deleting?", respond.file_key); + continue; + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to get file metadata: {:?}", e); + continue; + } + }; + + let entry = file_key_responses + .entry(bucket_id) + .or_insert_with(|| (Vec::new(), Vec::new())); + + match &respond.response { + MspRespondStorageRequest::Accept => { + let chunks_to_prove = match self + .storage_hub_handler + .blockchain + .query_msp_confirm_chunks_to_prove_for_file(own_msp_id, respond.file_key) + .await + { + Ok(chunks) => chunks, + Err(e) => { + error!(target: LOG_TARGET, "Failed to get chunks to prove: {:?}", e); + continue; + } + }; + + let proof = match read_file_storage + .generate_proof(&respond.file_key, &chunks_to_prove) + { + Ok(p) => p, + Err(e) => { + error!(target: LOG_TARGET, "Failed to generate proof: {:?}", e); + continue; + } + }; + + entry.0.push((respond.file_key, proof)); + } + MspRespondStorageRequest::Reject(reason) => { + entry.1.push((respond.file_key, reason.clone())); + } + } + } + + drop(read_file_storage); + + let mut final_responses: HashMap = HashMap::new(); + + for (bucket_id, (accepts, rejects)) in file_key_responses.iter_mut() { + let fs = match self + .storage_hub_handler + .forest_storage_handler + .get(&bucket_id.as_ref().to_vec()) + .await + { + Some(fs) => fs, + None => { + error!(target: LOG_TARGET, "Failed to get forest storage for bucket {:?}", bucket_id); + continue; + } + }; + + let file_keys: Vec<_> = accepts.iter().map(|(file_key, _)| *file_key).collect(); + + let non_inclusion_forest_proof = match fs.read().await.generate_proof(file_keys) { + Ok(proof) => proof, + Err(e) => { + error!(target: LOG_TARGET, "Failed to generate non-inclusion forest proof: {:?}", e); + continue; + } + }; + + let file_metadatas: Vec<_> = { + let read_file_storage = self.storage_hub_handler.file_storage.read().await; + accepts + .iter() + .filter_map(|(file_key, _)| { + read_file_storage.get_metadata(file_key).ok().flatten() + }) + .collect() + }; + + if let Err(e) = fs.write().await.insert_files_metadata(&file_metadatas) { + error!(target: LOG_TARGET, "Failed to insert file metadata: {:?}", e); + continue; + } + + let response = MspStorageRequestResponse { + accept: if !accepts.is_empty() { + Some(AcceptedStorageRequestParameters { + file_keys_and_proofs: accepts + .clone() + .try_into() + .map_err(|_| anyhow!("Failed to convert accepts to bounded vec"))?, + non_inclusion_forest_proof: non_inclusion_forest_proof.proof, + }) + } else { + None + }, + reject: if !rejects.is_empty() { + Some( + rejects + .clone() + .try_into() + .map_err(|_| anyhow!("Failed to convert rejects to bounded vec"))?, + ) + } else { + None + }, + }; + + final_responses.insert(*bucket_id, response); + } + + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: final_responses + .into_iter() + .collect::>() + .try_into() + .map_err(|_| anyhow!("Failed to convert file key responses to bounded vec"))?, + }, + ); + + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + let _ = forest_root_write_tx.send(()); + + Ok(()) + } +} + +impl MspUploadFileTask +where + FL: FileStorageT, + FSH: MspForestStorageHandlerT, +{ + async fn handle_new_storage_request_event( + &mut self, + event: NewStorageRequest, + ) -> anyhow::Result<()> { + // Construct file metadata. + let metadata = FileMetadata { + owner: >::as_ref(&event.who).to_vec(), + bucket_id: event.bucket_id.as_ref().to_vec(), + file_size: event.size as u64, + fingerprint: event.fingerprint, + location: event.location.to_vec(), + }; + + let own_provider_id = self + .storage_hub_handler + .blockchain + .query_storage_provider_id(None) + .await?; + + let own_msp_id = match own_provider_id { + Some(id) => match id { + StorageProviderId::MainStorageProvider(id) => id, + StorageProviderId::BackupStorageProvider(_) => { + let err_msg = "Current node account is a Backup Storage Provider. Expected a Main Storage Provider ID."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }, + None => { + let err_msg = "Failed to get own MSP ID."; + error!(target: LOG_TARGET, err_msg); + return Err(anyhow!(err_msg)); + } + }; + + let available_capacity = self + .storage_hub_handler + .blockchain + .query_available_storage_capacity(own_msp_id) + .await + .map_err(|e| { + let err_msg = format!("Failed to query available storage capacity: {:?}", e); + error!( + target: LOG_TARGET, + err_msg + ); + anyhow::anyhow!(err_msg) + })?; + + // Increase storage capacity if the available capacity is less than the file size. + if available_capacity < event.size { + warn!( + target: LOG_TARGET, + "Insufficient storage capacity to accept file: {:?}", + event.file_key + ); + + let current_capacity = self + .storage_hub_handler + .blockchain + .query_storage_provider_capacity(own_msp_id) + .await + .map_err(|e| { + let err_msg = format!("Failed to query storage provider capacity: {:?}", e); + error!( + target: LOG_TARGET, + err_msg + ); + anyhow::anyhow!(err_msg) + })?; + + let max_storage_capacity = self + .storage_hub_handler + .provider_config + .max_storage_capacity; + + if max_storage_capacity == current_capacity { + let err_msg = "Reached maximum storage capacity limit. Unable to add more more storage capacity."; + warn!( + target: LOG_TARGET, err_msg + ); + return Err(anyhow::anyhow!(err_msg)); + } + + let new_capacity = self.calculate_capacity(&event, current_capacity)?; + + let call = storage_hub_runtime::RuntimeCall::Providers( + pallet_storage_providers::Call::change_capacity { new_capacity }, + ); + + let earliest_change_capacity_block = self + .storage_hub_handler + .blockchain + .query_earliest_change_capacity_block(own_msp_id) + .await + .map_err(|e| { + error!( + target: LOG_TARGET, + "Failed to query storage provider capacity: {:?}", e + ); + anyhow::anyhow!("Failed to query storage provider capacity: {:?}", e) + })?; + + // Wait for the earliest block where the capacity can be changed. + self.storage_hub_handler + .blockchain + .wait_for_block(earliest_change_capacity_block) + .await?; + + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + info!( + target: LOG_TARGET, + "Increased storage capacity to {:?} bytes", + new_capacity + ); + + let available_capacity = self + .storage_hub_handler + .blockchain + .query_available_storage_capacity(own_msp_id) + .await + .map_err(|e| { + error!( + target: LOG_TARGET, + "Failed to query available storage capacity: {:?}", e + ); + anyhow::anyhow!("Failed to query available storage capacity: {:?}", e) + })?; + + // Reject storage request if the new available capacity is still less than the file size. + if available_capacity < event.size { + let err_msg = "Increased storage capacity is still insufficient to volunteer for file. Rejecting storage request."; + warn!( + target: LOG_TARGET, "{}", err_msg + ); + + // Build extrinsic. + let call = storage_hub_runtime::RuntimeCall::FileSystem( + pallet_file_system::Call::msp_respond_storage_requests_multiple_buckets { + file_key_responses_input: bounded_vec![( + H256(metadata.bucket_id.try_into().map_err(|e| { + let err_msg = + format!("Failed to convert bucket ID to [u8; 32]: {:?}", e); + error!( + target: LOG_TARGET, + err_msg + ); + anyhow::anyhow!(err_msg) + })?), + MspStorageRequestResponse { + accept: None, + reject: Some(bounded_vec![( + H256(event.file_key.into()), + RejectedStorageRequestReason::ReachedMaximumCapacity, + )]) + } + )], + }, + ); + + // Send extrinsic and wait for it to be included in the block. + self.storage_hub_handler + .blockchain + .send_extrinsic(call, Tip::from(0)) + .await? + .with_timeout(Duration::from_secs(60)) + .watch_for_success(&self.storage_hub_handler.blockchain) + .await?; + + return Err(anyhow::anyhow!(err_msg)); + } + } + + // Get the file key. + let file_key: FileKey = metadata + .file_key::>() + .as_ref() + .try_into()?; + + self.file_key_cleanup = Some(file_key.into()); + + // Register the file for upload in the file transfer service. + for peer_id in event.user_peer_ids.iter() { + let peer_id = match std::str::from_utf8(&peer_id.as_slice()) { + Ok(str_slice) => PeerId::from_str(str_slice).map_err(|e| { + error!(target: LOG_TARGET, "Failed to convert peer ID to PeerId: {}", e); + e + })?, + Err(e) => return Err(anyhow!("Failed to convert peer ID to a string: {}", e)), + }; + self.storage_hub_handler + .file_transfer + .register_new_file_peer(peer_id, file_key) + .await + .map_err(|e| anyhow!("Failed to register new file peer: {:?}", e))?; + } + + // Create file in file storage so we can write uploaded chunks as soon as possible. + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + write_file_storage + .insert_file( + metadata.file_key::>(), + metadata, + ) + .map_err(|e| anyhow!("Failed to insert file in file storage: {:?}", e))?; + drop(write_file_storage); + + Ok(()) + } + + /// Calculate the new capacity after adding the required capacity for the file. + /// + /// The new storage capacity will be increased by the jump capacity until it reaches the + /// `max_storage_capacity`. + /// + /// The `max_storage_capacity` is returned if the new capacity exceeds it. + fn calculate_capacity( + &mut self, + event: &NewStorageRequest, + current_capacity: StorageDataUnit, + ) -> Result { + let jump_capacity = self.storage_hub_handler.provider_config.jump_capacity; + let jumps_needed = (event.size + jump_capacity - 1) / jump_capacity; + let jumps = max(jumps_needed, 1); + let bytes_to_add = jumps * jump_capacity; + let required_capacity = current_capacity.checked_add(bytes_to_add).ok_or_else(|| { + anyhow::anyhow!( + "Reached maximum storage capacity limit. Skipping volunteering for file." + ) + })?; + + let max_storage_capacity = self + .storage_hub_handler + .provider_config + .max_storage_capacity; + + let new_capacity = std::cmp::min(required_capacity, max_storage_capacity); + + Ok(new_capacity) + } + + async fn unregister_file(&self, file_key: H256) -> anyhow::Result<()> { + warn!(target: LOG_TARGET, "Unregistering file {:?}", file_key); + + // Unregister the file from the file transfer service. + // The error is ignored, as the file might already be unregistered. + let _ = self + .storage_hub_handler + .file_transfer + .unregister_file(file_key.as_ref().into()) + .await; + + // Delete the file from the file storage. + let mut write_file_storage = self.storage_hub_handler.file_storage.write().await; + + // TODO: Handle error + let _ = write_file_storage.delete_file(&file_key); + + Ok(()) + } + + async fn on_file_complete(&self, file_key: &H256) -> anyhow::Result<()> { + info!(target: LOG_TARGET, "File upload complete ({:?})", file_key); + + // Unregister the file from the file transfer service. + self.storage_hub_handler + .file_transfer + .unregister_file((*file_key).into()) + .await + .map_err(|e| anyhow!("File is not registered. This should not happen!: {:?}", e))?; + + // Queue a request to confirm the storing of the file. + self.storage_hub_handler + .blockchain + .queue_msp_respond_storage_request(RespondStorageRequest::new( + *file_key, + MspRespondStorageRequest::Accept, + )) + .await?; + + Ok(()) + } +} diff --git a/node/src/tasks/user_sends_file.rs b/node/src/tasks/user_sends_file.rs index ab974f5b3..f3d175670 100644 --- a/node/src/tasks/user_sends_file.rs +++ b/node/src/tasks/user_sends_file.rs @@ -1,204 +1,204 @@ -use crate::tasks::{FileStorageT, StorageHubHandler}; -use log::{debug, error, info}; -use sc_network::PeerId; -use shc_actors_framework::event_bus::EventHandler; -use shc_blockchain_service::{ - commands::BlockchainServiceInterface, - events::{AcceptedBspVolunteer, NewStorageRequest}, -}; -use shc_common::types::{FileMetadata, HashT, StorageProofsMerkleTrieLayout}; -use shc_file_transfer_service::commands::FileTransferServiceInterface; -use shc_forest_manager::traits::ForestStorageHandler; -use shp_file_metadata::ChunkId; -use sp_runtime::AccountId32; - -const LOG_TARGET: &str = "user-sends-file-task"; - -/// Handles the events related to users sending a file to be stored by BSPs -/// volunteering for that file. -/// It can serve multiple BSPs volunteering to store each file, since -/// it reacts to every `AcceptedBspVolunteer` from the runtime. -pub struct UserSendsFileTask -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - storage_hub_handler: StorageHubHandler, -} - -impl Clone for UserSendsFileTask -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - fn clone(&self) -> Self { - Self { - storage_hub_handler: self.storage_hub_handler.clone(), - } - } -} - -impl UserSendsFileTask -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - pub fn new(storage_hub_handler: StorageHubHandler) -> Self { - Self { - storage_hub_handler, - } - } -} - -impl EventHandler for UserSendsFileTask -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - /// Reacts to a new storage request from the runtime, which is triggered by a user sending a file to be stored. - /// It generates the file metadata and sends it to the BSPs volunteering to store the file. - async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Handling new storage request from user [{:?}], with location [{:?}]", - event.who, - event.location, - ); - - let file_metadata = FileMetadata { - owner: >::as_ref(&event.who).to_vec(), - bucket_id: event.bucket_id.as_ref().to_vec(), - file_size: event.size.into(), - fingerprint: event.fingerprint, - location: event.location.into_inner(), - }; - - let msp_id = self - .storage_hub_handler - .blockchain - .query_msp_id_of_bucket_id(event.bucket_id) - .await - .map_err(|e| { - anyhow::anyhow!( - "Failed to query MSP ID of bucket ID {:?}\n Error: {:?}", - event.bucket_id, - e - ) - })?; - - info!( - target: LOG_TARGET, - "Successfully sent file metadata to MSP ({}) to store the file [{:?}]", - msp_id, file_metadata.fingerprint, - ); - - Ok(()) - } -} - -impl EventHandler for UserSendsFileTask -where - FL: FileStorageT, - FSH: ForestStorageHandler + Clone + Send + Sync + 'static, -{ - /// Reacts to BSPs volunteering (`AcceptedBspVolunteer` from the runtime) to store the user's file, - /// establishes a connection to each BSPs through the p2p network and sends the file. - /// At this point we assume that the file is merkleised and already in file storage, and - /// for this reason the file transfer to the BSP should not fail unless the p2p connection fails. - async fn handle_event(&mut self, event: AcceptedBspVolunteer) -> anyhow::Result<()> { - info!( - target: LOG_TARGET, - "Handling BSP volunteering to store a file from user [{:?}], with location [{:?}]", - event.owner, - event.location, - ); - - let file_metadata = FileMetadata { - owner: >::as_ref(&event.owner).to_vec(), - bucket_id: event.bucket_id.as_ref().to_vec(), - file_size: event.size.into(), - fingerprint: event.fingerprint, - location: event.location.into_inner(), - }; - - let chunk_count = file_metadata.chunks_count(); - let file_key = file_metadata.file_key::>(); - - // Adds the multiaddresses of the BSP volunteering to store the file to the known addresses of the file transfer service. - // This is required to establish a connection to the BSP. - let mut peer_ids = Vec::new(); - for multiaddress in &event.multiaddresses { - if let Some(peer_id) = PeerId::try_from_multiaddr(&multiaddress) { - if let Err(error) = self - .storage_hub_handler - .file_transfer - .add_known_address(peer_id, multiaddress.clone()) - .await - { - error!(target: LOG_TARGET, "Failed to add known address {:?} for peer {:?} due to {:?}", multiaddress, peer_id, error); - } - peer_ids.push(peer_id); - } - } - - // TODO: Check how we can improve this. - // We could either make sure this scenario doesn't happen beforehand, - // by implementing formatting checks for multiaddresses in the runtime, - // or try to fetch new peer ids from the runtime at this point. - if peer_ids.is_empty() { - info!(target: LOG_TARGET, "No peers were found to receive file {:?}", file_metadata.fingerprint); - } - - // Iterates and tries to send file to peer. - // Breaks loop after first successful attempt, - // since all peer ids belong to the same BSP. - for peer_id in peer_ids { - for chunk_id in 0..chunk_count { - debug!(target: LOG_TARGET, "Trying to send chunk id {:?} of file {:?} to peer {:?}", chunk_id, file_key, peer_id); - let proof = match self - .storage_hub_handler - .file_storage - .read() - .await - .generate_proof(&file_key, &vec![ChunkId::new(chunk_id)]) - { - Ok(proof) => proof, - Err(e) => { - return Err(anyhow::anyhow!( - "Failed to generate proof for chunk id {:?} of file {:?}\n Error: {:?}", - chunk_id, - file_key, - e - )); - } - }; - - let upload_response = self - .storage_hub_handler - .file_transfer - .upload_request(peer_id, file_key.as_ref().into(), proof) - .await; - - match upload_response { - Ok(_) => { - debug!(target: LOG_TARGET, "Successfully uploaded chunk id {:?} of file {:?} to peer {:?}", chunk_id, file_metadata.fingerprint, peer_id); - } - Err(e) => { - error!(target: LOG_TARGET, "Failed to upload chunk_id {:?} to peer {:?}\n Error: {:?}", chunk_id, peer_id, e); - // In case of an error, we break the inner loop - // and try to connect to the next peer id. - break; - } - } - } - info!(target: LOG_TARGET, "Successfully sent file {:?} to peer {:?}", file_metadata.fingerprint, peer_id); - return Ok(()); - } - - // If we reach this point, it means that we couldn't send the file to any of the peers. - return Err(anyhow::anyhow!( - "Failed to send file {:?} to any of the peers", - file_metadata.fingerprint - )); - } -} +use crate::tasks::{FileStorageT, StorageHubHandler}; +use log::{debug, error, info}; +use sc_network::PeerId; +use shc_actors_framework::event_bus::EventHandler; +use shc_blockchain_service::{ + commands::BlockchainServiceInterface, + events::{AcceptedBspVolunteer, NewStorageRequest}, +}; +use shc_common::types::{FileMetadata, HashT, StorageProofsMerkleTrieLayout}; +use shc_file_transfer_service::commands::FileTransferServiceInterface; +use shc_forest_manager::traits::ForestStorageHandler; +use shp_file_metadata::ChunkId; +use sp_runtime::AccountId32; + +const LOG_TARGET: &str = "user-sends-file-task"; + +/// Handles the events related to users sending a file to be stored by BSPs +/// volunteering for that file. +/// It can serve multiple BSPs volunteering to store each file, since +/// it reacts to every `AcceptedBspVolunteer` from the runtime. +pub struct UserSendsFileTask +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + storage_hub_handler: StorageHubHandler, +} + +impl Clone for UserSendsFileTask +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + fn clone(&self) -> Self { + Self { + storage_hub_handler: self.storage_hub_handler.clone(), + } + } +} + +impl UserSendsFileTask +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + pub fn new(storage_hub_handler: StorageHubHandler) -> Self { + Self { + storage_hub_handler, + } + } +} + +impl EventHandler for UserSendsFileTask +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + /// Reacts to a new storage request from the runtime, which is triggered by a user sending a file to be stored. + /// It generates the file metadata and sends it to the BSPs volunteering to store the file. + async fn handle_event(&mut self, event: NewStorageRequest) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Handling new storage request from user [{:?}], with location [{:?}]", + event.who, + event.location, + ); + + let file_metadata = FileMetadata { + owner: >::as_ref(&event.who).to_vec(), + bucket_id: event.bucket_id.as_ref().to_vec(), + file_size: event.size.into(), + fingerprint: event.fingerprint, + location: event.location.into_inner(), + }; + + let msp_id = self + .storage_hub_handler + .blockchain + .query_msp_id_of_bucket_id(event.bucket_id) + .await + .map_err(|e| { + anyhow::anyhow!( + "Failed to query MSP ID of bucket ID {:?}\n Error: {:?}", + event.bucket_id, + e + ) + })?; + + info!( + target: LOG_TARGET, + "Successfully sent file metadata to MSP ({}) to store the file [{:?}]", + msp_id, file_metadata.fingerprint, + ); + + Ok(()) + } +} + +impl EventHandler for UserSendsFileTask +where + FL: FileStorageT, + FSH: ForestStorageHandler + Clone + Send + Sync + 'static, +{ + /// Reacts to BSPs volunteering (`AcceptedBspVolunteer` from the runtime) to store the user's file, + /// establishes a connection to each BSPs through the p2p network and sends the file. + /// At this point we assume that the file is merkleised and already in file storage, and + /// for this reason the file transfer to the BSP should not fail unless the p2p connection fails. + async fn handle_event(&mut self, event: AcceptedBspVolunteer) -> anyhow::Result<()> { + info!( + target: LOG_TARGET, + "Handling BSP volunteering to store a file from user [{:?}], with location [{:?}]", + event.owner, + event.location, + ); + + let file_metadata = FileMetadata { + owner: >::as_ref(&event.owner).to_vec(), + bucket_id: event.bucket_id.as_ref().to_vec(), + file_size: event.size.into(), + fingerprint: event.fingerprint, + location: event.location.into_inner(), + }; + + let chunk_count = file_metadata.chunks_count(); + let file_key = file_metadata.file_key::>(); + + // Adds the multiaddresses of the BSP volunteering to store the file to the known addresses of the file transfer service. + // This is required to establish a connection to the BSP. + let mut peer_ids = Vec::new(); + for multiaddress in &event.multiaddresses { + if let Some(peer_id) = PeerId::try_from_multiaddr(&multiaddress) { + if let Err(error) = self + .storage_hub_handler + .file_transfer + .add_known_address(peer_id, multiaddress.clone()) + .await + { + error!(target: LOG_TARGET, "Failed to add known address {:?} for peer {:?} due to {:?}", multiaddress, peer_id, error); + } + peer_ids.push(peer_id); + } + } + + // TODO: Check how we can improve this. + // We could either make sure this scenario doesn't happen beforehand, + // by implementing formatting checks for multiaddresses in the runtime, + // or try to fetch new peer ids from the runtime at this point. + if peer_ids.is_empty() { + info!(target: LOG_TARGET, "No peers were found to receive file {:?}", file_metadata.fingerprint); + } + + // Iterates and tries to send file to peer. + // Breaks loop after first successful attempt, + // since all peer ids belong to the same BSP. + for peer_id in peer_ids { + for chunk_id in 0..chunk_count { + debug!(target: LOG_TARGET, "Trying to send chunk id {:?} of file {:?} to peer {:?}", chunk_id, file_key, peer_id); + let proof = match self + .storage_hub_handler + .file_storage + .read() + .await + .generate_proof(&file_key, &vec![ChunkId::new(chunk_id)]) + { + Ok(proof) => proof, + Err(e) => { + return Err(anyhow::anyhow!( + "Failed to generate proof for chunk id {:?} of file {:?}\n Error: {:?}", + chunk_id, + file_key, + e + )); + } + }; + + let upload_response = self + .storage_hub_handler + .file_transfer + .upload_request(peer_id, file_key.as_ref().into(), proof) + .await; + + match upload_response { + Ok(_) => { + debug!(target: LOG_TARGET, "Successfully uploaded chunk id {:?} of file {:?} to peer {:?}", chunk_id, file_metadata.fingerprint, peer_id); + } + Err(e) => { + error!(target: LOG_TARGET, "Failed to upload chunk_id {:?} to peer {:?}\n Error: {:?}", chunk_id, peer_id, e); + // In case of an error, we break the inner loop + // and try to connect to the next peer id. + break; + } + } + } + info!(target: LOG_TARGET, "Successfully sent file {:?} to peer {:?}", file_metadata.fingerprint, peer_id); + return Ok(()); + } + + // If we reach this point, it means that we couldn't send the file to any of the peers. + return Err(anyhow::anyhow!( + "Failed to send file {:?} to any of the peers", + file_metadata.fingerprint + )); + } +} diff --git a/pallets/bucket-nfts/Cargo.toml b/pallets/bucket-nfts/Cargo.toml index d5039e0c6..c865a271b 100644 --- a/pallets/bucket-nfts/Cargo.toml +++ b/pallets/bucket-nfts/Cargo.toml @@ -1,90 +1,90 @@ -[package] -name = "pallet-bucket-nfts" -description = "Pallet for managing non-fungible tokens (NFTs) in a bucket." -version = "0.1.0" -homepage = { workspace = true } -license = { workspace = true } -authors = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } - -[lints] -workspace = true - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -codec = { workspace = true } -num-bigint = { workspace = true } -scale-info = { workspace = true } - -# Substrate -frame-benchmarking = { workspace = true, optional = true } -frame-support = { workspace = true } -frame-system = { workspace = true } - -pallet-nfts = { workspace = true } -sp-core = { workspace = true } -sp-runtime = { workspace = true } -sp-std = { workspace = true } - -# Local -shp-file-metadata = { workspace = true } -shp-traits = { workspace = true } - -[dev-dependencies] -serde = { workspace = true } - -pallet-file-system = { workspace = true } -pallet-storage-providers = { workspace = true } -pallet-payment-streams = { workspace = true } -shp-constants = { workspace = true } - -# Substrate -sp-io = { workspace = true } -sp-keyring = { workspace = true } -sp-trie = { workspace = true } - -# Frame -pallet-balances = { workspace = true, features = ["std"] } - -[features] -default = ["std"] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "pallet-file-system/runtime-benchmarks", - "pallet-storage-providers/runtime-benchmarks", - "shp-file-metadata/runtime-benchmarks", - "shp-traits/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -std = [ - "codec/std", - "frame-benchmarking?/std", - "frame-support/std", - "frame-system/std", - "pallet-balances/std", - "pallet-file-system/std", - "pallet-nfts/std", - "pallet-storage-providers/std", - "pallet-payment-streams/std", - "scale-info/std", - "shp-file-metadata/std", - "shp-traits/std", - "sp-core/std", - "sp-io/std", - "sp-keyring/std", - "sp-runtime/std", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "pallet-file-system/try-runtime", - "pallet-storage-providers/try-runtime", - "shp-file-metadata/try-runtime", - "shp-traits/try-runtime", - "sp-runtime/try-runtime", -] +[package] +name = "pallet-bucket-nfts" +description = "Pallet for managing non-fungible tokens (NFTs) in a bucket." +version = "0.1.0" +homepage = { workspace = true } +license = { workspace = true } +authors = { workspace = true } +repository = { workspace = true } +edition = { workspace = true } + +[lints] +workspace = true + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] +codec = { workspace = true } +num-bigint = { workspace = true } +scale-info = { workspace = true } + +# Substrate +frame-benchmarking = { workspace = true, optional = true } +frame-support = { workspace = true } +frame-system = { workspace = true } + +pallet-nfts = { workspace = true } +sp-core = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } + +# Local +shp-file-metadata = { workspace = true } +shp-traits = { workspace = true } + +[dev-dependencies] +serde = { workspace = true } + +pallet-file-system = { workspace = true } +pallet-storage-providers = { workspace = true } +pallet-payment-streams = { workspace = true } +shp-constants = { workspace = true } + +# Substrate +sp-io = { workspace = true } +sp-keyring = { workspace = true } +sp-trie = { workspace = true } + +# Frame +pallet-balances = { workspace = true, features = ["std"] } + +[features] +default = ["std"] +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-file-system/runtime-benchmarks", + "pallet-storage-providers/runtime-benchmarks", + "shp-file-metadata/runtime-benchmarks", + "shp-traits/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", +] +std = [ + "codec/std", + "frame-benchmarking?/std", + "frame-support/std", + "frame-system/std", + "pallet-balances/std", + "pallet-file-system/std", + "pallet-nfts/std", + "pallet-storage-providers/std", + "pallet-payment-streams/std", + "scale-info/std", + "shp-file-metadata/std", + "shp-traits/std", + "sp-core/std", + "sp-io/std", + "sp-keyring/std", + "sp-runtime/std", +] +try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "pallet-file-system/try-runtime", + "pallet-storage-providers/try-runtime", + "shp-file-metadata/try-runtime", + "shp-traits/try-runtime", + "sp-runtime/try-runtime", +] diff --git a/pallets/bucket-nfts/src/mock.rs b/pallets/bucket-nfts/src/mock.rs index 77dcbb4cd..a99c29496 100644 --- a/pallets/bucket-nfts/src/mock.rs +++ b/pallets/bucket-nfts/src/mock.rs @@ -1,463 +1,463 @@ -use core::marker::PhantomData; -use frame_support::{ - construct_runtime, derive_impl, parameter_types, - traits::{AsEnsureOriginWithArg, Everything, Randomness}, - weights::constants::RocksDbWeight, - BoundedBTreeSet, -}; -use frame_system as system; -use num_bigint::BigUint; -use pallet_nfts::PalletFeatures; -use shp_file_metadata::{ChunkId, FileMetadata}; -use shp_traits::{ - ProofSubmittersInterface, ProofsDealerInterface, ReadUserSolvencyInterface, TrieMutation, - TrieRemoveMutation, -}; -use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Get, Hasher, H256}; -use sp_keyring::sr25519::Keyring; -use sp_runtime::{ - traits::{BlakeTwo256, Convert, ConvertBack, IdentifyAccount, IdentityLookup, Verify}, - BuildStorage, MultiSignature, SaturatedConversion, -}; -use sp_std::collections::btree_set::BTreeSet; -use sp_trie::{LayoutV1, TrieConfiguration, TrieLayout}; -use system::pallet_prelude::BlockNumberFor; - -type Block = frame_system::mocking::MockBlock; -pub(crate) type BlockNumber = u64; -type Balance = u128; -type Signature = MultiSignature; -type AccountPublic = ::Signer; -type AccountId = ::AccountId; - -const EPOCH_DURATION_IN_BLOCKS: BlockNumber = 10; - -// We mock the Randomness trait to use a simple randomness function when testing the pallet -const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumber = 3; -pub struct MockRandomness; -impl Randomness for MockRandomness { - fn random(subject: &[u8]) -> (H256, BlockNumber) { - // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks - - // Concatenate the subject with the block number to get a unique hash for each block - let subject_concat_block = [ - subject, - &frame_system::Pallet::::block_number().to_le_bytes(), - ] - .concat(); - - let hashed_subject = blake2_256(&subject_concat_block); - - ( - H256::from_slice(&hashed_subject), - frame_system::Pallet::::block_number() - .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), - ) - } -} - -// Configure a mock runtime to test the pallet. -construct_runtime!( - pub enum Test - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - Providers: pallet_storage_providers::{Pallet, Call, Storage, Event, HoldReason}, - BucketNfts: crate::{Pallet, Call, Storage, Event}, - Nfts: pallet_nfts::{Pallet, Call, Storage, Event}, - FileSystem: pallet_file_system::{Pallet, Call, Storage, Event}, - PaymentStreams: pallet_payment_streams::{Pallet, Call, Storage, Event, HoldReason}, - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; - pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::Providers(pallet_storage_providers::HoldReason::StorageProviderDeposit); -} - -#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = RocksDbWeight; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = SS58Prefix; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = (); - type MaxFreezes = ConstU32<10>; -} - -pub(crate) type ThresholdType = u32; - -parameter_types! { - pub const MinWaitForStopStoring: BlockNumber = 1; -} - -pub struct MockProofsDealer; -impl ProofsDealerInterface for MockProofsDealer { - type ProviderId = H256; - type ForestProof = u32; - type KeyProof = u32; - type MerkleHash = H256; - type RandomnessOutput = H256; - type MerkleHashing = BlakeTwo256; - type TickNumber = BlockNumber; - - fn challenge(_key_challenged: &Self::MerkleHash) -> frame_support::dispatch::DispatchResult { - Ok(()) - } - - fn challenge_with_priority( - _key_challenged: &Self::MerkleHash, - _mutation: Option, - ) -> frame_support::dispatch::DispatchResult { - Ok(()) - } - - fn verify_forest_proof( - _who: &Self::ProviderId, - _challenges: &[Self::MerkleHash], - _proof: &Self::ForestProof, - ) -> Result, sp_runtime::DispatchError> { - Ok(BTreeSet::new()) - } - - fn verify_generic_forest_proof( - _root: &Self::MerkleHash, - _challenges: &[Self::MerkleHash], - _proof: &Self::ForestProof, - ) -> Result, sp_runtime::DispatchError> { - Ok(BTreeSet::new()) - } - - fn verify_key_proof( - _key: &Self::MerkleHash, - _challenges: &[Self::MerkleHash], - _proof: &Self::KeyProof, - ) -> Result, sp_runtime::DispatchError> { - Ok(BTreeSet::new()) - } - - fn generate_challenges_from_seed( - _seed: Self::RandomnessOutput, - _provider_id: &Self::ProviderId, - _count: u32, - ) -> Vec { - Vec::new() - } - - fn apply_delta( - _commitment: &Self::MerkleHash, - _mutations: &[(Self::MerkleHash, TrieMutation)], - _proof: &Self::ForestProof, - ) -> Result { - Ok(H256::default()) - } - - fn generic_apply_delta( - _root: &Self::MerkleHash, - _mutations: &[(Self::MerkleHash, TrieMutation)], - _proof: &Self::ForestProof, - ) -> Result { - Ok(H256::default()) - } - - fn initialise_challenge_cycle( - _who: &Self::ProviderId, - ) -> frame_support::dispatch::DispatchResult { - Ok(()) - } - - fn get_current_tick() -> Self::TickNumber { - System::block_number() - } -} - -impl pallet_file_system::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Providers = Providers; - type ProofDealer = MockProofsDealer; - type PaymentStreams = PaymentStreams; - type UserSolvency = MockUserSolvency; - type Fingerprint = H256; - type ReplicationTargetType = u32; - type ThresholdType = ThresholdType; - type ThresholdTypeToTickNumber = ThresholdTypeToBlockNumberConverter; - type HashToThresholdType = HashToThresholdTypeConverter; - type MerkleHashToRandomnessOutput = MerkleHashToRandomnessOutputConverter; - type ChunkIdToMerkleHash = ChunkIdToMerkleHashConverter; - type Currency = Balances; - type Nfts = Nfts; - type CollectionInspector = BucketNfts; - type MaxBspsPerStorageRequest = ConstU32<5>; - type MaxBatchConfirmStorageRequests = ConstU32<10>; - type MaxBatchMspRespondStorageRequests = ConstU32<10>; - type MaxFilePathSize = ConstU32<512u32>; - type MaxPeerIdSize = ConstU32<100>; - type MaxNumberOfPeerIds = MaxNumberOfPeerIds; - type MaxDataServerMultiAddresses = ConstU32<5>; - type MaxExpiredItemsInBlock = ConstU32<100u32>; - type StorageRequestTtl = ConstU32<40u32>; - type PendingFileDeletionRequestTtl = ConstU32<40u32>; - type MoveBucketRequestTtl = ConstU32<40u32>; - type MaxUserPendingDeletionRequests = ConstU32<5u32>; - type MaxUserPendingMoveBucketRequests = ConstU32<10u32>; - type MinWaitForStopStoring = MinWaitForStopStoring; -} - -pub struct MockUserSolvency; -impl ReadUserSolvencyInterface for MockUserSolvency { - type AccountId = AccountId; - - fn is_user_insolvent(_user_account: &Self::AccountId) -> bool { - false - } -} - -parameter_types! { - pub storage Features: PalletFeatures = PalletFeatures::all_enabled(); -} - -impl pallet_nfts::Config for Test { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u128; - type ItemId = u128; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = frame_system::EnsureRoot; - type Locker = (); - type CollectionDeposit = ConstU128<2>; - type ItemDeposit = ConstU128<1>; - type MetadataDepositBase = ConstU128<1>; - type AttributeDepositBase = ConstU128<1>; - type DepositPerByte = ConstU128<1>; - type StringLimit = ConstU32<50>; - type KeyLimit = ConstU32<50>; - type ValueLimit = ConstU32<50>; - type ApprovalsLimit = ConstU32<10>; - type ItemAttributesApprovalsLimit = ConstU32<2>; - type MaxTips = ConstU32<10>; - type MaxDeadlineDuration = ConstU64<10000>; - type MaxAttributesPerCall = ConstU32<2>; - type Features = Features; - type OffchainSignature = Signature; - type OffchainPublic = AccountPublic; - type WeightInfo = (); - pallet_nfts::runtime_benchmarks_enabled! { - type Helper = (); - } -} - -// Payment streams pallet: -impl pallet_payment_streams::Config for Test { - type RuntimeEvent = RuntimeEvent; - type NativeBalance = Balances; - type ProvidersPallet = Providers; - type RuntimeHoldReason = RuntimeHoldReason; - type Units = u64; - type NewStreamDeposit = ConstU64<10>; - type UserWithoutFundsCooldown = ConstU64<100>; - type BlockNumberToBalance = BlockNumberToBalance; - type ProvidersProofSubmitters = MockSubmittingProviders; -} -// Converter from the BlockNumber type to the Balance type for math -pub struct BlockNumberToBalance; -impl Convert, Balance> for BlockNumberToBalance { - fn convert(block_number: BlockNumberFor) -> Balance { - block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type - } -} - -parameter_types! { - pub const MaxNumberOfPeerIds: u32 = 100; - pub const MaxMultiAddressSize: u32 = 100; - pub const MaxMultiAddressAmount: u32 = 5; -} -pub type HasherOutT = <::Hash as Hasher>::Out; -pub struct DefaultMerkleRoot(PhantomData); -impl Get> for DefaultMerkleRoot { - fn get() -> HasherOutT { - sp_trie::empty_trie_root::() - } -} - -impl pallet_storage_providers::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersRandomness = MockRandomness; - type PaymentStreams = PaymentStreams; - type FileMetadataManager = FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - >; - type NativeBalance = Balances; - type RuntimeHoldReason = RuntimeHoldReason; - type StorageDataUnit = u64; - type SpCount = u32; - type MerklePatriciaRoot = H256; - type ValuePropId = H256; - type ReadAccessGroupId = ::CollectionId; - type ProvidersProofSubmitters = MockSubmittingProviders; - type ReputationWeightType = u32; - type Treasury = TreasuryAccount; - type SpMinDeposit = ConstU128<10>; - type SpMinCapacity = ConstU64<2>; - type DepositPerData = ConstU128<2>; - type MaxFileSize = ConstU64<{ u64::MAX }>; - type MaxMultiAddressSize = MaxMultiAddressSize; - type MaxMultiAddressAmount = MaxMultiAddressAmount; - type MaxProtocols = ConstU32<100>; - type MaxBuckets = ConstU32<10000>; - type BucketDeposit = ConstU128<10>; - type BucketNameLimit = ConstU32<100>; - type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; - type MinBlocksBetweenCapacityChanges = ConstU64<10>; - type DefaultMerkleRoot = DefaultMerkleRoot>; - type SlashAmountPerMaxFileSize = ConstU128<10>; - type StartingReputationWeight = ConstU32<1>; -} - -// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. -pub struct MockSubmittingProviders; -impl ProofSubmittersInterface for MockSubmittingProviders { - type ProviderId = ::Hash; - type TickNumber = BlockNumberFor; - type MaxProofSubmitters = ConstU32<1000>; - fn get_proof_submitters_for_tick( - _block_number: &Self::TickNumber, - ) -> Option> { - None - } - - fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { - None - } - - fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} -} - -pub struct TreasuryAccount; -impl Get for TreasuryAccount { - fn get() -> AccountId { - AccountId::new([0; 32]) - } -} - -impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Buckets = Providers; - #[cfg(feature = "runtime-benchmarks")] - type Helper = (); -} - -// Build genesis storage according to the mock runtime. -pub fn new_test_ext() -> sp_io::TestExternalities { - let mut t = system::GenesisConfig::::default() - .build_storage() - .unwrap(); - - pallet_balances::GenesisConfig:: { - balances: vec![ - (Keyring::Alice.to_account_id(), 1_000_000_000_000_000), - (Keyring::Bob.to_account_id(), 1_000_000_000_000_000), - (Keyring::Charlie.to_account_id(), 1_000_000_000_000_000), - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| System::set_block_number(1)); - ext -} - -// Converter from the ThresholdType to the BlockNumber type and vice versa. -// It performs a saturated conversion, so that the result is always a valid BlockNumber. -pub struct ThresholdTypeToBlockNumberConverter; - -impl Convert> for ThresholdTypeToBlockNumberConverter { - fn convert(threshold: ThresholdType) -> BlockNumberFor { - threshold.saturated_into() - } -} - -impl ConvertBack> for ThresholdTypeToBlockNumberConverter { - fn convert_back(block_number: BlockNumberFor) -> ThresholdType { - block_number.saturated_into() - } -} - -/// Converter from the [`Hash`] type to the [`ThresholdType`]. -pub struct HashToThresholdTypeConverter; -impl Convert<::Hash, ThresholdType> for HashToThresholdTypeConverter { - fn convert(hash: ::Hash) -> ThresholdType { - // Get the hash as bytes - let hash_bytes = hash.as_ref(); - - // Get the 4 least significant bytes of the hash and interpret them as an u32 - let truncated_hash_bytes: [u8; 4] = - hash_bytes[28..].try_into().expect("Hash is 32 bytes; qed"); - - ThresholdType::from_be_bytes(truncated_hash_bytes) - } -} - -// Converter from the MerkleHash (H256) type to the RandomnessOutput type. -pub struct MerkleHashToRandomnessOutputConverter; - -impl Convert for MerkleHashToRandomnessOutputConverter { - fn convert(hash: H256) -> H256 { - hash - } -} - -// Converter from the ChunkId type to the MerkleHash (H256) type. -pub struct ChunkIdToMerkleHashConverter; - -impl Convert for ChunkIdToMerkleHashConverter { - fn convert(chunk_id: ChunkId) -> H256 { - let chunk_id_biguint = BigUint::from(chunk_id.as_u64()); - let mut bytes = chunk_id_biguint.to_bytes_be(); - - // Ensure the byte slice is exactly 32 bytes long by padding with leading zeros - if bytes.len() < 32 { - let mut padded_bytes = vec![0u8; 32 - bytes.len()]; - padded_bytes.extend(bytes); - bytes = padded_bytes; - } - - H256::from_slice(&bytes) - } -} +use core::marker::PhantomData; +use frame_support::{ + construct_runtime, derive_impl, parameter_types, + traits::{AsEnsureOriginWithArg, Everything, Randomness}, + weights::constants::RocksDbWeight, + BoundedBTreeSet, +}; +use frame_system as system; +use num_bigint::BigUint; +use pallet_nfts::PalletFeatures; +use shp_file_metadata::{ChunkId, FileMetadata}; +use shp_traits::{ + ProofSubmittersInterface, ProofsDealerInterface, ReadUserSolvencyInterface, TrieMutation, + TrieRemoveMutation, +}; +use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Get, Hasher, H256}; +use sp_keyring::sr25519::Keyring; +use sp_runtime::{ + traits::{BlakeTwo256, Convert, ConvertBack, IdentifyAccount, IdentityLookup, Verify}, + BuildStorage, MultiSignature, SaturatedConversion, +}; +use sp_std::collections::btree_set::BTreeSet; +use sp_trie::{LayoutV1, TrieConfiguration, TrieLayout}; +use system::pallet_prelude::BlockNumberFor; + +type Block = frame_system::mocking::MockBlock; +pub(crate) type BlockNumber = u64; +type Balance = u128; +type Signature = MultiSignature; +type AccountPublic = ::Signer; +type AccountId = ::AccountId; + +const EPOCH_DURATION_IN_BLOCKS: BlockNumber = 10; + +// We mock the Randomness trait to use a simple randomness function when testing the pallet +const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumber = 3; +pub struct MockRandomness; +impl Randomness for MockRandomness { + fn random(subject: &[u8]) -> (H256, BlockNumber) { + // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks + + // Concatenate the subject with the block number to get a unique hash for each block + let subject_concat_block = [ + subject, + &frame_system::Pallet::::block_number().to_le_bytes(), + ] + .concat(); + + let hashed_subject = blake2_256(&subject_concat_block); + + ( + H256::from_slice(&hashed_subject), + frame_system::Pallet::::block_number() + .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), + ) + } +} + +// Configure a mock runtime to test the pallet. +construct_runtime!( + pub enum Test + { + System: frame_system::{Pallet, Call, Config, Storage, Event}, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + Providers: pallet_storage_providers::{Pallet, Call, Storage, Event, HoldReason}, + BucketNfts: crate::{Pallet, Call, Storage, Event}, + Nfts: pallet_nfts::{Pallet, Call, Storage, Event}, + FileSystem: pallet_file_system::{Pallet, Call, Storage, Event}, + PaymentStreams: pallet_payment_streams::{Pallet, Call, Storage, Event, HoldReason}, + } +); + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 42; + pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::Providers(pallet_storage_providers::HoldReason::StorageProviderDeposit); +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl system::Config for Test { + type BaseCallFilter = Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = RocksDbWeight; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Nonce = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_balances::Config for Test { + type Balance = Balance; + type DustRemoval = (); + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; + type WeightInfo = (); + type MaxLocks = ConstU32<10>; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<10>; +} + +pub(crate) type ThresholdType = u32; + +parameter_types! { + pub const MinWaitForStopStoring: BlockNumber = 1; +} + +pub struct MockProofsDealer; +impl ProofsDealerInterface for MockProofsDealer { + type ProviderId = H256; + type ForestProof = u32; + type KeyProof = u32; + type MerkleHash = H256; + type RandomnessOutput = H256; + type MerkleHashing = BlakeTwo256; + type TickNumber = BlockNumber; + + fn challenge(_key_challenged: &Self::MerkleHash) -> frame_support::dispatch::DispatchResult { + Ok(()) + } + + fn challenge_with_priority( + _key_challenged: &Self::MerkleHash, + _mutation: Option, + ) -> frame_support::dispatch::DispatchResult { + Ok(()) + } + + fn verify_forest_proof( + _who: &Self::ProviderId, + _challenges: &[Self::MerkleHash], + _proof: &Self::ForestProof, + ) -> Result, sp_runtime::DispatchError> { + Ok(BTreeSet::new()) + } + + fn verify_generic_forest_proof( + _root: &Self::MerkleHash, + _challenges: &[Self::MerkleHash], + _proof: &Self::ForestProof, + ) -> Result, sp_runtime::DispatchError> { + Ok(BTreeSet::new()) + } + + fn verify_key_proof( + _key: &Self::MerkleHash, + _challenges: &[Self::MerkleHash], + _proof: &Self::KeyProof, + ) -> Result, sp_runtime::DispatchError> { + Ok(BTreeSet::new()) + } + + fn generate_challenges_from_seed( + _seed: Self::RandomnessOutput, + _provider_id: &Self::ProviderId, + _count: u32, + ) -> Vec { + Vec::new() + } + + fn apply_delta( + _commitment: &Self::MerkleHash, + _mutations: &[(Self::MerkleHash, TrieMutation)], + _proof: &Self::ForestProof, + ) -> Result { + Ok(H256::default()) + } + + fn generic_apply_delta( + _root: &Self::MerkleHash, + _mutations: &[(Self::MerkleHash, TrieMutation)], + _proof: &Self::ForestProof, + ) -> Result { + Ok(H256::default()) + } + + fn initialise_challenge_cycle( + _who: &Self::ProviderId, + ) -> frame_support::dispatch::DispatchResult { + Ok(()) + } + + fn get_current_tick() -> Self::TickNumber { + System::block_number() + } +} + +impl pallet_file_system::Config for Test { + type RuntimeEvent = RuntimeEvent; + type Providers = Providers; + type ProofDealer = MockProofsDealer; + type PaymentStreams = PaymentStreams; + type UserSolvency = MockUserSolvency; + type Fingerprint = H256; + type ReplicationTargetType = u32; + type ThresholdType = ThresholdType; + type ThresholdTypeToTickNumber = ThresholdTypeToBlockNumberConverter; + type HashToThresholdType = HashToThresholdTypeConverter; + type MerkleHashToRandomnessOutput = MerkleHashToRandomnessOutputConverter; + type ChunkIdToMerkleHash = ChunkIdToMerkleHashConverter; + type Currency = Balances; + type Nfts = Nfts; + type CollectionInspector = BucketNfts; + type MaxBspsPerStorageRequest = ConstU32<5>; + type MaxBatchConfirmStorageRequests = ConstU32<10>; + type MaxBatchMspRespondStorageRequests = ConstU32<10>; + type MaxFilePathSize = ConstU32<512u32>; + type MaxPeerIdSize = ConstU32<100>; + type MaxNumberOfPeerIds = MaxNumberOfPeerIds; + type MaxDataServerMultiAddresses = ConstU32<5>; + type MaxExpiredItemsInBlock = ConstU32<100u32>; + type StorageRequestTtl = ConstU32<40u32>; + type PendingFileDeletionRequestTtl = ConstU32<40u32>; + type MoveBucketRequestTtl = ConstU32<40u32>; + type MaxUserPendingDeletionRequests = ConstU32<5u32>; + type MaxUserPendingMoveBucketRequests = ConstU32<10u32>; + type MinWaitForStopStoring = MinWaitForStopStoring; +} + +pub struct MockUserSolvency; +impl ReadUserSolvencyInterface for MockUserSolvency { + type AccountId = AccountId; + + fn is_user_insolvent(_user_account: &Self::AccountId) -> bool { + false + } +} + +parameter_types! { + pub storage Features: PalletFeatures = PalletFeatures::all_enabled(); +} + +impl pallet_nfts::Config for Test { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u128; + type ItemId = u128; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type Locker = (); + type CollectionDeposit = ConstU128<2>; + type ItemDeposit = ConstU128<1>; + type MetadataDepositBase = ConstU128<1>; + type AttributeDepositBase = ConstU128<1>; + type DepositPerByte = ConstU128<1>; + type StringLimit = ConstU32<50>; + type KeyLimit = ConstU32<50>; + type ValueLimit = ConstU32<50>; + type ApprovalsLimit = ConstU32<10>; + type ItemAttributesApprovalsLimit = ConstU32<2>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = ConstU64<10000>; + type MaxAttributesPerCall = ConstU32<2>; + type Features = Features; + type OffchainSignature = Signature; + type OffchainPublic = AccountPublic; + type WeightInfo = (); + pallet_nfts::runtime_benchmarks_enabled! { + type Helper = (); + } +} + +// Payment streams pallet: +impl pallet_payment_streams::Config for Test { + type RuntimeEvent = RuntimeEvent; + type NativeBalance = Balances; + type ProvidersPallet = Providers; + type RuntimeHoldReason = RuntimeHoldReason; + type Units = u64; + type NewStreamDeposit = ConstU64<10>; + type UserWithoutFundsCooldown = ConstU64<100>; + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = MockSubmittingProviders; +} +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; +impl Convert, Balance> for BlockNumberToBalance { + fn convert(block_number: BlockNumberFor) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +parameter_types! { + pub const MaxNumberOfPeerIds: u32 = 100; + pub const MaxMultiAddressSize: u32 = 100; + pub const MaxMultiAddressAmount: u32 = 5; +} +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} + +impl pallet_storage_providers::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersRandomness = MockRandomness; + type PaymentStreams = PaymentStreams; + type FileMetadataManager = FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type NativeBalance = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type StorageDataUnit = u64; + type SpCount = u32; + type MerklePatriciaRoot = H256; + type ValuePropId = H256; + type ReadAccessGroupId = ::CollectionId; + type ProvidersProofSubmitters = MockSubmittingProviders; + type ReputationWeightType = u32; + type Treasury = TreasuryAccount; + type SpMinDeposit = ConstU128<10>; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = MaxMultiAddressSize; + type MaxMultiAddressAmount = MaxMultiAddressAmount; + type MaxProtocols = ConstU32<100>; + type MaxBuckets = ConstU32<10000>; + type BucketDeposit = ConstU128<10>; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; + type MinBlocksBetweenCapacityChanges = ConstU64<10>; + type DefaultMerkleRoot = DefaultMerkleRoot>; + type SlashAmountPerMaxFileSize = ConstU128<10>; + type StartingReputationWeight = ConstU32<1>; +} + +// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. +pub struct MockSubmittingProviders; +impl ProofSubmittersInterface for MockSubmittingProviders { + type ProviderId = ::Hash; + type TickNumber = BlockNumberFor; + type MaxProofSubmitters = ConstU32<1000>; + fn get_proof_submitters_for_tick( + _block_number: &Self::TickNumber, + ) -> Option> { + None + } + + fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { + None + } + + fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} +} + +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + AccountId::new([0; 32]) + } +} + +impl crate::Config for Test { + type RuntimeEvent = RuntimeEvent; + type Buckets = Providers; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); +} + +// Build genesis storage according to the mock runtime. +pub fn new_test_ext() -> sp_io::TestExternalities { + let mut t = system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (Keyring::Alice.to_account_id(), 1_000_000_000_000_000), + (Keyring::Bob.to_account_id(), 1_000_000_000_000_000), + (Keyring::Charlie.to_account_id(), 1_000_000_000_000_000), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| System::set_block_number(1)); + ext +} + +// Converter from the ThresholdType to the BlockNumber type and vice versa. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct ThresholdTypeToBlockNumberConverter; + +impl Convert> for ThresholdTypeToBlockNumberConverter { + fn convert(threshold: ThresholdType) -> BlockNumberFor { + threshold.saturated_into() + } +} + +impl ConvertBack> for ThresholdTypeToBlockNumberConverter { + fn convert_back(block_number: BlockNumberFor) -> ThresholdType { + block_number.saturated_into() + } +} + +/// Converter from the [`Hash`] type to the [`ThresholdType`]. +pub struct HashToThresholdTypeConverter; +impl Convert<::Hash, ThresholdType> for HashToThresholdTypeConverter { + fn convert(hash: ::Hash) -> ThresholdType { + // Get the hash as bytes + let hash_bytes = hash.as_ref(); + + // Get the 4 least significant bytes of the hash and interpret them as an u32 + let truncated_hash_bytes: [u8; 4] = + hash_bytes[28..].try_into().expect("Hash is 32 bytes; qed"); + + ThresholdType::from_be_bytes(truncated_hash_bytes) + } +} + +// Converter from the MerkleHash (H256) type to the RandomnessOutput type. +pub struct MerkleHashToRandomnessOutputConverter; + +impl Convert for MerkleHashToRandomnessOutputConverter { + fn convert(hash: H256) -> H256 { + hash + } +} + +// Converter from the ChunkId type to the MerkleHash (H256) type. +pub struct ChunkIdToMerkleHashConverter; + +impl Convert for ChunkIdToMerkleHashConverter { + fn convert(chunk_id: ChunkId) -> H256 { + let chunk_id_biguint = BigUint::from(chunk_id.as_u64()); + let mut bytes = chunk_id_biguint.to_bytes_be(); + + // Ensure the byte slice is exactly 32 bytes long by padding with leading zeros + if bytes.len() < 32 { + let mut padded_bytes = vec![0u8; 32 - bytes.len()]; + padded_bytes.extend(bytes); + bytes = padded_bytes; + } + + H256::from_slice(&bytes) + } +} diff --git a/pallets/file-system/runtime-api/src/lib.rs b/pallets/file-system/runtime-api/src/lib.rs index 7e8e2fac4..15408cb42 100644 --- a/pallets/file-system/runtime-api/src/lib.rs +++ b/pallets/file-system/runtime-api/src/lib.rs @@ -1,54 +1,54 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use codec::{Codec, Decode, Encode}; -use scale_info::prelude::vec::Vec; -use scale_info::TypeInfo; -use sp_runtime::RuntimeDebug; - -/// Error type for the `query_earliest_file_volunteer_tick` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryFileEarliestVolunteerTickError { - FailedToEncodeFingerprint, - FailedToEncodeBsp, - ThresholdArithmeticError, - StorageRequestNotFound, - InternalError, -} - -/// Error type for the `query_bsp_confirm_chunks_to_prove_for_file` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryBspConfirmChunksToProveForFileError { - StorageRequestNotFound, - ConfirmChunks(QueryConfirmChunksToProveForFileError), - InternalError, -} - -/// Error type for the `query_msp_confirm_chunks_to_prove_for_file` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryMspConfirmChunksToProveForFileError { - StorageRequestNotFound, - ConfirmChunks(QueryConfirmChunksToProveForFileError), - InternalError, -} - -/// Error type for the `query_confirm_chunks_to_prove_for_file`. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryConfirmChunksToProveForFileError { - ChallengedChunkToChunkIdError, -} - -sp_api::decl_runtime_apis! { - #[api_version(1)] - pub trait FileSystemApi - where - BackupStorageProviderId: Codec, - MainStorageProviderId: Codec, - FileKey: Codec, - TickNumber: Codec, - ChunkId: Codec, - { - fn query_earliest_file_volunteer_tick(bsp_id: BackupStorageProviderId, file_key: FileKey) -> Result; - fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: FileKey) -> Result, QueryBspConfirmChunksToProveForFileError>; - fn query_msp_confirm_chunks_to_prove_for_file(msp_id: MainStorageProviderId, file_key: FileKey) -> Result, QueryMspConfirmChunksToProveForFileError>; - } -} +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Codec, Decode, Encode}; +use scale_info::prelude::vec::Vec; +use scale_info::TypeInfo; +use sp_runtime::RuntimeDebug; + +/// Error type for the `query_earliest_file_volunteer_tick` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryFileEarliestVolunteerTickError { + FailedToEncodeFingerprint, + FailedToEncodeBsp, + ThresholdArithmeticError, + StorageRequestNotFound, + InternalError, +} + +/// Error type for the `query_bsp_confirm_chunks_to_prove_for_file` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryBspConfirmChunksToProveForFileError { + StorageRequestNotFound, + ConfirmChunks(QueryConfirmChunksToProveForFileError), + InternalError, +} + +/// Error type for the `query_msp_confirm_chunks_to_prove_for_file` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryMspConfirmChunksToProveForFileError { + StorageRequestNotFound, + ConfirmChunks(QueryConfirmChunksToProveForFileError), + InternalError, +} + +/// Error type for the `query_confirm_chunks_to_prove_for_file`. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryConfirmChunksToProveForFileError { + ChallengedChunkToChunkIdError, +} + +sp_api::decl_runtime_apis! { + #[api_version(1)] + pub trait FileSystemApi + where + BackupStorageProviderId: Codec, + MainStorageProviderId: Codec, + FileKey: Codec, + TickNumber: Codec, + ChunkId: Codec, + { + fn query_earliest_file_volunteer_tick(bsp_id: BackupStorageProviderId, file_key: FileKey) -> Result; + fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: FileKey) -> Result, QueryBspConfirmChunksToProveForFileError>; + fn query_msp_confirm_chunks_to_prove_for_file(msp_id: MainStorageProviderId, file_key: FileKey) -> Result, QueryMspConfirmChunksToProveForFileError>; + } +} diff --git a/pallets/file-system/src/lib.rs b/pallets/file-system/src/lib.rs index ca7d82573..cd49a4d8f 100644 --- a/pallets/file-system/src/lib.rs +++ b/pallets/file-system/src/lib.rs @@ -1,1234 +1,1234 @@ -//! # File System Pallet -//! -//! - [`Config`] -//! - [`Call`] -//! -//! ## Overview -//! -//! The file system pallet provides the following functionality: -//! -//! - Tracks Merkle Forest roots for every MSP and BSP -//! - Manages storage buckets -//! - Exposes all file related actions a user or storage provider can execute -//! -//! ## Interface -//! -//! ### Dispatchable Functions -//! -//! - `issue_storage_request`: Issue a new storage request to store a file. -//! - `volunteer_bsp`: BSP volunteers to store a file for a given storage request. -//! -//! ## Hooks -//! -//! - `on_idle`: Cleanup all expired storage requests. -//! -//! ## Dependencies -//! -//! TODO -#![cfg_attr(not(feature = "std"), no_std)] - -pub use pallet::*; - -pub mod types; -mod utils; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -#[cfg(feature = "runtime-benchmarks")] -mod benchmarking; - -#[frame_support::pallet] -pub mod pallet { - use super::types::*; - use codec::HasCompact; - use frame_support::{ - dispatch::DispatchResult, - pallet_prelude::{ValueQuery, *}, - sp_runtime::traits::{CheckEqual, Convert, MaybeDisplay, SimpleBitOps}, - traits::{ - fungible::*, - nonfungibles_v2::{Create, Inspect as NonFungiblesInspect}, - }, - Blake2_128Concat, - }; - use frame_system::pallet_prelude::{BlockNumberFor, *}; - use scale_info::prelude::fmt::Debug; - use shp_file_metadata::ChunkId; - use sp_runtime::{ - traits::{ - Bounded, CheckedAdd, CheckedDiv, CheckedMul, CheckedSub, ConvertBack, One, Saturating, - Zero, - }, - BoundedVec, - }; - - #[pallet::config] - pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's definition of an event. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - /// The trait for reading and mutating Storage Provider and Bucket data. - type Providers: shp_traits::ReadProvidersInterface - + shp_traits::MutateProvidersInterface< - MerkleHash = ::MerkleHash, - ProviderId = ::ProviderId, - > + shp_traits::ReadStorageProvidersInterface< - ProviderId = ::ProviderId, - > + shp_traits::MutateStorageProvidersInterface< - ProviderId = ::ProviderId, - StorageDataUnit = ::StorageDataUnit, - > + shp_traits::ReadBucketsInterface< - AccountId = Self::AccountId, - BucketId = ::ProviderId, - MerkleHash = ::MerkleHash, - ProviderId = ::ProviderId, - ReadAccessGroupId = CollectionIdFor, - StorageDataUnit = ::StorageDataUnit, - > + shp_traits::MutateBucketsInterface< - AccountId = Self::AccountId, - BucketId = ::BucketId, - MerkleHash = ::MerkleHash, - ProviderId = ::ProviderId, - ReadAccessGroupId = CollectionIdFor, - StorageDataUnit = ::StorageDataUnit, - >; - - /// The trait for issuing challenges and verifying proofs. - type ProofDealer: shp_traits::ProofsDealerInterface< - ProviderId = ::ProviderId, - MerkleHash = ::MerkleHash, - >; - - /// The trait to create, update, delete and inspect payment streams. - type PaymentStreams: shp_traits::PaymentStreamsInterface< - AccountId = Self::AccountId, - ProviderId = ::ProviderId, - Units = ::StorageDataUnit, - >; - - /// The trait for checking user solvency in the system - type UserSolvency: shp_traits::ReadUserSolvencyInterface; - - /// Type for identifying a file, generally a hash. - type Fingerprint: Parameter - + Member - + MaybeSerializeDeserialize - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen; - - /// Type representing the storage request bsps size type. - type ReplicationTargetType: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + From - + Into - + Into - + Copy - + MaxEncodedLen - + HasCompact - + Default - + scale_info::TypeInfo - + MaybeSerializeDeserialize - + CheckedAdd - + One - + Saturating - + PartialOrd - + Zero; - - /// Type representing the threshold a BSP must meet to be eligible to volunteer to store a file. - type ThresholdType: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + Default - + MaybeDisplay - + From - + From<::ReputationWeight> - + From - + Copy - + MaxEncodedLen - + Decode - + Saturating - + CheckedMul - + CheckedDiv - + CheckedAdd - + CheckedSub - + PartialOrd - + Bounded - + One - + Zero; - - /// The type to convert a threshold to a tick number. - /// - /// For more information on what "ticks" are, see the [Proofs Dealer pallet](https://github.com/Moonsong-Labs/storage-hub/blob/main/pallets/proofs-dealer/README.md). - type ThresholdTypeToTickNumber: ConvertBack< - Self::ThresholdType, - ::TickNumber, - >; - - /// The type to convert a hash to a threshold. - type HashToThresholdType: Convert; - - /// The type to convert a MerkleHash to a RandomnessOutput. - type MerkleHashToRandomnessOutput: Convert< - ::MerkleHash, - ::RandomnessOutput, - >; - - /// The type to convert a ChunkId to a MerkleHash - type ChunkIdToMerkleHash: Convert< - ChunkId, - ::MerkleHash, - >; - - /// The currency mechanism, used for paying for reserves. - type Currency: Inspect - + Mutate - + hold::Balanced - + freeze::Inspect - + freeze::Mutate; - - /// Registry for minted NFTs. - type Nfts: NonFungiblesInspect - + Create>; - - /// Collection inspector - type CollectionInspector: shp_traits::InspectCollections< - CollectionId = CollectionIdFor, - >; - - /// Maximum number of SPs (MSP + BSPs) that can store a file. - /// - /// This is used to limit the number of BSPs storing a file and claiming rewards for it. - /// If this number is too high, then the reward for storing a file might be to diluted and pointless to store. - #[pallet::constant] - type MaxBspsPerStorageRequest: Get; - - /// Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. - #[pallet::constant] - type MaxBatchConfirmStorageRequests: Get; - - /// Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. - #[pallet::constant] - type MaxBatchMspRespondStorageRequests: Get; - - /// Maximum byte size of a file path. - #[pallet::constant] - type MaxFilePathSize: Get; - - /// Maximum byte size of a peer id. - #[pallet::constant] - type MaxPeerIdSize: Get; - - /// Maximum number of peer ids for a storage request. - #[pallet::constant] - type MaxNumberOfPeerIds: Get; - - /// Maximum number of multiaddresses for a storage request. - #[pallet::constant] - type MaxDataServerMultiAddresses: Get; - - /// Maximum number of expired items (per type) to clean up in a single block. - #[pallet::constant] - type MaxExpiredItemsInBlock: Get; - - /// Time-to-live for a storage request. - #[pallet::constant] - type StorageRequestTtl: Get; - - /// Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. - #[pallet::constant] - type PendingFileDeletionRequestTtl: Get; - - /// Time-to-live for a move bucket request, after which the request is considered expired. - #[pallet::constant] - type MoveBucketRequestTtl: Get; - - /// Maximum number of file deletion requests a user can have pending. - #[pallet::constant] - type MaxUserPendingDeletionRequests: Get; - - /// Maximum number of move bucket requests a user can have pending. - #[pallet::constant] - type MaxUserPendingMoveBucketRequests: Get; - - /// Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. - #[pallet::constant] - type MinWaitForStopStoring: Get>; - } - - #[pallet::pallet] - pub struct Pallet(_); - - #[pallet::storage] - pub type StorageRequests = - StorageMap<_, Blake2_128Concat, MerkleHash, StorageRequestMetadata>; - - /// A double map from storage request to BSP `AccountId`s that volunteered to store the file. - /// - /// Any BSP under a storage request prefix is considered to be a volunteer and can be removed at any time. - /// Once a BSP submits a valid proof to the via the `bsp_confirm_storing` extrinsic, the `confirmed` field in [`StorageRequestBspsMetadata`] will be set to `true`. - /// - /// When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. - #[pallet::storage] - pub type StorageRequestBsps = StorageDoubleMap< - _, - Blake2_128Concat, - MerkleHash, - Blake2_128Concat, - ProviderIdFor, - StorageRequestBspsMetadata, - OptionQuery, - >; - - /// Bookkeeping of the buckets containing open storage requests. - #[pallet::storage] - pub type BucketsWithStorageRequests = StorageDoubleMap< - _, - Blake2_128Concat, - BucketIdFor, - Blake2_128Concat, - MerkleHash, - (), - OptionQuery, - >; - - /// A map of blocks to expired storage requests. - #[pallet::storage] - pub type StorageRequestExpirations = StorageMap< - _, - Blake2_128Concat, - BlockNumberFor, - BoundedVec, T::MaxExpiredItemsInBlock>, - ValueQuery, - >; - - /// A map of blocks to expired file deletion requests. - #[pallet::storage] - pub type FileDeletionRequestExpirations = StorageMap< - _, - Blake2_128Concat, - BlockNumberFor, - BoundedVec, T::MaxExpiredItemsInBlock>, - ValueQuery, - >; - - /// A map of blocks to expired move bucket requests. - #[pallet::storage] - pub type MoveBucketRequestExpirations = StorageMap< - _, - Blake2_128Concat, - BlockNumberFor, - BoundedVec<(ProviderIdFor, BucketIdFor), T::MaxExpiredItemsInBlock>, - ValueQuery, - >; - - /// A pointer to the earliest available block to insert a new storage request expiration. - /// - /// This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. - #[pallet::storage] - pub type NextAvailableStorageRequestExpirationBlock = - StorageValue<_, BlockNumberFor, ValueQuery>; - - /// A pointer to the earliest available block to insert a new file deletion request expiration. - /// - /// This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. - #[pallet::storage] - pub type NextAvailableFileDeletionRequestExpirationBlock = - StorageValue<_, BlockNumberFor, ValueQuery>; - - /// A pointer to the earliest available block to insert a new move bucket request expiration. - /// - /// This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. - #[pallet::storage] - pub type NextAvailableMoveBucketRequestExpirationBlock = - StorageValue<_, BlockNumberFor, ValueQuery>; - - /// A pointer to the starting block to clean up expired storage requests. - /// - /// If this block is behind the current block number, the cleanup algorithm in `on_idle` will - /// attempt to accelerate this block pointer as close to or up to the current block number. This - /// will execute provided that there is enough remaining weight to do so. - #[pallet::storage] - pub type NextStartingBlockToCleanUp = StorageValue<_, BlockNumberFor, ValueQuery>; - - /// Pending file deletion requests. - /// - /// A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. - #[pallet::storage] - pub type PendingFileDeletionRequests = StorageMap< - _, - Blake2_128Concat, - T::AccountId, - BoundedVec<(MerkleHash, BucketIdFor), T::MaxUserPendingDeletionRequests>, - ValueQuery, - >; - - /// Pending file stop storing requests. - /// - /// A double mapping from BSP IDs to a list of file keys pending stop storing requests to the block in which those requests were opened - /// and the proven size of the file. - /// The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges - /// of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. - #[pallet::storage] - pub type PendingStopStoringRequests = StorageDoubleMap< - _, - Blake2_128Concat, - ProviderIdFor, - Blake2_128Concat, - MerkleHash, - (BlockNumberFor, StorageData), - >; - - /// Pending move bucket requests. - /// - /// A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. - /// The value is the user who requested the move. - #[pallet::storage] - pub type PendingMoveBucketRequests = StorageDoubleMap< - _, - Blake2_128Concat, - ProviderIdFor, - Blake2_128Concat, - BucketIdFor, - MoveBucketRequestMetadata, - >; - - /// BSP data servers for move bucket requests. - #[pallet::storage] - pub type DataServersForMoveBucket = StorageDoubleMap< - _, - Blake2_128Concat, - BucketIdFor, - Blake2_128Concat, - ProviderIdFor, - (), - >; - - /// Bookkeeping of buckets that are pending to be moved to a new MSP. - #[pallet::storage] - pub type PendingBucketsToMove = - StorageMap<_, Blake2_128Concat, BucketIdFor, (), ValueQuery>; - - /// Number of BSPs required to fulfill a storage request - /// - /// This is also used as a default value if the BSPs required are not specified when creating a storage request. - #[pallet::storage] - pub type ReplicationTarget = StorageValue<_, ReplicationTargetType, ValueQuery>; - - /// Number of ticks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. - #[pallet::storage] - pub type TickRangeToMaximumThreshold = StorageValue<_, TickNumber, ValueQuery>; - - #[pallet::genesis_config] - pub struct GenesisConfig { - pub replication_target: ReplicationTargetType, - pub tick_range_to_maximum_threshold: TickNumber, - } - - impl Default for GenesisConfig { - fn default() -> Self { - let replication_target = 1u32.into(); - let tick_range_to_maximum_threshold = 10u32.into(); - - ReplicationTarget::::put(replication_target); - TickRangeToMaximumThreshold::::put(tick_range_to_maximum_threshold); - - Self { - replication_target, - tick_range_to_maximum_threshold, - } - } - } - - #[pallet::genesis_build] - impl BuildGenesisConfig for GenesisConfig { - fn build(&self) { - ReplicationTarget::::put(self.replication_target); - TickRangeToMaximumThreshold::::put(self.tick_range_to_maximum_threshold); - } - } - - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - /// Notifies that a new bucket has been created. - NewBucket { - who: T::AccountId, - msp_id: ProviderIdFor, - bucket_id: BucketIdFor, - name: BucketNameFor, - collection_id: Option>, - private: bool, - }, - /// Notifies that a bucket is being moved to a new MSP. - MoveBucketRequested { - who: T::AccountId, - bucket_id: BucketIdFor, - new_msp_id: ProviderIdFor, - }, - /// Notifies that a bucket's privacy has been updated. - BucketPrivacyUpdated { - who: T::AccountId, - bucket_id: BucketIdFor, - collection_id: Option>, - private: bool, - }, - /// Notifies that a new collection has been created and associated with a bucket. - NewCollectionAndAssociation { - who: T::AccountId, - bucket_id: BucketIdFor, - collection_id: CollectionIdFor, - }, - /// Notifies that a new file has been requested to be stored. - NewStorageRequest { - who: T::AccountId, - file_key: MerkleHash, - bucket_id: BucketIdFor, - location: FileLocation, - fingerprint: Fingerprint, - size: StorageData, - peer_ids: PeerIds, - }, - /// Notifies that a MSP has responded to storage request(s). - MspRespondedToStorageRequests { - results: MspRespondStorageRequestsResult, - }, - /// Notifies that a BSP has been accepted to store a given file. - AcceptedBspVolunteer { - bsp_id: ProviderIdFor, - bucket_id: BucketIdFor, - location: FileLocation, - fingerprint: Fingerprint, - multiaddresses: MultiAddresses, - owner: T::AccountId, - size: StorageData, - }, - /// Notifies that a BSP confirmed storing a file(s). - BspConfirmedStoring { - who: T::AccountId, - bsp_id: ProviderIdFor, - file_keys: BoundedVec, T::MaxBatchConfirmStorageRequests>, - new_root: MerkleHash, - }, - /// Notifies that a storage request for a file key has been fulfilled. - StorageRequestFulfilled { file_key: MerkleHash }, - /// Notifies the expiration of a storage request. - StorageRequestExpired { file_key: MerkleHash }, - /// Notifies that a storage request has been revoked by the user who initiated it. - StorageRequestRevoked { file_key: MerkleHash }, - /// Notifies that a BSP has opened a request to stop storing a file. - BspRequestedToStopStoring { - bsp_id: ProviderIdFor, - file_key: MerkleHash, - owner: T::AccountId, - location: FileLocation, - }, - /// Notifies that a BSP has stopped storing a file. - BspConfirmStoppedStoring { - bsp_id: ProviderIdFor, - file_key: MerkleHash, - new_root: MerkleHash, - }, - /// Notifies that a file key has been queued for a priority challenge for file deletion. - PriorityChallengeForFileDeletionQueued { - issuer: EitherAccountIdOrMspId, - file_key: MerkleHash, - }, - /// Notifies that a SP has stopped storing a file because its owner has become insolvent. - SpStopStoringInsolventUser { - sp_id: ProviderIdFor, - file_key: MerkleHash, - owner: T::AccountId, - location: FileLocation, - new_root: MerkleHash, - }, - /// Notifies that a priority challenge failed to be queued for pending file deletion. - FailedToQueuePriorityChallenge { - user: T::AccountId, - file_key: MerkleHash, - }, - /// Notifies that a file will be deleted. - FileDeletionRequest { - user: T::AccountId, - file_key: MerkleHash, - bucket_id: BucketIdFor, - msp_id: ProviderIdFor, - proof_of_inclusion: bool, - }, - /// Notifies that a proof has been submitted for a pending file deletion request. - ProofSubmittedForPendingFileDeletionRequest { - msp_id: ProviderIdFor, - user: T::AccountId, - file_key: MerkleHash, - bucket_id: BucketIdFor, - proof_of_inclusion: bool, - }, - /// Notifies that a BSP's challenge cycle has been initialised, adding the first file - /// key(s) to the BSP's Merkle Patricia Forest. - BspChallengeCycleInitialised { - who: T::AccountId, - bsp_id: ProviderIdFor, - }, - /// Notifies that a move bucket request has expired. - MoveBucketRequestExpired { - msp_id: ProviderIdFor, - bucket_id: BucketIdFor, - }, - /// Notifies that a bucket has been moved to a new MSP. - MoveBucketAccepted { - bucket_id: BucketIdFor, - msp_id: ProviderIdFor, - }, - /// Notifies that a bucket move request has been rejected by the MSP. - MoveBucketRejected { - bucket_id: BucketIdFor, - msp_id: ProviderIdFor, - }, - /// Notifies that a data server has been registered for a move bucket request. - DataServerRegisteredForMoveBucket { - bsp_id: ProviderIdFor, - bucket_id: BucketIdFor, - }, - } - - // Errors inform users that something went wrong. - #[pallet::error] - pub enum Error { - /// Storage request already registered for the given file. - StorageRequestAlreadyRegistered, - /// Storage request not registered for the given file. - StorageRequestNotFound, - /// Operation not allowed while the storage request is not being revoked. - StorageRequestNotRevoked, - /// Operation not allowed while the storage request exists. - StorageRequestExists, - /// Replication target cannot be zero. - ReplicationTargetCannotBeZero, - /// BSPs required for storage request cannot exceed the maximum allowed. - BspsRequiredExceedsTarget, - /// Account is not a BSP. - NotABsp, - /// Account is not a MSP. - NotAMsp, - /// Account is not a SP. - NotASp, - /// BSP has not volunteered to store the given file. - BspNotVolunteered, - /// BSP has not confirmed storing the given file. - BspNotConfirmed, - /// BSP has already confirmed storing the given file. - BspAlreadyConfirmed, - /// Number of BSPs required for storage request has been reached. - StorageRequestBspsRequiredFulfilled, - /// BSP already volunteered to store the given file. - BspAlreadyVolunteered, - /// SP does not have enough storage capacity to store the file. - InsufficientAvailableCapacity, - /// Number of removed BSPs volunteered from storage request prefix did not match the expected number. - UnexpectedNumberOfRemovedVolunteeredBsps, - /// No slot available found in blocks to insert storage request expiration time. - StorageRequestExpiredNoSlotAvailable, - /// Not authorized to delete the storage request. - StorageRequestNotAuthorized, - /// Error created in 2024. If you see this, you are well beyond the singularity and should - /// probably stop using this pallet. - MaxBlockNumberReached, - /// Failed to encode BSP id as slice. - FailedToEncodeBsp, - /// Failed to encode fingerprint as slice. - FailedToEncodeFingerprint, - /// Failed to decode threshold. - FailedToDecodeThreshold, - /// BSP did not succeed threshold check. - AboveThreshold, - /// Arithmetic error in threshold calculation. - ThresholdArithmeticError, - /// Failed to convert to primitive type. - FailedTypeConversion, - /// Divided by 0 - DividedByZero, - /// Failed to get value when just checked it existed. - ImpossibleFailedToGetValue, - /// Bucket is not private. Call `update_bucket_privacy` to make it private. - BucketIsNotPrivate, - /// Bucket does not exist - BucketNotFound, - /// Operation failed because the account is not the owner of the bucket. - NotBucketOwner, - /// Root of the provider not found. - ProviderRootNotFound, - /// Failed to verify proof: required to provide a proof of non-inclusion. - ExpectedNonInclusionProof, - /// Failed to verify proof: required to provide a proof of inclusion. - ExpectedInclusionProof, - /// Metadata does not correspond to expected file key. - InvalidFileKeyMetadata, - /// BSPs assignment threshold cannot be below asymptote. - ThresholdBelowAsymptote, - /// Unauthorized operation, signer does not own the file. - NotFileOwner, - /// File key already pending deletion. - FileKeyAlreadyPendingDeletion, - /// Max number of user pending deletion requests reached. - MaxUserPendingDeletionRequestsReached, - /// Unauthorized operation, signer is not an MSP of the bucket id. - MspNotStoringBucket, - /// File key not found in pending deletion requests. - FileKeyNotPendingDeletion, - /// File size cannot be zero. - FileSizeCannotBeZero, - /// No global reputation weight set. - NoGlobalReputationWeightSet, - /// Maximum threshold cannot be zero. - MaximumThresholdCannotBeZero, - /// Tick range to maximum threshold cannot be zero. - TickRangeToMaximumThresholdCannotBeZero, - /// Pending stop storing request not found. - PendingStopStoringRequestNotFound, - /// Minimum amount of blocks between the request opening and being able to confirm it not reached. - MinWaitForStopStoringNotReached, - /// Pending stop storing request already exists. - PendingStopStoringRequestAlreadyExists, - /// A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. - UserNotInsolvent, - /// The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. - NotSelectedMsp, - /// The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. - MspAlreadyConfirmed, - /// The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. - RequestWithoutMsp, - /// The MSP is already storing the bucket. - MspAlreadyStoringBucket, - /// Move bucket request not found in storage. - MoveBucketRequestNotFound, - /// Action not allowed while the bucket is being moved. - BucketIsBeingMoved, - /// BSP is already a data server for the move bucket request. - BspAlreadyDataServer, - /// Too many registered data servers for the move bucket request. - BspDataServersExceeded, - /// The bounded vector that holds file metadata to process it is full but there's still more to process. - FileMetadataProcessingQueueFull, - /// Too many batch responses to process. - TooManyBatchResponses, - /// Too many storage request responses. - TooManyStorageRequestResponses, - /// Bucket id and file key pair is invalid. - InvalidBucketIdFileKeyPair, - /// Key already exists in mapping when it should not. - InconsistentStateKeyAlreadyExists, - } - - #[pallet::call] - impl Pallet { - #[pallet::call_index(0)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn create_bucket( - origin: OriginFor, - msp_id: ProviderIdFor, - name: BucketNameFor, - private: bool, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let (bucket_id, maybe_collection_id) = - Self::do_create_bucket(who.clone(), msp_id, name.clone(), private)?; - - Self::deposit_event(Event::NewBucket { - who, - msp_id, - bucket_id, - name, - collection_id: maybe_collection_id, - private, - }); - - Ok(()) - } - - #[pallet::call_index(1)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn request_move_bucket( - origin: OriginFor, - bucket_id: BucketIdFor, - new_msp_id: ProviderIdFor, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - Self::do_request_move_bucket(who.clone(), bucket_id, new_msp_id)?; - - Self::deposit_event(Event::MoveBucketRequested { - who, - bucket_id, - new_msp_id, - }); - - Ok(()) - } - - #[pallet::call_index(2)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn msp_respond_move_bucket_request( - origin: OriginFor, - bucket_id: BucketIdFor, - response: BucketMoveRequestResponse, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let msp_id = - Self::do_msp_respond_move_bucket_request(who.clone(), bucket_id, response.clone())?; - - match response { - BucketMoveRequestResponse::Accepted => { - Self::deposit_event(Event::MoveBucketAccepted { bucket_id, msp_id }); - } - BucketMoveRequestResponse::Rejected => { - Self::deposit_event(Event::MoveBucketRejected { bucket_id, msp_id }); - } - } - - Ok(()) - } - - #[pallet::call_index(3)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn update_bucket_privacy( - origin: OriginFor, - bucket_id: BucketIdFor, - private: bool, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let maybe_collection_id = - Self::do_update_bucket_privacy(who.clone(), bucket_id, private)?; - - Self::deposit_event(Event::BucketPrivacyUpdated { - who, - bucket_id, - private, - collection_id: maybe_collection_id, - }); - - Ok(()) - } - - /// Create and associate a collection with a bucket. - #[pallet::call_index(4)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn create_and_associate_collection_with_bucket( - origin: OriginFor, - bucket_id: BucketIdFor, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let collection_id = - Self::do_create_and_associate_collection_with_bucket(who.clone(), bucket_id)?; - - Self::deposit_event(Event::NewCollectionAndAssociation { - who, - bucket_id, - collection_id, - }); - - Ok(()) - } - - /// Issue a new storage request for a file - #[pallet::call_index(5)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn issue_storage_request( - origin: OriginFor, - bucket_id: BucketIdFor, - location: FileLocation, - fingerprint: Fingerprint, - size: StorageData, - msp_id: ProviderIdFor, - peer_ids: PeerIds, - ) -> DispatchResult { - // Check that the extrinsic was signed and get the signer - let who = ensure_signed(origin)?; - - // Perform validations and register storage request - let file_key = Self::do_request_storage( - who.clone(), - bucket_id, - location.clone(), - fingerprint, - size, - Some(msp_id), - None, - Some(peer_ids.clone()), - Default::default(), - )?; - - // BSPs listen to this event and volunteer to store the file - Self::deposit_event(Event::NewStorageRequest { - who, - file_key, - bucket_id, - location, - fingerprint, - size, - peer_ids, - }); - - Ok(()) - } - - /// Revoke storage request - #[pallet::call_index(6)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn revoke_storage_request( - origin: OriginFor, - file_key: MerkleHash, - ) -> DispatchResult { - // Check that the extrinsic was signed and get the signer - let who = ensure_signed(origin)?; - - // Perform validations and revoke storage request - Self::do_revoke_storage_request(who, file_key)?; - - // Emit event. - Self::deposit_event(Event::StorageRequestRevoked { file_key }); - - Ok(()) - } - - /// Add yourself as a data server for providing the files of the bucket requested to be moved. - #[pallet::call_index(7)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn bsp_add_data_server_for_move_bucket_request( - origin: OriginFor, - bucket_id: BucketIdFor, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let bsp_id = - Self::do_bsp_add_data_server_for_move_bucket_request(who.clone(), bucket_id)?; - - Self::deposit_event(Event::DataServerRegisteredForMoveBucket { bsp_id, bucket_id }); - - Ok(()) - } - - /// Used by a MSP to accept or decline storage requests in batches, grouped by bucket. - /// - /// This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be - /// accepted, rejected or have failed to be processed in the results of the event emitted. - /// - /// The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys - /// in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that - /// the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP - /// wasn't storing it before. - #[pallet::call_index(8)] - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] - pub fn msp_respond_storage_requests_multiple_buckets( - origin: OriginFor, - file_key_responses_input: FileKeyResponsesInput, - ) -> DispatchResult { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - let results = - Self::do_msp_respond_storage_request(who.clone(), file_key_responses_input)?; - - Self::deposit_event(Event::MspRespondedToStorageRequests { results }); - - Ok(()) - } - - /// Used by a BSP to volunteer for storing a file. - /// - /// The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, - /// so a BSP is strongly advised to check beforehand. Another reason for failure is - /// if the maximum number of BSPs has been reached. A successful assignment as BSP means - /// that some of the collateral tokens of that MSP are frozen. - #[pallet::call_index(9)] - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] - pub fn bsp_volunteer(origin: OriginFor, file_key: MerkleHash) -> DispatchResult { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Perform validations and register Storage Provider as BSP for file. - let (bsp_id, multiaddresses, storage_request_metadata) = - Self::do_bsp_volunteer(who.clone(), file_key)?; - - // Emit new BSP volunteer event. - Self::deposit_event(Event::AcceptedBspVolunteer { - bsp_id, - multiaddresses, - bucket_id: storage_request_metadata.bucket_id, - location: storage_request_metadata.location, - fingerprint: storage_request_metadata.fingerprint, - owner: storage_request_metadata.owner, - size: storage_request_metadata.size, - }); - - Ok(()) - } - - /// Used by a BSP to confirm they are storing data of a storage request. - #[pallet::call_index(10)] - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] - pub fn bsp_confirm_storing( - origin: OriginFor, - non_inclusion_forest_proof: ForestProof, - file_keys_and_proofs: BoundedVec< - (MerkleHash, KeyProof), - T::MaxBatchConfirmStorageRequests, - >, - ) -> DispatchResult { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Perform validations and confirm storage. - Self::do_bsp_confirm_storing( - who.clone(), - non_inclusion_forest_proof.clone(), - file_keys_and_proofs, - ) - } - - /// Executed by a BSP to request to stop storing a file. - /// - /// In the event when a storage request no longer exists for the data the BSP no longer stores, - /// it is required that the BSP still has access to the metadata of the initial storage request. - /// If they do not, they will at least need that metadata to reconstruct the File ID and from wherever - /// the BSP gets that data is up to it. One example could be from the assigned MSP. - /// This metadata is necessary since it is needed to reconstruct the leaf node key in the storage - /// provider's Merkle Forest. - #[pallet::call_index(11)] - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] - pub fn bsp_request_stop_storing( - origin: OriginFor, - file_key: MerkleHash, - bucket_id: BucketIdFor, - location: FileLocation, - owner: T::AccountId, - fingerprint: Fingerprint, - size: StorageData, - can_serve: bool, - inclusion_forest_proof: ForestProof, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - // Perform validations and open the request to stop storing the file. - let bsp_id = Self::do_bsp_request_stop_storing( - who.clone(), - file_key, - bucket_id, - location.clone(), - owner.clone(), - fingerprint, - size, - can_serve, - inclusion_forest_proof, - )?; - - // Emit event. - Self::deposit_event(Event::BspRequestedToStopStoring { - bsp_id, - file_key, - owner, - location, - }); - - Ok(()) - } - - /// Executed by a BSP to confirm to stop storing a file. - /// - /// It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. - /// The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the - /// BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. - #[pallet::call_index(12)] - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] - pub fn bsp_confirm_stop_storing( - origin: OriginFor, - file_key: MerkleHash, - inclusion_forest_proof: ForestProof, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - // Perform validations and stop storing the file. - let (bsp_id, new_root) = - Self::do_bsp_confirm_stop_storing(who.clone(), file_key, inclusion_forest_proof)?; - - // Emit event. - Self::deposit_event(Event::BspConfirmStoppedStoring { - bsp_id, - file_key, - new_root, - }); - - Ok(()) - } - - /// Executed by a SP to stop storing a file from an insolvent user. - /// - /// This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since - /// it won't be getting paid for it anymore. - /// The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to - /// wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. - #[pallet::call_index(13)] - #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] - pub fn stop_storing_for_insolvent_user( - origin: OriginFor, - file_key: MerkleHash, - bucket_id: BucketIdFor, - location: FileLocation, - owner: T::AccountId, - fingerprint: Fingerprint, - size: StorageData, - inclusion_forest_proof: ForestProof, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - // Perform validations and stop storing the file. - let (sp_id, new_root) = Self::do_sp_stop_storing_for_insolvent_user( - who.clone(), - file_key, - bucket_id, - location.clone(), - owner.clone(), - fingerprint, - size, - inclusion_forest_proof, - )?; - - // Emit event. - Self::deposit_event(Event::SpStopStoringInsolventUser { - sp_id, - file_key, - owner, - location, - new_root, - }); - - Ok(()) - } - - #[pallet::call_index(14)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn delete_file( - origin: OriginFor, - bucket_id: BucketIdFor, - file_key: MerkleHash, - location: FileLocation, - size: StorageData, - fingerprint: Fingerprint, - maybe_inclusion_forest_proof: Option>, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let (proof_of_inclusion, msp_id) = Self::do_delete_file( - who.clone(), - bucket_id, - file_key, - location, - fingerprint, - size, - maybe_inclusion_forest_proof, - )?; - - Self::deposit_event(Event::FileDeletionRequest { - user: who, - file_key, - bucket_id, - msp_id, - proof_of_inclusion, - }); - - Ok(()) - } - - #[pallet::call_index(15)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn pending_file_deletion_request_submit_proof( - origin: OriginFor, - user: T::AccountId, - file_key: MerkleHash, - bucket_id: BucketIdFor, - forest_proof: ForestProof, - ) -> DispatchResult { - let who = ensure_signed(origin)?; - - let (proof_of_inclusion, msp_id) = Self::do_pending_file_deletion_request_submit_proof( - who.clone(), - user.clone(), - file_key, - bucket_id, - forest_proof, - )?; - - Self::deposit_event(Event::ProofSubmittedForPendingFileDeletionRequest { - msp_id, - user, - file_key, - bucket_id, - proof_of_inclusion, - }); - - Ok(()) - } - - #[pallet::call_index(16)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn set_global_parameters( - origin: OriginFor, - replication_target: Option, - tick_range_to_maximum_threshold: Option>, - ) -> DispatchResult { - // Check that the extrinsic was sent with root origin. - ensure_root(origin)?; - - if let Some(replication_target) = replication_target { - ensure!( - replication_target > T::ReplicationTargetType::zero(), - Error::::ReplicationTargetCannotBeZero - ); - - ReplicationTarget::::put(replication_target); - } - - if let Some(tick_range_to_maximum_threshold) = tick_range_to_maximum_threshold { - ensure!( - tick_range_to_maximum_threshold > TickNumber::::zero(), - Error::::TickRangeToMaximumThresholdCannotBeZero - ); - - TickRangeToMaximumThreshold::::put(tick_range_to_maximum_threshold); - } - - Ok(().into()) - } - } - - #[pallet::hooks] - impl Hooks> for Pallet - where - u32: TryFrom>, - { - fn on_idle(current_block: BlockNumberFor, remaining_weight: Weight) -> Weight { - let mut remaining_weight = remaining_weight; - - Self::do_on_idle(current_block, &mut remaining_weight); - - remaining_weight - } - } -} +//! # File System Pallet +//! +//! - [`Config`] +//! - [`Call`] +//! +//! ## Overview +//! +//! The file system pallet provides the following functionality: +//! +//! - Tracks Merkle Forest roots for every MSP and BSP +//! - Manages storage buckets +//! - Exposes all file related actions a user or storage provider can execute +//! +//! ## Interface +//! +//! ### Dispatchable Functions +//! +//! - `issue_storage_request`: Issue a new storage request to store a file. +//! - `volunteer_bsp`: BSP volunteers to store a file for a given storage request. +//! +//! ## Hooks +//! +//! - `on_idle`: Cleanup all expired storage requests. +//! +//! ## Dependencies +//! +//! TODO +#![cfg_attr(not(feature = "std"), no_std)] + +pub use pallet::*; + +pub mod types; +mod utils; + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; + +#[cfg(feature = "runtime-benchmarks")] +mod benchmarking; + +#[frame_support::pallet] +pub mod pallet { + use super::types::*; + use codec::HasCompact; + use frame_support::{ + dispatch::DispatchResult, + pallet_prelude::{ValueQuery, *}, + sp_runtime::traits::{CheckEqual, Convert, MaybeDisplay, SimpleBitOps}, + traits::{ + fungible::*, + nonfungibles_v2::{Create, Inspect as NonFungiblesInspect}, + }, + Blake2_128Concat, + }; + use frame_system::pallet_prelude::{BlockNumberFor, *}; + use scale_info::prelude::fmt::Debug; + use shp_file_metadata::ChunkId; + use sp_runtime::{ + traits::{ + Bounded, CheckedAdd, CheckedDiv, CheckedMul, CheckedSub, ConvertBack, One, Saturating, + Zero, + }, + BoundedVec, + }; + + #[pallet::config] + pub trait Config: frame_system::Config { + /// Because this pallet emits events, it depends on the runtime's definition of an event. + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + + /// The trait for reading and mutating Storage Provider and Bucket data. + type Providers: shp_traits::ReadProvidersInterface + + shp_traits::MutateProvidersInterface< + MerkleHash = ::MerkleHash, + ProviderId = ::ProviderId, + > + shp_traits::ReadStorageProvidersInterface< + ProviderId = ::ProviderId, + > + shp_traits::MutateStorageProvidersInterface< + ProviderId = ::ProviderId, + StorageDataUnit = ::StorageDataUnit, + > + shp_traits::ReadBucketsInterface< + AccountId = Self::AccountId, + BucketId = ::ProviderId, + MerkleHash = ::MerkleHash, + ProviderId = ::ProviderId, + ReadAccessGroupId = CollectionIdFor, + StorageDataUnit = ::StorageDataUnit, + > + shp_traits::MutateBucketsInterface< + AccountId = Self::AccountId, + BucketId = ::BucketId, + MerkleHash = ::MerkleHash, + ProviderId = ::ProviderId, + ReadAccessGroupId = CollectionIdFor, + StorageDataUnit = ::StorageDataUnit, + >; + + /// The trait for issuing challenges and verifying proofs. + type ProofDealer: shp_traits::ProofsDealerInterface< + ProviderId = ::ProviderId, + MerkleHash = ::MerkleHash, + >; + + /// The trait to create, update, delete and inspect payment streams. + type PaymentStreams: shp_traits::PaymentStreamsInterface< + AccountId = Self::AccountId, + ProviderId = ::ProviderId, + Units = ::StorageDataUnit, + >; + + /// The trait for checking user solvency in the system + type UserSolvency: shp_traits::ReadUserSolvencyInterface; + + /// Type for identifying a file, generally a hash. + type Fingerprint: Parameter + + Member + + MaybeSerializeDeserialize + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen; + + /// Type representing the storage request bsps size type. + type ReplicationTargetType: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + From + + Into + + Into + + Copy + + MaxEncodedLen + + HasCompact + + Default + + scale_info::TypeInfo + + MaybeSerializeDeserialize + + CheckedAdd + + One + + Saturating + + PartialOrd + + Zero; + + /// Type representing the threshold a BSP must meet to be eligible to volunteer to store a file. + type ThresholdType: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + Default + + MaybeDisplay + + From + + From<::ReputationWeight> + + From + + Copy + + MaxEncodedLen + + Decode + + Saturating + + CheckedMul + + CheckedDiv + + CheckedAdd + + CheckedSub + + PartialOrd + + Bounded + + One + + Zero; + + /// The type to convert a threshold to a tick number. + /// + /// For more information on what "ticks" are, see the [Proofs Dealer pallet](https://github.com/Moonsong-Labs/storage-hub/blob/main/pallets/proofs-dealer/README.md). + type ThresholdTypeToTickNumber: ConvertBack< + Self::ThresholdType, + ::TickNumber, + >; + + /// The type to convert a hash to a threshold. + type HashToThresholdType: Convert; + + /// The type to convert a MerkleHash to a RandomnessOutput. + type MerkleHashToRandomnessOutput: Convert< + ::MerkleHash, + ::RandomnessOutput, + >; + + /// The type to convert a ChunkId to a MerkleHash + type ChunkIdToMerkleHash: Convert< + ChunkId, + ::MerkleHash, + >; + + /// The currency mechanism, used for paying for reserves. + type Currency: Inspect + + Mutate + + hold::Balanced + + freeze::Inspect + + freeze::Mutate; + + /// Registry for minted NFTs. + type Nfts: NonFungiblesInspect + + Create>; + + /// Collection inspector + type CollectionInspector: shp_traits::InspectCollections< + CollectionId = CollectionIdFor, + >; + + /// Maximum number of SPs (MSP + BSPs) that can store a file. + /// + /// This is used to limit the number of BSPs storing a file and claiming rewards for it. + /// If this number is too high, then the reward for storing a file might be to diluted and pointless to store. + #[pallet::constant] + type MaxBspsPerStorageRequest: Get; + + /// Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. + #[pallet::constant] + type MaxBatchConfirmStorageRequests: Get; + + /// Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. + #[pallet::constant] + type MaxBatchMspRespondStorageRequests: Get; + + /// Maximum byte size of a file path. + #[pallet::constant] + type MaxFilePathSize: Get; + + /// Maximum byte size of a peer id. + #[pallet::constant] + type MaxPeerIdSize: Get; + + /// Maximum number of peer ids for a storage request. + #[pallet::constant] + type MaxNumberOfPeerIds: Get; + + /// Maximum number of multiaddresses for a storage request. + #[pallet::constant] + type MaxDataServerMultiAddresses: Get; + + /// Maximum number of expired items (per type) to clean up in a single block. + #[pallet::constant] + type MaxExpiredItemsInBlock: Get; + + /// Time-to-live for a storage request. + #[pallet::constant] + type StorageRequestTtl: Get; + + /// Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. + #[pallet::constant] + type PendingFileDeletionRequestTtl: Get; + + /// Time-to-live for a move bucket request, after which the request is considered expired. + #[pallet::constant] + type MoveBucketRequestTtl: Get; + + /// Maximum number of file deletion requests a user can have pending. + #[pallet::constant] + type MaxUserPendingDeletionRequests: Get; + + /// Maximum number of move bucket requests a user can have pending. + #[pallet::constant] + type MaxUserPendingMoveBucketRequests: Get; + + /// Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. + #[pallet::constant] + type MinWaitForStopStoring: Get>; + } + + #[pallet::pallet] + pub struct Pallet(_); + + #[pallet::storage] + pub type StorageRequests = + StorageMap<_, Blake2_128Concat, MerkleHash, StorageRequestMetadata>; + + /// A double map from storage request to BSP `AccountId`s that volunteered to store the file. + /// + /// Any BSP under a storage request prefix is considered to be a volunteer and can be removed at any time. + /// Once a BSP submits a valid proof to the via the `bsp_confirm_storing` extrinsic, the `confirmed` field in [`StorageRequestBspsMetadata`] will be set to `true`. + /// + /// When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. + #[pallet::storage] + pub type StorageRequestBsps = StorageDoubleMap< + _, + Blake2_128Concat, + MerkleHash, + Blake2_128Concat, + ProviderIdFor, + StorageRequestBspsMetadata, + OptionQuery, + >; + + /// Bookkeeping of the buckets containing open storage requests. + #[pallet::storage] + pub type BucketsWithStorageRequests = StorageDoubleMap< + _, + Blake2_128Concat, + BucketIdFor, + Blake2_128Concat, + MerkleHash, + (), + OptionQuery, + >; + + /// A map of blocks to expired storage requests. + #[pallet::storage] + pub type StorageRequestExpirations = StorageMap< + _, + Blake2_128Concat, + BlockNumberFor, + BoundedVec, T::MaxExpiredItemsInBlock>, + ValueQuery, + >; + + /// A map of blocks to expired file deletion requests. + #[pallet::storage] + pub type FileDeletionRequestExpirations = StorageMap< + _, + Blake2_128Concat, + BlockNumberFor, + BoundedVec, T::MaxExpiredItemsInBlock>, + ValueQuery, + >; + + /// A map of blocks to expired move bucket requests. + #[pallet::storage] + pub type MoveBucketRequestExpirations = StorageMap< + _, + Blake2_128Concat, + BlockNumberFor, + BoundedVec<(ProviderIdFor, BucketIdFor), T::MaxExpiredItemsInBlock>, + ValueQuery, + >; + + /// A pointer to the earliest available block to insert a new storage request expiration. + /// + /// This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. + #[pallet::storage] + pub type NextAvailableStorageRequestExpirationBlock = + StorageValue<_, BlockNumberFor, ValueQuery>; + + /// A pointer to the earliest available block to insert a new file deletion request expiration. + /// + /// This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. + #[pallet::storage] + pub type NextAvailableFileDeletionRequestExpirationBlock = + StorageValue<_, BlockNumberFor, ValueQuery>; + + /// A pointer to the earliest available block to insert a new move bucket request expiration. + /// + /// This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. + #[pallet::storage] + pub type NextAvailableMoveBucketRequestExpirationBlock = + StorageValue<_, BlockNumberFor, ValueQuery>; + + /// A pointer to the starting block to clean up expired storage requests. + /// + /// If this block is behind the current block number, the cleanup algorithm in `on_idle` will + /// attempt to accelerate this block pointer as close to or up to the current block number. This + /// will execute provided that there is enough remaining weight to do so. + #[pallet::storage] + pub type NextStartingBlockToCleanUp = StorageValue<_, BlockNumberFor, ValueQuery>; + + /// Pending file deletion requests. + /// + /// A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. + #[pallet::storage] + pub type PendingFileDeletionRequests = StorageMap< + _, + Blake2_128Concat, + T::AccountId, + BoundedVec<(MerkleHash, BucketIdFor), T::MaxUserPendingDeletionRequests>, + ValueQuery, + >; + + /// Pending file stop storing requests. + /// + /// A double mapping from BSP IDs to a list of file keys pending stop storing requests to the block in which those requests were opened + /// and the proven size of the file. + /// The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges + /// of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. + #[pallet::storage] + pub type PendingStopStoringRequests = StorageDoubleMap< + _, + Blake2_128Concat, + ProviderIdFor, + Blake2_128Concat, + MerkleHash, + (BlockNumberFor, StorageData), + >; + + /// Pending move bucket requests. + /// + /// A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. + /// The value is the user who requested the move. + #[pallet::storage] + pub type PendingMoveBucketRequests = StorageDoubleMap< + _, + Blake2_128Concat, + ProviderIdFor, + Blake2_128Concat, + BucketIdFor, + MoveBucketRequestMetadata, + >; + + /// BSP data servers for move bucket requests. + #[pallet::storage] + pub type DataServersForMoveBucket = StorageDoubleMap< + _, + Blake2_128Concat, + BucketIdFor, + Blake2_128Concat, + ProviderIdFor, + (), + >; + + /// Bookkeeping of buckets that are pending to be moved to a new MSP. + #[pallet::storage] + pub type PendingBucketsToMove = + StorageMap<_, Blake2_128Concat, BucketIdFor, (), ValueQuery>; + + /// Number of BSPs required to fulfill a storage request + /// + /// This is also used as a default value if the BSPs required are not specified when creating a storage request. + #[pallet::storage] + pub type ReplicationTarget = StorageValue<_, ReplicationTargetType, ValueQuery>; + + /// Number of ticks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. + #[pallet::storage] + pub type TickRangeToMaximumThreshold = StorageValue<_, TickNumber, ValueQuery>; + + #[pallet::genesis_config] + pub struct GenesisConfig { + pub replication_target: ReplicationTargetType, + pub tick_range_to_maximum_threshold: TickNumber, + } + + impl Default for GenesisConfig { + fn default() -> Self { + let replication_target = 1u32.into(); + let tick_range_to_maximum_threshold = 10u32.into(); + + ReplicationTarget::::put(replication_target); + TickRangeToMaximumThreshold::::put(tick_range_to_maximum_threshold); + + Self { + replication_target, + tick_range_to_maximum_threshold, + } + } + } + + #[pallet::genesis_build] + impl BuildGenesisConfig for GenesisConfig { + fn build(&self) { + ReplicationTarget::::put(self.replication_target); + TickRangeToMaximumThreshold::::put(self.tick_range_to_maximum_threshold); + } + } + + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// Notifies that a new bucket has been created. + NewBucket { + who: T::AccountId, + msp_id: ProviderIdFor, + bucket_id: BucketIdFor, + name: BucketNameFor, + collection_id: Option>, + private: bool, + }, + /// Notifies that a bucket is being moved to a new MSP. + MoveBucketRequested { + who: T::AccountId, + bucket_id: BucketIdFor, + new_msp_id: ProviderIdFor, + }, + /// Notifies that a bucket's privacy has been updated. + BucketPrivacyUpdated { + who: T::AccountId, + bucket_id: BucketIdFor, + collection_id: Option>, + private: bool, + }, + /// Notifies that a new collection has been created and associated with a bucket. + NewCollectionAndAssociation { + who: T::AccountId, + bucket_id: BucketIdFor, + collection_id: CollectionIdFor, + }, + /// Notifies that a new file has been requested to be stored. + NewStorageRequest { + who: T::AccountId, + file_key: MerkleHash, + bucket_id: BucketIdFor, + location: FileLocation, + fingerprint: Fingerprint, + size: StorageData, + peer_ids: PeerIds, + }, + /// Notifies that a MSP has responded to storage request(s). + MspRespondedToStorageRequests { + results: MspRespondStorageRequestsResult, + }, + /// Notifies that a BSP has been accepted to store a given file. + AcceptedBspVolunteer { + bsp_id: ProviderIdFor, + bucket_id: BucketIdFor, + location: FileLocation, + fingerprint: Fingerprint, + multiaddresses: MultiAddresses, + owner: T::AccountId, + size: StorageData, + }, + /// Notifies that a BSP confirmed storing a file(s). + BspConfirmedStoring { + who: T::AccountId, + bsp_id: ProviderIdFor, + file_keys: BoundedVec, T::MaxBatchConfirmStorageRequests>, + new_root: MerkleHash, + }, + /// Notifies that a storage request for a file key has been fulfilled. + StorageRequestFulfilled { file_key: MerkleHash }, + /// Notifies the expiration of a storage request. + StorageRequestExpired { file_key: MerkleHash }, + /// Notifies that a storage request has been revoked by the user who initiated it. + StorageRequestRevoked { file_key: MerkleHash }, + /// Notifies that a BSP has opened a request to stop storing a file. + BspRequestedToStopStoring { + bsp_id: ProviderIdFor, + file_key: MerkleHash, + owner: T::AccountId, + location: FileLocation, + }, + /// Notifies that a BSP has stopped storing a file. + BspConfirmStoppedStoring { + bsp_id: ProviderIdFor, + file_key: MerkleHash, + new_root: MerkleHash, + }, + /// Notifies that a file key has been queued for a priority challenge for file deletion. + PriorityChallengeForFileDeletionQueued { + issuer: EitherAccountIdOrMspId, + file_key: MerkleHash, + }, + /// Notifies that a SP has stopped storing a file because its owner has become insolvent. + SpStopStoringInsolventUser { + sp_id: ProviderIdFor, + file_key: MerkleHash, + owner: T::AccountId, + location: FileLocation, + new_root: MerkleHash, + }, + /// Notifies that a priority challenge failed to be queued for pending file deletion. + FailedToQueuePriorityChallenge { + user: T::AccountId, + file_key: MerkleHash, + }, + /// Notifies that a file will be deleted. + FileDeletionRequest { + user: T::AccountId, + file_key: MerkleHash, + bucket_id: BucketIdFor, + msp_id: ProviderIdFor, + proof_of_inclusion: bool, + }, + /// Notifies that a proof has been submitted for a pending file deletion request. + ProofSubmittedForPendingFileDeletionRequest { + msp_id: ProviderIdFor, + user: T::AccountId, + file_key: MerkleHash, + bucket_id: BucketIdFor, + proof_of_inclusion: bool, + }, + /// Notifies that a BSP's challenge cycle has been initialised, adding the first file + /// key(s) to the BSP's Merkle Patricia Forest. + BspChallengeCycleInitialised { + who: T::AccountId, + bsp_id: ProviderIdFor, + }, + /// Notifies that a move bucket request has expired. + MoveBucketRequestExpired { + msp_id: ProviderIdFor, + bucket_id: BucketIdFor, + }, + /// Notifies that a bucket has been moved to a new MSP. + MoveBucketAccepted { + bucket_id: BucketIdFor, + msp_id: ProviderIdFor, + }, + /// Notifies that a bucket move request has been rejected by the MSP. + MoveBucketRejected { + bucket_id: BucketIdFor, + msp_id: ProviderIdFor, + }, + /// Notifies that a data server has been registered for a move bucket request. + DataServerRegisteredForMoveBucket { + bsp_id: ProviderIdFor, + bucket_id: BucketIdFor, + }, + } + + // Errors inform users that something went wrong. + #[pallet::error] + pub enum Error { + /// Storage request already registered for the given file. + StorageRequestAlreadyRegistered, + /// Storage request not registered for the given file. + StorageRequestNotFound, + /// Operation not allowed while the storage request is not being revoked. + StorageRequestNotRevoked, + /// Operation not allowed while the storage request exists. + StorageRequestExists, + /// Replication target cannot be zero. + ReplicationTargetCannotBeZero, + /// BSPs required for storage request cannot exceed the maximum allowed. + BspsRequiredExceedsTarget, + /// Account is not a BSP. + NotABsp, + /// Account is not a MSP. + NotAMsp, + /// Account is not a SP. + NotASp, + /// BSP has not volunteered to store the given file. + BspNotVolunteered, + /// BSP has not confirmed storing the given file. + BspNotConfirmed, + /// BSP has already confirmed storing the given file. + BspAlreadyConfirmed, + /// Number of BSPs required for storage request has been reached. + StorageRequestBspsRequiredFulfilled, + /// BSP already volunteered to store the given file. + BspAlreadyVolunteered, + /// SP does not have enough storage capacity to store the file. + InsufficientAvailableCapacity, + /// Number of removed BSPs volunteered from storage request prefix did not match the expected number. + UnexpectedNumberOfRemovedVolunteeredBsps, + /// No slot available found in blocks to insert storage request expiration time. + StorageRequestExpiredNoSlotAvailable, + /// Not authorized to delete the storage request. + StorageRequestNotAuthorized, + /// Error created in 2024. If you see this, you are well beyond the singularity and should + /// probably stop using this pallet. + MaxBlockNumberReached, + /// Failed to encode BSP id as slice. + FailedToEncodeBsp, + /// Failed to encode fingerprint as slice. + FailedToEncodeFingerprint, + /// Failed to decode threshold. + FailedToDecodeThreshold, + /// BSP did not succeed threshold check. + AboveThreshold, + /// Arithmetic error in threshold calculation. + ThresholdArithmeticError, + /// Failed to convert to primitive type. + FailedTypeConversion, + /// Divided by 0 + DividedByZero, + /// Failed to get value when just checked it existed. + ImpossibleFailedToGetValue, + /// Bucket is not private. Call `update_bucket_privacy` to make it private. + BucketIsNotPrivate, + /// Bucket does not exist + BucketNotFound, + /// Operation failed because the account is not the owner of the bucket. + NotBucketOwner, + /// Root of the provider not found. + ProviderRootNotFound, + /// Failed to verify proof: required to provide a proof of non-inclusion. + ExpectedNonInclusionProof, + /// Failed to verify proof: required to provide a proof of inclusion. + ExpectedInclusionProof, + /// Metadata does not correspond to expected file key. + InvalidFileKeyMetadata, + /// BSPs assignment threshold cannot be below asymptote. + ThresholdBelowAsymptote, + /// Unauthorized operation, signer does not own the file. + NotFileOwner, + /// File key already pending deletion. + FileKeyAlreadyPendingDeletion, + /// Max number of user pending deletion requests reached. + MaxUserPendingDeletionRequestsReached, + /// Unauthorized operation, signer is not an MSP of the bucket id. + MspNotStoringBucket, + /// File key not found in pending deletion requests. + FileKeyNotPendingDeletion, + /// File size cannot be zero. + FileSizeCannotBeZero, + /// No global reputation weight set. + NoGlobalReputationWeightSet, + /// Maximum threshold cannot be zero. + MaximumThresholdCannotBeZero, + /// Tick range to maximum threshold cannot be zero. + TickRangeToMaximumThresholdCannotBeZero, + /// Pending stop storing request not found. + PendingStopStoringRequestNotFound, + /// Minimum amount of blocks between the request opening and being able to confirm it not reached. + MinWaitForStopStoringNotReached, + /// Pending stop storing request already exists. + PendingStopStoringRequestAlreadyExists, + /// A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. + UserNotInsolvent, + /// The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. + NotSelectedMsp, + /// The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. + MspAlreadyConfirmed, + /// The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. + RequestWithoutMsp, + /// The MSP is already storing the bucket. + MspAlreadyStoringBucket, + /// Move bucket request not found in storage. + MoveBucketRequestNotFound, + /// Action not allowed while the bucket is being moved. + BucketIsBeingMoved, + /// BSP is already a data server for the move bucket request. + BspAlreadyDataServer, + /// Too many registered data servers for the move bucket request. + BspDataServersExceeded, + /// The bounded vector that holds file metadata to process it is full but there's still more to process. + FileMetadataProcessingQueueFull, + /// Too many batch responses to process. + TooManyBatchResponses, + /// Too many storage request responses. + TooManyStorageRequestResponses, + /// Bucket id and file key pair is invalid. + InvalidBucketIdFileKeyPair, + /// Key already exists in mapping when it should not. + InconsistentStateKeyAlreadyExists, + } + + #[pallet::call] + impl Pallet { + #[pallet::call_index(0)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn create_bucket( + origin: OriginFor, + msp_id: ProviderIdFor, + name: BucketNameFor, + private: bool, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let (bucket_id, maybe_collection_id) = + Self::do_create_bucket(who.clone(), msp_id, name.clone(), private)?; + + Self::deposit_event(Event::NewBucket { + who, + msp_id, + bucket_id, + name, + collection_id: maybe_collection_id, + private, + }); + + Ok(()) + } + + #[pallet::call_index(1)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn request_move_bucket( + origin: OriginFor, + bucket_id: BucketIdFor, + new_msp_id: ProviderIdFor, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + Self::do_request_move_bucket(who.clone(), bucket_id, new_msp_id)?; + + Self::deposit_event(Event::MoveBucketRequested { + who, + bucket_id, + new_msp_id, + }); + + Ok(()) + } + + #[pallet::call_index(2)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn msp_respond_move_bucket_request( + origin: OriginFor, + bucket_id: BucketIdFor, + response: BucketMoveRequestResponse, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let msp_id = + Self::do_msp_respond_move_bucket_request(who.clone(), bucket_id, response.clone())?; + + match response { + BucketMoveRequestResponse::Accepted => { + Self::deposit_event(Event::MoveBucketAccepted { bucket_id, msp_id }); + } + BucketMoveRequestResponse::Rejected => { + Self::deposit_event(Event::MoveBucketRejected { bucket_id, msp_id }); + } + } + + Ok(()) + } + + #[pallet::call_index(3)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn update_bucket_privacy( + origin: OriginFor, + bucket_id: BucketIdFor, + private: bool, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let maybe_collection_id = + Self::do_update_bucket_privacy(who.clone(), bucket_id, private)?; + + Self::deposit_event(Event::BucketPrivacyUpdated { + who, + bucket_id, + private, + collection_id: maybe_collection_id, + }); + + Ok(()) + } + + /// Create and associate a collection with a bucket. + #[pallet::call_index(4)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn create_and_associate_collection_with_bucket( + origin: OriginFor, + bucket_id: BucketIdFor, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let collection_id = + Self::do_create_and_associate_collection_with_bucket(who.clone(), bucket_id)?; + + Self::deposit_event(Event::NewCollectionAndAssociation { + who, + bucket_id, + collection_id, + }); + + Ok(()) + } + + /// Issue a new storage request for a file + #[pallet::call_index(5)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn issue_storage_request( + origin: OriginFor, + bucket_id: BucketIdFor, + location: FileLocation, + fingerprint: Fingerprint, + size: StorageData, + msp_id: ProviderIdFor, + peer_ids: PeerIds, + ) -> DispatchResult { + // Check that the extrinsic was signed and get the signer + let who = ensure_signed(origin)?; + + // Perform validations and register storage request + let file_key = Self::do_request_storage( + who.clone(), + bucket_id, + location.clone(), + fingerprint, + size, + Some(msp_id), + None, + Some(peer_ids.clone()), + Default::default(), + )?; + + // BSPs listen to this event and volunteer to store the file + Self::deposit_event(Event::NewStorageRequest { + who, + file_key, + bucket_id, + location, + fingerprint, + size, + peer_ids, + }); + + Ok(()) + } + + /// Revoke storage request + #[pallet::call_index(6)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn revoke_storage_request( + origin: OriginFor, + file_key: MerkleHash, + ) -> DispatchResult { + // Check that the extrinsic was signed and get the signer + let who = ensure_signed(origin)?; + + // Perform validations and revoke storage request + Self::do_revoke_storage_request(who, file_key)?; + + // Emit event. + Self::deposit_event(Event::StorageRequestRevoked { file_key }); + + Ok(()) + } + + /// Add yourself as a data server for providing the files of the bucket requested to be moved. + #[pallet::call_index(7)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn bsp_add_data_server_for_move_bucket_request( + origin: OriginFor, + bucket_id: BucketIdFor, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let bsp_id = + Self::do_bsp_add_data_server_for_move_bucket_request(who.clone(), bucket_id)?; + + Self::deposit_event(Event::DataServerRegisteredForMoveBucket { bsp_id, bucket_id }); + + Ok(()) + } + + /// Used by a MSP to accept or decline storage requests in batches, grouped by bucket. + /// + /// This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be + /// accepted, rejected or have failed to be processed in the results of the event emitted. + /// + /// The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys + /// in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that + /// the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP + /// wasn't storing it before. + #[pallet::call_index(8)] + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] + pub fn msp_respond_storage_requests_multiple_buckets( + origin: OriginFor, + file_key_responses_input: FileKeyResponsesInput, + ) -> DispatchResult { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + let results = + Self::do_msp_respond_storage_request(who.clone(), file_key_responses_input)?; + + Self::deposit_event(Event::MspRespondedToStorageRequests { results }); + + Ok(()) + } + + /// Used by a BSP to volunteer for storing a file. + /// + /// The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, + /// so a BSP is strongly advised to check beforehand. Another reason for failure is + /// if the maximum number of BSPs has been reached. A successful assignment as BSP means + /// that some of the collateral tokens of that MSP are frozen. + #[pallet::call_index(9)] + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] + pub fn bsp_volunteer(origin: OriginFor, file_key: MerkleHash) -> DispatchResult { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Perform validations and register Storage Provider as BSP for file. + let (bsp_id, multiaddresses, storage_request_metadata) = + Self::do_bsp_volunteer(who.clone(), file_key)?; + + // Emit new BSP volunteer event. + Self::deposit_event(Event::AcceptedBspVolunteer { + bsp_id, + multiaddresses, + bucket_id: storage_request_metadata.bucket_id, + location: storage_request_metadata.location, + fingerprint: storage_request_metadata.fingerprint, + owner: storage_request_metadata.owner, + size: storage_request_metadata.size, + }); + + Ok(()) + } + + /// Used by a BSP to confirm they are storing data of a storage request. + #[pallet::call_index(10)] + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] + pub fn bsp_confirm_storing( + origin: OriginFor, + non_inclusion_forest_proof: ForestProof, + file_keys_and_proofs: BoundedVec< + (MerkleHash, KeyProof), + T::MaxBatchConfirmStorageRequests, + >, + ) -> DispatchResult { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Perform validations and confirm storage. + Self::do_bsp_confirm_storing( + who.clone(), + non_inclusion_forest_proof.clone(), + file_keys_and_proofs, + ) + } + + /// Executed by a BSP to request to stop storing a file. + /// + /// In the event when a storage request no longer exists for the data the BSP no longer stores, + /// it is required that the BSP still has access to the metadata of the initial storage request. + /// If they do not, they will at least need that metadata to reconstruct the File ID and from wherever + /// the BSP gets that data is up to it. One example could be from the assigned MSP. + /// This metadata is necessary since it is needed to reconstruct the leaf node key in the storage + /// provider's Merkle Forest. + #[pallet::call_index(11)] + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] + pub fn bsp_request_stop_storing( + origin: OriginFor, + file_key: MerkleHash, + bucket_id: BucketIdFor, + location: FileLocation, + owner: T::AccountId, + fingerprint: Fingerprint, + size: StorageData, + can_serve: bool, + inclusion_forest_proof: ForestProof, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + // Perform validations and open the request to stop storing the file. + let bsp_id = Self::do_bsp_request_stop_storing( + who.clone(), + file_key, + bucket_id, + location.clone(), + owner.clone(), + fingerprint, + size, + can_serve, + inclusion_forest_proof, + )?; + + // Emit event. + Self::deposit_event(Event::BspRequestedToStopStoring { + bsp_id, + file_key, + owner, + location, + }); + + Ok(()) + } + + /// Executed by a BSP to confirm to stop storing a file. + /// + /// It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. + /// The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the + /// BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. + #[pallet::call_index(12)] + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] + pub fn bsp_confirm_stop_storing( + origin: OriginFor, + file_key: MerkleHash, + inclusion_forest_proof: ForestProof, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + // Perform validations and stop storing the file. + let (bsp_id, new_root) = + Self::do_bsp_confirm_stop_storing(who.clone(), file_key, inclusion_forest_proof)?; + + // Emit event. + Self::deposit_event(Event::BspConfirmStoppedStoring { + bsp_id, + file_key, + new_root, + }); + + Ok(()) + } + + /// Executed by a SP to stop storing a file from an insolvent user. + /// + /// This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since + /// it won't be getting paid for it anymore. + /// The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to + /// wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. + #[pallet::call_index(13)] + #[pallet::weight(10_000 + T::DbWeight::get().reads_writes(1,1).ref_time())] + pub fn stop_storing_for_insolvent_user( + origin: OriginFor, + file_key: MerkleHash, + bucket_id: BucketIdFor, + location: FileLocation, + owner: T::AccountId, + fingerprint: Fingerprint, + size: StorageData, + inclusion_forest_proof: ForestProof, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + // Perform validations and stop storing the file. + let (sp_id, new_root) = Self::do_sp_stop_storing_for_insolvent_user( + who.clone(), + file_key, + bucket_id, + location.clone(), + owner.clone(), + fingerprint, + size, + inclusion_forest_proof, + )?; + + // Emit event. + Self::deposit_event(Event::SpStopStoringInsolventUser { + sp_id, + file_key, + owner, + location, + new_root, + }); + + Ok(()) + } + + #[pallet::call_index(14)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn delete_file( + origin: OriginFor, + bucket_id: BucketIdFor, + file_key: MerkleHash, + location: FileLocation, + size: StorageData, + fingerprint: Fingerprint, + maybe_inclusion_forest_proof: Option>, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let (proof_of_inclusion, msp_id) = Self::do_delete_file( + who.clone(), + bucket_id, + file_key, + location, + fingerprint, + size, + maybe_inclusion_forest_proof, + )?; + + Self::deposit_event(Event::FileDeletionRequest { + user: who, + file_key, + bucket_id, + msp_id, + proof_of_inclusion, + }); + + Ok(()) + } + + #[pallet::call_index(15)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn pending_file_deletion_request_submit_proof( + origin: OriginFor, + user: T::AccountId, + file_key: MerkleHash, + bucket_id: BucketIdFor, + forest_proof: ForestProof, + ) -> DispatchResult { + let who = ensure_signed(origin)?; + + let (proof_of_inclusion, msp_id) = Self::do_pending_file_deletion_request_submit_proof( + who.clone(), + user.clone(), + file_key, + bucket_id, + forest_proof, + )?; + + Self::deposit_event(Event::ProofSubmittedForPendingFileDeletionRequest { + msp_id, + user, + file_key, + bucket_id, + proof_of_inclusion, + }); + + Ok(()) + } + + #[pallet::call_index(16)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn set_global_parameters( + origin: OriginFor, + replication_target: Option, + tick_range_to_maximum_threshold: Option>, + ) -> DispatchResult { + // Check that the extrinsic was sent with root origin. + ensure_root(origin)?; + + if let Some(replication_target) = replication_target { + ensure!( + replication_target > T::ReplicationTargetType::zero(), + Error::::ReplicationTargetCannotBeZero + ); + + ReplicationTarget::::put(replication_target); + } + + if let Some(tick_range_to_maximum_threshold) = tick_range_to_maximum_threshold { + ensure!( + tick_range_to_maximum_threshold > TickNumber::::zero(), + Error::::TickRangeToMaximumThresholdCannotBeZero + ); + + TickRangeToMaximumThreshold::::put(tick_range_to_maximum_threshold); + } + + Ok(().into()) + } + } + + #[pallet::hooks] + impl Hooks> for Pallet + where + u32: TryFrom>, + { + fn on_idle(current_block: BlockNumberFor, remaining_weight: Weight) -> Weight { + let mut remaining_weight = remaining_weight; + + Self::do_on_idle(current_block, &mut remaining_weight); + + remaining_weight + } + } +} diff --git a/pallets/file-system/src/mock.rs b/pallets/file-system/src/mock.rs index 931d5ec9e..b9ce3c03c 100644 --- a/pallets/file-system/src/mock.rs +++ b/pallets/file-system/src/mock.rs @@ -1,567 +1,567 @@ -use core::marker::PhantomData; -use frame_support::{ - construct_runtime, derive_impl, - dispatch::DispatchClass, - parameter_types, - traits::{AsEnsureOriginWithArg, Everything, Hooks, Randomness}, - weights::{constants::RocksDbWeight, Weight, WeightMeter}, - BoundedBTreeSet, -}; -use frame_system::{self as system, limits::BlockWeights, BlockWeight, ConsumedWeight}; -use num_bigint::BigUint; -use pallet_nfts::PalletFeatures; -use shp_file_metadata::ChunkId; -use shp_traits::{ - CommitmentVerifier, MaybeDebug, ProofSubmittersInterface, ReadUserSolvencyInterface, - TrieMutation, TrieProofDeltaApplier, -}; -use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Get, Hasher, H256}; -use sp_keyring::sr25519::Keyring; -use sp_runtime::{ - traits::{BlakeTwo256, Convert, ConvertBack, IdentifyAccount, IdentityLookup, Verify, Zero}, - BuildStorage, DispatchError, MultiSignature, Perbill, SaturatedConversion, -}; -use sp_std::collections::btree_set::BTreeSet; -use sp_trie::{CompactProof, LayoutV1, MemoryDB, TrieConfiguration, TrieLayout}; -use system::pallet_prelude::BlockNumberFor; - -type Block = frame_system::mocking::MockBlock; -pub(crate) type BlockNumber = u64; -type Balance = u128; -type Signature = MultiSignature; -type AccountPublic = ::Signer; -type AccountId = ::AccountId; - -const EPOCH_DURATION_IN_BLOCKS: BlockNumber = 10; -const UNITS: Balance = 1_000_000_000_000; -const STAKE_TO_CHALLENGE_PERIOD: Balance = 100 * UNITS; - -// We mock the Randomness trait to use a simple randomness function when testing the pallet -const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumber = 3; -pub struct MockRandomness; -impl Randomness for MockRandomness { - fn random(subject: &[u8]) -> (H256, BlockNumber) { - // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks - - // Concatenate the subject with the block number to get a unique hash for each block - let subject_concat_block = [ - subject, - &frame_system::Pallet::::block_number().to_le_bytes(), - ] - .concat(); - - let hashed_subject = blake2_256(&subject_concat_block); - - ( - H256::from_slice(&hashed_subject), - frame_system::Pallet::::block_number() - .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), - ) - } -} - -/// Rolls to the desired block, with non-spammed blocks. Returns the number of blocks played. -pub(crate) fn roll_to(n: BlockNumber) -> BlockNumber { - let mut num_blocks = 0; - let mut block = System::block_number(); - while block < n { - block = roll_one_block(false); - num_blocks += 1; - } - num_blocks -} - -/// Rolls to the desired block with spammed blocks. Returns the number of blocks played. -pub(crate) fn roll_to_spammed(n: BlockNumber) -> BlockNumber { - let mut num_blocks = 0; - let mut block = System::block_number(); - while block < n { - block = roll_one_block(true); - num_blocks += 1; - } - num_blocks -} - -/// Rolls forward one block. Returns the new block number. -/// -/// It can be configured whether the block is spammed or not. -/// A spammed block is one where there is no weight left for other transactions. -fn roll_one_block(spammed: bool) -> BlockNumber { - System::set_block_number(System::block_number() + 1); - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Set block weight usage. - let normal_weight = if spammed { - let weights: BlockWeights = ::BlockWeights::get(); - weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block) - } else { - Zero::zero() - }; - let block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => normal_weight, - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(block_weight); - - FileSystem::on_idle(System::block_number(), Weight::MAX); - ProofsDealer::on_finalize(System::block_number()); - System::block_number() -} - -// Configure a mock runtime to test the pallet. -construct_runtime!( - pub enum Test - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - FileSystem: crate::{Pallet, Call, Storage, Event}, - Providers: pallet_storage_providers::{Pallet, Call, Storage, Event, HoldReason}, - ProofsDealer: pallet_proofs_dealer::{Pallet, Call, Storage, Event}, - PaymentStreams: pallet_payment_streams::{Pallet, Call, Storage, Event, HoldReason}, - BucketNfts: pallet_bucket_nfts::{Pallet, Call, Storage, Event}, - Nfts: pallet_nfts::{Pallet, Call, Storage, Event}, - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; - pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::Providers(pallet_storage_providers::HoldReason::StorageProviderDeposit); -} - -#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = RocksDbWeight; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = SS58Prefix; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = (); - type MaxFreezes = ConstU32<10>; -} - -parameter_types! { - pub storage Features: PalletFeatures = PalletFeatures::all_enabled(); -} - -impl pallet_nfts::Config for Test { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u128; - type ItemId = u128; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = frame_system::EnsureRoot; - type Locker = (); - type CollectionDeposit = ConstU128<2>; - type ItemDeposit = ConstU128<1>; - type MetadataDepositBase = ConstU128<1>; - type AttributeDepositBase = ConstU128<1>; - type DepositPerByte = ConstU128<1>; - type StringLimit = ConstU32<50>; - type KeyLimit = ConstU32<50>; - type ValueLimit = ConstU32<50>; - type ApprovalsLimit = ConstU32<10>; - type ItemAttributesApprovalsLimit = ConstU32<2>; - type MaxTips = ConstU32<10>; - type MaxDeadlineDuration = ConstU64<10000>; - type MaxAttributesPerCall = ConstU32<2>; - type Features = Features; - type OffchainSignature = Signature; - type OffchainPublic = AccountPublic; - type WeightInfo = (); - pallet_nfts::runtime_benchmarks_enabled! { - type Helper = (); - } -} - -// Payment streams pallet: -parameter_types! { - pub const PaymentStreamHoldReason: RuntimeHoldReason = RuntimeHoldReason::PaymentStreams(pallet_payment_streams::HoldReason::PaymentStreamDeposit); -} - -impl pallet_payment_streams::Config for Test { - type RuntimeEvent = RuntimeEvent; - type NativeBalance = Balances; - type ProvidersPallet = Providers; - type RuntimeHoldReason = RuntimeHoldReason; - type Units = u64; - type NewStreamDeposit = ConstU64<10>; - type UserWithoutFundsCooldown = ConstU64<100>; - type BlockNumberToBalance = BlockNumberToBalance; - type ProvidersProofSubmitters = MockSubmittingProviders; -} -// Converter from the BlockNumber type to the Balance type for math -pub struct BlockNumberToBalance; -impl Convert, Balance> for BlockNumberToBalance { - fn convert(block_number: BlockNumberFor) -> Balance { - block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type - } -} - -parameter_types! { - pub const MaxNumberOfPeerIds: u32 = 100; - pub const MaxMultiAddressSize: u32 = 100; - pub const MaxMultiAddressAmount: u32 = 5; -} - -pub type HasherOutT = <::Hash as Hasher>::Out; -pub struct DefaultMerkleRoot(PhantomData); -impl Get> for DefaultMerkleRoot { - fn get() -> HasherOutT { - sp_trie::empty_trie_root::() - } -} -impl pallet_storage_providers::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersRandomness = MockRandomness; - type PaymentStreams = PaymentStreams; - type FileMetadataManager = shp_file_metadata::FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - >; - type NativeBalance = Balances; - type RuntimeHoldReason = RuntimeHoldReason; - type StorageDataUnit = u64; - type SpCount = u32; - type MerklePatriciaRoot = H256; - type ValuePropId = H256; - type ReadAccessGroupId = ::CollectionId; - type ProvidersProofSubmitters = MockSubmittingProviders; - type ReputationWeightType = u32; - type Treasury = TreasuryAccount; - type SpMinDeposit = ConstU128<{ 10 * UNITS }>; - type SpMinCapacity = ConstU64<2>; - type DepositPerData = ConstU128<2>; - type MaxFileSize = ConstU64<{ u64::MAX }>; - type MaxMultiAddressSize = MaxMultiAddressSize; - type MaxMultiAddressAmount = MaxMultiAddressAmount; - type MaxProtocols = ConstU32<100>; - type MaxBuckets = ConstU32<10000>; - type BucketDeposit = ConstU128<10>; - type BucketNameLimit = ConstU32<100>; - type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; - type MinBlocksBetweenCapacityChanges = ConstU64<10>; - type DefaultMerkleRoot = DefaultMerkleRoot>; - type SlashAmountPerMaxFileSize = ConstU128<10>; - type StartingReputationWeight = ConstU32<1>; -} - -// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. -pub struct MockSubmittingProviders; -impl ProofSubmittersInterface for MockSubmittingProviders { - type ProviderId = ::Hash; - type TickNumber = BlockNumberFor; - type MaxProofSubmitters = ConstU32<1000>; - fn get_proof_submitters_for_tick( - _block_number: &Self::TickNumber, - ) -> Option> { - None - } - - fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { - None - } - - fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} -} - -pub struct TreasuryAccount; -impl Get for TreasuryAccount { - fn get() -> AccountId { - AccountId::new([0; 32]) - } -} - -pub struct BlockFullnessHeadroom; -impl Get for BlockFullnessHeadroom { - fn get() -> Weight { - Weight::from_parts(10_000, 0) - + ::DbWeight::get().reads_writes(0, 1) - } -} - -pub struct MinNotFullBlocksRatio; -impl Get for MinNotFullBlocksRatio { - fn get() -> Perbill { - Perbill::from_percent(50) - } -} - -impl pallet_proofs_dealer::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersPallet = Providers; - type NativeBalance = Balances; - type MerkleTrieHash = H256; - type MerkleTrieHashing = BlakeTwo256; - type ForestVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; - type KeyVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; - type StakeToBlockNumber = SaturatingBalanceToBlockNumber; - type RandomChallengesPerBlock = ConstU32<10>; - type MaxCustomChallengesPerBlock = ConstU32<10>; - type MaxSubmittersPerTick = ConstU32<1000>; // TODO: Change this value after benchmarking for it to coincide with the implicit limit given by maximum block weight - type TargetTicksStorageOfSubmitters = ConstU32<3>; - type ChallengeHistoryLength = ConstU64<30>; - type ChallengesQueueLength = ConstU32<25>; - type CheckpointChallengePeriod = ConstU64<20>; - type ChallengesFee = ConstU128<1_000_000>; - type Treasury = TreasuryAccount; - type RandomnessProvider = MockRandomness; - type StakeToChallengePeriod = ConstU128; - type MinChallengePeriod = ConstU64<4>; - type ChallengeTicksTolerance = ConstU64<10>; - type BlockFullnessPeriod = ConstU64<10>; - type BlockFullnessHeadroom = BlockFullnessHeadroom; - type MinNotFullBlocksRatio = MinNotFullBlocksRatio; -} - -/// Structure to mock a verifier that returns `true` when `proof` is not empty -/// and `false` otherwise. -pub struct MockVerifier { - _phantom: core::marker::PhantomData<(C, T)>, -} - -/// Implement the `TrieVerifier` trait for the `MockForestManager` struct. -impl CommitmentVerifier for MockVerifier -where - C: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>, -{ - type Proof = CompactProof; - type Commitment = H256; - type Challenge = H256; - - fn verify_proof( - _root: &Self::Commitment, - _challenges: &[Self::Challenge], - proof: &CompactProof, - ) -> Result, DispatchError> { - if proof.encoded_nodes.len() > 0 { - Ok(proof - .encoded_nodes - .iter() - .map(|node| H256::from_slice(&node[..])) - .collect()) - } else { - Err("Proof is empty".into()) - } - } -} - -impl TrieProofDeltaApplier - for MockVerifier -where - ::Out: for<'a> TryFrom<&'a [u8; H_LENGTH]>, -{ - type Proof = CompactProof; - type Key = ::Out; - - fn apply_delta( - root: &Self::Key, - _mutations: &[(Self::Key, TrieMutation)], - _proof: &Self::Proof, - ) -> Result< - ( - MemoryDB, - Self::Key, - Vec<(Self::Key, Option>)>, - ), - DispatchError, - > { - // Just return the root as is with no mutations - Ok((MemoryDB::::default(), *root, Vec::new())) - } -} - -impl pallet_bucket_nfts::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Buckets = Providers; - #[cfg(feature = "runtime-benchmarks")] - type Helper = (); -} - -pub(crate) type ThresholdType = u32; - -parameter_types! { - pub const MinWaitForStopStoring: BlockNumber = 1; -} - -impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; - type Providers = Providers; - type ProofDealer = ProofsDealer; - type PaymentStreams = PaymentStreams; - type UserSolvency = MockUserSolvency; - type Fingerprint = H256; - type ReplicationTargetType = u32; - type ThresholdType = ThresholdType; - type ThresholdTypeToTickNumber = ThresholdTypeToBlockNumberConverter; - type HashToThresholdType = HashToThresholdTypeConverter; - type MerkleHashToRandomnessOutput = MerkleHashToRandomnessOutputConverter; - type ChunkIdToMerkleHash = ChunkIdToMerkleHashConverter; - type Currency = Balances; - type Nfts = Nfts; - type CollectionInspector = BucketNfts; - type MaxBspsPerStorageRequest = ConstU32<10>; - type MaxBatchConfirmStorageRequests = ConstU32<10>; - type MaxBatchMspRespondStorageRequests = ConstU32<10>; - type MaxFilePathSize = ConstU32<512u32>; - type MaxPeerIdSize = ConstU32<100>; - type MaxNumberOfPeerIds = MaxNumberOfPeerIds; - type MaxDataServerMultiAddresses = ConstU32<5>; - type MaxExpiredItemsInBlock = ConstU32<100u32>; - type StorageRequestTtl = ConstU32<40u32>; - type PendingFileDeletionRequestTtl = ConstU32<40u32>; - type MoveBucketRequestTtl = ConstU32<40u32>; - type MaxUserPendingDeletionRequests = ConstU32<10u32>; - type MaxUserPendingMoveBucketRequests = ConstU32<10u32>; - type MinWaitForStopStoring = MinWaitForStopStoring; -} - -// If we ever require a better mock that doesn't just return true if it is Eve, change this. -pub struct MockUserSolvency; -impl ReadUserSolvencyInterface for MockUserSolvency { - type AccountId = AccountId; - - fn is_user_insolvent(user_account: &Self::AccountId) -> bool { - if user_account == &Keyring::Eve.to_account_id() { - true - } else { - false - } - } -} - -// Build genesis storage according to the mock runtime. -pub fn new_test_ext() -> sp_io::TestExternalities { - let mut t = system::GenesisConfig::::default() - .build_storage() - .unwrap(); - - crate::GenesisConfig:: { - replication_target: 2, - tick_range_to_maximum_threshold: 1, - } - .assimilate_storage(&mut t) - .unwrap(); - - pallet_balances::GenesisConfig:: { - balances: vec![ - (Keyring::Alice.to_account_id(), 1_000_000_000_000_000), - (Keyring::Bob.to_account_id(), 1_000_000_000_000_000), - (Keyring::Charlie.to_account_id(), 1_000_000_000_000_000), - (Keyring::Dave.to_account_id(), 1_000_000_000_000_000), - (Keyring::Eve.to_account_id(), 1_000_000_000_000_000), - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| roll_one_block(false)); - ext -} - -// Converter from the Balance type to the BlockNumber type for math. -// It performs a saturated conversion, so that the result is always a valid BlockNumber. -pub struct SaturatingBalanceToBlockNumber; - -impl Convert> for SaturatingBalanceToBlockNumber { - fn convert(block_number: Balance) -> BlockNumberFor { - block_number.saturated_into() - } -} - -// Converter from the ThresholdType to the BlockNumber type and vice versa. -// It performs a saturated conversion, so that the result is always a valid BlockNumber. -pub struct ThresholdTypeToBlockNumberConverter; - -impl Convert> for ThresholdTypeToBlockNumberConverter { - fn convert(threshold: ThresholdType) -> BlockNumberFor { - threshold.saturated_into() - } -} - -impl ConvertBack> for ThresholdTypeToBlockNumberConverter { - fn convert_back(block_number: BlockNumberFor) -> ThresholdType { - block_number.saturated_into() - } -} - -/// Converter from the [`Hash`] type to the [`ThresholdType`]. -pub struct HashToThresholdTypeConverter; -impl Convert<::Hash, ThresholdType> for HashToThresholdTypeConverter { - fn convert(hash: ::Hash) -> ThresholdType { - // Get the hash as bytes - let hash_bytes = hash.as_ref(); - - // Get the 4 least significant bytes of the hash and interpret them as an u32 - let truncated_hash_bytes: [u8; 4] = - hash_bytes[28..].try_into().expect("Hash is 32 bytes; qed"); - - ThresholdType::from_be_bytes(truncated_hash_bytes) - } -} - -// Converter from the MerkleHash (H256) type to the RandomnessOutput type. -pub struct MerkleHashToRandomnessOutputConverter; - -impl Convert for MerkleHashToRandomnessOutputConverter { - fn convert(hash: H256) -> H256 { - hash - } -} - -// Converter from the ChunkId type to the MerkleHash (H256) type. -pub struct ChunkIdToMerkleHashConverter; - -impl Convert for ChunkIdToMerkleHashConverter { - fn convert(chunk_id: ChunkId) -> H256 { - let chunk_id_biguint = BigUint::from(chunk_id.as_u64()); - let mut bytes = chunk_id_biguint.to_bytes_be(); - - // Ensure the byte slice is exactly 32 bytes long by padding with leading zeros - if bytes.len() < 32 { - let mut padded_bytes = vec![0u8; 32 - bytes.len()]; - padded_bytes.extend(bytes); - bytes = padded_bytes; - } - - H256::from_slice(&bytes) - } -} +use core::marker::PhantomData; +use frame_support::{ + construct_runtime, derive_impl, + dispatch::DispatchClass, + parameter_types, + traits::{AsEnsureOriginWithArg, Everything, Hooks, Randomness}, + weights::{constants::RocksDbWeight, Weight, WeightMeter}, + BoundedBTreeSet, +}; +use frame_system::{self as system, limits::BlockWeights, BlockWeight, ConsumedWeight}; +use num_bigint::BigUint; +use pallet_nfts::PalletFeatures; +use shp_file_metadata::ChunkId; +use shp_traits::{ + CommitmentVerifier, MaybeDebug, ProofSubmittersInterface, ReadUserSolvencyInterface, + TrieMutation, TrieProofDeltaApplier, +}; +use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Get, Hasher, H256}; +use sp_keyring::sr25519::Keyring; +use sp_runtime::{ + traits::{BlakeTwo256, Convert, ConvertBack, IdentifyAccount, IdentityLookup, Verify, Zero}, + BuildStorage, DispatchError, MultiSignature, Perbill, SaturatedConversion, +}; +use sp_std::collections::btree_set::BTreeSet; +use sp_trie::{CompactProof, LayoutV1, MemoryDB, TrieConfiguration, TrieLayout}; +use system::pallet_prelude::BlockNumberFor; + +type Block = frame_system::mocking::MockBlock; +pub(crate) type BlockNumber = u64; +type Balance = u128; +type Signature = MultiSignature; +type AccountPublic = ::Signer; +type AccountId = ::AccountId; + +const EPOCH_DURATION_IN_BLOCKS: BlockNumber = 10; +const UNITS: Balance = 1_000_000_000_000; +const STAKE_TO_CHALLENGE_PERIOD: Balance = 100 * UNITS; + +// We mock the Randomness trait to use a simple randomness function when testing the pallet +const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumber = 3; +pub struct MockRandomness; +impl Randomness for MockRandomness { + fn random(subject: &[u8]) -> (H256, BlockNumber) { + // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks + + // Concatenate the subject with the block number to get a unique hash for each block + let subject_concat_block = [ + subject, + &frame_system::Pallet::::block_number().to_le_bytes(), + ] + .concat(); + + let hashed_subject = blake2_256(&subject_concat_block); + + ( + H256::from_slice(&hashed_subject), + frame_system::Pallet::::block_number() + .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), + ) + } +} + +/// Rolls to the desired block, with non-spammed blocks. Returns the number of blocks played. +pub(crate) fn roll_to(n: BlockNumber) -> BlockNumber { + let mut num_blocks = 0; + let mut block = System::block_number(); + while block < n { + block = roll_one_block(false); + num_blocks += 1; + } + num_blocks +} + +/// Rolls to the desired block with spammed blocks. Returns the number of blocks played. +pub(crate) fn roll_to_spammed(n: BlockNumber) -> BlockNumber { + let mut num_blocks = 0; + let mut block = System::block_number(); + while block < n { + block = roll_one_block(true); + num_blocks += 1; + } + num_blocks +} + +/// Rolls forward one block. Returns the new block number. +/// +/// It can be configured whether the block is spammed or not. +/// A spammed block is one where there is no weight left for other transactions. +fn roll_one_block(spammed: bool) -> BlockNumber { + System::set_block_number(System::block_number() + 1); + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Set block weight usage. + let normal_weight = if spammed { + let weights: BlockWeights = ::BlockWeights::get(); + weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block) + } else { + Zero::zero() + }; + let block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => normal_weight, + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(block_weight); + + FileSystem::on_idle(System::block_number(), Weight::MAX); + ProofsDealer::on_finalize(System::block_number()); + System::block_number() +} + +// Configure a mock runtime to test the pallet. +construct_runtime!( + pub enum Test + { + System: frame_system::{Pallet, Call, Config, Storage, Event}, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + FileSystem: crate::{Pallet, Call, Storage, Event}, + Providers: pallet_storage_providers::{Pallet, Call, Storage, Event, HoldReason}, + ProofsDealer: pallet_proofs_dealer::{Pallet, Call, Storage, Event}, + PaymentStreams: pallet_payment_streams::{Pallet, Call, Storage, Event, HoldReason}, + BucketNfts: pallet_bucket_nfts::{Pallet, Call, Storage, Event}, + Nfts: pallet_nfts::{Pallet, Call, Storage, Event}, + } +); + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 42; + pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::Providers(pallet_storage_providers::HoldReason::StorageProviderDeposit); +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl system::Config for Test { + type BaseCallFilter = Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = RocksDbWeight; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Nonce = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_balances::Config for Test { + type Balance = Balance; + type DustRemoval = (); + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; + type WeightInfo = (); + type MaxLocks = ConstU32<10>; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<10>; +} + +parameter_types! { + pub storage Features: PalletFeatures = PalletFeatures::all_enabled(); +} + +impl pallet_nfts::Config for Test { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u128; + type ItemId = u128; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type Locker = (); + type CollectionDeposit = ConstU128<2>; + type ItemDeposit = ConstU128<1>; + type MetadataDepositBase = ConstU128<1>; + type AttributeDepositBase = ConstU128<1>; + type DepositPerByte = ConstU128<1>; + type StringLimit = ConstU32<50>; + type KeyLimit = ConstU32<50>; + type ValueLimit = ConstU32<50>; + type ApprovalsLimit = ConstU32<10>; + type ItemAttributesApprovalsLimit = ConstU32<2>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = ConstU64<10000>; + type MaxAttributesPerCall = ConstU32<2>; + type Features = Features; + type OffchainSignature = Signature; + type OffchainPublic = AccountPublic; + type WeightInfo = (); + pallet_nfts::runtime_benchmarks_enabled! { + type Helper = (); + } +} + +// Payment streams pallet: +parameter_types! { + pub const PaymentStreamHoldReason: RuntimeHoldReason = RuntimeHoldReason::PaymentStreams(pallet_payment_streams::HoldReason::PaymentStreamDeposit); +} + +impl pallet_payment_streams::Config for Test { + type RuntimeEvent = RuntimeEvent; + type NativeBalance = Balances; + type ProvidersPallet = Providers; + type RuntimeHoldReason = RuntimeHoldReason; + type Units = u64; + type NewStreamDeposit = ConstU64<10>; + type UserWithoutFundsCooldown = ConstU64<100>; + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = MockSubmittingProviders; +} +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; +impl Convert, Balance> for BlockNumberToBalance { + fn convert(block_number: BlockNumberFor) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +parameter_types! { + pub const MaxNumberOfPeerIds: u32 = 100; + pub const MaxMultiAddressSize: u32 = 100; + pub const MaxMultiAddressAmount: u32 = 5; +} + +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} +impl pallet_storage_providers::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersRandomness = MockRandomness; + type PaymentStreams = PaymentStreams; + type FileMetadataManager = shp_file_metadata::FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type NativeBalance = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type StorageDataUnit = u64; + type SpCount = u32; + type MerklePatriciaRoot = H256; + type ValuePropId = H256; + type ReadAccessGroupId = ::CollectionId; + type ProvidersProofSubmitters = MockSubmittingProviders; + type ReputationWeightType = u32; + type Treasury = TreasuryAccount; + type SpMinDeposit = ConstU128<{ 10 * UNITS }>; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = MaxMultiAddressSize; + type MaxMultiAddressAmount = MaxMultiAddressAmount; + type MaxProtocols = ConstU32<100>; + type MaxBuckets = ConstU32<10000>; + type BucketDeposit = ConstU128<10>; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; + type MinBlocksBetweenCapacityChanges = ConstU64<10>; + type DefaultMerkleRoot = DefaultMerkleRoot>; + type SlashAmountPerMaxFileSize = ConstU128<10>; + type StartingReputationWeight = ConstU32<1>; +} + +// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. +pub struct MockSubmittingProviders; +impl ProofSubmittersInterface for MockSubmittingProviders { + type ProviderId = ::Hash; + type TickNumber = BlockNumberFor; + type MaxProofSubmitters = ConstU32<1000>; + fn get_proof_submitters_for_tick( + _block_number: &Self::TickNumber, + ) -> Option> { + None + } + + fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { + None + } + + fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} +} + +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + AccountId::new([0; 32]) + } +} + +pub struct BlockFullnessHeadroom; +impl Get for BlockFullnessHeadroom { + fn get() -> Weight { + Weight::from_parts(10_000, 0) + + ::DbWeight::get().reads_writes(0, 1) + } +} + +pub struct MinNotFullBlocksRatio; +impl Get for MinNotFullBlocksRatio { + fn get() -> Perbill { + Perbill::from_percent(50) + } +} + +impl pallet_proofs_dealer::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersPallet = Providers; + type NativeBalance = Balances; + type MerkleTrieHash = H256; + type MerkleTrieHashing = BlakeTwo256; + type ForestVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; + type KeyVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; + type StakeToBlockNumber = SaturatingBalanceToBlockNumber; + type RandomChallengesPerBlock = ConstU32<10>; + type MaxCustomChallengesPerBlock = ConstU32<10>; + type MaxSubmittersPerTick = ConstU32<1000>; // TODO: Change this value after benchmarking for it to coincide with the implicit limit given by maximum block weight + type TargetTicksStorageOfSubmitters = ConstU32<3>; + type ChallengeHistoryLength = ConstU64<30>; + type ChallengesQueueLength = ConstU32<25>; + type CheckpointChallengePeriod = ConstU64<20>; + type ChallengesFee = ConstU128<1_000_000>; + type Treasury = TreasuryAccount; + type RandomnessProvider = MockRandomness; + type StakeToChallengePeriod = ConstU128; + type MinChallengePeriod = ConstU64<4>; + type ChallengeTicksTolerance = ConstU64<10>; + type BlockFullnessPeriod = ConstU64<10>; + type BlockFullnessHeadroom = BlockFullnessHeadroom; + type MinNotFullBlocksRatio = MinNotFullBlocksRatio; +} + +/// Structure to mock a verifier that returns `true` when `proof` is not empty +/// and `false` otherwise. +pub struct MockVerifier { + _phantom: core::marker::PhantomData<(C, T)>, +} + +/// Implement the `TrieVerifier` trait for the `MockForestManager` struct. +impl CommitmentVerifier for MockVerifier +where + C: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>, +{ + type Proof = CompactProof; + type Commitment = H256; + type Challenge = H256; + + fn verify_proof( + _root: &Self::Commitment, + _challenges: &[Self::Challenge], + proof: &CompactProof, + ) -> Result, DispatchError> { + if proof.encoded_nodes.len() > 0 { + Ok(proof + .encoded_nodes + .iter() + .map(|node| H256::from_slice(&node[..])) + .collect()) + } else { + Err("Proof is empty".into()) + } + } +} + +impl TrieProofDeltaApplier + for MockVerifier +where + ::Out: for<'a> TryFrom<&'a [u8; H_LENGTH]>, +{ + type Proof = CompactProof; + type Key = ::Out; + + fn apply_delta( + root: &Self::Key, + _mutations: &[(Self::Key, TrieMutation)], + _proof: &Self::Proof, + ) -> Result< + ( + MemoryDB, + Self::Key, + Vec<(Self::Key, Option>)>, + ), + DispatchError, + > { + // Just return the root as is with no mutations + Ok((MemoryDB::::default(), *root, Vec::new())) + } +} + +impl pallet_bucket_nfts::Config for Test { + type RuntimeEvent = RuntimeEvent; + type Buckets = Providers; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); +} + +pub(crate) type ThresholdType = u32; + +parameter_types! { + pub const MinWaitForStopStoring: BlockNumber = 1; +} + +impl crate::Config for Test { + type RuntimeEvent = RuntimeEvent; + type Providers = Providers; + type ProofDealer = ProofsDealer; + type PaymentStreams = PaymentStreams; + type UserSolvency = MockUserSolvency; + type Fingerprint = H256; + type ReplicationTargetType = u32; + type ThresholdType = ThresholdType; + type ThresholdTypeToTickNumber = ThresholdTypeToBlockNumberConverter; + type HashToThresholdType = HashToThresholdTypeConverter; + type MerkleHashToRandomnessOutput = MerkleHashToRandomnessOutputConverter; + type ChunkIdToMerkleHash = ChunkIdToMerkleHashConverter; + type Currency = Balances; + type Nfts = Nfts; + type CollectionInspector = BucketNfts; + type MaxBspsPerStorageRequest = ConstU32<10>; + type MaxBatchConfirmStorageRequests = ConstU32<10>; + type MaxBatchMspRespondStorageRequests = ConstU32<10>; + type MaxFilePathSize = ConstU32<512u32>; + type MaxPeerIdSize = ConstU32<100>; + type MaxNumberOfPeerIds = MaxNumberOfPeerIds; + type MaxDataServerMultiAddresses = ConstU32<5>; + type MaxExpiredItemsInBlock = ConstU32<100u32>; + type StorageRequestTtl = ConstU32<40u32>; + type PendingFileDeletionRequestTtl = ConstU32<40u32>; + type MoveBucketRequestTtl = ConstU32<40u32>; + type MaxUserPendingDeletionRequests = ConstU32<10u32>; + type MaxUserPendingMoveBucketRequests = ConstU32<10u32>; + type MinWaitForStopStoring = MinWaitForStopStoring; +} + +// If we ever require a better mock that doesn't just return true if it is Eve, change this. +pub struct MockUserSolvency; +impl ReadUserSolvencyInterface for MockUserSolvency { + type AccountId = AccountId; + + fn is_user_insolvent(user_account: &Self::AccountId) -> bool { + if user_account == &Keyring::Eve.to_account_id() { + true + } else { + false + } + } +} + +// Build genesis storage according to the mock runtime. +pub fn new_test_ext() -> sp_io::TestExternalities { + let mut t = system::GenesisConfig::::default() + .build_storage() + .unwrap(); + + crate::GenesisConfig:: { + replication_target: 2, + tick_range_to_maximum_threshold: 1, + } + .assimilate_storage(&mut t) + .unwrap(); + + pallet_balances::GenesisConfig:: { + balances: vec![ + (Keyring::Alice.to_account_id(), 1_000_000_000_000_000), + (Keyring::Bob.to_account_id(), 1_000_000_000_000_000), + (Keyring::Charlie.to_account_id(), 1_000_000_000_000_000), + (Keyring::Dave.to_account_id(), 1_000_000_000_000_000), + (Keyring::Eve.to_account_id(), 1_000_000_000_000_000), + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| roll_one_block(false)); + ext +} + +// Converter from the Balance type to the BlockNumber type for math. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct SaturatingBalanceToBlockNumber; + +impl Convert> for SaturatingBalanceToBlockNumber { + fn convert(block_number: Balance) -> BlockNumberFor { + block_number.saturated_into() + } +} + +// Converter from the ThresholdType to the BlockNumber type and vice versa. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct ThresholdTypeToBlockNumberConverter; + +impl Convert> for ThresholdTypeToBlockNumberConverter { + fn convert(threshold: ThresholdType) -> BlockNumberFor { + threshold.saturated_into() + } +} + +impl ConvertBack> for ThresholdTypeToBlockNumberConverter { + fn convert_back(block_number: BlockNumberFor) -> ThresholdType { + block_number.saturated_into() + } +} + +/// Converter from the [`Hash`] type to the [`ThresholdType`]. +pub struct HashToThresholdTypeConverter; +impl Convert<::Hash, ThresholdType> for HashToThresholdTypeConverter { + fn convert(hash: ::Hash) -> ThresholdType { + // Get the hash as bytes + let hash_bytes = hash.as_ref(); + + // Get the 4 least significant bytes of the hash and interpret them as an u32 + let truncated_hash_bytes: [u8; 4] = + hash_bytes[28..].try_into().expect("Hash is 32 bytes; qed"); + + ThresholdType::from_be_bytes(truncated_hash_bytes) + } +} + +// Converter from the MerkleHash (H256) type to the RandomnessOutput type. +pub struct MerkleHashToRandomnessOutputConverter; + +impl Convert for MerkleHashToRandomnessOutputConverter { + fn convert(hash: H256) -> H256 { + hash + } +} + +// Converter from the ChunkId type to the MerkleHash (H256) type. +pub struct ChunkIdToMerkleHashConverter; + +impl Convert for ChunkIdToMerkleHashConverter { + fn convert(chunk_id: ChunkId) -> H256 { + let chunk_id_biguint = BigUint::from(chunk_id.as_u64()); + let mut bytes = chunk_id_biguint.to_bytes_be(); + + // Ensure the byte slice is exactly 32 bytes long by padding with leading zeros + if bytes.len() < 32 { + let mut padded_bytes = vec![0u8; 32 - bytes.len()]; + padded_bytes.extend(bytes); + bytes = padded_bytes; + } + + H256::from_slice(&bytes) + } +} diff --git a/pallets/file-system/src/types.rs b/pallets/file-system/src/types.rs index f9bf1643e..b524139c7 100644 --- a/pallets/file-system/src/types.rs +++ b/pallets/file-system/src/types.rs @@ -1,469 +1,469 @@ -use core::cmp::max; - -use codec::{Decode, Encode, MaxEncodedLen}; -use frame_support::{ - traits::{fungible::Inspect, nonfungibles_v2::Inspect as NonFungiblesInspect, Get}, - BoundedVec, -}; -use frame_system::pallet_prelude::BlockNumberFor; -use pallet_nfts::CollectionConfig; -use scale_info::TypeInfo; -use shp_file_metadata::FileMetadata; -use shp_traits::ReadProvidersInterface; -use sp_runtime::{traits::CheckedAdd, DispatchError}; -use sp_std::fmt::Debug; - -use crate::{ - Config, Error, FileDeletionRequestExpirations, MoveBucketRequestExpirations, - NextAvailableFileDeletionRequestExpirationBlock, NextAvailableMoveBucketRequestExpirationBlock, - NextAvailableStorageRequestExpirationBlock, StorageRequestExpirations, -}; - -/// Ephemeral metadata of a storage request. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct StorageRequestMetadata { - /// Tick number at which the storage request was made. - /// - /// Used primarily for tracking the age of the request which is useful for - /// cleaning up old requests. - pub requested_at: TickNumber, - - /// AccountId of the user who owns the data being stored. - pub owner: T::AccountId, - - /// Bucket id where this file is stored. - pub bucket_id: BucketIdFor, - - /// User defined name of the file being stored. - pub location: FileLocation, - - /// Identifier of the data being stored. - pub fingerprint: Fingerprint, - - /// Size of the data being stored. - /// - /// SPs will use this to determine if they have enough space to store the data. - /// This is also used to verify that the data sent by the user matches the size specified here. - pub size: StorageData, - - /// MSP who is requested to store the data, and if it has already confirmed that it is storing it. - /// - /// This is optional in the event when a storage request is created solely to replicate data to other BSPs and an MSP is already storing the data. - pub msp: Option<(ProviderIdFor, bool)>, - - /// Peer Ids of the user who requested the storage. - /// - /// SPs will expect a connection request to be initiated by the user with this Peer Id. - pub user_peer_ids: PeerIds, - - /// List of storage providers that can serve the data that is requested to be stored. - /// - /// This is useful when a BSP stops serving data and automatically creates a new storage request with no user multiaddresses, since - /// SPs can prove and serve the data to be replicated to other BSPs without the user having this stored on their local machine. - pub data_server_sps: BoundedVec, MaxBspsPerStorageRequest>, // TODO: Change the Maximum data servers to be the maximum SPs allowed - - /// Number of BSPs requested to store the data. - /// - /// The storage request will be dropped/complete once all the minimum required BSPs have - /// submitted a proof of storage after volunteering to store the data. - pub bsps_required: ReplicationTargetType, - - /// Number of BSPs that have successfully volunteered AND confirmed that they are storing the data. - /// - /// This starts at 0 and increases up to `bsps_required`. Once this reaches `bsps_required`, the - /// storage request is considered complete and will be deleted.. - pub bsps_confirmed: ReplicationTargetType, - - /// Number of BSPs that have volunteered to store the data. - /// - /// There can be more than `bsps_required` volunteers, but it is essentially a race for BSPs to confirm that they are storing the data. - pub bsps_volunteered: ReplicationTargetType, -} - -impl StorageRequestMetadata { - pub fn to_file_metadata( - self, - ) -> FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - > { - FileMetadata { - owner: self.owner.encode(), - bucket_id: self.bucket_id.as_ref().to_vec(), - location: self.location.to_vec(), - file_size: self.size.into() as u64, - fingerprint: self.fingerprint.as_ref().into(), - } - } -} - -/// Possible MSP responses to a storage request. -/// -/// Contains two lists: one for accepted storage requests and one for rejected -/// storage requests, and either of them can be `None` if there are no accepted/rejected -/// storage requests. -/// -/// Accepted storage requests come bundled into a [`AcceptedStorageRequestParameters`]. -/// Rejected storage requests are represented by a list of tuples, where the first element -/// is the rejected file key and the second element is the reason for rejection as a -/// [`RejectedStorageRequestReason`]. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspStorageRequestResponse { - pub accept: Option>, - /// Reject the storage request. (file_key, reason) - pub reject: Option< - BoundedVec< - (MerkleHash, RejectedStorageRequestReason), - MaxBatchMspRespondStorageRequests, - >, - >, -} - -impl Debug for MspStorageRequestResponse { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - write!( - f, - "MspStorageRequestResponse(accept: {:?}, reject: {:?})", - self.accept.encode(), - self.reject.encode() - ) - } -} - -/// A bundle of file keys that have been accepted by an MSP, alongside the proofs required to -/// add these file keys into the corresponding bucket. -/// -/// This struct includes a list of file keys and their corresponding key proofs (i.e. the -/// proofs for the file chunks) and a non-inclusion forest proof. The latter is required to -/// verify that the file keys were not part of the bucket's Merkle Patricia Forest before, -/// and add them now. One single non-inclusion forest proof for all the file keys is sufficient. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct AcceptedStorageRequestParameters { - pub file_keys_and_proofs: - BoundedVec<(MerkleHash, KeyProof), MaxBatchMspRespondStorageRequests>, - pub non_inclusion_forest_proof: ForestProof, -} - -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -pub enum RejectedStorageRequestReason { - ReachedMaximumCapacity, - ReceivedInvalidProof, - InternalError, -} - -/// Input for MSPs to respond to storage request(s). -/// -/// The input is a list of ([BucketIdFor], [MspStorageRequestResponse]) elements, -/// where the [MspStorageRequestResponse] contains the file keys that are accepted -/// or rejected by the MSP. -pub type FileKeyResponsesInput = BoundedVec< - (BucketIdFor, MspStorageRequestResponse), - MaxBatchMspRespondStorageRequests, ->; - -/// Result from an MSP responding to storage request(s). -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspRespondStorageRequestsResult { - pub msp_id: ProviderIdFor, - pub responses: BoundedVec, MaxBatchMspRespondStorageRequests>, -} - -impl Debug for MspRespondStorageRequestsResult { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - write!( - f, - "MspRespondStorageRequestsResult(msp_id: {:?}, responses: {:?})", - self.msp_id, - self.responses.encode() - ) - } -} - -/// Possible response batches for an MSP accepting, rejecting, or failing to respond to storage requests. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub enum BatchResponses { - Accepted(MspAcceptedBatchStorageRequests), - Rejected(MspRejectedBatchStorageRequests), - Failed(MspFailedBatchStorageRequests), -} - -/// Batch of accepted storage requests (i.e. file keys) all belonging to the same bucket. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspAcceptedBatchStorageRequests { - pub file_keys: BoundedVec, MaxBatchMspRespondStorageRequests>, - pub bucket_id: BucketIdFor, - pub new_bucket_root: MerkleHash, - pub owner: T::AccountId, -} - -/// Batch of rejected storage requests (i.e. file keys) all belonging to the same bucket. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspRejectedBatchStorageRequests { - pub file_keys: BoundedVec< - (MerkleHash, RejectedStorageRequestReason), - MaxBatchMspRespondStorageRequests, - >, - pub bucket_id: BucketIdFor, - pub owner: T::AccountId, -} - -/// Batch of failed storage requests (i.e. file keys) all belonging to the same bucket. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MspFailedBatchStorageRequests { - pub file_keys: BoundedVec<(MerkleHash, DispatchError), MaxBatchMspRespondStorageRequests>, - pub bucket_id: BucketIdFor, - pub owner: T::AccountId, -} - -/// Ephemeral BSP storage request tracking metadata. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct StorageRequestBspsMetadata { - /// Confirmed that the data is being stored. - /// - /// This is normally when the BSP submits a proof of storage to the `pallet-proofs-dealer-trie`. - pub confirmed: bool, - pub _phantom: core::marker::PhantomData, -} - -/// Bucket privacy settings. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -pub enum BucketPrivacy { - Public, - Private, -} - -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub enum ExpirationItem { - StorageRequest(MerkleHash), - PendingFileDeletionRequests((T::AccountId, MerkleHash)), - MoveBucketRequest((ProviderIdFor, BucketIdFor)), -} - -impl ExpirationItem { - pub(crate) fn get_ttl(&self) -> BlockNumberFor { - match self { - ExpirationItem::StorageRequest(_) => T::StorageRequestTtl::get().into(), - ExpirationItem::PendingFileDeletionRequests(_) => { - T::PendingFileDeletionRequestTtl::get().into() - } - ExpirationItem::MoveBucketRequest(_) => T::MoveBucketRequestTtl::get().into(), - } - } - - pub(crate) fn get_next_expiration_block(&self) -> BlockNumberFor { - // The expiration block is the maximum between the next available block and the current block number plus the TTL. - let current_block_plus_ttl = frame_system::Pallet::::block_number() + self.get_ttl(); - let next_available_block = match self { - ExpirationItem::StorageRequest(_) => { - NextAvailableStorageRequestExpirationBlock::::get() - } - ExpirationItem::PendingFileDeletionRequests(_) => { - NextAvailableFileDeletionRequestExpirationBlock::::get() - } - ExpirationItem::MoveBucketRequest(_) => { - NextAvailableMoveBucketRequestExpirationBlock::::get() - } - }; - - max(next_available_block, current_block_plus_ttl) - } - - pub(crate) fn try_append( - &self, - expiration_block: BlockNumberFor, - ) -> Result, DispatchError> { - let mut next_expiration_block = expiration_block; - while let Err(_) = match self { - ExpirationItem::StorageRequest(storage_request) => { - >::try_append(next_expiration_block, *storage_request) - } - ExpirationItem::PendingFileDeletionRequests(pending_file_deletion_requests) => { - >::try_append( - next_expiration_block, - pending_file_deletion_requests.clone(), - ) - } - ExpirationItem::MoveBucketRequest(msp_bucket_id) => { - >::try_append(next_expiration_block, *msp_bucket_id) - } - } { - next_expiration_block = next_expiration_block - .checked_add(&1u8.into()) - .ok_or(Error::::MaxBlockNumberReached)?; - } - - Ok(next_expiration_block) - } - - pub(crate) fn set_next_expiration_block(&self, next_expiration_block: BlockNumberFor) { - match self { - ExpirationItem::StorageRequest(_) => { - NextAvailableStorageRequestExpirationBlock::::set(next_expiration_block); - } - ExpirationItem::PendingFileDeletionRequests(_) => { - NextAvailableFileDeletionRequestExpirationBlock::::set(next_expiration_block); - } - ExpirationItem::MoveBucketRequest(_) => { - NextAvailableMoveBucketRequestExpirationBlock::::set(next_expiration_block); - } - } - } -} - -/// Possible responses to a move bucket request. -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -pub enum BucketMoveRequestResponse { - Accepted, - Rejected, -} - -/// Move bucket request metadata -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub struct MoveBucketRequestMetadata { - /// The user who requested to move the bucket. - pub requester: T::AccountId, -} - -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] -#[scale_info(skip_type_params(T))] -pub enum EitherAccountIdOrMspId { - AccountId(T::AccountId), - MspId(ProviderIdFor), -} - -impl Debug for EitherAccountIdOrMspId { - fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { - match self { - EitherAccountIdOrMspId::AccountId(account_id) => { - write!(f, "AccountId({:?})", account_id) - } - EitherAccountIdOrMspId::MspId(provider_id) => { - write!(f, "MspId({:?})", provider_id) - } - } - } -} - -/// Alias for the `MerkleHash` type used in the ProofsDealerInterface representing file keys. -pub type MerkleHash = - <::ProofDealer as shp_traits::ProofsDealerInterface>::MerkleHash; - -/// Alias for the `ForestProof` type used in the ProofsDealerInterface. -pub type ForestProof = - <::ProofDealer as shp_traits::ProofsDealerInterface>::ForestProof; - -/// Alias for the `KeyProof` type used in the ProofsDealerInterface. -pub type KeyProof = - <::ProofDealer as shp_traits::ProofsDealerInterface>::KeyProof; - -/// Alias for the `MerkleHashing` type used in the ProofsDealerInterface. -pub type FileKeyHasher = - <::ProofDealer as shp_traits::ProofsDealerInterface>::MerkleHashing; - -/// Alias for the `MaxBspsPerStorageRequest` type used in the FileSystem pallet. -pub type MaxBspsPerStorageRequest = ::MaxBspsPerStorageRequest; - -/// Alias for the `MaxBatchConfirmStorageRequests` type used in the FileSystem pallet. -pub type MaxBatchConfirmStorageRequests = ::MaxBatchConfirmStorageRequests; - -/// Alias for the `MaxBatchMspRespondStorageRequests` type used in the FileSystem pallet. -pub type MaxBatchMspRespondStorageRequests = - ::MaxBatchMspRespondStorageRequests; - -/// Alias for the `MaxFilePathSize` type used in the FileSystem pallet. -pub type MaxFilePathSize = ::MaxFilePathSize; - -/// Alias for the `Fingerprint` type used in the FileSystem pallet. -pub type Fingerprint = ::Fingerprint; - -/// Alias for the `StorageData` type used in the MutateProvidersInterface. -pub type StorageData = - <::Providers as shp_traits::MutateStorageProvidersInterface>::StorageDataUnit; - -/// Alias for the `ReplicationTargetType` type used in the FileSystem pallet. -pub type ReplicationTargetType = ::ReplicationTargetType; - -/// Alias for the `StorageRequestTtl` type used in the FileSystem pallet. -pub type StorageRequestTtl = ::StorageRequestTtl; - -/// Alias for the `PendingFileDeletionRequestTtl` type used in the FileSystem pallet. -pub type PendingFileDeletionRequestTtl = ::PendingFileDeletionRequestTtl; - -/// Byte array representing the file path. -pub type FileLocation = BoundedVec>; - -/// Alias for the `MaxPeerIdSize` type used in the FileSystem pallet. -pub type MaxPeerIdSize = ::MaxPeerIdSize; - -/// Byte array representing the libp2p peer Id. -pub type PeerId = BoundedVec>; - -/// Alias for the `MaxNumberOfPeerIds` type used in the FileSystem pallet. -pub type MaxNumberOfPeerIds = ::MaxNumberOfPeerIds; - -/// Alias for a bounded vector of [`PeerId`]. -pub type PeerIds = BoundedVec, MaxNumberOfPeerIds>; - -/// Alias for the `MultiAddress` type used in the ReadProvidersInterface. -pub type MultiAddress = - <::Providers as shp_traits::ReadStorageProvidersInterface>::MultiAddress; - -/// Alias for the `MaxMultiAddresses` type used in the ReadProvidersInterface. -pub type MaxMultiAddresses = - <::Providers as shp_traits::ReadStorageProvidersInterface>::MaxNumberOfMultiAddresses; - -/// Alias for a bounded vector of [`MultiAddress`]. -pub type MultiAddresses = BoundedVec, MaxMultiAddresses>; - -/// Alias for the `Balance` type used in the FileSystem pallet. -pub type BalanceOf = - <::Currency as Inspect<::AccountId>>::Balance; - -/// Alias for the `CollectionId` type used in the Nfts pallet. -pub(super) type CollectionIdFor = <::Nfts as NonFungiblesInspect< - ::AccountId, ->>::CollectionId; - -/// Alias for the `CollectionConfig` type used in the FileSystem pallet. -pub(super) type CollectionConfigFor = - CollectionConfig, BlockNumberFor, CollectionIdFor>; - -/// Alias for the `BucketNameLimit` type used in the ReadProvidersInterface. -pub(super) type BucketNameLimitFor = - <::Providers as shp_traits::ReadBucketsInterface>::BucketNameLimit; - -/// Type alias representing the type of `BucketId` used in `ProvidersInterface`. -pub(crate) type BucketIdFor = - <::Providers as shp_traits::ReadBucketsInterface>::BucketId; - -/// Alias for the `ProviderId` type used in the ProvidersInterface. -pub type ProviderIdFor = <::Providers as ReadProvidersInterface>::ProviderId; - -/// Alias for the bucket name. -pub type BucketNameFor = BoundedVec>; - -/// Alias for the type of the storage request expiration item. -pub type StorageRequestExpirationItem = MerkleHash; - -/// Alias for the type of the file deletion request expiration item. -pub type FileDeletionRequestExpirationItem = - (::AccountId, MerkleHash); - -/// Alias for the `ThresholdType` used in the FileSystem pallet. -pub type ThresholdType = ::ThresholdType; - -/// Alias for the `TickNumber` used in the ProofsDealer pallet. -pub type TickNumber = - <::ProofDealer as shp_traits::ProofsDealerInterface>::TickNumber; +use core::cmp::max; + +use codec::{Decode, Encode, MaxEncodedLen}; +use frame_support::{ + traits::{fungible::Inspect, nonfungibles_v2::Inspect as NonFungiblesInspect, Get}, + BoundedVec, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use pallet_nfts::CollectionConfig; +use scale_info::TypeInfo; +use shp_file_metadata::FileMetadata; +use shp_traits::ReadProvidersInterface; +use sp_runtime::{traits::CheckedAdd, DispatchError}; +use sp_std::fmt::Debug; + +use crate::{ + Config, Error, FileDeletionRequestExpirations, MoveBucketRequestExpirations, + NextAvailableFileDeletionRequestExpirationBlock, NextAvailableMoveBucketRequestExpirationBlock, + NextAvailableStorageRequestExpirationBlock, StorageRequestExpirations, +}; + +/// Ephemeral metadata of a storage request. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct StorageRequestMetadata { + /// Tick number at which the storage request was made. + /// + /// Used primarily for tracking the age of the request which is useful for + /// cleaning up old requests. + pub requested_at: TickNumber, + + /// AccountId of the user who owns the data being stored. + pub owner: T::AccountId, + + /// Bucket id where this file is stored. + pub bucket_id: BucketIdFor, + + /// User defined name of the file being stored. + pub location: FileLocation, + + /// Identifier of the data being stored. + pub fingerprint: Fingerprint, + + /// Size of the data being stored. + /// + /// SPs will use this to determine if they have enough space to store the data. + /// This is also used to verify that the data sent by the user matches the size specified here. + pub size: StorageData, + + /// MSP who is requested to store the data, and if it has already confirmed that it is storing it. + /// + /// This is optional in the event when a storage request is created solely to replicate data to other BSPs and an MSP is already storing the data. + pub msp: Option<(ProviderIdFor, bool)>, + + /// Peer Ids of the user who requested the storage. + /// + /// SPs will expect a connection request to be initiated by the user with this Peer Id. + pub user_peer_ids: PeerIds, + + /// List of storage providers that can serve the data that is requested to be stored. + /// + /// This is useful when a BSP stops serving data and automatically creates a new storage request with no user multiaddresses, since + /// SPs can prove and serve the data to be replicated to other BSPs without the user having this stored on their local machine. + pub data_server_sps: BoundedVec, MaxBspsPerStorageRequest>, // TODO: Change the Maximum data servers to be the maximum SPs allowed + + /// Number of BSPs requested to store the data. + /// + /// The storage request will be dropped/complete once all the minimum required BSPs have + /// submitted a proof of storage after volunteering to store the data. + pub bsps_required: ReplicationTargetType, + + /// Number of BSPs that have successfully volunteered AND confirmed that they are storing the data. + /// + /// This starts at 0 and increases up to `bsps_required`. Once this reaches `bsps_required`, the + /// storage request is considered complete and will be deleted.. + pub bsps_confirmed: ReplicationTargetType, + + /// Number of BSPs that have volunteered to store the data. + /// + /// There can be more than `bsps_required` volunteers, but it is essentially a race for BSPs to confirm that they are storing the data. + pub bsps_volunteered: ReplicationTargetType, +} + +impl StorageRequestMetadata { + pub fn to_file_metadata( + self, + ) -> FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + > { + FileMetadata { + owner: self.owner.encode(), + bucket_id: self.bucket_id.as_ref().to_vec(), + location: self.location.to_vec(), + file_size: self.size.into() as u64, + fingerprint: self.fingerprint.as_ref().into(), + } + } +} + +/// Possible MSP responses to a storage request. +/// +/// Contains two lists: one for accepted storage requests and one for rejected +/// storage requests, and either of them can be `None` if there are no accepted/rejected +/// storage requests. +/// +/// Accepted storage requests come bundled into a [`AcceptedStorageRequestParameters`]. +/// Rejected storage requests are represented by a list of tuples, where the first element +/// is the rejected file key and the second element is the reason for rejection as a +/// [`RejectedStorageRequestReason`]. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct MspStorageRequestResponse { + pub accept: Option>, + /// Reject the storage request. (file_key, reason) + pub reject: Option< + BoundedVec< + (MerkleHash, RejectedStorageRequestReason), + MaxBatchMspRespondStorageRequests, + >, + >, +} + +impl Debug for MspStorageRequestResponse { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + write!( + f, + "MspStorageRequestResponse(accept: {:?}, reject: {:?})", + self.accept.encode(), + self.reject.encode() + ) + } +} + +/// A bundle of file keys that have been accepted by an MSP, alongside the proofs required to +/// add these file keys into the corresponding bucket. +/// +/// This struct includes a list of file keys and their corresponding key proofs (i.e. the +/// proofs for the file chunks) and a non-inclusion forest proof. The latter is required to +/// verify that the file keys were not part of the bucket's Merkle Patricia Forest before, +/// and add them now. One single non-inclusion forest proof for all the file keys is sufficient. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct AcceptedStorageRequestParameters { + pub file_keys_and_proofs: + BoundedVec<(MerkleHash, KeyProof), MaxBatchMspRespondStorageRequests>, + pub non_inclusion_forest_proof: ForestProof, +} + +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +pub enum RejectedStorageRequestReason { + ReachedMaximumCapacity, + ReceivedInvalidProof, + InternalError, +} + +/// Input for MSPs to respond to storage request(s). +/// +/// The input is a list of ([BucketIdFor], [MspStorageRequestResponse]) elements, +/// where the [MspStorageRequestResponse] contains the file keys that are accepted +/// or rejected by the MSP. +pub type FileKeyResponsesInput = BoundedVec< + (BucketIdFor, MspStorageRequestResponse), + MaxBatchMspRespondStorageRequests, +>; + +/// Result from an MSP responding to storage request(s). +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct MspRespondStorageRequestsResult { + pub msp_id: ProviderIdFor, + pub responses: BoundedVec, MaxBatchMspRespondStorageRequests>, +} + +impl Debug for MspRespondStorageRequestsResult { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + write!( + f, + "MspRespondStorageRequestsResult(msp_id: {:?}, responses: {:?})", + self.msp_id, + self.responses.encode() + ) + } +} + +/// Possible response batches for an MSP accepting, rejecting, or failing to respond to storage requests. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub enum BatchResponses { + Accepted(MspAcceptedBatchStorageRequests), + Rejected(MspRejectedBatchStorageRequests), + Failed(MspFailedBatchStorageRequests), +} + +/// Batch of accepted storage requests (i.e. file keys) all belonging to the same bucket. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct MspAcceptedBatchStorageRequests { + pub file_keys: BoundedVec, MaxBatchMspRespondStorageRequests>, + pub bucket_id: BucketIdFor, + pub new_bucket_root: MerkleHash, + pub owner: T::AccountId, +} + +/// Batch of rejected storage requests (i.e. file keys) all belonging to the same bucket. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct MspRejectedBatchStorageRequests { + pub file_keys: BoundedVec< + (MerkleHash, RejectedStorageRequestReason), + MaxBatchMspRespondStorageRequests, + >, + pub bucket_id: BucketIdFor, + pub owner: T::AccountId, +} + +/// Batch of failed storage requests (i.e. file keys) all belonging to the same bucket. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct MspFailedBatchStorageRequests { + pub file_keys: BoundedVec<(MerkleHash, DispatchError), MaxBatchMspRespondStorageRequests>, + pub bucket_id: BucketIdFor, + pub owner: T::AccountId, +} + +/// Ephemeral BSP storage request tracking metadata. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct StorageRequestBspsMetadata { + /// Confirmed that the data is being stored. + /// + /// This is normally when the BSP submits a proof of storage to the `pallet-proofs-dealer-trie`. + pub confirmed: bool, + pub _phantom: core::marker::PhantomData, +} + +/// Bucket privacy settings. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +pub enum BucketPrivacy { + Public, + Private, +} + +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub enum ExpirationItem { + StorageRequest(MerkleHash), + PendingFileDeletionRequests((T::AccountId, MerkleHash)), + MoveBucketRequest((ProviderIdFor, BucketIdFor)), +} + +impl ExpirationItem { + pub(crate) fn get_ttl(&self) -> BlockNumberFor { + match self { + ExpirationItem::StorageRequest(_) => T::StorageRequestTtl::get().into(), + ExpirationItem::PendingFileDeletionRequests(_) => { + T::PendingFileDeletionRequestTtl::get().into() + } + ExpirationItem::MoveBucketRequest(_) => T::MoveBucketRequestTtl::get().into(), + } + } + + pub(crate) fn get_next_expiration_block(&self) -> BlockNumberFor { + // The expiration block is the maximum between the next available block and the current block number plus the TTL. + let current_block_plus_ttl = frame_system::Pallet::::block_number() + self.get_ttl(); + let next_available_block = match self { + ExpirationItem::StorageRequest(_) => { + NextAvailableStorageRequestExpirationBlock::::get() + } + ExpirationItem::PendingFileDeletionRequests(_) => { + NextAvailableFileDeletionRequestExpirationBlock::::get() + } + ExpirationItem::MoveBucketRequest(_) => { + NextAvailableMoveBucketRequestExpirationBlock::::get() + } + }; + + max(next_available_block, current_block_plus_ttl) + } + + pub(crate) fn try_append( + &self, + expiration_block: BlockNumberFor, + ) -> Result, DispatchError> { + let mut next_expiration_block = expiration_block; + while let Err(_) = match self { + ExpirationItem::StorageRequest(storage_request) => { + >::try_append(next_expiration_block, *storage_request) + } + ExpirationItem::PendingFileDeletionRequests(pending_file_deletion_requests) => { + >::try_append( + next_expiration_block, + pending_file_deletion_requests.clone(), + ) + } + ExpirationItem::MoveBucketRequest(msp_bucket_id) => { + >::try_append(next_expiration_block, *msp_bucket_id) + } + } { + next_expiration_block = next_expiration_block + .checked_add(&1u8.into()) + .ok_or(Error::::MaxBlockNumberReached)?; + } + + Ok(next_expiration_block) + } + + pub(crate) fn set_next_expiration_block(&self, next_expiration_block: BlockNumberFor) { + match self { + ExpirationItem::StorageRequest(_) => { + NextAvailableStorageRequestExpirationBlock::::set(next_expiration_block); + } + ExpirationItem::PendingFileDeletionRequests(_) => { + NextAvailableFileDeletionRequestExpirationBlock::::set(next_expiration_block); + } + ExpirationItem::MoveBucketRequest(_) => { + NextAvailableMoveBucketRequestExpirationBlock::::set(next_expiration_block); + } + } + } +} + +/// Possible responses to a move bucket request. +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +pub enum BucketMoveRequestResponse { + Accepted, + Rejected, +} + +/// Move bucket request metadata +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Debug, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub struct MoveBucketRequestMetadata { + /// The user who requested to move the bucket. + pub requester: T::AccountId, +} + +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, PartialEq, Eq, Clone)] +#[scale_info(skip_type_params(T))] +pub enum EitherAccountIdOrMspId { + AccountId(T::AccountId), + MspId(ProviderIdFor), +} + +impl Debug for EitherAccountIdOrMspId { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + EitherAccountIdOrMspId::AccountId(account_id) => { + write!(f, "AccountId({:?})", account_id) + } + EitherAccountIdOrMspId::MspId(provider_id) => { + write!(f, "MspId({:?})", provider_id) + } + } + } +} + +/// Alias for the `MerkleHash` type used in the ProofsDealerInterface representing file keys. +pub type MerkleHash = + <::ProofDealer as shp_traits::ProofsDealerInterface>::MerkleHash; + +/// Alias for the `ForestProof` type used in the ProofsDealerInterface. +pub type ForestProof = + <::ProofDealer as shp_traits::ProofsDealerInterface>::ForestProof; + +/// Alias for the `KeyProof` type used in the ProofsDealerInterface. +pub type KeyProof = + <::ProofDealer as shp_traits::ProofsDealerInterface>::KeyProof; + +/// Alias for the `MerkleHashing` type used in the ProofsDealerInterface. +pub type FileKeyHasher = + <::ProofDealer as shp_traits::ProofsDealerInterface>::MerkleHashing; + +/// Alias for the `MaxBspsPerStorageRequest` type used in the FileSystem pallet. +pub type MaxBspsPerStorageRequest = ::MaxBspsPerStorageRequest; + +/// Alias for the `MaxBatchConfirmStorageRequests` type used in the FileSystem pallet. +pub type MaxBatchConfirmStorageRequests = ::MaxBatchConfirmStorageRequests; + +/// Alias for the `MaxBatchMspRespondStorageRequests` type used in the FileSystem pallet. +pub type MaxBatchMspRespondStorageRequests = + ::MaxBatchMspRespondStorageRequests; + +/// Alias for the `MaxFilePathSize` type used in the FileSystem pallet. +pub type MaxFilePathSize = ::MaxFilePathSize; + +/// Alias for the `Fingerprint` type used in the FileSystem pallet. +pub type Fingerprint = ::Fingerprint; + +/// Alias for the `StorageData` type used in the MutateProvidersInterface. +pub type StorageData = + <::Providers as shp_traits::MutateStorageProvidersInterface>::StorageDataUnit; + +/// Alias for the `ReplicationTargetType` type used in the FileSystem pallet. +pub type ReplicationTargetType = ::ReplicationTargetType; + +/// Alias for the `StorageRequestTtl` type used in the FileSystem pallet. +pub type StorageRequestTtl = ::StorageRequestTtl; + +/// Alias for the `PendingFileDeletionRequestTtl` type used in the FileSystem pallet. +pub type PendingFileDeletionRequestTtl = ::PendingFileDeletionRequestTtl; + +/// Byte array representing the file path. +pub type FileLocation = BoundedVec>; + +/// Alias for the `MaxPeerIdSize` type used in the FileSystem pallet. +pub type MaxPeerIdSize = ::MaxPeerIdSize; + +/// Byte array representing the libp2p peer Id. +pub type PeerId = BoundedVec>; + +/// Alias for the `MaxNumberOfPeerIds` type used in the FileSystem pallet. +pub type MaxNumberOfPeerIds = ::MaxNumberOfPeerIds; + +/// Alias for a bounded vector of [`PeerId`]. +pub type PeerIds = BoundedVec, MaxNumberOfPeerIds>; + +/// Alias for the `MultiAddress` type used in the ReadProvidersInterface. +pub type MultiAddress = + <::Providers as shp_traits::ReadStorageProvidersInterface>::MultiAddress; + +/// Alias for the `MaxMultiAddresses` type used in the ReadProvidersInterface. +pub type MaxMultiAddresses = + <::Providers as shp_traits::ReadStorageProvidersInterface>::MaxNumberOfMultiAddresses; + +/// Alias for a bounded vector of [`MultiAddress`]. +pub type MultiAddresses = BoundedVec, MaxMultiAddresses>; + +/// Alias for the `Balance` type used in the FileSystem pallet. +pub type BalanceOf = + <::Currency as Inspect<::AccountId>>::Balance; + +/// Alias for the `CollectionId` type used in the Nfts pallet. +pub(super) type CollectionIdFor = <::Nfts as NonFungiblesInspect< + ::AccountId, +>>::CollectionId; + +/// Alias for the `CollectionConfig` type used in the FileSystem pallet. +pub(super) type CollectionConfigFor = + CollectionConfig, BlockNumberFor, CollectionIdFor>; + +/// Alias for the `BucketNameLimit` type used in the ReadProvidersInterface. +pub(super) type BucketNameLimitFor = + <::Providers as shp_traits::ReadBucketsInterface>::BucketNameLimit; + +/// Type alias representing the type of `BucketId` used in `ProvidersInterface`. +pub(crate) type BucketIdFor = + <::Providers as shp_traits::ReadBucketsInterface>::BucketId; + +/// Alias for the `ProviderId` type used in the ProvidersInterface. +pub type ProviderIdFor = <::Providers as ReadProvidersInterface>::ProviderId; + +/// Alias for the bucket name. +pub type BucketNameFor = BoundedVec>; + +/// Alias for the type of the storage request expiration item. +pub type StorageRequestExpirationItem = MerkleHash; + +/// Alias for the type of the file deletion request expiration item. +pub type FileDeletionRequestExpirationItem = + (::AccountId, MerkleHash); + +/// Alias for the `ThresholdType` used in the FileSystem pallet. +pub type ThresholdType = ::ThresholdType; + +/// Alias for the `TickNumber` used in the ProofsDealer pallet. +pub type TickNumber = + <::ProofDealer as shp_traits::ProofsDealerInterface>::TickNumber; diff --git a/pallets/payment-streams/Cargo.toml b/pallets/payment-streams/Cargo.toml index 34ce3b60e..a8463a4e3 100644 --- a/pallets/payment-streams/Cargo.toml +++ b/pallets/payment-streams/Cargo.toml @@ -1,76 +1,76 @@ -[package] -name = "pallet-payment-streams" -description = "FRAME pallet that allows for the creation and management of payment streams." -version = "0.1.0" -homepage = { workspace = true } -license = { workspace = true } -authors = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } - -[lints] -workspace = true - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -codec = { workspace = true } -scale-info = { workspace = true } - -# Local -pallet-payment-streams-runtime-api = { workspace = true } -shp-traits = { workspace = true } - -# Substrate -frame-benchmarking = { workspace = true, optional = true } -frame-support = { workspace = true } -frame-system = { workspace = true } - -sp-runtime = { workspace = true } - -[dev-dependencies] -serde = { workspace = true } - -# Local -pallet-storage-providers = { workspace = true } -shp-constants = { workspace = true } -shp-file-metadata = { workspace = true } - -# Substrate -sp-core = { workspace = true } -sp-io = { workspace = true } -sp-trie = { workspace = true } - -# Frame -pallet-balances = { workspace = true, features = ["std"] } -pallet-nfts = { workspace = true } - -[features] -default = ["std"] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -std = [ - "codec/std", - "frame-benchmarking?/std", - "frame-support/std", - "frame-system/std", - "pallet-balances/std", - "pallet-nfts/std", - "pallet-payment-streams-runtime-api/std", - "pallet-storage-providers/std", - "scale-info/std", - "shp-traits/std", - "sp-core/std", - "sp-io/std", - "sp-runtime/std", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "sp-runtime/try-runtime", -] +[package] +name = "pallet-payment-streams" +description = "FRAME pallet that allows for the creation and management of payment streams." +version = "0.1.0" +homepage = { workspace = true } +license = { workspace = true } +authors = { workspace = true } +repository = { workspace = true } +edition = { workspace = true } + +[lints] +workspace = true + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] +codec = { workspace = true } +scale-info = { workspace = true } + +# Local +pallet-payment-streams-runtime-api = { workspace = true } +shp-traits = { workspace = true } + +# Substrate +frame-benchmarking = { workspace = true, optional = true } +frame-support = { workspace = true } +frame-system = { workspace = true } + +sp-runtime = { workspace = true } + +[dev-dependencies] +serde = { workspace = true } + +# Local +pallet-storage-providers = { workspace = true } +shp-constants = { workspace = true } +shp-file-metadata = { workspace = true } + +# Substrate +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-trie = { workspace = true } + +# Frame +pallet-balances = { workspace = true, features = ["std"] } +pallet-nfts = { workspace = true } + +[features] +default = ["std"] +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", +] +std = [ + "codec/std", + "frame-benchmarking?/std", + "frame-support/std", + "frame-system/std", + "pallet-balances/std", + "pallet-nfts/std", + "pallet-payment-streams-runtime-api/std", + "pallet-storage-providers/std", + "scale-info/std", + "shp-traits/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", +] +try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "sp-runtime/try-runtime", +] diff --git a/pallets/payment-streams/src/mock.rs b/pallets/payment-streams/src/mock.rs index b255a04fc..b4f1aafa9 100644 --- a/pallets/payment-streams/src/mock.rs +++ b/pallets/payment-streams/src/mock.rs @@ -1,318 +1,318 @@ -use crate as pallet_payment_streams; -use codec::{Decode, Encode}; -use core::marker::PhantomData; -use frame_support::{ - construct_runtime, derive_impl, - pallet_prelude::Get, - parameter_types, - traits::{AsEnsureOriginWithArg, Everything, Randomness}, - weights::constants::RocksDbWeight, -}; -use frame_system as system; -use pallet_nfts::PalletFeatures; -use shp_traits::{ProofSubmittersInterface, ReadProvidersInterface}; -use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Hasher, H256}; -use sp_runtime::{ - testing::TestSignature, - traits::{BlakeTwo256, IdentityLookup}, - BuildStorage, -}; -use sp_runtime::{traits::Convert, BoundedBTreeSet}; -use sp_trie::{LayoutV1, TrieConfiguration, TrieLayout}; -use system::pallet_prelude::BlockNumberFor; - -type Block = frame_system::mocking::MockBlock; -type Balance = u128; -type StorageUnit = u64; -type AccountId = u64; - -const EPOCH_DURATION_IN_BLOCKS: BlockNumberFor = 10; -// We mock the Randomness trait to use a simple randomness function when testing the pallet -const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumberFor = 3; -pub struct MockRandomness; -impl Randomness> for MockRandomness { - fn random(subject: &[u8]) -> (H256, BlockNumberFor) { - // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks - - // Concatenate the subject with the block number to get a unique hash for each block - let subject_concat_block = [ - subject, - &frame_system::Pallet::::block_number().to_le_bytes(), - ] - .concat(); - - let hashed_subject = blake2_256(&subject_concat_block); - - ( - H256::from_slice(&hashed_subject), - frame_system::Pallet::::block_number() - .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), - ) - } -} - -// Configure a mock runtime to test the pallet. -construct_runtime!( - pub enum Test - { - System: frame_system, - Balances: pallet_balances, - StorageProviders: pallet_storage_providers, - PaymentStreams: pallet_payment_streams, - Nfts: pallet_nfts - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; -} - -#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = RocksDbWeight; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = SS58Prefix; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = (); - type FreezeIdentifier = (); - type MaxFreezes = ConstU32<10>; -} - -parameter_types! { - pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::StorageProviders(pallet_storage_providers::HoldReason::StorageProviderDeposit); -} -pub type HasherOutT = <::Hash as Hasher>::Out; -pub struct DefaultMerkleRoot(PhantomData); -impl Get> for DefaultMerkleRoot { - fn get() -> HasherOutT { - sp_trie::empty_trie_root::() - } -} - -pub struct TreasuryAccount; -impl Get for TreasuryAccount { - fn get() -> AccountId { - 0 - } -} - -pub struct MockFileMetadataManager; -impl shp_traits::FileMetadataInterface for MockFileMetadataManager { - type AccountId = AccountId; - type Metadata = shp_file_metadata::FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - >; - type StorageDataUnit = u64; - - fn encode(metadata: &Self::Metadata) -> Vec { - metadata.encode() - } - - fn decode(data: &[u8]) -> Result { - as Decode>::decode(&mut &data[..]) - } - - fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { - metadata.file_size - } - - fn get_file_owner(metadata: &Self::Metadata) -> Result { - Self::AccountId::decode(&mut metadata.owner.as_slice()) - } -} - -impl pallet_storage_providers::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersRandomness = MockRandomness; - type FileMetadataManager = MockFileMetadataManager; - type NativeBalance = Balances; - type RuntimeHoldReason = RuntimeHoldReason; - type StorageDataUnit = StorageUnit; - type PaymentStreams = PaymentStreams; - type SpCount = u32; - type MerklePatriciaRoot = H256; - type ValuePropId = H256; - type ReadAccessGroupId = ::CollectionId; - type ProvidersProofSubmitters = MockSubmittingProviders; - type ReputationWeightType = u32; - type Treasury = TreasuryAccount; - type SpMinDeposit = ConstU128<10>; - type SpMinCapacity = ConstU64<2>; - type DepositPerData = ConstU128<2>; - type MaxFileSize = ConstU64<{ u64::MAX }>; - type MaxMultiAddressSize = ConstU32<100>; - type MaxMultiAddressAmount = ConstU32<5>; - type MaxProtocols = ConstU32<100>; - type MaxBuckets = ConstU32<10000>; - type BucketDeposit = ConstU128<10>; - type BucketNameLimit = ConstU32<100>; - type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; - type MinBlocksBetweenCapacityChanges = ConstU64<10>; - type DefaultMerkleRoot = DefaultMerkleRoot>; - type SlashAmountPerMaxFileSize = ConstU128<10>; - type StartingReputationWeight = ConstU32<1>; -} - -parameter_types! { - pub storage Features: PalletFeatures = PalletFeatures::all_enabled(); -} - -impl pallet_nfts::Config for Test { - type RuntimeEvent = RuntimeEvent; - type CollectionId = u128; - type ItemId = u128; - type Currency = Balances; - type CreateOrigin = AsEnsureOriginWithArg>; - type ForceOrigin = frame_system::EnsureRoot; - type Locker = (); - type CollectionDeposit = ConstU128<2>; - type ItemDeposit = ConstU128<1>; - type MetadataDepositBase = ConstU128<1>; - type AttributeDepositBase = ConstU128<1>; - type DepositPerByte = ConstU128<1>; - type StringLimit = ConstU32<50>; - type KeyLimit = ConstU32<50>; - type ValueLimit = ConstU32<50>; - type ApprovalsLimit = ConstU32<10>; - type ItemAttributesApprovalsLimit = ConstU32<2>; - type MaxTips = ConstU32<10>; - type MaxDeadlineDuration = ConstU64<10000>; - type MaxAttributesPerCall = ConstU32<2>; - type Features = Features; - type OffchainSignature = TestSignature; - type OffchainPublic = ::Signer; - type WeightInfo = (); - pallet_nfts::runtime_benchmarks_enabled! { - type Helper = (); - } -} - -parameter_types! { - pub const PaymentStreamHoldReason: RuntimeHoldReason = RuntimeHoldReason::PaymentStreams(pallet_payment_streams::HoldReason::PaymentStreamDeposit); -} - -// Converter from the BlockNumber type to the Balance type for math -pub struct BlockNumberToBalance; - -impl Convert, Balance> for BlockNumberToBalance { - fn convert(block_number: BlockNumberFor) -> Balance { - block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type - } -} - -// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. -pub struct MockSubmittingProviders; -impl ProofSubmittersInterface for MockSubmittingProviders { - type ProviderId = ::Hash; - type TickNumber = BlockNumberFor; - type MaxProofSubmitters = ConstU32<1000>; - fn get_proof_submitters_for_tick( - block_number: &Self::TickNumber, - ) -> Option> { - let mut set = BoundedBTreeSet::::new(); - // We convert the block number + 1 to the corresponding Provider ID, to simulate that the Provider submitted a proof - ::get_provider_id(*block_number + 1) - .map(|id| set.try_insert(id)); - Some(set) - } - - fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { - None - } - - fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} -} - -impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; - type NativeBalance = Balances; - type ProvidersPallet = StorageProviders; - type RuntimeHoldReason = RuntimeHoldReason; - type Units = StorageUnit; - type NewStreamDeposit = ConstU64<10>; - type UserWithoutFundsCooldown = ConstU64<100>; - type BlockNumberToBalance = BlockNumberToBalance; - type ProvidersProofSubmitters = MockSubmittingProviders; -} - -// Build genesis storage according to the mock runtime. -pub fn _new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::::default() - .build_storage() - .unwrap() - .into() -} - -// Externalities builder with predefined balances for accounts and starting at block number 1 -pub struct ExtBuilder; -impl ExtBuilder { - pub fn build() -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::::default() - .build_storage() - .unwrap(); - pallet_balances::GenesisConfig:: { - balances: vec![ - (0, 5_000_000), // Alice = 0 - (1, 10_000_000), // Bob = 1 - (2, 20_000_000), // Charlie = 2 - (3, 30_000_000), // David = 3 - (4, 400_000_000), // Eve = 4 - (5, 5_000_000_000), // Ferdie = 5 - (6, 600_000_000_000), // George = 6 - (123, 5_000_000), // Alice for `on_poll` testing = 123 - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - crate::GenesisConfig:: { current_price: 1 } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| { - System::set_block_number(1); - pallet_payment_streams::OnPollTicker::::set(1); - }); - ext - } -} +use crate as pallet_payment_streams; +use codec::{Decode, Encode}; +use core::marker::PhantomData; +use frame_support::{ + construct_runtime, derive_impl, + pallet_prelude::Get, + parameter_types, + traits::{AsEnsureOriginWithArg, Everything, Randomness}, + weights::constants::RocksDbWeight, +}; +use frame_system as system; +use pallet_nfts::PalletFeatures; +use shp_traits::{ProofSubmittersInterface, ReadProvidersInterface}; +use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Hasher, H256}; +use sp_runtime::{ + testing::TestSignature, + traits::{BlakeTwo256, IdentityLookup}, + BuildStorage, +}; +use sp_runtime::{traits::Convert, BoundedBTreeSet}; +use sp_trie::{LayoutV1, TrieConfiguration, TrieLayout}; +use system::pallet_prelude::BlockNumberFor; + +type Block = frame_system::mocking::MockBlock; +type Balance = u128; +type StorageUnit = u64; +type AccountId = u64; + +const EPOCH_DURATION_IN_BLOCKS: BlockNumberFor = 10; +// We mock the Randomness trait to use a simple randomness function when testing the pallet +const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumberFor = 3; +pub struct MockRandomness; +impl Randomness> for MockRandomness { + fn random(subject: &[u8]) -> (H256, BlockNumberFor) { + // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks + + // Concatenate the subject with the block number to get a unique hash for each block + let subject_concat_block = [ + subject, + &frame_system::Pallet::::block_number().to_le_bytes(), + ] + .concat(); + + let hashed_subject = blake2_256(&subject_concat_block); + + ( + H256::from_slice(&hashed_subject), + frame_system::Pallet::::block_number() + .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), + ) + } +} + +// Configure a mock runtime to test the pallet. +construct_runtime!( + pub enum Test + { + System: frame_system, + Balances: pallet_balances, + StorageProviders: pallet_storage_providers, + PaymentStreams: pallet_payment_streams, + Nfts: pallet_nfts + } +); + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 42; +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl system::Config for Test { + type BaseCallFilter = Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = RocksDbWeight; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Nonce = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_balances::Config for Test { + type Balance = Balance; + type DustRemoval = (); + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; + type WeightInfo = (); + type MaxLocks = ConstU32<10>; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = (); + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<10>; +} + +parameter_types! { + pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::StorageProviders(pallet_storage_providers::HoldReason::StorageProviderDeposit); +} +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} + +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + 0 + } +} + +pub struct MockFileMetadataManager; +impl shp_traits::FileMetadataInterface for MockFileMetadataManager { + type AccountId = AccountId; + type Metadata = shp_file_metadata::FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type StorageDataUnit = u64; + + fn encode(metadata: &Self::Metadata) -> Vec { + metadata.encode() + } + + fn decode(data: &[u8]) -> Result { + as Decode>::decode(&mut &data[..]) + } + + fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { + metadata.file_size + } + + fn get_file_owner(metadata: &Self::Metadata) -> Result { + Self::AccountId::decode(&mut metadata.owner.as_slice()) + } +} + +impl pallet_storage_providers::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersRandomness = MockRandomness; + type FileMetadataManager = MockFileMetadataManager; + type NativeBalance = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type StorageDataUnit = StorageUnit; + type PaymentStreams = PaymentStreams; + type SpCount = u32; + type MerklePatriciaRoot = H256; + type ValuePropId = H256; + type ReadAccessGroupId = ::CollectionId; + type ProvidersProofSubmitters = MockSubmittingProviders; + type ReputationWeightType = u32; + type Treasury = TreasuryAccount; + type SpMinDeposit = ConstU128<10>; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = ConstU32<100>; + type MaxMultiAddressAmount = ConstU32<5>; + type MaxProtocols = ConstU32<100>; + type MaxBuckets = ConstU32<10000>; + type BucketDeposit = ConstU128<10>; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; + type MinBlocksBetweenCapacityChanges = ConstU64<10>; + type DefaultMerkleRoot = DefaultMerkleRoot>; + type SlashAmountPerMaxFileSize = ConstU128<10>; + type StartingReputationWeight = ConstU32<1>; +} + +parameter_types! { + pub storage Features: PalletFeatures = PalletFeatures::all_enabled(); +} + +impl pallet_nfts::Config for Test { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u128; + type ItemId = u128; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = frame_system::EnsureRoot; + type Locker = (); + type CollectionDeposit = ConstU128<2>; + type ItemDeposit = ConstU128<1>; + type MetadataDepositBase = ConstU128<1>; + type AttributeDepositBase = ConstU128<1>; + type DepositPerByte = ConstU128<1>; + type StringLimit = ConstU32<50>; + type KeyLimit = ConstU32<50>; + type ValueLimit = ConstU32<50>; + type ApprovalsLimit = ConstU32<10>; + type ItemAttributesApprovalsLimit = ConstU32<2>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = ConstU64<10000>; + type MaxAttributesPerCall = ConstU32<2>; + type Features = Features; + type OffchainSignature = TestSignature; + type OffchainPublic = ::Signer; + type WeightInfo = (); + pallet_nfts::runtime_benchmarks_enabled! { + type Helper = (); + } +} + +parameter_types! { + pub const PaymentStreamHoldReason: RuntimeHoldReason = RuntimeHoldReason::PaymentStreams(pallet_payment_streams::HoldReason::PaymentStreamDeposit); +} + +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; + +impl Convert, Balance> for BlockNumberToBalance { + fn convert(block_number: BlockNumberFor) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. +pub struct MockSubmittingProviders; +impl ProofSubmittersInterface for MockSubmittingProviders { + type ProviderId = ::Hash; + type TickNumber = BlockNumberFor; + type MaxProofSubmitters = ConstU32<1000>; + fn get_proof_submitters_for_tick( + block_number: &Self::TickNumber, + ) -> Option> { + let mut set = BoundedBTreeSet::::new(); + // We convert the block number + 1 to the corresponding Provider ID, to simulate that the Provider submitted a proof + ::get_provider_id(*block_number + 1) + .map(|id| set.try_insert(id)); + Some(set) + } + + fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { + None + } + + fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} +} + +impl crate::Config for Test { + type RuntimeEvent = RuntimeEvent; + type NativeBalance = Balances; + type ProvidersPallet = StorageProviders; + type RuntimeHoldReason = RuntimeHoldReason; + type Units = StorageUnit; + type NewStreamDeposit = ConstU64<10>; + type UserWithoutFundsCooldown = ConstU64<100>; + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = MockSubmittingProviders; +} + +// Build genesis storage according to the mock runtime. +pub fn _new_test_ext() -> sp_io::TestExternalities { + system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into() +} + +// Externalities builder with predefined balances for accounts and starting at block number 1 +pub struct ExtBuilder; +impl ExtBuilder { + pub fn build() -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + pallet_balances::GenesisConfig:: { + balances: vec![ + (0, 5_000_000), // Alice = 0 + (1, 10_000_000), // Bob = 1 + (2, 20_000_000), // Charlie = 2 + (3, 30_000_000), // David = 3 + (4, 400_000_000), // Eve = 4 + (5, 5_000_000_000), // Ferdie = 5 + (6, 600_000_000_000), // George = 6 + (123, 5_000_000), // Alice for `on_poll` testing = 123 + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + crate::GenesisConfig:: { current_price: 1 } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| { + System::set_block_number(1); + pallet_payment_streams::OnPollTicker::::set(1); + }); + ext + } +} diff --git a/pallets/proofs-dealer/src/lib.rs b/pallets/proofs-dealer/src/lib.rs index 36c9e9156..4fea595d5 100644 --- a/pallets/proofs-dealer/src/lib.rs +++ b/pallets/proofs-dealer/src/lib.rs @@ -1,744 +1,744 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -pub use pallet::*; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -// TODO #[cfg(feature = "runtime-benchmarks")] -// TODO mod benchmarking; -pub mod types; -pub mod utils; - -#[frame_support::pallet] -pub mod pallet { - use codec::FullCodec; - use frame_support::{ - dispatch::DispatchResultWithPostInfo, - pallet_prelude::{ValueQuery, *}, - sp_runtime::traits::{CheckEqual, Hash, MaybeDisplay, SimpleBitOps}, - traits::{fungible, Randomness}, - }; - use frame_system::pallet_prelude::*; - use scale_info::prelude::fmt::Debug; - use shp_traits::{ - CommitmentVerifier, MutateChallengeableProvidersInterface, ProofsDealerInterface, - ReadChallengeableProvidersInterface, TrieProofDeltaApplier, TrieRemoveMutation, - }; - use sp_runtime::{ - traits::{CheckedSub, Convert, Saturating}, - Perbill, - }; - use sp_std::vec::Vec; - use types::{KeyFor, ProviderIdFor}; - - use crate::types::*; - use crate::*; - - #[pallet::config] - pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's definition of an event. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - /// The Providers pallet. - /// To check if whoever submits a proof is a registered Provider. - type ProvidersPallet: ReadChallengeableProvidersInterface< - AccountId = Self::AccountId, - MerkleHash = Self::MerkleTrieHash, - Balance = Self::NativeBalance, - > + MutateChallengeableProvidersInterface::ProviderId, MerkleHash = Self::MerkleTrieHash>; - - /// The type used to verify Merkle Patricia Forest proofs. - /// This verifies proofs of keys belonging to the Merkle Patricia Forest. - /// Something that implements the [`CommitmentVerifier`] trait. - /// The type of the challenge is a hash, and it is expected that a proof will provide the - /// exact hash if it exists in the forest, or the previous and next hashes if it does not. - type ForestVerifier: CommitmentVerifier, Challenge = KeyFor> - + TrieProofDeltaApplier< - Self::MerkleTrieHashing, - Key = KeyFor, - Proof = ForestVerifierProofFor, - >; - - /// The type used to verify the proof of a specific key within the Merkle Patricia Forest. - /// While [`Config::ForestVerifier`] verifies that some keys are in the Merkle Patricia Forest, this - /// verifies specifically a proof for that key. For example, if the keys in the forest - /// represent files, this would verify the proof for a specific file, and [`Config::ForestVerifier`] - /// would verify that the file is in the forest. - /// The type of the challenge is a `[u8; 8]` that actually represents a u64 number, which is - /// the index of the chunk being challenged. - type KeyVerifier: CommitmentVerifier, Challenge = KeyFor>; - - /// Type to access the Balances Pallet. - type NativeBalance: fungible::Inspect - + fungible::Mutate - + fungible::hold::Inspect - + fungible::hold::Mutate; - - /// Type to access source of randomness. - type RandomnessProvider: Randomness>; - - /// The type for the hashes of Merkle Patricia Forest nodes. - /// Applies to keys (leaf nodes) and root hashes (root nodes). - /// Generally a hash (the output of a Hasher). - type MerkleTrieHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// The hashing system (algorithm) being used for the Merkle Patricia Forests (e.g. Blake2). - type MerkleTrieHashing: Hash + TypeInfo; - - /// The type to convert a balance to a block number. - type StakeToBlockNumber: Convert, BlockNumberFor>; - - /// The number of random challenges that are generated per block, using the random seed - /// generated for that block. - #[pallet::constant] - type RandomChallengesPerBlock: Get; - - /// The maximum number of custom challenges that can be made in a single checkpoint block. - #[pallet::constant] - type MaxCustomChallengesPerBlock: Get; - - /// The number of ticks that challenges history is kept for. - /// After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. - /// A "tick" is usually one block, but some blocks may be skipped due to migrations. - #[pallet::constant] - type ChallengeHistoryLength: Get>; - - /// The length of the `ChallengesQueue` StorageValue. - /// This is to limit the size of the queue, and therefore the number of - /// manual challenges that can be made. - #[pallet::constant] - type ChallengesQueueLength: Get; - - /// The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). - /// This is used to determine when to include the challenges from the `ChallengesQueue` and - /// `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge - /// rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` - /// extrinsic. - /// - /// WARNING: This period needs to be equal or larger than the challenge period of the smallest - /// Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), - /// then the checkpoint challenge period needs to be at least 10 ticks. - #[pallet::constant] - type CheckpointChallengePeriod: Get>; - - /// The ratio to convert staked balance to block period. - /// This is used to determine the period in which a Provider should submit a proof, based on - /// their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. - #[pallet::constant] - type StakeToChallengePeriod: Get>; - - /// The minimum period in which a Provider can be challenged, regardless of their stake. - #[pallet::constant] - type MinChallengePeriod: Get>; - - /// The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that - /// a Provider has to submit a proof, counting from the tick the challenge is emitted for - /// that Provider. - /// - /// For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance - /// is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before - /// `n + t`. - #[pallet::constant] - type ChallengeTicksTolerance: Get>; - - /// The fee charged for submitting a challenge. - /// This fee goes to the Treasury, and is used to prevent spam. Registered Providers are - /// exempt from this fee. - #[pallet::constant] - type ChallengesFee: Get>; - - /// The target number of ticks for which to store the submitters that submitted valid proofs in them, - /// stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number - /// of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. - #[pallet::constant] - type TargetTicksStorageOfSubmitters: Get; - - /// The maximum amount of Providers that can submit a proof in a single block. - /// Although this can be seen as an arbitrary limit, if set to the already existing - /// implicit limit that is "how many `submit_proof` extrinsics fit in the weight of - /// a block, this wouldn't add any additional artificial limit. - #[pallet::constant] - type MaxSubmittersPerTick: Get; - - /// The Treasury AccountId. - /// The account to which: - /// - The fees for submitting a challenge are transferred. - /// - The slashed funds are transferred. - #[pallet::constant] - type Treasury: Get; - - /// The period of blocks for which the block fullness is checked. - /// - /// This is the amount of blocks from the past, for which the block fullness has been checked - /// and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are - /// cleared from storage. - /// - /// This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, - /// if the goal is to prevent spamming attacks that would prevent honest Providers from submitting - /// their proofs in time. - #[pallet::constant] - type BlockFullnessPeriod: Get>; - - /// The minimum unused weight that a block must have to be considered _not_ full. - /// - /// This is used as part of the criteria for checking if the network is presumably under a spam attack. - /// For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would - /// mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. - #[pallet::constant] - type BlockFullnessHeadroom: Get; - - /// The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, - /// from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. - /// - /// If less than this percentage of blocks are not full, the networks is considered to be presumably - /// under a spam attack. - /// This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, - /// if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` - /// blocks are not full, then one of those blocks surely was produced by an honest collator, meaning - /// that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. - #[pallet::constant] - type MinNotFullBlocksRatio: Get; - } - - #[pallet::pallet] - pub struct Pallet(_); - - /// A mapping from challenges tick to a random seed used for generating the challenges in that tick. - /// - /// This is used to keep track of the challenges' seed in the past. - /// This mapping goes back only [`ChallengeHistoryLengthFor`] blocks. Previous challenges are removed. - #[pallet::storage] - pub type TickToChallengesSeed = - StorageMap<_, Blake2_128Concat, BlockNumberFor, RandomnessOutputFor>; - - /// A mapping from challenges tick to a vector of custom challenged keys for that tick. - /// - /// This is used to keep track of the challenges that have been made in the past, specifically - /// in the checkpoint challenge rounds. - /// The vector is bounded by [`MaxCustomChallengesPerBlockFor`]. - /// This mapping goes back only [`ChallengeHistoryLengthFor`] ticks. Previous challenges are removed. - #[pallet::storage] - pub type TickToCheckpointChallenges = StorageMap< - _, - Blake2_128Concat, - BlockNumberFor, - BoundedVec<(KeyFor, Option), MaxCustomChallengesPerBlockFor>, - >; - - /// The challenge tick of the last checkpoint challenge round. - /// - /// This is used to determine when to include the challenges from the [`ChallengesQueue`] and - /// [`PriorityChallengesQueue`] in the [`TickToCheckpointChallenges`] StorageMap. These checkpoint - /// challenge rounds have to be answered by ALL Providers, and this is enforced by the - /// `submit_proof` extrinsic. - #[pallet::storage] - pub type LastCheckpointTick = StorageValue<_, BlockNumberFor, ValueQuery>; - - /// A mapping from challenge tick to a vector of challenged Providers for that tick. - /// - /// This is used to keep track of the Providers that have been challenged, and should - /// submit a proof by the time of the [`ChallengesTicker`] reaches the number used as - /// key in the mapping. Providers who do submit a proof are removed from their respective - /// entry and pushed forward to the next tick in which they should submit a proof. - /// Those who are still in the entry by the time the tick is reached are considered to - /// have failed to submit a proof and subject to slashing. - #[pallet::storage] - pub type TickToProvidersDeadlines = StorageDoubleMap< - _, - Blake2_128Concat, - BlockNumberFor, - Blake2_128Concat, - ProviderIdFor, - (), - >; - - /// A mapping from a Provider to the last tick for which they SHOULD have submitted a proof. - /// If for a Provider `p`, `LastTickProviderSubmittedAProofFor[p]` is `n`, then the - /// Provider should submit a proof for tick `n + stake_to_challenge_period(p)`. - /// - /// This gets updated when a Provider submits a proof successfully and is used to determine the - /// next tick for which the Provider should submit a proof, and it's deadline. - /// - /// If the Provider fails to submit a proof in time and is slashed, this will still get updated - /// to the tick it should have submitted a proof for. - #[pallet::storage] - pub type LastTickProviderSubmittedAProofFor = - StorageMap<_, Blake2_128Concat, ProviderIdFor, BlockNumberFor>; - - /// A queue of keys that have been challenged manually. - /// - /// The elements in this queue will be challenged in the coming blocks, - /// always ensuring that the maximum number of challenges per block is not exceeded. - /// A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait - /// is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. - #[pallet::storage] - pub type ChallengesQueue = - StorageValue<_, BoundedVec, ChallengesQueueLengthFor>, ValueQuery>; - - /// A priority queue of keys that have been challenged manually. - /// - /// The difference between this and `ChallengesQueue` is that the challenges - /// in this queue are given priority over the others. So this queue should be - /// emptied before any of the challenges in the `ChallengesQueue` are dispatched. - /// This queue should not be accessible to the public. - /// The elements in this queue will be challenged in the coming blocks, - /// always ensuring that the maximum number of challenges per block is not exceeded. - /// A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait - /// is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. - #[pallet::storage] - pub type PriorityChallengesQueue = StorageValue< - _, - BoundedVec<(KeyFor, Option), ChallengesQueueLengthFor>, - ValueQuery, - >; - - /// A counter of blocks in which challenges were distributed. - /// - /// This counter is not necessarily the same as the block number, as challenges are - /// distributed in the `on_poll` hook, which happens at the beginning of every block, - /// so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). - /// During MBMsm, the block number increases, but [`ChallengesTicker`] does not. - #[pallet::storage] - pub type ChallengesTicker = StorageValue<_, BlockNumberFor, ValueQuery>; - - #[pallet::storage] - pub type SlashableProviders = StorageMap<_, Blake2_128Concat, ProviderIdFor, u32>; - - /// A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. - /// - /// This is used to keep track of the Providers that have submitted proofs in the last few - /// ticks, where availability only up to the last [`Config::TargetTicksStorageOfSubmitters`] ticks is guaranteed. - /// This storage is then made available for other pallets to use through the `ProofSubmittersInterface`. - #[pallet::storage] - #[pallet::getter(fn valid_proof_submitters_last_ticks)] - pub type ValidProofSubmittersLastTicks = StorageMap< - _, - Blake2_128Concat, - BlockNumberFor, - BoundedBTreeSet, T::MaxSubmittersPerTick>, - >; - - /// A value that represents the last tick that was deleted from the [`ValidProofSubmittersLastTicks`] StorageMap. - /// - /// This is used to know which tick to delete from the [`ValidProofSubmittersLastTicks`] StorageMap when the - /// `on_idle` hook is called. - #[pallet::storage] - #[pallet::getter(fn last_deleted_tick)] - pub type LastDeletedTick = StorageValue<_, BlockNumberFor, ValueQuery>; - - /// A boolean that represents whether the [`ChallengesTicker`] is paused. - /// - /// By default, this is `false`, meaning that the [`ChallengesTicker`] is incremented every time `on_poll` is called. - /// This can be set to `true` which would pause the [`ChallengesTicker`], preventing `do_new_challenges_round` from - /// being executed. Therefore: - /// - No new random challenges would be emitted and added to [`TickToChallengesSeed`]. - /// - No new checkpoint challenges would be emitted and added to [`TickToCheckpointChallenges`]. - /// - Deadlines for proof submissions are indefinitely postponed. - #[pallet::storage] - #[pallet::getter(fn challenges_ticker_paused)] - pub type ChallengesTickerPaused = StorageValue<_, ()>; - - /// A mapping from block number to the weight used in that block. - /// - /// This is used to check if the network is presumably under a spam attack. - /// It is cleared for blocks older than `current_block` - ([`Config::BlockFullnessPeriod`] + 1). - #[pallet::storage] - #[pallet::getter(fn past_blocks_fullness)] - pub type PastBlocksWeight = - StorageMap<_, Blake2_128Concat, BlockNumberFor, Weight>; - - /// The number of blocks that have been considered _not_ full in the last [`Config::BlockFullnessPeriod`]. - /// - /// This is used to check if the network is presumably under a spam attack. - #[pallet::storage] - #[pallet::getter(fn not_full_blocks_count)] - pub type NotFullBlocksCount = StorageValue<_, BlockNumberFor, ValueQuery>; - - // Pallets use events to inform users when important changes are made. - // https://docs.substrate.io/v3/runtime/events-and-errors - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - /// A manual challenge was submitted. - NewChallenge { - who: AccountIdFor, - key_challenged: KeyFor, - }, - - /// A proof was accepted. - ProofAccepted { - provider: ProviderIdFor, - proof: Proof, - }, - - /// A new challenge seed was generated. - NewChallengeSeed { - challenges_ticker: BlockNumberFor, - seed: RandomnessOutputFor, - }, - - /// A new checkpoint challenge was generated. - NewCheckpointChallenge { - challenges_ticker: BlockNumberFor, - challenges: BoundedVec< - (KeyFor, Option), - MaxCustomChallengesPerBlockFor, - >, - }, - - /// A provider was marked as slashable and their challenge deadline was forcefully pushed. - SlashableProvider { - provider: ProviderIdFor, - next_challenge_deadline: BlockNumberFor, - }, - - /// No record of the last tick the Provider submitted a proof for. - NoRecordOfLastSubmittedProof { provider: ProviderIdFor }, - - /// A provider's challenge cycle was initialised. - NewChallengeCycleInitialised { - current_tick: BlockNumberFor, - next_challenge_deadline: BlockNumberFor, - provider: ProviderIdFor, - maybe_provider_account: Option, - }, - - /// A set of mutations has been applied to the Forest. - MutationsApplied { - provider: ProviderIdFor, - mutations: Vec<(KeyFor, TrieRemoveMutation)>, - new_root: KeyFor, - }, - - /// The [`ChallengesTicker`] has been paused or unpaused. - ChallengesTickerSet { paused: bool }, - } - - // Errors inform users that something went wrong. - #[pallet::error] - pub enum Error { - /// General errors - - /// The proof submitter is not a registered Provider. - NotProvider, - - /// `challenge` extrinsic errors - - /// The ChallengesQueue is full. No more manual challenges can be made - /// until some of the challenges in the queue are dispatched. - ChallengesQueueOverflow, - - /// The PriorityChallengesQueue is full. No more priority challenges can be made - /// until some of the challenges in the queue are dispatched. - PriorityChallengesQueueOverflow, - - /// The fee for submitting a challenge could not be charged. - FeeChargeFailed, - - /// `submit_proof` extrinsic errors - - /// There are no key proofs submitted. - EmptyKeyProofs, - - /// The root for the Provider could not be found. - ProviderRootNotFound, - - /// Provider is submitting a proof when they have a zero root. - /// Providers with zero roots are not providing any service, so they should not be - /// submitting proofs. - ZeroRoot, - - /// Provider is submitting a proof but there is no record of the last tick they - /// submitted a proof for. - /// Providers who are required to submit proofs should always have a record of the - /// last tick they submitted a proof for, otherwise it means they haven't started - /// providing service for any user yet. - NoRecordOfLastSubmittedProof, - - /// The provider stake could not be found. - ProviderStakeNotFound, - - /// Provider is submitting a proof but their stake is zero. - ZeroStake, - - /// The staked balance of the Provider could not be converted to `u128`. - /// This should not be possible, as the `Balance` type should be an unsigned integer type. - StakeCouldNotBeConverted, - - /// Provider is submitting a proof for a tick in the future. - ChallengesTickNotReached, - - /// Provider is submitting a proof for a tick before the last tick this pallet registers - /// challenges for. - ChallengesTickTooOld, - - /// Provider is submitting a proof for a tick too late, i.e. that the challenges tick - /// is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. - ChallengesTickTooLate, - - /// The seed for the tick could not be found. - /// This should not be possible for a tick within the `ChallengeHistoryLength` range, as - /// seeds are generated for all ticks, and stored within this range. - SeedNotFound, - - /// Checkpoint challenges not found in block. - /// This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick - /// that is not a checkpoint tick. - CheckpointChallengesNotFound, - - /// The forest proof submitted by the Provider is invalid. - /// This could be because the proof is not valid for the root, or because the proof is - /// not sufficient for the challenges made. - ForestProofVerificationFailed, - - /// There is at least one key proven in the forest proof, that does not have a corresponding - /// key proof. - KeyProofNotFound, - - /// A key proof submitted by the Provider is invalid. - /// This could be because the proof is not valid for the root of that key, or because the proof - /// is not sufficient for the challenges made. - KeyProofVerificationFailed, - - /// Failed to apply delta to the forest proof partial trie. - FailedToApplyDelta, - - /// Failed to update the provider after a key removal mutation. - FailedToUpdateProviderAfterKeyRemoval, - - /// The limit of Providers that can submit a proof in a single tick has been reached. - TooManyValidProofSubmitters, - } - - #[pallet::call] - impl Pallet { - /// Introduce a new challenge. - /// - /// This function allows anyone to add a new challenge to the `ChallengesQueue`. - /// The challenge will be dispatched in the coming blocks. - /// Users are charged a small fee for submitting a challenge, which - /// goes to the Treasury. - #[pallet::call_index(0)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn challenge(origin: OriginFor, key: KeyFor) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - Self::do_challenge(&who, &key)?; - - // Emit event. - Self::deposit_event(Event::NewChallenge { - who, - key_challenged: key, - }); - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// For a Provider to submit a proof. - /// - /// Checks that `provider` is a registered Provider. If none - /// is provided, the proof submitter is considered to be the Provider. - /// Relies on a Providers pallet to get the root for the Provider. - /// Validates that the proof corresponds to a challenge that was made in the past, - /// by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the - /// Provider should have submitted a proof is calculated based on the last tick they - /// submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for - /// that Provider, which is a function of their stake. - /// This extrinsic also checks that there hasn't been a checkpoint challenge round - /// in between the last time the Provider submitted a proof for and the tick - /// for which the proof is being submitted. If there has been, the Provider is - /// subject to slashing. - /// - /// If valid: - /// - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number - /// of ticks corresponding to the stake of the Provider. - /// - Registers this tick as the last tick in which the Provider submitted a proof. - /// - /// Execution of this extrinsic should be refunded if the proof is valid. - #[pallet::call_index(1)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn submit_proof( - origin: OriginFor, - proof: Proof, - provider: Option>, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Getting provider from the origin if none is provided. - let provider = match provider { - Some(provider) => provider, - None => { - let sp = T::ProvidersPallet::get_provider_id(who.clone()) - .ok_or(Error::::NotProvider)?; - sp - } - }; - - Self::do_submit_proof(&provider, &proof)?; - - // Emit event. - Self::deposit_event(Event::ProofAccepted { provider, proof }); - - // Return a successful DispatchResultWithPostInfo. - // If the proof is valid, the execution of this extrinsic should be refunded. - Ok(Pays::No.into()) - } - - /// Initialise a Provider's challenge cycle. - /// - /// Only callable by sudo. - /// - /// Sets the last tick the Provider submitted a proof for to the current tick, and sets the - /// deadline for submitting a proof to the current tick + the Provider's period + the tolerance. - #[pallet::call_index(2)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn force_initialise_challenge_cycle( - origin: OriginFor, - provider: ProviderIdFor, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was executed by the root origin. - ensure_root(origin)?; - - // Execute checks and logic, update storage. - ::initialise_challenge_cycle(&provider)?; - - // Return a successful DispatchResultWithPostInfo. - Ok(Pays::No.into()) - } - - /// Set the [`ChallengesTickerPaused`] to `true` or `false`. - /// - /// Only callable by sudo. - #[pallet::call_index(3)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn set_paused(origin: OriginFor, paused: bool) -> DispatchResultWithPostInfo { - // Check that the extrinsic was executed by the root origin. - ensure_root(origin)?; - - if paused { - ChallengesTickerPaused::::set(Some(())); - } else { - ChallengesTickerPaused::::set(None); - } - - // Emit the corresponding event. - Self::deposit_event(Event::::ChallengesTickerSet { paused }); - - // Return a successful DispatchResultWithPostInfo. - Ok(Pays::No.into()) - } - } - - #[pallet::hooks] - impl Hooks> for Pallet { - /// This hook is used to generate new challenges. - /// - /// It will be called at the beginning of every block, if the block is not being part of a - /// [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). - /// For more information on the lifecycle of the block and its hooks, see the [Substrate - /// documentation](https://paritytech.github.io/polkadot-sdk/master/frame_support/traits/trait.Hooks.html#method.on_poll). - fn on_poll(_n: BlockNumberFor, weight: &mut frame_support::weights::WeightMeter) { - // TODO: Benchmark computational weight cost of this hook. - - // Only execute the `do_new_challenges_round` if the `ChallengesTicker` is not paused. - if ChallengesTickerPaused::::get().is_none() { - Self::do_new_challenges_round(weight); - } - - // Check if the network is presumably under a spam attack. - // If so, `ChallengesTicker` will be paused. - // This check is done "a posteriori", meaning that we first increment the `ChallengesTicker`, send out challenges - // and slash Providers if in the last block we didn't consider the network to be under spam. - // Then if at this block we consider the network to be under spam, we pause the `ChallengesTicker`, which will not - // be incremented in the next block. - Self::do_check_spamming_condition(weight); - } - - /// This hook is called on block initialization and returns the Weight of the `on_finalize` hook to - /// let block builders know how much weight to reserve for it - /// TODO: Benchmark on_finalize to get its weight and replace the placeholder weight for that - fn on_initialize(_n: BlockNumberFor) -> Weight { - Weight::from_parts(10_000, 0) + T::DbWeight::get().reads_writes(0, 2) - } - - fn on_finalize(block_number: BlockNumberFor) { - // Get weight usage in this block so far, for the dispatch class of `submit_proof` extrinsics. - let weight_used = frame_system::Pallet::::block_weight(); - let weight_used_for_class = weight_used.get(DispatchClass::Normal); - - // Store the weight usage in this block. - PastBlocksWeight::::insert(block_number, weight_used_for_class); - - // Get the oldest block weight registered. - let block_fullness_period = T::BlockFullnessPeriod::get(); - - // Clear the storage for block at `current_block` - (`BlockFullnessPeriod` + 1). - if let Some(oldest_block_fullness_number) = - block_number.checked_sub(&block_fullness_period.saturating_add(1u32.into())) - { - // If it is older than `BlockFullnessPeriod` + 1, we clear the storage. - PastBlocksWeight::::remove(oldest_block_fullness_number); - } - } - - /// This integrity test checks that: - /// 1. `CheckpointChallengePeriod` is greater or equal to the longest period a Provider can have. - /// 2. `BlockFullnessPeriod` is smaller or equal than `ChallengeTicksTolerance`. - /// - /// Any code located in this hook is placed in an auto-generated test, and generated as a part - /// of crate::construct_runtime's expansion. - /// Look for a test case with a name along the lines of: __construct_runtime_integrity_test. - fn integrity_test() { - // Calculate longest period a Provider can have. - // That would be the period of the Provider with the minimum stake. - let min_stake = T::ProvidersPallet::get_min_stake(); - let max_period = Self::stake_to_challenge_period(min_stake); - - // Check that `CheckpointChallengePeriod` is greater or equal to the longest period a Provider can have. - assert!( - T::CheckpointChallengePeriod::get() >= max_period, - "CheckpointChallengePeriod ({:?}) const in ProofsDealer pallet should be greater or equal than the longest period a Provider can have ({:?}).", - T::CheckpointChallengePeriod::get(), - max_period - ); - - // Check that `BlockFullnessPeriod` is smaller or equal than `ChallengeTicksTolerance`. - assert!( - T::BlockFullnessPeriod::get() <= T::ChallengeTicksTolerance::get(), - "BlockFullnessPeriod const ({:?}) in ProofsDealer pallet should be smaller or equal than ChallengeTicksTolerance ({:?}).", - T::BlockFullnessPeriod::get(), - T::ChallengeTicksTolerance::get() - ); - } - - /// This hook is used to trim down the `ValidProofSubmittersLastTicks` StorageMap up to the `TargetTicksOfProofsStorage`. - /// - /// It runs when the block is being finalized (but before the `on_finalize` hook) and can consume all remaining weight. - /// It returns the used weight, so it can be used to calculate the remaining weight for the block for any other - /// pallets that have `on_idle` hooks. - fn on_idle(n: BlockNumberFor, weight: Weight) -> Weight { - // TODO: Benchmark computational and proof size weight cost of this hook. - Self::do_trim_valid_proof_submitters_last_ticks(n, weight) - } - } -} +#![cfg_attr(not(feature = "std"), no_std)] + +pub use pallet::*; + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; + +// TODO #[cfg(feature = "runtime-benchmarks")] +// TODO mod benchmarking; +pub mod types; +pub mod utils; + +#[frame_support::pallet] +pub mod pallet { + use codec::FullCodec; + use frame_support::{ + dispatch::DispatchResultWithPostInfo, + pallet_prelude::{ValueQuery, *}, + sp_runtime::traits::{CheckEqual, Hash, MaybeDisplay, SimpleBitOps}, + traits::{fungible, Randomness}, + }; + use frame_system::pallet_prelude::*; + use scale_info::prelude::fmt::Debug; + use shp_traits::{ + CommitmentVerifier, MutateChallengeableProvidersInterface, ProofsDealerInterface, + ReadChallengeableProvidersInterface, TrieProofDeltaApplier, TrieRemoveMutation, + }; + use sp_runtime::{ + traits::{CheckedSub, Convert, Saturating}, + Perbill, + }; + use sp_std::vec::Vec; + use types::{KeyFor, ProviderIdFor}; + + use crate::types::*; + use crate::*; + + #[pallet::config] + pub trait Config: frame_system::Config { + /// Because this pallet emits events, it depends on the runtime's definition of an event. + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + + /// The Providers pallet. + /// To check if whoever submits a proof is a registered Provider. + type ProvidersPallet: ReadChallengeableProvidersInterface< + AccountId = Self::AccountId, + MerkleHash = Self::MerkleTrieHash, + Balance = Self::NativeBalance, + > + MutateChallengeableProvidersInterface::ProviderId, MerkleHash = Self::MerkleTrieHash>; + + /// The type used to verify Merkle Patricia Forest proofs. + /// This verifies proofs of keys belonging to the Merkle Patricia Forest. + /// Something that implements the [`CommitmentVerifier`] trait. + /// The type of the challenge is a hash, and it is expected that a proof will provide the + /// exact hash if it exists in the forest, or the previous and next hashes if it does not. + type ForestVerifier: CommitmentVerifier, Challenge = KeyFor> + + TrieProofDeltaApplier< + Self::MerkleTrieHashing, + Key = KeyFor, + Proof = ForestVerifierProofFor, + >; + + /// The type used to verify the proof of a specific key within the Merkle Patricia Forest. + /// While [`Config::ForestVerifier`] verifies that some keys are in the Merkle Patricia Forest, this + /// verifies specifically a proof for that key. For example, if the keys in the forest + /// represent files, this would verify the proof for a specific file, and [`Config::ForestVerifier`] + /// would verify that the file is in the forest. + /// The type of the challenge is a `[u8; 8]` that actually represents a u64 number, which is + /// the index of the chunk being challenged. + type KeyVerifier: CommitmentVerifier, Challenge = KeyFor>; + + /// Type to access the Balances Pallet. + type NativeBalance: fungible::Inspect + + fungible::Mutate + + fungible::hold::Inspect + + fungible::hold::Mutate; + + /// Type to access source of randomness. + type RandomnessProvider: Randomness>; + + /// The type for the hashes of Merkle Patricia Forest nodes. + /// Applies to keys (leaf nodes) and root hashes (root nodes). + /// Generally a hash (the output of a Hasher). + type MerkleTrieHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// The hashing system (algorithm) being used for the Merkle Patricia Forests (e.g. Blake2). + type MerkleTrieHashing: Hash + TypeInfo; + + /// The type to convert a balance to a block number. + type StakeToBlockNumber: Convert, BlockNumberFor>; + + /// The number of random challenges that are generated per block, using the random seed + /// generated for that block. + #[pallet::constant] + type RandomChallengesPerBlock: Get; + + /// The maximum number of custom challenges that can be made in a single checkpoint block. + #[pallet::constant] + type MaxCustomChallengesPerBlock: Get; + + /// The number of ticks that challenges history is kept for. + /// After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. + /// A "tick" is usually one block, but some blocks may be skipped due to migrations. + #[pallet::constant] + type ChallengeHistoryLength: Get>; + + /// The length of the `ChallengesQueue` StorageValue. + /// This is to limit the size of the queue, and therefore the number of + /// manual challenges that can be made. + #[pallet::constant] + type ChallengesQueueLength: Get; + + /// The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). + /// This is used to determine when to include the challenges from the `ChallengesQueue` and + /// `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge + /// rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` + /// extrinsic. + /// + /// WARNING: This period needs to be equal or larger than the challenge period of the smallest + /// Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), + /// then the checkpoint challenge period needs to be at least 10 ticks. + #[pallet::constant] + type CheckpointChallengePeriod: Get>; + + /// The ratio to convert staked balance to block period. + /// This is used to determine the period in which a Provider should submit a proof, based on + /// their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. + #[pallet::constant] + type StakeToChallengePeriod: Get>; + + /// The minimum period in which a Provider can be challenged, regardless of their stake. + #[pallet::constant] + type MinChallengePeriod: Get>; + + /// The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that + /// a Provider has to submit a proof, counting from the tick the challenge is emitted for + /// that Provider. + /// + /// For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance + /// is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before + /// `n + t`. + #[pallet::constant] + type ChallengeTicksTolerance: Get>; + + /// The fee charged for submitting a challenge. + /// This fee goes to the Treasury, and is used to prevent spam. Registered Providers are + /// exempt from this fee. + #[pallet::constant] + type ChallengesFee: Get>; + + /// The target number of ticks for which to store the submitters that submitted valid proofs in them, + /// stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number + /// of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. + #[pallet::constant] + type TargetTicksStorageOfSubmitters: Get; + + /// The maximum amount of Providers that can submit a proof in a single block. + /// Although this can be seen as an arbitrary limit, if set to the already existing + /// implicit limit that is "how many `submit_proof` extrinsics fit in the weight of + /// a block, this wouldn't add any additional artificial limit. + #[pallet::constant] + type MaxSubmittersPerTick: Get; + + /// The Treasury AccountId. + /// The account to which: + /// - The fees for submitting a challenge are transferred. + /// - The slashed funds are transferred. + #[pallet::constant] + type Treasury: Get; + + /// The period of blocks for which the block fullness is checked. + /// + /// This is the amount of blocks from the past, for which the block fullness has been checked + /// and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are + /// cleared from storage. + /// + /// This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, + /// if the goal is to prevent spamming attacks that would prevent honest Providers from submitting + /// their proofs in time. + #[pallet::constant] + type BlockFullnessPeriod: Get>; + + /// The minimum unused weight that a block must have to be considered _not_ full. + /// + /// This is used as part of the criteria for checking if the network is presumably under a spam attack. + /// For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would + /// mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. + #[pallet::constant] + type BlockFullnessHeadroom: Get; + + /// The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, + /// from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. + /// + /// If less than this percentage of blocks are not full, the networks is considered to be presumably + /// under a spam attack. + /// This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, + /// if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` + /// blocks are not full, then one of those blocks surely was produced by an honest collator, meaning + /// that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. + #[pallet::constant] + type MinNotFullBlocksRatio: Get; + } + + #[pallet::pallet] + pub struct Pallet(_); + + /// A mapping from challenges tick to a random seed used for generating the challenges in that tick. + /// + /// This is used to keep track of the challenges' seed in the past. + /// This mapping goes back only [`ChallengeHistoryLengthFor`] blocks. Previous challenges are removed. + #[pallet::storage] + pub type TickToChallengesSeed = + StorageMap<_, Blake2_128Concat, BlockNumberFor, RandomnessOutputFor>; + + /// A mapping from challenges tick to a vector of custom challenged keys for that tick. + /// + /// This is used to keep track of the challenges that have been made in the past, specifically + /// in the checkpoint challenge rounds. + /// The vector is bounded by [`MaxCustomChallengesPerBlockFor`]. + /// This mapping goes back only [`ChallengeHistoryLengthFor`] ticks. Previous challenges are removed. + #[pallet::storage] + pub type TickToCheckpointChallenges = StorageMap< + _, + Blake2_128Concat, + BlockNumberFor, + BoundedVec<(KeyFor, Option), MaxCustomChallengesPerBlockFor>, + >; + + /// The challenge tick of the last checkpoint challenge round. + /// + /// This is used to determine when to include the challenges from the [`ChallengesQueue`] and + /// [`PriorityChallengesQueue`] in the [`TickToCheckpointChallenges`] StorageMap. These checkpoint + /// challenge rounds have to be answered by ALL Providers, and this is enforced by the + /// `submit_proof` extrinsic. + #[pallet::storage] + pub type LastCheckpointTick = StorageValue<_, BlockNumberFor, ValueQuery>; + + /// A mapping from challenge tick to a vector of challenged Providers for that tick. + /// + /// This is used to keep track of the Providers that have been challenged, and should + /// submit a proof by the time of the [`ChallengesTicker`] reaches the number used as + /// key in the mapping. Providers who do submit a proof are removed from their respective + /// entry and pushed forward to the next tick in which they should submit a proof. + /// Those who are still in the entry by the time the tick is reached are considered to + /// have failed to submit a proof and subject to slashing. + #[pallet::storage] + pub type TickToProvidersDeadlines = StorageDoubleMap< + _, + Blake2_128Concat, + BlockNumberFor, + Blake2_128Concat, + ProviderIdFor, + (), + >; + + /// A mapping from a Provider to the last tick for which they SHOULD have submitted a proof. + /// If for a Provider `p`, `LastTickProviderSubmittedAProofFor[p]` is `n`, then the + /// Provider should submit a proof for tick `n + stake_to_challenge_period(p)`. + /// + /// This gets updated when a Provider submits a proof successfully and is used to determine the + /// next tick for which the Provider should submit a proof, and it's deadline. + /// + /// If the Provider fails to submit a proof in time and is slashed, this will still get updated + /// to the tick it should have submitted a proof for. + #[pallet::storage] + pub type LastTickProviderSubmittedAProofFor = + StorageMap<_, Blake2_128Concat, ProviderIdFor, BlockNumberFor>; + + /// A queue of keys that have been challenged manually. + /// + /// The elements in this queue will be challenged in the coming blocks, + /// always ensuring that the maximum number of challenges per block is not exceeded. + /// A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait + /// is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. + #[pallet::storage] + pub type ChallengesQueue = + StorageValue<_, BoundedVec, ChallengesQueueLengthFor>, ValueQuery>; + + /// A priority queue of keys that have been challenged manually. + /// + /// The difference between this and `ChallengesQueue` is that the challenges + /// in this queue are given priority over the others. So this queue should be + /// emptied before any of the challenges in the `ChallengesQueue` are dispatched. + /// This queue should not be accessible to the public. + /// The elements in this queue will be challenged in the coming blocks, + /// always ensuring that the maximum number of challenges per block is not exceeded. + /// A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait + /// is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. + #[pallet::storage] + pub type PriorityChallengesQueue = StorageValue< + _, + BoundedVec<(KeyFor, Option), ChallengesQueueLengthFor>, + ValueQuery, + >; + + /// A counter of blocks in which challenges were distributed. + /// + /// This counter is not necessarily the same as the block number, as challenges are + /// distributed in the `on_poll` hook, which happens at the beginning of every block, + /// so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). + /// During MBMsm, the block number increases, but [`ChallengesTicker`] does not. + #[pallet::storage] + pub type ChallengesTicker = StorageValue<_, BlockNumberFor, ValueQuery>; + + #[pallet::storage] + pub type SlashableProviders = StorageMap<_, Blake2_128Concat, ProviderIdFor, u32>; + + /// A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. + /// + /// This is used to keep track of the Providers that have submitted proofs in the last few + /// ticks, where availability only up to the last [`Config::TargetTicksStorageOfSubmitters`] ticks is guaranteed. + /// This storage is then made available for other pallets to use through the `ProofSubmittersInterface`. + #[pallet::storage] + #[pallet::getter(fn valid_proof_submitters_last_ticks)] + pub type ValidProofSubmittersLastTicks = StorageMap< + _, + Blake2_128Concat, + BlockNumberFor, + BoundedBTreeSet, T::MaxSubmittersPerTick>, + >; + + /// A value that represents the last tick that was deleted from the [`ValidProofSubmittersLastTicks`] StorageMap. + /// + /// This is used to know which tick to delete from the [`ValidProofSubmittersLastTicks`] StorageMap when the + /// `on_idle` hook is called. + #[pallet::storage] + #[pallet::getter(fn last_deleted_tick)] + pub type LastDeletedTick = StorageValue<_, BlockNumberFor, ValueQuery>; + + /// A boolean that represents whether the [`ChallengesTicker`] is paused. + /// + /// By default, this is `false`, meaning that the [`ChallengesTicker`] is incremented every time `on_poll` is called. + /// This can be set to `true` which would pause the [`ChallengesTicker`], preventing `do_new_challenges_round` from + /// being executed. Therefore: + /// - No new random challenges would be emitted and added to [`TickToChallengesSeed`]. + /// - No new checkpoint challenges would be emitted and added to [`TickToCheckpointChallenges`]. + /// - Deadlines for proof submissions are indefinitely postponed. + #[pallet::storage] + #[pallet::getter(fn challenges_ticker_paused)] + pub type ChallengesTickerPaused = StorageValue<_, ()>; + + /// A mapping from block number to the weight used in that block. + /// + /// This is used to check if the network is presumably under a spam attack. + /// It is cleared for blocks older than `current_block` - ([`Config::BlockFullnessPeriod`] + 1). + #[pallet::storage] + #[pallet::getter(fn past_blocks_fullness)] + pub type PastBlocksWeight = + StorageMap<_, Blake2_128Concat, BlockNumberFor, Weight>; + + /// The number of blocks that have been considered _not_ full in the last [`Config::BlockFullnessPeriod`]. + /// + /// This is used to check if the network is presumably under a spam attack. + #[pallet::storage] + #[pallet::getter(fn not_full_blocks_count)] + pub type NotFullBlocksCount = StorageValue<_, BlockNumberFor, ValueQuery>; + + // Pallets use events to inform users when important changes are made. + // https://docs.substrate.io/v3/runtime/events-and-errors + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// A manual challenge was submitted. + NewChallenge { + who: AccountIdFor, + key_challenged: KeyFor, + }, + + /// A proof was accepted. + ProofAccepted { + provider: ProviderIdFor, + proof: Proof, + }, + + /// A new challenge seed was generated. + NewChallengeSeed { + challenges_ticker: BlockNumberFor, + seed: RandomnessOutputFor, + }, + + /// A new checkpoint challenge was generated. + NewCheckpointChallenge { + challenges_ticker: BlockNumberFor, + challenges: BoundedVec< + (KeyFor, Option), + MaxCustomChallengesPerBlockFor, + >, + }, + + /// A provider was marked as slashable and their challenge deadline was forcefully pushed. + SlashableProvider { + provider: ProviderIdFor, + next_challenge_deadline: BlockNumberFor, + }, + + /// No record of the last tick the Provider submitted a proof for. + NoRecordOfLastSubmittedProof { provider: ProviderIdFor }, + + /// A provider's challenge cycle was initialised. + NewChallengeCycleInitialised { + current_tick: BlockNumberFor, + next_challenge_deadline: BlockNumberFor, + provider: ProviderIdFor, + maybe_provider_account: Option, + }, + + /// A set of mutations has been applied to the Forest. + MutationsApplied { + provider: ProviderIdFor, + mutations: Vec<(KeyFor, TrieRemoveMutation)>, + new_root: KeyFor, + }, + + /// The [`ChallengesTicker`] has been paused or unpaused. + ChallengesTickerSet { paused: bool }, + } + + // Errors inform users that something went wrong. + #[pallet::error] + pub enum Error { + /// General errors + + /// The proof submitter is not a registered Provider. + NotProvider, + + /// `challenge` extrinsic errors + + /// The ChallengesQueue is full. No more manual challenges can be made + /// until some of the challenges in the queue are dispatched. + ChallengesQueueOverflow, + + /// The PriorityChallengesQueue is full. No more priority challenges can be made + /// until some of the challenges in the queue are dispatched. + PriorityChallengesQueueOverflow, + + /// The fee for submitting a challenge could not be charged. + FeeChargeFailed, + + /// `submit_proof` extrinsic errors + + /// There are no key proofs submitted. + EmptyKeyProofs, + + /// The root for the Provider could not be found. + ProviderRootNotFound, + + /// Provider is submitting a proof when they have a zero root. + /// Providers with zero roots are not providing any service, so they should not be + /// submitting proofs. + ZeroRoot, + + /// Provider is submitting a proof but there is no record of the last tick they + /// submitted a proof for. + /// Providers who are required to submit proofs should always have a record of the + /// last tick they submitted a proof for, otherwise it means they haven't started + /// providing service for any user yet. + NoRecordOfLastSubmittedProof, + + /// The provider stake could not be found. + ProviderStakeNotFound, + + /// Provider is submitting a proof but their stake is zero. + ZeroStake, + + /// The staked balance of the Provider could not be converted to `u128`. + /// This should not be possible, as the `Balance` type should be an unsigned integer type. + StakeCouldNotBeConverted, + + /// Provider is submitting a proof for a tick in the future. + ChallengesTickNotReached, + + /// Provider is submitting a proof for a tick before the last tick this pallet registers + /// challenges for. + ChallengesTickTooOld, + + /// Provider is submitting a proof for a tick too late, i.e. that the challenges tick + /// is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. + ChallengesTickTooLate, + + /// The seed for the tick could not be found. + /// This should not be possible for a tick within the `ChallengeHistoryLength` range, as + /// seeds are generated for all ticks, and stored within this range. + SeedNotFound, + + /// Checkpoint challenges not found in block. + /// This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick + /// that is not a checkpoint tick. + CheckpointChallengesNotFound, + + /// The forest proof submitted by the Provider is invalid. + /// This could be because the proof is not valid for the root, or because the proof is + /// not sufficient for the challenges made. + ForestProofVerificationFailed, + + /// There is at least one key proven in the forest proof, that does not have a corresponding + /// key proof. + KeyProofNotFound, + + /// A key proof submitted by the Provider is invalid. + /// This could be because the proof is not valid for the root of that key, or because the proof + /// is not sufficient for the challenges made. + KeyProofVerificationFailed, + + /// Failed to apply delta to the forest proof partial trie. + FailedToApplyDelta, + + /// Failed to update the provider after a key removal mutation. + FailedToUpdateProviderAfterKeyRemoval, + + /// The limit of Providers that can submit a proof in a single tick has been reached. + TooManyValidProofSubmitters, + } + + #[pallet::call] + impl Pallet { + /// Introduce a new challenge. + /// + /// This function allows anyone to add a new challenge to the `ChallengesQueue`. + /// The challenge will be dispatched in the coming blocks. + /// Users are charged a small fee for submitting a challenge, which + /// goes to the Treasury. + #[pallet::call_index(0)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn challenge(origin: OriginFor, key: KeyFor) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + Self::do_challenge(&who, &key)?; + + // Emit event. + Self::deposit_event(Event::NewChallenge { + who, + key_challenged: key, + }); + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// For a Provider to submit a proof. + /// + /// Checks that `provider` is a registered Provider. If none + /// is provided, the proof submitter is considered to be the Provider. + /// Relies on a Providers pallet to get the root for the Provider. + /// Validates that the proof corresponds to a challenge that was made in the past, + /// by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the + /// Provider should have submitted a proof is calculated based on the last tick they + /// submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for + /// that Provider, which is a function of their stake. + /// This extrinsic also checks that there hasn't been a checkpoint challenge round + /// in between the last time the Provider submitted a proof for and the tick + /// for which the proof is being submitted. If there has been, the Provider is + /// subject to slashing. + /// + /// If valid: + /// - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number + /// of ticks corresponding to the stake of the Provider. + /// - Registers this tick as the last tick in which the Provider submitted a proof. + /// + /// Execution of this extrinsic should be refunded if the proof is valid. + #[pallet::call_index(1)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn submit_proof( + origin: OriginFor, + proof: Proof, + provider: Option>, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Getting provider from the origin if none is provided. + let provider = match provider { + Some(provider) => provider, + None => { + let sp = T::ProvidersPallet::get_provider_id(who.clone()) + .ok_or(Error::::NotProvider)?; + sp + } + }; + + Self::do_submit_proof(&provider, &proof)?; + + // Emit event. + Self::deposit_event(Event::ProofAccepted { provider, proof }); + + // Return a successful DispatchResultWithPostInfo. + // If the proof is valid, the execution of this extrinsic should be refunded. + Ok(Pays::No.into()) + } + + /// Initialise a Provider's challenge cycle. + /// + /// Only callable by sudo. + /// + /// Sets the last tick the Provider submitted a proof for to the current tick, and sets the + /// deadline for submitting a proof to the current tick + the Provider's period + the tolerance. + #[pallet::call_index(2)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn force_initialise_challenge_cycle( + origin: OriginFor, + provider: ProviderIdFor, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was executed by the root origin. + ensure_root(origin)?; + + // Execute checks and logic, update storage. + ::initialise_challenge_cycle(&provider)?; + + // Return a successful DispatchResultWithPostInfo. + Ok(Pays::No.into()) + } + + /// Set the [`ChallengesTickerPaused`] to `true` or `false`. + /// + /// Only callable by sudo. + #[pallet::call_index(3)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn set_paused(origin: OriginFor, paused: bool) -> DispatchResultWithPostInfo { + // Check that the extrinsic was executed by the root origin. + ensure_root(origin)?; + + if paused { + ChallengesTickerPaused::::set(Some(())); + } else { + ChallengesTickerPaused::::set(None); + } + + // Emit the corresponding event. + Self::deposit_event(Event::::ChallengesTickerSet { paused }); + + // Return a successful DispatchResultWithPostInfo. + Ok(Pays::No.into()) + } + } + + #[pallet::hooks] + impl Hooks> for Pallet { + /// This hook is used to generate new challenges. + /// + /// It will be called at the beginning of every block, if the block is not being part of a + /// [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). + /// For more information on the lifecycle of the block and its hooks, see the [Substrate + /// documentation](https://paritytech.github.io/polkadot-sdk/master/frame_support/traits/trait.Hooks.html#method.on_poll). + fn on_poll(_n: BlockNumberFor, weight: &mut frame_support::weights::WeightMeter) { + // TODO: Benchmark computational weight cost of this hook. + + // Only execute the `do_new_challenges_round` if the `ChallengesTicker` is not paused. + if ChallengesTickerPaused::::get().is_none() { + Self::do_new_challenges_round(weight); + } + + // Check if the network is presumably under a spam attack. + // If so, `ChallengesTicker` will be paused. + // This check is done "a posteriori", meaning that we first increment the `ChallengesTicker`, send out challenges + // and slash Providers if in the last block we didn't consider the network to be under spam. + // Then if at this block we consider the network to be under spam, we pause the `ChallengesTicker`, which will not + // be incremented in the next block. + Self::do_check_spamming_condition(weight); + } + + /// This hook is called on block initialization and returns the Weight of the `on_finalize` hook to + /// let block builders know how much weight to reserve for it + /// TODO: Benchmark on_finalize to get its weight and replace the placeholder weight for that + fn on_initialize(_n: BlockNumberFor) -> Weight { + Weight::from_parts(10_000, 0) + T::DbWeight::get().reads_writes(0, 2) + } + + fn on_finalize(block_number: BlockNumberFor) { + // Get weight usage in this block so far, for the dispatch class of `submit_proof` extrinsics. + let weight_used = frame_system::Pallet::::block_weight(); + let weight_used_for_class = weight_used.get(DispatchClass::Normal); + + // Store the weight usage in this block. + PastBlocksWeight::::insert(block_number, weight_used_for_class); + + // Get the oldest block weight registered. + let block_fullness_period = T::BlockFullnessPeriod::get(); + + // Clear the storage for block at `current_block` - (`BlockFullnessPeriod` + 1). + if let Some(oldest_block_fullness_number) = + block_number.checked_sub(&block_fullness_period.saturating_add(1u32.into())) + { + // If it is older than `BlockFullnessPeriod` + 1, we clear the storage. + PastBlocksWeight::::remove(oldest_block_fullness_number); + } + } + + /// This integrity test checks that: + /// 1. `CheckpointChallengePeriod` is greater or equal to the longest period a Provider can have. + /// 2. `BlockFullnessPeriod` is smaller or equal than `ChallengeTicksTolerance`. + /// + /// Any code located in this hook is placed in an auto-generated test, and generated as a part + /// of crate::construct_runtime's expansion. + /// Look for a test case with a name along the lines of: __construct_runtime_integrity_test. + fn integrity_test() { + // Calculate longest period a Provider can have. + // That would be the period of the Provider with the minimum stake. + let min_stake = T::ProvidersPallet::get_min_stake(); + let max_period = Self::stake_to_challenge_period(min_stake); + + // Check that `CheckpointChallengePeriod` is greater or equal to the longest period a Provider can have. + assert!( + T::CheckpointChallengePeriod::get() >= max_period, + "CheckpointChallengePeriod ({:?}) const in ProofsDealer pallet should be greater or equal than the longest period a Provider can have ({:?}).", + T::CheckpointChallengePeriod::get(), + max_period + ); + + // Check that `BlockFullnessPeriod` is smaller or equal than `ChallengeTicksTolerance`. + assert!( + T::BlockFullnessPeriod::get() <= T::ChallengeTicksTolerance::get(), + "BlockFullnessPeriod const ({:?}) in ProofsDealer pallet should be smaller or equal than ChallengeTicksTolerance ({:?}).", + T::BlockFullnessPeriod::get(), + T::ChallengeTicksTolerance::get() + ); + } + + /// This hook is used to trim down the `ValidProofSubmittersLastTicks` StorageMap up to the `TargetTicksOfProofsStorage`. + /// + /// It runs when the block is being finalized (but before the `on_finalize` hook) and can consume all remaining weight. + /// It returns the used weight, so it can be used to calculate the remaining weight for the block for any other + /// pallets that have `on_idle` hooks. + fn on_idle(n: BlockNumberFor, weight: Weight) -> Weight { + // TODO: Benchmark computational and proof size weight cost of this hook. + Self::do_trim_valid_proof_submitters_last_ticks(n, weight) + } + } +} diff --git a/pallets/proofs-dealer/src/mock.rs b/pallets/proofs-dealer/src/mock.rs index 801428b44..bc6fef048 100644 --- a/pallets/proofs-dealer/src/mock.rs +++ b/pallets/proofs-dealer/src/mock.rs @@ -1,382 +1,382 @@ -#![allow(non_camel_case_types)] - -use codec::{Decode, Encode}; -use core::marker::PhantomData; -use frame_support::{ - derive_impl, - pallet_prelude::Get, - parameter_types, - traits::{Everything, Randomness}, - weights::{constants::RocksDbWeight, Weight}, - BoundedBTreeSet, -}; -use frame_system as system; -use shp_file_metadata::{FileMetadata, Fingerprint}; -use shp_traits::{ - CommitmentVerifier, MaybeDebug, ProofSubmittersInterface, TrieMutation, TrieProofDeltaApplier, -}; -use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Hasher, H256}; -use sp_runtime::{ - traits::{BlakeTwo256, Convert, IdentityLookup}, - BuildStorage, DispatchError, Perbill, SaturatedConversion, -}; -use sp_std::collections::btree_set::BTreeSet; -use sp_trie::{CompactProof, LayoutV1, MemoryDB, TrieConfiguration, TrieLayout}; -use system::pallet_prelude::BlockNumberFor; - -type Block = frame_system::mocking::MockBlock; -type Balance = u128; -type AccountId = u64; - -const EPOCH_DURATION_IN_BLOCKS: BlockNumberFor = 10; -const UNITS: Balance = 1_000_000_000_000; -pub(crate) const STAKE_TO_CHALLENGE_PERIOD: Balance = 100 * UNITS; - -// We mock the Randomness trait to use a simple randomness function when testing the pallet -const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumberFor = 3; -pub struct MockRandomness; -impl Randomness> for MockRandomness { - fn random(subject: &[u8]) -> (H256, BlockNumberFor) { - // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks - - // Concatenate the subject with the block number to get a unique hash for each block - let subject_concat_block = [ - subject, - &frame_system::Pallet::::block_number().to_le_bytes(), - ] - .concat(); - - let hashed_subject = blake2_256(&subject_concat_block); - - ( - H256::from_slice(&hashed_subject), - frame_system::Pallet::::block_number() - .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), - ) - } -} - -// Configure a mock runtime to test the pallet. -frame_support::construct_runtime!( - pub enum Test - { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - Providers: pallet_storage_providers::{Pallet, Call, Storage, Event, HoldReason}, - ProofsDealer: crate::{Pallet, Call, Storage, Event}, - PaymentStreams: pallet_payment_streams::{Pallet, Call, Storage, Event, HoldReason}, - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; -} - -#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = RocksDbWeight; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = SS58Prefix; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = RuntimeFreezeReason; - type FreezeIdentifier = (); - type MaxFreezes = ConstU32<10>; -} - -pub type HasherOutT = <::Hash as Hasher>::Out; -pub struct DefaultMerkleRoot(PhantomData); -impl Get> for DefaultMerkleRoot { - fn get() -> HasherOutT { - sp_trie::empty_trie_root::() - } -} - -pub struct TreasuryAccount; -impl Get for TreasuryAccount { - fn get() -> AccountId { - 0 - } -} - -// Payment streams pallet: -impl pallet_payment_streams::Config for Test { - type RuntimeEvent = RuntimeEvent; - type NativeBalance = Balances; - type ProvidersPallet = Providers; - type RuntimeHoldReason = RuntimeHoldReason; - type Units = u64; - type NewStreamDeposit = ConstU64<10>; - type UserWithoutFundsCooldown = ConstU64<100>; - type BlockNumberToBalance = BlockNumberToBalance; - type ProvidersProofSubmitters = MockSubmittingProviders; -} -// Converter from the BlockNumber type to the Balance type for math -pub struct BlockNumberToBalance; -impl Convert, Balance> for BlockNumberToBalance { - fn convert(block_number: BlockNumberFor) -> Balance { - block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type - } -} - -// Storage Providers pallet: -impl pallet_storage_providers::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersRandomness = MockRandomness; - type PaymentStreams = PaymentStreams; - type FileMetadataManager = MockFileMetadataManager; - type NativeBalance = Balances; - type RuntimeHoldReason = RuntimeHoldReason; - type StorageDataUnit = u64; - type SpCount = u32; - type MerklePatriciaRoot = H256; - type ValuePropId = H256; - type ReadAccessGroupId = u32; - type ProvidersProofSubmitters = MockSubmittingProviders; - type ReputationWeightType = u32; - type Treasury = TreasuryAccount; - type SpMinDeposit = ConstU128<{ 10 * UNITS }>; - type SpMinCapacity = ConstU64<2>; - type DepositPerData = ConstU128<2>; - type MaxFileSize = ConstU64<{ u64::MAX }>; - type MaxMultiAddressSize = ConstU32<100>; - type MaxMultiAddressAmount = ConstU32<5>; - type MaxProtocols = ConstU32<100>; - type MaxBuckets = ConstU32<10000>; - type BucketDeposit = ConstU128<10>; - type BucketNameLimit = ConstU32<100>; - type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; - type MinBlocksBetweenCapacityChanges = ConstU64<10>; - type DefaultMerkleRoot = DefaultMerkleRoot>; - type SlashAmountPerMaxFileSize = ConstU128<10>; - type StartingReputationWeight = ConstU32<1>; -} - -// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. -pub struct MockSubmittingProviders; -impl ProofSubmittersInterface for MockSubmittingProviders { - type ProviderId = ::Hash; - type TickNumber = BlockNumberFor; - type MaxProofSubmitters = ConstU32<1000>; - fn get_proof_submitters_for_tick( - _block_number: &Self::TickNumber, - ) -> Option> { - None - } - - fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { - None - } - - fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} -} - -pub struct MockFileMetadataManager; -impl shp_traits::FileMetadataInterface for MockFileMetadataManager { - type AccountId = AccountId; - type Metadata = FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - >; - type StorageDataUnit = u64; - - fn encode(metadata: &Self::Metadata) -> Vec { - metadata.encode() - } - - fn decode(data: &[u8]) -> Result { - as Decode>::decode(&mut &data[..]) - } - - fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { - metadata.file_size - } - - fn get_file_owner(metadata: &Self::Metadata) -> Result { - Self::AccountId::decode(&mut metadata.owner.as_slice()) - } -} - -pub struct BlockFullnessHeadroom; -impl Get for BlockFullnessHeadroom { - fn get() -> Weight { - Weight::from_parts(10_000, 0) - + ::DbWeight::get().reads_writes(0, 1) - } -} - -pub struct MinNotFullBlocksRatio; -impl Get for MinNotFullBlocksRatio { - fn get() -> Perbill { - Perbill::from_percent(50) - } -} - -impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersPallet = Providers; - type NativeBalance = Balances; - type MerkleTrieHash = H256; - type MerkleTrieHashing = BlakeTwo256; - type ForestVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; - type KeyVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; - type StakeToBlockNumber = SaturatingBalanceToBlockNumber; - type RandomChallengesPerBlock = ConstU32<10>; - type MaxCustomChallengesPerBlock = ConstU32<10>; - type MaxSubmittersPerTick = ConstU32<1000>; // TODO: Change this value after benchmarking for it to coincide with the implicit limit given by maximum block weight - type TargetTicksStorageOfSubmitters = ConstU32<3>; - type ChallengeHistoryLength = ConstU64<30>; - type ChallengesQueueLength = ConstU32<25>; - type CheckpointChallengePeriod = ConstU64<20>; - type ChallengesFee = ConstU128<1_000_000>; - type Treasury = ConstU64<181222>; - type RandomnessProvider = MockRandomness; - type StakeToChallengePeriod = ConstU128; - type MinChallengePeriod = ConstU64<4>; - type ChallengeTicksTolerance = ConstU64<10>; - type BlockFullnessPeriod = ConstU64<10>; - type BlockFullnessHeadroom = BlockFullnessHeadroom; - type MinNotFullBlocksRatio = MinNotFullBlocksRatio; -} - -/// Structure to mock a verifier that returns `true` when `proof` is not empty -/// and `false` otherwise. -pub struct MockVerifier { - _phantom: core::marker::PhantomData<(C, T)>, -} - -/// Implement the `TrieVerifier` trait for the `MockForestManager` struct. -impl CommitmentVerifier for MockVerifier -where - C: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>, -{ - type Proof = CompactProof; - type Commitment = H256; - type Challenge = C; - - fn verify_proof( - _root: &Self::Commitment, - challenges: &[Self::Challenge], - proof: &CompactProof, - ) -> Result, DispatchError> { - if proof.encoded_nodes.len() > 0 { - let challenges: BTreeSet = challenges.iter().cloned().collect(); - Ok(challenges) - } else { - Err("Proof is empty".into()) - } - } -} - -impl TrieProofDeltaApplier - for MockVerifier -where - ::Out: for<'a> TryFrom<&'a [u8; H_LENGTH]>, -{ - type Proof = CompactProof; - type Key = ::Out; - - fn apply_delta( - _root: &Self::Key, - mutations: &[(Self::Key, TrieMutation)], - _proof: &Self::Proof, - ) -> Result< - ( - MemoryDB, - Self::Key, - Vec<(Self::Key, Option>)>, - ), - DispatchError, - > { - let last_key = mutations.last().unwrap().0; - - let db = MemoryDB::::default(); - - let mutated_keys_and_values = mutations - .iter() - .map(|(key, mutation)| { - let value = match mutation { - TrieMutation::Add(add_mutation) => Some(add_mutation.value.clone()), - TrieMutation::Remove(_) => { - let file_metadata: FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - > = FileMetadata::new( - 1_u64.encode(), - blake2_256(b"bucket").as_ref().to_vec(), - b"path/to/file".to_vec(), - 1, - Fingerprint::default().into(), - ); - if key.as_ref() != [0; H_LENGTH] { - Some(file_metadata.encode()) - } else { - Some(vec![1, 2, 3, 4, 5, 6]) // We make it so the metadata is invalid for the empty key - } - } - }; - (*key, value) - }) - .collect(); - - // Return default db, the last key in mutations as the new root, and a - // vector holding the supposedly mutated keys and values, so it is deterministic for testing. - Ok((db, last_key, mutated_keys_and_values)) - } -} - -// Build genesis storage according to the mock runtime. -pub fn new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::::default() - .build_storage() - .unwrap() - .into() -} - -// Converter from the Balance type to the BlockNumber type for math. -// It performs a saturated conversion, so that the result is always a valid BlockNumber. -pub struct SaturatingBalanceToBlockNumber; - -impl Convert> for SaturatingBalanceToBlockNumber { - fn convert(block_number: Balance) -> BlockNumberFor { - block_number.saturated_into() - } -} +#![allow(non_camel_case_types)] + +use codec::{Decode, Encode}; +use core::marker::PhantomData; +use frame_support::{ + derive_impl, + pallet_prelude::Get, + parameter_types, + traits::{Everything, Randomness}, + weights::{constants::RocksDbWeight, Weight}, + BoundedBTreeSet, +}; +use frame_system as system; +use shp_file_metadata::{FileMetadata, Fingerprint}; +use shp_traits::{ + CommitmentVerifier, MaybeDebug, ProofSubmittersInterface, TrieMutation, TrieProofDeltaApplier, +}; +use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Hasher, H256}; +use sp_runtime::{ + traits::{BlakeTwo256, Convert, IdentityLookup}, + BuildStorage, DispatchError, Perbill, SaturatedConversion, +}; +use sp_std::collections::btree_set::BTreeSet; +use sp_trie::{CompactProof, LayoutV1, MemoryDB, TrieConfiguration, TrieLayout}; +use system::pallet_prelude::BlockNumberFor; + +type Block = frame_system::mocking::MockBlock; +type Balance = u128; +type AccountId = u64; + +const EPOCH_DURATION_IN_BLOCKS: BlockNumberFor = 10; +const UNITS: Balance = 1_000_000_000_000; +pub(crate) const STAKE_TO_CHALLENGE_PERIOD: Balance = 100 * UNITS; + +// We mock the Randomness trait to use a simple randomness function when testing the pallet +const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumberFor = 3; +pub struct MockRandomness; +impl Randomness> for MockRandomness { + fn random(subject: &[u8]) -> (H256, BlockNumberFor) { + // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks + + // Concatenate the subject with the block number to get a unique hash for each block + let subject_concat_block = [ + subject, + &frame_system::Pallet::::block_number().to_le_bytes(), + ] + .concat(); + + let hashed_subject = blake2_256(&subject_concat_block); + + ( + H256::from_slice(&hashed_subject), + frame_system::Pallet::::block_number() + .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), + ) + } +} + +// Configure a mock runtime to test the pallet. +frame_support::construct_runtime!( + pub enum Test + { + System: frame_system::{Pallet, Call, Config, Storage, Event}, + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, + Providers: pallet_storage_providers::{Pallet, Call, Storage, Event, HoldReason}, + ProofsDealer: crate::{Pallet, Call, Storage, Event}, + PaymentStreams: pallet_payment_streams::{Pallet, Call, Storage, Event, HoldReason}, + } +); + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 42; +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl system::Config for Test { + type BaseCallFilter = Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = RocksDbWeight; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Nonce = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_balances::Config for Test { + type Balance = Balance; + type DustRemoval = (); + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; + type WeightInfo = (); + type MaxLocks = ConstU32<10>; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = RuntimeFreezeReason; + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<10>; +} + +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} + +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + 0 + } +} + +// Payment streams pallet: +impl pallet_payment_streams::Config for Test { + type RuntimeEvent = RuntimeEvent; + type NativeBalance = Balances; + type ProvidersPallet = Providers; + type RuntimeHoldReason = RuntimeHoldReason; + type Units = u64; + type NewStreamDeposit = ConstU64<10>; + type UserWithoutFundsCooldown = ConstU64<100>; + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = MockSubmittingProviders; +} +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; +impl Convert, Balance> for BlockNumberToBalance { + fn convert(block_number: BlockNumberFor) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +// Storage Providers pallet: +impl pallet_storage_providers::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersRandomness = MockRandomness; + type PaymentStreams = PaymentStreams; + type FileMetadataManager = MockFileMetadataManager; + type NativeBalance = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type StorageDataUnit = u64; + type SpCount = u32; + type MerklePatriciaRoot = H256; + type ValuePropId = H256; + type ReadAccessGroupId = u32; + type ProvidersProofSubmitters = MockSubmittingProviders; + type ReputationWeightType = u32; + type Treasury = TreasuryAccount; + type SpMinDeposit = ConstU128<{ 10 * UNITS }>; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = ConstU32<100>; + type MaxMultiAddressAmount = ConstU32<5>; + type MaxProtocols = ConstU32<100>; + type MaxBuckets = ConstU32<10000>; + type BucketDeposit = ConstU128<10>; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; + type MinBlocksBetweenCapacityChanges = ConstU64<10>; + type DefaultMerkleRoot = DefaultMerkleRoot>; + type SlashAmountPerMaxFileSize = ConstU128<10>; + type StartingReputationWeight = ConstU32<1>; +} + +// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. +pub struct MockSubmittingProviders; +impl ProofSubmittersInterface for MockSubmittingProviders { + type ProviderId = ::Hash; + type TickNumber = BlockNumberFor; + type MaxProofSubmitters = ConstU32<1000>; + fn get_proof_submitters_for_tick( + _block_number: &Self::TickNumber, + ) -> Option> { + None + } + + fn get_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) -> Option { + None + } + + fn clear_accrued_failed_proof_submissions(_provider_id: &Self::ProviderId) {} +} + +pub struct MockFileMetadataManager; +impl shp_traits::FileMetadataInterface for MockFileMetadataManager { + type AccountId = AccountId; + type Metadata = FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type StorageDataUnit = u64; + + fn encode(metadata: &Self::Metadata) -> Vec { + metadata.encode() + } + + fn decode(data: &[u8]) -> Result { + as Decode>::decode(&mut &data[..]) + } + + fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { + metadata.file_size + } + + fn get_file_owner(metadata: &Self::Metadata) -> Result { + Self::AccountId::decode(&mut metadata.owner.as_slice()) + } +} + +pub struct BlockFullnessHeadroom; +impl Get for BlockFullnessHeadroom { + fn get() -> Weight { + Weight::from_parts(10_000, 0) + + ::DbWeight::get().reads_writes(0, 1) + } +} + +pub struct MinNotFullBlocksRatio; +impl Get for MinNotFullBlocksRatio { + fn get() -> Perbill { + Perbill::from_percent(50) + } +} + +impl crate::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersPallet = Providers; + type NativeBalance = Balances; + type MerkleTrieHash = H256; + type MerkleTrieHashing = BlakeTwo256; + type ForestVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; + type KeyVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; + type StakeToBlockNumber = SaturatingBalanceToBlockNumber; + type RandomChallengesPerBlock = ConstU32<10>; + type MaxCustomChallengesPerBlock = ConstU32<10>; + type MaxSubmittersPerTick = ConstU32<1000>; // TODO: Change this value after benchmarking for it to coincide with the implicit limit given by maximum block weight + type TargetTicksStorageOfSubmitters = ConstU32<3>; + type ChallengeHistoryLength = ConstU64<30>; + type ChallengesQueueLength = ConstU32<25>; + type CheckpointChallengePeriod = ConstU64<20>; + type ChallengesFee = ConstU128<1_000_000>; + type Treasury = ConstU64<181222>; + type RandomnessProvider = MockRandomness; + type StakeToChallengePeriod = ConstU128; + type MinChallengePeriod = ConstU64<4>; + type ChallengeTicksTolerance = ConstU64<10>; + type BlockFullnessPeriod = ConstU64<10>; + type BlockFullnessHeadroom = BlockFullnessHeadroom; + type MinNotFullBlocksRatio = MinNotFullBlocksRatio; +} + +/// Structure to mock a verifier that returns `true` when `proof` is not empty +/// and `false` otherwise. +pub struct MockVerifier { + _phantom: core::marker::PhantomData<(C, T)>, +} + +/// Implement the `TrieVerifier` trait for the `MockForestManager` struct. +impl CommitmentVerifier for MockVerifier +where + C: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>, +{ + type Proof = CompactProof; + type Commitment = H256; + type Challenge = C; + + fn verify_proof( + _root: &Self::Commitment, + challenges: &[Self::Challenge], + proof: &CompactProof, + ) -> Result, DispatchError> { + if proof.encoded_nodes.len() > 0 { + let challenges: BTreeSet = challenges.iter().cloned().collect(); + Ok(challenges) + } else { + Err("Proof is empty".into()) + } + } +} + +impl TrieProofDeltaApplier + for MockVerifier +where + ::Out: for<'a> TryFrom<&'a [u8; H_LENGTH]>, +{ + type Proof = CompactProof; + type Key = ::Out; + + fn apply_delta( + _root: &Self::Key, + mutations: &[(Self::Key, TrieMutation)], + _proof: &Self::Proof, + ) -> Result< + ( + MemoryDB, + Self::Key, + Vec<(Self::Key, Option>)>, + ), + DispatchError, + > { + let last_key = mutations.last().unwrap().0; + + let db = MemoryDB::::default(); + + let mutated_keys_and_values = mutations + .iter() + .map(|(key, mutation)| { + let value = match mutation { + TrieMutation::Add(add_mutation) => Some(add_mutation.value.clone()), + TrieMutation::Remove(_) => { + let file_metadata: FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + > = FileMetadata::new( + 1_u64.encode(), + blake2_256(b"bucket").as_ref().to_vec(), + b"path/to/file".to_vec(), + 1, + Fingerprint::default().into(), + ); + if key.as_ref() != [0; H_LENGTH] { + Some(file_metadata.encode()) + } else { + Some(vec![1, 2, 3, 4, 5, 6]) // We make it so the metadata is invalid for the empty key + } + } + }; + (*key, value) + }) + .collect(); + + // Return default db, the last key in mutations as the new root, and a + // vector holding the supposedly mutated keys and values, so it is deterministic for testing. + Ok((db, last_key, mutated_keys_and_values)) + } +} + +// Build genesis storage according to the mock runtime. +pub fn new_test_ext() -> sp_io::TestExternalities { + system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into() +} + +// Converter from the Balance type to the BlockNumber type for math. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct SaturatingBalanceToBlockNumber; + +impl Convert> for SaturatingBalanceToBlockNumber { + fn convert(block_number: Balance) -> BlockNumberFor { + block_number.saturated_into() + } +} diff --git a/pallets/proofs-dealer/src/tests.rs b/pallets/proofs-dealer/src/tests.rs index 8f990bf45..70106aed3 100644 --- a/pallets/proofs-dealer/src/tests.rs +++ b/pallets/proofs-dealer/src/tests.rs @@ -1,4395 +1,4395 @@ -use std::{collections::BTreeMap, vec}; - -use codec::Encode; -use frame_support::{ - assert_err, assert_noop, assert_ok, - dispatch::DispatchClass, - pallet_prelude::Weight, - traits::{ - fungible::{Mutate, MutateHold}, - OnFinalize, OnIdle, OnPoll, - }, - weights::WeightMeter, - BoundedBTreeSet, -}; -use frame_system::{ - limits::BlockWeights, pallet_prelude::BlockNumberFor, BlockWeight, ConsumedWeight, -}; -use pallet_storage_providers::HoldReason; -use shp_traits::{ProofsDealerInterface, ReadChallengeableProvidersInterface, TrieRemoveMutation}; -use sp_core::{blake2_256, Get, Hasher, H256}; -use sp_runtime::{ - traits::{BlakeTwo256, Zero}, - BoundedVec, DispatchError, -}; -use sp_trie::CompactProof; - -use crate::{ - mock::*, - pallet::Event, - types::{ - BlockFullnessHeadroomFor, BlockFullnessPeriodFor, ChallengeHistoryLengthFor, - ChallengeTicksToleranceFor, ChallengesQueueLengthFor, CheckpointChallengePeriodFor, - KeyProof, MaxCustomChallengesPerBlockFor, MaxSubmittersPerTickFor, MinChallengePeriodFor, - MinNotFullBlocksRatioFor, Proof, ProviderIdFor, ProvidersPalletFor, - RandomChallengesPerBlockFor, StakeToChallengePeriodFor, TargetTicksStorageOfSubmittersFor, - }, - ChallengesTicker, ChallengesTickerPaused, LastCheckpointTick, LastDeletedTick, - LastTickProviderSubmittedAProofFor, NotFullBlocksCount, SlashableProviders, - TickToChallengesSeed, TickToCheckpointChallenges, TickToProvidersDeadlines, - ValidProofSubmittersLastTicks, -}; - -fn run_to_block(n: u64) { - while System::block_number() < n { - System::set_block_number(System::block_number() + 1); - - // Trigger on_poll hook execution. - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Set weight used to be zero. - let zero_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => Zero::zero(), - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(zero_block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - } -} - -fn run_to_block_spammed(n: u64) { - while System::block_number() < n { - System::set_block_number(System::block_number() + 1); - - // Trigger on_poll hook execution. - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Fill up block. - let weights: BlockWeights = ::BlockWeights::get(); - let max_weight_normal = weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block); - let block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => max_weight_normal, - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - } -} - -#[test] -fn challenge_submit_succeed() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Dispatch challenge extrinsic. - assert_ok!(ProofsDealer::challenge(user, file_key)); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewChallenge { - who: 1, - key_challenged: file_key, - } - .into(), - ); - - // Check user's balance after challenge. - let challenge_fee: u128 = ::ChallengesFee::get(); - assert_eq!( - ::NativeBalance::usable_balance(&1), - user_balance - challenge_fee - ); - - // Check that the challenge is in the queue. - let challenges_queue = crate::ChallengesQueue::::get(); - assert_eq!(challenges_queue.len(), 1); - assert_eq!(challenges_queue[0], file_key); - }); -} - -#[test] -fn challenge_submit_twice_succeed() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create two users and add funds to the accounts. - let user_1 = RuntimeOrigin::signed(1); - let user_2 = RuntimeOrigin::signed(2); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - assert_ok!(::NativeBalance::mint_into( - &2, - user_balance - )); - - // Mock two FileKeys. - let file_key_1 = BlakeTwo256::hash(b"file_key_1"); - let file_key_2 = BlakeTwo256::hash(b"file_key_2"); - - // Dispatch challenge extrinsic twice. - assert_ok!(ProofsDealer::challenge(user_1, file_key_1)); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewChallenge { - who: 1, - key_challenged: file_key_1, - } - .into(), - ); - - assert_ok!(ProofsDealer::challenge(user_2, file_key_2)); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewChallenge { - who: 2, - key_challenged: file_key_2, - } - .into(), - ); - - // Check users' balance after challenge. - let challenge_fee: u128 = ::ChallengesFee::get(); - assert_eq!( - ::NativeBalance::usable_balance(&1), - user_balance - challenge_fee - ); - assert_eq!( - ::NativeBalance::usable_balance(&2), - user_balance - challenge_fee - ); - - // Check that the challenge is in the queue. - let challenges_queue = crate::ChallengesQueue::::get(); - assert_eq!(challenges_queue.len(), 2); - assert_eq!(challenges_queue[0], file_key_1); - assert_eq!(challenges_queue[1], file_key_2); - }); -} - -#[test] -fn challenge_submit_existing_challenge_succeed() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Dispatch challenge extrinsic twice. - assert_ok!(ProofsDealer::challenge(user.clone(), file_key)); - assert_ok!(ProofsDealer::challenge(user, file_key)); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewChallenge { - who: 1, - key_challenged: file_key, - } - .into(), - ); - - // Check user's balance after challenge. - let challenge_fee: u128 = ::ChallengesFee::get(); - assert_eq!( - ::NativeBalance::usable_balance(&1), - user_balance - challenge_fee * 2 - ); - - // Check that the challenge is in the queue. - let challenges_queue = crate::ChallengesQueue::::get(); - assert_eq!(challenges_queue.len(), 1); - assert_eq!(challenges_queue[0], file_key); - }); -} - -#[test] -fn challenge_submit_in_two_rounds_succeed() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Dispatch challenge extrinsic twice. - assert_ok!(ProofsDealer::challenge(user.clone(), file_key)); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewChallenge { - who: 1, - key_challenged: file_key, - } - .into(), - ); - - // Check user's balance after challenge. - let challenge_fee: u128 = ::ChallengesFee::get(); - assert_eq!( - ::NativeBalance::usable_balance(&1), - user_balance - challenge_fee - ); - - // Check that the challenge is in the queue. - let challenges_queue = crate::ChallengesQueue::::get(); - assert_eq!(challenges_queue.len(), 1); - assert_eq!(challenges_queue[0], file_key); - - // Advance `CheckpointChallengePeriod` blocks. - let challenge_period: u64 = ::CheckpointChallengePeriod::get(); - run_to_block(challenge_period as u64 + 1); - - // Dispatch challenge extrinsic twice. - let file_key = BlakeTwo256::hash(b"file_key_2"); - assert_ok!(ProofsDealer::challenge(user, file_key)); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewChallenge { - who: 1, - key_challenged: file_key, - } - .into(), - ); - - // Check user's balance after challenge. - assert_eq!( - ::NativeBalance::usable_balance(&1), - user_balance - challenge_fee * 2 - ); - }); -} - -#[test] -fn challenge_wrong_origin_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Dispatch challenge extrinsic with wrong origin. - assert_noop!( - ProofsDealer::challenge(RuntimeOrigin::none(), file_key), - DispatchError::BadOrigin - ); - }); -} - -#[test] -fn challenge_submit_by_regular_user_with_no_funds_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user with no funds. - let user = RuntimeOrigin::signed(1); - - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::challenge(user, file_key), - crate::Error::::FeeChargeFailed - ); - }); -} - -#[test] -fn challenge_overflow_challenges_queue_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Fill the challenges queue. - let queue_size: u32 = ::ChallengesQueueLength::get(); - for i in 0..queue_size { - let file_key = BlakeTwo256::hash(&i.to_le_bytes()); - assert_ok!(ProofsDealer::challenge(user.clone(), file_key)); - } - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::challenge(user, file_key), - crate::Error::::ChallengesQueueOverflow - ); - }); -} - -#[test] -fn proofs_dealer_trait_challenge_succeed() { - new_test_ext().execute_with(|| { - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Challenge using trait. - ::challenge(&file_key).unwrap(); - - // Check that the challenge is in the queue. - let challenges_queue = crate::ChallengesQueue::::get(); - assert_eq!(challenges_queue.len(), 1); - assert_eq!(challenges_queue[0], file_key); - }); -} - -#[test] -fn proofs_dealer_trait_challenge_overflow_challenges_queue_fail() { - new_test_ext().execute_with(|| { - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Fill the challenges queue. - let queue_size: u32 = ::ChallengesQueueLength::get(); - for i in 0..queue_size { - let file_key = BlakeTwo256::hash(&i.to_le_bytes()); - assert_ok!(::challenge(&file_key)); - } - - // Dispatch challenge extrinsic. - assert_noop!( - ::challenge(&file_key), - crate::Error::::ChallengesQueueOverflow - ); - }); -} - -#[test] -fn proofs_dealer_trait_challenge_with_priority_succeed() { - new_test_ext().execute_with(|| { - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Challenge using trait. - ::challenge_with_priority( - &file_key, None, - ) - .unwrap(); - - // Check that the challenge is in the queue. - let priority_challenges_queue = crate::PriorityChallengesQueue::::get(); - assert_eq!(priority_challenges_queue.len(), 1); - assert_eq!(priority_challenges_queue[0], (file_key, None)); - }); -} - -#[test] -fn proofs_dealer_trait_challenge_with_priority_overflow_challenges_queue_fail() { - new_test_ext().execute_with(|| { - // Mock a FileKey. - let file_key = BlakeTwo256::hash(b"file_key"); - - // Fill the challenges queue. - let queue_size: u32 = ::ChallengesQueueLength::get(); - for i in 0..queue_size { - let file_key = BlakeTwo256::hash(&i.to_le_bytes()); - assert_ok!( - ::challenge_with_priority( - &file_key, None - ) - ); - } - - // Dispatch challenge extrinsic. - assert_noop!( - ::challenge_with_priority( - &file_key, None - ), - crate::Error::::PriorityChallengesQueueOverflow - ); - }); -} - -#[test] -fn proofs_dealer_trait_initialise_challenge_cycle_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Mock a Provider ID. - let provider_id = BlakeTwo256::hash(b"provider_id"); - - // Register user as a Provider in Providers pallet. - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to that Provider and hold some so it has a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - - // Dispatch initialise provider extrinsic. - assert_ok!(ProofsDealer::force_initialise_challenge_cycle( - RuntimeOrigin::root(), - provider_id - )); - - // Check that the Provider's last tick was set to 1. - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(&provider_id).unwrap(); - assert_eq!(last_tick_provider_submitted_proof, 1); - - // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` - // after the initialisation. - let stake = as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let expected_deadline = - last_tick_provider_submitted_proof + challenge_period_plus_tolerance; - let deadline = TickToProvidersDeadlines::::get(expected_deadline, provider_id); - assert_eq!(deadline, Some(())); - - // Check that the last event emitted is the correct one. - System::assert_last_event( - Event::NewChallengeCycleInitialised { - current_tick: 1, - next_challenge_deadline: expected_deadline, - provider: provider_id, - maybe_provider_account: Some(1u64), - } - .into(), - ); - }); -} - -#[test] -fn proofs_dealer_trait_initialise_challenge_cycle_already_initialised_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Mock a Provider ID. - let provider_id = BlakeTwo256::hash(b"provider_id"); - - // Register user as a Provider in Providers pallet. - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to that Provider and hold some so it has a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - - // Dispatch initialise provider extrinsic. - assert_ok!(ProofsDealer::force_initialise_challenge_cycle( - RuntimeOrigin::root(), - provider_id - )); - - // Check that the Provider's last tick was set to 1. - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(&provider_id).unwrap(); - assert_eq!(last_tick_provider_submitted_proof, 1); - - // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` - // after the initialisation. - let stake = as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = last_tick_provider_submitted_proof + challenge_period_plus_tolerance; - let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id); - assert_eq!(deadline, Some(())); - - // Let some blocks pass (less than `ChallengeTicksTolerance` blocks). - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Re-initialise the provider. - assert_ok!(ProofsDealer::force_initialise_challenge_cycle( - RuntimeOrigin::root(), - provider_id - )); - - // Check that the Provider's last tick is the current now. - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(&provider_id).unwrap(); - let current_tick = ChallengesTicker::::get(); - assert_eq!(last_tick_provider_submitted_proof, current_tick); - - // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` - // after the initialisation. - let stake = as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let expected_deadline = - last_tick_provider_submitted_proof + challenge_period_plus_tolerance; - let deadline = TickToProvidersDeadlines::::get(expected_deadline, provider_id); - assert_eq!(deadline, Some(())); - - // Check that the Provider no longer has the previous deadline. - let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id); - assert_eq!(deadline, None); - - // Advance beyond the previous deadline block and check that the Provider is not marked as slashable. - run_to_block(current_block + challenge_ticks_tolerance + 1); - - assert!(!SlashableProviders::::contains_key(&provider_id)); - }); -} - -#[test] -fn proofs_dealer_trait_initialise_challenge_cycle_already_initialised_and_new_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Mock two Provider IDs. - let provider_id_1 = BlakeTwo256::hash(b"provider_id_1"); - let provider_id_2 = BlakeTwo256::hash(b"provider_id_2"); - - // Register users as a Provider in Providers pallet. - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id_1, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id_1, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &2, - provider_id_2, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id_2, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 2u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to those Providers and hold some so they have a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::mint_into( - &2, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &2, - provider_balance / 100 - )); - - // Initialise providers - assert_ok!(ProofsDealer::initialise_challenge_cycle(&provider_id_1)); - assert_ok!(ProofsDealer::initialise_challenge_cycle(&provider_id_2)); - - // Check that the Providers' last tick was set to 1. - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(&provider_id_1).unwrap(); - assert_eq!(last_tick_provider_submitted_proof, 1); - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(&provider_id_2).unwrap(); - assert_eq!(last_tick_provider_submitted_proof, 1); - - // Check that Provider 1's deadline was set to `challenge_period + challenge_ticks_tolerance` - // after the initialisation. - let stake = as ReadChallengeableProvidersInterface>::get_stake( - provider_id_1, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = last_tick_provider_submitted_proof + challenge_period_plus_tolerance; - let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id_1); - assert_eq!(deadline, Some(())); - - // Let some blocks pass (less than `ChallengeTicksTolerance` blocks). - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Re-initialise the provider. - assert_ok!(ProofsDealer::initialise_challenge_cycle(&provider_id_1)); - - // Check that the Provider's last tick is the current now. - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(&provider_id_1).unwrap(); - let current_tick = ChallengesTicker::::get(); - assert_eq!(last_tick_provider_submitted_proof, current_tick); - - // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` - // after the initialisation. - let stake = as ReadChallengeableProvidersInterface>::get_stake( - provider_id_1, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let expected_deadline = - last_tick_provider_submitted_proof + challenge_period_plus_tolerance; - let deadline = TickToProvidersDeadlines::::get(expected_deadline, provider_id_1); - assert_eq!(deadline, Some(())); - - // Check that the Provider no longer has the previous deadline. - let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id_1); - assert_eq!(deadline, None); - - // Advance beyond the previous deadline block and check that the Provider is not marked as slashable. - run_to_block(current_block + challenge_ticks_tolerance + 1); - assert!(!SlashableProviders::::contains_key(&provider_id_1)); - }); -} - -#[test] -fn proofs_dealer_trait_initialise_challenge_cycle_not_provider_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Mock a Provider ID. - let provider_id = BlakeTwo256::hash(b"provider_id"); - - // Expect failure since the user is not a provider. - assert_noop!( - ProofsDealer::initialise_challenge_cycle(&provider_id), - crate::Error::::NotProvider - ); - }); -} - -#[test] -fn submit_proof_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - let current_tick = ChallengesTicker::::get(); - let last_tick_provider_submitted_proof = current_tick; - LastTickProviderSubmittedAProofFor::::insert( - &provider_id, - last_tick_provider_submitted_proof, - ); - - // Set Provider's deadline for submitting a proof. - // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = current_tick + challenge_period_plus_tolerance; - TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in challenges { - key_proofs.insert( - challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic. - assert_ok!(ProofsDealer::submit_proof(user, proof.clone(), None)); - - // Check for event submitted. - System::assert_last_event( - Event::ProofAccepted { - provider: provider_id, - proof, - } - .into(), - ); - - // Check the new last time this provider submitted a proof. - let expected_new_tick = last_tick_provider_submitted_proof + challenge_period; - let new_last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(provider_id).unwrap(); - assert_eq!(expected_new_tick, new_last_tick_provider_submitted_proof); - - // Check that the Provider's deadline was pushed forward. - assert_eq!( - TickToProvidersDeadlines::::get(prev_deadline, provider_id), - None - ); - let new_deadline = expected_new_tick + challenge_period + challenge_ticks_tolerance; - assert_eq!( - TickToProvidersDeadlines::::get(new_deadline, provider_id), - Some(()), - ); - }); -} - -#[test] -fn submit_proof_adds_provider_to_valid_submitters_set() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - let current_tick = ChallengesTicker::::get(); - let last_tick_provider_submitted_proof = current_tick; - LastTickProviderSubmittedAProofFor::::insert( - &provider_id, - last_tick_provider_submitted_proof, - ); - - // Set Provider's deadline for submitting a proof. - // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = current_tick + challenge_period_plus_tolerance; - TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); - - // Advance to the next challenge the Provider should listen to. - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in challenges { - key_proofs.insert( - challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic. - assert_ok!(ProofsDealer::submit_proof(user, proof.clone(), None)); - - // Check for event submitted. - System::assert_last_event( - Event::ProofAccepted { - provider: provider_id, - proof, - } - .into(), - ); - - // Check that the Provider is in the valid submitters set. - assert!( - ValidProofSubmittersLastTicks::::get(ChallengesTicker::::get()) - .unwrap() - .contains(&provider_id) - ); - }); -} - -#[test] -fn submit_proof_submitted_by_not_a_provider_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Register user as a Provider in Providers pallet. - // The registered Provider ID will be different from the one that will be used in the proof. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to that Provider and hold some so it has a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in challenges { - key_proofs.insert( - challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic. - assert_ok!(ProofsDealer::submit_proof( - RuntimeOrigin::signed(2), - proof, - Some(provider_id) - )); - }); -} - -#[test] -fn submit_proof_with_checkpoint_challenges_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof tick. - let last_tick_provider_submitted_proof = System::block_number(); - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let mut challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Set last checkpoint challenge block to be equal to the last tick this provider has submitted - // a proof for, so that custom challenges will be taken into account in proof verification. - let checkpoint_challenge_block = last_tick_provider_submitted_proof; - LastCheckpointTick::::set(checkpoint_challenge_block); - - // Make up custom challenges. - let custom_challenges = BoundedVec::try_from(vec![ - (BlakeTwo256::hash(b"custom_challenge_1"), None), - (BlakeTwo256::hash(b"custom_challenge_2"), None), - ]) - .unwrap(); - - // Set custom challenges in checkpoint block. - TickToCheckpointChallenges::::insert( - checkpoint_challenge_block, - custom_challenges.clone(), - ); - - // Add custom challenges to the challenges vector. - challenges.extend(custom_challenges.iter().map(|(challenge, _)| *challenge)); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in &challenges { - key_proofs.insert( - *challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic. - assert_ok!(ProofsDealer::submit_proof(user, proof, None)); - }); -} - -#[test] -fn submit_proof_with_checkpoint_challenges_mutations_success() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: 1000, - capacity_used: 100, - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Increment the used capacity of BSPs in the Providers pallet. - pallet_storage_providers::UsedBspsCapacity::::set(100); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Create a dynamic-rate payment stream between the user and the Provider. - pallet_payment_streams::DynamicRatePaymentStreams::::insert( - &provider_id, - &1, - pallet_payment_streams::types::DynamicRatePaymentStream { - amount_provided: 10, - price_index_when_last_charged: pallet_payment_streams::AccumulatedPriceIndex::::get(), - user_deposit: 10 * <::NewStreamDeposit as Get>::get() as u128 * pallet_payment_streams::CurrentPricePerUnitPerTick::::get(), - out_of_funds_tick: None, - }, - ); - - // Set Provider's last submitted proof tick. - let last_tick_provider_submitted_proof = System::block_number(); - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let mut challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Set last checkpoint challenge block to be equal to the last tick this provider has submitted - // a proof for, so that custom challenges will be taken into account in proof verification. - let checkpoint_challenge_block = last_tick_provider_submitted_proof; - LastCheckpointTick::::set(checkpoint_challenge_block); - - // Make up custom challenges. - let custom_challenges = BoundedVec::try_from(vec![ - ( - BlakeTwo256::hash(b"custom_challenge_1"), - Some(TrieRemoveMutation::default()), - ), - ( - BlakeTwo256::hash(b"custom_challenge_2"), - Some(TrieRemoveMutation::default()), - ), - ]) - .unwrap(); - - // Set custom challenges in checkpoint block. - TickToCheckpointChallenges::::insert( - checkpoint_challenge_block, - custom_challenges.clone(), - ); - - // Add custom challenges to the challenges vector. - challenges.extend(custom_challenges.iter().map(|(challenge, _)| *challenge)); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in &challenges { - key_proofs.insert( - *challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic. - assert_ok!(ProofsDealer::submit_proof(user, proof, None)); - - // Check that the event for mutations applied is emitted. - System::assert_has_event( - Event::MutationsApplied { - provider: provider_id, - mutations: custom_challenges - .iter() - .map(|(key, mutation)| (*key, mutation.clone().unwrap())) - .collect(), - new_root: challenges.last().unwrap().clone(), - } - .into(), - ); - - // Check if root of the provider was updated the last challenge key - // Note: The apply_delta method is applying the mutation the root of the provider for every challenge key. - // This is to avoid having to construct valid tries and proofs. - let root = - <::ProvidersPallet as ReadChallengeableProvidersInterface>::get_root(provider_id) - .unwrap(); - assert_eq!(root.as_ref(), challenges.last().unwrap().as_ref()); - }); -} - -#[test] -fn submit_proof_with_checkpoint_challenges_mutations_fails_if_decoded_metadata_is_invalid() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: 1000, - capacity_used: 100, - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Increment the used capacity of BSPs in the Providers pallet. - pallet_storage_providers::UsedBspsCapacity::::set(100); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Create a dynamic-rate payment stream between the user and the Provider. - pallet_payment_streams::DynamicRatePaymentStreams::::insert( - &provider_id, - &1, - pallet_payment_streams::types::DynamicRatePaymentStream { - amount_provided: 10, - price_index_when_last_charged: - pallet_payment_streams::AccumulatedPriceIndex::::get(), - user_deposit: 10 - * <::NewStreamDeposit as Get>::get( - ) as u128 - * pallet_payment_streams::CurrentPricePerUnitPerTick::::get(), - out_of_funds_tick: None, - }, - ); - - // Set Provider's last submitted proof tick. - let last_tick_provider_submitted_proof = System::block_number(); - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let mut challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Set last checkpoint challenge block to be equal to the last tick this provider has submitted - // a proof for, so that custom challenges will be taken into account in proof verification. - let checkpoint_challenge_block = last_tick_provider_submitted_proof; - LastCheckpointTick::::set(checkpoint_challenge_block); - - // Make up custom challenges. - let custom_challenges = BoundedVec::try_from(vec![ - ( - [0; BlakeTwo256::LENGTH].into(), // Challenge that will return invalid metadata - Some(TrieRemoveMutation::default()), - ), - ( - BlakeTwo256::hash(b"custom_challenge_2"), - Some(TrieRemoveMutation::default()), - ), - ]) - .unwrap(); - - // Set custom challenges in checkpoint block. - TickToCheckpointChallenges::::insert( - checkpoint_challenge_block, - custom_challenges.clone(), - ); - - // Add custom challenges to the challenges vector. - challenges.extend(custom_challenges.iter().map(|(challenge, _)| *challenge)); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in &challenges { - key_proofs.insert( - *challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic and it fails because of the invalid metadata. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::FailedToApplyDelta - ); - }); -} - -#[test] -fn submit_proof_caller_not_a_provider_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs: Default::default(), - }; - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::NotProvider - ); - }); -} - -#[test] -fn submit_proof_provider_passed_not_registered_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs: Default::default(), - }; - - // Creating a Provider ID but not registering it. - let provider_id = BlakeTwo256::hash(b"provider_id"); - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::submit_proof(user, proof, Some(provider_id)), - crate::Error::::NotProvider - ); - }); -} - -#[test] -fn submit_proof_empty_key_proofs_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs: Default::default(), - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::EmptyKeyProofs - ); - }); -} - -#[test] -fn submit_proof_no_record_of_last_proof_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::NoRecordOfLastSubmittedProof - ); - }); -} - -#[test] -fn submit_proof_challenges_block_not_reached_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, 1); - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::ChallengesTickNotReached - ); - }); -} - -#[test] -#[should_panic( - expected = "internal error: entered unreachable code: Challenges tick is too old, beyond the history this pallet keeps track of. This should not be possible." -)] -fn submit_proof_challenges_block_too_old_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, 1); - - // Advance more than `ChallengeHistoryLength` blocks. - let challenge_history_length: u64 = ChallengeHistoryLengthFor::::get(); - run_to_block(challenge_history_length * 2); - - // Dispatch challenge extrinsic. - let _ = ProofsDealer::submit_proof(user, proof, None); - }); -} - -#[test] -#[should_panic( - expected = "internal error: entered unreachable code: Seed for challenges tick not found, when checked it should be within history." -)] -fn submit_proof_seed_not_found_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, 1); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Remove challenge seed for challenge block. - TickToChallengesSeed::::remove(challenge_block); - - // Dispatch challenge extrinsic. - let _ = ProofsDealer::submit_proof(user, proof, None); - }); -} - -#[test] -#[should_panic( - expected = "internal error: entered unreachable code: Checkpoint challenges not found, when dereferencing in last registered checkpoint challenge block." -)] -fn submit_proof_checkpoint_challenge_not_found_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: (2 * 100) as u64, - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Set random seed for this block challenges. - let seed = BlakeTwo256::hash(b"seed"); - TickToChallengesSeed::::insert(System::block_number(), seed); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Set last checkpoint challenge block to something before the challenge tick - // that is being submitted. - let checkpoint_challenge_block = 1; - LastCheckpointTick::::set(checkpoint_challenge_block); - - // Dispatch challenge extrinsic. - let _ = ProofsDealer::submit_proof(user, proof, None); - }); -} - -#[test] -fn submit_proof_forest_proof_verification_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Mock key proofs. - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - - // Create an empty forest proof to fail verification. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Dispatch challenge extrinsic. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::ForestProofVerificationFailed - ); - }); -} - -#[test] -fn submit_proof_no_key_proofs_for_keys_verified_in_forest_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Creating empty key proof to fail verification. - let mut key_proofs = BTreeMap::new(); - key_proofs.insert( - BlakeTwo256::hash(b"key"), - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![], - }, - challenge_count: Default::default(), - }, - ); - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Dispatch challenge extrinsic. - // The forest proof will pass because it's not empty, so the MockVerifier will accept it, - // and it will return the generated challenges as keys proven. The key proofs are an empty - // vector, so it will fail saying that there are no key proofs for the keys proven. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::KeyProofNotFound - ); - }); -} - -#[test] -fn submit_proof_out_checkpoint_challenges_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Set random seed for this block challenges. - let seed = BlakeTwo256::hash(b"seed"); - TickToChallengesSeed::::insert(System::block_number(), seed); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Set last checkpoint challenge block. - let checkpoint_challenge_block = System::block_number() + 1; - LastCheckpointTick::::set(checkpoint_challenge_block); - - // Make up custom challenges. - let custom_challenges = BoundedVec::try_from(vec![ - (BlakeTwo256::hash(b"custom_challenge_1"), None), - (BlakeTwo256::hash(b"custom_challenge_2"), None), - ]) - .unwrap(); - - // Set custom challenges in checkpoint block. - TickToCheckpointChallenges::::insert( - checkpoint_challenge_block, - custom_challenges.clone(), - ); - - // Creating a vec of empty key proofs for each challenge, to fail verification. - let mut key_proofs = BTreeMap::new(); - for challenge in challenges { - key_proofs.insert( - challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Dispatch challenge extrinsic. - // The forest proof will pass because it's not empty, so the MockVerifier will accept it, - // and it will return the generated challenges as keys proven. The key proofs only contain - // proofs for the regular challenges, not the checkpoint challenges, so it will fail saying - // that there are no key proofs for the keys proven. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::KeyProofNotFound - ); - }); -} - -#[test] -fn submit_proof_key_proof_verification_fail() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Create user and add funds to the account. - let user = RuntimeOrigin::signed(1); - let user_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - user_balance - )); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Hold some of the Provider's balance so it simulates it having a stake. - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - user_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); - - // Advance to the next challenge the Provider should listen to. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for challenge block. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Creating a vec of empty key proofs for each challenge, to fail verification. - let mut key_proofs = BTreeMap::new(); - for challenge in challenges { - key_proofs.insert( - challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Dispatch challenge extrinsic. - // The forest proof will pass because it's not empty, so the MockVerifier will accept it, - // and it will return the generated challenges as keys proven. There will be key proofs - // for each key proven, but they are empty, so it will fail saying that the verification - // failed. - assert_noop!( - ProofsDealer::submit_proof(user, proof, None), - crate::Error::::KeyProofVerificationFailed - ); - }); -} - -#[test] -fn new_challenges_round_random_and_checkpoint_challenges() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Run a block and check that the random challenge was emitted. - run_to_block(2); - - // Build the expected random seed. - let challenges_ticker = ChallengesTicker::::get().encode(); - let challenges_ticker: &[u8] = challenges_ticker.as_ref(); - let subject = [challenges_ticker, &System::block_number().to_le_bytes()].concat(); - let hashed_subject = blake2_256(&subject); - let expected_seed = H256::from_slice(&hashed_subject); - - // Check that the event is emitted. - // This would be the first time the random seed is emitted. - System::assert_last_event( - Event::NewChallengeSeed { - challenges_ticker: 2, - seed: expected_seed, - } - .into(), - ); - - // Run another block and check that the random challenge was emitted. - run_to_block(3); - - // Build the expected random seed. - let challenges_ticker = ChallengesTicker::::get().encode(); - let challenges_ticker: &[u8] = challenges_ticker.as_ref(); - let subject: Vec = [ - challenges_ticker, - &frame_system::Pallet::::block_number().to_le_bytes(), - ] - .concat(); - let hashed_subject = blake2_256(&subject); - let expected_seed = H256::from_slice(&hashed_subject); - - // Check that the event is emitted. - // This would be the second time the random seed is emitted. - System::assert_last_event( - Event::NewChallengeSeed { - challenges_ticker: 3, - seed: expected_seed, - } - .into(), - ); - - // Run until the next checkpoint challenge block. - let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); - run_to_block(checkpoint_challenge_period); - - // Expect an empty set of checkpoint challenges. - let challenges_ticker = ChallengesTicker::::get(); - let checkpoint_challenges = - TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); - assert_eq!(checkpoint_challenges.len(), 0); - - // Check that the event is emitted. - System::assert_last_event( - Event::NewCheckpointChallenge { - challenges_ticker, - challenges: Default::default(), - } - .into(), - ); - }); -} - -#[test] -fn new_challenges_round_random_challenges_cleanup() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Run until block number `ChallengesHistoryLength` + 1. - let challenges_history_length: u64 = ChallengeHistoryLengthFor::::get(); - run_to_block(challenges_history_length + 1u64); - - // Check that the challenge seed for block 1 is not found. - assert_eq!( - TickToChallengesSeed::::get(1), - None, - "Challenge seed for block 1 should not be found." - ); - - // Check that the challenge seed exists for block 2. - let challenges_ticker = 2u64.encode(); - let challenges_ticker: &[u8] = challenges_ticker.as_ref(); - let subject: Vec = [challenges_ticker, &2u64.to_le_bytes()].concat(); - let hashed_subject = blake2_256(&subject); - let expected_seed = H256::from_slice(&hashed_subject); - assert_eq!( - TickToChallengesSeed::::get(2), - Some(expected_seed), - "Challenge seed for block 2 should be found." - ); - }); -} - -#[test] -fn new_challenges_round_checkpoint_challenges_cleanup() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Run until block number 2 * `CheckpointChallengePeriod`. - let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); - run_to_block(checkpoint_challenge_period * 2); - - // Check that the checkpoint challenge for block `checkpoint_challenge_period` is not found. - assert_eq!( - TickToCheckpointChallenges::::get(checkpoint_challenge_period), - None, - "Checkpoint challenge for block `CheckpointChallengePeriod` should not be found." - ); - - // Check that the checkpoint challenge exists for block `checkpoint_challenge_period * 2`. - assert_eq!( - TickToCheckpointChallenges::::get(checkpoint_challenge_period * 2), - Some(Default::default()), - "Checkpoint challenge for block `CheckpointChallengePeriod * 2` should be found." - ) - }); -} - -#[test] -fn new_challenges_round_checkpoint_challenges_with_custom_challenges() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Add custom challenges to the challenges vector. - let key_challenged = BlakeTwo256::hash(b"key_challenged"); - assert_ok!( as ProofsDealerInterface>::challenge( - &key_challenged - )); - - // Add priority challenge to the challenges vector. - let priority_key_challenged = BlakeTwo256::hash(b"priority_key_challenged"); - assert_ok!( - as ProofsDealerInterface>::challenge_with_priority( - &priority_key_challenged, - Some(TrieRemoveMutation::default()) - ) - ); - - // Run until the next checkpoint challenge block. - let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); - run_to_block(checkpoint_challenge_period); - - // Expect checkpoint challenges to be emitted, with the priority first. - let challenges_ticker = ChallengesTicker::::get(); - let checkpoint_challenges = - TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); - assert_eq!(checkpoint_challenges.len(), 2); - assert_eq!( - checkpoint_challenges[0], - (priority_key_challenged, Some(TrieRemoveMutation::default())) - ); - assert_eq!(checkpoint_challenges[1], (key_challenged, None)); - }); -} - -#[test] -fn new_challenges_round_max_custom_challenges() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Add max amount of custom challenges to the challenges vector. - let max_custom_challenges = ChallengesQueueLengthFor::::get(); - for i in 0..max_custom_challenges { - let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); - assert_ok!( as ProofsDealerInterface>::challenge( - &key_challenged - )); - } - - // Add another custom challenge. It should fail. - assert_err!( - as ProofsDealerInterface>::challenge(&BlakeTwo256::hash( - b"key_challenged" - )), - crate::Error::::ChallengesQueueOverflow - ); - - // Add max amount of priority challenges to the challenges vector. - let max_priority_challenges = ChallengesQueueLengthFor::::get(); - for i in 0..max_priority_challenges { - let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); - assert_ok!( - as ProofsDealerInterface>::challenge_with_priority( - &key_challenged, - Some(TrieRemoveMutation::default()) - ) - ); - } - - // Add another priority challenge. It should fail. - assert_err!( - as ProofsDealerInterface>::challenge_with_priority( - &BlakeTwo256::hash(b"key_challenged"), - Some(TrieRemoveMutation::default()) - ), - crate::Error::::PriorityChallengesQueueOverflow - ); - - // Check how many checkpoint challenges round are needed to evacuate all the queue. - let queue_length: u32 = ChallengesQueueLengthFor::::get(); - let custom_challenges_per_round: u32 = MaxCustomChallengesPerBlockFor::::get(); - let mut checkpoint_challenge_rounds_needed = queue_length / custom_challenges_per_round; - if queue_length % custom_challenges_per_round != 0 { - checkpoint_challenge_rounds_needed += 1; - } - - // Run until the next checkpoint challenge round. - let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); - run_to_block(checkpoint_challenge_period); - - // Expect checkpoint challenges to be emitted, with the priority first. - let challenges_ticker = ChallengesTicker::::get(); - let checkpoint_challenges = - TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); - assert_eq!( - checkpoint_challenges.len(), - custom_challenges_per_round as usize - ); - for i in 0..checkpoint_challenges.len() { - let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); - assert_eq!( - checkpoint_challenges[i], - (key_challenged, Some(TrieRemoveMutation::default())) - ); - } - - // Run until the needed checkpoint challenge block. - let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); - run_to_block(checkpoint_challenge_period * checkpoint_challenge_rounds_needed as u64); - - // The length of the checkpoint challenges should be max, because even if the priority - // challenges don't fill the queue, the custom challenges will. - let challenges_ticker = ChallengesTicker::::get(); - let checkpoint_challenges = - TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); - assert_eq!( - checkpoint_challenges.len(), - custom_challenges_per_round as usize - ); - - // Expect the last priority challenges in the priority queue to be emitted first. - let last_priority_challenges_amount = if queue_length % custom_challenges_per_round == 0 { - custom_challenges_per_round - } else { - queue_length % custom_challenges_per_round - }; - let last_priority_challenges_start_index = - (checkpoint_challenge_rounds_needed - 1) * custom_challenges_per_round; - for i in 0..last_priority_challenges_amount { - let key_challenged = BlakeTwo256::hash( - &((last_priority_challenges_start_index + i) as usize).to_le_bytes(), - ); - assert_eq!( - checkpoint_challenges[i as usize], - (key_challenged, Some(TrieRemoveMutation::default())) - ); - } - - // Check that the last checkpoint challenges contain the custom challenges, if there was - // enough space in this challenge round. - let checkpoint_challenges_start_index = if queue_length % custom_challenges_per_round == 0 { - custom_challenges_per_round - } else { - queue_length % custom_challenges_per_round - }; - let checkpoint_challenges_amount = - custom_challenges_per_round - checkpoint_challenges_start_index; - for i in 0..checkpoint_challenges_amount { - let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); - assert_eq!( - checkpoint_challenges[(checkpoint_challenges_start_index + i) as usize], - (key_challenged, None) - ); - } - - // Run until the custom challenges are all evacuated. - let mut checkpoint_challenge_rounds_needed = queue_length / custom_challenges_per_round * 2; - if queue_length % custom_challenges_per_round != 0 { - checkpoint_challenge_rounds_needed += 1; - } - run_to_block(checkpoint_challenge_period * checkpoint_challenge_rounds_needed as u64); - - // The last checkpoint challenge should be the last custom challenge. - let challenges_ticker = ChallengesTicker::::get(); - let checkpoint_challenges = - TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); - let last_checkpoint_challenge = &checkpoint_challenges[checkpoint_challenges.len() - 1]; - assert_eq!( - last_checkpoint_challenge, - &( - BlakeTwo256::hash(&((queue_length - 1) as usize).to_le_bytes()), - None - ) - ) - }); -} - -#[test] -fn new_challenges_round_provider_marked_as_slashable() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to that Provider and hold some so it has a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - let current_tick = ChallengesTicker::::get(); - let prev_tick_provider_submitted_proof = current_tick; - LastTickProviderSubmittedAProofFor::::insert( - &provider_id, - prev_tick_provider_submitted_proof, - ); - - // Set Provider's deadline for submitting a proof. - // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = current_tick + challenge_period_plus_tolerance; - TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); - - // Check that Provider is not in the SlashableProviders storage map. - assert!(!SlashableProviders::::contains_key(&provider_id)); - - // Advance to the deadline block for this Provider. - run_to_block(prev_deadline); - - // Check event of provider being marked as slashable. - System::assert_has_event( - Event::SlashableProvider { - provider: provider_id, - next_challenge_deadline: prev_deadline + challenge_period, - } - .into(), - ); - - // Check that Provider is in the SlashableProviders storage map. - assert!(SlashableProviders::::contains_key(&provider_id)); - assert_eq!( - SlashableProviders::::get(&provider_id), - Some(::RandomChallengesPerBlock::get()) - ); - - // Check the new last time this provider submitted a proof. - let current_tick_provider_submitted_proof = - prev_tick_provider_submitted_proof + challenge_period; - let new_last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(provider_id).unwrap(); - assert_eq!( - current_tick_provider_submitted_proof, - new_last_tick_provider_submitted_proof - ); - - // Check that the Provider's deadline was pushed forward. - assert_eq!( - TickToProvidersDeadlines::::get(prev_deadline, provider_id), - None - ); - let new_deadline = - new_last_tick_provider_submitted_proof + challenge_period + challenge_ticks_tolerance; - assert_eq!( - TickToProvidersDeadlines::::get(new_deadline, provider_id), - Some(()), - ); - }); -} - -#[test] -fn multiple_new_challenges_round_provider_accrued_many_failed_proof_submissions() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to that Provider and hold some so it has a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different from the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - let prev_tick_provider_submitted_proof = ChallengesTicker::::get(); - LastTickProviderSubmittedAProofFor::::insert( - &provider_id, - prev_tick_provider_submitted_proof, - ); - - // New challenges round - let current_tick = ChallengesTicker::::get(); - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = current_tick + challenge_period_plus_tolerance; - - TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); - - // Check that Provider is not in the SlashableProviders storage map. - assert!(!SlashableProviders::::contains_key(&provider_id)); - - // Set last checkpoint challenge block. - let checkpoint_challenge_block = 1; - LastCheckpointTick::::set(checkpoint_challenge_block); - - // Make up custom challenges. - let custom_challenges = BoundedVec::try_from(vec![ - (BlakeTwo256::hash(b"custom_challenge_1"), None), - (BlakeTwo256::hash(b"custom_challenge_2"), None), - ]) - .unwrap(); - - // Set custom challenges in checkpoint block. - TickToCheckpointChallenges::::insert( - checkpoint_challenge_block, - custom_challenges.clone(), - ); - - // Advance to the deadline block for this Provider. - run_to_block(prev_deadline); - - let next_challenge_deadline = prev_deadline + challenge_period; - // Check event of provider being marked as slashable. - System::assert_has_event( - Event::SlashableProvider { - provider: provider_id, - next_challenge_deadline, - } - .into(), - ); - - // Check that Provider is in the SlashableProviders storage map. - assert!(SlashableProviders::::contains_key(&provider_id)); - - let random_challenges_per_block: u32 = - ::RandomChallengesPerBlock::get(); - - let missed_proof_submissions = random_challenges_per_block.saturating_add(2); - - assert_eq!( - SlashableProviders::::get(&provider_id), - Some(missed_proof_submissions) - ); - - // New challenges round - let current_tick = ChallengesTicker::::get(); - let prev_deadline = current_tick + challenge_period; - TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); - - // Advance to the deadline block for this Provider. - run_to_block(next_challenge_deadline); - - // Check event of provider being marked as slashable. - System::assert_has_event( - Event::SlashableProvider { - provider: provider_id, - next_challenge_deadline: prev_deadline + challenge_period, - } - .into(), - ); - - // Check that Provider is in the SlashableProviders storage map. - assert!(SlashableProviders::::contains_key(&provider_id)); - assert_eq!( - SlashableProviders::::get(&provider_id), - Some(random_challenges_per_block.saturating_add(missed_proof_submissions)) - ); - }); -} - -#[test] -fn new_challenges_round_bad_provider_marked_as_slashable_but_good_no() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Register Alice as a Provider in Providers pallet. - let alice_provider_id = BlakeTwo256::hash(b"alice_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - alice_provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &alice_provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to Alice and hold some so it has a stake. - let alice_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - alice_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - alice_balance / 100 - )); - - // Register Bob as a Provider in Providers pallet. - let bob_provider_id = BlakeTwo256::hash(b"bob_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &2, - bob_provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &bob_provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 2u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to Bob and hold some so it has a stake. - let bob_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &2, - bob_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &2, - bob_balance / 100 - )); - - // Set Alice and Bob's root to be an arbitrary value, different than the default root, - // to simulate that they are actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &alice_provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - pallet_storage_providers::BackupStorageProviders::::mutate( - &bob_provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Alice and Bob's last submitted proof block. - let current_tick = ChallengesTicker::::get(); - let last_interval_tick = current_tick; - LastTickProviderSubmittedAProofFor::::insert(&alice_provider_id, last_interval_tick); - LastTickProviderSubmittedAProofFor::::insert(&bob_provider_id, last_interval_tick); - - // Set Alice and Bob's deadline for submitting a proof. - // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - alice_provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = current_tick + challenge_period_plus_tolerance; - TickToProvidersDeadlines::::insert(prev_deadline, alice_provider_id, ()); - TickToProvidersDeadlines::::insert(prev_deadline, bob_provider_id, ()); - - // Check that Alice and Bob are not in the SlashableProviders storage map. - assert!(!SlashableProviders::::contains_key( - &alice_provider_id - )); - assert!(!SlashableProviders::::contains_key(&bob_provider_id)); - - // Advance to the next challenge Alice and Bob should listen to. - let current_block = System::block_number(); - let challenge_block = current_block + challenge_period; - run_to_block(challenge_block); - // Advance less than `ChallengeTicksTolerance` blocks. - let current_block = System::block_number(); - run_to_block(current_block + challenge_ticks_tolerance - 1); - - // Get the seed for block 2. - let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); - - // Calculate challenges from seed, so that we can mock a key proof for each. - let challenges = crate::Pallet::::generate_challenges_from_seed( - seed, - &alice_provider_id, - RandomChallengesPerBlockFor::::get(), - ); - - // Creating a vec of proofs with some content to pass verification. - let mut key_proofs = BTreeMap::new(); - for challenge in challenges { - key_proofs.insert( - challenge, - KeyProof:: { - proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - challenge_count: Default::default(), - }, - ); - } - - // Mock a proof. - let proof = Proof:: { - forest_proof: CompactProof { - encoded_nodes: vec![vec![0]], - }, - key_proofs, - }; - - // Have Alice submit a proof. - assert_ok!(ProofsDealer::submit_proof( - RuntimeOrigin::signed(1), - proof.clone(), - None - )); - - // Check for event submitted. - System::assert_last_event( - Event::ProofAccepted { - provider: alice_provider_id, - proof, - } - .into(), - ); - - // Advance to the deadline block for this Provider. - run_to_block(prev_deadline); - - System::assert_has_event( - Event::SlashableProvider { - provider: bob_provider_id, - next_challenge_deadline: prev_deadline + challenge_period, - } - .into(), - ); - - // Check that Bob is in the SlashableProviders storage map and that Alice is not. - assert!(!SlashableProviders::::contains_key( - &alice_provider_id - )); - assert!(SlashableProviders::::contains_key(&bob_provider_id)); - assert_eq!( - SlashableProviders::::get(&bob_provider_id), - Some(::RandomChallengesPerBlock::get()) - ); - - // Check the new last tick interval for Alice and Bob. - let expected_new_tick = last_interval_tick + challenge_period; - let new_last_interval_tick_alice = - LastTickProviderSubmittedAProofFor::::get(alice_provider_id).unwrap(); - assert_eq!(expected_new_tick, new_last_interval_tick_alice); - let new_last_interval_tick_bob = - LastTickProviderSubmittedAProofFor::::get(bob_provider_id).unwrap(); - assert_eq!(expected_new_tick, new_last_interval_tick_bob); - - assert_eq!( - TickToProvidersDeadlines::::get(prev_deadline, alice_provider_id), - None - ); - assert_eq!( - TickToProvidersDeadlines::::get(prev_deadline, bob_provider_id), - None - ); - - // Check that the both Alice and Bob's deadlines were pushed forward. - let new_deadline = expected_new_tick + challenge_period_plus_tolerance; - assert_eq!( - TickToProvidersDeadlines::::get(new_deadline, alice_provider_id), - Some(()), - ); - assert_eq!( - TickToProvidersDeadlines::::get(new_deadline, bob_provider_id), - Some(()), - ); - }); -} - -#[test] -fn challenges_ticker_paused_works() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Get the current tick. - let current_tick = ChallengesTicker::::get(); - - // Set the challenges ticker to paused. - assert_ok!(ProofsDealer::set_paused(RuntimeOrigin::root(), true)); - - // Assert event emitted. - System::assert_last_event(Event::::ChallengesTickerSet { paused: true }.into()); - - // Advance a number of blocks. - let current_block = System::block_number(); - run_to_block(current_block + 10); - - // Check that the challenges ticker is still the same. - assert_eq!(ChallengesTicker::::get(), current_tick); - - // Unpause the challenges ticker. - assert_ok!(ProofsDealer::set_paused(RuntimeOrigin::root(), false)); - - // Assert event emitted. - System::assert_last_event(Event::::ChallengesTickerSet { paused: false }.into()); - - // Advance a number of blocks. - let current_block = System::block_number(); - run_to_block(current_block + 10); - - // Check that the challenges ticker is now incremented. - assert_eq!(ChallengesTicker::::get(), current_tick + 10); - }); -} - -#[test] -fn challenges_ticker_block_considered_full_with_max_normal_weight() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Simulate a full block. - System::set_block_number(System::block_number() + 1); - - // Starting with `on_poll` hook. - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Set normal weight used to be the maximum. - let weights: BlockWeights = ::BlockWeights::get(); - let max_weight_normal = weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block); - let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => max_weight_normal, - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(max_block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - - // Get the current count of non-full blocks. - let blocks_not_full = NotFullBlocksCount::::get(); - - // In the next block, after executing `on_poll`, `NonFullBlocksCount` should NOT be incremented. - System::set_block_number(System::block_number() + 1); - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - assert_eq!(NotFullBlocksCount::::get(), blocks_not_full); - }); -} - -#[test] -fn challenges_ticker_block_considered_full_with_weight_left_smaller_than_headroom() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Simulate an almost full block. - System::set_block_number(System::block_number() + 1); - - // Starting with `on_poll` hook. - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Set weight used to NOT leave headroom. - let headroom_weight = BlockFullnessHeadroomFor::::get(); - let weights: BlockWeights = ::BlockWeights::get(); - let max_weight_normal = weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block); - let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => max_weight_normal - headroom_weight + Weight::from_parts(1, 0), - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(max_block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - - // Get the current count of non-full blocks. - let blocks_not_full = NotFullBlocksCount::::get(); - - // In the next block, after executing `on_poll`, `NonFullBlocksCount` should NOT be incremented. - System::set_block_number(System::block_number() + 1); - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - assert_eq!(NotFullBlocksCount::::get(), blocks_not_full); - }); -} - -#[test] -fn challenges_ticker_block_considered_not_full_with_weight_left_equal_to_headroom() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Simulate a block with exactly headroom weight left. - System::set_block_number(System::block_number() + 1); - - // Starting with `on_poll` hook. - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Set weight used to leave headroom. - let headroom_weight = BlockFullnessHeadroomFor::::get(); - let weights: BlockWeights = ::BlockWeights::get(); - let max_weight_normal = weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block); - let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => max_weight_normal.saturating_sub(headroom_weight), - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(max_block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - - // Get the current count of non-full blocks. - let blocks_not_full = NotFullBlocksCount::::get(); - - // In the next block, after executing `on_poll`, `NonFullBlocksCount` should be incremented. - System::set_block_number(System::block_number() + 1); - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - assert_eq!(NotFullBlocksCount::::get(), blocks_not_full + 1); - }); -} - -#[test] -fn challenges_ticker_block_considered_not_full_with_weight_left_greater_than_headroom() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Simulate a not-full block. - System::set_block_number(System::block_number() + 1); - - // Starting with `on_poll` hook. - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - - // Set weight used to leave headroom. - let headroom_weight = BlockFullnessHeadroomFor::::get(); - let weights: BlockWeights = ::BlockWeights::get(); - let max_weight_normal = weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block); - let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => max_weight_normal.saturating_sub(headroom_weight.mul(2)), - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(max_block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - - // Get the current count of non-full blocks. - let blocks_not_full = NotFullBlocksCount::::get(); - - // In the next block, after executing `on_poll`, `NonFullBlocksCount` should be incremented. - System::set_block_number(System::block_number() + 1); - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - assert_eq!(NotFullBlocksCount::::get(), blocks_not_full + 1); - }); -} - -#[test] -fn challenges_ticker_paused_only_after_tolerance_blocks() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Tick counter should be 1 while in block 1. - assert_eq!(ChallengesTicker::::get(), 1); - - // Go until `BlockFullnessPeriodFor` blocks, with spammed blocks. - let block_fullness_period = BlockFullnessPeriodFor::::get(); - run_to_block_spammed(block_fullness_period); - - // Assert that the challenges ticker is NOT paused, and the tick counter advanced `BlockFullnessPeriodFor`. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period); - - // Go one more block beyond `BlockFullnessPeriodFor`. - // Ticker should stop at this tick. - run_to_block_spammed(block_fullness_period + 1); - - // Assert that now the challenges ticker is paused, and the tick counter stopped at `BlockFullnessPeriodFor` + 1. - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - - // Going one block beyond, shouldn't increment the ticker. - run_to_block(block_fullness_period + 2); - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - }); -} - -#[test] -fn challenges_ticker_paused_when_less_than_min_not_full_blocks_ratio_are_not_full() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Tick counter should be 1 while in block 1. - assert_eq!(ChallengesTicker::::get(), 1); - - // Make sure there are `BlockFullnessPeriod * MinNotFullBlocksRatio` (floor) - // not-spammed blocks. Consider that the first block was not spammed. - let block_fullness_period: u64 = BlockFullnessPeriodFor::::get(); - let min_not_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); - let blocks_to_spam = min_not_full_blocks_ratio - .mul_floor(block_fullness_period) - .saturating_sub(1); - let current_block = System::block_number(); - run_to_block(current_block + blocks_to_spam); - - // Go until `BlockFullnessPeriodFor` blocks, with spammed blocks. - run_to_block_spammed(block_fullness_period); - - // Assert that the challenges ticker is NOT paused, and the tick counter advanced `BlockFullnessPeriod`. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period); - - // Go one more block beyond `BlockFullnessPeriod`. - // Ticker should stop at this tick. - run_to_block(block_fullness_period + 1); - - // Assert that now the challenges ticker is paused, and the tick counter stopped at `BlockFullnessPeriod` + 1. - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - - // Going one block beyond, shouldn't increment the ticker. - run_to_block(block_fullness_period + 2); - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - }); -} - -#[test] -fn challenges_ticker_not_paused_when_more_than_min_not_full_blocks_ratio_are_not_full() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Tick counter should be 1 while in block 1. - assert_eq!(ChallengesTicker::::get(), 1); - - // Make sure there are more than `BlockFullnessPeriod * MinNotFullBlocksRatio` (floor) - // not-spammed blocks. Consider that the first block was not spammed. - let block_fullness_period: u64 = BlockFullnessPeriodFor::::get(); - let min_not_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); - let blocks_to_spam = min_not_full_blocks_ratio - .mul_floor(block_fullness_period) - .saturating_sub(1); - let current_block = System::block_number(); - run_to_block(current_block + blocks_to_spam + 1); - - // Go until `BlockFullnessPeriodFor` blocks, with spammed blocks. - run_to_block_spammed(block_fullness_period); - - // Assert that the challenges ticker is NOT paused, and the tick counter advanced `BlockFullnessPeriod`. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period); - - // Go one more block beyond `BlockFullnessPeriod`. - // Ticker should NOT stop at this tick. - run_to_block(block_fullness_period + 1); - - // Assert that the challenges ticker is still NOT paused, and the tick counter continues. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - - // Going one block beyond, should increment the ticker. - run_to_block(block_fullness_period + 2); - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 2); - }); -} - -#[test] -fn challenges_ticker_not_paused_when_blocks_dont_run_on_poll() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Simulate multiple non-spammed blocks that don't run on `on_poll`. - // Like multi block migrations. - let block_fullness_period = BlockFullnessPeriodFor::::get(); - for _ in 1..block_fullness_period { - System::set_block_number(System::block_number() + 1); - - // Set weight used to zero (not-spammed). - let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { - DispatchClass::Normal => Zero::zero(), - DispatchClass::Operational => Zero::zero(), - DispatchClass::Mandatory => Zero::zero(), - }); - BlockWeight::::set(max_block_weight); - - // Trigger on_finalize hook execution. - ProofsDealer::on_finalize(System::block_number()); - } - - // Get the current count of non-full blocks. Should be zero as `on_poll` was only run - // once in `run_to_block(1)`, taking into account the genesis block. In other words, not - // adding anything. - let blocks_not_full = NotFullBlocksCount::::get(); - assert_eq!(blocks_not_full, 0); - - // Current ticker should be 1. - assert_eq!(ChallengesTicker::::get(), 1); - - // In the next block, after executing `on_poll`, `NonFullBlocksCount` should be incremented. - System::set_block_number(System::block_number() + 1); - ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); - assert_eq!(NotFullBlocksCount::::get(), blocks_not_full + 1); - }); -} - -#[test] -fn challenges_ticker_unpaused_after_spam_finishes() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Tick counter should be 1 while in block 1. - assert_eq!(ChallengesTicker::::get(), 1); - - // Go until `BlockFullnessPeriod` blocks, with spammed blocks. - let block_fullness_period = BlockFullnessPeriodFor::::get(); - run_to_block_spammed(block_fullness_period); - - // Go one more block beyond `BlockFullnessPeriod`. - // Ticker should stop at this tick. - run_to_block_spammed(block_fullness_period + 1); - - // Going one block beyond, shouldn't increment the ticker. - run_to_block(block_fullness_period + 2); - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - - // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. - // We need to increase that number so that it is greater than `BlockFullnessPeriod * MinNotFullBlocksRatio`. - let blocks_not_full = NotFullBlocksCount::::get(); - let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); - let min_non_full_blocks: u64 = - min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); - let empty_blocks_to_advance = min_non_full_blocks + 1 - blocks_not_full; - - // Advance `empty_blocks_to_advance` blocks. - let current_ticker = ChallengesTicker::::get(); - let current_block = System::block_number(); - run_to_block(current_block + empty_blocks_to_advance); - - // Assert that the challenges ticker is NOT paused, but that the `ChallengesTicker` is still the same. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), current_ticker); - - // Advance one more block and assert that the challenges ticker increments. - run_to_block(current_block + empty_blocks_to_advance + 1); - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), current_ticker + 1); - }); -} - -#[test] -fn challenges_ticker_paused_twice() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Tick counter should be 1 while in block 1. - assert_eq!(ChallengesTicker::::get(), 1); - - // Go until `BlockFullnessPeriod` blocks, with spammed blocks. - let block_fullness_period = BlockFullnessPeriodFor::::get(); - run_to_block_spammed(block_fullness_period); - - // Go one more block beyond `BlockFullnessPeriod`. - // Ticker should stop at this tick. - run_to_block_spammed(block_fullness_period + 1); - - // Going one block beyond, shouldn't increment the ticker. - run_to_block(block_fullness_period + 2); - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); - - // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. - // We need to increase that number so that it is greater than `BlockFullnessPeriod * MinNotFullBlocksRatio`. - let blocks_not_full = NotFullBlocksCount::::get(); - let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); - let min_non_full_blocks: u64 = - min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); - let empty_blocks_to_advance = min_non_full_blocks + 1 - blocks_not_full; - - // Advance `empty_blocks_to_advance` blocks. - let current_ticker = ChallengesTicker::::get(); - let current_block = System::block_number(); - run_to_block(current_block + empty_blocks_to_advance); - - // Assert that the challenges ticker is NOT paused, but that the `ChallengesTicker` is still the same. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), current_ticker); - - // Advance one more block and assert that the challenges ticker increments. - run_to_block(current_block + empty_blocks_to_advance + 1); - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), current_ticker + 1); - - // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. - // We need to decrease that number so that it is smaller or equal to`BlockFullnessPeriod * MinNotFullBlocksRatio`. - let mut blocks_not_full = NotFullBlocksCount::::get(); - let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); - let min_non_full_blocks: u64 = - min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); - - // We cannot just spam however many blocks of difference are in `blocks_not_full` - `min_non_full_blocks` - // because the oldest blocks being considered were also spammed. We would be adding new spammed blocks - // in the newest blocks, and removing them from the oldest ones. So we need to spam blocks until non-spammed - // blocks are old enough and start getting discarded. - let mut blocks_advanced = 0; - let current_ticker = ChallengesTicker::::get(); - while blocks_not_full > min_non_full_blocks { - let current_block = System::block_number(); - run_to_block_spammed(current_block + 1); - blocks_not_full = NotFullBlocksCount::::get(); - blocks_advanced += 1; - } - - // Assert that the challenges ticker IS paused, but that the `ChallengesTicker` has advanced `not_empty_blocks_to_advance`. - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!( - ChallengesTicker::::get(), - current_ticker + blocks_advanced - ); - - // Advance one more block and assert that the challenges ticker doesn't increment. - let current_block = System::block_number(); - run_to_block(current_block + 1); - assert!(ChallengesTickerPaused::::get().is_some()); - assert_eq!( - ChallengesTicker::::get(), - current_ticker + blocks_advanced - ); - }); -} - -#[test] -fn challenges_ticker_provider_not_slashed_if_network_spammed() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Go beyond `BlockFullnessPeriod` blocks, with not spammed blocks, to simulate - // an operational scenario already. - let block_fullness_period: u64 = BlockFullnessPeriodFor::::get(); - run_to_block(block_fullness_period + 1); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add balance to that Provider and hold some so it has a stake. - let provider_balance = 1_000_000_000_000_000; - assert_ok!(::NativeBalance::mint_into( - &1, - provider_balance - )); - assert_ok!(::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - &1, - provider_balance / 100 - )); - - // Set Provider's root to be an arbitrary value, different than the default root, - // to simulate that it is actually providing a service. - let root = BlakeTwo256::hash(b"1234"); - pallet_storage_providers::BackupStorageProviders::::mutate( - &provider_id, - |provider| { - provider.as_mut().expect("Provider should exist").root = root; - }, - ); - - // Set Provider's last submitted proof block. - let current_tick = ChallengesTicker::::get(); - let prev_tick_provider_submitted_proof = current_tick; - LastTickProviderSubmittedAProofFor::::insert( - &provider_id, - prev_tick_provider_submitted_proof, - ); - - // Set Provider's deadline for submitting a proof. - // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. - let providers_stake = - as ReadChallengeableProvidersInterface>::get_stake( - provider_id, - ) - .unwrap(); - let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); - let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); - let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; - let prev_deadline = current_tick + challenge_period_plus_tolerance; - TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); - - // Check that Provider is not in the SlashableProviders storage map. - assert!(!SlashableProviders::::contains_key(&provider_id)); - - // Up until this point, all blocks have been not-spammed, so the `NotFullBlocksCount` - // should be equal to `BlockFullnessPeriod`. - let current_not_full_blocks_count = NotFullBlocksCount::::get(); - assert_eq!(current_not_full_blocks_count, block_fullness_period); - - // Advance until the next challenge period block without spammed blocks. - let current_block = System::block_number(); - run_to_block(current_block + challenge_period); - - // Advance to the deadline block for this Provider, but with spammed blocks. - run_to_block_spammed(prev_deadline); - - // Check that Provider is NOT in the SlashableProviders storage map. - assert!(!SlashableProviders::::contains_key(&provider_id)); - - // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. - // We need to increase that number so that it is greater than `BlockFullnessPeriod * MinNotFullBlocksRatio`. - let mut blocks_not_full = NotFullBlocksCount::::get(); - let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); - let min_non_full_blocks: u64 = - min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); - - let current_ticker = ChallengesTicker::::get(); - while blocks_not_full <= min_non_full_blocks { - let current_block = System::block_number(); - run_to_block(current_block + 1); - blocks_not_full = NotFullBlocksCount::::get(); - } - - // Now the `ChallengesTicker` shouldn't be paused. But current ticker should be the same. - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), current_ticker); - - // Advancing one more block should increase the `ChallengesTicker` by one. - let current_block = System::block_number(); - run_to_block(current_block + 1); - assert!(ChallengesTickerPaused::::get().is_none()); - assert_eq!(ChallengesTicker::::get(), current_ticker + 1); - - // Get how many blocks until the deadline tick. - let current_ticker = ChallengesTicker::::get(); - let blocks_to_advance = prev_deadline - current_ticker; - let current_block = System::block_number(); - run_to_block(current_block + blocks_to_advance); - - // Check event of provider being marked as slashable. - System::assert_has_event( - Event::SlashableProvider { - provider: provider_id, - next_challenge_deadline: prev_deadline + challenge_period, - } - .into(), - ); - - // Check that Provider is in the SlashableProviders storage map. - assert!(SlashableProviders::::contains_key(&provider_id)); - assert_eq!( - SlashableProviders::::get(&provider_id), - Some(::RandomChallengesPerBlock::get()) - ); - - // Check the new last time this provider submitted a proof. - let current_tick_provider_submitted_proof = - prev_tick_provider_submitted_proof + challenge_period; - let new_last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(provider_id).unwrap(); - assert_eq!( - current_tick_provider_submitted_proof, - new_last_tick_provider_submitted_proof - ); - - // Check that the Provider's deadline was pushed forward. - assert_eq!( - TickToProvidersDeadlines::::get(prev_deadline, provider_id), - None - ); - let new_deadline = - new_last_tick_provider_submitted_proof + challenge_period + challenge_ticks_tolerance; - assert_eq!( - TickToProvidersDeadlines::::get(new_deadline, provider_id), - Some(()), - ); - }); -} - -#[test] -fn stake_to_challenge_period_saturates_properly() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - let stake_to_challenge_period = StakeToChallengePeriodFor::::get(); - let min_challenge_period: BlockNumberFor = MinChallengePeriodFor::::get(); - - // A provider with stake equal to `StakeToChallengePeriod` should have a challenge period equal to `MinChallengePeriod`. - assert_eq!( - crate::Pallet::::stake_to_challenge_period(stake_to_challenge_period), - min_challenge_period - ); - - // A provider with stake greater than `StakeToChallengePeriod` should have a challenge period equal to `MinChallengePeriod`. - assert_eq!( - crate::Pallet::::stake_to_challenge_period(stake_to_challenge_period * 2), - min_challenge_period - ); - - // A provider with stake 1 should have a challenge period equal to `StakeToChallengePeriod`. - assert_eq!( - crate::Pallet::::stake_to_challenge_period(1) as u128, - stake_to_challenge_period - ); - - // A provider with a stake somewhere in between should have a challenge period given by the formula. - let half_stake_to_challenge_period = - stake_to_challenge_period / (2 * min_challenge_period as u128); - assert_eq!( - crate::Pallet::::stake_to_challenge_period(half_stake_to_challenge_period), - 2 * min_challenge_period - ); - }); -} - -mod on_idle_hook_tests { - use super::*; - - #[test] - fn on_idle_hook_works() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add the Provider to the `ValidProofSubmittersLastTicks` storage map for the current tick. - let tick_when_proof_provided = ChallengesTicker::::get(); - let mut new_valid_submitters = - BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); - new_valid_submitters.try_insert(provider_id).unwrap(); - ValidProofSubmittersLastTicks::::insert( - tick_when_proof_provided, - new_valid_submitters, - ); - - // Check that the Provider was successfully added to the set. - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Advance a tick, executing `on_idle`, to check if the Provider is removed from the set. - run_to_block(System::block_number() + 1); - ProofsDealer::on_idle(System::block_number(), Weight::MAX); - - // Check that the set which had the Provider that submitted a valid proof has not been deleted. - assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_some()); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Check that the last deleted tick is still 0 - assert_eq!(LastDeletedTick::::get(), 0); - - // Advance enough ticks so that the Provider list which has the `provider_id` is set to be deleted. - run_to_block( - System::block_number() - + as Get>::get() as u64, - ); - - // Call the `on_idle` hook. - ProofsDealer::on_idle(System::block_number(), Weight::MAX); - - // Check that the set which had the Provider that submitted a valid proof has been correctly deleted. - assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_none()); - - // Check that the last deleted tick is the one that was just deleted. - assert_eq!( - LastDeletedTick::::get(), - System::block_number() - - as Get>::get() as u64 - ); - }); - } - - #[test] - fn on_idle_hook_does_not_delete_with_not_enough_weight() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add the Provider to the `ValidProofSubmittersLastTicks` storage map for the current tick. - let tick_when_proof_provided = ChallengesTicker::::get(); - let mut new_valid_submitters = - BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); - new_valid_submitters.try_insert(provider_id).unwrap(); - ValidProofSubmittersLastTicks::::insert( - tick_when_proof_provided, - new_valid_submitters, - ); - - // Check that the Provider was successfully added to the set. - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Advance a tick, executing `on_idle`, to check if the Provider is removed from the set. - run_to_block(System::block_number() + 1); - ProofsDealer::on_idle(System::block_number(), Weight::MAX); - - // Check that the set which had the Provider that submitted a valid proof has not been deleted. - assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_some()); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Check that the last deleted tick is still 0 - assert_eq!(LastDeletedTick::::get(), 0); - - // Advance enough ticks so that the Provider list which has the `provider_id` is set to be deleted. - run_to_block( - System::block_number() - + as Get>::get() as u64, - ); - - // Call the `on_idle` hook, but without enough weight to delete the set. - ProofsDealer::on_idle(System::block_number(), Weight::zero()); - - // Check that the set which had the Provider that submitted a valid proof still exists and has the Provider - assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_some()); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Check that the last deleted tick is still zero. - assert_eq!(LastDeletedTick::::get(), 0); - }); - } - - #[test] - fn on_idle_hook_deletes_multiple_old_ticks_if_enough_weight_is_remaining() { - new_test_ext().execute_with(|| { - // Go past genesis block so events get deposited. - run_to_block(1); // Block number = 1 - - // Register user as a Provider in Providers pallet. - let provider_id = BlakeTwo256::hash(b"provider_id"); - pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( - &1, - provider_id, - ); - pallet_storage_providers::BackupStorageProviders::::insert( - &provider_id, - pallet_storage_providers::types::BackupStorageProvider { - capacity: Default::default(), - capacity_used: Default::default(), - multiaddresses: Default::default(), - root: Default::default(), - last_capacity_change: Default::default(), - owner_account: 1u64, - payment_account: Default::default(), - reputation_weight: - ::StartingReputationWeight::get(), - }, - ); - - // Add the Provider to the `ValidProofSubmittersLastTicks` storage map for the current tick and two ticks after that. - let tick_when_first_proof_provided = ChallengesTicker::::get(); // Block number = 1 - let mut new_valid_submitters = - BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); - new_valid_submitters.try_insert(provider_id).unwrap(); - ValidProofSubmittersLastTicks::::insert( - tick_when_first_proof_provided, - new_valid_submitters.clone(), - ); - let tick_when_second_proof_provided = tick_when_first_proof_provided + 2; // Block number = 1 + 2 = 3 - ValidProofSubmittersLastTicks::::insert( - tick_when_second_proof_provided, - new_valid_submitters, - ); - - // Check that the Provider was successfully added to the set in both ticks - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) - .unwrap() - .contains(&provider_id) - ); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Advance a tick, executing `on_idle`, to check if the Provider is removed from any of the two sets. - run_to_block(System::block_number() + 1); // Block number = 2 - ProofsDealer::on_idle(System::block_number(), Weight::MAX); - - // Check that the sets which had the Provider that submitted a valid proof have not been deleted. - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) - .is_some() - ); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) - .unwrap() - .contains(&provider_id) - ); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) - .is_some() - ); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) - .unwrap() - .contains(&provider_id) - ); - - // Check that the last deleted tick is still 0 - assert_eq!(LastDeletedTick::::get(), 0); - - // Advance enough ticks so that both the Provider lists which have the `provider_id` are set to be deleted. - run_to_block( - System::block_number() - + as Get>::get() as u64 - + 3, - ); // Block number = 2 + 3 + 3 = 8, 8 - 3 - 0 > 3 so both sets should be deleted. - - // Call the `on_idle` hook with enough weight to delete both sets. - ProofsDealer::on_idle(System::block_number(), Weight::MAX); - - // Check that the sets which had the Provider that submitted a valid proof have been correctly deleted. - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) - .is_none() - ); - assert!( - ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) - .is_none() - ); - - // Check that the last deleted tick is the one that was just deleted. - assert_eq!( - LastDeletedTick::::get(), - System::block_number() - - as Get>::get() as u64 - ); - }); - } -} +use std::{collections::BTreeMap, vec}; + +use codec::Encode; +use frame_support::{ + assert_err, assert_noop, assert_ok, + dispatch::DispatchClass, + pallet_prelude::Weight, + traits::{ + fungible::{Mutate, MutateHold}, + OnFinalize, OnIdle, OnPoll, + }, + weights::WeightMeter, + BoundedBTreeSet, +}; +use frame_system::{ + limits::BlockWeights, pallet_prelude::BlockNumberFor, BlockWeight, ConsumedWeight, +}; +use pallet_storage_providers::HoldReason; +use shp_traits::{ProofsDealerInterface, ReadChallengeableProvidersInterface, TrieRemoveMutation}; +use sp_core::{blake2_256, Get, Hasher, H256}; +use sp_runtime::{ + traits::{BlakeTwo256, Zero}, + BoundedVec, DispatchError, +}; +use sp_trie::CompactProof; + +use crate::{ + mock::*, + pallet::Event, + types::{ + BlockFullnessHeadroomFor, BlockFullnessPeriodFor, ChallengeHistoryLengthFor, + ChallengeTicksToleranceFor, ChallengesQueueLengthFor, CheckpointChallengePeriodFor, + KeyProof, MaxCustomChallengesPerBlockFor, MaxSubmittersPerTickFor, MinChallengePeriodFor, + MinNotFullBlocksRatioFor, Proof, ProviderIdFor, ProvidersPalletFor, + RandomChallengesPerBlockFor, StakeToChallengePeriodFor, TargetTicksStorageOfSubmittersFor, + }, + ChallengesTicker, ChallengesTickerPaused, LastCheckpointTick, LastDeletedTick, + LastTickProviderSubmittedAProofFor, NotFullBlocksCount, SlashableProviders, + TickToChallengesSeed, TickToCheckpointChallenges, TickToProvidersDeadlines, + ValidProofSubmittersLastTicks, +}; + +fn run_to_block(n: u64) { + while System::block_number() < n { + System::set_block_number(System::block_number() + 1); + + // Trigger on_poll hook execution. + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Set weight used to be zero. + let zero_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => Zero::zero(), + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(zero_block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + } +} + +fn run_to_block_spammed(n: u64) { + while System::block_number() < n { + System::set_block_number(System::block_number() + 1); + + // Trigger on_poll hook execution. + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Fill up block. + let weights: BlockWeights = ::BlockWeights::get(); + let max_weight_normal = weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block); + let block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => max_weight_normal, + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + } +} + +#[test] +fn challenge_submit_succeed() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Dispatch challenge extrinsic. + assert_ok!(ProofsDealer::challenge(user, file_key)); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewChallenge { + who: 1, + key_challenged: file_key, + } + .into(), + ); + + // Check user's balance after challenge. + let challenge_fee: u128 = ::ChallengesFee::get(); + assert_eq!( + ::NativeBalance::usable_balance(&1), + user_balance - challenge_fee + ); + + // Check that the challenge is in the queue. + let challenges_queue = crate::ChallengesQueue::::get(); + assert_eq!(challenges_queue.len(), 1); + assert_eq!(challenges_queue[0], file_key); + }); +} + +#[test] +fn challenge_submit_twice_succeed() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create two users and add funds to the accounts. + let user_1 = RuntimeOrigin::signed(1); + let user_2 = RuntimeOrigin::signed(2); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + assert_ok!(::NativeBalance::mint_into( + &2, + user_balance + )); + + // Mock two FileKeys. + let file_key_1 = BlakeTwo256::hash(b"file_key_1"); + let file_key_2 = BlakeTwo256::hash(b"file_key_2"); + + // Dispatch challenge extrinsic twice. + assert_ok!(ProofsDealer::challenge(user_1, file_key_1)); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewChallenge { + who: 1, + key_challenged: file_key_1, + } + .into(), + ); + + assert_ok!(ProofsDealer::challenge(user_2, file_key_2)); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewChallenge { + who: 2, + key_challenged: file_key_2, + } + .into(), + ); + + // Check users' balance after challenge. + let challenge_fee: u128 = ::ChallengesFee::get(); + assert_eq!( + ::NativeBalance::usable_balance(&1), + user_balance - challenge_fee + ); + assert_eq!( + ::NativeBalance::usable_balance(&2), + user_balance - challenge_fee + ); + + // Check that the challenge is in the queue. + let challenges_queue = crate::ChallengesQueue::::get(); + assert_eq!(challenges_queue.len(), 2); + assert_eq!(challenges_queue[0], file_key_1); + assert_eq!(challenges_queue[1], file_key_2); + }); +} + +#[test] +fn challenge_submit_existing_challenge_succeed() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Dispatch challenge extrinsic twice. + assert_ok!(ProofsDealer::challenge(user.clone(), file_key)); + assert_ok!(ProofsDealer::challenge(user, file_key)); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewChallenge { + who: 1, + key_challenged: file_key, + } + .into(), + ); + + // Check user's balance after challenge. + let challenge_fee: u128 = ::ChallengesFee::get(); + assert_eq!( + ::NativeBalance::usable_balance(&1), + user_balance - challenge_fee * 2 + ); + + // Check that the challenge is in the queue. + let challenges_queue = crate::ChallengesQueue::::get(); + assert_eq!(challenges_queue.len(), 1); + assert_eq!(challenges_queue[0], file_key); + }); +} + +#[test] +fn challenge_submit_in_two_rounds_succeed() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Dispatch challenge extrinsic twice. + assert_ok!(ProofsDealer::challenge(user.clone(), file_key)); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewChallenge { + who: 1, + key_challenged: file_key, + } + .into(), + ); + + // Check user's balance after challenge. + let challenge_fee: u128 = ::ChallengesFee::get(); + assert_eq!( + ::NativeBalance::usable_balance(&1), + user_balance - challenge_fee + ); + + // Check that the challenge is in the queue. + let challenges_queue = crate::ChallengesQueue::::get(); + assert_eq!(challenges_queue.len(), 1); + assert_eq!(challenges_queue[0], file_key); + + // Advance `CheckpointChallengePeriod` blocks. + let challenge_period: u64 = ::CheckpointChallengePeriod::get(); + run_to_block(challenge_period as u64 + 1); + + // Dispatch challenge extrinsic twice. + let file_key = BlakeTwo256::hash(b"file_key_2"); + assert_ok!(ProofsDealer::challenge(user, file_key)); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewChallenge { + who: 1, + key_challenged: file_key, + } + .into(), + ); + + // Check user's balance after challenge. + assert_eq!( + ::NativeBalance::usable_balance(&1), + user_balance - challenge_fee * 2 + ); + }); +} + +#[test] +fn challenge_wrong_origin_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Dispatch challenge extrinsic with wrong origin. + assert_noop!( + ProofsDealer::challenge(RuntimeOrigin::none(), file_key), + DispatchError::BadOrigin + ); + }); +} + +#[test] +fn challenge_submit_by_regular_user_with_no_funds_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user with no funds. + let user = RuntimeOrigin::signed(1); + + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::challenge(user, file_key), + crate::Error::::FeeChargeFailed + ); + }); +} + +#[test] +fn challenge_overflow_challenges_queue_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Fill the challenges queue. + let queue_size: u32 = ::ChallengesQueueLength::get(); + for i in 0..queue_size { + let file_key = BlakeTwo256::hash(&i.to_le_bytes()); + assert_ok!(ProofsDealer::challenge(user.clone(), file_key)); + } + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::challenge(user, file_key), + crate::Error::::ChallengesQueueOverflow + ); + }); +} + +#[test] +fn proofs_dealer_trait_challenge_succeed() { + new_test_ext().execute_with(|| { + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Challenge using trait. + ::challenge(&file_key).unwrap(); + + // Check that the challenge is in the queue. + let challenges_queue = crate::ChallengesQueue::::get(); + assert_eq!(challenges_queue.len(), 1); + assert_eq!(challenges_queue[0], file_key); + }); +} + +#[test] +fn proofs_dealer_trait_challenge_overflow_challenges_queue_fail() { + new_test_ext().execute_with(|| { + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Fill the challenges queue. + let queue_size: u32 = ::ChallengesQueueLength::get(); + for i in 0..queue_size { + let file_key = BlakeTwo256::hash(&i.to_le_bytes()); + assert_ok!(::challenge(&file_key)); + } + + // Dispatch challenge extrinsic. + assert_noop!( + ::challenge(&file_key), + crate::Error::::ChallengesQueueOverflow + ); + }); +} + +#[test] +fn proofs_dealer_trait_challenge_with_priority_succeed() { + new_test_ext().execute_with(|| { + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Challenge using trait. + ::challenge_with_priority( + &file_key, None, + ) + .unwrap(); + + // Check that the challenge is in the queue. + let priority_challenges_queue = crate::PriorityChallengesQueue::::get(); + assert_eq!(priority_challenges_queue.len(), 1); + assert_eq!(priority_challenges_queue[0], (file_key, None)); + }); +} + +#[test] +fn proofs_dealer_trait_challenge_with_priority_overflow_challenges_queue_fail() { + new_test_ext().execute_with(|| { + // Mock a FileKey. + let file_key = BlakeTwo256::hash(b"file_key"); + + // Fill the challenges queue. + let queue_size: u32 = ::ChallengesQueueLength::get(); + for i in 0..queue_size { + let file_key = BlakeTwo256::hash(&i.to_le_bytes()); + assert_ok!( + ::challenge_with_priority( + &file_key, None + ) + ); + } + + // Dispatch challenge extrinsic. + assert_noop!( + ::challenge_with_priority( + &file_key, None + ), + crate::Error::::PriorityChallengesQueueOverflow + ); + }); +} + +#[test] +fn proofs_dealer_trait_initialise_challenge_cycle_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Mock a Provider ID. + let provider_id = BlakeTwo256::hash(b"provider_id"); + + // Register user as a Provider in Providers pallet. + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to that Provider and hold some so it has a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + + // Dispatch initialise provider extrinsic. + assert_ok!(ProofsDealer::force_initialise_challenge_cycle( + RuntimeOrigin::root(), + provider_id + )); + + // Check that the Provider's last tick was set to 1. + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(&provider_id).unwrap(); + assert_eq!(last_tick_provider_submitted_proof, 1); + + // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` + // after the initialisation. + let stake = as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let expected_deadline = + last_tick_provider_submitted_proof + challenge_period_plus_tolerance; + let deadline = TickToProvidersDeadlines::::get(expected_deadline, provider_id); + assert_eq!(deadline, Some(())); + + // Check that the last event emitted is the correct one. + System::assert_last_event( + Event::NewChallengeCycleInitialised { + current_tick: 1, + next_challenge_deadline: expected_deadline, + provider: provider_id, + maybe_provider_account: Some(1u64), + } + .into(), + ); + }); +} + +#[test] +fn proofs_dealer_trait_initialise_challenge_cycle_already_initialised_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Mock a Provider ID. + let provider_id = BlakeTwo256::hash(b"provider_id"); + + // Register user as a Provider in Providers pallet. + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to that Provider and hold some so it has a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + + // Dispatch initialise provider extrinsic. + assert_ok!(ProofsDealer::force_initialise_challenge_cycle( + RuntimeOrigin::root(), + provider_id + )); + + // Check that the Provider's last tick was set to 1. + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(&provider_id).unwrap(); + assert_eq!(last_tick_provider_submitted_proof, 1); + + // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` + // after the initialisation. + let stake = as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = last_tick_provider_submitted_proof + challenge_period_plus_tolerance; + let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id); + assert_eq!(deadline, Some(())); + + // Let some blocks pass (less than `ChallengeTicksTolerance` blocks). + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Re-initialise the provider. + assert_ok!(ProofsDealer::force_initialise_challenge_cycle( + RuntimeOrigin::root(), + provider_id + )); + + // Check that the Provider's last tick is the current now. + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(&provider_id).unwrap(); + let current_tick = ChallengesTicker::::get(); + assert_eq!(last_tick_provider_submitted_proof, current_tick); + + // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` + // after the initialisation. + let stake = as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let expected_deadline = + last_tick_provider_submitted_proof + challenge_period_plus_tolerance; + let deadline = TickToProvidersDeadlines::::get(expected_deadline, provider_id); + assert_eq!(deadline, Some(())); + + // Check that the Provider no longer has the previous deadline. + let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id); + assert_eq!(deadline, None); + + // Advance beyond the previous deadline block and check that the Provider is not marked as slashable. + run_to_block(current_block + challenge_ticks_tolerance + 1); + + assert!(!SlashableProviders::::contains_key(&provider_id)); + }); +} + +#[test] +fn proofs_dealer_trait_initialise_challenge_cycle_already_initialised_and_new_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Mock two Provider IDs. + let provider_id_1 = BlakeTwo256::hash(b"provider_id_1"); + let provider_id_2 = BlakeTwo256::hash(b"provider_id_2"); + + // Register users as a Provider in Providers pallet. + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id_1, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id_1, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &2, + provider_id_2, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id_2, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 2u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to those Providers and hold some so they have a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::mint_into( + &2, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &2, + provider_balance / 100 + )); + + // Initialise providers + assert_ok!(ProofsDealer::initialise_challenge_cycle(&provider_id_1)); + assert_ok!(ProofsDealer::initialise_challenge_cycle(&provider_id_2)); + + // Check that the Providers' last tick was set to 1. + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(&provider_id_1).unwrap(); + assert_eq!(last_tick_provider_submitted_proof, 1); + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(&provider_id_2).unwrap(); + assert_eq!(last_tick_provider_submitted_proof, 1); + + // Check that Provider 1's deadline was set to `challenge_period + challenge_ticks_tolerance` + // after the initialisation. + let stake = as ReadChallengeableProvidersInterface>::get_stake( + provider_id_1, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = last_tick_provider_submitted_proof + challenge_period_plus_tolerance; + let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id_1); + assert_eq!(deadline, Some(())); + + // Let some blocks pass (less than `ChallengeTicksTolerance` blocks). + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Re-initialise the provider. + assert_ok!(ProofsDealer::initialise_challenge_cycle(&provider_id_1)); + + // Check that the Provider's last tick is the current now. + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(&provider_id_1).unwrap(); + let current_tick = ChallengesTicker::::get(); + assert_eq!(last_tick_provider_submitted_proof, current_tick); + + // Check that the Provider's deadline was set to `challenge_period + challenge_ticks_tolerance` + // after the initialisation. + let stake = as ReadChallengeableProvidersInterface>::get_stake( + provider_id_1, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let expected_deadline = + last_tick_provider_submitted_proof + challenge_period_plus_tolerance; + let deadline = TickToProvidersDeadlines::::get(expected_deadline, provider_id_1); + assert_eq!(deadline, Some(())); + + // Check that the Provider no longer has the previous deadline. + let deadline = TickToProvidersDeadlines::::get(prev_deadline, provider_id_1); + assert_eq!(deadline, None); + + // Advance beyond the previous deadline block and check that the Provider is not marked as slashable. + run_to_block(current_block + challenge_ticks_tolerance + 1); + assert!(!SlashableProviders::::contains_key(&provider_id_1)); + }); +} + +#[test] +fn proofs_dealer_trait_initialise_challenge_cycle_not_provider_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Mock a Provider ID. + let provider_id = BlakeTwo256::hash(b"provider_id"); + + // Expect failure since the user is not a provider. + assert_noop!( + ProofsDealer::initialise_challenge_cycle(&provider_id), + crate::Error::::NotProvider + ); + }); +} + +#[test] +fn submit_proof_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + let current_tick = ChallengesTicker::::get(); + let last_tick_provider_submitted_proof = current_tick; + LastTickProviderSubmittedAProofFor::::insert( + &provider_id, + last_tick_provider_submitted_proof, + ); + + // Set Provider's deadline for submitting a proof. + // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = current_tick + challenge_period_plus_tolerance; + TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in challenges { + key_proofs.insert( + challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic. + assert_ok!(ProofsDealer::submit_proof(user, proof.clone(), None)); + + // Check for event submitted. + System::assert_last_event( + Event::ProofAccepted { + provider: provider_id, + proof, + } + .into(), + ); + + // Check the new last time this provider submitted a proof. + let expected_new_tick = last_tick_provider_submitted_proof + challenge_period; + let new_last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(provider_id).unwrap(); + assert_eq!(expected_new_tick, new_last_tick_provider_submitted_proof); + + // Check that the Provider's deadline was pushed forward. + assert_eq!( + TickToProvidersDeadlines::::get(prev_deadline, provider_id), + None + ); + let new_deadline = expected_new_tick + challenge_period + challenge_ticks_tolerance; + assert_eq!( + TickToProvidersDeadlines::::get(new_deadline, provider_id), + Some(()), + ); + }); +} + +#[test] +fn submit_proof_adds_provider_to_valid_submitters_set() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + let current_tick = ChallengesTicker::::get(); + let last_tick_provider_submitted_proof = current_tick; + LastTickProviderSubmittedAProofFor::::insert( + &provider_id, + last_tick_provider_submitted_proof, + ); + + // Set Provider's deadline for submitting a proof. + // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = current_tick + challenge_period_plus_tolerance; + TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); + + // Advance to the next challenge the Provider should listen to. + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in challenges { + key_proofs.insert( + challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic. + assert_ok!(ProofsDealer::submit_proof(user, proof.clone(), None)); + + // Check for event submitted. + System::assert_last_event( + Event::ProofAccepted { + provider: provider_id, + proof, + } + .into(), + ); + + // Check that the Provider is in the valid submitters set. + assert!( + ValidProofSubmittersLastTicks::::get(ChallengesTicker::::get()) + .unwrap() + .contains(&provider_id) + ); + }); +} + +#[test] +fn submit_proof_submitted_by_not_a_provider_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Register user as a Provider in Providers pallet. + // The registered Provider ID will be different from the one that will be used in the proof. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to that Provider and hold some so it has a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in challenges { + key_proofs.insert( + challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic. + assert_ok!(ProofsDealer::submit_proof( + RuntimeOrigin::signed(2), + proof, + Some(provider_id) + )); + }); +} + +#[test] +fn submit_proof_with_checkpoint_challenges_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof tick. + let last_tick_provider_submitted_proof = System::block_number(); + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let mut challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Set last checkpoint challenge block to be equal to the last tick this provider has submitted + // a proof for, so that custom challenges will be taken into account in proof verification. + let checkpoint_challenge_block = last_tick_provider_submitted_proof; + LastCheckpointTick::::set(checkpoint_challenge_block); + + // Make up custom challenges. + let custom_challenges = BoundedVec::try_from(vec![ + (BlakeTwo256::hash(b"custom_challenge_1"), None), + (BlakeTwo256::hash(b"custom_challenge_2"), None), + ]) + .unwrap(); + + // Set custom challenges in checkpoint block. + TickToCheckpointChallenges::::insert( + checkpoint_challenge_block, + custom_challenges.clone(), + ); + + // Add custom challenges to the challenges vector. + challenges.extend(custom_challenges.iter().map(|(challenge, _)| *challenge)); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in &challenges { + key_proofs.insert( + *challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic. + assert_ok!(ProofsDealer::submit_proof(user, proof, None)); + }); +} + +#[test] +fn submit_proof_with_checkpoint_challenges_mutations_success() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: 1000, + capacity_used: 100, + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Increment the used capacity of BSPs in the Providers pallet. + pallet_storage_providers::UsedBspsCapacity::::set(100); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Create a dynamic-rate payment stream between the user and the Provider. + pallet_payment_streams::DynamicRatePaymentStreams::::insert( + &provider_id, + &1, + pallet_payment_streams::types::DynamicRatePaymentStream { + amount_provided: 10, + price_index_when_last_charged: pallet_payment_streams::AccumulatedPriceIndex::::get(), + user_deposit: 10 * <::NewStreamDeposit as Get>::get() as u128 * pallet_payment_streams::CurrentPricePerUnitPerTick::::get(), + out_of_funds_tick: None, + }, + ); + + // Set Provider's last submitted proof tick. + let last_tick_provider_submitted_proof = System::block_number(); + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let mut challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Set last checkpoint challenge block to be equal to the last tick this provider has submitted + // a proof for, so that custom challenges will be taken into account in proof verification. + let checkpoint_challenge_block = last_tick_provider_submitted_proof; + LastCheckpointTick::::set(checkpoint_challenge_block); + + // Make up custom challenges. + let custom_challenges = BoundedVec::try_from(vec![ + ( + BlakeTwo256::hash(b"custom_challenge_1"), + Some(TrieRemoveMutation::default()), + ), + ( + BlakeTwo256::hash(b"custom_challenge_2"), + Some(TrieRemoveMutation::default()), + ), + ]) + .unwrap(); + + // Set custom challenges in checkpoint block. + TickToCheckpointChallenges::::insert( + checkpoint_challenge_block, + custom_challenges.clone(), + ); + + // Add custom challenges to the challenges vector. + challenges.extend(custom_challenges.iter().map(|(challenge, _)| *challenge)); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in &challenges { + key_proofs.insert( + *challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic. + assert_ok!(ProofsDealer::submit_proof(user, proof, None)); + + // Check that the event for mutations applied is emitted. + System::assert_has_event( + Event::MutationsApplied { + provider: provider_id, + mutations: custom_challenges + .iter() + .map(|(key, mutation)| (*key, mutation.clone().unwrap())) + .collect(), + new_root: challenges.last().unwrap().clone(), + } + .into(), + ); + + // Check if root of the provider was updated the last challenge key + // Note: The apply_delta method is applying the mutation the root of the provider for every challenge key. + // This is to avoid having to construct valid tries and proofs. + let root = + <::ProvidersPallet as ReadChallengeableProvidersInterface>::get_root(provider_id) + .unwrap(); + assert_eq!(root.as_ref(), challenges.last().unwrap().as_ref()); + }); +} + +#[test] +fn submit_proof_with_checkpoint_challenges_mutations_fails_if_decoded_metadata_is_invalid() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: 1000, + capacity_used: 100, + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Increment the used capacity of BSPs in the Providers pallet. + pallet_storage_providers::UsedBspsCapacity::::set(100); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Create a dynamic-rate payment stream between the user and the Provider. + pallet_payment_streams::DynamicRatePaymentStreams::::insert( + &provider_id, + &1, + pallet_payment_streams::types::DynamicRatePaymentStream { + amount_provided: 10, + price_index_when_last_charged: + pallet_payment_streams::AccumulatedPriceIndex::::get(), + user_deposit: 10 + * <::NewStreamDeposit as Get>::get( + ) as u128 + * pallet_payment_streams::CurrentPricePerUnitPerTick::::get(), + out_of_funds_tick: None, + }, + ); + + // Set Provider's last submitted proof tick. + let last_tick_provider_submitted_proof = System::block_number(); + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let mut challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Set last checkpoint challenge block to be equal to the last tick this provider has submitted + // a proof for, so that custom challenges will be taken into account in proof verification. + let checkpoint_challenge_block = last_tick_provider_submitted_proof; + LastCheckpointTick::::set(checkpoint_challenge_block); + + // Make up custom challenges. + let custom_challenges = BoundedVec::try_from(vec![ + ( + [0; BlakeTwo256::LENGTH].into(), // Challenge that will return invalid metadata + Some(TrieRemoveMutation::default()), + ), + ( + BlakeTwo256::hash(b"custom_challenge_2"), + Some(TrieRemoveMutation::default()), + ), + ]) + .unwrap(); + + // Set custom challenges in checkpoint block. + TickToCheckpointChallenges::::insert( + checkpoint_challenge_block, + custom_challenges.clone(), + ); + + // Add custom challenges to the challenges vector. + challenges.extend(custom_challenges.iter().map(|(challenge, _)| *challenge)); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in &challenges { + key_proofs.insert( + *challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic and it fails because of the invalid metadata. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::FailedToApplyDelta + ); + }); +} + +#[test] +fn submit_proof_caller_not_a_provider_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs: Default::default(), + }; + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::NotProvider + ); + }); +} + +#[test] +fn submit_proof_provider_passed_not_registered_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs: Default::default(), + }; + + // Creating a Provider ID but not registering it. + let provider_id = BlakeTwo256::hash(b"provider_id"); + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::submit_proof(user, proof, Some(provider_id)), + crate::Error::::NotProvider + ); + }); +} + +#[test] +fn submit_proof_empty_key_proofs_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs: Default::default(), + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::EmptyKeyProofs + ); + }); +} + +#[test] +fn submit_proof_no_record_of_last_proof_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::NoRecordOfLastSubmittedProof + ); + }); +} + +#[test] +fn submit_proof_challenges_block_not_reached_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, 1); + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::ChallengesTickNotReached + ); + }); +} + +#[test] +#[should_panic( + expected = "internal error: entered unreachable code: Challenges tick is too old, beyond the history this pallet keeps track of. This should not be possible." +)] +fn submit_proof_challenges_block_too_old_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, 1); + + // Advance more than `ChallengeHistoryLength` blocks. + let challenge_history_length: u64 = ChallengeHistoryLengthFor::::get(); + run_to_block(challenge_history_length * 2); + + // Dispatch challenge extrinsic. + let _ = ProofsDealer::submit_proof(user, proof, None); + }); +} + +#[test] +#[should_panic( + expected = "internal error: entered unreachable code: Seed for challenges tick not found, when checked it should be within history." +)] +fn submit_proof_seed_not_found_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, 1); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Remove challenge seed for challenge block. + TickToChallengesSeed::::remove(challenge_block); + + // Dispatch challenge extrinsic. + let _ = ProofsDealer::submit_proof(user, proof, None); + }); +} + +#[test] +#[should_panic( + expected = "internal error: entered unreachable code: Checkpoint challenges not found, when dereferencing in last registered checkpoint challenge block." +)] +fn submit_proof_checkpoint_challenge_not_found_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: (2 * 100) as u64, + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Set random seed for this block challenges. + let seed = BlakeTwo256::hash(b"seed"); + TickToChallengesSeed::::insert(System::block_number(), seed); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Set last checkpoint challenge block to something before the challenge tick + // that is being submitted. + let checkpoint_challenge_block = 1; + LastCheckpointTick::::set(checkpoint_challenge_block); + + // Dispatch challenge extrinsic. + let _ = ProofsDealer::submit_proof(user, proof, None); + }); +} + +#[test] +fn submit_proof_forest_proof_verification_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Mock key proofs. + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + + // Create an empty forest proof to fail verification. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Dispatch challenge extrinsic. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::ForestProofVerificationFailed + ); + }); +} + +#[test] +fn submit_proof_no_key_proofs_for_keys_verified_in_forest_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Creating empty key proof to fail verification. + let mut key_proofs = BTreeMap::new(); + key_proofs.insert( + BlakeTwo256::hash(b"key"), + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![], + }, + challenge_count: Default::default(), + }, + ); + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Dispatch challenge extrinsic. + // The forest proof will pass because it's not empty, so the MockVerifier will accept it, + // and it will return the generated challenges as keys proven. The key proofs are an empty + // vector, so it will fail saying that there are no key proofs for the keys proven. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::KeyProofNotFound + ); + }); +} + +#[test] +fn submit_proof_out_checkpoint_challenges_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Set random seed for this block challenges. + let seed = BlakeTwo256::hash(b"seed"); + TickToChallengesSeed::::insert(System::block_number(), seed); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Set last checkpoint challenge block. + let checkpoint_challenge_block = System::block_number() + 1; + LastCheckpointTick::::set(checkpoint_challenge_block); + + // Make up custom challenges. + let custom_challenges = BoundedVec::try_from(vec![ + (BlakeTwo256::hash(b"custom_challenge_1"), None), + (BlakeTwo256::hash(b"custom_challenge_2"), None), + ]) + .unwrap(); + + // Set custom challenges in checkpoint block. + TickToCheckpointChallenges::::insert( + checkpoint_challenge_block, + custom_challenges.clone(), + ); + + // Creating a vec of empty key proofs for each challenge, to fail verification. + let mut key_proofs = BTreeMap::new(); + for challenge in challenges { + key_proofs.insert( + challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Dispatch challenge extrinsic. + // The forest proof will pass because it's not empty, so the MockVerifier will accept it, + // and it will return the generated challenges as keys proven. The key proofs only contain + // proofs for the regular challenges, not the checkpoint challenges, so it will fail saying + // that there are no key proofs for the keys proven. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::KeyProofNotFound + ); + }); +} + +#[test] +fn submit_proof_key_proof_verification_fail() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Create user and add funds to the account. + let user = RuntimeOrigin::signed(1); + let user_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + user_balance + )); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Hold some of the Provider's balance so it simulates it having a stake. + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + user_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + LastTickProviderSubmittedAProofFor::::insert(&provider_id, System::block_number()); + + // Advance to the next challenge the Provider should listen to. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for challenge block. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Creating a vec of empty key proofs for each challenge, to fail verification. + let mut key_proofs = BTreeMap::new(); + for challenge in challenges { + key_proofs.insert( + challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Dispatch challenge extrinsic. + // The forest proof will pass because it's not empty, so the MockVerifier will accept it, + // and it will return the generated challenges as keys proven. There will be key proofs + // for each key proven, but they are empty, so it will fail saying that the verification + // failed. + assert_noop!( + ProofsDealer::submit_proof(user, proof, None), + crate::Error::::KeyProofVerificationFailed + ); + }); +} + +#[test] +fn new_challenges_round_random_and_checkpoint_challenges() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Run a block and check that the random challenge was emitted. + run_to_block(2); + + // Build the expected random seed. + let challenges_ticker = ChallengesTicker::::get().encode(); + let challenges_ticker: &[u8] = challenges_ticker.as_ref(); + let subject = [challenges_ticker, &System::block_number().to_le_bytes()].concat(); + let hashed_subject = blake2_256(&subject); + let expected_seed = H256::from_slice(&hashed_subject); + + // Check that the event is emitted. + // This would be the first time the random seed is emitted. + System::assert_last_event( + Event::NewChallengeSeed { + challenges_ticker: 2, + seed: expected_seed, + } + .into(), + ); + + // Run another block and check that the random challenge was emitted. + run_to_block(3); + + // Build the expected random seed. + let challenges_ticker = ChallengesTicker::::get().encode(); + let challenges_ticker: &[u8] = challenges_ticker.as_ref(); + let subject: Vec = [ + challenges_ticker, + &frame_system::Pallet::::block_number().to_le_bytes(), + ] + .concat(); + let hashed_subject = blake2_256(&subject); + let expected_seed = H256::from_slice(&hashed_subject); + + // Check that the event is emitted. + // This would be the second time the random seed is emitted. + System::assert_last_event( + Event::NewChallengeSeed { + challenges_ticker: 3, + seed: expected_seed, + } + .into(), + ); + + // Run until the next checkpoint challenge block. + let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); + run_to_block(checkpoint_challenge_period); + + // Expect an empty set of checkpoint challenges. + let challenges_ticker = ChallengesTicker::::get(); + let checkpoint_challenges = + TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); + assert_eq!(checkpoint_challenges.len(), 0); + + // Check that the event is emitted. + System::assert_last_event( + Event::NewCheckpointChallenge { + challenges_ticker, + challenges: Default::default(), + } + .into(), + ); + }); +} + +#[test] +fn new_challenges_round_random_challenges_cleanup() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Run until block number `ChallengesHistoryLength` + 1. + let challenges_history_length: u64 = ChallengeHistoryLengthFor::::get(); + run_to_block(challenges_history_length + 1u64); + + // Check that the challenge seed for block 1 is not found. + assert_eq!( + TickToChallengesSeed::::get(1), + None, + "Challenge seed for block 1 should not be found." + ); + + // Check that the challenge seed exists for block 2. + let challenges_ticker = 2u64.encode(); + let challenges_ticker: &[u8] = challenges_ticker.as_ref(); + let subject: Vec = [challenges_ticker, &2u64.to_le_bytes()].concat(); + let hashed_subject = blake2_256(&subject); + let expected_seed = H256::from_slice(&hashed_subject); + assert_eq!( + TickToChallengesSeed::::get(2), + Some(expected_seed), + "Challenge seed for block 2 should be found." + ); + }); +} + +#[test] +fn new_challenges_round_checkpoint_challenges_cleanup() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Run until block number 2 * `CheckpointChallengePeriod`. + let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); + run_to_block(checkpoint_challenge_period * 2); + + // Check that the checkpoint challenge for block `checkpoint_challenge_period` is not found. + assert_eq!( + TickToCheckpointChallenges::::get(checkpoint_challenge_period), + None, + "Checkpoint challenge for block `CheckpointChallengePeriod` should not be found." + ); + + // Check that the checkpoint challenge exists for block `checkpoint_challenge_period * 2`. + assert_eq!( + TickToCheckpointChallenges::::get(checkpoint_challenge_period * 2), + Some(Default::default()), + "Checkpoint challenge for block `CheckpointChallengePeriod * 2` should be found." + ) + }); +} + +#[test] +fn new_challenges_round_checkpoint_challenges_with_custom_challenges() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Add custom challenges to the challenges vector. + let key_challenged = BlakeTwo256::hash(b"key_challenged"); + assert_ok!( as ProofsDealerInterface>::challenge( + &key_challenged + )); + + // Add priority challenge to the challenges vector. + let priority_key_challenged = BlakeTwo256::hash(b"priority_key_challenged"); + assert_ok!( + as ProofsDealerInterface>::challenge_with_priority( + &priority_key_challenged, + Some(TrieRemoveMutation::default()) + ) + ); + + // Run until the next checkpoint challenge block. + let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); + run_to_block(checkpoint_challenge_period); + + // Expect checkpoint challenges to be emitted, with the priority first. + let challenges_ticker = ChallengesTicker::::get(); + let checkpoint_challenges = + TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); + assert_eq!(checkpoint_challenges.len(), 2); + assert_eq!( + checkpoint_challenges[0], + (priority_key_challenged, Some(TrieRemoveMutation::default())) + ); + assert_eq!(checkpoint_challenges[1], (key_challenged, None)); + }); +} + +#[test] +fn new_challenges_round_max_custom_challenges() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Add max amount of custom challenges to the challenges vector. + let max_custom_challenges = ChallengesQueueLengthFor::::get(); + for i in 0..max_custom_challenges { + let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); + assert_ok!( as ProofsDealerInterface>::challenge( + &key_challenged + )); + } + + // Add another custom challenge. It should fail. + assert_err!( + as ProofsDealerInterface>::challenge(&BlakeTwo256::hash( + b"key_challenged" + )), + crate::Error::::ChallengesQueueOverflow + ); + + // Add max amount of priority challenges to the challenges vector. + let max_priority_challenges = ChallengesQueueLengthFor::::get(); + for i in 0..max_priority_challenges { + let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); + assert_ok!( + as ProofsDealerInterface>::challenge_with_priority( + &key_challenged, + Some(TrieRemoveMutation::default()) + ) + ); + } + + // Add another priority challenge. It should fail. + assert_err!( + as ProofsDealerInterface>::challenge_with_priority( + &BlakeTwo256::hash(b"key_challenged"), + Some(TrieRemoveMutation::default()) + ), + crate::Error::::PriorityChallengesQueueOverflow + ); + + // Check how many checkpoint challenges round are needed to evacuate all the queue. + let queue_length: u32 = ChallengesQueueLengthFor::::get(); + let custom_challenges_per_round: u32 = MaxCustomChallengesPerBlockFor::::get(); + let mut checkpoint_challenge_rounds_needed = queue_length / custom_challenges_per_round; + if queue_length % custom_challenges_per_round != 0 { + checkpoint_challenge_rounds_needed += 1; + } + + // Run until the next checkpoint challenge round. + let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); + run_to_block(checkpoint_challenge_period); + + // Expect checkpoint challenges to be emitted, with the priority first. + let challenges_ticker = ChallengesTicker::::get(); + let checkpoint_challenges = + TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); + assert_eq!( + checkpoint_challenges.len(), + custom_challenges_per_round as usize + ); + for i in 0..checkpoint_challenges.len() { + let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); + assert_eq!( + checkpoint_challenges[i], + (key_challenged, Some(TrieRemoveMutation::default())) + ); + } + + // Run until the needed checkpoint challenge block. + let checkpoint_challenge_period: u64 = CheckpointChallengePeriodFor::::get(); + run_to_block(checkpoint_challenge_period * checkpoint_challenge_rounds_needed as u64); + + // The length of the checkpoint challenges should be max, because even if the priority + // challenges don't fill the queue, the custom challenges will. + let challenges_ticker = ChallengesTicker::::get(); + let checkpoint_challenges = + TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); + assert_eq!( + checkpoint_challenges.len(), + custom_challenges_per_round as usize + ); + + // Expect the last priority challenges in the priority queue to be emitted first. + let last_priority_challenges_amount = if queue_length % custom_challenges_per_round == 0 { + custom_challenges_per_round + } else { + queue_length % custom_challenges_per_round + }; + let last_priority_challenges_start_index = + (checkpoint_challenge_rounds_needed - 1) * custom_challenges_per_round; + for i in 0..last_priority_challenges_amount { + let key_challenged = BlakeTwo256::hash( + &((last_priority_challenges_start_index + i) as usize).to_le_bytes(), + ); + assert_eq!( + checkpoint_challenges[i as usize], + (key_challenged, Some(TrieRemoveMutation::default())) + ); + } + + // Check that the last checkpoint challenges contain the custom challenges, if there was + // enough space in this challenge round. + let checkpoint_challenges_start_index = if queue_length % custom_challenges_per_round == 0 { + custom_challenges_per_round + } else { + queue_length % custom_challenges_per_round + }; + let checkpoint_challenges_amount = + custom_challenges_per_round - checkpoint_challenges_start_index; + for i in 0..checkpoint_challenges_amount { + let key_challenged = BlakeTwo256::hash(&(i as usize).to_le_bytes()); + assert_eq!( + checkpoint_challenges[(checkpoint_challenges_start_index + i) as usize], + (key_challenged, None) + ); + } + + // Run until the custom challenges are all evacuated. + let mut checkpoint_challenge_rounds_needed = queue_length / custom_challenges_per_round * 2; + if queue_length % custom_challenges_per_round != 0 { + checkpoint_challenge_rounds_needed += 1; + } + run_to_block(checkpoint_challenge_period * checkpoint_challenge_rounds_needed as u64); + + // The last checkpoint challenge should be the last custom challenge. + let challenges_ticker = ChallengesTicker::::get(); + let checkpoint_challenges = + TickToCheckpointChallenges::::get(challenges_ticker).unwrap(); + let last_checkpoint_challenge = &checkpoint_challenges[checkpoint_challenges.len() - 1]; + assert_eq!( + last_checkpoint_challenge, + &( + BlakeTwo256::hash(&((queue_length - 1) as usize).to_le_bytes()), + None + ) + ) + }); +} + +#[test] +fn new_challenges_round_provider_marked_as_slashable() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to that Provider and hold some so it has a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + let current_tick = ChallengesTicker::::get(); + let prev_tick_provider_submitted_proof = current_tick; + LastTickProviderSubmittedAProofFor::::insert( + &provider_id, + prev_tick_provider_submitted_proof, + ); + + // Set Provider's deadline for submitting a proof. + // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = current_tick + challenge_period_plus_tolerance; + TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); + + // Check that Provider is not in the SlashableProviders storage map. + assert!(!SlashableProviders::::contains_key(&provider_id)); + + // Advance to the deadline block for this Provider. + run_to_block(prev_deadline); + + // Check event of provider being marked as slashable. + System::assert_has_event( + Event::SlashableProvider { + provider: provider_id, + next_challenge_deadline: prev_deadline + challenge_period, + } + .into(), + ); + + // Check that Provider is in the SlashableProviders storage map. + assert!(SlashableProviders::::contains_key(&provider_id)); + assert_eq!( + SlashableProviders::::get(&provider_id), + Some(::RandomChallengesPerBlock::get()) + ); + + // Check the new last time this provider submitted a proof. + let current_tick_provider_submitted_proof = + prev_tick_provider_submitted_proof + challenge_period; + let new_last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(provider_id).unwrap(); + assert_eq!( + current_tick_provider_submitted_proof, + new_last_tick_provider_submitted_proof + ); + + // Check that the Provider's deadline was pushed forward. + assert_eq!( + TickToProvidersDeadlines::::get(prev_deadline, provider_id), + None + ); + let new_deadline = + new_last_tick_provider_submitted_proof + challenge_period + challenge_ticks_tolerance; + assert_eq!( + TickToProvidersDeadlines::::get(new_deadline, provider_id), + Some(()), + ); + }); +} + +#[test] +fn multiple_new_challenges_round_provider_accrued_many_failed_proof_submissions() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to that Provider and hold some so it has a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different from the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + let prev_tick_provider_submitted_proof = ChallengesTicker::::get(); + LastTickProviderSubmittedAProofFor::::insert( + &provider_id, + prev_tick_provider_submitted_proof, + ); + + // New challenges round + let current_tick = ChallengesTicker::::get(); + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = current_tick + challenge_period_plus_tolerance; + + TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); + + // Check that Provider is not in the SlashableProviders storage map. + assert!(!SlashableProviders::::contains_key(&provider_id)); + + // Set last checkpoint challenge block. + let checkpoint_challenge_block = 1; + LastCheckpointTick::::set(checkpoint_challenge_block); + + // Make up custom challenges. + let custom_challenges = BoundedVec::try_from(vec![ + (BlakeTwo256::hash(b"custom_challenge_1"), None), + (BlakeTwo256::hash(b"custom_challenge_2"), None), + ]) + .unwrap(); + + // Set custom challenges in checkpoint block. + TickToCheckpointChallenges::::insert( + checkpoint_challenge_block, + custom_challenges.clone(), + ); + + // Advance to the deadline block for this Provider. + run_to_block(prev_deadline); + + let next_challenge_deadline = prev_deadline + challenge_period; + // Check event of provider being marked as slashable. + System::assert_has_event( + Event::SlashableProvider { + provider: provider_id, + next_challenge_deadline, + } + .into(), + ); + + // Check that Provider is in the SlashableProviders storage map. + assert!(SlashableProviders::::contains_key(&provider_id)); + + let random_challenges_per_block: u32 = + ::RandomChallengesPerBlock::get(); + + let missed_proof_submissions = random_challenges_per_block.saturating_add(2); + + assert_eq!( + SlashableProviders::::get(&provider_id), + Some(missed_proof_submissions) + ); + + // New challenges round + let current_tick = ChallengesTicker::::get(); + let prev_deadline = current_tick + challenge_period; + TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); + + // Advance to the deadline block for this Provider. + run_to_block(next_challenge_deadline); + + // Check event of provider being marked as slashable. + System::assert_has_event( + Event::SlashableProvider { + provider: provider_id, + next_challenge_deadline: prev_deadline + challenge_period, + } + .into(), + ); + + // Check that Provider is in the SlashableProviders storage map. + assert!(SlashableProviders::::contains_key(&provider_id)); + assert_eq!( + SlashableProviders::::get(&provider_id), + Some(random_challenges_per_block.saturating_add(missed_proof_submissions)) + ); + }); +} + +#[test] +fn new_challenges_round_bad_provider_marked_as_slashable_but_good_no() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Register Alice as a Provider in Providers pallet. + let alice_provider_id = BlakeTwo256::hash(b"alice_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + alice_provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &alice_provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to Alice and hold some so it has a stake. + let alice_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + alice_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + alice_balance / 100 + )); + + // Register Bob as a Provider in Providers pallet. + let bob_provider_id = BlakeTwo256::hash(b"bob_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &2, + bob_provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &bob_provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 2u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to Bob and hold some so it has a stake. + let bob_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &2, + bob_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &2, + bob_balance / 100 + )); + + // Set Alice and Bob's root to be an arbitrary value, different than the default root, + // to simulate that they are actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &alice_provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + pallet_storage_providers::BackupStorageProviders::::mutate( + &bob_provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Alice and Bob's last submitted proof block. + let current_tick = ChallengesTicker::::get(); + let last_interval_tick = current_tick; + LastTickProviderSubmittedAProofFor::::insert(&alice_provider_id, last_interval_tick); + LastTickProviderSubmittedAProofFor::::insert(&bob_provider_id, last_interval_tick); + + // Set Alice and Bob's deadline for submitting a proof. + // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + alice_provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = current_tick + challenge_period_plus_tolerance; + TickToProvidersDeadlines::::insert(prev_deadline, alice_provider_id, ()); + TickToProvidersDeadlines::::insert(prev_deadline, bob_provider_id, ()); + + // Check that Alice and Bob are not in the SlashableProviders storage map. + assert!(!SlashableProviders::::contains_key( + &alice_provider_id + )); + assert!(!SlashableProviders::::contains_key(&bob_provider_id)); + + // Advance to the next challenge Alice and Bob should listen to. + let current_block = System::block_number(); + let challenge_block = current_block + challenge_period; + run_to_block(challenge_block); + // Advance less than `ChallengeTicksTolerance` blocks. + let current_block = System::block_number(); + run_to_block(current_block + challenge_ticks_tolerance - 1); + + // Get the seed for block 2. + let seed = TickToChallengesSeed::::get(challenge_block).unwrap(); + + // Calculate challenges from seed, so that we can mock a key proof for each. + let challenges = crate::Pallet::::generate_challenges_from_seed( + seed, + &alice_provider_id, + RandomChallengesPerBlockFor::::get(), + ); + + // Creating a vec of proofs with some content to pass verification. + let mut key_proofs = BTreeMap::new(); + for challenge in challenges { + key_proofs.insert( + challenge, + KeyProof:: { + proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + challenge_count: Default::default(), + }, + ); + } + + // Mock a proof. + let proof = Proof:: { + forest_proof: CompactProof { + encoded_nodes: vec![vec![0]], + }, + key_proofs, + }; + + // Have Alice submit a proof. + assert_ok!(ProofsDealer::submit_proof( + RuntimeOrigin::signed(1), + proof.clone(), + None + )); + + // Check for event submitted. + System::assert_last_event( + Event::ProofAccepted { + provider: alice_provider_id, + proof, + } + .into(), + ); + + // Advance to the deadline block for this Provider. + run_to_block(prev_deadline); + + System::assert_has_event( + Event::SlashableProvider { + provider: bob_provider_id, + next_challenge_deadline: prev_deadline + challenge_period, + } + .into(), + ); + + // Check that Bob is in the SlashableProviders storage map and that Alice is not. + assert!(!SlashableProviders::::contains_key( + &alice_provider_id + )); + assert!(SlashableProviders::::contains_key(&bob_provider_id)); + assert_eq!( + SlashableProviders::::get(&bob_provider_id), + Some(::RandomChallengesPerBlock::get()) + ); + + // Check the new last tick interval for Alice and Bob. + let expected_new_tick = last_interval_tick + challenge_period; + let new_last_interval_tick_alice = + LastTickProviderSubmittedAProofFor::::get(alice_provider_id).unwrap(); + assert_eq!(expected_new_tick, new_last_interval_tick_alice); + let new_last_interval_tick_bob = + LastTickProviderSubmittedAProofFor::::get(bob_provider_id).unwrap(); + assert_eq!(expected_new_tick, new_last_interval_tick_bob); + + assert_eq!( + TickToProvidersDeadlines::::get(prev_deadline, alice_provider_id), + None + ); + assert_eq!( + TickToProvidersDeadlines::::get(prev_deadline, bob_provider_id), + None + ); + + // Check that the both Alice and Bob's deadlines were pushed forward. + let new_deadline = expected_new_tick + challenge_period_plus_tolerance; + assert_eq!( + TickToProvidersDeadlines::::get(new_deadline, alice_provider_id), + Some(()), + ); + assert_eq!( + TickToProvidersDeadlines::::get(new_deadline, bob_provider_id), + Some(()), + ); + }); +} + +#[test] +fn challenges_ticker_paused_works() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Get the current tick. + let current_tick = ChallengesTicker::::get(); + + // Set the challenges ticker to paused. + assert_ok!(ProofsDealer::set_paused(RuntimeOrigin::root(), true)); + + // Assert event emitted. + System::assert_last_event(Event::::ChallengesTickerSet { paused: true }.into()); + + // Advance a number of blocks. + let current_block = System::block_number(); + run_to_block(current_block + 10); + + // Check that the challenges ticker is still the same. + assert_eq!(ChallengesTicker::::get(), current_tick); + + // Unpause the challenges ticker. + assert_ok!(ProofsDealer::set_paused(RuntimeOrigin::root(), false)); + + // Assert event emitted. + System::assert_last_event(Event::::ChallengesTickerSet { paused: false }.into()); + + // Advance a number of blocks. + let current_block = System::block_number(); + run_to_block(current_block + 10); + + // Check that the challenges ticker is now incremented. + assert_eq!(ChallengesTicker::::get(), current_tick + 10); + }); +} + +#[test] +fn challenges_ticker_block_considered_full_with_max_normal_weight() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Simulate a full block. + System::set_block_number(System::block_number() + 1); + + // Starting with `on_poll` hook. + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Set normal weight used to be the maximum. + let weights: BlockWeights = ::BlockWeights::get(); + let max_weight_normal = weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block); + let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => max_weight_normal, + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(max_block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + + // Get the current count of non-full blocks. + let blocks_not_full = NotFullBlocksCount::::get(); + + // In the next block, after executing `on_poll`, `NonFullBlocksCount` should NOT be incremented. + System::set_block_number(System::block_number() + 1); + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + assert_eq!(NotFullBlocksCount::::get(), blocks_not_full); + }); +} + +#[test] +fn challenges_ticker_block_considered_full_with_weight_left_smaller_than_headroom() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Simulate an almost full block. + System::set_block_number(System::block_number() + 1); + + // Starting with `on_poll` hook. + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Set weight used to NOT leave headroom. + let headroom_weight = BlockFullnessHeadroomFor::::get(); + let weights: BlockWeights = ::BlockWeights::get(); + let max_weight_normal = weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block); + let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => max_weight_normal - headroom_weight + Weight::from_parts(1, 0), + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(max_block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + + // Get the current count of non-full blocks. + let blocks_not_full = NotFullBlocksCount::::get(); + + // In the next block, after executing `on_poll`, `NonFullBlocksCount` should NOT be incremented. + System::set_block_number(System::block_number() + 1); + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + assert_eq!(NotFullBlocksCount::::get(), blocks_not_full); + }); +} + +#[test] +fn challenges_ticker_block_considered_not_full_with_weight_left_equal_to_headroom() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Simulate a block with exactly headroom weight left. + System::set_block_number(System::block_number() + 1); + + // Starting with `on_poll` hook. + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Set weight used to leave headroom. + let headroom_weight = BlockFullnessHeadroomFor::::get(); + let weights: BlockWeights = ::BlockWeights::get(); + let max_weight_normal = weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block); + let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => max_weight_normal.saturating_sub(headroom_weight), + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(max_block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + + // Get the current count of non-full blocks. + let blocks_not_full = NotFullBlocksCount::::get(); + + // In the next block, after executing `on_poll`, `NonFullBlocksCount` should be incremented. + System::set_block_number(System::block_number() + 1); + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + assert_eq!(NotFullBlocksCount::::get(), blocks_not_full + 1); + }); +} + +#[test] +fn challenges_ticker_block_considered_not_full_with_weight_left_greater_than_headroom() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Simulate a not-full block. + System::set_block_number(System::block_number() + 1); + + // Starting with `on_poll` hook. + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + + // Set weight used to leave headroom. + let headroom_weight = BlockFullnessHeadroomFor::::get(); + let weights: BlockWeights = ::BlockWeights::get(); + let max_weight_normal = weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block); + let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => max_weight_normal.saturating_sub(headroom_weight.mul(2)), + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(max_block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + + // Get the current count of non-full blocks. + let blocks_not_full = NotFullBlocksCount::::get(); + + // In the next block, after executing `on_poll`, `NonFullBlocksCount` should be incremented. + System::set_block_number(System::block_number() + 1); + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + assert_eq!(NotFullBlocksCount::::get(), blocks_not_full + 1); + }); +} + +#[test] +fn challenges_ticker_paused_only_after_tolerance_blocks() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Tick counter should be 1 while in block 1. + assert_eq!(ChallengesTicker::::get(), 1); + + // Go until `BlockFullnessPeriodFor` blocks, with spammed blocks. + let block_fullness_period = BlockFullnessPeriodFor::::get(); + run_to_block_spammed(block_fullness_period); + + // Assert that the challenges ticker is NOT paused, and the tick counter advanced `BlockFullnessPeriodFor`. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period); + + // Go one more block beyond `BlockFullnessPeriodFor`. + // Ticker should stop at this tick. + run_to_block_spammed(block_fullness_period + 1); + + // Assert that now the challenges ticker is paused, and the tick counter stopped at `BlockFullnessPeriodFor` + 1. + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + + // Going one block beyond, shouldn't increment the ticker. + run_to_block(block_fullness_period + 2); + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + }); +} + +#[test] +fn challenges_ticker_paused_when_less_than_min_not_full_blocks_ratio_are_not_full() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Tick counter should be 1 while in block 1. + assert_eq!(ChallengesTicker::::get(), 1); + + // Make sure there are `BlockFullnessPeriod * MinNotFullBlocksRatio` (floor) + // not-spammed blocks. Consider that the first block was not spammed. + let block_fullness_period: u64 = BlockFullnessPeriodFor::::get(); + let min_not_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); + let blocks_to_spam = min_not_full_blocks_ratio + .mul_floor(block_fullness_period) + .saturating_sub(1); + let current_block = System::block_number(); + run_to_block(current_block + blocks_to_spam); + + // Go until `BlockFullnessPeriodFor` blocks, with spammed blocks. + run_to_block_spammed(block_fullness_period); + + // Assert that the challenges ticker is NOT paused, and the tick counter advanced `BlockFullnessPeriod`. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period); + + // Go one more block beyond `BlockFullnessPeriod`. + // Ticker should stop at this tick. + run_to_block(block_fullness_period + 1); + + // Assert that now the challenges ticker is paused, and the tick counter stopped at `BlockFullnessPeriod` + 1. + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + + // Going one block beyond, shouldn't increment the ticker. + run_to_block(block_fullness_period + 2); + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + }); +} + +#[test] +fn challenges_ticker_not_paused_when_more_than_min_not_full_blocks_ratio_are_not_full() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Tick counter should be 1 while in block 1. + assert_eq!(ChallengesTicker::::get(), 1); + + // Make sure there are more than `BlockFullnessPeriod * MinNotFullBlocksRatio` (floor) + // not-spammed blocks. Consider that the first block was not spammed. + let block_fullness_period: u64 = BlockFullnessPeriodFor::::get(); + let min_not_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); + let blocks_to_spam = min_not_full_blocks_ratio + .mul_floor(block_fullness_period) + .saturating_sub(1); + let current_block = System::block_number(); + run_to_block(current_block + blocks_to_spam + 1); + + // Go until `BlockFullnessPeriodFor` blocks, with spammed blocks. + run_to_block_spammed(block_fullness_period); + + // Assert that the challenges ticker is NOT paused, and the tick counter advanced `BlockFullnessPeriod`. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period); + + // Go one more block beyond `BlockFullnessPeriod`. + // Ticker should NOT stop at this tick. + run_to_block(block_fullness_period + 1); + + // Assert that the challenges ticker is still NOT paused, and the tick counter continues. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + + // Going one block beyond, should increment the ticker. + run_to_block(block_fullness_period + 2); + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 2); + }); +} + +#[test] +fn challenges_ticker_not_paused_when_blocks_dont_run_on_poll() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Simulate multiple non-spammed blocks that don't run on `on_poll`. + // Like multi block migrations. + let block_fullness_period = BlockFullnessPeriodFor::::get(); + for _ in 1..block_fullness_period { + System::set_block_number(System::block_number() + 1); + + // Set weight used to zero (not-spammed). + let max_block_weight = ConsumedWeight::new(|class: DispatchClass| match class { + DispatchClass::Normal => Zero::zero(), + DispatchClass::Operational => Zero::zero(), + DispatchClass::Mandatory => Zero::zero(), + }); + BlockWeight::::set(max_block_weight); + + // Trigger on_finalize hook execution. + ProofsDealer::on_finalize(System::block_number()); + } + + // Get the current count of non-full blocks. Should be zero as `on_poll` was only run + // once in `run_to_block(1)`, taking into account the genesis block. In other words, not + // adding anything. + let blocks_not_full = NotFullBlocksCount::::get(); + assert_eq!(blocks_not_full, 0); + + // Current ticker should be 1. + assert_eq!(ChallengesTicker::::get(), 1); + + // In the next block, after executing `on_poll`, `NonFullBlocksCount` should be incremented. + System::set_block_number(System::block_number() + 1); + ProofsDealer::on_poll(System::block_number(), &mut WeightMeter::new()); + assert_eq!(NotFullBlocksCount::::get(), blocks_not_full + 1); + }); +} + +#[test] +fn challenges_ticker_unpaused_after_spam_finishes() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Tick counter should be 1 while in block 1. + assert_eq!(ChallengesTicker::::get(), 1); + + // Go until `BlockFullnessPeriod` blocks, with spammed blocks. + let block_fullness_period = BlockFullnessPeriodFor::::get(); + run_to_block_spammed(block_fullness_period); + + // Go one more block beyond `BlockFullnessPeriod`. + // Ticker should stop at this tick. + run_to_block_spammed(block_fullness_period + 1); + + // Going one block beyond, shouldn't increment the ticker. + run_to_block(block_fullness_period + 2); + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + + // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. + // We need to increase that number so that it is greater than `BlockFullnessPeriod * MinNotFullBlocksRatio`. + let blocks_not_full = NotFullBlocksCount::::get(); + let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); + let min_non_full_blocks: u64 = + min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); + let empty_blocks_to_advance = min_non_full_blocks + 1 - blocks_not_full; + + // Advance `empty_blocks_to_advance` blocks. + let current_ticker = ChallengesTicker::::get(); + let current_block = System::block_number(); + run_to_block(current_block + empty_blocks_to_advance); + + // Assert that the challenges ticker is NOT paused, but that the `ChallengesTicker` is still the same. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), current_ticker); + + // Advance one more block and assert that the challenges ticker increments. + run_to_block(current_block + empty_blocks_to_advance + 1); + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), current_ticker + 1); + }); +} + +#[test] +fn challenges_ticker_paused_twice() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Tick counter should be 1 while in block 1. + assert_eq!(ChallengesTicker::::get(), 1); + + // Go until `BlockFullnessPeriod` blocks, with spammed blocks. + let block_fullness_period = BlockFullnessPeriodFor::::get(); + run_to_block_spammed(block_fullness_period); + + // Go one more block beyond `BlockFullnessPeriod`. + // Ticker should stop at this tick. + run_to_block_spammed(block_fullness_period + 1); + + // Going one block beyond, shouldn't increment the ticker. + run_to_block(block_fullness_period + 2); + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!(ChallengesTicker::::get(), block_fullness_period + 1); + + // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. + // We need to increase that number so that it is greater than `BlockFullnessPeriod * MinNotFullBlocksRatio`. + let blocks_not_full = NotFullBlocksCount::::get(); + let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); + let min_non_full_blocks: u64 = + min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); + let empty_blocks_to_advance = min_non_full_blocks + 1 - blocks_not_full; + + // Advance `empty_blocks_to_advance` blocks. + let current_ticker = ChallengesTicker::::get(); + let current_block = System::block_number(); + run_to_block(current_block + empty_blocks_to_advance); + + // Assert that the challenges ticker is NOT paused, but that the `ChallengesTicker` is still the same. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), current_ticker); + + // Advance one more block and assert that the challenges ticker increments. + run_to_block(current_block + empty_blocks_to_advance + 1); + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), current_ticker + 1); + + // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. + // We need to decrease that number so that it is smaller or equal to`BlockFullnessPeriod * MinNotFullBlocksRatio`. + let mut blocks_not_full = NotFullBlocksCount::::get(); + let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); + let min_non_full_blocks: u64 = + min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); + + // We cannot just spam however many blocks of difference are in `blocks_not_full` - `min_non_full_blocks` + // because the oldest blocks being considered were also spammed. We would be adding new spammed blocks + // in the newest blocks, and removing them from the oldest ones. So we need to spam blocks until non-spammed + // blocks are old enough and start getting discarded. + let mut blocks_advanced = 0; + let current_ticker = ChallengesTicker::::get(); + while blocks_not_full > min_non_full_blocks { + let current_block = System::block_number(); + run_to_block_spammed(current_block + 1); + blocks_not_full = NotFullBlocksCount::::get(); + blocks_advanced += 1; + } + + // Assert that the challenges ticker IS paused, but that the `ChallengesTicker` has advanced `not_empty_blocks_to_advance`. + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!( + ChallengesTicker::::get(), + current_ticker + blocks_advanced + ); + + // Advance one more block and assert that the challenges ticker doesn't increment. + let current_block = System::block_number(); + run_to_block(current_block + 1); + assert!(ChallengesTickerPaused::::get().is_some()); + assert_eq!( + ChallengesTicker::::get(), + current_ticker + blocks_advanced + ); + }); +} + +#[test] +fn challenges_ticker_provider_not_slashed_if_network_spammed() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Go beyond `BlockFullnessPeriod` blocks, with not spammed blocks, to simulate + // an operational scenario already. + let block_fullness_period: u64 = BlockFullnessPeriodFor::::get(); + run_to_block(block_fullness_period + 1); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add balance to that Provider and hold some so it has a stake. + let provider_balance = 1_000_000_000_000_000; + assert_ok!(::NativeBalance::mint_into( + &1, + provider_balance + )); + assert_ok!(::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + &1, + provider_balance / 100 + )); + + // Set Provider's root to be an arbitrary value, different than the default root, + // to simulate that it is actually providing a service. + let root = BlakeTwo256::hash(b"1234"); + pallet_storage_providers::BackupStorageProviders::::mutate( + &provider_id, + |provider| { + provider.as_mut().expect("Provider should exist").root = root; + }, + ); + + // Set Provider's last submitted proof block. + let current_tick = ChallengesTicker::::get(); + let prev_tick_provider_submitted_proof = current_tick; + LastTickProviderSubmittedAProofFor::::insert( + &provider_id, + prev_tick_provider_submitted_proof, + ); + + // Set Provider's deadline for submitting a proof. + // It is the sum of this Provider's challenge period and the `ChallengesTicksTolerance`. + let providers_stake = + as ReadChallengeableProvidersInterface>::get_stake( + provider_id, + ) + .unwrap(); + let challenge_period = crate::Pallet::::stake_to_challenge_period(providers_stake); + let challenge_ticks_tolerance: u64 = ChallengeTicksToleranceFor::::get(); + let challenge_period_plus_tolerance = challenge_period + challenge_ticks_tolerance; + let prev_deadline = current_tick + challenge_period_plus_tolerance; + TickToProvidersDeadlines::::insert(prev_deadline, provider_id, ()); + + // Check that Provider is not in the SlashableProviders storage map. + assert!(!SlashableProviders::::contains_key(&provider_id)); + + // Up until this point, all blocks have been not-spammed, so the `NotFullBlocksCount` + // should be equal to `BlockFullnessPeriod`. + let current_not_full_blocks_count = NotFullBlocksCount::::get(); + assert_eq!(current_not_full_blocks_count, block_fullness_period); + + // Advance until the next challenge period block without spammed blocks. + let current_block = System::block_number(); + run_to_block(current_block + challenge_period); + + // Advance to the deadline block for this Provider, but with spammed blocks. + run_to_block_spammed(prev_deadline); + + // Check that Provider is NOT in the SlashableProviders storage map. + assert!(!SlashableProviders::::contains_key(&provider_id)); + + // Getting how many blocks have been considered NOT full from the last `BlockFullnessPeriod`. + // We need to increase that number so that it is greater than `BlockFullnessPeriod * MinNotFullBlocksRatio`. + let mut blocks_not_full = NotFullBlocksCount::::get(); + let min_non_full_blocks_ratio = MinNotFullBlocksRatioFor::::get(); + let min_non_full_blocks: u64 = + min_non_full_blocks_ratio.mul_floor(BlockFullnessPeriodFor::::get()); + + let current_ticker = ChallengesTicker::::get(); + while blocks_not_full <= min_non_full_blocks { + let current_block = System::block_number(); + run_to_block(current_block + 1); + blocks_not_full = NotFullBlocksCount::::get(); + } + + // Now the `ChallengesTicker` shouldn't be paused. But current ticker should be the same. + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), current_ticker); + + // Advancing one more block should increase the `ChallengesTicker` by one. + let current_block = System::block_number(); + run_to_block(current_block + 1); + assert!(ChallengesTickerPaused::::get().is_none()); + assert_eq!(ChallengesTicker::::get(), current_ticker + 1); + + // Get how many blocks until the deadline tick. + let current_ticker = ChallengesTicker::::get(); + let blocks_to_advance = prev_deadline - current_ticker; + let current_block = System::block_number(); + run_to_block(current_block + blocks_to_advance); + + // Check event of provider being marked as slashable. + System::assert_has_event( + Event::SlashableProvider { + provider: provider_id, + next_challenge_deadline: prev_deadline + challenge_period, + } + .into(), + ); + + // Check that Provider is in the SlashableProviders storage map. + assert!(SlashableProviders::::contains_key(&provider_id)); + assert_eq!( + SlashableProviders::::get(&provider_id), + Some(::RandomChallengesPerBlock::get()) + ); + + // Check the new last time this provider submitted a proof. + let current_tick_provider_submitted_proof = + prev_tick_provider_submitted_proof + challenge_period; + let new_last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(provider_id).unwrap(); + assert_eq!( + current_tick_provider_submitted_proof, + new_last_tick_provider_submitted_proof + ); + + // Check that the Provider's deadline was pushed forward. + assert_eq!( + TickToProvidersDeadlines::::get(prev_deadline, provider_id), + None + ); + let new_deadline = + new_last_tick_provider_submitted_proof + challenge_period + challenge_ticks_tolerance; + assert_eq!( + TickToProvidersDeadlines::::get(new_deadline, provider_id), + Some(()), + ); + }); +} + +#[test] +fn stake_to_challenge_period_saturates_properly() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + let stake_to_challenge_period = StakeToChallengePeriodFor::::get(); + let min_challenge_period: BlockNumberFor = MinChallengePeriodFor::::get(); + + // A provider with stake equal to `StakeToChallengePeriod` should have a challenge period equal to `MinChallengePeriod`. + assert_eq!( + crate::Pallet::::stake_to_challenge_period(stake_to_challenge_period), + min_challenge_period + ); + + // A provider with stake greater than `StakeToChallengePeriod` should have a challenge period equal to `MinChallengePeriod`. + assert_eq!( + crate::Pallet::::stake_to_challenge_period(stake_to_challenge_period * 2), + min_challenge_period + ); + + // A provider with stake 1 should have a challenge period equal to `StakeToChallengePeriod`. + assert_eq!( + crate::Pallet::::stake_to_challenge_period(1) as u128, + stake_to_challenge_period + ); + + // A provider with a stake somewhere in between should have a challenge period given by the formula. + let half_stake_to_challenge_period = + stake_to_challenge_period / (2 * min_challenge_period as u128); + assert_eq!( + crate::Pallet::::stake_to_challenge_period(half_stake_to_challenge_period), + 2 * min_challenge_period + ); + }); +} + +mod on_idle_hook_tests { + use super::*; + + #[test] + fn on_idle_hook_works() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add the Provider to the `ValidProofSubmittersLastTicks` storage map for the current tick. + let tick_when_proof_provided = ChallengesTicker::::get(); + let mut new_valid_submitters = + BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); + new_valid_submitters.try_insert(provider_id).unwrap(); + ValidProofSubmittersLastTicks::::insert( + tick_when_proof_provided, + new_valid_submitters, + ); + + // Check that the Provider was successfully added to the set. + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Advance a tick, executing `on_idle`, to check if the Provider is removed from the set. + run_to_block(System::block_number() + 1); + ProofsDealer::on_idle(System::block_number(), Weight::MAX); + + // Check that the set which had the Provider that submitted a valid proof has not been deleted. + assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_some()); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Check that the last deleted tick is still 0 + assert_eq!(LastDeletedTick::::get(), 0); + + // Advance enough ticks so that the Provider list which has the `provider_id` is set to be deleted. + run_to_block( + System::block_number() + + as Get>::get() as u64, + ); + + // Call the `on_idle` hook. + ProofsDealer::on_idle(System::block_number(), Weight::MAX); + + // Check that the set which had the Provider that submitted a valid proof has been correctly deleted. + assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_none()); + + // Check that the last deleted tick is the one that was just deleted. + assert_eq!( + LastDeletedTick::::get(), + System::block_number() + - as Get>::get() as u64 + ); + }); + } + + #[test] + fn on_idle_hook_does_not_delete_with_not_enough_weight() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add the Provider to the `ValidProofSubmittersLastTicks` storage map for the current tick. + let tick_when_proof_provided = ChallengesTicker::::get(); + let mut new_valid_submitters = + BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); + new_valid_submitters.try_insert(provider_id).unwrap(); + ValidProofSubmittersLastTicks::::insert( + tick_when_proof_provided, + new_valid_submitters, + ); + + // Check that the Provider was successfully added to the set. + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Advance a tick, executing `on_idle`, to check if the Provider is removed from the set. + run_to_block(System::block_number() + 1); + ProofsDealer::on_idle(System::block_number(), Weight::MAX); + + // Check that the set which had the Provider that submitted a valid proof has not been deleted. + assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_some()); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Check that the last deleted tick is still 0 + assert_eq!(LastDeletedTick::::get(), 0); + + // Advance enough ticks so that the Provider list which has the `provider_id` is set to be deleted. + run_to_block( + System::block_number() + + as Get>::get() as u64, + ); + + // Call the `on_idle` hook, but without enough weight to delete the set. + ProofsDealer::on_idle(System::block_number(), Weight::zero()); + + // Check that the set which had the Provider that submitted a valid proof still exists and has the Provider + assert!(ValidProofSubmittersLastTicks::::get(tick_when_proof_provided).is_some()); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Check that the last deleted tick is still zero. + assert_eq!(LastDeletedTick::::get(), 0); + }); + } + + #[test] + fn on_idle_hook_deletes_multiple_old_ticks_if_enough_weight_is_remaining() { + new_test_ext().execute_with(|| { + // Go past genesis block so events get deposited. + run_to_block(1); // Block number = 1 + + // Register user as a Provider in Providers pallet. + let provider_id = BlakeTwo256::hash(b"provider_id"); + pallet_storage_providers::AccountIdToBackupStorageProviderId::::insert( + &1, + provider_id, + ); + pallet_storage_providers::BackupStorageProviders::::insert( + &provider_id, + pallet_storage_providers::types::BackupStorageProvider { + capacity: Default::default(), + capacity_used: Default::default(), + multiaddresses: Default::default(), + root: Default::default(), + last_capacity_change: Default::default(), + owner_account: 1u64, + payment_account: Default::default(), + reputation_weight: + ::StartingReputationWeight::get(), + }, + ); + + // Add the Provider to the `ValidProofSubmittersLastTicks` storage map for the current tick and two ticks after that. + let tick_when_first_proof_provided = ChallengesTicker::::get(); // Block number = 1 + let mut new_valid_submitters = + BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); + new_valid_submitters.try_insert(provider_id).unwrap(); + ValidProofSubmittersLastTicks::::insert( + tick_when_first_proof_provided, + new_valid_submitters.clone(), + ); + let tick_when_second_proof_provided = tick_when_first_proof_provided + 2; // Block number = 1 + 2 = 3 + ValidProofSubmittersLastTicks::::insert( + tick_when_second_proof_provided, + new_valid_submitters, + ); + + // Check that the Provider was successfully added to the set in both ticks + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) + .unwrap() + .contains(&provider_id) + ); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Advance a tick, executing `on_idle`, to check if the Provider is removed from any of the two sets. + run_to_block(System::block_number() + 1); // Block number = 2 + ProofsDealer::on_idle(System::block_number(), Weight::MAX); + + // Check that the sets which had the Provider that submitted a valid proof have not been deleted. + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) + .is_some() + ); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) + .unwrap() + .contains(&provider_id) + ); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) + .is_some() + ); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) + .unwrap() + .contains(&provider_id) + ); + + // Check that the last deleted tick is still 0 + assert_eq!(LastDeletedTick::::get(), 0); + + // Advance enough ticks so that both the Provider lists which have the `provider_id` are set to be deleted. + run_to_block( + System::block_number() + + as Get>::get() as u64 + + 3, + ); // Block number = 2 + 3 + 3 = 8, 8 - 3 - 0 > 3 so both sets should be deleted. + + // Call the `on_idle` hook with enough weight to delete both sets. + ProofsDealer::on_idle(System::block_number(), Weight::MAX); + + // Check that the sets which had the Provider that submitted a valid proof have been correctly deleted. + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_first_proof_provided) + .is_none() + ); + assert!( + ValidProofSubmittersLastTicks::::get(tick_when_second_proof_provided) + .is_none() + ); + + // Check that the last deleted tick is the one that was just deleted. + assert_eq!( + LastDeletedTick::::get(), + System::block_number() + - as Get>::get() as u64 + ); + }); + } +} diff --git a/pallets/proofs-dealer/src/utils.rs b/pallets/proofs-dealer/src/utils.rs index 9eca6b145..d99cc8a51 100644 --- a/pallets/proofs-dealer/src/utils.rs +++ b/pallets/proofs-dealer/src/utils.rs @@ -1,1217 +1,1217 @@ -use codec::Encode; -use frame_support::{ - ensure, - pallet_prelude::{DispatchClass, DispatchResult}, - traits::{fungible::Mutate, tokens::Preservation, Get, Randomness}, - weights::{Weight, WeightMeter}, - BoundedBTreeSet, -}; -use frame_system::pallet_prelude::BlockNumberFor; -use pallet_proofs_dealer_runtime_api::{ - GetChallengePeriodError, GetChallengeSeedError, GetCheckpointChallengesError, - GetLastTickProviderSubmittedProofError, GetNextDeadlineTickError, -}; -use shp_traits::{ - CommitmentVerifier, MutateChallengeableProvidersInterface, ProofSubmittersInterface, - ProofsDealerInterface, ReadChallengeableProvidersInterface, TrieMutation, - TrieProofDeltaApplier, TrieRemoveMutation, -}; -use sp_runtime::{ - traits::{CheckedAdd, CheckedDiv, CheckedSub, Convert, Hash, One, Zero}, - ArithmeticError, BoundedVec, DispatchError, SaturatedConversion, Saturating, -}; -use sp_std::{ - collections::{btree_set::BTreeSet, vec_deque::VecDeque}, - vec::Vec, -}; - -use crate::{ - pallet, - types::{ - AccountIdFor, BalanceFor, BalancePalletFor, ChallengeHistoryLengthFor, - ChallengeTicksToleranceFor, ChallengesFeeFor, ChallengesQueueLengthFor, - CheckpointChallengePeriodFor, ForestVerifierFor, ForestVerifierProofFor, KeyFor, - KeyVerifierFor, KeyVerifierProofFor, MaxCustomChallengesPerBlockFor, - MaxSubmittersPerTickFor, MinChallengePeriodFor, Proof, ProviderIdFor, ProvidersPalletFor, - RandomChallengesPerBlockFor, RandomnessOutputFor, RandomnessProviderFor, - StakeToChallengePeriodFor, TargetTicksStorageOfSubmittersFor, TreasuryAccountFor, - }, - ChallengesQueue, ChallengesTicker, ChallengesTickerPaused, Error, Event, LastCheckpointTick, - LastDeletedTick, LastTickProviderSubmittedAProofFor, NotFullBlocksCount, Pallet, - PastBlocksWeight, PriorityChallengesQueue, SlashableProviders, TickToChallengesSeed, - TickToCheckpointChallenges, TickToProvidersDeadlines, ValidProofSubmittersLastTicks, -}; - -macro_rules! expect_or_err { - // Handle Option type - ($optional:expr, $error_msg:expr, $error_type:path) => {{ - match $optional { - Some(value) => value, - None => { - #[cfg(test)] - unreachable!($error_msg); - - #[allow(unreachable_code)] - { - Err($error_type)? - } - } - } - }}; - // Handle boolean type - ($condition:expr, $error_msg:expr, $error_type:path, bool) => {{ - if !$condition { - #[cfg(test)] - unreachable!($error_msg); - - #[allow(unreachable_code)] - { - Err($error_type)? - } - } - }}; - // Handle Result type - ($result:expr, $error_msg:expr, $error_type:path, result) => {{ - match $result { - Ok(value) => value, - Err(_) => { - #[cfg(test)] - unreachable!($error_msg); - - #[allow(unreachable_code)] - { - Err($error_type)? - } - } - } - }}; -} - -impl Pallet -where - T: pallet::Config, -{ - /// Add custom challenge to ChallengesQueue. - /// - /// Charges a fee for the challenge. - /// This is to prevent spamming the network with challenges. If the challenge is already queued, - /// just return. Otherwise, add the challenge to the queue. - /// - /// Failures: - /// - `FeeChargeFailed`: If the fee transfer to the treasury account fails. - /// - `ChallengesQueueOverflow`: If the challenges queue is full. - pub fn do_challenge(who: &AccountIdFor, key: &KeyFor) -> DispatchResult { - // Charge a fee for the challenge. - BalancePalletFor::::transfer( - &who, - &TreasuryAccountFor::::get(), - ChallengesFeeFor::::get(), - Preservation::Expendable, - ) - .map_err(|_| Error::::FeeChargeFailed)?; - - // Enqueue challenge. - Self::enqueue_challenge(key) - } - - /// Submit proof. - /// - /// For a given `submitter`, verify the `proof` submitted. The proof is verified by checking - /// the forest proof and each key proof. - /// Relies on the `ProvidersPallet` to get the root for the submitter, the last tick for which - /// the submitter submitted a proof and the stake for the submitter. With that information, it - /// computes the next tick for which the submitter should be submitting a proof. It then gets - /// the seed for that tick and generates the challenges from the seed. It also checks if there - /// has been a Checkpoint Challenge block in between the last tick proven and the current tick. - /// If there has been, the Provider should have included proofs for the challenges in that block. - /// It then verifies the forest proof and each key proof, using the `ForestVerifier` and `KeyVerifier`. - pub fn do_submit_proof(submitter: &ProviderIdFor, proof: &Proof) -> DispatchResult { - let forest_proof = &proof.forest_proof; - let key_proofs = &proof.key_proofs; - - // Check if submitter is a registered Provider. - ensure!( - ProvidersPalletFor::::is_provider(*submitter), - Error::::NotProvider - ); - - // Check that key_proofs is not empty. - ensure!(!key_proofs.is_empty(), Error::::EmptyKeyProofs); - - // The check for whether forest_proof and each key_proof is not empty is handled by the corresponding - // verifiers for each. We do not preemptively check for this here, since the `CommitmentVerifier::Proof` - // type is not required to have an `is_empty` method. - - // Get root for submitter. - // If a submitter is a registered Provider, it must have a root, so this shouldn't happen. - // However, since the implementation of that is not up to this pallet, we need to check. - let root = ProvidersPalletFor::::get_root(*submitter) - .ok_or(Error::::ProviderRootNotFound)?; - - // Check that the root is not the default root. - // A default root means that the Provider is not providing any service yet, so he shouldn't be - // submitting any proofs. - ensure!( - root != ProvidersPalletFor::::get_default_root(), - Error::::ZeroRoot - ); - - // Get last tick for which the submitter submitted a proof. - let last_tick_proven = match LastTickProviderSubmittedAProofFor::::get(*submitter) { - Some(tick) => tick, - None => return Err(Error::::NoRecordOfLastSubmittedProof.into()), - }; - - // Get stake for submitter. - // If a submitter is a registered Provider, it must have a stake, so this shouldn't happen. - // However, since the implementation of that is not up to this pallet, we need to check. - let stake = ProvidersPalletFor::::get_stake(*submitter) - .ok_or(Error::::ProviderStakeNotFound)?; - - // Check that the stake is non-zero. - ensure!(stake > BalanceFor::::zero(), Error::::ZeroStake); - - // Compute the next tick for which the submitter should be submitting a proof. - let challenges_tick = last_tick_proven - .checked_add(&Self::stake_to_challenge_period(stake)) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Check that the challenges tick is lower than the current tick. - ensure!( - challenges_tick < ChallengesTicker::::get(), - Error::::ChallengesTickNotReached - ); - - // Check that the challenges tick is greater than current tick minus `ChallengeHistoryLength`, - // i.e. that the challenges tick is within the ticks this pallet keeps track of. - expect_or_err!( - challenges_tick - > ChallengesTicker::::get() - .saturating_sub(ChallengeHistoryLengthFor::::get()), - "Challenges tick is too old, beyond the history this pallet keeps track of. This should not be possible.", - Error::::ChallengesTickTooOld, - bool - ); - - // Check that the submitter is not submitting the proof to late, i.e. that the challenges tick - // is not greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. - // This should never happen, as the `TickToProvidersDeadlines` StorageMap is - // cleaned up every block. Therefore, if a Provider reached this deadline, it should have been - // slashed, and its next challenge tick pushed forwards. - let challenges_tick_deadline = challenges_tick - .checked_add(&T::ChallengeTicksTolerance::get()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - expect_or_err!( - challenges_tick_deadline > >::block_number(), - "Challenges tick is too late, the proof should be submitted at most `T::ChallengeTicksTolerance::get()` ticks after the challenges tick.", - Error::::ChallengesTickTooLate, - bool - ); - - // Get seed for challenges tick. - let seed = expect_or_err!( - TickToChallengesSeed::::get(challenges_tick), - "Seed for challenges tick not found, when checked it should be within history.", - Error::::SeedNotFound - ); - - // Generate forest challenges from seed. - let mut challenges = Self::generate_challenges_from_seed( - seed, - submitter, - RandomChallengesPerBlockFor::::get(), - ); - - // Check if there's been a Checkpoint Challenge tick in between the last tick proven and - // the tick for which the proof is being submitted. If there has been, the Provider should - // have included proofs for those checkpoint challenges. - let last_checkpoint_tick = LastCheckpointTick::::get(); - let mut checkpoint_challenges = None; - if last_tick_proven <= last_checkpoint_tick && last_checkpoint_tick < challenges_tick { - // Add challenges from the Checkpoint Challenge block. - checkpoint_challenges = - Some(expect_or_err!( - TickToCheckpointChallenges::::get(last_checkpoint_tick), - "Checkpoint challenges not found, when dereferencing in last registered checkpoint challenge block.", - Error::::CheckpointChallengesNotFound - )); - - if let Some(ref checkpoint_challenges) = checkpoint_challenges { - challenges.extend(checkpoint_challenges.iter().map(|(key, _)| key)); - } - } - - // Verify forest proof. - let mut forest_keys_proven = - ForestVerifierFor::::verify_proof(&root, &challenges, forest_proof) - .map_err(|_| Error::::ForestProofVerificationFailed)?; - - // Apply the delta to the Forest root for all mutations that are in checkpoint challenges. - if let Some(challenges) = checkpoint_challenges { - // Aggregate all mutations to apply to the Forest root. - let mutations: Vec<_> = challenges - .iter() - .filter_map(|(key, mutation)| match mutation { - Some(mutation) if forest_keys_proven.contains(key) => Some((*key, mutation)), - Some(_) | None => None, - }) - .collect(); - - if !mutations.is_empty() { - let mut mutations_applied = Vec::new(); - let new_root = mutations.iter().try_fold(root, |acc_root, mutation| { - // Remove the key from the list of `forest_keys_proven` to avoid having to verify the key proof. - forest_keys_proven.remove(&mutation.0); - - // Add mutation to list of mutations applied. - mutations_applied.push((mutation.0, mutation.1.clone())); - - // Apply the mutation to the Forest. - let apply_delta_result = >::apply_delta( - &acc_root, - &[(mutation.0, mutation.1.clone().into())], - forest_proof, - ) - .map_err(|_| Error::::FailedToApplyDelta); - - // If the mutation was correctly applied, update the Provider's info and return the new root. - match apply_delta_result { - Ok((_, new_root, mutated_keys_and_values)) => { - // Check that the mutated key is the same as the mutation (and is the only one). - ensure!( - mutated_keys_and_values.len() == 1, - Error::::FailedToApplyDelta - ); - ensure!( - mutated_keys_and_values[0].0 == mutation.0, - Error::::FailedToApplyDelta - ); - - // Use the interface exposed by the Providers pallet to update the submitting Provider - // after the key removal if the key had a value. - let removed_trie_value = &mutated_keys_and_values[0].1; - if let Some(trie_value) = removed_trie_value { - ProvidersPalletFor::::update_provider_after_key_removal( - submitter, trie_value, - ) - .map_err(|_| Error::::FailedToApplyDelta)?; - } - - Ok(new_root) - } - Err(err) => Err(err), - } - })?; - - // Emit event of mutation applied. - Self::deposit_event(Event::::MutationsApplied { - provider: *submitter, - mutations: mutations_applied, - new_root, - }); - - // Update root of Provider after all mutations have been applied to the Forest. - ::update_root( - *submitter, new_root, - )?; - } - }; - - // Verify each key proof. - for key_proven in forest_keys_proven { - // Check that there is a key proof for each key proven. - let key_proof = key_proofs - .get(&key_proven) - .ok_or(Error::::KeyProofNotFound)?; - - // Generate the challenges for the key. - let challenges = - Self::generate_challenges_from_seed(seed, submitter, key_proof.challenge_count); - - // Verify key proof. - KeyVerifierFor::::verify_proof(&key_proven, &challenges, &key_proof.proof) - .map_err(|_| Error::::KeyProofVerificationFailed)?; - } - - // Update `LastTickProviderSubmittedProofFor` to the challenge tick the provider has just - // submitted a proof for. - LastTickProviderSubmittedAProofFor::::set(*submitter, Some(challenges_tick)); - - // Remove the submitter from its current deadline registered in `TickToProvidersDeadlines`. - TickToProvidersDeadlines::::remove(challenges_tick_deadline, submitter); - - // Calculate the next tick for which the submitter should be submitting a proof. - let next_challenges_tick = challenges_tick - .checked_add(&Self::stake_to_challenge_period(stake)) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Add tolerance to `next_challenges_tick` to know when is the next deadline for submitting a - // proof, for this provider. - let next_challenges_tick_deadline = next_challenges_tick - .checked_add(&T::ChallengeTicksTolerance::get()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Add this Provider to the `TickToProvidersDeadlines` StorageMap, with its new deadline. - TickToProvidersDeadlines::::set(next_challenges_tick_deadline, submitter, Some(())); - - // Add this Provider to the `ValidProofSubmittersLastTicks` StorageMap, with the current tick number. - let current_tick_valid_submitters = - ValidProofSubmittersLastTicks::::take(ChallengesTicker::::get()); - match current_tick_valid_submitters { - // If the set already exists and has valid submitters, we just insert the new submitter. - Some(mut valid_submitters) => { - let did_not_already_exist = expect_or_err!(valid_submitters.try_insert(*submitter), "The set should never be full as the limit we set should be greater than the implicit limit given by max block weight.", Error::::TooManyValidProofSubmitters, result); - // We only update storage if the Provider ID wasn't yet in the set to avoid unnecessary writes. - if did_not_already_exist { - ValidProofSubmittersLastTicks::::insert( - ChallengesTicker::::get(), - valid_submitters, - ); - } - } - // If the set doesn't exist, we create it and insert the submitter. - None => { - let mut new_valid_submitters = - BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); - expect_or_err!( - new_valid_submitters.try_insert(*submitter), - "The set has just been created, it's empty and as such won't be full. qed", - Error::::TooManyValidProofSubmitters, - result - ); - ValidProofSubmittersLastTicks::::insert( - ChallengesTicker::::get(), - new_valid_submitters, - ); - } - } - - Ok(()) - } - - /// Generate a new round of challenges, be it random or checkpoint. - /// - /// Random challenges are automatically generated based on some external source of - /// randomness, and are added to [`TickToChallengesSeed`], for this tick's number. - /// - /// It also takes care of including the challenges from the `ChallengesQueue` and - /// `PriorityChallengesQueue`. These custom challenges are only included in "checkpoint" - /// ticks - /// - /// Additionally, it takes care of checking if there are Providers that have - /// failed to submit a proof, and should have submitted one by this tick. It does so - /// by checking the [`TickToProvidersDeadlines`] StorageMap. If a Provider is found - /// to have failed to submit a proof, it is subject to slashing. - /// - /// Finally, it cleans up: - /// - The [`TickToChallengesSeed`] StorageMap, removing entries older than `ChallengeHistoryLength`. - /// - The [`TickToCheckpointChallenges`] StorageMap, removing the previous checkpoint challenge block. - /// - The [`TickToProvidersDeadlines`] StorageMap, removing entries for the current challenges tick. - pub fn do_new_challenges_round(weight: &mut WeightMeter) { - // Increment the challenges' ticker. - let mut challenges_ticker = ChallengesTicker::::get(); - challenges_ticker.saturating_inc(); - ChallengesTicker::::set(challenges_ticker); - weight.consume(T::DbWeight::get().reads_writes(1, 1)); - - // Store random seed for this tick. - let (seed, _) = RandomnessProviderFor::::random(challenges_ticker.encode().as_ref()); - TickToChallengesSeed::::set(challenges_ticker, Some(seed)); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Remove the oldest challenge seed stored, to clean up the storage. - let tick_to_remove = challenges_ticker.checked_sub(&ChallengeHistoryLengthFor::::get()); - if let Some(tick_to_remove) = tick_to_remove { - TickToChallengesSeed::::remove(tick_to_remove); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - } - - // Emit new challenge seed event. - Self::deposit_event(Event::NewChallengeSeed { - challenges_ticker, - seed, - }); - - let last_checkpoint_tick = LastCheckpointTick::::get(); - - // Count last checkpoint challenges tick challenges - let checkpoint_challenges_count = - TickToCheckpointChallenges::::get(last_checkpoint_tick) - .unwrap_or_else(|| - // Returning an empty list so slashable providers will not accrue any failed proof submissions for checkpoint challenges. - BoundedVec::new()) - .len(); - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - // This hook does not return an error, and it cannot fail, that's why we use `saturating_add`. - let next_checkpoint_tick = - last_checkpoint_tick.saturating_add(T::CheckpointChallengePeriod::get()); - if challenges_ticker == next_checkpoint_tick { - // This is a checkpoint challenge round, so we also generate new checkpoint challenges. - Self::do_new_checkpoint_challenge_round(challenges_ticker, weight); - } - weight.consume(T::DbWeight::get().reads_writes(2, 0)); - - // If there are providers left in `TickToProvidersDeadlines` for this tick, - // they are marked as slashable. - let mut slashable_providers = - TickToProvidersDeadlines::::drain_prefix(challenges_ticker); - while let Some((provider, _)) = slashable_providers.next() { - // One read for every provider in the prefix, and one write as we're consuming and deleting the entry. - weight.consume(T::DbWeight::get().reads_writes(1, 1)); - - // Accrue number of failed proof submission for this slashable provider. - // Add custom checkpoint challenges if the provider needed to respond to them. - SlashableProviders::::mutate(provider, |slashable| { - let mut accrued = slashable.unwrap_or(0); - - let last_tick_provider_submitted_proof = - match LastTickProviderSubmittedAProofFor::::get(provider) { - Some(tick) => tick, - None => { - Self::deposit_event(Event::NoRecordOfLastSubmittedProof { provider }); - - #[cfg(test)] - unreachable!( - "Provider should have a last tick it submitted a proof for." - ); - - #[allow(unreachable_code)] - { - // If the Provider has no record of the last tick it submitted a proof for, - // we set it to the current challenges ticker, so they will not be slashed. - challenges_ticker - } - } - }; - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - let challenge_ticker_provider_should_have_responded_to = - challenges_ticker.saturating_sub(T::ChallengeTicksTolerance::get()); - - if checkpoint_challenges_count != 0 - && last_tick_provider_submitted_proof <= last_checkpoint_tick - && last_checkpoint_tick < challenge_ticker_provider_should_have_responded_to - { - accrued = accrued.saturating_add(checkpoint_challenges_count as u32); - } - - accrued = accrued.saturating_add(RandomChallengesPerBlockFor::::get()); - - *slashable = Some(accrued); - }); - - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Get the stake for this Provider, to know its challenge period. - // If a submitter is a registered Provider, it must have a stake, so there shouldn't be an error. - let stake = match ProvidersPalletFor::::get_stake(provider) { - Some(stake) => stake, - // But to avoid panics, in the odd case of a Provider not being registered, we - // arbitrarily set the stake to be that which would result in `CheckpointChallengePeriod` ticks of challenge period. - None => { - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - let checkpoint_challenge_period = - CheckpointChallengePeriodFor::::get().saturated_into::(); - StakeToChallengePeriodFor::::get() * checkpoint_challenge_period.into() - } - }; - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - // Calculate the next challenge deadline for this Provider. - // At this point, we are processing all providers who have reached their deadline (i.e. tolerance ticks after the tick they should provide a proof for): - // challenge_ticker = last_tick_provider_should_have_submitted_a_proof_for + ChallengeTicksTolerance - // - // By definition, the next deadline should be tolerance ticks after the next tick they should submit proof for (i.e. one period after the last tick they should have submitted a proof for): - // next_challenge_deadline = last_tick_provider_should_have_submitted_a_proof_for + provider_period + ChallengeTicksTolerance - // - // Therefore, the next deadline is one period from now: - // next_challenge_deadline = challenge_ticker + provider_period - let next_challenge_deadline = - challenges_ticker.saturating_add(Self::stake_to_challenge_period(stake)); - - // Update this Provider's next challenge deadline. - TickToProvidersDeadlines::::set(next_challenge_deadline, provider, Some(())); - - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Calculate the tick for which the Provider should have submitted a proof. - let last_interval_tick = - challenges_ticker.saturating_sub(T::ChallengeTicksTolerance::get()); - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - // Update this Provider's last interval tick for the next challenge. - LastTickProviderSubmittedAProofFor::::set(provider, Some(last_interval_tick)); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Emit slashable provider event. - Self::deposit_event(Event::SlashableProvider { - provider, - next_challenge_deadline, - }); - } - } - - /// Check if the network is presumably under a spam attack. - /// - /// The function looks at the weight used in the past `BlockFullnessPeriod` blocks, comparing it - /// with the maximum allowed weight (`max_weight_for_class`) for the dispatch class of `submit_proof` extrinsics. - /// The idea is to track blocks that have not been filled to capacity within a - /// specific period (`BlockFullnessPeriod`) and determine if there is enough "headroom" - /// (unused block capacity) to consider the network not under spam. - pub fn do_check_spamming_condition(weight: &mut WeightMeter) { - // Get the maximum weight for the dispatch class of `submit_proof` extrinsics. - let weights = T::BlockWeights::get(); - let max_weight_for_class = weights - .get(DispatchClass::Normal) - .max_total - .unwrap_or(weights.max_block); - - let current_block = frame_system::Pallet::::block_number(); - - // Get the number of blocks that have been considered _not_ full in the past `BlockFullnessPeriod`. - let not_full_blocks_count = NotFullBlocksCount::::get(); - let mut new_not_full_blocks_count = not_full_blocks_count.clone(); - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - // This would only be `None` if the block number is 0, so this should be safe. - if let Some(prev_block) = current_block.checked_sub(&1u32.into()) { - // Get the weight usage in the previous block. - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - if let Some(weight_used_in_prev_block) = PastBlocksWeight::::get(prev_block) { - // Check how much weight was left in the previous block, compared to the maximum weight. - // This is computed both for proof size and ref time. - let weight_left_in_prev_block = - max_weight_for_class.saturating_sub(weight_used_in_prev_block); - - // If the weight left in the previous block is greater or equal than the headroom, for both proof size or ref time, - // we consider the previous block to be NOT full and count it as such. - if weight_left_in_prev_block.ref_time() - >= T::BlockFullnessHeadroom::get().ref_time() - && weight_left_in_prev_block.proof_size() - >= T::BlockFullnessHeadroom::get().proof_size() - { - // Increment the counter of blocks that are not full. - new_not_full_blocks_count = - new_not_full_blocks_count.saturating_add(1u32.into()); - } - } - } - - // This would be `None` during the first `BlockFullnessPeriod` + 1 blocks. - if let Some(oldest_block_fullness_number) = - current_block.checked_sub(&T::BlockFullnessPeriod::get().saturating_add(1u32.into())) - { - // Get the weight usage in the oldest registered block. - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - if let Some(weight_used_in_oldest_block) = - PastBlocksWeight::::get(oldest_block_fullness_number) - { - // Check how much weight was left in the oldest block, compared to the maximum weight. - // This is computed both for proof size and ref time. - let weight_left_in_oldest_block = - max_weight_for_class.saturating_sub(weight_used_in_oldest_block); - - // If the weight left in the oldest block is greater or equal than the headroom, for both proof size or ref time, - // we consider the oldest block to be NOT full. If that is the case, we have to remove it from the - // count as it is now out of the `BlockFullnessPeriod` of blocks taken into account. - if weight_left_in_oldest_block.ref_time() - >= T::BlockFullnessHeadroom::get().ref_time() - && weight_left_in_oldest_block.proof_size() - >= T::BlockFullnessHeadroom::get().proof_size() - { - // Decrement the counter of blocks that are not full. - new_not_full_blocks_count = - new_not_full_blocks_count.saturating_sub(1u32.into()); - } - } - } - - // If there was a change in the number of blocks that were not full, we need to update the storage. - if new_not_full_blocks_count != not_full_blocks_count { - NotFullBlocksCount::::set(new_not_full_blocks_count); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - } - - // At this point, we have an updated count of blocks that were not full in the past `BlockFullnessPeriod`. - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - if ChallengesTicker::::get() > T::BlockFullnessPeriod::get() { - // Running this check only makes sense after `ChallengesTicker` has advanced past `BlockFullnessPeriod`. - // To consider the network NOT to be under spam, we need more than `min_non_full_blocks` blocks to be not full. - let min_non_full_blocks_ratio = T::MinNotFullBlocksRatio::get(); - let min_non_full_blocks = - min_non_full_blocks_ratio.mul_floor(T::BlockFullnessPeriod::get()); - - // If `not_full_blocks_count` is greater than `min_non_full_blocks`, we consider the network NOT to be under spam. - if new_not_full_blocks_count > min_non_full_blocks { - // The network is NOT considered to be under a spam attack, so we resume the `ChallengesTicker`. - ChallengesTickerPaused::::set(None); - } else { - // At this point, the network is presumably under a spam attack, so we pause the `ChallengesTicker`. - ChallengesTickerPaused::::set(Some(())); - } - weight.consume(T::DbWeight::get().reads_writes(1, 1)); - } - } - - /// Generate new checkpoint challenges for a given block. - /// - /// Fills up a new vector of checkpoint challenges with challenges in the `PriorityChallengesQueue`, - /// and the `ChallengesQueue` if there is space left. - /// - /// Cleans up the `TickToCheckpointChallenges` StorageMap, removing the previous checkpoint challenge block. - fn do_new_checkpoint_challenge_round( - current_tick: BlockNumberFor, - weight: &mut WeightMeter, - ) { - let mut new_checkpoint_challenges: BoundedVec< - (KeyFor, Option), - MaxCustomChallengesPerBlockFor, - > = BoundedVec::new(); - - // Fill up this round's checkpoint challenges with challenges in the `PriorityChallengesQueue`. - // It gets filled up until the max number of custom challenges for a block is reached, or until - // there are no more challenges in the `PriorityChallengesQueue`. - let original_priority_challenges_queue = PriorityChallengesQueue::::get(); - let mut priority_challenges_queue = - VecDeque::from(original_priority_challenges_queue.to_vec()); - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - while !new_checkpoint_challenges.is_full() && !priority_challenges_queue.is_empty() { - let challenge = match priority_challenges_queue.pop_front() { - Some(challenge) => challenge, - // This should not happen, as we check that priority_challenges_queue is not empty - // in the while condition above, but we add this to be safe. - None => break, - }; - - if new_checkpoint_challenges.try_push(challenge).is_err() { - // This should not happen, as we check that new_checkpoint_challenges is not full - // in the while condition above, but we add this to be safe. - break; - } - } - - // Convert priority_challenges_queue back to a bounded vector. - let new_priority_challenges_queue: BoundedVec< - (KeyFor, Option), - ChallengesQueueLengthFor, - > = Vec::from(priority_challenges_queue) - .try_into() - .unwrap_or_else(|_| original_priority_challenges_queue); - - // Reset the priority challenges queue with the leftovers. - PriorityChallengesQueue::::set(new_priority_challenges_queue); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Fill up this round's checkpoint challenges with challenges in the `ChallengesQueue`. - // It gets filled up until the max number of custom challenges for a block is reached, or until - // there are no more challenges in the `ChallengesQueue`. - let mut challenges_queue = VecDeque::from(ChallengesQueue::::get().to_vec()); - weight.consume(T::DbWeight::get().reads_writes(1, 0)); - - while !new_checkpoint_challenges.is_full() && !challenges_queue.is_empty() { - let challenge = match challenges_queue.pop_front() { - Some(challenge) => challenge, - // This should not happen, as we check that challenges_queue is not empty - // in the while condition above, but we add this to be safe. - None => break, - }; - - if new_checkpoint_challenges - .try_push((challenge, None)) - .is_err() - { - // This should not happen, as we check that new_checkpoint_challenges is not full - // in the while condition above, but we add this to be safe. - break; - } - } - - // Convert challenges_queue back to a bounded vector. - let new_challenges_queue: BoundedVec, ChallengesQueueLengthFor> = - Vec::from(challenges_queue) - .try_into() - .unwrap_or_else(|_| BoundedVec::new()); - - // Reset the challenges queue with the leftovers. - ChallengesQueue::::set(new_challenges_queue); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Store the new checkpoint challenges. - TickToCheckpointChallenges::::set(current_tick, Some(new_checkpoint_challenges.clone())); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Remove the last checkpoint challenge from storage to clean up. - let last_checkpoint_tick = LastCheckpointTick::::get(); - TickToCheckpointChallenges::::remove(last_checkpoint_tick); - weight.consume(T::DbWeight::get().reads_writes(1, 1)); - - // Set this tick as the last checkpoint tick. - LastCheckpointTick::::set(current_tick); - weight.consume(T::DbWeight::get().reads_writes(0, 1)); - - // Emit new checkpoint challenge event. - Self::deposit_event(Event::NewCheckpointChallenge { - challenges_ticker: current_tick, - challenges: new_checkpoint_challenges, - }); - } - - /// Convert stake to challenge period. - /// - /// [`StakeToChallengePeriodFor`] is divided by `stake` to get the number of blocks in between challenges - /// for a Provider. The result is then converted to `BlockNumber` type. The division saturates at [`MinChallengePeriodFor`]. - pub(crate) fn stake_to_challenge_period(stake: BalanceFor) -> BlockNumberFor { - let min_challenge_period = MinChallengePeriodFor::::get(); - let challenge_period = match StakeToChallengePeriodFor::::get().checked_div(&stake) { - Some(block_period) => T::StakeToBlockNumber::convert(block_period), - None => min_challenge_period, - }; - - // Return the maximum between the calculated challenge period and the minimum challenge period. - min_challenge_period.max(challenge_period) - } - - /// Add challenge to ChallengesQueue. - /// - /// Check if challenge is already queued. If it is, just return. Otherwise, add the challenge - /// to the queue. - fn enqueue_challenge(key: &KeyFor) -> DispatchResult { - // Get challenges queue from storage. - let mut challenges_queue = ChallengesQueue::::get(); - - // Check if challenge is already queued. If it is, just return. - if challenges_queue.contains(&key) { - return Ok(()); - } - - // Add challenge to queue. - challenges_queue - .try_push(*key) - .map_err(|_| Error::::ChallengesQueueOverflow)?; - - // Set challenges queue in storage. - ChallengesQueue::::put(challenges_queue); - - Ok(()) - } - - /// Add challenge to `PriorityChallengesQueue`. - /// - /// Check if challenge is already queued. If it is, just return. Otherwise, add the challenge - /// to the queue. - fn enqueue_challenge_with_priority( - key: &KeyFor, - mutation: Option, - ) -> DispatchResult { - // Get priority challenges queue from storage. - let mut priority_challenges_queue = PriorityChallengesQueue::::get(); - - // Check if challenge is already queued. If it is, just return. - if priority_challenges_queue.contains(&(*key, mutation.clone())) { - return Ok(()); - } - - // Add challenge to queue. - priority_challenges_queue - .try_push((*key, mutation)) - .map_err(|_| Error::::PriorityChallengesQueueOverflow)?; - - // Set priority challenges queue in storage. - PriorityChallengesQueue::::put(priority_challenges_queue); - - Ok(()) - } - - /// Generate challenges from seed. - /// - /// Generate a number of challenges from a seed and a Provider's ID. - /// Challenges are generated by hashing the seed, the Provider's ID and an index. - pub(crate) fn generate_challenges_from_seed( - seed: RandomnessOutputFor, - provider_id: &ProviderIdFor, - count: u32, - ) -> Vec { - let mut challenges = Vec::new(); - - for i in 0..count { - // Each challenge is generated by hashing the seed, the provider's ID and the index. - let challenge = T::MerkleTrieHashing::hash( - &[ - seed.as_ref(), - provider_id.encode().as_ref(), - i.encode().as_ref(), - ] - .concat(), - ); - - challenges.push(challenge.into()); - } - - challenges - } - - /// Trim the storage that holds the Providers that submitted valid proofs in the last ticks until there's - /// `TargetTicksOfProofsStorage` ticks left (or until the remaining weight allows it). - /// - /// This function is called in the `on_idle` hook, which means it's only called when the block has - /// unused weight. - /// - /// It removes the oldest tick from the storage that holds the providers that submitted valid proofs - /// in the last ticks as many times as the remaining weight allows it, but at most until the storage - /// has `TargetTicksOfProofsStorage` ticks left. - pub fn do_trim_valid_proof_submitters_last_ticks( - _n: BlockNumberFor, - usable_weight: Weight, - ) -> Weight { - // Initialize the weight used by this function. - let mut used_weight = Weight::zero(); - - // Check how many ticks should be removed to keep the storage at the target amount. - let mut last_deleted_tick = LastDeletedTick::::get(); - used_weight = used_weight.saturating_add(T::DbWeight::get().reads(1)); - let target_ticks_to_keep = TargetTicksStorageOfSubmittersFor::::get(); - used_weight = used_weight.saturating_add(T::DbWeight::get().reads(1)); - let current_tick = ChallengesTicker::::get(); - used_weight = used_weight.saturating_add(T::DbWeight::get().reads(1)); - let ticks_to_remove = current_tick - .saturating_sub(last_deleted_tick) - .saturating_sub(target_ticks_to_keep.into()); - - // Check how much ticks can be removed considering weight limitations - let weight_to_remove_tick = T::DbWeight::get().reads_writes(0, 2); - let removable_ticks = usable_weight - .saturating_sub(used_weight) - .checked_div_per_component(&weight_to_remove_tick); - - // If there is enough weight to remove ticks, try to remove as many ticks as possible until the target is reached. - if let Some(removable_ticks) = removable_ticks { - let removable_ticks = - removable_ticks.min(ticks_to_remove.try_into().unwrap_or(u64::MAX)); - // Remove all the ticks that we can, until we reach the target amount. - for _ in 0..removable_ticks { - // Get the next tick to delete. - let next_tick_to_delete = last_deleted_tick.saturating_add(One::one()); - - // Remove it from storage - ValidProofSubmittersLastTicks::::remove(next_tick_to_delete); - - // Update the last removed tick - LastDeletedTick::::set(next_tick_to_delete); - last_deleted_tick = next_tick_to_delete; // We do this to avoid having to read from storage again. - - // Increment the used weight. - used_weight = used_weight.saturating_add(weight_to_remove_tick); - } - } - - // Return the weight used by this function. - used_weight - } -} - -impl ProofsDealerInterface for Pallet { - type ProviderId = ProviderIdFor; - type ForestProof = ForestVerifierProofFor; - type KeyProof = KeyVerifierProofFor; - type MerkleHash = T::MerkleTrieHash; - type MerkleHashing = T::MerkleTrieHashing; - type RandomnessOutput = RandomnessOutputFor; - type TickNumber = BlockNumberFor; - - fn verify_forest_proof( - provider_id: &Self::ProviderId, - challenges: &[Self::MerkleHash], - proof: &Self::ForestProof, - ) -> Result, DispatchError> { - // Check if submitter is a registered Provider. - ensure!( - ProvidersPalletFor::::is_provider(*provider_id), - Error::::NotProvider - ); - - // Get root for submitter. - // If a submitter is a registered Provider, it must have a root. - let root = ProvidersPalletFor::::get_root(*provider_id) - .ok_or(Error::::ProviderRootNotFound)?; - - // Verify forest proof. - ForestVerifierFor::::verify_proof(&root, challenges, proof) - .map_err(|_| Error::::ForestProofVerificationFailed.into()) - } - - fn verify_generic_forest_proof( - root: &Self::MerkleHash, - challenges: &[Self::MerkleHash], - proof: &Self::ForestProof, - ) -> Result, DispatchError> { - // Verify forest proof. - ForestVerifierFor::::verify_proof(&root, challenges, proof) - .map_err(|_| Error::::ForestProofVerificationFailed.into()) - } - - fn verify_key_proof( - key: &Self::MerkleHash, - challenges: &[Self::MerkleHash], - proof: &Self::KeyProof, - ) -> Result, DispatchError> { - // Verify key proof. - KeyVerifierFor::::verify_proof(key, &challenges, proof) - .map_err(|_| Error::::KeyProofVerificationFailed.into()) - } - - fn challenge(key_challenged: &Self::MerkleHash) -> DispatchResult { - Self::enqueue_challenge(key_challenged) - } - - fn challenge_with_priority( - key_challenged: &Self::MerkleHash, - mutation: Option, - ) -> DispatchResult { - Self::enqueue_challenge_with_priority(key_challenged, mutation) - } - - fn generate_challenges_from_seed( - seed: Self::RandomnessOutput, - provider_id: &Self::ProviderId, - count: u32, - ) -> Vec { - Self::generate_challenges_from_seed(seed, provider_id, count) - } - - fn apply_delta( - provider_id: &Self::ProviderId, - mutations: &[(Self::MerkleHash, TrieMutation)], - proof: &Self::ForestProof, - ) -> Result { - // Check if submitter is a registered Provider. - ensure!( - ProvidersPalletFor::::is_provider(*provider_id), - Error::::NotProvider - ); - - // Get root for submitter. - // If a submitter is a registered Provider, it must have a root. - let root = ProvidersPalletFor::::get_root(*provider_id) - .ok_or(Error::::ProviderRootNotFound)?; - - Ok( - >::apply_delta( - &root, mutations, proof, - ) - .map_err(|_| Error::::FailedToApplyDelta)? - .1, - ) - } - - fn generic_apply_delta( - root: &Self::MerkleHash, - mutations: &[(Self::MerkleHash, TrieMutation)], - proof: &Self::ForestProof, - ) -> Result { - Ok( - >::apply_delta( - &root, mutations, proof, - ) - .map_err(|_| Error::::FailedToApplyDelta)? - .1, - ) - } - - fn initialise_challenge_cycle(provider_id: &Self::ProviderId) -> DispatchResult { - // Check that `who` is a registered Provider. - if !ProvidersPalletFor::::is_provider(*provider_id) { - return Err(Error::::NotProvider.into()); - } - - // Get stake for submitter. - // If a submitter is a registered Provider, it must have a stake, so this shouldn't happen. - // However, since the implementation of that is not up to this pallet, we need to check. - let stake = ProvidersPalletFor::::get_stake(*provider_id) - .ok_or(Error::::ProviderStakeNotFound)?; - - // Check that the stake is non-zero. - ensure!(stake > BalanceFor::::zero(), Error::::ZeroStake); - - // Check if this Provider previously had a challenge cycle initialised. - if let Some(last_tick_proven) = LastTickProviderSubmittedAProofFor::::get(*provider_id) { - // Compute the next tick for which the Provider should have been submitting a proof. - let old_next_challenge_tick = last_tick_proven - .checked_add(&Self::stake_to_challenge_period(stake)) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Calculate the deadline for submitting a proof. Should be the next challenge tick + the challenges tick tolerance. - let old_next_challenge_deadline = old_next_challenge_tick - .checked_add(&ChallengeTicksToleranceFor::::get()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Remove the old deadline. - TickToProvidersDeadlines::::remove(old_next_challenge_deadline, *provider_id); - } - - // Set `LastTickProviderSubmittedAProofFor` to the current tick. - let current_tick = ChallengesTicker::::get(); - LastTickProviderSubmittedAProofFor::::set(*provider_id, Some(current_tick)); - - // Compute the next tick for which the Provider should be submitting a proof. - let next_challenge_tick = current_tick - .checked_add(&Self::stake_to_challenge_period(stake)) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Calculate the deadline for submitting a proof. Should be the next challenge tick + the challenges tick tolerance. - let next_challenge_deadline = next_challenge_tick - .checked_add(&ChallengeTicksToleranceFor::::get()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Set the deadline for submitting a proof. - TickToProvidersDeadlines::::set(next_challenge_deadline, *provider_id, Some(())); - - // Emit event. - Self::deposit_event(Event::::NewChallengeCycleInitialised { - current_tick, - next_challenge_deadline, - provider: *provider_id, - maybe_provider_account: ProvidersPalletFor::::get_owner_account(*provider_id), - }); - - Ok(()) - } - - fn get_current_tick() -> Self::TickNumber { - ChallengesTicker::::get() - } -} - -impl ProofSubmittersInterface for Pallet { - type ProviderId = ProviderIdFor; - type TickNumber = BlockNumberFor; - type MaxProofSubmitters = MaxSubmittersPerTickFor; - - fn get_proof_submitters_for_tick( - tick_number: &Self::TickNumber, - ) -> Option> { - ValidProofSubmittersLastTicks::::get(tick_number) - } - - fn get_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) -> Option { - SlashableProviders::::get(provider_id) - } - - fn clear_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) { - SlashableProviders::::remove(provider_id); - } -} - -/// Runtime API implementation for the ProofsDealer pallet. -impl Pallet -where - T: pallet::Config, -{ - pub fn get_last_tick_provider_submitted_proof( - provider_id: &ProviderIdFor, - ) -> Result, GetLastTickProviderSubmittedProofError> { - // Check if submitter is a registered Provider. - if !ProvidersPalletFor::::is_provider(*provider_id) { - return Err(GetLastTickProviderSubmittedProofError::ProviderNotRegistered); - } - - LastTickProviderSubmittedAProofFor::::get(provider_id) - .ok_or(GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof) - } - - pub fn get_last_checkpoint_challenge_tick() -> BlockNumberFor { - LastCheckpointTick::::get() - } - - pub fn get_checkpoint_challenges( - tick: BlockNumberFor, - ) -> Result, Option)>, GetCheckpointChallengesError> { - // Check that the tick is smaller than the last checkpoint tick. - if LastCheckpointTick::::get() < tick { - return Err(GetCheckpointChallengesError::TickGreaterThanLastCheckpointTick); - } - - let checkpoint_challenges = TickToCheckpointChallenges::::get(tick) - .ok_or(GetCheckpointChallengesError::NoCheckpointChallengesInTick)?; - - Ok(checkpoint_challenges.into()) - } - - pub fn get_challenge_seed( - tick: BlockNumberFor, - ) -> Result, GetChallengeSeedError> { - let current_tick = ChallengesTicker::::get(); - if tick > current_tick { - return Err(GetChallengeSeedError::TickIsInTheFuture); - } - - let seed = TickToChallengesSeed::::get(tick) - .ok_or(GetChallengeSeedError::TickBeyondLastSeedStored)?; - - Ok(seed) - } - - pub fn get_challenge_period( - provider_id: &ProviderIdFor, - ) -> Result, GetChallengePeriodError> { - let stake = ProvidersPalletFor::::get_stake(*provider_id) - .ok_or(GetChallengePeriodError::ProviderNotRegistered)?; - - Ok(Self::stake_to_challenge_period(stake)) - } - - pub fn get_checkpoint_challenge_period() -> BlockNumberFor { - CheckpointChallengePeriodFor::::get() - } - - pub fn get_challenges_from_seed( - seed: &RandomnessOutputFor, - provider_id: &ProviderIdFor, - count: u32, - ) -> Vec> { - Self::generate_challenges_from_seed(*seed, provider_id, count) - } - - pub fn get_forest_challenges_from_seed( - seed: &RandomnessOutputFor, - provider_id: &ProviderIdFor, - ) -> Vec> { - Self::generate_challenges_from_seed( - *seed, - provider_id, - RandomChallengesPerBlockFor::::get(), - ) - } - - pub fn get_current_tick() -> BlockNumberFor { - ChallengesTicker::::get() - } - - pub fn get_next_deadline_tick( - provider_id: &ProviderIdFor, - ) -> Result, GetNextDeadlineTickError> { - // Check if the provider is indeed a registered Provider. - if !ProvidersPalletFor::::is_provider(*provider_id) { - return Err(GetNextDeadlineTickError::ProviderNotRegistered); - } - - // Get the last tick for which the submitter submitted a proof. - let last_tick_provider_submitted_proof = - LastTickProviderSubmittedAProofFor::::get(provider_id) - .ok_or(GetNextDeadlineTickError::ProviderNotInitialised)?; - - // The next deadline tick is the last tick + the challenge period + the challenge tolerance. - let challenge_period = Self::get_challenge_period(provider_id) - .map_err(|_| GetNextDeadlineTickError::ProviderNotRegistered)?; - let next_deadline_tick = last_tick_provider_submitted_proof - .checked_add(&challenge_period) - .ok_or(GetNextDeadlineTickError::ArithmeticOverflow)? - .checked_add(&ChallengeTicksToleranceFor::::get()) - .ok_or(GetNextDeadlineTickError::ArithmeticOverflow)?; - - Ok(next_deadline_tick) - } -} +use codec::Encode; +use frame_support::{ + ensure, + pallet_prelude::{DispatchClass, DispatchResult}, + traits::{fungible::Mutate, tokens::Preservation, Get, Randomness}, + weights::{Weight, WeightMeter}, + BoundedBTreeSet, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use pallet_proofs_dealer_runtime_api::{ + GetChallengePeriodError, GetChallengeSeedError, GetCheckpointChallengesError, + GetLastTickProviderSubmittedProofError, GetNextDeadlineTickError, +}; +use shp_traits::{ + CommitmentVerifier, MutateChallengeableProvidersInterface, ProofSubmittersInterface, + ProofsDealerInterface, ReadChallengeableProvidersInterface, TrieMutation, + TrieProofDeltaApplier, TrieRemoveMutation, +}; +use sp_runtime::{ + traits::{CheckedAdd, CheckedDiv, CheckedSub, Convert, Hash, One, Zero}, + ArithmeticError, BoundedVec, DispatchError, SaturatedConversion, Saturating, +}; +use sp_std::{ + collections::{btree_set::BTreeSet, vec_deque::VecDeque}, + vec::Vec, +}; + +use crate::{ + pallet, + types::{ + AccountIdFor, BalanceFor, BalancePalletFor, ChallengeHistoryLengthFor, + ChallengeTicksToleranceFor, ChallengesFeeFor, ChallengesQueueLengthFor, + CheckpointChallengePeriodFor, ForestVerifierFor, ForestVerifierProofFor, KeyFor, + KeyVerifierFor, KeyVerifierProofFor, MaxCustomChallengesPerBlockFor, + MaxSubmittersPerTickFor, MinChallengePeriodFor, Proof, ProviderIdFor, ProvidersPalletFor, + RandomChallengesPerBlockFor, RandomnessOutputFor, RandomnessProviderFor, + StakeToChallengePeriodFor, TargetTicksStorageOfSubmittersFor, TreasuryAccountFor, + }, + ChallengesQueue, ChallengesTicker, ChallengesTickerPaused, Error, Event, LastCheckpointTick, + LastDeletedTick, LastTickProviderSubmittedAProofFor, NotFullBlocksCount, Pallet, + PastBlocksWeight, PriorityChallengesQueue, SlashableProviders, TickToChallengesSeed, + TickToCheckpointChallenges, TickToProvidersDeadlines, ValidProofSubmittersLastTicks, +}; + +macro_rules! expect_or_err { + // Handle Option type + ($optional:expr, $error_msg:expr, $error_type:path) => {{ + match $optional { + Some(value) => value, + None => { + #[cfg(test)] + unreachable!($error_msg); + + #[allow(unreachable_code)] + { + Err($error_type)? + } + } + } + }}; + // Handle boolean type + ($condition:expr, $error_msg:expr, $error_type:path, bool) => {{ + if !$condition { + #[cfg(test)] + unreachable!($error_msg); + + #[allow(unreachable_code)] + { + Err($error_type)? + } + } + }}; + // Handle Result type + ($result:expr, $error_msg:expr, $error_type:path, result) => {{ + match $result { + Ok(value) => value, + Err(_) => { + #[cfg(test)] + unreachable!($error_msg); + + #[allow(unreachable_code)] + { + Err($error_type)? + } + } + } + }}; +} + +impl Pallet +where + T: pallet::Config, +{ + /// Add custom challenge to ChallengesQueue. + /// + /// Charges a fee for the challenge. + /// This is to prevent spamming the network with challenges. If the challenge is already queued, + /// just return. Otherwise, add the challenge to the queue. + /// + /// Failures: + /// - `FeeChargeFailed`: If the fee transfer to the treasury account fails. + /// - `ChallengesQueueOverflow`: If the challenges queue is full. + pub fn do_challenge(who: &AccountIdFor, key: &KeyFor) -> DispatchResult { + // Charge a fee for the challenge. + BalancePalletFor::::transfer( + &who, + &TreasuryAccountFor::::get(), + ChallengesFeeFor::::get(), + Preservation::Expendable, + ) + .map_err(|_| Error::::FeeChargeFailed)?; + + // Enqueue challenge. + Self::enqueue_challenge(key) + } + + /// Submit proof. + /// + /// For a given `submitter`, verify the `proof` submitted. The proof is verified by checking + /// the forest proof and each key proof. + /// Relies on the `ProvidersPallet` to get the root for the submitter, the last tick for which + /// the submitter submitted a proof and the stake for the submitter. With that information, it + /// computes the next tick for which the submitter should be submitting a proof. It then gets + /// the seed for that tick and generates the challenges from the seed. It also checks if there + /// has been a Checkpoint Challenge block in between the last tick proven and the current tick. + /// If there has been, the Provider should have included proofs for the challenges in that block. + /// It then verifies the forest proof and each key proof, using the `ForestVerifier` and `KeyVerifier`. + pub fn do_submit_proof(submitter: &ProviderIdFor, proof: &Proof) -> DispatchResult { + let forest_proof = &proof.forest_proof; + let key_proofs = &proof.key_proofs; + + // Check if submitter is a registered Provider. + ensure!( + ProvidersPalletFor::::is_provider(*submitter), + Error::::NotProvider + ); + + // Check that key_proofs is not empty. + ensure!(!key_proofs.is_empty(), Error::::EmptyKeyProofs); + + // The check for whether forest_proof and each key_proof is not empty is handled by the corresponding + // verifiers for each. We do not preemptively check for this here, since the `CommitmentVerifier::Proof` + // type is not required to have an `is_empty` method. + + // Get root for submitter. + // If a submitter is a registered Provider, it must have a root, so this shouldn't happen. + // However, since the implementation of that is not up to this pallet, we need to check. + let root = ProvidersPalletFor::::get_root(*submitter) + .ok_or(Error::::ProviderRootNotFound)?; + + // Check that the root is not the default root. + // A default root means that the Provider is not providing any service yet, so he shouldn't be + // submitting any proofs. + ensure!( + root != ProvidersPalletFor::::get_default_root(), + Error::::ZeroRoot + ); + + // Get last tick for which the submitter submitted a proof. + let last_tick_proven = match LastTickProviderSubmittedAProofFor::::get(*submitter) { + Some(tick) => tick, + None => return Err(Error::::NoRecordOfLastSubmittedProof.into()), + }; + + // Get stake for submitter. + // If a submitter is a registered Provider, it must have a stake, so this shouldn't happen. + // However, since the implementation of that is not up to this pallet, we need to check. + let stake = ProvidersPalletFor::::get_stake(*submitter) + .ok_or(Error::::ProviderStakeNotFound)?; + + // Check that the stake is non-zero. + ensure!(stake > BalanceFor::::zero(), Error::::ZeroStake); + + // Compute the next tick for which the submitter should be submitting a proof. + let challenges_tick = last_tick_proven + .checked_add(&Self::stake_to_challenge_period(stake)) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Check that the challenges tick is lower than the current tick. + ensure!( + challenges_tick < ChallengesTicker::::get(), + Error::::ChallengesTickNotReached + ); + + // Check that the challenges tick is greater than current tick minus `ChallengeHistoryLength`, + // i.e. that the challenges tick is within the ticks this pallet keeps track of. + expect_or_err!( + challenges_tick + > ChallengesTicker::::get() + .saturating_sub(ChallengeHistoryLengthFor::::get()), + "Challenges tick is too old, beyond the history this pallet keeps track of. This should not be possible.", + Error::::ChallengesTickTooOld, + bool + ); + + // Check that the submitter is not submitting the proof to late, i.e. that the challenges tick + // is not greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. + // This should never happen, as the `TickToProvidersDeadlines` StorageMap is + // cleaned up every block. Therefore, if a Provider reached this deadline, it should have been + // slashed, and its next challenge tick pushed forwards. + let challenges_tick_deadline = challenges_tick + .checked_add(&T::ChallengeTicksTolerance::get()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + expect_or_err!( + challenges_tick_deadline > >::block_number(), + "Challenges tick is too late, the proof should be submitted at most `T::ChallengeTicksTolerance::get()` ticks after the challenges tick.", + Error::::ChallengesTickTooLate, + bool + ); + + // Get seed for challenges tick. + let seed = expect_or_err!( + TickToChallengesSeed::::get(challenges_tick), + "Seed for challenges tick not found, when checked it should be within history.", + Error::::SeedNotFound + ); + + // Generate forest challenges from seed. + let mut challenges = Self::generate_challenges_from_seed( + seed, + submitter, + RandomChallengesPerBlockFor::::get(), + ); + + // Check if there's been a Checkpoint Challenge tick in between the last tick proven and + // the tick for which the proof is being submitted. If there has been, the Provider should + // have included proofs for those checkpoint challenges. + let last_checkpoint_tick = LastCheckpointTick::::get(); + let mut checkpoint_challenges = None; + if last_tick_proven <= last_checkpoint_tick && last_checkpoint_tick < challenges_tick { + // Add challenges from the Checkpoint Challenge block. + checkpoint_challenges = + Some(expect_or_err!( + TickToCheckpointChallenges::::get(last_checkpoint_tick), + "Checkpoint challenges not found, when dereferencing in last registered checkpoint challenge block.", + Error::::CheckpointChallengesNotFound + )); + + if let Some(ref checkpoint_challenges) = checkpoint_challenges { + challenges.extend(checkpoint_challenges.iter().map(|(key, _)| key)); + } + } + + // Verify forest proof. + let mut forest_keys_proven = + ForestVerifierFor::::verify_proof(&root, &challenges, forest_proof) + .map_err(|_| Error::::ForestProofVerificationFailed)?; + + // Apply the delta to the Forest root for all mutations that are in checkpoint challenges. + if let Some(challenges) = checkpoint_challenges { + // Aggregate all mutations to apply to the Forest root. + let mutations: Vec<_> = challenges + .iter() + .filter_map(|(key, mutation)| match mutation { + Some(mutation) if forest_keys_proven.contains(key) => Some((*key, mutation)), + Some(_) | None => None, + }) + .collect(); + + if !mutations.is_empty() { + let mut mutations_applied = Vec::new(); + let new_root = mutations.iter().try_fold(root, |acc_root, mutation| { + // Remove the key from the list of `forest_keys_proven` to avoid having to verify the key proof. + forest_keys_proven.remove(&mutation.0); + + // Add mutation to list of mutations applied. + mutations_applied.push((mutation.0, mutation.1.clone())); + + // Apply the mutation to the Forest. + let apply_delta_result = >::apply_delta( + &acc_root, + &[(mutation.0, mutation.1.clone().into())], + forest_proof, + ) + .map_err(|_| Error::::FailedToApplyDelta); + + // If the mutation was correctly applied, update the Provider's info and return the new root. + match apply_delta_result { + Ok((_, new_root, mutated_keys_and_values)) => { + // Check that the mutated key is the same as the mutation (and is the only one). + ensure!( + mutated_keys_and_values.len() == 1, + Error::::FailedToApplyDelta + ); + ensure!( + mutated_keys_and_values[0].0 == mutation.0, + Error::::FailedToApplyDelta + ); + + // Use the interface exposed by the Providers pallet to update the submitting Provider + // after the key removal if the key had a value. + let removed_trie_value = &mutated_keys_and_values[0].1; + if let Some(trie_value) = removed_trie_value { + ProvidersPalletFor::::update_provider_after_key_removal( + submitter, trie_value, + ) + .map_err(|_| Error::::FailedToApplyDelta)?; + } + + Ok(new_root) + } + Err(err) => Err(err), + } + })?; + + // Emit event of mutation applied. + Self::deposit_event(Event::::MutationsApplied { + provider: *submitter, + mutations: mutations_applied, + new_root, + }); + + // Update root of Provider after all mutations have been applied to the Forest. + ::update_root( + *submitter, new_root, + )?; + } + }; + + // Verify each key proof. + for key_proven in forest_keys_proven { + // Check that there is a key proof for each key proven. + let key_proof = key_proofs + .get(&key_proven) + .ok_or(Error::::KeyProofNotFound)?; + + // Generate the challenges for the key. + let challenges = + Self::generate_challenges_from_seed(seed, submitter, key_proof.challenge_count); + + // Verify key proof. + KeyVerifierFor::::verify_proof(&key_proven, &challenges, &key_proof.proof) + .map_err(|_| Error::::KeyProofVerificationFailed)?; + } + + // Update `LastTickProviderSubmittedProofFor` to the challenge tick the provider has just + // submitted a proof for. + LastTickProviderSubmittedAProofFor::::set(*submitter, Some(challenges_tick)); + + // Remove the submitter from its current deadline registered in `TickToProvidersDeadlines`. + TickToProvidersDeadlines::::remove(challenges_tick_deadline, submitter); + + // Calculate the next tick for which the submitter should be submitting a proof. + let next_challenges_tick = challenges_tick + .checked_add(&Self::stake_to_challenge_period(stake)) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Add tolerance to `next_challenges_tick` to know when is the next deadline for submitting a + // proof, for this provider. + let next_challenges_tick_deadline = next_challenges_tick + .checked_add(&T::ChallengeTicksTolerance::get()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Add this Provider to the `TickToProvidersDeadlines` StorageMap, with its new deadline. + TickToProvidersDeadlines::::set(next_challenges_tick_deadline, submitter, Some(())); + + // Add this Provider to the `ValidProofSubmittersLastTicks` StorageMap, with the current tick number. + let current_tick_valid_submitters = + ValidProofSubmittersLastTicks::::take(ChallengesTicker::::get()); + match current_tick_valid_submitters { + // If the set already exists and has valid submitters, we just insert the new submitter. + Some(mut valid_submitters) => { + let did_not_already_exist = expect_or_err!(valid_submitters.try_insert(*submitter), "The set should never be full as the limit we set should be greater than the implicit limit given by max block weight.", Error::::TooManyValidProofSubmitters, result); + // We only update storage if the Provider ID wasn't yet in the set to avoid unnecessary writes. + if did_not_already_exist { + ValidProofSubmittersLastTicks::::insert( + ChallengesTicker::::get(), + valid_submitters, + ); + } + } + // If the set doesn't exist, we create it and insert the submitter. + None => { + let mut new_valid_submitters = + BoundedBTreeSet::, MaxSubmittersPerTickFor>::new(); + expect_or_err!( + new_valid_submitters.try_insert(*submitter), + "The set has just been created, it's empty and as such won't be full. qed", + Error::::TooManyValidProofSubmitters, + result + ); + ValidProofSubmittersLastTicks::::insert( + ChallengesTicker::::get(), + new_valid_submitters, + ); + } + } + + Ok(()) + } + + /// Generate a new round of challenges, be it random or checkpoint. + /// + /// Random challenges are automatically generated based on some external source of + /// randomness, and are added to [`TickToChallengesSeed`], for this tick's number. + /// + /// It also takes care of including the challenges from the `ChallengesQueue` and + /// `PriorityChallengesQueue`. These custom challenges are only included in "checkpoint" + /// ticks + /// + /// Additionally, it takes care of checking if there are Providers that have + /// failed to submit a proof, and should have submitted one by this tick. It does so + /// by checking the [`TickToProvidersDeadlines`] StorageMap. If a Provider is found + /// to have failed to submit a proof, it is subject to slashing. + /// + /// Finally, it cleans up: + /// - The [`TickToChallengesSeed`] StorageMap, removing entries older than `ChallengeHistoryLength`. + /// - The [`TickToCheckpointChallenges`] StorageMap, removing the previous checkpoint challenge block. + /// - The [`TickToProvidersDeadlines`] StorageMap, removing entries for the current challenges tick. + pub fn do_new_challenges_round(weight: &mut WeightMeter) { + // Increment the challenges' ticker. + let mut challenges_ticker = ChallengesTicker::::get(); + challenges_ticker.saturating_inc(); + ChallengesTicker::::set(challenges_ticker); + weight.consume(T::DbWeight::get().reads_writes(1, 1)); + + // Store random seed for this tick. + let (seed, _) = RandomnessProviderFor::::random(challenges_ticker.encode().as_ref()); + TickToChallengesSeed::::set(challenges_ticker, Some(seed)); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Remove the oldest challenge seed stored, to clean up the storage. + let tick_to_remove = challenges_ticker.checked_sub(&ChallengeHistoryLengthFor::::get()); + if let Some(tick_to_remove) = tick_to_remove { + TickToChallengesSeed::::remove(tick_to_remove); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + } + + // Emit new challenge seed event. + Self::deposit_event(Event::NewChallengeSeed { + challenges_ticker, + seed, + }); + + let last_checkpoint_tick = LastCheckpointTick::::get(); + + // Count last checkpoint challenges tick challenges + let checkpoint_challenges_count = + TickToCheckpointChallenges::::get(last_checkpoint_tick) + .unwrap_or_else(|| + // Returning an empty list so slashable providers will not accrue any failed proof submissions for checkpoint challenges. + BoundedVec::new()) + .len(); + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + // This hook does not return an error, and it cannot fail, that's why we use `saturating_add`. + let next_checkpoint_tick = + last_checkpoint_tick.saturating_add(T::CheckpointChallengePeriod::get()); + if challenges_ticker == next_checkpoint_tick { + // This is a checkpoint challenge round, so we also generate new checkpoint challenges. + Self::do_new_checkpoint_challenge_round(challenges_ticker, weight); + } + weight.consume(T::DbWeight::get().reads_writes(2, 0)); + + // If there are providers left in `TickToProvidersDeadlines` for this tick, + // they are marked as slashable. + let mut slashable_providers = + TickToProvidersDeadlines::::drain_prefix(challenges_ticker); + while let Some((provider, _)) = slashable_providers.next() { + // One read for every provider in the prefix, and one write as we're consuming and deleting the entry. + weight.consume(T::DbWeight::get().reads_writes(1, 1)); + + // Accrue number of failed proof submission for this slashable provider. + // Add custom checkpoint challenges if the provider needed to respond to them. + SlashableProviders::::mutate(provider, |slashable| { + let mut accrued = slashable.unwrap_or(0); + + let last_tick_provider_submitted_proof = + match LastTickProviderSubmittedAProofFor::::get(provider) { + Some(tick) => tick, + None => { + Self::deposit_event(Event::NoRecordOfLastSubmittedProof { provider }); + + #[cfg(test)] + unreachable!( + "Provider should have a last tick it submitted a proof for." + ); + + #[allow(unreachable_code)] + { + // If the Provider has no record of the last tick it submitted a proof for, + // we set it to the current challenges ticker, so they will not be slashed. + challenges_ticker + } + } + }; + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + let challenge_ticker_provider_should_have_responded_to = + challenges_ticker.saturating_sub(T::ChallengeTicksTolerance::get()); + + if checkpoint_challenges_count != 0 + && last_tick_provider_submitted_proof <= last_checkpoint_tick + && last_checkpoint_tick < challenge_ticker_provider_should_have_responded_to + { + accrued = accrued.saturating_add(checkpoint_challenges_count as u32); + } + + accrued = accrued.saturating_add(RandomChallengesPerBlockFor::::get()); + + *slashable = Some(accrued); + }); + + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Get the stake for this Provider, to know its challenge period. + // If a submitter is a registered Provider, it must have a stake, so there shouldn't be an error. + let stake = match ProvidersPalletFor::::get_stake(provider) { + Some(stake) => stake, + // But to avoid panics, in the odd case of a Provider not being registered, we + // arbitrarily set the stake to be that which would result in `CheckpointChallengePeriod` ticks of challenge period. + None => { + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + let checkpoint_challenge_period = + CheckpointChallengePeriodFor::::get().saturated_into::(); + StakeToChallengePeriodFor::::get() * checkpoint_challenge_period.into() + } + }; + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + // Calculate the next challenge deadline for this Provider. + // At this point, we are processing all providers who have reached their deadline (i.e. tolerance ticks after the tick they should provide a proof for): + // challenge_ticker = last_tick_provider_should_have_submitted_a_proof_for + ChallengeTicksTolerance + // + // By definition, the next deadline should be tolerance ticks after the next tick they should submit proof for (i.e. one period after the last tick they should have submitted a proof for): + // next_challenge_deadline = last_tick_provider_should_have_submitted_a_proof_for + provider_period + ChallengeTicksTolerance + // + // Therefore, the next deadline is one period from now: + // next_challenge_deadline = challenge_ticker + provider_period + let next_challenge_deadline = + challenges_ticker.saturating_add(Self::stake_to_challenge_period(stake)); + + // Update this Provider's next challenge deadline. + TickToProvidersDeadlines::::set(next_challenge_deadline, provider, Some(())); + + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Calculate the tick for which the Provider should have submitted a proof. + let last_interval_tick = + challenges_ticker.saturating_sub(T::ChallengeTicksTolerance::get()); + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + // Update this Provider's last interval tick for the next challenge. + LastTickProviderSubmittedAProofFor::::set(provider, Some(last_interval_tick)); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Emit slashable provider event. + Self::deposit_event(Event::SlashableProvider { + provider, + next_challenge_deadline, + }); + } + } + + /// Check if the network is presumably under a spam attack. + /// + /// The function looks at the weight used in the past `BlockFullnessPeriod` blocks, comparing it + /// with the maximum allowed weight (`max_weight_for_class`) for the dispatch class of `submit_proof` extrinsics. + /// The idea is to track blocks that have not been filled to capacity within a + /// specific period (`BlockFullnessPeriod`) and determine if there is enough "headroom" + /// (unused block capacity) to consider the network not under spam. + pub fn do_check_spamming_condition(weight: &mut WeightMeter) { + // Get the maximum weight for the dispatch class of `submit_proof` extrinsics. + let weights = T::BlockWeights::get(); + let max_weight_for_class = weights + .get(DispatchClass::Normal) + .max_total + .unwrap_or(weights.max_block); + + let current_block = frame_system::Pallet::::block_number(); + + // Get the number of blocks that have been considered _not_ full in the past `BlockFullnessPeriod`. + let not_full_blocks_count = NotFullBlocksCount::::get(); + let mut new_not_full_blocks_count = not_full_blocks_count.clone(); + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + // This would only be `None` if the block number is 0, so this should be safe. + if let Some(prev_block) = current_block.checked_sub(&1u32.into()) { + // Get the weight usage in the previous block. + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + if let Some(weight_used_in_prev_block) = PastBlocksWeight::::get(prev_block) { + // Check how much weight was left in the previous block, compared to the maximum weight. + // This is computed both for proof size and ref time. + let weight_left_in_prev_block = + max_weight_for_class.saturating_sub(weight_used_in_prev_block); + + // If the weight left in the previous block is greater or equal than the headroom, for both proof size or ref time, + // we consider the previous block to be NOT full and count it as such. + if weight_left_in_prev_block.ref_time() + >= T::BlockFullnessHeadroom::get().ref_time() + && weight_left_in_prev_block.proof_size() + >= T::BlockFullnessHeadroom::get().proof_size() + { + // Increment the counter of blocks that are not full. + new_not_full_blocks_count = + new_not_full_blocks_count.saturating_add(1u32.into()); + } + } + } + + // This would be `None` during the first `BlockFullnessPeriod` + 1 blocks. + if let Some(oldest_block_fullness_number) = + current_block.checked_sub(&T::BlockFullnessPeriod::get().saturating_add(1u32.into())) + { + // Get the weight usage in the oldest registered block. + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + if let Some(weight_used_in_oldest_block) = + PastBlocksWeight::::get(oldest_block_fullness_number) + { + // Check how much weight was left in the oldest block, compared to the maximum weight. + // This is computed both for proof size and ref time. + let weight_left_in_oldest_block = + max_weight_for_class.saturating_sub(weight_used_in_oldest_block); + + // If the weight left in the oldest block is greater or equal than the headroom, for both proof size or ref time, + // we consider the oldest block to be NOT full. If that is the case, we have to remove it from the + // count as it is now out of the `BlockFullnessPeriod` of blocks taken into account. + if weight_left_in_oldest_block.ref_time() + >= T::BlockFullnessHeadroom::get().ref_time() + && weight_left_in_oldest_block.proof_size() + >= T::BlockFullnessHeadroom::get().proof_size() + { + // Decrement the counter of blocks that are not full. + new_not_full_blocks_count = + new_not_full_blocks_count.saturating_sub(1u32.into()); + } + } + } + + // If there was a change in the number of blocks that were not full, we need to update the storage. + if new_not_full_blocks_count != not_full_blocks_count { + NotFullBlocksCount::::set(new_not_full_blocks_count); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + } + + // At this point, we have an updated count of blocks that were not full in the past `BlockFullnessPeriod`. + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + if ChallengesTicker::::get() > T::BlockFullnessPeriod::get() { + // Running this check only makes sense after `ChallengesTicker` has advanced past `BlockFullnessPeriod`. + // To consider the network NOT to be under spam, we need more than `min_non_full_blocks` blocks to be not full. + let min_non_full_blocks_ratio = T::MinNotFullBlocksRatio::get(); + let min_non_full_blocks = + min_non_full_blocks_ratio.mul_floor(T::BlockFullnessPeriod::get()); + + // If `not_full_blocks_count` is greater than `min_non_full_blocks`, we consider the network NOT to be under spam. + if new_not_full_blocks_count > min_non_full_blocks { + // The network is NOT considered to be under a spam attack, so we resume the `ChallengesTicker`. + ChallengesTickerPaused::::set(None); + } else { + // At this point, the network is presumably under a spam attack, so we pause the `ChallengesTicker`. + ChallengesTickerPaused::::set(Some(())); + } + weight.consume(T::DbWeight::get().reads_writes(1, 1)); + } + } + + /// Generate new checkpoint challenges for a given block. + /// + /// Fills up a new vector of checkpoint challenges with challenges in the `PriorityChallengesQueue`, + /// and the `ChallengesQueue` if there is space left. + /// + /// Cleans up the `TickToCheckpointChallenges` StorageMap, removing the previous checkpoint challenge block. + fn do_new_checkpoint_challenge_round( + current_tick: BlockNumberFor, + weight: &mut WeightMeter, + ) { + let mut new_checkpoint_challenges: BoundedVec< + (KeyFor, Option), + MaxCustomChallengesPerBlockFor, + > = BoundedVec::new(); + + // Fill up this round's checkpoint challenges with challenges in the `PriorityChallengesQueue`. + // It gets filled up until the max number of custom challenges for a block is reached, or until + // there are no more challenges in the `PriorityChallengesQueue`. + let original_priority_challenges_queue = PriorityChallengesQueue::::get(); + let mut priority_challenges_queue = + VecDeque::from(original_priority_challenges_queue.to_vec()); + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + while !new_checkpoint_challenges.is_full() && !priority_challenges_queue.is_empty() { + let challenge = match priority_challenges_queue.pop_front() { + Some(challenge) => challenge, + // This should not happen, as we check that priority_challenges_queue is not empty + // in the while condition above, but we add this to be safe. + None => break, + }; + + if new_checkpoint_challenges.try_push(challenge).is_err() { + // This should not happen, as we check that new_checkpoint_challenges is not full + // in the while condition above, but we add this to be safe. + break; + } + } + + // Convert priority_challenges_queue back to a bounded vector. + let new_priority_challenges_queue: BoundedVec< + (KeyFor, Option), + ChallengesQueueLengthFor, + > = Vec::from(priority_challenges_queue) + .try_into() + .unwrap_or_else(|_| original_priority_challenges_queue); + + // Reset the priority challenges queue with the leftovers. + PriorityChallengesQueue::::set(new_priority_challenges_queue); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Fill up this round's checkpoint challenges with challenges in the `ChallengesQueue`. + // It gets filled up until the max number of custom challenges for a block is reached, or until + // there are no more challenges in the `ChallengesQueue`. + let mut challenges_queue = VecDeque::from(ChallengesQueue::::get().to_vec()); + weight.consume(T::DbWeight::get().reads_writes(1, 0)); + + while !new_checkpoint_challenges.is_full() && !challenges_queue.is_empty() { + let challenge = match challenges_queue.pop_front() { + Some(challenge) => challenge, + // This should not happen, as we check that challenges_queue is not empty + // in the while condition above, but we add this to be safe. + None => break, + }; + + if new_checkpoint_challenges + .try_push((challenge, None)) + .is_err() + { + // This should not happen, as we check that new_checkpoint_challenges is not full + // in the while condition above, but we add this to be safe. + break; + } + } + + // Convert challenges_queue back to a bounded vector. + let new_challenges_queue: BoundedVec, ChallengesQueueLengthFor> = + Vec::from(challenges_queue) + .try_into() + .unwrap_or_else(|_| BoundedVec::new()); + + // Reset the challenges queue with the leftovers. + ChallengesQueue::::set(new_challenges_queue); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Store the new checkpoint challenges. + TickToCheckpointChallenges::::set(current_tick, Some(new_checkpoint_challenges.clone())); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Remove the last checkpoint challenge from storage to clean up. + let last_checkpoint_tick = LastCheckpointTick::::get(); + TickToCheckpointChallenges::::remove(last_checkpoint_tick); + weight.consume(T::DbWeight::get().reads_writes(1, 1)); + + // Set this tick as the last checkpoint tick. + LastCheckpointTick::::set(current_tick); + weight.consume(T::DbWeight::get().reads_writes(0, 1)); + + // Emit new checkpoint challenge event. + Self::deposit_event(Event::NewCheckpointChallenge { + challenges_ticker: current_tick, + challenges: new_checkpoint_challenges, + }); + } + + /// Convert stake to challenge period. + /// + /// [`StakeToChallengePeriodFor`] is divided by `stake` to get the number of blocks in between challenges + /// for a Provider. The result is then converted to `BlockNumber` type. The division saturates at [`MinChallengePeriodFor`]. + pub(crate) fn stake_to_challenge_period(stake: BalanceFor) -> BlockNumberFor { + let min_challenge_period = MinChallengePeriodFor::::get(); + let challenge_period = match StakeToChallengePeriodFor::::get().checked_div(&stake) { + Some(block_period) => T::StakeToBlockNumber::convert(block_period), + None => min_challenge_period, + }; + + // Return the maximum between the calculated challenge period and the minimum challenge period. + min_challenge_period.max(challenge_period) + } + + /// Add challenge to ChallengesQueue. + /// + /// Check if challenge is already queued. If it is, just return. Otherwise, add the challenge + /// to the queue. + fn enqueue_challenge(key: &KeyFor) -> DispatchResult { + // Get challenges queue from storage. + let mut challenges_queue = ChallengesQueue::::get(); + + // Check if challenge is already queued. If it is, just return. + if challenges_queue.contains(&key) { + return Ok(()); + } + + // Add challenge to queue. + challenges_queue + .try_push(*key) + .map_err(|_| Error::::ChallengesQueueOverflow)?; + + // Set challenges queue in storage. + ChallengesQueue::::put(challenges_queue); + + Ok(()) + } + + /// Add challenge to `PriorityChallengesQueue`. + /// + /// Check if challenge is already queued. If it is, just return. Otherwise, add the challenge + /// to the queue. + fn enqueue_challenge_with_priority( + key: &KeyFor, + mutation: Option, + ) -> DispatchResult { + // Get priority challenges queue from storage. + let mut priority_challenges_queue = PriorityChallengesQueue::::get(); + + // Check if challenge is already queued. If it is, just return. + if priority_challenges_queue.contains(&(*key, mutation.clone())) { + return Ok(()); + } + + // Add challenge to queue. + priority_challenges_queue + .try_push((*key, mutation)) + .map_err(|_| Error::::PriorityChallengesQueueOverflow)?; + + // Set priority challenges queue in storage. + PriorityChallengesQueue::::put(priority_challenges_queue); + + Ok(()) + } + + /// Generate challenges from seed. + /// + /// Generate a number of challenges from a seed and a Provider's ID. + /// Challenges are generated by hashing the seed, the Provider's ID and an index. + pub(crate) fn generate_challenges_from_seed( + seed: RandomnessOutputFor, + provider_id: &ProviderIdFor, + count: u32, + ) -> Vec { + let mut challenges = Vec::new(); + + for i in 0..count { + // Each challenge is generated by hashing the seed, the provider's ID and the index. + let challenge = T::MerkleTrieHashing::hash( + &[ + seed.as_ref(), + provider_id.encode().as_ref(), + i.encode().as_ref(), + ] + .concat(), + ); + + challenges.push(challenge.into()); + } + + challenges + } + + /// Trim the storage that holds the Providers that submitted valid proofs in the last ticks until there's + /// `TargetTicksOfProofsStorage` ticks left (or until the remaining weight allows it). + /// + /// This function is called in the `on_idle` hook, which means it's only called when the block has + /// unused weight. + /// + /// It removes the oldest tick from the storage that holds the providers that submitted valid proofs + /// in the last ticks as many times as the remaining weight allows it, but at most until the storage + /// has `TargetTicksOfProofsStorage` ticks left. + pub fn do_trim_valid_proof_submitters_last_ticks( + _n: BlockNumberFor, + usable_weight: Weight, + ) -> Weight { + // Initialize the weight used by this function. + let mut used_weight = Weight::zero(); + + // Check how many ticks should be removed to keep the storage at the target amount. + let mut last_deleted_tick = LastDeletedTick::::get(); + used_weight = used_weight.saturating_add(T::DbWeight::get().reads(1)); + let target_ticks_to_keep = TargetTicksStorageOfSubmittersFor::::get(); + used_weight = used_weight.saturating_add(T::DbWeight::get().reads(1)); + let current_tick = ChallengesTicker::::get(); + used_weight = used_weight.saturating_add(T::DbWeight::get().reads(1)); + let ticks_to_remove = current_tick + .saturating_sub(last_deleted_tick) + .saturating_sub(target_ticks_to_keep.into()); + + // Check how much ticks can be removed considering weight limitations + let weight_to_remove_tick = T::DbWeight::get().reads_writes(0, 2); + let removable_ticks = usable_weight + .saturating_sub(used_weight) + .checked_div_per_component(&weight_to_remove_tick); + + // If there is enough weight to remove ticks, try to remove as many ticks as possible until the target is reached. + if let Some(removable_ticks) = removable_ticks { + let removable_ticks = + removable_ticks.min(ticks_to_remove.try_into().unwrap_or(u64::MAX)); + // Remove all the ticks that we can, until we reach the target amount. + for _ in 0..removable_ticks { + // Get the next tick to delete. + let next_tick_to_delete = last_deleted_tick.saturating_add(One::one()); + + // Remove it from storage + ValidProofSubmittersLastTicks::::remove(next_tick_to_delete); + + // Update the last removed tick + LastDeletedTick::::set(next_tick_to_delete); + last_deleted_tick = next_tick_to_delete; // We do this to avoid having to read from storage again. + + // Increment the used weight. + used_weight = used_weight.saturating_add(weight_to_remove_tick); + } + } + + // Return the weight used by this function. + used_weight + } +} + +impl ProofsDealerInterface for Pallet { + type ProviderId = ProviderIdFor; + type ForestProof = ForestVerifierProofFor; + type KeyProof = KeyVerifierProofFor; + type MerkleHash = T::MerkleTrieHash; + type MerkleHashing = T::MerkleTrieHashing; + type RandomnessOutput = RandomnessOutputFor; + type TickNumber = BlockNumberFor; + + fn verify_forest_proof( + provider_id: &Self::ProviderId, + challenges: &[Self::MerkleHash], + proof: &Self::ForestProof, + ) -> Result, DispatchError> { + // Check if submitter is a registered Provider. + ensure!( + ProvidersPalletFor::::is_provider(*provider_id), + Error::::NotProvider + ); + + // Get root for submitter. + // If a submitter is a registered Provider, it must have a root. + let root = ProvidersPalletFor::::get_root(*provider_id) + .ok_or(Error::::ProviderRootNotFound)?; + + // Verify forest proof. + ForestVerifierFor::::verify_proof(&root, challenges, proof) + .map_err(|_| Error::::ForestProofVerificationFailed.into()) + } + + fn verify_generic_forest_proof( + root: &Self::MerkleHash, + challenges: &[Self::MerkleHash], + proof: &Self::ForestProof, + ) -> Result, DispatchError> { + // Verify forest proof. + ForestVerifierFor::::verify_proof(&root, challenges, proof) + .map_err(|_| Error::::ForestProofVerificationFailed.into()) + } + + fn verify_key_proof( + key: &Self::MerkleHash, + challenges: &[Self::MerkleHash], + proof: &Self::KeyProof, + ) -> Result, DispatchError> { + // Verify key proof. + KeyVerifierFor::::verify_proof(key, &challenges, proof) + .map_err(|_| Error::::KeyProofVerificationFailed.into()) + } + + fn challenge(key_challenged: &Self::MerkleHash) -> DispatchResult { + Self::enqueue_challenge(key_challenged) + } + + fn challenge_with_priority( + key_challenged: &Self::MerkleHash, + mutation: Option, + ) -> DispatchResult { + Self::enqueue_challenge_with_priority(key_challenged, mutation) + } + + fn generate_challenges_from_seed( + seed: Self::RandomnessOutput, + provider_id: &Self::ProviderId, + count: u32, + ) -> Vec { + Self::generate_challenges_from_seed(seed, provider_id, count) + } + + fn apply_delta( + provider_id: &Self::ProviderId, + mutations: &[(Self::MerkleHash, TrieMutation)], + proof: &Self::ForestProof, + ) -> Result { + // Check if submitter is a registered Provider. + ensure!( + ProvidersPalletFor::::is_provider(*provider_id), + Error::::NotProvider + ); + + // Get root for submitter. + // If a submitter is a registered Provider, it must have a root. + let root = ProvidersPalletFor::::get_root(*provider_id) + .ok_or(Error::::ProviderRootNotFound)?; + + Ok( + >::apply_delta( + &root, mutations, proof, + ) + .map_err(|_| Error::::FailedToApplyDelta)? + .1, + ) + } + + fn generic_apply_delta( + root: &Self::MerkleHash, + mutations: &[(Self::MerkleHash, TrieMutation)], + proof: &Self::ForestProof, + ) -> Result { + Ok( + >::apply_delta( + &root, mutations, proof, + ) + .map_err(|_| Error::::FailedToApplyDelta)? + .1, + ) + } + + fn initialise_challenge_cycle(provider_id: &Self::ProviderId) -> DispatchResult { + // Check that `who` is a registered Provider. + if !ProvidersPalletFor::::is_provider(*provider_id) { + return Err(Error::::NotProvider.into()); + } + + // Get stake for submitter. + // If a submitter is a registered Provider, it must have a stake, so this shouldn't happen. + // However, since the implementation of that is not up to this pallet, we need to check. + let stake = ProvidersPalletFor::::get_stake(*provider_id) + .ok_or(Error::::ProviderStakeNotFound)?; + + // Check that the stake is non-zero. + ensure!(stake > BalanceFor::::zero(), Error::::ZeroStake); + + // Check if this Provider previously had a challenge cycle initialised. + if let Some(last_tick_proven) = LastTickProviderSubmittedAProofFor::::get(*provider_id) { + // Compute the next tick for which the Provider should have been submitting a proof. + let old_next_challenge_tick = last_tick_proven + .checked_add(&Self::stake_to_challenge_period(stake)) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Calculate the deadline for submitting a proof. Should be the next challenge tick + the challenges tick tolerance. + let old_next_challenge_deadline = old_next_challenge_tick + .checked_add(&ChallengeTicksToleranceFor::::get()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Remove the old deadline. + TickToProvidersDeadlines::::remove(old_next_challenge_deadline, *provider_id); + } + + // Set `LastTickProviderSubmittedAProofFor` to the current tick. + let current_tick = ChallengesTicker::::get(); + LastTickProviderSubmittedAProofFor::::set(*provider_id, Some(current_tick)); + + // Compute the next tick for which the Provider should be submitting a proof. + let next_challenge_tick = current_tick + .checked_add(&Self::stake_to_challenge_period(stake)) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Calculate the deadline for submitting a proof. Should be the next challenge tick + the challenges tick tolerance. + let next_challenge_deadline = next_challenge_tick + .checked_add(&ChallengeTicksToleranceFor::::get()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Set the deadline for submitting a proof. + TickToProvidersDeadlines::::set(next_challenge_deadline, *provider_id, Some(())); + + // Emit event. + Self::deposit_event(Event::::NewChallengeCycleInitialised { + current_tick, + next_challenge_deadline, + provider: *provider_id, + maybe_provider_account: ProvidersPalletFor::::get_owner_account(*provider_id), + }); + + Ok(()) + } + + fn get_current_tick() -> Self::TickNumber { + ChallengesTicker::::get() + } +} + +impl ProofSubmittersInterface for Pallet { + type ProviderId = ProviderIdFor; + type TickNumber = BlockNumberFor; + type MaxProofSubmitters = MaxSubmittersPerTickFor; + + fn get_proof_submitters_for_tick( + tick_number: &Self::TickNumber, + ) -> Option> { + ValidProofSubmittersLastTicks::::get(tick_number) + } + + fn get_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) -> Option { + SlashableProviders::::get(provider_id) + } + + fn clear_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) { + SlashableProviders::::remove(provider_id); + } +} + +/// Runtime API implementation for the ProofsDealer pallet. +impl Pallet +where + T: pallet::Config, +{ + pub fn get_last_tick_provider_submitted_proof( + provider_id: &ProviderIdFor, + ) -> Result, GetLastTickProviderSubmittedProofError> { + // Check if submitter is a registered Provider. + if !ProvidersPalletFor::::is_provider(*provider_id) { + return Err(GetLastTickProviderSubmittedProofError::ProviderNotRegistered); + } + + LastTickProviderSubmittedAProofFor::::get(provider_id) + .ok_or(GetLastTickProviderSubmittedProofError::ProviderNeverSubmittedProof) + } + + pub fn get_last_checkpoint_challenge_tick() -> BlockNumberFor { + LastCheckpointTick::::get() + } + + pub fn get_checkpoint_challenges( + tick: BlockNumberFor, + ) -> Result, Option)>, GetCheckpointChallengesError> { + // Check that the tick is smaller than the last checkpoint tick. + if LastCheckpointTick::::get() < tick { + return Err(GetCheckpointChallengesError::TickGreaterThanLastCheckpointTick); + } + + let checkpoint_challenges = TickToCheckpointChallenges::::get(tick) + .ok_or(GetCheckpointChallengesError::NoCheckpointChallengesInTick)?; + + Ok(checkpoint_challenges.into()) + } + + pub fn get_challenge_seed( + tick: BlockNumberFor, + ) -> Result, GetChallengeSeedError> { + let current_tick = ChallengesTicker::::get(); + if tick > current_tick { + return Err(GetChallengeSeedError::TickIsInTheFuture); + } + + let seed = TickToChallengesSeed::::get(tick) + .ok_or(GetChallengeSeedError::TickBeyondLastSeedStored)?; + + Ok(seed) + } + + pub fn get_challenge_period( + provider_id: &ProviderIdFor, + ) -> Result, GetChallengePeriodError> { + let stake = ProvidersPalletFor::::get_stake(*provider_id) + .ok_or(GetChallengePeriodError::ProviderNotRegistered)?; + + Ok(Self::stake_to_challenge_period(stake)) + } + + pub fn get_checkpoint_challenge_period() -> BlockNumberFor { + CheckpointChallengePeriodFor::::get() + } + + pub fn get_challenges_from_seed( + seed: &RandomnessOutputFor, + provider_id: &ProviderIdFor, + count: u32, + ) -> Vec> { + Self::generate_challenges_from_seed(*seed, provider_id, count) + } + + pub fn get_forest_challenges_from_seed( + seed: &RandomnessOutputFor, + provider_id: &ProviderIdFor, + ) -> Vec> { + Self::generate_challenges_from_seed( + *seed, + provider_id, + RandomChallengesPerBlockFor::::get(), + ) + } + + pub fn get_current_tick() -> BlockNumberFor { + ChallengesTicker::::get() + } + + pub fn get_next_deadline_tick( + provider_id: &ProviderIdFor, + ) -> Result, GetNextDeadlineTickError> { + // Check if the provider is indeed a registered Provider. + if !ProvidersPalletFor::::is_provider(*provider_id) { + return Err(GetNextDeadlineTickError::ProviderNotRegistered); + } + + // Get the last tick for which the submitter submitted a proof. + let last_tick_provider_submitted_proof = + LastTickProviderSubmittedAProofFor::::get(provider_id) + .ok_or(GetNextDeadlineTickError::ProviderNotInitialised)?; + + // The next deadline tick is the last tick + the challenge period + the challenge tolerance. + let challenge_period = Self::get_challenge_period(provider_id) + .map_err(|_| GetNextDeadlineTickError::ProviderNotRegistered)?; + let next_deadline_tick = last_tick_provider_submitted_proof + .checked_add(&challenge_period) + .ok_or(GetNextDeadlineTickError::ArithmeticOverflow)? + .checked_add(&ChallengeTicksToleranceFor::::get()) + .ok_or(GetNextDeadlineTickError::ArithmeticOverflow)?; + + Ok(next_deadline_tick) + } +} diff --git a/pallets/providers/Cargo.toml b/pallets/providers/Cargo.toml index a03fb5746..6967b91db 100644 --- a/pallets/providers/Cargo.toml +++ b/pallets/providers/Cargo.toml @@ -1,80 +1,80 @@ -[package] -name = "pallet-storage-providers" -description = "FRAME pallet that works as a registry for storage providers (both main and backup ones)" -version = "0.1.0" -homepage = { workspace = true } -license = { workspace = true } -authors = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } - -[lints] -workspace = true - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[dependencies] -codec = { workspace = true } -scale-info = { workspace = true } - -# Local -pallet-storage-providers-runtime-api = { workspace = true } -shp-constants = { workspace = true } -shp-traits = { workspace = true, default-features = false } - -# Substrate -frame-benchmarking = { workspace = true, optional = true } -frame-support = { workspace = true } -frame-system = { workspace = true } - -sp-runtime = { workspace = true } -sp-std = { workspace = true } -sp-trie = { workspace = true } - -[dev-dependencies] -serde = { workspace = true } - -#Local -pallet-proofs-dealer = { workspace = true } -pallet-payment-streams = { workspace = true } -shp-file-metadata = { workspace = true } - -# Substrate -sp-core = { workspace = true } -sp-io = { workspace = true } - -# Frame -pallet-balances = { workspace = true, features = ["std"] } - -[features] -default = ["std"] -runtime-benchmarks = [ - "frame-benchmarking/runtime-benchmarks", - "frame-support/runtime-benchmarks", - "frame-system/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", -] -std = [ - "codec/std", - "frame-benchmarking?/std", - "frame-support/std", - "frame-system/std", - "pallet-balances/std", - "pallet-storage-providers-runtime-api/std", - "pallet-proofs-dealer/std", - "pallet-payment-streams/std", - "scale-info/std", - "shp-constants/std", - "shp-traits/std", - "sp-core/std", - "sp-io/std", - "sp-runtime/std", - "sp-std/std", - "sp-trie/std", -] -try-runtime = [ - "frame-support/try-runtime", - "frame-system/try-runtime", - "sp-runtime/try-runtime", -] +[package] +name = "pallet-storage-providers" +description = "FRAME pallet that works as a registry for storage providers (both main and backup ones)" +version = "0.1.0" +homepage = { workspace = true } +license = { workspace = true } +authors = { workspace = true } +repository = { workspace = true } +edition = { workspace = true } + +[lints] +workspace = true + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[dependencies] +codec = { workspace = true } +scale-info = { workspace = true } + +# Local +pallet-storage-providers-runtime-api = { workspace = true } +shp-constants = { workspace = true } +shp-traits = { workspace = true, default-features = false } + +# Substrate +frame-benchmarking = { workspace = true, optional = true } +frame-support = { workspace = true } +frame-system = { workspace = true } + +sp-runtime = { workspace = true } +sp-std = { workspace = true } +sp-trie = { workspace = true } + +[dev-dependencies] +serde = { workspace = true } + +#Local +pallet-proofs-dealer = { workspace = true } +pallet-payment-streams = { workspace = true } +shp-file-metadata = { workspace = true } + +# Substrate +sp-core = { workspace = true } +sp-io = { workspace = true } + +# Frame +pallet-balances = { workspace = true, features = ["std"] } + +[features] +default = ["std"] +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", +] +std = [ + "codec/std", + "frame-benchmarking?/std", + "frame-support/std", + "frame-system/std", + "pallet-balances/std", + "pallet-storage-providers-runtime-api/std", + "pallet-proofs-dealer/std", + "pallet-payment-streams/std", + "scale-info/std", + "shp-constants/std", + "shp-traits/std", + "sp-core/std", + "sp-io/std", + "sp-runtime/std", + "sp-std/std", + "sp-trie/std", +] +try-runtime = [ + "frame-support/try-runtime", + "frame-system/try-runtime", + "sp-runtime/try-runtime", +] diff --git a/pallets/providers/README.md b/pallets/providers/README.md index a3b621acb..c93907401 100644 --- a/pallets/providers/README.md +++ b/pallets/providers/README.md @@ -1,416 +1,416 @@ -# Storage Providers Pallet - -## Overview - -The Storage Providers pallet is designed for Substrate-based blockchains, providing a robust framework for managing storage providers within a decentralized network. This pallet allows for the registration and management of Main Storage Providers (MSPs) and Backup Storage Providers (BSPs). -It is designed to be flexible and extensible, allowing developers to integrate it with decentralized storage solutions in their blockchain networks with ease. It provides essential services for managing the roles and capabilities of storage providers within the ecosystem, ensuring transparency, security, and operational integrity. - -### Features - -- Provider Management: Enables the sign-up of MSPs and BSPs, allowing them to register and become part of the network's storage solution. -- Capacity and Value Proposition Management: Providers can modify their storage capacities and update their value propositions to reflect their current offerings and capabilities. -- Lifecycle Events: Tracks significant lifecycle events like sign-up requests, confirmations, and sign-offs through a series of emitted events. -- Robust Access Controls: Ensures that only authorized operations are performed by authorized storage providers. -- Error Handling: Provides detailed error messages to help developers understand and resolve issues during storage provider management operations. - -### Target Audience - -This pallet is intended for blockchain developers interested in integrating decentralized storage solutions into their Substrate-based blockchain. It provides essential services for managing the roles and capabilities of storage providers within the ecosystem. It was developed with StorageHub's specific providers framework but can be used by any other network that fits the Main Storage Provider/Backup Storage Provider structure, with some modifications. - -## Design - -### Main Storage Providers (MSPs) - -A Main Storage Provider (MSP) is responsible for storing the complete file provided by the user and making it readily available for off-chain retrieval. MSPs are expected to compete for user adoption, and a certain degree of centralization is anticipated. They are considered trusted parties for data retrieval. - -MSPs are compensated for their services by the user. The amount is agreed upon when the user selects the MSP, and it's typically higher than what a Backup Storage Provider receives due to the infrastructure required for convenient data retrieval. - -MSPs are required to regularly prove that they continue to store the data they've committed to. This ensures the integrity and availability of the data in the system. - -### Backup Storage Providers (BSPs) - -Backup Storage Providers (BSPs) store a portion of the user's file and must have it readily available to be served to another Storage Provider if the user designates a new MSP. Unlike MSPs, BSPs do not need to make the data available for public retrieval. - -BSPs play a crucial role in the system as a fallback option if the trust with the MSP is broken. They ensure that the user can freely choose another MSP, with the assurance that their data is still available in the Storage Hub. - -BSPs do not compete for user adoption as they do not offer distinctive services to one another and are not chosen by the user. Instead, they are assigned by the system, with considerations to ensure an even distribution of data. - -The remaining portion of the user's payment for storing a file, after the MSP's share, is evenly distributed among the assigned BSPs. This incentivizes BSPs to maintain the data they've committed to storing. - -### Sign Up Process - -The sign up process for Storage Providers is a two-step process to avoid malicious users from predicting the randomness used to generate the unique ID of the Storage Provider. - -1. The first step is the request to sign up, where the user provides the necessary information to become a Storage Provider, commiting to that information, and the necessary deposit is held. -2. The second step is the confirmation of the sign-up, which must be done by the user (or a third-party) after enough time has passed to ensure that the randomness used to generate the unique ID was not predictable when the sign-up request (commitment) was made. - -This process exists because the unique ID of a Storage Provider is what determines if they can volunteer to store a new file of the system after a store request was made by a user, and if the randomness used to generate the unique ID was predictable, malicious users could generate multiple Storage Provider accounts with similar IDs and collude to store the same file, which would be detrimental to the system as it would allow file storage centralization, allowing censorship and data loss. - -### Sign Off Process - -The sign off process is simpler that the sign up process: the Storage Provider requests to sign off, and if it does not have any data currently in use (that means, no user file is currently being stored by this Storage Provider), the deposit is returned and the Storage Provider information is completely deleted from the system. This deletion is permanent, as the unique ID of the Storage Provider is generated using the runtime's randomness, and it is not possible to recreate it. - -### Capacity Management - -Storage Providers can change their capacity, increasing or decreasing it as they see fit. The new capacity has to be more than the minimum allowed by the runtime, more than the Storage Provider's used capacity, and the change is subject to a timelock to avoid spam attacks. The new deposit needed for the new capacity is calculated, and the user has to pay the difference if the new deposit is greater than the current deposit. If the new deposit is less than the current deposit, the held difference is returned to the user. This allows Storage Providers to adapt to the network's needs and their own infrastructure capabilities. - -## Extrinsics - -The Storage Providers pallet provides the following extrinsics, which are explained at a high level in this section. For detailed information on the parameters and usage of each extrinsic, refer to the documentation found in the code. - -### request_msp_sign_up - -The purpose of this extrinsic is to handle the sign-up process for a new Main Storage Provider. It performs several checks and updates the blockchain's storage accordingly. We have a two-step process for signing up as a Storage Provider to avoid malicious users from predicting the randomness used to generate the unique ID of the Storage Provider, and that's why we have a request and a confirmation extrinsic, as a commitment scheme. - -### request_bsp_sign_up - -The purpose of this extrinsic is to handle the sign-up process for a new Backup Storage Provider. It performs several checks and updates the blockchain's storage accordingly. This extrinsic is similar to the `request_msp_sign_up` extrinsic, but for Backup Storage Providers. - -### confirm_sign_up - -The purpose of this extrinsic is to allow users to confirm their sign up as a Storage Provider (be it a Main Storage Provider or a Backup Storage Provider) after the required time has passed to allow the runtime's randomness used for this process to not have been predictable when the sign up request was made. This extrinsic is only available for users that have a pending sign up request. - -Notes: - -- This extrinsic could be called by the user that requested the registration itself or by a third party in behalf of the user. -- Requests have an expiration because if that wasn't the case, malicious users could wait indefinitely for a random seed from the relay chain that suits their malicious purpose. -- The deposit that the user has to pay to register as a Storage Provider is held when the user requests to register as a Storage Provider, not in this extrinsic. -- If this extrinsic is successful, it will be free for the caller, to incentive state debloating of pending requests. - -### cancel_sign_up - -The purpose of this extrinsic is to allow users to cancel their sign up request that they previously initiated. This allows users to recover the deposit that was held when they requested to sign up as a Storage Provider, and it is a way to incentivize storage debloat as users will want to delete the sign up requests that are not going to be confirmed. This extrinsic is only available for users that have a pending sign up request. - -### msp_sign_off - -The purpose of this extrinsic is to allow Main Storage Providers that are not currently being used by any user to sign off (deregister) as a Storage Provider and recover their deposit. This extrinsic is only available for Main Storage Providers that have no user storage assigned to them (no data in use). We have this restriction to avoid data loss, as if a Main Storage Provider has data in use and signs off, the data would be lost. - -### bsp_sign_off - -The purpose of this extrinsic is to allow Backup Storage Providers that are not currently being used by any user to sign off (deregister) as a Storage Provider and recover their deposit. This extrinsic is only available for Backup Storage Providers that have no user storage assigned to them (no data in use). The logic is the same as the `msp_sign_off` extrinsic, but for Backup Storage Providers. - -### change_capacity - -The purpose of this extrinsic is to allow Storage Providers (Main or Backup) to change their "contracted" capacity, increasing or decreasing it as they see fit. The new capacity has to be more than the minimum allowed by the runtime, more than the Storage Provider's used capacity and the change is subject to a timelock to avoid spam attacks. This extrinsic is available for all registered Storage Providers. - -### add_value_prop - -The purpose of this extrinsic is to allow Main Storage Providers to add new value propositions to their offerings. This allows them to offer service tiers to their users, with different fee structures and features. - -## Interfaces - -This pallet implements the following interfaces: - -- `MutateProvidersInterface` -- `ReadProvidersInterface` -- `ProvidersInterface` - -These are further explained in their own documentation. - -## Storage - -The Storage Providers pallet uses the following storage items for managing the state of the network: - -### `SignUpRequests` - -This storage holds the sign up requests initiated by users of StorageHub that want to offer their services as Storage Providers, both Main and Backup. - -It's a map from an account ID to a tuple consisting of the Storage Provider metadata that the account used when requesting to sign up and the block number in which the request was initiated. - -```rust -AccountId -> (StorageProviderMetadata, BlockWhenSignUpWasRequested) -``` - -### `AccountIdToMainStorageProviderId` - -This storage is used to keep track of the one-to-one relationship between an account ID and a Main Storage Provider ID, which is used to choose which challenges are requested from that Storage Provider. - -It's a map from an account ID to a Main Storage Provider ID, which is of the Hash type from the runtime. - -```rust -AccountId -> MainStorageProviderId -``` - -### `MainStorageProviders` - -This storage holds the metadata of each registered Main Storage Provider, including its corresponding buckets, its capacity, used data, the valid multiaddresses to connect to it, its list of value propositions and the block in which this Storage Provider last changed its capacity. - -It's a map from a Main Storage Provider ID to its metadata. - -```rust -MainStorageProviderId -> MainStorageProviderMetadata -``` - -### `Buckets` - -This storage holds the metadata of each bucket that exists in each Main Storage Provider. It holds the bucket's root, the user ID that owns that bucket and the Main Storage Provider ID that holds that bucket. It is updated using the `MutateProvidersInterface`. - -It's a map from a bucket ID to that bucket's metadata - -```rust -BucketId -> Bucket -``` - -### `AccountIdToBackupStorageProviderId` - -This storage is used to keep track of the one-to-one relationship between an account ID and a Backup Storage Provider ID, which is used to both choose which challenges are requested from that Storage Provider and to compare with the threshold used to allow Backup Storage Providers to offer themselves to store a new file of the system. - -It's a map from an account ID to a Backup Storage Provider ID, which is of the Hash type from the runtime. - -```rust -AccountId -> BackupStorageProviderId -``` - -### `BackupStorageProviders` - -This storage holds the metadata of each registered Backup Storage Provider, which has its capacity, its used data, the valid multiaddresses to connect to it, its forest root and the block in which this Storage Provider last changed its capacity. - -It's a map from a Backup Storage Provider ID to its metadata. - -```rust -BackupStorageProviderId -> BackupStorageProviderMetadata -``` - -### `MspCount` - -This storage holds the amount of Main Storage Providers that are currently registered in the system. - -### `BspCount` - -This storage holds the amount of Backup Storage Providers that are currently registered in the system. - -### `TotalBspsCapacity` - -This storage holds the sum of all the capacity that has been registered by Backup Storage Providers, which corresponds to the capacity of the whole network. - -## Events - -The Storage Providers pallet emits the following events: - -### `MspRequestSignUpSuccess` - -This event is emitted when a Main Storage Provider has requested to sign up successfully. It provides information about that Main Storage Provider's account ID, the list of valid multiaddresses that it wants to register, the total capacity that it wants to register, and its list of value propositions. - -The nature of this event is to allow the caller of the extrinsic to know that the request to sign up as a Main Storage Provider was successful and that the corresponding deposit was held. - -```rust -MspRequestSignUpSuccess { - who: T::AccountId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageData, - value_prop: ValueProposition, -} -``` - -### `MspSignUpSuccess` - -This event is emitted when a Main Storage Provider has confirmed its requested sign up successfully. It provides information about that Main Storage Provider's account ID, the list of valid multiaddresses that it has registered, the total capacity that it has registered, and its list of value propositions. - -The nature of this event is to allow the newly registered Main Storage Provider to know that the confirmation of its request to sign up as a Main Storage Provider was successful and that from now on, the user is a Main Storage Provider and can start storing user data. It also allows users of the network to know that a new Main Storage Provider has joined it, which can be useful for them to choose which Main Storage Provider to use. - -```rust -MspSignUpSuccess { - who: T::AccountId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageData, - value_prop: ValueProposition, -} -``` - -### `BspRequestSignUpSuccess` - -This event is emitted when a Backup Storage Provider has requested to sign up successfully. It provides information about that Backup Storage Provider's account ID, the list of valid multiaddresses that it wants to register and the total capacity that it wants to register. - -The nature of this event is to allow the caller of the extrinsic to know that the request to sign up as a Backup Storage Provider was successful and that the corresponding deposit was held. - -```rust -BspRequestSignUpSuccess { - who: T::AccountId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageData, -} -``` - -### `BspSignUpSuccess` - -This event is emitted when a Backup Storage Provider has confirmed its requested sign up successfully. It provides information about that Backup Storage Provider's account ID, the list of valid multiaddresses that it has registered and the total capacity that it has registered. - -The nature of this event is to allow the newly registered Backup Storage Provider to know that the confirmation of its request to sign up as a Backup Storage Provider was successful and that from now on, the user is a Backup Storage Provider and can start volunteering to store user data. It also allows Main Storage Providers to know that a new Backup Storage Provider has joined the network, which can be useful for them when they need to retrieve files from the network. - -```rust -BspSignUpSuccess { - who: T::AccountId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageData, -} -``` - -### `SignUpRequestCanceled` - -This event is emitted when a Storage Provider has cancelled its request to sign up successfully and the previously held deposit has been returned to it. - -The nature of this event is to allow the caller of the extrinsic to know that the request to sign up as a Storage Provider was cancelled successfully and that the corresponding deposit was returned. - -```rust -SignUpRequestCanceled { who: T::AccountId } -``` - -### `MspSignOffSuccess` - -This event is emitted when a Main Storage Provider has signed off of the system successfully and the previously held deposit has been returned to it. - -The nature of this event is to allow the caller of the extrinsic to know that the sign off as a Main Storage Provider was successful and that the corresponding deposit was returned. It also allows users of the network to know that this Main Storage Provider is no longer available as an option for storing their data. - -```rust -MspSignOffSuccess { who: T::AccountId } -``` - -### `BspSignOffSuccess` - -This event is emitted when a Backup Storage Provider has signed off of the system successfully and the previously held deposit has been returned to it. - -The nature of this event is to allow the caller of the extrinsic to know that the sign off as a Backup Storage Provider was successful and that the corresponding deposit was returned. It also allows Main Storage Providers to know that this Backup Storage Provider is no longer available as an option for retrieving data. - -```rust -BspSignOffSuccess { who: T::AccountId } -``` - -### `CapacityChanged` - -This event is emitted when a Storage Provider has successfully changed its registered capacity on the network. It holds the information about the account ID of that Storage Provider, its previous capacity, the new registered capacity and the next block after which the timelock expires and it is able to change its capacity again. - -The nature of this event is to allow the caller of the extrinsic to know that the change of capacity was successful and that the difference in deposit was held or returned. It also allows users of the network to know that this Storage Provider has changed its capacity, which can be useful for them to choose which Storage Provider to use. - -```rust -CapacityChanged { - who: T::AccountId, - old_capacity: StorageData, - new_capacity: StorageData, - next_block_when_change_allowed: BlockNumberFor, -} -``` - -## Errors - -The Storage Providers pallet uses the following error types: - -### `AlreadyRegistered` - -Error thrown when a user tries to sign up as a Storage Provider but is already registered as either a Main Storage Provider or Backup Storage Provider. - -### `MaxBspsReached` - -Error thrown when a user tries to sign up as a Backup Storage Provider but the maximum amount of Backup Storage Providers has been reached. - -### `MaxMspsReached` - -Error thrown when a user tries to sign up as a Main Storage Provider but the maximum amount of Main Storage Providers has been reached. - -### `SignUpNotRequested` - -Error thrown when a user tries to confirm a sign up that was not requested previously. - -### `SignUpRequestPending` - -Error thrown when a user tries to request to sign up when it already has a sign up request pending. - -### `NoMultiAddress` - -Error thrown when a user tries to sign up providing an empty list of multiaddresses. - -### `InvalidMultiAddress` - -Error thrown when a user tries to sign up as a Storage Provider but any of its provided multiaddresses is invalid. - -### `StorageTooLow` - -Error thrown when a user tries to sign up or change its capacity to a value smaller than the minimum required by the runtime. - -### `NotEnoughBalance` - -Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a Storage Provider or changing its capacity to one that entails a bigger deposit. - -### `CannotHoldDeposit` - -Error thrown when the runtime cannot hold the required deposit from the account to register it as a Storage Provider or change its capacity. - -### `StorageStillInUse` - -Error thrown when a user tries to sign off as a Storage Provider but still has storage that's not free. - -### `RandomnessNotValidYet` - -Error thrown when a user tries to confirm a sign up but the available randomness from the runtime could have still been predicted by the user that requested the sign up. - -### `SignUpRequestExpired` - -Error thrown when a user tries to confirm a sign up but too much time has passed since it initially requested to sign up. - -### `NewCapacityLessThanUsedStorage` - -Error thrown when a user tries to change its capacity to less than the capacity that is has used. - -### `NewCapacityEqualsCurrentCapacity` - -Error thrown when a user tries to change its capacity to the same value it already has. - -### `NewCapacityCantBeZero` - -Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a Storage Provider). - -### `NotEnoughTimePassed` - -Error thrown when a Storage Provider tries to change its capacity but it has not been enough time since the last time it changed it, so the timelock is still active. - -### `NotRegistered` - -Error thrown when a user tries to interact as a Storage Provider with this pallet but it is not registered as either a Main Storage Provider or a Backup Storage Provider. - -### `NoUserId` - -Error thrown when trying to get the root of a bucket that belongs to a Main Storage Provider without passing a user ID needed to identify that bucket. - -### `NoBucketId` - -Error thrown when trying to get a root from a Main Storage Provider without passing the bucket ID of the bucket that the root should belong to. - -### `SpRegisteredButDataNotFound` - -Error thrown when a user has a Storage Provider ID assigned to it but its metadata data does not exist in storage (storage inconsistency error, should never happen). - -## Slashing Protocol - -Storage Providers who fail to submit a proof by their challenge deadline _will_ be slashed. In the case of the StorageHub protocol, this is predefined in the proofs-dealer pallet. - -Slashing is an asynchronous process, therefore it is possible for a Storage Provider to have failed more than one challenge before being slashed. This pallet requires an external data source to fetch the number of failed proof submissions. In the case of the StorageHub protocol, the proofs-dealer pallet would keep track of this data and expose an interface for this pallet to access it. This avoids the possibility of a Storage Provider not being slashed for all their failed challenges. Slashing a Storage Provider takes into account the aforementioned total number of failed challenges since the Provider's last slash and multiply it by a configurable slash factor. This factor is a value that is associated to the punishment for a single lost file. - -### Manual and Automatic Slashing - -The `slash` extrinsic can be called by any account to manually slash any Storage Provider that has been marked as slashable, and only requires the Storage Provider ID of a Storage Provider to be slashed. - -An automated slashing mechanism is implemented in an off-chain worker process to be executed by collators which efficiently slashes many Storage Providers. - -### Grace Period and Insolvency - -Since the Storage Provider's stake determines their total storage capacity, it is entirely possible that the amount of data currently stored would be above their total storage capacity after slashing. StorageHub grants a predetermined configurable grace period for Storage Providers to top-up their stake to have their total capacity equal to or greater than the amount of data they currently store. If the grace period has been reached, they are considered to be insolvent and cease to be a Storage Provider. - -The grace period is based on the total stake/capacity of the Storage Provider. In essence, the more stake a Storage Provider has, the longer the grace period. -This is to avoid a high stake Storage Provider from being removed from the network prematurely. - -The runtime automatically processes any expired grace periods within the `on_poll` hook to ensure that the redundancy process is initiated as soon as possible. For every insolvent Storage Provider, an event is emitted to notify the network and also mark the Storage Provider as insolvent, rendering them unable to operate as a Storage Provider. Finally all the of the Storage Provider's stake is slashed and transfered to the treasury. - -### Ensuring Data Redundancy - -> [!IMPORTANT] -> The runtime cannot ensure that all the data stored from an insolvent Storage Provider would be recovered. Given that the runtime has no knowledge of file keys stored by whom, it is up to external services to expose information of the files that are lost so that new storage requests can be initiated. Such external services can be indexer services or MSPs which are expected to run an indexer as well. - -In the event where a BSP loses all of their held file data, to avoid being slashed at every challenge interval, the BSP should request to stop storing every file key they currently have in their forest which they can no -longer respond to proofs for. - -#### Incentives and Storage Cleanup - -For every file key submitted for redundancy which was stored by an insolvent Storage Provider, the caller is rewarded with a configurable amount of tokens which must be less than the slash factor to prevent abuse. - -The runtime will automatically remove the file keys from the insolvent provider's forest. Once the forest root becomes an empty root, the Storage Provider is removed from storage. - -This process ensures that total redundancy is regained before the insolvent Storage Provider is removed from the network. +# Storage Providers Pallet + +## Overview + +The Storage Providers pallet is designed for Substrate-based blockchains, providing a robust framework for managing storage providers within a decentralized network. This pallet allows for the registration and management of Main Storage Providers (MSPs) and Backup Storage Providers (BSPs). +It is designed to be flexible and extensible, allowing developers to integrate it with decentralized storage solutions in their blockchain networks with ease. It provides essential services for managing the roles and capabilities of storage providers within the ecosystem, ensuring transparency, security, and operational integrity. + +### Features + +- Provider Management: Enables the sign-up of MSPs and BSPs, allowing them to register and become part of the network's storage solution. +- Capacity and Value Proposition Management: Providers can modify their storage capacities and update their value propositions to reflect their current offerings and capabilities. +- Lifecycle Events: Tracks significant lifecycle events like sign-up requests, confirmations, and sign-offs through a series of emitted events. +- Robust Access Controls: Ensures that only authorized operations are performed by authorized storage providers. +- Error Handling: Provides detailed error messages to help developers understand and resolve issues during storage provider management operations. + +### Target Audience + +This pallet is intended for blockchain developers interested in integrating decentralized storage solutions into their Substrate-based blockchain. It provides essential services for managing the roles and capabilities of storage providers within the ecosystem. It was developed with StorageHub's specific providers framework but can be used by any other network that fits the Main Storage Provider/Backup Storage Provider structure, with some modifications. + +## Design + +### Main Storage Providers (MSPs) + +A Main Storage Provider (MSP) is responsible for storing the complete file provided by the user and making it readily available for off-chain retrieval. MSPs are expected to compete for user adoption, and a certain degree of centralization is anticipated. They are considered trusted parties for data retrieval. + +MSPs are compensated for their services by the user. The amount is agreed upon when the user selects the MSP, and it's typically higher than what a Backup Storage Provider receives due to the infrastructure required for convenient data retrieval. + +MSPs are required to regularly prove that they continue to store the data they've committed to. This ensures the integrity and availability of the data in the system. + +### Backup Storage Providers (BSPs) + +Backup Storage Providers (BSPs) store a portion of the user's file and must have it readily available to be served to another Storage Provider if the user designates a new MSP. Unlike MSPs, BSPs do not need to make the data available for public retrieval. + +BSPs play a crucial role in the system as a fallback option if the trust with the MSP is broken. They ensure that the user can freely choose another MSP, with the assurance that their data is still available in the Storage Hub. + +BSPs do not compete for user adoption as they do not offer distinctive services to one another and are not chosen by the user. Instead, they are assigned by the system, with considerations to ensure an even distribution of data. + +The remaining portion of the user's payment for storing a file, after the MSP's share, is evenly distributed among the assigned BSPs. This incentivizes BSPs to maintain the data they've committed to storing. + +### Sign Up Process + +The sign up process for Storage Providers is a two-step process to avoid malicious users from predicting the randomness used to generate the unique ID of the Storage Provider. + +1. The first step is the request to sign up, where the user provides the necessary information to become a Storage Provider, commiting to that information, and the necessary deposit is held. +2. The second step is the confirmation of the sign-up, which must be done by the user (or a third-party) after enough time has passed to ensure that the randomness used to generate the unique ID was not predictable when the sign-up request (commitment) was made. + +This process exists because the unique ID of a Storage Provider is what determines if they can volunteer to store a new file of the system after a store request was made by a user, and if the randomness used to generate the unique ID was predictable, malicious users could generate multiple Storage Provider accounts with similar IDs and collude to store the same file, which would be detrimental to the system as it would allow file storage centralization, allowing censorship and data loss. + +### Sign Off Process + +The sign off process is simpler that the sign up process: the Storage Provider requests to sign off, and if it does not have any data currently in use (that means, no user file is currently being stored by this Storage Provider), the deposit is returned and the Storage Provider information is completely deleted from the system. This deletion is permanent, as the unique ID of the Storage Provider is generated using the runtime's randomness, and it is not possible to recreate it. + +### Capacity Management + +Storage Providers can change their capacity, increasing or decreasing it as they see fit. The new capacity has to be more than the minimum allowed by the runtime, more than the Storage Provider's used capacity, and the change is subject to a timelock to avoid spam attacks. The new deposit needed for the new capacity is calculated, and the user has to pay the difference if the new deposit is greater than the current deposit. If the new deposit is less than the current deposit, the held difference is returned to the user. This allows Storage Providers to adapt to the network's needs and their own infrastructure capabilities. + +## Extrinsics + +The Storage Providers pallet provides the following extrinsics, which are explained at a high level in this section. For detailed information on the parameters and usage of each extrinsic, refer to the documentation found in the code. + +### request_msp_sign_up + +The purpose of this extrinsic is to handle the sign-up process for a new Main Storage Provider. It performs several checks and updates the blockchain's storage accordingly. We have a two-step process for signing up as a Storage Provider to avoid malicious users from predicting the randomness used to generate the unique ID of the Storage Provider, and that's why we have a request and a confirmation extrinsic, as a commitment scheme. + +### request_bsp_sign_up + +The purpose of this extrinsic is to handle the sign-up process for a new Backup Storage Provider. It performs several checks and updates the blockchain's storage accordingly. This extrinsic is similar to the `request_msp_sign_up` extrinsic, but for Backup Storage Providers. + +### confirm_sign_up + +The purpose of this extrinsic is to allow users to confirm their sign up as a Storage Provider (be it a Main Storage Provider or a Backup Storage Provider) after the required time has passed to allow the runtime's randomness used for this process to not have been predictable when the sign up request was made. This extrinsic is only available for users that have a pending sign up request. + +Notes: + +- This extrinsic could be called by the user that requested the registration itself or by a third party in behalf of the user. +- Requests have an expiration because if that wasn't the case, malicious users could wait indefinitely for a random seed from the relay chain that suits their malicious purpose. +- The deposit that the user has to pay to register as a Storage Provider is held when the user requests to register as a Storage Provider, not in this extrinsic. +- If this extrinsic is successful, it will be free for the caller, to incentive state debloating of pending requests. + +### cancel_sign_up + +The purpose of this extrinsic is to allow users to cancel their sign up request that they previously initiated. This allows users to recover the deposit that was held when they requested to sign up as a Storage Provider, and it is a way to incentivize storage debloat as users will want to delete the sign up requests that are not going to be confirmed. This extrinsic is only available for users that have a pending sign up request. + +### msp_sign_off + +The purpose of this extrinsic is to allow Main Storage Providers that are not currently being used by any user to sign off (deregister) as a Storage Provider and recover their deposit. This extrinsic is only available for Main Storage Providers that have no user storage assigned to them (no data in use). We have this restriction to avoid data loss, as if a Main Storage Provider has data in use and signs off, the data would be lost. + +### bsp_sign_off + +The purpose of this extrinsic is to allow Backup Storage Providers that are not currently being used by any user to sign off (deregister) as a Storage Provider and recover their deposit. This extrinsic is only available for Backup Storage Providers that have no user storage assigned to them (no data in use). The logic is the same as the `msp_sign_off` extrinsic, but for Backup Storage Providers. + +### change_capacity + +The purpose of this extrinsic is to allow Storage Providers (Main or Backup) to change their "contracted" capacity, increasing or decreasing it as they see fit. The new capacity has to be more than the minimum allowed by the runtime, more than the Storage Provider's used capacity and the change is subject to a timelock to avoid spam attacks. This extrinsic is available for all registered Storage Providers. + +### add_value_prop + +The purpose of this extrinsic is to allow Main Storage Providers to add new value propositions to their offerings. This allows them to offer service tiers to their users, with different fee structures and features. + +## Interfaces + +This pallet implements the following interfaces: + +- `MutateProvidersInterface` +- `ReadProvidersInterface` +- `ProvidersInterface` + +These are further explained in their own documentation. + +## Storage + +The Storage Providers pallet uses the following storage items for managing the state of the network: + +### `SignUpRequests` + +This storage holds the sign up requests initiated by users of StorageHub that want to offer their services as Storage Providers, both Main and Backup. + +It's a map from an account ID to a tuple consisting of the Storage Provider metadata that the account used when requesting to sign up and the block number in which the request was initiated. + +```rust +AccountId -> (StorageProviderMetadata, BlockWhenSignUpWasRequested) +``` + +### `AccountIdToMainStorageProviderId` + +This storage is used to keep track of the one-to-one relationship between an account ID and a Main Storage Provider ID, which is used to choose which challenges are requested from that Storage Provider. + +It's a map from an account ID to a Main Storage Provider ID, which is of the Hash type from the runtime. + +```rust +AccountId -> MainStorageProviderId +``` + +### `MainStorageProviders` + +This storage holds the metadata of each registered Main Storage Provider, including its corresponding buckets, its capacity, used data, the valid multiaddresses to connect to it, its list of value propositions and the block in which this Storage Provider last changed its capacity. + +It's a map from a Main Storage Provider ID to its metadata. + +```rust +MainStorageProviderId -> MainStorageProviderMetadata +``` + +### `Buckets` + +This storage holds the metadata of each bucket that exists in each Main Storage Provider. It holds the bucket's root, the user ID that owns that bucket and the Main Storage Provider ID that holds that bucket. It is updated using the `MutateProvidersInterface`. + +It's a map from a bucket ID to that bucket's metadata + +```rust +BucketId -> Bucket +``` + +### `AccountIdToBackupStorageProviderId` + +This storage is used to keep track of the one-to-one relationship between an account ID and a Backup Storage Provider ID, which is used to both choose which challenges are requested from that Storage Provider and to compare with the threshold used to allow Backup Storage Providers to offer themselves to store a new file of the system. + +It's a map from an account ID to a Backup Storage Provider ID, which is of the Hash type from the runtime. + +```rust +AccountId -> BackupStorageProviderId +``` + +### `BackupStorageProviders` + +This storage holds the metadata of each registered Backup Storage Provider, which has its capacity, its used data, the valid multiaddresses to connect to it, its forest root and the block in which this Storage Provider last changed its capacity. + +It's a map from a Backup Storage Provider ID to its metadata. + +```rust +BackupStorageProviderId -> BackupStorageProviderMetadata +``` + +### `MspCount` + +This storage holds the amount of Main Storage Providers that are currently registered in the system. + +### `BspCount` + +This storage holds the amount of Backup Storage Providers that are currently registered in the system. + +### `TotalBspsCapacity` + +This storage holds the sum of all the capacity that has been registered by Backup Storage Providers, which corresponds to the capacity of the whole network. + +## Events + +The Storage Providers pallet emits the following events: + +### `MspRequestSignUpSuccess` + +This event is emitted when a Main Storage Provider has requested to sign up successfully. It provides information about that Main Storage Provider's account ID, the list of valid multiaddresses that it wants to register, the total capacity that it wants to register, and its list of value propositions. + +The nature of this event is to allow the caller of the extrinsic to know that the request to sign up as a Main Storage Provider was successful and that the corresponding deposit was held. + +```rust +MspRequestSignUpSuccess { + who: T::AccountId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageData, + value_prop: ValueProposition, +} +``` + +### `MspSignUpSuccess` + +This event is emitted when a Main Storage Provider has confirmed its requested sign up successfully. It provides information about that Main Storage Provider's account ID, the list of valid multiaddresses that it has registered, the total capacity that it has registered, and its list of value propositions. + +The nature of this event is to allow the newly registered Main Storage Provider to know that the confirmation of its request to sign up as a Main Storage Provider was successful and that from now on, the user is a Main Storage Provider and can start storing user data. It also allows users of the network to know that a new Main Storage Provider has joined it, which can be useful for them to choose which Main Storage Provider to use. + +```rust +MspSignUpSuccess { + who: T::AccountId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageData, + value_prop: ValueProposition, +} +``` + +### `BspRequestSignUpSuccess` + +This event is emitted when a Backup Storage Provider has requested to sign up successfully. It provides information about that Backup Storage Provider's account ID, the list of valid multiaddresses that it wants to register and the total capacity that it wants to register. + +The nature of this event is to allow the caller of the extrinsic to know that the request to sign up as a Backup Storage Provider was successful and that the corresponding deposit was held. + +```rust +BspRequestSignUpSuccess { + who: T::AccountId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageData, +} +``` + +### `BspSignUpSuccess` + +This event is emitted when a Backup Storage Provider has confirmed its requested sign up successfully. It provides information about that Backup Storage Provider's account ID, the list of valid multiaddresses that it has registered and the total capacity that it has registered. + +The nature of this event is to allow the newly registered Backup Storage Provider to know that the confirmation of its request to sign up as a Backup Storage Provider was successful and that from now on, the user is a Backup Storage Provider and can start volunteering to store user data. It also allows Main Storage Providers to know that a new Backup Storage Provider has joined the network, which can be useful for them when they need to retrieve files from the network. + +```rust +BspSignUpSuccess { + who: T::AccountId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageData, +} +``` + +### `SignUpRequestCanceled` + +This event is emitted when a Storage Provider has cancelled its request to sign up successfully and the previously held deposit has been returned to it. + +The nature of this event is to allow the caller of the extrinsic to know that the request to sign up as a Storage Provider was cancelled successfully and that the corresponding deposit was returned. + +```rust +SignUpRequestCanceled { who: T::AccountId } +``` + +### `MspSignOffSuccess` + +This event is emitted when a Main Storage Provider has signed off of the system successfully and the previously held deposit has been returned to it. + +The nature of this event is to allow the caller of the extrinsic to know that the sign off as a Main Storage Provider was successful and that the corresponding deposit was returned. It also allows users of the network to know that this Main Storage Provider is no longer available as an option for storing their data. + +```rust +MspSignOffSuccess { who: T::AccountId } +``` + +### `BspSignOffSuccess` + +This event is emitted when a Backup Storage Provider has signed off of the system successfully and the previously held deposit has been returned to it. + +The nature of this event is to allow the caller of the extrinsic to know that the sign off as a Backup Storage Provider was successful and that the corresponding deposit was returned. It also allows Main Storage Providers to know that this Backup Storage Provider is no longer available as an option for retrieving data. + +```rust +BspSignOffSuccess { who: T::AccountId } +``` + +### `CapacityChanged` + +This event is emitted when a Storage Provider has successfully changed its registered capacity on the network. It holds the information about the account ID of that Storage Provider, its previous capacity, the new registered capacity and the next block after which the timelock expires and it is able to change its capacity again. + +The nature of this event is to allow the caller of the extrinsic to know that the change of capacity was successful and that the difference in deposit was held or returned. It also allows users of the network to know that this Storage Provider has changed its capacity, which can be useful for them to choose which Storage Provider to use. + +```rust +CapacityChanged { + who: T::AccountId, + old_capacity: StorageData, + new_capacity: StorageData, + next_block_when_change_allowed: BlockNumberFor, +} +``` + +## Errors + +The Storage Providers pallet uses the following error types: + +### `AlreadyRegistered` + +Error thrown when a user tries to sign up as a Storage Provider but is already registered as either a Main Storage Provider or Backup Storage Provider. + +### `MaxBspsReached` + +Error thrown when a user tries to sign up as a Backup Storage Provider but the maximum amount of Backup Storage Providers has been reached. + +### `MaxMspsReached` + +Error thrown when a user tries to sign up as a Main Storage Provider but the maximum amount of Main Storage Providers has been reached. + +### `SignUpNotRequested` + +Error thrown when a user tries to confirm a sign up that was not requested previously. + +### `SignUpRequestPending` + +Error thrown when a user tries to request to sign up when it already has a sign up request pending. + +### `NoMultiAddress` + +Error thrown when a user tries to sign up providing an empty list of multiaddresses. + +### `InvalidMultiAddress` + +Error thrown when a user tries to sign up as a Storage Provider but any of its provided multiaddresses is invalid. + +### `StorageTooLow` + +Error thrown when a user tries to sign up or change its capacity to a value smaller than the minimum required by the runtime. + +### `NotEnoughBalance` + +Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a Storage Provider or changing its capacity to one that entails a bigger deposit. + +### `CannotHoldDeposit` + +Error thrown when the runtime cannot hold the required deposit from the account to register it as a Storage Provider or change its capacity. + +### `StorageStillInUse` + +Error thrown when a user tries to sign off as a Storage Provider but still has storage that's not free. + +### `RandomnessNotValidYet` + +Error thrown when a user tries to confirm a sign up but the available randomness from the runtime could have still been predicted by the user that requested the sign up. + +### `SignUpRequestExpired` + +Error thrown when a user tries to confirm a sign up but too much time has passed since it initially requested to sign up. + +### `NewCapacityLessThanUsedStorage` + +Error thrown when a user tries to change its capacity to less than the capacity that is has used. + +### `NewCapacityEqualsCurrentCapacity` + +Error thrown when a user tries to change its capacity to the same value it already has. + +### `NewCapacityCantBeZero` + +Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a Storage Provider). + +### `NotEnoughTimePassed` + +Error thrown when a Storage Provider tries to change its capacity but it has not been enough time since the last time it changed it, so the timelock is still active. + +### `NotRegistered` + +Error thrown when a user tries to interact as a Storage Provider with this pallet but it is not registered as either a Main Storage Provider or a Backup Storage Provider. + +### `NoUserId` + +Error thrown when trying to get the root of a bucket that belongs to a Main Storage Provider without passing a user ID needed to identify that bucket. + +### `NoBucketId` + +Error thrown when trying to get a root from a Main Storage Provider without passing the bucket ID of the bucket that the root should belong to. + +### `SpRegisteredButDataNotFound` + +Error thrown when a user has a Storage Provider ID assigned to it but its metadata data does not exist in storage (storage inconsistency error, should never happen). + +## Slashing Protocol + +Storage Providers who fail to submit a proof by their challenge deadline _will_ be slashed. In the case of the StorageHub protocol, this is predefined in the proofs-dealer pallet. + +Slashing is an asynchronous process, therefore it is possible for a Storage Provider to have failed more than one challenge before being slashed. This pallet requires an external data source to fetch the number of failed proof submissions. In the case of the StorageHub protocol, the proofs-dealer pallet would keep track of this data and expose an interface for this pallet to access it. This avoids the possibility of a Storage Provider not being slashed for all their failed challenges. Slashing a Storage Provider takes into account the aforementioned total number of failed challenges since the Provider's last slash and multiply it by a configurable slash factor. This factor is a value that is associated to the punishment for a single lost file. + +### Manual and Automatic Slashing + +The `slash` extrinsic can be called by any account to manually slash any Storage Provider that has been marked as slashable, and only requires the Storage Provider ID of a Storage Provider to be slashed. + +An automated slashing mechanism is implemented in an off-chain worker process to be executed by collators which efficiently slashes many Storage Providers. + +### Grace Period and Insolvency + +Since the Storage Provider's stake determines their total storage capacity, it is entirely possible that the amount of data currently stored would be above their total storage capacity after slashing. StorageHub grants a predetermined configurable grace period for Storage Providers to top-up their stake to have their total capacity equal to or greater than the amount of data they currently store. If the grace period has been reached, they are considered to be insolvent and cease to be a Storage Provider. + +The grace period is based on the total stake/capacity of the Storage Provider. In essence, the more stake a Storage Provider has, the longer the grace period. +This is to avoid a high stake Storage Provider from being removed from the network prematurely. + +The runtime automatically processes any expired grace periods within the `on_poll` hook to ensure that the redundancy process is initiated as soon as possible. For every insolvent Storage Provider, an event is emitted to notify the network and also mark the Storage Provider as insolvent, rendering them unable to operate as a Storage Provider. Finally all the of the Storage Provider's stake is slashed and transfered to the treasury. + +### Ensuring Data Redundancy + +> [!IMPORTANT] +> The runtime cannot ensure that all the data stored from an insolvent Storage Provider would be recovered. Given that the runtime has no knowledge of file keys stored by whom, it is up to external services to expose information of the files that are lost so that new storage requests can be initiated. Such external services can be indexer services or MSPs which are expected to run an indexer as well. + +In the event where a BSP loses all of their held file data, to avoid being slashed at every challenge interval, the BSP should request to stop storing every file key they currently have in their forest which they can no +longer respond to proofs for. + +#### Incentives and Storage Cleanup + +For every file key submitted for redundancy which was stored by an insolvent Storage Provider, the caller is rewarded with a configurable amount of tokens which must be less than the slash factor to prevent abuse. + +The runtime will automatically remove the file keys from the insolvent provider's forest. Once the forest root becomes an empty root, the Storage Provider is removed from storage. + +This process ensures that total redundancy is regained before the insolvent Storage Provider is removed from the network. diff --git a/pallets/providers/runtime-api/src/lib.rs b/pallets/providers/runtime-api/src/lib.rs index 88ed0e68e..a96dc6fac 100644 --- a/pallets/providers/runtime-api/src/lib.rs +++ b/pallets/providers/runtime-api/src/lib.rs @@ -1,65 +1,65 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use codec::{Codec, Decode, Encode}; -use scale_info::TypeInfo; -use sp_runtime::RuntimeDebug; - -sp_api::decl_runtime_apis! { - #[api_version(1)] - pub trait StorageProvidersApi - where - BlockNumber: Codec, - BspId: Codec, - BspInfo: Codec, - AccountId: Codec, - ProviderId: Codec, - StorageProviderId: Codec, - StorageDataUnit: Codec, - Balance: Codec, - BucketId: Codec, - { - fn get_bsp_info(bsp_id: &BspId) -> Result; - fn get_storage_provider_id(who: &AccountId) -> Option; - fn query_msp_id_of_bucket_id(bucket_id: &BucketId) -> Result; - fn query_storage_provider_capacity(who: &ProviderId) -> Result; - fn query_available_storage_capacity(who: &ProviderId) -> Result; - fn query_earliest_change_capacity_block(who: &BspId) -> Result; - fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option; - fn get_slash_amount_per_max_file_size() -> Balance; - } -} - -/// Error type for the `get_bsp_info` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum GetBspInfoError { - BspNotRegistered, - InternalApiError, -} - -/// Error type for the `query_storage_provider_capacity` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryStorageProviderCapacityError { - ProviderNotRegistered, - InternalError, -} - -/// Error type for the `query_available_storage_capacity` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryAvailableStorageCapacityError { - ProviderNotRegistered, - InternalError, -} - -/// Error type for the `query_available_storage_capacity` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryEarliestChangeCapacityBlockError { - ProviderNotRegistered, - InternalError, -} - -/// Error type for the `query_msp_id_of_bucket_id` runtime API call. -#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] -pub enum QueryMspIdOfBucketIdError { - BucketNotFound, - InternalError, -} +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Codec, Decode, Encode}; +use scale_info::TypeInfo; +use sp_runtime::RuntimeDebug; + +sp_api::decl_runtime_apis! { + #[api_version(1)] + pub trait StorageProvidersApi + where + BlockNumber: Codec, + BspId: Codec, + BspInfo: Codec, + AccountId: Codec, + ProviderId: Codec, + StorageProviderId: Codec, + StorageDataUnit: Codec, + Balance: Codec, + BucketId: Codec, + { + fn get_bsp_info(bsp_id: &BspId) -> Result; + fn get_storage_provider_id(who: &AccountId) -> Option; + fn query_msp_id_of_bucket_id(bucket_id: &BucketId) -> Result; + fn query_storage_provider_capacity(who: &ProviderId) -> Result; + fn query_available_storage_capacity(who: &ProviderId) -> Result; + fn query_earliest_change_capacity_block(who: &BspId) -> Result; + fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option; + fn get_slash_amount_per_max_file_size() -> Balance; + } +} + +/// Error type for the `get_bsp_info` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum GetBspInfoError { + BspNotRegistered, + InternalApiError, +} + +/// Error type for the `query_storage_provider_capacity` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryStorageProviderCapacityError { + ProviderNotRegistered, + InternalError, +} + +/// Error type for the `query_available_storage_capacity` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryAvailableStorageCapacityError { + ProviderNotRegistered, + InternalError, +} + +/// Error type for the `query_available_storage_capacity` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryEarliestChangeCapacityBlockError { + ProviderNotRegistered, + InternalError, +} + +/// Error type for the `query_msp_id_of_bucket_id` runtime API call. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] +pub enum QueryMspIdOfBucketIdError { + BucketNotFound, + InternalError, +} diff --git a/pallets/providers/src/lib.rs b/pallets/providers/src/lib.rs index 9fd7038f7..4e7f86d7e 100644 --- a/pallets/providers/src/lib.rs +++ b/pallets/providers/src/lib.rs @@ -1,1091 +1,1091 @@ -//! # Storage Providers Pallet -//! -//! This pallet provides the functionality to manage Main Storage Providers (MSPs) -//! and Backup Storage Providers (BSPs) in a decentralized storage network. -//! -//! The functionality allows users to sign up and sign off as MSPs or BSPs and change -//! their parameters. This is the way that users can offer their storage capacity to -//! the network and get rewarded for it. -#![cfg_attr(not(feature = "std"), no_std)] - -pub mod types; -mod utils; - -#[cfg(feature = "runtime-benchmarks")] -mod benchmarking; - -#[cfg(test)] -mod mock; - -#[cfg(test)] -mod tests; - -use frame_system::pallet_prelude::BlockNumberFor; -pub use pallet::*; -pub use scale_info::Type; -use types::{ - BackupStorageProvider, BackupStorageProviderId, BalanceOf, BucketId, HashId, - MainStorageProviderId, MerklePatriciaRoot, StorageDataUnit, StorageProvider, -}; - -#[frame_support::pallet] -pub mod pallet { - use super::types::*; - use codec::{FullCodec, HasCompact}; - use frame_support::traits::Randomness; - use frame_support::{ - dispatch::DispatchResultWithPostInfo, - pallet_prelude::*, - sp_runtime::traits::{ - AtLeast32BitUnsigned, CheckEqual, CheckedAdd, MaybeDisplay, One, Saturating, - SimpleBitOps, Zero, - }, - traits::{fungible::*, Incrementable}, - Blake2_128Concat, - }; - use frame_system::pallet_prelude::{BlockNumberFor, *}; - use scale_info::prelude::fmt::Debug; - use shp_traits::{FileMetadataInterface, PaymentStreamsInterface, ProofSubmittersInterface}; - use sp_runtime::traits::{Bounded, CheckedDiv}; - - /// Configure the pallet by specifying the parameters and types on which it depends. - #[pallet::config] - pub trait Config: frame_system::Config { - /// Because this pallet emits events, it depends on the runtime's definition of an event. - type RuntimeEvent: From> + IsType<::RuntimeEvent>; - - /// Type to access randomness to salt AccountIds and get the corresponding HashId - type ProvidersRandomness: Randomness, BlockNumberFor>; - - /// Trait that allows the pallet to update payment streams of its Providers and Users - type PaymentStreams: PaymentStreamsInterface< - Balance = Self::NativeBalance, - AccountId = Self::AccountId, - ProviderId = HashId, - Units = Self::StorageDataUnit, - >; - - /// Trait that allows the pallet to manage generic file metadatas - type FileMetadataManager: FileMetadataInterface< - AccountId = Self::AccountId, - StorageDataUnit = Self::StorageDataUnit, - >; - - /// Type to access the Balances pallet (using the fungible trait from frame_support) - type NativeBalance: Inspect - + Mutate - + hold::Inspect - // , Reason = Self::HoldReason> We will probably have to hold deposits - + hold::Mutate - + hold::Balanced - + freeze::Inspect - + freeze::Mutate; - - /// The overarching hold reason - type RuntimeHoldReason: From; - - /// Data type for the measurement of storage size - type StorageDataUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Saturating - + CheckedDiv - + Zero - + Copy - + MaxEncodedLen - + HasCompact - + Into> - + Into; - - /// Type that represents the total number of registered Storage Providers. - type SpCount: Parameter - + Member - + MaybeSerializeDeserialize - + Ord - + AtLeast32BitUnsigned - + FullCodec - + Copy - + Default - + Debug - + scale_info::TypeInfo - + MaxEncodedLen; - - /// The type of the Merkle Patricia Root of the storage trie for BSPs and MSPs' buckets (a hash). - type MerklePatriciaRoot: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// The type of the identifier of the value proposition of a MSP (probably a hash of that value proposition) - type ValuePropId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// The type of the Bucket NFT Collection ID. - type ReadAccessGroupId: Member + Parameter + MaxEncodedLen + Copy + Incrementable; - - /// The trait exposing data of which providers failed to respond to challenges for proofs of storage. - type ProvidersProofSubmitters: ProofSubmittersInterface< - ProviderId = HashId, - TickNumber = BlockNumberFor, - >; - - /// The type representing the reputation weight of a BSP. - type ReputationWeightType: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + Saturating - + Copy - + MaxEncodedLen - + HasCompact - + Zero - + One - + CheckedAdd - + Ord - + Bounded; - - /// The Treasury AccountId. - /// The account to which: - /// - The fees for submitting a challenge are transferred. - /// - The slashed funds are transferred. - #[pallet::constant] - type Treasury: Get; - - /// The minimum amount that an account has to deposit to become a storage provider. - #[pallet::constant] - type SpMinDeposit: Get>; - - /// The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. - #[pallet::constant] - type SpMinCapacity: Get>; - - /// The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. - #[pallet::constant] - type DepositPerData: Get>; - - /// The estimated maximum size of an unknown file. - /// - /// Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. - #[pallet::constant] - type MaxFileSize: Get>; - - /// The maximum size of a multiaddress. - #[pallet::constant] - type MaxMultiAddressSize: Get; - - /// The maximum amount of multiaddresses that a Storage Provider can have. - #[pallet::constant] - type MaxMultiAddressAmount: Get; - - /// The maximum number of protocols the MSP can support (at least within the runtime). - #[pallet::constant] - type MaxProtocols: Get; - - /// The maximum amount of Buckets that a MSP can have. - #[pallet::constant] - type MaxBuckets: Get; - - /// The amount that an account has to deposit to create a bucket. - #[pallet::constant] - type BucketDeposit: Get>; - - /// Type that represents the byte limit of a bucket name. - #[pallet::constant] - type BucketNameLimit: Get; - - /// The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen - #[pallet::constant] - type MaxBlocksForRandomness: Get>; - - /// The minimum amount of blocks between capacity changes for a SP - #[pallet::constant] - type MinBlocksBetweenCapacityChanges: Get>; - - /// The default value of the root of the Merkle Patricia Trie of the runtime - #[pallet::constant] - type DefaultMerkleRoot: Get; - - /// The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. - #[pallet::constant] - type SlashAmountPerMaxFileSize: Get>; - - /// Starting reputation weight for a newly registered BSP. - #[pallet::constant] - type StartingReputationWeight: Get; - } - - #[pallet::pallet] - pub struct Pallet(_); - - // Storage: - - /// The mapping from an AccountId that requested to sign up to a tuple of the metadata with type of the request, and the block - /// number when the request was made. - /// - /// This is used for the two-step process of registering: when a user requests to register as a SP (either MSP or BSP), - /// that request with the metadata and the deposit held is stored here. When the user confirms the sign up, the - /// request is removed from this storage and the user is registered as a SP. - /// - /// This storage is updated in: - /// - [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) and [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up), which add a new entry to the map. - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up) and [cancel_sign_up](crate::dispatchables::cancel_sign_up), which remove an existing entry from the map. - #[pallet::storage] - pub type SignUpRequests = - StorageMap<_, Blake2_128Concat, T::AccountId, (StorageProvider, BlockNumberFor)>; - - /// The mapping from an AccountId to a MainStorageProviderId. - /// - /// This is used to get a Main Storage Provider's unique identifier needed to access its metadata. - /// - /// This storage is updated in: - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. - /// - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. - #[pallet::storage] - pub type AccountIdToMainStorageProviderId = - StorageMap<_, Blake2_128Concat, T::AccountId, MainStorageProviderId>; - - /// The mapping from a MainStorageProviderId to a MainStorageProvider. - /// - /// This is used to get a Main Storage Provider's metadata. - /// It returns `None` if the Main Storage Provider ID does not correspond to any registered Main Storage Provider. - /// - /// This storage is updated in: - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. - /// - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. - /// - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. - /// - [add_value_prop](crate::dispatchables::add_value_prop), which appends a new value proposition to the entry's existing `value_prop` bounded vector. - #[pallet::storage] - pub type MainStorageProviders = - StorageMap<_, Blake2_128Concat, MainStorageProviderId, MainStorageProvider>; - - /// The mapping from a BucketId to that bucket's metadata. - /// - /// This is used to get a bucket's metadata, such as root, user ID, and MSP ID. - /// It returns `None` if the Bucket ID does not correspond to any registered bucket. - /// - /// This storage is updated in: - /// - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket), which adds a new entry to the map. - /// - [change_root_bucket](shp_traits::MutateProvidersInterface::change_root_bucket), which changes the corresponding bucket's root. - /// - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket), which removes the entry of the corresponding bucket. - #[pallet::storage] - pub type Buckets = StorageMap<_, Blake2_128Concat, BucketId, Bucket>; - - /// The mapping from a MainStorageProviderId to a vector of BucketIds. - /// - /// This is used to efficiently retrieve the list of buckets that a Main Storage Provider is currently storing. - /// - /// This storage is updated in: - /// - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket) - /// - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket) - #[pallet::storage] - pub type MainStorageProviderIdsToBuckets = StorageMap< - _, - Blake2_128Concat, - MainStorageProviderId, - BoundedVec, T::MaxBuckets>, - >; - - /// The mapping from an AccountId to a BackupStorageProviderId. - /// - /// This is used to get a Backup Storage Provider's unique identifier needed to access its metadata. - /// - /// This storage is updated in: - /// - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. - /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. - #[pallet::storage] - pub type AccountIdToBackupStorageProviderId = - StorageMap<_, Blake2_128Concat, T::AccountId, BackupStorageProviderId>; - - /// The mapping from a BackupStorageProviderId to a BackupStorageProvider. - /// - /// This is used to get a Backup Storage Provider's metadata. - /// It returns `None` if the Backup Storage Provider ID does not correspond to any registered Backup Storage Provider. - /// - /// This storage is updated in: - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. - /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. - /// - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. - #[pallet::storage] - pub type BackupStorageProviders = - StorageMap<_, Blake2_128Concat, BackupStorageProviderId, BackupStorageProvider>; - - /// The amount of Main Storage Providers that are currently registered in the runtime. - /// - /// This is used to keep track of the total amount of MSPs in the system. - /// - /// This storage is updated in: - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Main Storage Provider. - /// - [msp_sign_off](crate::dispatchables::msp_sign_off), which subtracts one from this storage. - #[pallet::storage] - pub type MspCount = StorageValue<_, T::SpCount, ValueQuery>; - - /// The amount of Backup Storage Providers that are currently registered in the runtime. - /// - /// This is used to keep track of the total amount of BSPs in the system. - /// - /// This storage is updated in: - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Backup Storage Provider. - /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts one from this storage. - #[pallet::storage] - pub type BspCount = StorageValue<_, T::SpCount, ValueQuery>; - - /// The total amount of storage capacity all BSPs have. - /// - /// This is used to keep track of the total amount of storage capacity all BSPs have in the system, which is also the - /// total amount of storage capacity that can be used by users if we factor in the replication factor. - /// - /// This storage is updated in: - /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds the capacity of the registered Storage Provider to this storage if the account to confirm is a Backup Storage Provider. - /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts the capacity of the Backup Storage Provider to sign off from this storage. - #[pallet::storage] - pub type TotalBspsCapacity = StorageValue<_, StorageDataUnit, ValueQuery>; - - /// The total amount of storage capacity of BSPs that is currently in use. - /// - /// This is used to keep track of the total amount of storage capacity that is currently in use by users, which is useful for - /// system metrics and also to calculate the current price of storage. - #[pallet::storage] - pub type UsedBspsCapacity = StorageValue<_, StorageDataUnit, ValueQuery>; - - /// The total global reputation weight of all BSPs. - #[pallet::storage] - pub type GlobalBspsReputationWeight = StorageValue<_, ReputationWeightType, ValueQuery>; - - // Events & Errors: - - /// The events that can be emitted by this pallet - #[pallet::event] - #[pallet::generate_deposit(pub(super) fn deposit_event)] - pub enum Event { - /// Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about - /// that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. - MspRequestSignUpSuccess { - who: T::AccountId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageDataUnit, - value_prop: ValueProposition, - }, - - /// Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about - /// that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. - MspSignUpSuccess { - who: T::AccountId, - msp_id: MainStorageProviderId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageDataUnit, - value_prop: ValueProposition, - }, - - /// Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about - /// that BSP's account id, its multiaddresses, and the total data it can store according to its stake. - BspRequestSignUpSuccess { - who: T::AccountId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageDataUnit, - }, - - /// Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about - /// that BSP's account id, the total data it can store according to its stake, and its multiaddress. - BspSignUpSuccess { - who: T::AccountId, - bsp_id: BackupStorageProviderId, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - capacity: StorageDataUnit, - }, - - /// Event emitted when a sign up request has been canceled successfully. Provides information about - /// the account id of the user that canceled the request. - SignUpRequestCanceled { who: T::AccountId }, - - /// Event emitted when a Main Storage Provider has signed off successfully. Provides information about - /// that MSP's account id. - MspSignOffSuccess { - who: T::AccountId, - msp_id: MainStorageProviderId, - }, - - /// Event emitted when a Backup Storage Provider has signed off successfully. Provides information about - /// that BSP's account id. - BspSignOffSuccess { - who: T::AccountId, - bsp_id: BackupStorageProviderId, - }, - - /// Event emitted when a SP has changed its capacity successfully. Provides information about - /// that SP's account id, its old total data that could store, and the new total data. - CapacityChanged { - who: T::AccountId, - provider_id: StorageProviderId, - old_capacity: StorageDataUnit, - new_capacity: StorageDataUnit, - next_block_when_change_allowed: BlockNumberFor, - }, - - /// Event emitted when an SP has been slashed. - Slashed { - provider_id: HashId, - amount_slashed: BalanceOf, - }, - } - - /// The errors that can be thrown by this pallet to inform users about what went wrong - #[pallet::error] - pub enum Error { - // Sign up errors: - /// Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. - AlreadyRegistered, - /// Error thrown when a user tries to confirm a sign up that was not requested previously. - SignUpNotRequested, - /// Error thrown when a user tries to request to sign up when it already has a sign up request pending. - SignUpRequestPending, - /// Error thrown when a user tries to sign up without any multiaddress. - NoMultiAddress, - /// Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. - InvalidMultiAddress, - /// Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. - StorageTooLow, - - // Deposit errors: - /// Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. - NotEnoughBalance, - /// Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. - CannotHoldDeposit, - - // Sign off errors: - /// Error thrown when a user tries to sign off as a SP but still has used storage. - StorageStillInUse, - - // Randomness errors: - /// Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. - RandomnessNotValidYet, - /// Error thrown when a user tries to confirm a sign up but too much time has passed since the request. - SignUpRequestExpired, - - // Capacity change errors: - /// Error thrown when a user tries to change its capacity to less than its used storage. - NewCapacityLessThanUsedStorage, - /// Error thrown when a user tries to change its capacity to the same value it already has. - NewCapacityEqualsCurrentCapacity, - /// Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). - NewCapacityCantBeZero, - /// Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. - NotEnoughTimePassed, - /// Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. - NewUsedCapacityExceedsStorageCapacity, - - // General errors: - /// Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. - NotRegistered, - /// Error thrown when trying to get a root from a MSP without passing a User ID. - NoUserId, - /// Error thrown when trying to get a root from a MSP without passing a Bucket ID. - NoBucketId, - /// Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). - SpRegisteredButDataNotFound, - /// Error thrown when a bucket ID is not found in storage. - BucketNotFound, - /// Error thrown when a bucket ID already exists in storage. - BucketAlreadyExists, - /// Error thrown when a bucket ID could not be added to the list of buckets of a MSP. - AppendBucketToMspFailed, - /// Error thrown when an attempt was made to slash an unslashable Storage Provider. - ProviderNotSlashable, - - // Payment streams interface errors: - /// Error thrown when failing to decode the metadata from a received trie value that was removed. - InvalidEncodedFileMetadata, - /// Error thrown when failing to decode the owner Account ID from the received metadata. - InvalidEncodedAccountId, - /// Error thrown when trying to update a payment stream that does not exist. - PaymentStreamNotFound, - } - - /// This enum holds the HoldReasons for this pallet, allowing the runtime to identify each held balance with different reasons separately - /// - /// This allows us to hold tokens and be able to identify in the future that those held tokens were - /// held because of this pallet - #[pallet::composite_enum] - pub enum HoldReason { - /// Deposit that a Storage Provider has to pay to be registered as such - StorageProviderDeposit, - /// Deposit that a user has to pay to create a bucket - BucketDeposit, - // Only for testing, another unrelated hold reason - #[cfg(test)] - AnotherUnrelatedHold, - } - - /// Dispatchables (extrinsics) exposed by this pallet - #[pallet::call] - impl Pallet { - /// Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that wants to sign up as a Main Storage Provider. - /// - /// Funds proportional to the capacity requested are reserved (held) from the account. - /// - /// Parameters: - /// - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) - /// - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - /// users and wants to register on-chain. It could be data limits, communication protocols to access the user's - /// data, and more. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer is not already registered as either a MSP or BSP - /// 3. Check that the multiaddress is valid - /// 4. Check that the data to be stored is greater than the minimum required by the runtime. - /// 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - /// 6. Check that the signer has enough funds to pay the deposit - /// 7. Hold the deposit from the signer - /// 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP - /// - /// Emits `MspRequestSignUpSuccess` event when successful. - #[pallet::call_index(0)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn request_msp_sign_up( - origin: OriginFor, - capacity: StorageDataUnit, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - value_prop: ValueProposition, - payment_account: T::AccountId, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Set up a structure with the information of the new MSP - let msp_info = MainStorageProvider { - buckets: BoundedVec::default(), - capacity, - capacity_used: StorageDataUnit::::default(), - multiaddresses: multiaddresses.clone(), - value_prop: value_prop.clone(), - last_capacity_change: frame_system::Pallet::::block_number(), - owner_account: who.clone(), - payment_account, - }; - - // Sign up the new MSP (if possible), updating storage - Self::do_request_msp_sign_up(&msp_info)?; - - // Emit the corresponding event - Self::deposit_event(Event::::MspRequestSignUpSuccess { - who, - multiaddresses, - capacity, - value_prop, - }); - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that wants to sign up as a Backup Storage Provider. - /// - /// Funds proportional to the capacity requested are reserved (held) from the account. - /// - /// Parameters: - /// - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer is not already registered as either a MSP or BSP - /// 3. Check that the multiaddress is valid - /// 4. Check that the data to be stored is greater than the minimum required by the runtime - /// 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - /// 6. Check that the signer has enough funds to pay the deposit - /// 7. Hold the deposit from the signer - /// 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP - /// - /// Emits `BspRequestSignUpSuccess` event when successful. - #[pallet::call_index(1)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn request_bsp_sign_up( - origin: OriginFor, - capacity: StorageDataUnit, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - payment_account: T::AccountId, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Set up a structure with the information of the new BSP - let bsp_info = BackupStorageProvider { - capacity, - capacity_used: StorageDataUnit::::default(), - multiaddresses: multiaddresses.clone(), - root: T::DefaultMerkleRoot::get(), - last_capacity_change: frame_system::Pallet::::block_number(), - owner_account: who.clone(), - payment_account, - reputation_weight: T::StartingReputationWeight::get(), - }; - - // Sign up the new BSP (if possible), updating storage - Self::do_request_bsp_sign_up(&bsp_info)?; - - // Emit the corresponding event - Self::deposit_event(Event::::BspRequestSignUpSuccess { - who, - multiaddresses, - capacity, - }); - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that requested to sign up as a Storage Provider, except when providing a - /// `provider_account` parameter, in which case the origin can be any account. - /// - /// Parameters: - /// - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer - /// will be considered the account that requested to sign up. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed - /// 2. Check that the account received has requested to register as a SP - /// 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request - /// 4. Check that the request has not expired - /// 5. Register the signer as a MSP or BSP with the data provided in the request - /// - /// Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. - /// - /// Notes: - /// - This extrinsic could be called by the user itself or by a third party - /// - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP - /// - If this extrinsic is successful, it will be free for the caller, to incentive state debloating - #[pallet::call_index(2)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn confirm_sign_up( - origin: OriginFor, - provider_account: Option, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer - let who = ensure_signed(origin)?; - - // Execute checks and logic, update storage and emit event - // We emit the event in the interior logic to not have to check again which type of sign up it is outside of it - match provider_account { - Some(provider_account) => Self::do_confirm_sign_up(&provider_account)?, - None => Self::do_confirm_sign_up(&who)?, - } - - // Return a successful DispatchResultWithPostInfo. If the extrinsic executed correctly, it will be free for the caller - Ok(Pays::No.into()) - } - - /// Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that requested to sign up as a Storage Provider. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer has requested to sign up as a SP - /// 3. Delete the request from the Sign Up Requests storage - /// 4. Return the deposit to the signer - /// - /// Emits `SignUpRequestCanceled` event when successful. - #[pallet::call_index(3)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn cancel_sign_up(origin: OriginFor) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Execute checks and logic, update storage - Self::do_cancel_sign_up(&who)?; - - // Emit the corresponding event - Self::deposit_event(Event::::SignUpRequestCanceled { who }); - - Ok(().into()) - } - - /// Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that wants to sign off as a Main Storage Provider. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer is registered as a MSP - /// 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) - /// 4. Update the MSPs storage, removing the signer as an MSP - /// 5. Return the deposit to the signer - /// 6. Decrement the storage that holds total amount of MSPs currently in the system - /// - /// Emits `MspSignOffSuccess` event when successful. - #[pallet::call_index(4)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn msp_sign_off(origin: OriginFor) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Execute checks and logic, update storage - let msp_id = Self::do_msp_sign_off(&who)?; - - // Emit the corresponding event - Self::deposit_event(Event::::MspSignOffSuccess { who, msp_id }); - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that wants to sign off as a Backup Storage Provider. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer is registered as a BSP - /// 3. Check that the BSP has no storage assigned to it - /// 4. Update the BSPs storage, removing the signer as an BSP - /// 5. Update the total capacity of all BSPs, removing the capacity of the signer - /// 6. Return the deposit to the signer - /// 7. Decrement the storage that holds total amount of BSPs currently in the system - /// - /// Emits `BspSignOffSuccess` event when successful. - #[pallet::call_index(5)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn bsp_sign_off(origin: OriginFor) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Execute checks and logic, update storage - let bsp_id = Self::do_bsp_sign_off(&who)?; - - // Emit the corresponding event - Self::deposit_event(Event::::BspSignOffSuccess { who, bsp_id }); - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic that allows users to change their amount of stored data - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that wants to change its capacity. - /// - /// Parameters: - /// - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer is registered as a SP - /// 3. Check that enough time has passed since the last time the SP changed its capacity - /// 4. Check that the new capacity is greater than the minimum required by the runtime - /// 5. Check that the new capacity is greater than the data used by this SP - /// 6. Calculate the new deposit needed for this new capacity - /// 7. Check to see if the new deposit needed is greater or less than the current deposit - /// a. If the new deposit is greater than the current deposit: - /// i. Check that the signer has enough funds to pay this extra deposit - /// ii. Hold the extra deposit from the signer - /// b. If the new deposit is less than the current deposit, return the held difference to the signer - /// 7. Update the SPs storage to change the total data - /// 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) - /// - /// Emits `CapacityChanged` event when successful. - #[pallet::call_index(6)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn change_capacity( - origin: OriginFor, - new_capacity: StorageDataUnit, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was signed and get the signer. - let who = ensure_signed(origin)?; - - // Execute checks and logic, update storage - let (provider_id, old_capacity) = Self::do_change_capacity(&who, new_capacity)?; - - // Emit the corresponding event - Self::deposit_event(Event::::CapacityChanged { - who, - provider_id, - old_capacity, - new_capacity, - next_block_when_change_allowed: frame_system::Pallet::::block_number() - + T::MinBlocksBetweenCapacityChanges::get(), - }); - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service - /// - /// The dispatch origin for this call must be Signed. - /// The origin must be the account that wants to add a value proposition. - /// - /// Parameters: - /// - `new_value_prop`: The value proposition that the MSP wants to add to its service. - /// - /// This extrinsic will perform the following checks and logic: - /// 1. Check that the extrinsic was signed and get the signer. - /// 2. Check that the signer is registered as a MSP - /// 3. Check that the MSP has not reached the maximum amount of value propositions - /// 4. Check that the value proposition is valid (size and any other relevant checks) - /// 5. Update the MSPs storage to add the value proposition (with its identifier) - /// - /// Emits `ValuePropAdded` event when successful. - #[pallet::call_index(7)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn add_value_prop( - _origin: OriginFor, - _new_value_prop: ValueProposition, - ) -> DispatchResultWithPostInfo { - // TODO: implement this - - Ok(().into()) - } - - /// Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. - /// - /// The dispatch origin for this call must be Root. - /// The `who` parameter is the account that wants to sign up as a Main Storage Provider. - /// - /// Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - /// - /// Parameters: - /// - `who`: The account that wants to sign up as a Main Storage Provider. - /// - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - /// - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) - /// - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - /// users and wants to register on-chain. It could be data limits, communication protocols to access the user's - /// data, and more. - /// - /// This extrinsic will perform the steps of: - /// 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) - /// 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - /// - /// Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. - #[pallet::call_index(8)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn force_msp_sign_up( - origin: OriginFor, - who: T::AccountId, - msp_id: MainStorageProviderId, - capacity: StorageDataUnit, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - value_prop: ValueProposition, - payment_account: T::AccountId, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was sent with root origin. - ensure_root(origin)?; - - // Set up a structure with the information of the new MSP - let msp_info = MainStorageProvider { - buckets: BoundedVec::default(), - capacity, - capacity_used: StorageDataUnit::::default(), - multiaddresses: multiaddresses.clone(), - value_prop: value_prop.clone(), - last_capacity_change: frame_system::Pallet::::block_number(), - owner_account: who.clone(), - payment_account, - }; - - // Sign up the new MSP (if possible), updating storage - Self::do_request_msp_sign_up(&msp_info)?; - - // Emit the corresponding event - Self::deposit_event(Event::::MspRequestSignUpSuccess { - who: who.clone(), - multiaddresses, - capacity, - value_prop, - }); - - // Confirm the sign up of the account as a Main Storage Provider with the given ID - Self::do_msp_sign_up( - &who, - msp_id, - &msp_info, - frame_system::Pallet::::block_number(), - )?; - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. - /// - /// The dispatch origin for this call must be Root. - /// The `who` parameter is the account that wants to sign up as a Backup Storage Provider. - /// - /// Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - /// - /// Parameters: - /// - `who`: The account that wants to sign up as a Backup Storage Provider. - /// - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - /// - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) - /// - /// This extrinsic will perform the steps of: - /// 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) - /// 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - /// - /// Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. - #[pallet::call_index(9)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn force_bsp_sign_up( - origin: OriginFor, - who: T::AccountId, - bsp_id: BackupStorageProviderId, - capacity: StorageDataUnit, - multiaddresses: BoundedVec, MaxMultiAddressAmount>, - payment_account: T::AccountId, - weight: Option>, - ) -> DispatchResultWithPostInfo { - // Check that the extrinsic was sent with root origin. - ensure_root(origin)?; - - // Set up a structure with the information of the new BSP - let bsp_info = BackupStorageProvider { - capacity, - capacity_used: StorageDataUnit::::default(), - multiaddresses: multiaddresses.clone(), - root: T::DefaultMerkleRoot::get(), - last_capacity_change: frame_system::Pallet::::block_number(), - owner_account: who.clone(), - payment_account, - reputation_weight: weight.unwrap_or(T::StartingReputationWeight::get()), - }; - - // Sign up the new BSP (if possible), updating storage - Self::do_request_bsp_sign_up(&bsp_info)?; - - // Emit the corresponding event - Self::deposit_event(Event::::BspRequestSignUpSuccess { - who: who.clone(), - multiaddresses, - capacity, - }); - - // Confirm the sign up of the account as a Backup Storage Provider with the given ID - Self::do_bsp_sign_up( - &who, - bsp_id, - &bsp_info, - frame_system::Pallet::::block_number(), - )?; - - // Return a successful DispatchResultWithPostInfo - Ok(().into()) - } - - /// Dispatchable extrinsic to slash a _slashable_ Storage Provider. - /// - /// A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. - /// In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. - #[pallet::call_index(10)] - #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] - pub fn slash(origin: OriginFor, provider_id: HashId) -> DispatchResultWithPostInfo { - // Check that the extrinsic was sent with root origin. - ensure_signed(origin)?; - - Self::do_slash(&provider_id) - } - } -} - -/// Helper functions (getters, setters, etc.) for this pallet -impl Pallet { - /// A helper function to get the information of a sign up request of a user. - pub fn get_sign_up_request( - who: &T::AccountId, - ) -> Result<(StorageProvider, BlockNumberFor), Error> { - SignUpRequests::::get(who).ok_or(Error::::SignUpNotRequested) - } - - /// A helper function to get the total capacity of a storage provider. - pub fn get_total_capacity_of_sp(who: &T::AccountId) -> Result, Error> { - if let Some(m_id) = AccountIdToMainStorageProviderId::::get(who) { - let msp = MainStorageProviders::::get(m_id).ok_or(Error::::NotRegistered)?; - Ok(msp.capacity) - } else if let Some(b_id) = AccountIdToBackupStorageProviderId::::get(who) { - let bsp = BackupStorageProviders::::get(b_id).ok_or(Error::::NotRegistered)?; - Ok(bsp.capacity) - } else { - Err(Error::::NotRegistered) - } - } - - /// A helper function to get the total capacity of all BSPs which is the total capacity of the network. - pub fn get_total_bsp_capacity() -> StorageDataUnit { - TotalBspsCapacity::::get() - } - - /// A helper function to get the total used capacity of all BSPs. - pub fn get_used_bsp_capacity() -> StorageDataUnit { - UsedBspsCapacity::::get() - } - - /// A helper function to get the total data used by a Main Storage Provider. - pub fn get_used_storage_of_msp( - who: &MainStorageProviderId, - ) -> Result, Error> { - let msp = MainStorageProviders::::get(who).ok_or(Error::::NotRegistered)?; - Ok(msp.capacity_used) - } - - /// A helper function to get the total data used by a Backup Storage Provider. - pub fn get_used_storage_of_bsp( - who: &BackupStorageProviderId, - ) -> Result, Error> { - let bsp = BackupStorageProviders::::get(who).ok_or(Error::::NotRegistered)?; - Ok(bsp.capacity_used) - } - - /// A helper function to get the total amount of Backup Storage Providers that have registered. - pub fn get_bsp_count() -> T::SpCount { - BspCount::::get() - } - - /// A helper function to get the total amount of Main Storage Providers that have registered. - pub fn get_msp_count() -> T::SpCount { - MspCount::::get() - } -} +//! # Storage Providers Pallet +//! +//! This pallet provides the functionality to manage Main Storage Providers (MSPs) +//! and Backup Storage Providers (BSPs) in a decentralized storage network. +//! +//! The functionality allows users to sign up and sign off as MSPs or BSPs and change +//! their parameters. This is the way that users can offer their storage capacity to +//! the network and get rewarded for it. +#![cfg_attr(not(feature = "std"), no_std)] + +pub mod types; +mod utils; + +#[cfg(feature = "runtime-benchmarks")] +mod benchmarking; + +#[cfg(test)] +mod mock; + +#[cfg(test)] +mod tests; + +use frame_system::pallet_prelude::BlockNumberFor; +pub use pallet::*; +pub use scale_info::Type; +use types::{ + BackupStorageProvider, BackupStorageProviderId, BalanceOf, BucketId, HashId, + MainStorageProviderId, MerklePatriciaRoot, StorageDataUnit, StorageProvider, +}; + +#[frame_support::pallet] +pub mod pallet { + use super::types::*; + use codec::{FullCodec, HasCompact}; + use frame_support::traits::Randomness; + use frame_support::{ + dispatch::DispatchResultWithPostInfo, + pallet_prelude::*, + sp_runtime::traits::{ + AtLeast32BitUnsigned, CheckEqual, CheckedAdd, MaybeDisplay, One, Saturating, + SimpleBitOps, Zero, + }, + traits::{fungible::*, Incrementable}, + Blake2_128Concat, + }; + use frame_system::pallet_prelude::{BlockNumberFor, *}; + use scale_info::prelude::fmt::Debug; + use shp_traits::{FileMetadataInterface, PaymentStreamsInterface, ProofSubmittersInterface}; + use sp_runtime::traits::{Bounded, CheckedDiv}; + + /// Configure the pallet by specifying the parameters and types on which it depends. + #[pallet::config] + pub trait Config: frame_system::Config { + /// Because this pallet emits events, it depends on the runtime's definition of an event. + type RuntimeEvent: From> + IsType<::RuntimeEvent>; + + /// Type to access randomness to salt AccountIds and get the corresponding HashId + type ProvidersRandomness: Randomness, BlockNumberFor>; + + /// Trait that allows the pallet to update payment streams of its Providers and Users + type PaymentStreams: PaymentStreamsInterface< + Balance = Self::NativeBalance, + AccountId = Self::AccountId, + ProviderId = HashId, + Units = Self::StorageDataUnit, + >; + + /// Trait that allows the pallet to manage generic file metadatas + type FileMetadataManager: FileMetadataInterface< + AccountId = Self::AccountId, + StorageDataUnit = Self::StorageDataUnit, + >; + + /// Type to access the Balances pallet (using the fungible trait from frame_support) + type NativeBalance: Inspect + + Mutate + + hold::Inspect + // , Reason = Self::HoldReason> We will probably have to hold deposits + + hold::Mutate + + hold::Balanced + + freeze::Inspect + + freeze::Mutate; + + /// The overarching hold reason + type RuntimeHoldReason: From; + + /// Data type for the measurement of storage size + type StorageDataUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Saturating + + CheckedDiv + + Zero + + Copy + + MaxEncodedLen + + HasCompact + + Into> + + Into; + + /// Type that represents the total number of registered Storage Providers. + type SpCount: Parameter + + Member + + MaybeSerializeDeserialize + + Ord + + AtLeast32BitUnsigned + + FullCodec + + Copy + + Default + + Debug + + scale_info::TypeInfo + + MaxEncodedLen; + + /// The type of the Merkle Patricia Root of the storage trie for BSPs and MSPs' buckets (a hash). + type MerklePatriciaRoot: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// The type of the identifier of the value proposition of a MSP (probably a hash of that value proposition) + type ValuePropId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// The type of the Bucket NFT Collection ID. + type ReadAccessGroupId: Member + Parameter + MaxEncodedLen + Copy + Incrementable; + + /// The trait exposing data of which providers failed to respond to challenges for proofs of storage. + type ProvidersProofSubmitters: ProofSubmittersInterface< + ProviderId = HashId, + TickNumber = BlockNumberFor, + >; + + /// The type representing the reputation weight of a BSP. + type ReputationWeightType: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + Saturating + + Copy + + MaxEncodedLen + + HasCompact + + Zero + + One + + CheckedAdd + + Ord + + Bounded; + + /// The Treasury AccountId. + /// The account to which: + /// - The fees for submitting a challenge are transferred. + /// - The slashed funds are transferred. + #[pallet::constant] + type Treasury: Get; + + /// The minimum amount that an account has to deposit to become a storage provider. + #[pallet::constant] + type SpMinDeposit: Get>; + + /// The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. + #[pallet::constant] + type SpMinCapacity: Get>; + + /// The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. + #[pallet::constant] + type DepositPerData: Get>; + + /// The estimated maximum size of an unknown file. + /// + /// Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. + #[pallet::constant] + type MaxFileSize: Get>; + + /// The maximum size of a multiaddress. + #[pallet::constant] + type MaxMultiAddressSize: Get; + + /// The maximum amount of multiaddresses that a Storage Provider can have. + #[pallet::constant] + type MaxMultiAddressAmount: Get; + + /// The maximum number of protocols the MSP can support (at least within the runtime). + #[pallet::constant] + type MaxProtocols: Get; + + /// The maximum amount of Buckets that a MSP can have. + #[pallet::constant] + type MaxBuckets: Get; + + /// The amount that an account has to deposit to create a bucket. + #[pallet::constant] + type BucketDeposit: Get>; + + /// Type that represents the byte limit of a bucket name. + #[pallet::constant] + type BucketNameLimit: Get; + + /// The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen + #[pallet::constant] + type MaxBlocksForRandomness: Get>; + + /// The minimum amount of blocks between capacity changes for a SP + #[pallet::constant] + type MinBlocksBetweenCapacityChanges: Get>; + + /// The default value of the root of the Merkle Patricia Trie of the runtime + #[pallet::constant] + type DefaultMerkleRoot: Get; + + /// The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. + #[pallet::constant] + type SlashAmountPerMaxFileSize: Get>; + + /// Starting reputation weight for a newly registered BSP. + #[pallet::constant] + type StartingReputationWeight: Get; + } + + #[pallet::pallet] + pub struct Pallet(_); + + // Storage: + + /// The mapping from an AccountId that requested to sign up to a tuple of the metadata with type of the request, and the block + /// number when the request was made. + /// + /// This is used for the two-step process of registering: when a user requests to register as a SP (either MSP or BSP), + /// that request with the metadata and the deposit held is stored here. When the user confirms the sign up, the + /// request is removed from this storage and the user is registered as a SP. + /// + /// This storage is updated in: + /// - [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) and [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up), which add a new entry to the map. + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up) and [cancel_sign_up](crate::dispatchables::cancel_sign_up), which remove an existing entry from the map. + #[pallet::storage] + pub type SignUpRequests = + StorageMap<_, Blake2_128Concat, T::AccountId, (StorageProvider, BlockNumberFor)>; + + /// The mapping from an AccountId to a MainStorageProviderId. + /// + /// This is used to get a Main Storage Provider's unique identifier needed to access its metadata. + /// + /// This storage is updated in: + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. + /// - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. + #[pallet::storage] + pub type AccountIdToMainStorageProviderId = + StorageMap<_, Blake2_128Concat, T::AccountId, MainStorageProviderId>; + + /// The mapping from a MainStorageProviderId to a MainStorageProvider. + /// + /// This is used to get a Main Storage Provider's metadata. + /// It returns `None` if the Main Storage Provider ID does not correspond to any registered Main Storage Provider. + /// + /// This storage is updated in: + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. + /// - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. + /// - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. + /// - [add_value_prop](crate::dispatchables::add_value_prop), which appends a new value proposition to the entry's existing `value_prop` bounded vector. + #[pallet::storage] + pub type MainStorageProviders = + StorageMap<_, Blake2_128Concat, MainStorageProviderId, MainStorageProvider>; + + /// The mapping from a BucketId to that bucket's metadata. + /// + /// This is used to get a bucket's metadata, such as root, user ID, and MSP ID. + /// It returns `None` if the Bucket ID does not correspond to any registered bucket. + /// + /// This storage is updated in: + /// - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket), which adds a new entry to the map. + /// - [change_root_bucket](shp_traits::MutateProvidersInterface::change_root_bucket), which changes the corresponding bucket's root. + /// - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket), which removes the entry of the corresponding bucket. + #[pallet::storage] + pub type Buckets = StorageMap<_, Blake2_128Concat, BucketId, Bucket>; + + /// The mapping from a MainStorageProviderId to a vector of BucketIds. + /// + /// This is used to efficiently retrieve the list of buckets that a Main Storage Provider is currently storing. + /// + /// This storage is updated in: + /// - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket) + /// - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket) + #[pallet::storage] + pub type MainStorageProviderIdsToBuckets = StorageMap< + _, + Blake2_128Concat, + MainStorageProviderId, + BoundedVec, T::MaxBuckets>, + >; + + /// The mapping from an AccountId to a BackupStorageProviderId. + /// + /// This is used to get a Backup Storage Provider's unique identifier needed to access its metadata. + /// + /// This storage is updated in: + /// + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. + /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. + #[pallet::storage] + pub type AccountIdToBackupStorageProviderId = + StorageMap<_, Blake2_128Concat, T::AccountId, BackupStorageProviderId>; + + /// The mapping from a BackupStorageProviderId to a BackupStorageProvider. + /// + /// This is used to get a Backup Storage Provider's metadata. + /// It returns `None` if the Backup Storage Provider ID does not correspond to any registered Backup Storage Provider. + /// + /// This storage is updated in: + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. + /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. + /// - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. + #[pallet::storage] + pub type BackupStorageProviders = + StorageMap<_, Blake2_128Concat, BackupStorageProviderId, BackupStorageProvider>; + + /// The amount of Main Storage Providers that are currently registered in the runtime. + /// + /// This is used to keep track of the total amount of MSPs in the system. + /// + /// This storage is updated in: + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Main Storage Provider. + /// - [msp_sign_off](crate::dispatchables::msp_sign_off), which subtracts one from this storage. + #[pallet::storage] + pub type MspCount = StorageValue<_, T::SpCount, ValueQuery>; + + /// The amount of Backup Storage Providers that are currently registered in the runtime. + /// + /// This is used to keep track of the total amount of BSPs in the system. + /// + /// This storage is updated in: + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Backup Storage Provider. + /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts one from this storage. + #[pallet::storage] + pub type BspCount = StorageValue<_, T::SpCount, ValueQuery>; + + /// The total amount of storage capacity all BSPs have. + /// + /// This is used to keep track of the total amount of storage capacity all BSPs have in the system, which is also the + /// total amount of storage capacity that can be used by users if we factor in the replication factor. + /// + /// This storage is updated in: + /// - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds the capacity of the registered Storage Provider to this storage if the account to confirm is a Backup Storage Provider. + /// - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts the capacity of the Backup Storage Provider to sign off from this storage. + #[pallet::storage] + pub type TotalBspsCapacity = StorageValue<_, StorageDataUnit, ValueQuery>; + + /// The total amount of storage capacity of BSPs that is currently in use. + /// + /// This is used to keep track of the total amount of storage capacity that is currently in use by users, which is useful for + /// system metrics and also to calculate the current price of storage. + #[pallet::storage] + pub type UsedBspsCapacity = StorageValue<_, StorageDataUnit, ValueQuery>; + + /// The total global reputation weight of all BSPs. + #[pallet::storage] + pub type GlobalBspsReputationWeight = StorageValue<_, ReputationWeightType, ValueQuery>; + + // Events & Errors: + + /// The events that can be emitted by this pallet + #[pallet::event] + #[pallet::generate_deposit(pub(super) fn deposit_event)] + pub enum Event { + /// Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about + /// that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. + MspRequestSignUpSuccess { + who: T::AccountId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageDataUnit, + value_prop: ValueProposition, + }, + + /// Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about + /// that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. + MspSignUpSuccess { + who: T::AccountId, + msp_id: MainStorageProviderId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageDataUnit, + value_prop: ValueProposition, + }, + + /// Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about + /// that BSP's account id, its multiaddresses, and the total data it can store according to its stake. + BspRequestSignUpSuccess { + who: T::AccountId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageDataUnit, + }, + + /// Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about + /// that BSP's account id, the total data it can store according to its stake, and its multiaddress. + BspSignUpSuccess { + who: T::AccountId, + bsp_id: BackupStorageProviderId, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + capacity: StorageDataUnit, + }, + + /// Event emitted when a sign up request has been canceled successfully. Provides information about + /// the account id of the user that canceled the request. + SignUpRequestCanceled { who: T::AccountId }, + + /// Event emitted when a Main Storage Provider has signed off successfully. Provides information about + /// that MSP's account id. + MspSignOffSuccess { + who: T::AccountId, + msp_id: MainStorageProviderId, + }, + + /// Event emitted when a Backup Storage Provider has signed off successfully. Provides information about + /// that BSP's account id. + BspSignOffSuccess { + who: T::AccountId, + bsp_id: BackupStorageProviderId, + }, + + /// Event emitted when a SP has changed its capacity successfully. Provides information about + /// that SP's account id, its old total data that could store, and the new total data. + CapacityChanged { + who: T::AccountId, + provider_id: StorageProviderId, + old_capacity: StorageDataUnit, + new_capacity: StorageDataUnit, + next_block_when_change_allowed: BlockNumberFor, + }, + + /// Event emitted when an SP has been slashed. + Slashed { + provider_id: HashId, + amount_slashed: BalanceOf, + }, + } + + /// The errors that can be thrown by this pallet to inform users about what went wrong + #[pallet::error] + pub enum Error { + // Sign up errors: + /// Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. + AlreadyRegistered, + /// Error thrown when a user tries to confirm a sign up that was not requested previously. + SignUpNotRequested, + /// Error thrown when a user tries to request to sign up when it already has a sign up request pending. + SignUpRequestPending, + /// Error thrown when a user tries to sign up without any multiaddress. + NoMultiAddress, + /// Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. + InvalidMultiAddress, + /// Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. + StorageTooLow, + + // Deposit errors: + /// Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. + NotEnoughBalance, + /// Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. + CannotHoldDeposit, + + // Sign off errors: + /// Error thrown when a user tries to sign off as a SP but still has used storage. + StorageStillInUse, + + // Randomness errors: + /// Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. + RandomnessNotValidYet, + /// Error thrown when a user tries to confirm a sign up but too much time has passed since the request. + SignUpRequestExpired, + + // Capacity change errors: + /// Error thrown when a user tries to change its capacity to less than its used storage. + NewCapacityLessThanUsedStorage, + /// Error thrown when a user tries to change its capacity to the same value it already has. + NewCapacityEqualsCurrentCapacity, + /// Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). + NewCapacityCantBeZero, + /// Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. + NotEnoughTimePassed, + /// Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. + NewUsedCapacityExceedsStorageCapacity, + + // General errors: + /// Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. + NotRegistered, + /// Error thrown when trying to get a root from a MSP without passing a User ID. + NoUserId, + /// Error thrown when trying to get a root from a MSP without passing a Bucket ID. + NoBucketId, + /// Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). + SpRegisteredButDataNotFound, + /// Error thrown when a bucket ID is not found in storage. + BucketNotFound, + /// Error thrown when a bucket ID already exists in storage. + BucketAlreadyExists, + /// Error thrown when a bucket ID could not be added to the list of buckets of a MSP. + AppendBucketToMspFailed, + /// Error thrown when an attempt was made to slash an unslashable Storage Provider. + ProviderNotSlashable, + + // Payment streams interface errors: + /// Error thrown when failing to decode the metadata from a received trie value that was removed. + InvalidEncodedFileMetadata, + /// Error thrown when failing to decode the owner Account ID from the received metadata. + InvalidEncodedAccountId, + /// Error thrown when trying to update a payment stream that does not exist. + PaymentStreamNotFound, + } + + /// This enum holds the HoldReasons for this pallet, allowing the runtime to identify each held balance with different reasons separately + /// + /// This allows us to hold tokens and be able to identify in the future that those held tokens were + /// held because of this pallet + #[pallet::composite_enum] + pub enum HoldReason { + /// Deposit that a Storage Provider has to pay to be registered as such + StorageProviderDeposit, + /// Deposit that a user has to pay to create a bucket + BucketDeposit, + // Only for testing, another unrelated hold reason + #[cfg(test)] + AnotherUnrelatedHold, + } + + /// Dispatchables (extrinsics) exposed by this pallet + #[pallet::call] + impl Pallet { + /// Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that wants to sign up as a Main Storage Provider. + /// + /// Funds proportional to the capacity requested are reserved (held) from the account. + /// + /// Parameters: + /// - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) + /// - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + /// users and wants to register on-chain. It could be data limits, communication protocols to access the user's + /// data, and more. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer is not already registered as either a MSP or BSP + /// 3. Check that the multiaddress is valid + /// 4. Check that the data to be stored is greater than the minimum required by the runtime. + /// 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + /// 6. Check that the signer has enough funds to pay the deposit + /// 7. Hold the deposit from the signer + /// 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP + /// + /// Emits `MspRequestSignUpSuccess` event when successful. + #[pallet::call_index(0)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn request_msp_sign_up( + origin: OriginFor, + capacity: StorageDataUnit, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + value_prop: ValueProposition, + payment_account: T::AccountId, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Set up a structure with the information of the new MSP + let msp_info = MainStorageProvider { + buckets: BoundedVec::default(), + capacity, + capacity_used: StorageDataUnit::::default(), + multiaddresses: multiaddresses.clone(), + value_prop: value_prop.clone(), + last_capacity_change: frame_system::Pallet::::block_number(), + owner_account: who.clone(), + payment_account, + }; + + // Sign up the new MSP (if possible), updating storage + Self::do_request_msp_sign_up(&msp_info)?; + + // Emit the corresponding event + Self::deposit_event(Event::::MspRequestSignUpSuccess { + who, + multiaddresses, + capacity, + value_prop, + }); + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that wants to sign up as a Backup Storage Provider. + /// + /// Funds proportional to the capacity requested are reserved (held) from the account. + /// + /// Parameters: + /// - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer is not already registered as either a MSP or BSP + /// 3. Check that the multiaddress is valid + /// 4. Check that the data to be stored is greater than the minimum required by the runtime + /// 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + /// 6. Check that the signer has enough funds to pay the deposit + /// 7. Hold the deposit from the signer + /// 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP + /// + /// Emits `BspRequestSignUpSuccess` event when successful. + #[pallet::call_index(1)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn request_bsp_sign_up( + origin: OriginFor, + capacity: StorageDataUnit, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + payment_account: T::AccountId, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Set up a structure with the information of the new BSP + let bsp_info = BackupStorageProvider { + capacity, + capacity_used: StorageDataUnit::::default(), + multiaddresses: multiaddresses.clone(), + root: T::DefaultMerkleRoot::get(), + last_capacity_change: frame_system::Pallet::::block_number(), + owner_account: who.clone(), + payment_account, + reputation_weight: T::StartingReputationWeight::get(), + }; + + // Sign up the new BSP (if possible), updating storage + Self::do_request_bsp_sign_up(&bsp_info)?; + + // Emit the corresponding event + Self::deposit_event(Event::::BspRequestSignUpSuccess { + who, + multiaddresses, + capacity, + }); + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that requested to sign up as a Storage Provider, except when providing a + /// `provider_account` parameter, in which case the origin can be any account. + /// + /// Parameters: + /// - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer + /// will be considered the account that requested to sign up. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed + /// 2. Check that the account received has requested to register as a SP + /// 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request + /// 4. Check that the request has not expired + /// 5. Register the signer as a MSP or BSP with the data provided in the request + /// + /// Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. + /// + /// Notes: + /// - This extrinsic could be called by the user itself or by a third party + /// - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP + /// - If this extrinsic is successful, it will be free for the caller, to incentive state debloating + #[pallet::call_index(2)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn confirm_sign_up( + origin: OriginFor, + provider_account: Option, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer + let who = ensure_signed(origin)?; + + // Execute checks and logic, update storage and emit event + // We emit the event in the interior logic to not have to check again which type of sign up it is outside of it + match provider_account { + Some(provider_account) => Self::do_confirm_sign_up(&provider_account)?, + None => Self::do_confirm_sign_up(&who)?, + } + + // Return a successful DispatchResultWithPostInfo. If the extrinsic executed correctly, it will be free for the caller + Ok(Pays::No.into()) + } + + /// Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that requested to sign up as a Storage Provider. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer has requested to sign up as a SP + /// 3. Delete the request from the Sign Up Requests storage + /// 4. Return the deposit to the signer + /// + /// Emits `SignUpRequestCanceled` event when successful. + #[pallet::call_index(3)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn cancel_sign_up(origin: OriginFor) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Execute checks and logic, update storage + Self::do_cancel_sign_up(&who)?; + + // Emit the corresponding event + Self::deposit_event(Event::::SignUpRequestCanceled { who }); + + Ok(().into()) + } + + /// Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that wants to sign off as a Main Storage Provider. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer is registered as a MSP + /// 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) + /// 4. Update the MSPs storage, removing the signer as an MSP + /// 5. Return the deposit to the signer + /// 6. Decrement the storage that holds total amount of MSPs currently in the system + /// + /// Emits `MspSignOffSuccess` event when successful. + #[pallet::call_index(4)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn msp_sign_off(origin: OriginFor) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Execute checks and logic, update storage + let msp_id = Self::do_msp_sign_off(&who)?; + + // Emit the corresponding event + Self::deposit_event(Event::::MspSignOffSuccess { who, msp_id }); + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that wants to sign off as a Backup Storage Provider. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer is registered as a BSP + /// 3. Check that the BSP has no storage assigned to it + /// 4. Update the BSPs storage, removing the signer as an BSP + /// 5. Update the total capacity of all BSPs, removing the capacity of the signer + /// 6. Return the deposit to the signer + /// 7. Decrement the storage that holds total amount of BSPs currently in the system + /// + /// Emits `BspSignOffSuccess` event when successful. + #[pallet::call_index(5)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn bsp_sign_off(origin: OriginFor) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Execute checks and logic, update storage + let bsp_id = Self::do_bsp_sign_off(&who)?; + + // Emit the corresponding event + Self::deposit_event(Event::::BspSignOffSuccess { who, bsp_id }); + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic that allows users to change their amount of stored data + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that wants to change its capacity. + /// + /// Parameters: + /// - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer is registered as a SP + /// 3. Check that enough time has passed since the last time the SP changed its capacity + /// 4. Check that the new capacity is greater than the minimum required by the runtime + /// 5. Check that the new capacity is greater than the data used by this SP + /// 6. Calculate the new deposit needed for this new capacity + /// 7. Check to see if the new deposit needed is greater or less than the current deposit + /// a. If the new deposit is greater than the current deposit: + /// i. Check that the signer has enough funds to pay this extra deposit + /// ii. Hold the extra deposit from the signer + /// b. If the new deposit is less than the current deposit, return the held difference to the signer + /// 7. Update the SPs storage to change the total data + /// 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) + /// + /// Emits `CapacityChanged` event when successful. + #[pallet::call_index(6)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn change_capacity( + origin: OriginFor, + new_capacity: StorageDataUnit, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was signed and get the signer. + let who = ensure_signed(origin)?; + + // Execute checks and logic, update storage + let (provider_id, old_capacity) = Self::do_change_capacity(&who, new_capacity)?; + + // Emit the corresponding event + Self::deposit_event(Event::::CapacityChanged { + who, + provider_id, + old_capacity, + new_capacity, + next_block_when_change_allowed: frame_system::Pallet::::block_number() + + T::MinBlocksBetweenCapacityChanges::get(), + }); + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service + /// + /// The dispatch origin for this call must be Signed. + /// The origin must be the account that wants to add a value proposition. + /// + /// Parameters: + /// - `new_value_prop`: The value proposition that the MSP wants to add to its service. + /// + /// This extrinsic will perform the following checks and logic: + /// 1. Check that the extrinsic was signed and get the signer. + /// 2. Check that the signer is registered as a MSP + /// 3. Check that the MSP has not reached the maximum amount of value propositions + /// 4. Check that the value proposition is valid (size and any other relevant checks) + /// 5. Update the MSPs storage to add the value proposition (with its identifier) + /// + /// Emits `ValuePropAdded` event when successful. + #[pallet::call_index(7)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn add_value_prop( + _origin: OriginFor, + _new_value_prop: ValueProposition, + ) -> DispatchResultWithPostInfo { + // TODO: implement this + + Ok(().into()) + } + + /// Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. + /// + /// The dispatch origin for this call must be Root. + /// The `who` parameter is the account that wants to sign up as a Main Storage Provider. + /// + /// Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + /// + /// Parameters: + /// - `who`: The account that wants to sign up as a Main Storage Provider. + /// - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + /// - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) + /// - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + /// users and wants to register on-chain. It could be data limits, communication protocols to access the user's + /// data, and more. + /// + /// This extrinsic will perform the steps of: + /// 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) + /// 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + /// + /// Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. + #[pallet::call_index(8)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn force_msp_sign_up( + origin: OriginFor, + who: T::AccountId, + msp_id: MainStorageProviderId, + capacity: StorageDataUnit, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + value_prop: ValueProposition, + payment_account: T::AccountId, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was sent with root origin. + ensure_root(origin)?; + + // Set up a structure with the information of the new MSP + let msp_info = MainStorageProvider { + buckets: BoundedVec::default(), + capacity, + capacity_used: StorageDataUnit::::default(), + multiaddresses: multiaddresses.clone(), + value_prop: value_prop.clone(), + last_capacity_change: frame_system::Pallet::::block_number(), + owner_account: who.clone(), + payment_account, + }; + + // Sign up the new MSP (if possible), updating storage + Self::do_request_msp_sign_up(&msp_info)?; + + // Emit the corresponding event + Self::deposit_event(Event::::MspRequestSignUpSuccess { + who: who.clone(), + multiaddresses, + capacity, + value_prop, + }); + + // Confirm the sign up of the account as a Main Storage Provider with the given ID + Self::do_msp_sign_up( + &who, + msp_id, + &msp_info, + frame_system::Pallet::::block_number(), + )?; + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. + /// + /// The dispatch origin for this call must be Root. + /// The `who` parameter is the account that wants to sign up as a Backup Storage Provider. + /// + /// Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + /// + /// Parameters: + /// - `who`: The account that wants to sign up as a Backup Storage Provider. + /// - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + /// - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + /// - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + /// [Multiaddr spec](https://github.com/multiformats/multiaddr)) + /// + /// This extrinsic will perform the steps of: + /// 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) + /// 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + /// + /// Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. + #[pallet::call_index(9)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn force_bsp_sign_up( + origin: OriginFor, + who: T::AccountId, + bsp_id: BackupStorageProviderId, + capacity: StorageDataUnit, + multiaddresses: BoundedVec, MaxMultiAddressAmount>, + payment_account: T::AccountId, + weight: Option>, + ) -> DispatchResultWithPostInfo { + // Check that the extrinsic was sent with root origin. + ensure_root(origin)?; + + // Set up a structure with the information of the new BSP + let bsp_info = BackupStorageProvider { + capacity, + capacity_used: StorageDataUnit::::default(), + multiaddresses: multiaddresses.clone(), + root: T::DefaultMerkleRoot::get(), + last_capacity_change: frame_system::Pallet::::block_number(), + owner_account: who.clone(), + payment_account, + reputation_weight: weight.unwrap_or(T::StartingReputationWeight::get()), + }; + + // Sign up the new BSP (if possible), updating storage + Self::do_request_bsp_sign_up(&bsp_info)?; + + // Emit the corresponding event + Self::deposit_event(Event::::BspRequestSignUpSuccess { + who: who.clone(), + multiaddresses, + capacity, + }); + + // Confirm the sign up of the account as a Backup Storage Provider with the given ID + Self::do_bsp_sign_up( + &who, + bsp_id, + &bsp_info, + frame_system::Pallet::::block_number(), + )?; + + // Return a successful DispatchResultWithPostInfo + Ok(().into()) + } + + /// Dispatchable extrinsic to slash a _slashable_ Storage Provider. + /// + /// A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. + /// In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. + #[pallet::call_index(10)] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] + pub fn slash(origin: OriginFor, provider_id: HashId) -> DispatchResultWithPostInfo { + // Check that the extrinsic was sent with root origin. + ensure_signed(origin)?; + + Self::do_slash(&provider_id) + } + } +} + +/// Helper functions (getters, setters, etc.) for this pallet +impl Pallet { + /// A helper function to get the information of a sign up request of a user. + pub fn get_sign_up_request( + who: &T::AccountId, + ) -> Result<(StorageProvider, BlockNumberFor), Error> { + SignUpRequests::::get(who).ok_or(Error::::SignUpNotRequested) + } + + /// A helper function to get the total capacity of a storage provider. + pub fn get_total_capacity_of_sp(who: &T::AccountId) -> Result, Error> { + if let Some(m_id) = AccountIdToMainStorageProviderId::::get(who) { + let msp = MainStorageProviders::::get(m_id).ok_or(Error::::NotRegistered)?; + Ok(msp.capacity) + } else if let Some(b_id) = AccountIdToBackupStorageProviderId::::get(who) { + let bsp = BackupStorageProviders::::get(b_id).ok_or(Error::::NotRegistered)?; + Ok(bsp.capacity) + } else { + Err(Error::::NotRegistered) + } + } + + /// A helper function to get the total capacity of all BSPs which is the total capacity of the network. + pub fn get_total_bsp_capacity() -> StorageDataUnit { + TotalBspsCapacity::::get() + } + + /// A helper function to get the total used capacity of all BSPs. + pub fn get_used_bsp_capacity() -> StorageDataUnit { + UsedBspsCapacity::::get() + } + + /// A helper function to get the total data used by a Main Storage Provider. + pub fn get_used_storage_of_msp( + who: &MainStorageProviderId, + ) -> Result, Error> { + let msp = MainStorageProviders::::get(who).ok_or(Error::::NotRegistered)?; + Ok(msp.capacity_used) + } + + /// A helper function to get the total data used by a Backup Storage Provider. + pub fn get_used_storage_of_bsp( + who: &BackupStorageProviderId, + ) -> Result, Error> { + let bsp = BackupStorageProviders::::get(who).ok_or(Error::::NotRegistered)?; + Ok(bsp.capacity_used) + } + + /// A helper function to get the total amount of Backup Storage Providers that have registered. + pub fn get_bsp_count() -> T::SpCount { + BspCount::::get() + } + + /// A helper function to get the total amount of Main Storage Providers that have registered. + pub fn get_msp_count() -> T::SpCount { + MspCount::::get() + } +} diff --git a/pallets/providers/src/mock.rs b/pallets/providers/src/mock.rs index b61582bd9..a8badc9a5 100644 --- a/pallets/providers/src/mock.rs +++ b/pallets/providers/src/mock.rs @@ -1,407 +1,407 @@ -use crate as pallet_storage_providers; -use codec::{Decode, Encode}; -use core::marker::PhantomData; -use frame_support::{ - construct_runtime, derive_impl, parameter_types, - traits::{Everything, Randomness}, - weights::{constants::RocksDbWeight, Weight}, - BoundedBTreeSet, -}; -use frame_system as system; -use pallet_proofs_dealer::SlashableProviders; -use shp_file_metadata::FileMetadata; -use shp_traits::{ - CommitmentVerifier, FileMetadataInterface, MaybeDebug, ProofSubmittersInterface, - ReadChallengeableProvidersInterface, TrieMutation, TrieProofDeltaApplier, -}; -use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Get, Hasher, H256}; -use sp_runtime::{ - traits::{BlakeTwo256, Convert, IdentityLookup}, - BuildStorage, DispatchError, Perbill, SaturatedConversion, -}; -use sp_trie::{CompactProof, LayoutV1, MemoryDB, TrieConfiguration, TrieLayout}; -use std::collections::BTreeSet; -use system::pallet_prelude::BlockNumberFor; - -type Block = frame_system::mocking::MockBlock; -type Balance = u128; -type AccountId = u64; -const EPOCH_DURATION_IN_BLOCKS: BlockNumberFor = 10; -const UNITS: Balance = 1_000_000_000_000; -const STAKE_TO_CHALLENGE_PERIOD: Balance = 100 * UNITS; -// We mock the Randomness trait to use a simple randomness function when testing the pallet -const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumberFor = 3; - -// Configure a mock runtime to test the pallet. -construct_runtime!( - pub enum Test - { - System: frame_system, - Balances: pallet_balances, - StorageProviders: pallet_storage_providers, - ProofsDealer: pallet_proofs_dealer, - PaymentStreams: pallet_payment_streams, - } -); - -parameter_types! { - pub const BlockHashCount: u64 = 250; - pub const SS58Prefix: u8 = 42; - pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::StorageProviders(pallet_storage_providers::HoldReason::StorageProviderDeposit); - pub const BucketHoldReason: RuntimeHoldReason = RuntimeHoldReason::StorageProviders(pallet_storage_providers::HoldReason::BucketDeposit); -} - -#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] -impl system::Config for Test { - type BaseCallFilter = Everything; - type BlockWeights = (); - type BlockLength = (); - type DbWeight = RocksDbWeight; - type RuntimeOrigin = RuntimeOrigin; - type RuntimeCall = RuntimeCall; - type Nonce = u64; - type Hash = H256; - type Hashing = BlakeTwo256; - type AccountId = AccountId; - type Lookup = IdentityLookup; - type Block = Block; - type RuntimeEvent = RuntimeEvent; - type BlockHashCount = BlockHashCount; - type Version = (); - type PalletInfo = PalletInfo; - type AccountData = pallet_balances::AccountData; - type OnNewAccount = (); - type OnKilledAccount = (); - type SystemWeightInfo = (); - type SS58Prefix = SS58Prefix; - type OnSetCode = (); - type MaxConsumers = frame_support::traits::ConstU32<16>; -} - -impl pallet_balances::Config for Test { - type Balance = Balance; - type DustRemoval = (); - type RuntimeEvent = RuntimeEvent; - type ExistentialDeposit = ConstU128<1>; - type AccountStore = System; - type WeightInfo = (); - type MaxLocks = ConstU32<10>; - type MaxReserves = (); - type ReserveIdentifier = [u8; 8]; - type RuntimeHoldReason = RuntimeHoldReason; - type RuntimeFreezeReason = (); - type FreezeIdentifier = (); - type MaxFreezes = ConstU32<10>; -} - -pub struct TreasuryAccount; -impl Get for TreasuryAccount { - fn get() -> AccountId { - 0 - } -} - -// Proofs dealer pallet: -impl pallet_proofs_dealer::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersPallet = StorageProviders; - type NativeBalance = Balances; - type MerkleTrieHash = H256; - type MerkleTrieHashing = BlakeTwo256; - type ForestVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; - type KeyVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; - type StakeToBlockNumber = SaturatingBalanceToBlockNumber; - type RandomChallengesPerBlock = ConstU32<10>; - type MaxCustomChallengesPerBlock = ConstU32<10>; - type MaxSubmittersPerTick = ConstU32<1000>; // TODO: Change this value after benchmarking for it to coincide with the implicit limit given by maximum block weight - type TargetTicksStorageOfSubmitters = ConstU32<3>; - type ChallengeHistoryLength = ConstU64<30>; - type ChallengesQueueLength = ConstU32<25>; - type CheckpointChallengePeriod = ConstU64<20>; - type ChallengesFee = ConstU128<1_000_000>; - type Treasury = TreasuryAccount; - type RandomnessProvider = MockRandomness; - type StakeToChallengePeriod = ConstU128; - type MinChallengePeriod = ConstU64<4>; - type ChallengeTicksTolerance = ConstU64<10>; - type BlockFullnessPeriod = ConstU64<10>; - type BlockFullnessHeadroom = BlockFullnessHeadroom; - type MinNotFullBlocksRatio = MinNotFullBlocksRatio; -} - -// Converter from the Balance type to the BlockNumber type for math. -// It performs a saturated conversion, so that the result is always a valid BlockNumber. -pub struct SaturatingBalanceToBlockNumber; - -impl Convert> for SaturatingBalanceToBlockNumber { - fn convert(block_number: Balance) -> BlockNumberFor { - block_number.saturated_into() - } -} - -pub struct BlockFullnessHeadroom; -impl Get for BlockFullnessHeadroom { - fn get() -> Weight { - Weight::from_parts(10_000, 0) - + ::DbWeight::get().reads_writes(0, 1) - } -} - -pub struct MinNotFullBlocksRatio; -impl Get for MinNotFullBlocksRatio { - fn get() -> Perbill { - Perbill::from_percent(50) - } -} - -/// Structure to mock a verifier that returns `true` when `proof` is not empty -/// and `false` otherwise. -pub struct MockVerifier { - _phantom: core::marker::PhantomData<(C, T)>, -} - -/// Implement the `TrieVerifier` trait for the `MockForestManager` struct. -impl CommitmentVerifier for MockVerifier -where - C: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>, -{ - type Proof = CompactProof; - type Commitment = H256; - type Challenge = H256; - - fn verify_proof( - _root: &Self::Commitment, - _challenges: &[Self::Challenge], - proof: &CompactProof, - ) -> Result, DispatchError> { - if proof.encoded_nodes.len() > 0 { - Ok(proof - .encoded_nodes - .iter() - .map(|node| H256::from_slice(&node[..])) - .collect()) - } else { - Err("Proof is empty".into()) - } - } -} - -impl TrieProofDeltaApplier - for MockVerifier -where - ::Out: for<'a> TryFrom<&'a [u8; H_LENGTH]>, -{ - type Proof = CompactProof; - type Key = ::Out; - - fn apply_delta( - root: &Self::Key, - _mutations: &[(Self::Key, TrieMutation)], - _proof: &Self::Proof, - ) -> Result< - ( - MemoryDB, - Self::Key, - Vec<(Self::Key, Option>)>, - ), - DispatchError, - > { - // Just return the root as is with no mutations - Ok((MemoryDB::::default(), *root, Vec::new())) - } -} - -// Payment streams pallet: -impl pallet_payment_streams::Config for Test { - type RuntimeEvent = RuntimeEvent; - type NativeBalance = Balances; - type ProvidersPallet = StorageProviders; - type RuntimeHoldReason = RuntimeHoldReason; - type Units = u64; - type NewStreamDeposit = ConstU64<10>; - type UserWithoutFundsCooldown = ConstU64<100>; - type BlockNumberToBalance = BlockNumberToBalance; - type ProvidersProofSubmitters = MockSubmittingProviders; -} -// Converter from the BlockNumber type to the Balance type for math -pub struct BlockNumberToBalance; -impl Convert, Balance> for BlockNumberToBalance { - fn convert(block_number: BlockNumberFor) -> Balance { - block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type - } -} - -// Storage providers pallet: -impl crate::Config for Test { - type RuntimeEvent = RuntimeEvent; - type ProvidersRandomness = MockRandomness; - type NativeBalance = Balances; - type RuntimeHoldReason = RuntimeHoldReason; - type FileMetadataManager = MockFileMetadataManager; - type StorageDataUnit = u64; - type SpCount = u32; - type MerklePatriciaRoot = H256; - type ValuePropId = H256; - type ReadAccessGroupId = u32; - type PaymentStreams = PaymentStreams; - type ProvidersProofSubmitters = MockSubmittingProviders; - type ReputationWeightType = u32; - type Treasury = TreasuryAccount; - type SpMinDeposit = ConstU128<{ 10 * UNITS }>; - type SpMinCapacity = ConstU64<2>; - type DepositPerData = ConstU128<2>; - type MaxFileSize = ConstU64<{ u64::MAX }>; - type MaxMultiAddressSize = ConstU32<100>; - type MaxMultiAddressAmount = ConstU32<5>; - type MaxProtocols = ConstU32<100>; - type MaxBuckets = ConstU32<10000>; - type BucketDeposit = ConstU128<10>; - type BucketNameLimit = ConstU32<100>; - type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; - type MinBlocksBetweenCapacityChanges = ConstU64<10>; - type DefaultMerkleRoot = DefaultMerkleRoot>; - type SlashAmountPerMaxFileSize = ConstU128<10>; - type StartingReputationWeight = ConstU32<1>; -} - -pub type HasherOutT = <::Hash as Hasher>::Out; -pub struct DefaultMerkleRoot(PhantomData); -impl Get> for DefaultMerkleRoot { - fn get() -> HasherOutT { - sp_trie::empty_trie_root::() - } -} - -pub struct MockFileMetadataManager; -impl FileMetadataInterface for MockFileMetadataManager { - type AccountId = AccountId; - type Metadata = FileMetadata< - { shp_constants::H_LENGTH }, - { shp_constants::FILE_CHUNK_SIZE }, - { shp_constants::FILE_SIZE_TO_CHALLENGES }, - >; - type StorageDataUnit = u64; - - fn encode(metadata: &Self::Metadata) -> Vec { - metadata.encode() - } - - fn decode(data: &[u8]) -> Result { - as Decode>::decode(&mut &data[..]) - } - - fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { - metadata.file_size - } - - fn get_file_owner(metadata: &Self::Metadata) -> Result { - Self::AccountId::decode(&mut metadata.owner.as_slice()) - } -} - -pub struct MockRandomness; -impl Randomness> for MockRandomness { - fn random(subject: &[u8]) -> (H256, BlockNumberFor) { - // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks - - // Concatenate the subject with the block number to get a unique hash for each block - let subject_concat_block = [ - subject, - &frame_system::Pallet::::block_number().to_le_bytes(), - ] - .concat(); - - let hashed_subject = blake2_256(&subject_concat_block); - - ( - H256::from_slice(&hashed_subject), - frame_system::Pallet::::block_number() - .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), - ) - } -} - -/// This function is used to test the randomness of the providers pallet. -pub fn test_randomness_output( - who: &::AccountId, -) -> (::Hash, BlockNumberFor) { - ::ProvidersRandomness::random(who.encode().as_ref()) -} - -// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. -pub struct MockSubmittingProviders; -impl ProofSubmittersInterface for MockSubmittingProviders { - type ProviderId = ::Hash; - type TickNumber = BlockNumberFor; - type MaxProofSubmitters = ConstU32<1000>; - fn get_proof_submitters_for_tick( - block_number: &Self::TickNumber, - ) -> Option> { - let mut set = BoundedBTreeSet::::new(); - // We convert the block number + 1 to the corresponding Provider ID, to simulate that the Provider submitted a proof - ::get_provider_id( - *block_number + 1, - ) - .map(|id| set.try_insert(id)); - Some(set) - } - - fn get_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) -> Option { - SlashableProviders::::get(provider_id) - } - - fn clear_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) { - SlashableProviders::::remove(provider_id); - } -} - -// Build genesis storage according to the mock runtime. -pub fn _new_test_ext() -> sp_io::TestExternalities { - system::GenesisConfig::::default() - .build_storage() - .unwrap() - .into() -} - -pub mod accounts { - use super::UNITS; - - pub const ALICE: (u64, u128) = (0, 5_000_000 * UNITS); - pub const BOB: (u64, u128) = (1, 10_000_000 * UNITS); - pub const CHARLIE: (u64, u128) = (2, 20_000_000 * UNITS); - pub const DAVID: (u64, u128) = (3, 30_000_000 * UNITS); - pub const EVE: (u64, u128) = (4, 400_000_000 * UNITS); - pub const FERDIE: (u64, u128) = (5, 5_000_000_000 * UNITS); - pub const GEORGE: (u64, u128) = (6, 600_000_000_000 * UNITS); -} - -// Externalities builder with predefined balances for accounts and starting at block number 1 -pub struct ExtBuilder; -impl ExtBuilder { - pub fn build() -> sp_io::TestExternalities { - let mut t = frame_system::GenesisConfig::::default() - .build_storage() - .unwrap(); - pallet_balances::GenesisConfig:: { - balances: vec![ - accounts::ALICE, - accounts::BOB, - accounts::CHARLIE, - accounts::DAVID, - accounts::EVE, - accounts::FERDIE, - accounts::GEORGE, - ], - } - .assimilate_storage(&mut t) - .unwrap(); - - let mut ext = sp_io::TestExternalities::new(t); - ext.execute_with(|| System::set_block_number(1)); - ext - } -} +use crate as pallet_storage_providers; +use codec::{Decode, Encode}; +use core::marker::PhantomData; +use frame_support::{ + construct_runtime, derive_impl, parameter_types, + traits::{Everything, Randomness}, + weights::{constants::RocksDbWeight, Weight}, + BoundedBTreeSet, +}; +use frame_system as system; +use pallet_proofs_dealer::SlashableProviders; +use shp_file_metadata::FileMetadata; +use shp_traits::{ + CommitmentVerifier, FileMetadataInterface, MaybeDebug, ProofSubmittersInterface, + ReadChallengeableProvidersInterface, TrieMutation, TrieProofDeltaApplier, +}; +use sp_core::{hashing::blake2_256, ConstU128, ConstU32, ConstU64, Get, Hasher, H256}; +use sp_runtime::{ + traits::{BlakeTwo256, Convert, IdentityLookup}, + BuildStorage, DispatchError, Perbill, SaturatedConversion, +}; +use sp_trie::{CompactProof, LayoutV1, MemoryDB, TrieConfiguration, TrieLayout}; +use std::collections::BTreeSet; +use system::pallet_prelude::BlockNumberFor; + +type Block = frame_system::mocking::MockBlock; +type Balance = u128; +type AccountId = u64; +const EPOCH_DURATION_IN_BLOCKS: BlockNumberFor = 10; +const UNITS: Balance = 1_000_000_000_000; +const STAKE_TO_CHALLENGE_PERIOD: Balance = 100 * UNITS; +// We mock the Randomness trait to use a simple randomness function when testing the pallet +const BLOCKS_BEFORE_RANDOMNESS_VALID: BlockNumberFor = 3; + +// Configure a mock runtime to test the pallet. +construct_runtime!( + pub enum Test + { + System: frame_system, + Balances: pallet_balances, + StorageProviders: pallet_storage_providers, + ProofsDealer: pallet_proofs_dealer, + PaymentStreams: pallet_payment_streams, + } +); + +parameter_types! { + pub const BlockHashCount: u64 = 250; + pub const SS58Prefix: u8 = 42; + pub const StorageProvidersHoldReason: RuntimeHoldReason = RuntimeHoldReason::StorageProviders(pallet_storage_providers::HoldReason::StorageProviderDeposit); + pub const BucketHoldReason: RuntimeHoldReason = RuntimeHoldReason::StorageProviders(pallet_storage_providers::HoldReason::BucketDeposit); +} + +#[derive_impl(frame_system::config_preludes::TestDefaultConfig)] +impl system::Config for Test { + type BaseCallFilter = Everything; + type BlockWeights = (); + type BlockLength = (); + type DbWeight = RocksDbWeight; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + type Nonce = u64; + type Hash = H256; + type Hashing = BlakeTwo256; + type AccountId = AccountId; + type Lookup = IdentityLookup; + type Block = Block; + type RuntimeEvent = RuntimeEvent; + type BlockHashCount = BlockHashCount; + type Version = (); + type PalletInfo = PalletInfo; + type AccountData = pallet_balances::AccountData; + type OnNewAccount = (); + type OnKilledAccount = (); + type SystemWeightInfo = (); + type SS58Prefix = SS58Prefix; + type OnSetCode = (); + type MaxConsumers = frame_support::traits::ConstU32<16>; +} + +impl pallet_balances::Config for Test { + type Balance = Balance; + type DustRemoval = (); + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ConstU128<1>; + type AccountStore = System; + type WeightInfo = (); + type MaxLocks = ConstU32<10>; + type MaxReserves = (); + type ReserveIdentifier = [u8; 8]; + type RuntimeHoldReason = RuntimeHoldReason; + type RuntimeFreezeReason = (); + type FreezeIdentifier = (); + type MaxFreezes = ConstU32<10>; +} + +pub struct TreasuryAccount; +impl Get for TreasuryAccount { + fn get() -> AccountId { + 0 + } +} + +// Proofs dealer pallet: +impl pallet_proofs_dealer::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersPallet = StorageProviders; + type NativeBalance = Balances; + type MerkleTrieHash = H256; + type MerkleTrieHashing = BlakeTwo256; + type ForestVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; + type KeyVerifier = MockVerifier, { BlakeTwo256::LENGTH }>; + type StakeToBlockNumber = SaturatingBalanceToBlockNumber; + type RandomChallengesPerBlock = ConstU32<10>; + type MaxCustomChallengesPerBlock = ConstU32<10>; + type MaxSubmittersPerTick = ConstU32<1000>; // TODO: Change this value after benchmarking for it to coincide with the implicit limit given by maximum block weight + type TargetTicksStorageOfSubmitters = ConstU32<3>; + type ChallengeHistoryLength = ConstU64<30>; + type ChallengesQueueLength = ConstU32<25>; + type CheckpointChallengePeriod = ConstU64<20>; + type ChallengesFee = ConstU128<1_000_000>; + type Treasury = TreasuryAccount; + type RandomnessProvider = MockRandomness; + type StakeToChallengePeriod = ConstU128; + type MinChallengePeriod = ConstU64<4>; + type ChallengeTicksTolerance = ConstU64<10>; + type BlockFullnessPeriod = ConstU64<10>; + type BlockFullnessHeadroom = BlockFullnessHeadroom; + type MinNotFullBlocksRatio = MinNotFullBlocksRatio; +} + +// Converter from the Balance type to the BlockNumber type for math. +// It performs a saturated conversion, so that the result is always a valid BlockNumber. +pub struct SaturatingBalanceToBlockNumber; + +impl Convert> for SaturatingBalanceToBlockNumber { + fn convert(block_number: Balance) -> BlockNumberFor { + block_number.saturated_into() + } +} + +pub struct BlockFullnessHeadroom; +impl Get for BlockFullnessHeadroom { + fn get() -> Weight { + Weight::from_parts(10_000, 0) + + ::DbWeight::get().reads_writes(0, 1) + } +} + +pub struct MinNotFullBlocksRatio; +impl Get for MinNotFullBlocksRatio { + fn get() -> Perbill { + Perbill::from_percent(50) + } +} + +/// Structure to mock a verifier that returns `true` when `proof` is not empty +/// and `false` otherwise. +pub struct MockVerifier { + _phantom: core::marker::PhantomData<(C, T)>, +} + +/// Implement the `TrieVerifier` trait for the `MockForestManager` struct. +impl CommitmentVerifier for MockVerifier +where + C: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>, +{ + type Proof = CompactProof; + type Commitment = H256; + type Challenge = H256; + + fn verify_proof( + _root: &Self::Commitment, + _challenges: &[Self::Challenge], + proof: &CompactProof, + ) -> Result, DispatchError> { + if proof.encoded_nodes.len() > 0 { + Ok(proof + .encoded_nodes + .iter() + .map(|node| H256::from_slice(&node[..])) + .collect()) + } else { + Err("Proof is empty".into()) + } + } +} + +impl TrieProofDeltaApplier + for MockVerifier +where + ::Out: for<'a> TryFrom<&'a [u8; H_LENGTH]>, +{ + type Proof = CompactProof; + type Key = ::Out; + + fn apply_delta( + root: &Self::Key, + _mutations: &[(Self::Key, TrieMutation)], + _proof: &Self::Proof, + ) -> Result< + ( + MemoryDB, + Self::Key, + Vec<(Self::Key, Option>)>, + ), + DispatchError, + > { + // Just return the root as is with no mutations + Ok((MemoryDB::::default(), *root, Vec::new())) + } +} + +// Payment streams pallet: +impl pallet_payment_streams::Config for Test { + type RuntimeEvent = RuntimeEvent; + type NativeBalance = Balances; + type ProvidersPallet = StorageProviders; + type RuntimeHoldReason = RuntimeHoldReason; + type Units = u64; + type NewStreamDeposit = ConstU64<10>; + type UserWithoutFundsCooldown = ConstU64<100>; + type BlockNumberToBalance = BlockNumberToBalance; + type ProvidersProofSubmitters = MockSubmittingProviders; +} +// Converter from the BlockNumber type to the Balance type for math +pub struct BlockNumberToBalance; +impl Convert, Balance> for BlockNumberToBalance { + fn convert(block_number: BlockNumberFor) -> Balance { + block_number.into() // In this converter we assume that the block number type is smaller in size than the balance type + } +} + +// Storage providers pallet: +impl crate::Config for Test { + type RuntimeEvent = RuntimeEvent; + type ProvidersRandomness = MockRandomness; + type NativeBalance = Balances; + type RuntimeHoldReason = RuntimeHoldReason; + type FileMetadataManager = MockFileMetadataManager; + type StorageDataUnit = u64; + type SpCount = u32; + type MerklePatriciaRoot = H256; + type ValuePropId = H256; + type ReadAccessGroupId = u32; + type PaymentStreams = PaymentStreams; + type ProvidersProofSubmitters = MockSubmittingProviders; + type ReputationWeightType = u32; + type Treasury = TreasuryAccount; + type SpMinDeposit = ConstU128<{ 10 * UNITS }>; + type SpMinCapacity = ConstU64<2>; + type DepositPerData = ConstU128<2>; + type MaxFileSize = ConstU64<{ u64::MAX }>; + type MaxMultiAddressSize = ConstU32<100>; + type MaxMultiAddressAmount = ConstU32<5>; + type MaxProtocols = ConstU32<100>; + type MaxBuckets = ConstU32<10000>; + type BucketDeposit = ConstU128<10>; + type BucketNameLimit = ConstU32<100>; + type MaxBlocksForRandomness = ConstU64<{ EPOCH_DURATION_IN_BLOCKS * 2 }>; + type MinBlocksBetweenCapacityChanges = ConstU64<10>; + type DefaultMerkleRoot = DefaultMerkleRoot>; + type SlashAmountPerMaxFileSize = ConstU128<10>; + type StartingReputationWeight = ConstU32<1>; +} + +pub type HasherOutT = <::Hash as Hasher>::Out; +pub struct DefaultMerkleRoot(PhantomData); +impl Get> for DefaultMerkleRoot { + fn get() -> HasherOutT { + sp_trie::empty_trie_root::() + } +} + +pub struct MockFileMetadataManager; +impl FileMetadataInterface for MockFileMetadataManager { + type AccountId = AccountId; + type Metadata = FileMetadata< + { shp_constants::H_LENGTH }, + { shp_constants::FILE_CHUNK_SIZE }, + { shp_constants::FILE_SIZE_TO_CHALLENGES }, + >; + type StorageDataUnit = u64; + + fn encode(metadata: &Self::Metadata) -> Vec { + metadata.encode() + } + + fn decode(data: &[u8]) -> Result { + as Decode>::decode(&mut &data[..]) + } + + fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { + metadata.file_size + } + + fn get_file_owner(metadata: &Self::Metadata) -> Result { + Self::AccountId::decode(&mut metadata.owner.as_slice()) + } +} + +pub struct MockRandomness; +impl Randomness> for MockRandomness { + fn random(subject: &[u8]) -> (H256, BlockNumberFor) { + // Simple randomness mock that changes each block but its randomness is only valid after 3 blocks + + // Concatenate the subject with the block number to get a unique hash for each block + let subject_concat_block = [ + subject, + &frame_system::Pallet::::block_number().to_le_bytes(), + ] + .concat(); + + let hashed_subject = blake2_256(&subject_concat_block); + + ( + H256::from_slice(&hashed_subject), + frame_system::Pallet::::block_number() + .saturating_sub(BLOCKS_BEFORE_RANDOMNESS_VALID), + ) + } +} + +/// This function is used to test the randomness of the providers pallet. +pub fn test_randomness_output( + who: &::AccountId, +) -> (::Hash, BlockNumberFor) { + ::ProvidersRandomness::random(who.encode().as_ref()) +} + +// Mocked list of Providers that submitted proofs that can be used to test the pallet. It just returns the block number passed to it as the only submitter. +pub struct MockSubmittingProviders; +impl ProofSubmittersInterface for MockSubmittingProviders { + type ProviderId = ::Hash; + type TickNumber = BlockNumberFor; + type MaxProofSubmitters = ConstU32<1000>; + fn get_proof_submitters_for_tick( + block_number: &Self::TickNumber, + ) -> Option> { + let mut set = BoundedBTreeSet::::new(); + // We convert the block number + 1 to the corresponding Provider ID, to simulate that the Provider submitted a proof + ::get_provider_id( + *block_number + 1, + ) + .map(|id| set.try_insert(id)); + Some(set) + } + + fn get_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) -> Option { + SlashableProviders::::get(provider_id) + } + + fn clear_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) { + SlashableProviders::::remove(provider_id); + } +} + +// Build genesis storage according to the mock runtime. +pub fn _new_test_ext() -> sp_io::TestExternalities { + system::GenesisConfig::::default() + .build_storage() + .unwrap() + .into() +} + +pub mod accounts { + use super::UNITS; + + pub const ALICE: (u64, u128) = (0, 5_000_000 * UNITS); + pub const BOB: (u64, u128) = (1, 10_000_000 * UNITS); + pub const CHARLIE: (u64, u128) = (2, 20_000_000 * UNITS); + pub const DAVID: (u64, u128) = (3, 30_000_000 * UNITS); + pub const EVE: (u64, u128) = (4, 400_000_000 * UNITS); + pub const FERDIE: (u64, u128) = (5, 5_000_000_000 * UNITS); + pub const GEORGE: (u64, u128) = (6, 600_000_000_000 * UNITS); +} + +// Externalities builder with predefined balances for accounts and starting at block number 1 +pub struct ExtBuilder; +impl ExtBuilder { + pub fn build() -> sp_io::TestExternalities { + let mut t = frame_system::GenesisConfig::::default() + .build_storage() + .unwrap(); + pallet_balances::GenesisConfig:: { + balances: vec![ + accounts::ALICE, + accounts::BOB, + accounts::CHARLIE, + accounts::DAVID, + accounts::EVE, + accounts::FERDIE, + accounts::GEORGE, + ], + } + .assimilate_storage(&mut t) + .unwrap(); + + let mut ext = sp_io::TestExternalities::new(t); + ext.execute_with(|| System::set_block_number(1)); + ext + } +} diff --git a/pallets/providers/src/utils.rs b/pallets/providers/src/utils.rs index 26b4560d7..936e42db6 100644 --- a/pallets/providers/src/utils.rs +++ b/pallets/providers/src/utils.rs @@ -1,1555 +1,1555 @@ -use crate::types::{Bucket, MainStorageProvider, MultiAddress, StorageProvider}; -use crate::*; -use codec::Encode; -use frame_support::{ - dispatch::{DispatchResultWithPostInfo, Pays}, - ensure, - pallet_prelude::DispatchResult, - sp_runtime::{ - traits::{CheckedAdd, CheckedMul, CheckedSub, One, Saturating, Zero}, - ArithmeticError, BoundedVec, DispatchError, - }, - traits::{ - fungible::{Inspect, InspectHold, MutateHold}, - tokens::{Fortitude, Precision, Preservation, Restriction}, - Get, Randomness, - }, -}; -use frame_system::pallet_prelude::BlockNumberFor; -use pallet_storage_providers_runtime_api::{ - GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, - QueryMspIdOfBucketIdError, QueryStorageProviderCapacityError, -}; -use shp_traits::{ - FileMetadataInterface, MutateBucketsInterface, MutateChallengeableProvidersInterface, - MutateProvidersInterface, MutateStorageProvidersInterface, PaymentStreamsInterface, - ProofSubmittersInterface, ReadBucketsInterface, ReadChallengeableProvidersInterface, - ReadProvidersInterface, ReadStorageProvidersInterface, SystemMetricsInterface, -}; -use sp_std::vec::Vec; -use types::{ProviderId, StorageProviderId}; - -macro_rules! expect_or_err { - // Handle Option type - ($optional:expr, $error_msg:expr, $error_type:path) => {{ - match $optional { - Some(value) => value, - None => { - #[cfg(test)] - unreachable!($error_msg); - - #[allow(unreachable_code)] - { - Err($error_type)? - } - } - } - }}; - // Handle boolean type - ($condition:expr, $error_msg:expr, $error_type:path, bool) => {{ - if !$condition { - #[cfg(test)] - unreachable!($error_msg); - - #[allow(unreachable_code)] - { - Err($error_type)? - } - } - }}; -} - -impl Pallet -where - T: pallet::Config, -{ - /// This function holds the logic that checks if a user can request to sign up as a Main Storage Provider - /// and, if so, stores the request in the SignUpRequests mapping - pub fn do_request_msp_sign_up(msp_info: &MainStorageProvider) -> DispatchResult { - // todo!("If this comment is present, it means this function is still incomplete even though it compiles.") - - let who = &msp_info.owner_account; - - // Check that the user does not have a pending sign up request - ensure!( - SignUpRequests::::get(&who).is_none(), - Error::::SignUpRequestPending - ); - - // Check that the account is not already registered either as a Main Storage Provider or a Backup Storage Provider - ensure!( - AccountIdToMainStorageProviderId::::get(who).is_none() - && AccountIdToBackupStorageProviderId::::get(who).is_none(), - Error::::AlreadyRegistered - ); - - // Check that the multiaddresses vector is not empty (SPs have to register with at least one) - ensure!( - !msp_info.multiaddresses.is_empty(), - Error::::NoMultiAddress - ); - - // TODO: Check that the multiaddresses are valid - /* for multiaddress in msp_info.multiaddresses.iter() { - let multiaddress_vec = multiaddress.to_vec(); - let valid_multiaddress = Multiaddr::try_from(multiaddress_vec); - match valid_multiaddress { - Ok(_) => (), - Err(_) => return Err(Error::::InvalidMultiAddress.into()), - } - } */ - - // Check that the data to be stored is bigger than the minimum required by the runtime - ensure!( - msp_info.capacity >= T::SpMinCapacity::get(), - Error::::StorageTooLow - ); - - // Calculate how much deposit will the signer have to pay to register with this amount of data - let capacity_over_minimum = msp_info - .capacity - .checked_sub(&T::SpMinCapacity::get()) - .ok_or(Error::::StorageTooLow)?; - let deposit_for_capacity_over_minimum = T::DepositPerData::get() - .checked_mul(&capacity_over_minimum.into()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - let deposit = T::SpMinDeposit::get() - .checked_add(&deposit_for_capacity_over_minimum) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Check if the user has enough balance to pay the deposit - let user_balance = - T::NativeBalance::reducible_balance(who, Preservation::Preserve, Fortitude::Polite); - ensure!(user_balance >= deposit, Error::::NotEnoughBalance); - - // Check if we can hold the deposit from the user - ensure!( - T::NativeBalance::can_hold(&HoldReason::StorageProviderDeposit.into(), who, deposit), - Error::::CannotHoldDeposit - ); - - // Hold the deposit from the user - T::NativeBalance::hold(&HoldReason::StorageProviderDeposit.into(), who, deposit)?; - - // Store the sign up request in the SignUpRequests mapping - SignUpRequests::::insert( - who, - ( - StorageProvider::MainStorageProvider(msp_info.clone()), - frame_system::Pallet::::block_number(), - ), - ); - - Ok(()) - } - - /// This function holds the logic that checks if a user can request to sign up as a Backup Storage Provider - /// and, if so, stores the request in the SignUpRequests mapping - pub fn do_request_bsp_sign_up(bsp_info: &BackupStorageProvider) -> DispatchResult { - // todo!("If this comment is present, it means this function is still incomplete even though it compiles.") - - let who = &bsp_info.owner_account; - - // Check that the user does not have a pending sign up request - ensure!( - SignUpRequests::::get(&who).is_none(), - Error::::SignUpRequestPending - ); - - // Check that the account is not already registered either as a Main Storage Provider or a Backup Storage Provider - ensure!( - AccountIdToMainStorageProviderId::::get(who).is_none() - && AccountIdToBackupStorageProviderId::::get(who).is_none(), - Error::::AlreadyRegistered - ); - - // Check that the multiaddresses vector is not empty (SPs have to register with at least one) - ensure!( - !bsp_info.multiaddresses.is_empty(), - Error::::NoMultiAddress - ); - - // TODO: Check that the multiaddresses are valid - /* for multiaddress in bsp_info.multiaddresses.iter() { - let multiaddress_vec = multiaddress.to_vec(); - let valid_multiaddress = Multiaddr::try_from(multiaddress_vec); - match valid_multiaddress { - Ok(_) => (), - Err(_) => return Err(Error::::InvalidMultiAddress.into()), - } - } */ - - // Check that the data to be stored is bigger than the minimum required by the runtime - ensure!( - bsp_info.capacity >= T::SpMinCapacity::get(), - Error::::StorageTooLow - ); - - // Calculate how much deposit will the signer have to pay to register with this amount of data - let capacity_over_minimum = bsp_info - .capacity - .checked_sub(&T::SpMinCapacity::get()) - .ok_or(Error::::StorageTooLow)?; - let deposit_for_capacity_over_minimum = T::DepositPerData::get() - .checked_mul(&capacity_over_minimum.into()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - let deposit = T::SpMinDeposit::get() - .checked_add(&deposit_for_capacity_over_minimum) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Check if the user has enough balance to pay the deposit - let user_balance = - T::NativeBalance::reducible_balance(who, Preservation::Preserve, Fortitude::Polite); - ensure!(user_balance >= deposit, Error::::NotEnoughBalance); - - // Check if we can hold the deposit from the user - ensure!( - T::NativeBalance::can_hold(&HoldReason::StorageProviderDeposit.into(), who, deposit), - Error::::CannotHoldDeposit - ); - - // Hold the deposit from the user - T::NativeBalance::hold(&HoldReason::StorageProviderDeposit.into(), who, deposit)?; - - // Store the sign up request in the SignUpRequests mapping - SignUpRequests::::insert( - who, - ( - StorageProvider::BackupStorageProvider(bsp_info.clone()), - frame_system::Pallet::::block_number(), - ), - ); - - Ok(()) - } - - /// This function holds the logic that checks if a user can cancel a sign up request as a Storage Provider - /// and, if so, removes the request from the SignUpRequests mapping - pub fn do_cancel_sign_up(who: &T::AccountId) -> DispatchResult { - // Check that the signer has requested to sign up as a Storage Provider - SignUpRequests::::get(who).ok_or(Error::::SignUpNotRequested)?; - - // Remove the sign up request from the SignUpRequests mapping - SignUpRequests::::remove(who); - - // Return the deposit to the signer - // We return all held funds as there's no possibility of the user having another _valid_ hold with this pallet - T::NativeBalance::release_all( - &HoldReason::StorageProviderDeposit.into(), - who, - frame_support::traits::tokens::Precision::Exact, - )?; - - Ok(()) - } - - /// This function dispatches the logic to confirm the sign up of a user as a Storage Provider - /// It checks if the user has requested to sign up, and if so, it dispatches the corresponding logic - /// according to the type of Storage Provider that the user is trying to sign up as - pub fn do_confirm_sign_up(who: &T::AccountId) -> DispatchResult { - // Check that the signer has requested to sign up as a Storage Provider - let (sp, request_block) = - SignUpRequests::::get(who).ok_or(Error::::SignUpNotRequested)?; - - // Get the ProviderId by using the AccountId as the seed for a random generator - let (sp_id, block_number_when_random) = - T::ProvidersRandomness::random(who.encode().as_ref()); - - // Check that the maximum block number after which the randomness is invalid is greater than or equal to the block number when the - // request was made to ensure that the randomness was not known when the request was made - ensure!( - block_number_when_random >= request_block, - Error::::RandomnessNotValidYet - ); - - // Check what type of Storage Provider the signer is trying to sign up as and dispatch the corresponding logic - match sp { - StorageProvider::MainStorageProvider(msp_info) => { - Self::do_msp_sign_up(who, sp_id, &msp_info, request_block)?; - } - StorageProvider::BackupStorageProvider(bsp_info) => { - Self::do_bsp_sign_up(who, sp_id, &bsp_info, request_block)?; - } - } - - Ok(()) - } - - /// This function holds the logic that confirms the sign up of a user as a Main Storage Provider - /// It updates the storage to add the new Main Storage Provider, increments the counter of Main Storage Providers, - /// and removes the sign up request from the SignUpRequests mapping - pub fn do_msp_sign_up( - who: &T::AccountId, - msp_id: MainStorageProviderId, - msp_info: &MainStorageProvider, - request_block: BlockNumberFor, - ) -> DispatchResult { - // Check that the current block number is not greater than the block number when the request was made plus the maximum amount of - // blocks that we allow the user to wait for valid randomness (should be at least more than an epoch if using BABE's RandomnessFromOneEpochAgo) - // We do this to ensure that a user cannot wait indefinitely for randomness that suits them - ensure!( - frame_system::Pallet::::block_number() - < request_block + T::MaxBlocksForRandomness::get(), - Error::::SignUpRequestExpired - ); - - // Insert the MainStorageProviderId into the mapping - AccountIdToMainStorageProviderId::::insert(who, msp_id); - - // Save the MainStorageProvider information in storage - MainStorageProviders::::insert(&msp_id, msp_info); - - // Increment the counter of Main Storage Providers registered - let new_amount_of_msps = MspCount::::get() - .checked_add(&T::SpCount::one()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - MspCount::::set(new_amount_of_msps); - - // Remove the sign up request from the SignUpRequests mapping - SignUpRequests::::remove(who); - - // Emit the corresponding event - Self::deposit_event(Event::::MspSignUpSuccess { - who: who.clone(), - msp_id, - multiaddresses: msp_info.multiaddresses.clone(), - capacity: msp_info.capacity, - value_prop: msp_info.value_prop.clone(), - }); - - Ok(()) - } - - /// This function holds the logic that confirms the sign up of a user as a Backup Storage Provider - /// It updates the storage to add the new Backup Storage Provider, increments the counter of Backup Storage Providers, - /// increments the total capacity of the network (which is the sum of all BSPs capacities), and removes the sign up request - /// from the SignUpRequests mapping - pub fn do_bsp_sign_up( - who: &T::AccountId, - bsp_id: BackupStorageProviderId, - bsp_info: &BackupStorageProvider, - request_block: BlockNumberFor, - ) -> DispatchResult { - // Check that the current block number is not greater than the block number when the request was made plus the maximum amount of - // blocks that we allow the user to wait for valid randomness (should be at least more than an epoch if using BABE's RandomnessFromOneEpochAgo) - // We do this to ensure that a user cannot wait indefinitely for randomness that suits them - ensure!( - frame_system::Pallet::::block_number() - < request_block + T::MaxBlocksForRandomness::get(), - Error::::SignUpRequestExpired - ); - - // Insert the BackupStorageProviderId into the mapping - AccountIdToBackupStorageProviderId::::insert(who, bsp_id); - - // Save the BackupStorageProvider information in storage - BackupStorageProviders::::insert(&bsp_id, bsp_info.clone()); - - // Increment the total capacity of the network (which is the sum of all BSPs capacities) - TotalBspsCapacity::::mutate(|n| match n.checked_add(&bsp_info.capacity) { - Some(new_total_bsp_capacity) => { - *n = new_total_bsp_capacity; - Ok(()) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Overflow)), - })?; - - // Increment the counter of Backup Storage Providers registered - let new_amount_of_bsps = BspCount::::get() - .checked_add(&T::SpCount::one()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - BspCount::::set(new_amount_of_bsps); - - // Remove the sign up request from the SignUpRequests mapping - SignUpRequests::::remove(who); - - // Increase global reputation weight - GlobalBspsReputationWeight::::mutate(|n| { - *n = n.saturating_add(bsp_info.reputation_weight); - }); - - // Emit the corresponding event - Self::deposit_event(Event::::BspSignUpSuccess { - who: who.clone(), - bsp_id, - multiaddresses: bsp_info.multiaddresses.clone(), - capacity: bsp_info.capacity, - }); - - Ok(()) - } - - /// This function holds the logic that checks if a user can sign off as a Main Storage Provider - /// and, if so, updates the storage to remove the user as a Main Storage Provider, decrements the counter of Main Storage Providers, - /// and returns the deposit to the user - pub fn do_msp_sign_off(who: &T::AccountId) -> Result, DispatchError> { - // Check that the signer is registered as a MSP and get its info - let msp_id = - AccountIdToMainStorageProviderId::::get(who).ok_or(Error::::NotRegistered)?; - - let msp = expect_or_err!( - MainStorageProviders::::get(&msp_id), - "MSP is registered (has a MSP ID), it should also have metadata", - Error::::SpRegisteredButDataNotFound - ); - - // Check that the MSP has no storage assigned to it (no buckets or data used by it) - ensure!( - msp.capacity_used == T::StorageDataUnit::zero(), - Error::::StorageStillInUse - ); - - // Update the MSPs storage, removing the signer as an MSP - AccountIdToMainStorageProviderId::::remove(who); - MainStorageProviders::::remove(&msp_id); - - // Return the deposit to the signer (if all funds cannot be returned, it will fail and revert with the reason) - T::NativeBalance::release_all( - &HoldReason::StorageProviderDeposit.into(), - who, - frame_support::traits::tokens::Precision::Exact, - )?; - - // Decrement the storage that holds total amount of MSPs currently in the system - MspCount::::mutate(|n| { - let new_amount_of_msps = n.checked_sub(&T::SpCount::one()); - match new_amount_of_msps { - Some(new_amount_of_msps) => { - *n = new_amount_of_msps; - Ok(msp_id) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), - } - })?; - - Ok(msp_id) - } - - /// This function holds the logic that checks if a user can sign off as a Backup Storage Provider - /// and, if so, updates the storage to remove the user as a Backup Storage Provider, decrements the counter of Backup Storage Providers, - /// decrements the total capacity of the network (which is the sum of all BSPs capacities), and returns the deposit to the user - pub fn do_bsp_sign_off( - who: &T::AccountId, - ) -> Result, DispatchError> { - // Check that the signer is registered as a BSP and get its info - let bsp_id = - AccountIdToBackupStorageProviderId::::get(who).ok_or(Error::::NotRegistered)?; - - let bsp = expect_or_err!( - BackupStorageProviders::::get(&bsp_id), - "BSP is registered (has a BSP ID), it should also have metadata", - Error::::SpRegisteredButDataNotFound - ); - - // Check that the BSP has no storage assigned to it (it is not currently storing any files) - ensure!( - bsp.capacity_used == T::StorageDataUnit::zero(), - Error::::StorageStillInUse - ); - - // Update the BSPs storage, removing the signer as an BSP - AccountIdToBackupStorageProviderId::::remove(who); - BackupStorageProviders::::remove(&bsp_id); - - // Update the total capacity of the network (which is the sum of all BSPs capacities) - TotalBspsCapacity::::mutate(|n| match n.checked_sub(&bsp.capacity) { - Some(new_total_bsp_capacity) => { - *n = new_total_bsp_capacity; - Ok(bsp_id) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), - })?; - - // Return the deposit to the signer (if all funds cannot be returned, it will fail and revert with the reason) - T::NativeBalance::release_all( - &HoldReason::StorageProviderDeposit.into(), - who, - frame_support::traits::tokens::Precision::Exact, - )?; - - // Decrement the storage that holds total amount of BSPs currently in the system - BspCount::::mutate(|n| { - let new_amount_of_bsps = n.checked_sub(&T::SpCount::one()); - match new_amount_of_bsps { - Some(new_amount_of_bsps) => { - *n = new_amount_of_bsps; - Ok(bsp_id) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), - } - })?; - - // Decrease global reputation weight - GlobalBspsReputationWeight::::mutate(|n| { - *n = n.saturating_sub(bsp.reputation_weight); - }); - - Ok(bsp_id) - } - - /// This function is in charge of dispatching the logic to change the capacity of a Storage Provider - /// It checks if the signer is registered as a SP and dispatches the corresponding function - /// that checks if the user can change its capacity and, if so, updates the storage to reflect the new capacity - pub fn do_change_capacity( - who: &T::AccountId, - new_capacity: StorageDataUnit, - ) -> Result<(StorageProviderId, StorageDataUnit), DispatchError> { - // Check that the new capacity is not zero (there are specific functions to sign off as a SP) - ensure!( - new_capacity != T::StorageDataUnit::zero(), - Error::::NewCapacityCantBeZero - ); - - // Check that the signer is registered as a SP and dispatch the corresponding function, getting its old capacity - let old_capacity = if let Some(msp_id) = AccountIdToMainStorageProviderId::::get(who) { - ( - StorageProviderId::MainStorageProvider(msp_id), - Self::do_change_capacity_msp(who, msp_id, new_capacity)?, - ) - } else if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who) { - ( - StorageProviderId::BackupStorageProvider(bsp_id), - Self::do_change_capacity_bsp(who, bsp_id, new_capacity)?, - ) - } else { - return Err(Error::::NotRegistered.into()); - }; - - Ok(old_capacity) - } - - /// This function holds the logic that checks if a user can change its capacity as a Main Storage Provider - /// and, if so, updates the storage to reflect the new capacity, modifying the user's deposit accordingly - /// and returning the old capacity if successful - pub fn do_change_capacity_msp( - account_id: &T::AccountId, - msp_id: MainStorageProviderId, - new_capacity: StorageDataUnit, - ) -> Result, DispatchError> { - // Check that the MSP is registered and get its info - let mut msp = MainStorageProviders::::get(&msp_id).ok_or(Error::::NotRegistered)?; - - // Check that the new capacity is different from the current capacity - ensure!( - new_capacity != msp.capacity, - Error::::NewCapacityEqualsCurrentCapacity - ); - - // Check that enough time has passed since the last capacity change - ensure!( - frame_system::Pallet::::block_number() - >= msp.last_capacity_change + T::MinBlocksBetweenCapacityChanges::get(), - Error::::NotEnoughTimePassed - ); - - // Check that the new capacity is bigger than the minimum required by the runtime - ensure!( - new_capacity >= T::SpMinCapacity::get(), - Error::::StorageTooLow - ); - - // Check that the new capacity is bigger than the current used capacity by the MSP - ensure!( - new_capacity >= msp.capacity_used, - Error::::NewCapacityLessThanUsedStorage - ); - - // Calculate how much deposit will the signer have to pay to register with this amount of data - let capacity_over_minimum = new_capacity - .checked_sub(&T::SpMinCapacity::get()) - .ok_or(Error::::StorageTooLow)?; - let deposit_for_capacity_over_minimum = T::DepositPerData::get() - .checked_mul(&capacity_over_minimum.into()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - let new_deposit = T::SpMinDeposit::get() - .checked_add(&deposit_for_capacity_over_minimum) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Check how much has the MSP already deposited for the current capacity - let current_deposit = T::NativeBalance::balance_on_hold( - &HoldReason::StorageProviderDeposit.into(), - account_id, - ); - - // Check if the new deposit is bigger or smaller than the current deposit - // Note: we do not check directly capacities as, for example, a bigger new_capacity could entail a smaller deposit - // because of changes in storage pricing, so we check the difference in deposits instead - if new_deposit > current_deposit { - // If the new deposit is bigger than the current deposit, more balance has to be held from the user - Self::hold_balance(account_id, current_deposit, new_deposit)?; - } else if new_deposit < current_deposit { - // If the new deposit is smaller than the current deposit, some balance has to be released to the user - Self::release_balance(account_id, current_deposit, new_deposit)?; - } - - // Get the MSP's old capacity - let old_capacity = msp.capacity; - - // Update the MSP's storage, modifying the capacity and the last capacity change block number - msp.capacity = new_capacity; - msp.last_capacity_change = frame_system::Pallet::::block_number(); - MainStorageProviders::::insert(&msp_id, msp); - - // Return the old capacity - Ok(old_capacity) - } - - /// This function holds the logic that checks if a user can change its capacity as a Backup Storage Provider - /// and, if so, updates the storage to reflect the new capacity, modifying the user's deposit accordingly - /// and returning the old capacity if successful - pub fn do_change_capacity_bsp( - account_id: &T::AccountId, - bsp_id: BackupStorageProviderId, - new_capacity: StorageDataUnit, - ) -> Result, DispatchError> { - // Check that the BSP is registered and get its info - let mut bsp = BackupStorageProviders::::get(&bsp_id).ok_or(Error::::NotRegistered)?; - - // Check that the new capacity is different from the current capacity - ensure!( - new_capacity != bsp.capacity, - Error::::NewCapacityEqualsCurrentCapacity - ); - - // Check that enough time has passed since the last capacity change - ensure!( - frame_system::Pallet::::block_number() - >= bsp.last_capacity_change + T::MinBlocksBetweenCapacityChanges::get(), - Error::::NotEnoughTimePassed - ); - - // Check that the new capacity is bigger than the minimum required by the runtime - ensure!( - new_capacity >= T::SpMinCapacity::get(), - Error::::StorageTooLow - ); - - // Check that the new capacity is bigger than the current used capacity by the BSP - ensure!( - new_capacity >= bsp.capacity_used, - Error::::NewCapacityLessThanUsedStorage - ); - - // Calculate how much deposit will the signer have to pay to register with this amount of data - let capacity_over_minimum = new_capacity - .checked_sub(&T::SpMinCapacity::get()) - .ok_or(Error::::StorageTooLow)?; - let deposit_for_capacity_over_minimum = T::DepositPerData::get() - .checked_mul(&capacity_over_minimum.into()) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - let new_deposit = T::SpMinDeposit::get() - .checked_add(&deposit_for_capacity_over_minimum) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; - - // Check how much has the used already deposited for the current capacity - let current_deposit = T::NativeBalance::balance_on_hold( - &HoldReason::StorageProviderDeposit.into(), - account_id, - ); - - // Check if the new deposit is bigger or smaller than the current deposit - // Note: we do not check directly capacities as, for example, a bigger new_capacity could entail a smaller deposit - // because of changes in storage pricing, so we check the difference in deposits instead - if new_deposit > current_deposit { - // If the new deposit is bigger than the current deposit, more balance has to be held from the user - Self::hold_balance(account_id, current_deposit, new_deposit)?; - } else if new_deposit < current_deposit { - // If the new deposit is smaller than the current deposit, some balance has to be released to the user - Self::release_balance(account_id, current_deposit, new_deposit)?; - } - - // Get the BSP's old capacity - let old_capacity = bsp.capacity; - - // Update the total capacity of the network (which is the sum of all BSPs capacities) - if new_capacity > old_capacity { - // If the new capacity is bigger than the old capacity, get the difference doing new_capacity - old_capacity - let difference = new_capacity - .checked_sub(&old_capacity) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; - // Increment the total capacity of the network by the difference - TotalBspsCapacity::::mutate(|n| match n.checked_add(&difference) { - Some(new_total_bsp_capacity) => { - *n = new_total_bsp_capacity; - Ok(()) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Overflow)), - })?; - } else { - // If the new capacity is smaller than the old capacity, get the difference doing old_capacity - new_capacity - let difference = old_capacity - .checked_sub(&new_capacity) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; - // Decrement the total capacity of the network - TotalBspsCapacity::::mutate(|n| match n.checked_sub(&difference) { - Some(new_total_bsp_capacity) => { - *n = new_total_bsp_capacity; - Ok(()) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), - })?; - } - - // Update the BSP's storage, modifying the capacity and the last capacity change block number - bsp.capacity = new_capacity; - bsp.last_capacity_change = frame_system::Pallet::::block_number(); - BackupStorageProviders::::insert(&bsp_id, bsp); - - // Return the old capacity - Ok(old_capacity) - } - - /// Slash a Storage Provider. - /// - /// The amount slashed is calculated as the product of the [`SlashAmountPerChunkOfStorageData`] and the accrued failed proof submissions. - /// The amount is then slashed from the Storage Provider's held deposit and transferred to the treasury. - /// - /// This will return an error when the Storage Provider is not slashable. In the context of the StorageHub protocol, - /// a Storage Provider is slashable when the proofs-dealer pallet has marked them as such. - /// - /// Successfully slashing a Storage Provider should be a free operation. - pub(crate) fn do_slash(provider_id: &HashId) -> DispatchResultWithPostInfo { - let account_id = if let Some(provider) = MainStorageProviders::::get(provider_id) { - provider.owner_account - } else if let Some(provider) = BackupStorageProviders::::get(provider_id) { - provider.owner_account - } else { - return Err(Error::::ProviderNotSlashable.into()); - }; - - // Calculate slashable amount. - // Doubling the slash for each failed proof submission is necessary since it is more probabilistic for a Storage Provider to have - // responded with two file key proofs given a random or custom challenge. - let slashable_amount = Self::compute_worst_case_scenario_slashable_amount(provider_id)?; - - let amount_slashed = T::NativeBalance::transfer_on_hold( - &HoldReason::StorageProviderDeposit.into(), - &account_id, - &T::Treasury::get(), - slashable_amount, - Precision::BestEffort, - Restriction::Free, - Fortitude::Polite, - )?; - - // Clear the accrued failed proof submissions for the Storage Provider - ::clear_accrued_failed_proof_submissions(&provider_id); - - // Provider held funds have been completely depleted. - if amount_slashed <= slashable_amount { - // TODO: Force sign off the provider. - } - - Self::deposit_event(Event::::Slashed { - provider_id: *provider_id, - amount_slashed, - }); - - Ok(Pays::No.into()) - } - - fn hold_balance( - account_id: &T::AccountId, - previous_deposit: BalanceOf, - new_deposit: BalanceOf, - ) -> DispatchResult { - // Get the user's reducible balance - let user_balance = T::NativeBalance::reducible_balance( - account_id, - Preservation::Preserve, - Fortitude::Polite, - ); - - // Get the difference between the new deposit and the current deposit - let difference = new_deposit - .checked_sub(&previous_deposit) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; - - // Check if the user has enough balance to pay the difference - ensure!(user_balance >= difference, Error::::NotEnoughBalance); - - // Check if we can hold the difference from the user - ensure!( - T::NativeBalance::can_hold( - &HoldReason::StorageProviderDeposit.into(), - account_id, - difference, - ), - Error::::CannotHoldDeposit - ); - - // Hold the difference from the user - T::NativeBalance::hold( - &HoldReason::StorageProviderDeposit.into(), - account_id, - difference, - )?; - - Ok(()) - } - - fn release_balance( - account_id: &T::AccountId, - previous_deposit: BalanceOf, - new_deposit: BalanceOf, - ) -> DispatchResult { - // Get the difference between the current deposit and the new deposit - let difference = previous_deposit - .checked_sub(&new_deposit) - .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; - - // Release the difference from the user - T::NativeBalance::release( - &HoldReason::StorageProviderDeposit.into(), - account_id, - difference, - Precision::Exact, - )?; - - Ok(()) - } - - /// Compute the worst case scenario slashable amount for a Storage Provider. - /// - /// Every failed proof submission counts as for two files which should have been proven due to the low probability of a challenge - /// being an exact match to a file key stored by the Storage Provider. The StorageHub protocol requires the Storage Provider to - /// submit a proof of storage for the neighbouring file keys of the missing challenged file key. - /// - /// The slashing amount is calculated based on an assumption that every file is the maximum size allowed by the protocol. - pub fn compute_worst_case_scenario_slashable_amount( - provider_id: &HashId, - ) -> Result, DispatchError> { - let accrued_failed_submission_count = ::get_accrued_failed_proof_submissions(&provider_id) - .ok_or(Error::::ProviderNotSlashable)?.into(); - - Ok(T::SlashAmountPerMaxFileSize::get() - .saturating_mul(accrued_failed_submission_count) - .saturating_mul(2u32.into())) - } -} - -impl From> for BackupStorageProvider { - fn from(msp: MainStorageProvider) -> Self { - BackupStorageProvider { - capacity: msp.capacity, - capacity_used: msp.capacity_used, - multiaddresses: msp.multiaddresses, - root: T::DefaultMerkleRoot::get(), - last_capacity_change: msp.last_capacity_change, - owner_account: msp.owner_account, - payment_account: msp.payment_account, - reputation_weight: T::StartingReputationWeight::get(), - } - } -} - -/// Implement the ReadBucketsInterface trait for the Storage Providers pallet. -impl ReadBucketsInterface for pallet::Pallet { - type AccountId = T::AccountId; - type BucketId = BucketId; - type BucketNameLimit = T::BucketNameLimit; - type ProviderId = HashId; - type ReadAccessGroupId = T::ReadAccessGroupId; - type MerkleHash = MerklePatriciaRoot; - type StorageDataUnit = T::StorageDataUnit; - - fn bucket_exists(bucket_id: &Self::BucketId) -> bool { - Buckets::::contains_key(bucket_id) - } - - fn derive_bucket_id( - msp_id: &Self::ProviderId, - owner: &Self::AccountId, - bucket_name: BoundedVec, - ) -> Self::BucketId { - let concat = msp_id - .encode() - .into_iter() - .chain( - owner - .encode() - .into_iter() - .chain(bucket_name.encode().into_iter()), - ) - .collect::>(); - - <::Hashing as sp_runtime::traits::Hash>::hash(&concat) - } - - fn get_msp_of_bucket(bucket_id: &Self::BucketId) -> Option { - Buckets::::get(bucket_id).map(|bucket| bucket.msp_id) - } - - fn get_read_access_group_id_of_bucket( - bucket_id: &Self::BucketId, - ) -> Result, DispatchError> { - let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; - Ok(bucket.read_access_group_id) - } - - fn is_bucket_owner( - who: &Self::AccountId, - bucket_id: &Self::BucketId, - ) -> Result { - let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; - Ok(&bucket.user_id == who) - } - - fn is_bucket_private(bucket_id: &Self::BucketId) -> Result { - let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; - Ok(bucket.private) - } - - fn is_bucket_stored_by_msp(msp_id: &Self::ProviderId, bucket_id: &Self::BucketId) -> bool { - if let Some(bucket) = Buckets::::get(bucket_id) { - bucket.msp_id == *msp_id - } else { - false - } - } - - fn get_root_bucket(bucket_id: &Self::BucketId) -> Option { - Buckets::::get(bucket_id).map(|bucket| bucket.root) - } - - fn get_bucket_owner(bucket_id: &Self::BucketId) -> Result { - let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; - Ok(bucket.user_id) - } - - fn get_bucket_size(bucket_id: &Self::BucketId) -> Result { - let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; - Ok(bucket.size) - } - - fn get_msp_bucket(bucket_id: &Self::BucketId) -> Result { - let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; - Ok(bucket.msp_id) - } -} - -/// Implement the MutateBucketsInterface trait for the Storage Providers pallet. -impl MutateBucketsInterface for pallet::Pallet { - type AccountId = T::AccountId; - type BucketId = BucketId; - type ProviderId = HashId; - type ReadAccessGroupId = T::ReadAccessGroupId; - type MerkleHash = MerklePatriciaRoot; - type StorageDataUnit = T::StorageDataUnit; - - fn add_bucket( - provider_id: Self::ProviderId, - user_id: Self::AccountId, - bucket_id: Self::BucketId, - privacy: bool, - maybe_read_access_group_id: Option, - ) -> DispatchResult { - // Check if bucket already exists - ensure!( - !Buckets::::contains_key(&bucket_id), - Error::::BucketAlreadyExists - ); - - // Check if the MSP exists - ensure!( - MainStorageProviders::::contains_key(&provider_id), - Error::::NotRegistered - ); - - let user_balance = T::NativeBalance::reducible_balance( - &user_id, - Preservation::Preserve, - Fortitude::Polite, - ); - - let deposit = T::BucketDeposit::get(); - ensure!(user_balance >= deposit, Error::::NotEnoughBalance); - ensure!( - T::NativeBalance::can_hold(&HoldReason::BucketDeposit.into(), &user_id, deposit), - Error::::CannotHoldDeposit - ); - - // Hold the bucket deposit - T::NativeBalance::hold(&HoldReason::BucketDeposit.into(), &user_id, deposit)?; - - let bucket = Bucket { - root: T::DefaultMerkleRoot::get(), - msp_id: provider_id, - private: privacy, - read_access_group_id: maybe_read_access_group_id, - user_id, - size: T::StorageDataUnit::zero(), - }; - - Buckets::::insert(&bucket_id, &bucket); - - MainStorageProviderIdsToBuckets::::try_append(&provider_id, bucket_id) - .map_err(|_| Error::::AppendBucketToMspFailed)?; - - Ok(()) - } - - fn change_msp_bucket(bucket_id: &Self::BucketId, new_msp: &Self::ProviderId) -> DispatchResult { - Buckets::::try_mutate(bucket_id, |bucket| { - let bucket = bucket.as_mut().ok_or(Error::::BucketNotFound)?; - bucket.msp_id = *new_msp; - - Ok(()) - }) - } - - fn change_root_bucket(bucket_id: Self::BucketId, new_root: Self::MerkleHash) -> DispatchResult { - Buckets::::try_mutate(&bucket_id, |bucket| { - let bucket = bucket.as_mut().ok_or(Error::::BucketNotFound)?; - bucket.root = new_root; - - Ok(()) - }) - } - - fn remove_root_bucket(bucket_id: Self::BucketId) -> DispatchResult { - let bucket = Buckets::::take(&bucket_id).ok_or(Error::::BucketNotFound)?; - - MainStorageProviderIdsToBuckets::::mutate_exists( - &bucket.msp_id, - |buckets| match buckets { - Some(b) => { - b.retain(|b| b != &bucket_id); - - if b.is_empty() { - *buckets = None; - } - } - _ => {} - }, - ); - - // Release the bucket deposit hold - T::NativeBalance::release( - &HoldReason::BucketDeposit.into(), - &bucket.user_id, - T::BucketDeposit::get(), - Precision::Exact, - )?; - - Ok(()) - } - - fn update_bucket_privacy(bucket_id: Self::BucketId, privacy: bool) -> DispatchResult { - Buckets::::try_mutate(&bucket_id, |maybe_bucket| { - let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; - bucket.private = privacy; - - Ok(()) - }) - } - - fn update_bucket_read_access_group_id( - bucket_id: Self::BucketId, - maybe_read_access_group_id: Option, - ) -> DispatchResult { - Buckets::::try_mutate(&bucket_id, |maybe_bucket| { - let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; - bucket.read_access_group_id = maybe_read_access_group_id; - - Ok(()) - }) - } - - fn increase_bucket_size( - bucket_id: &Self::BucketId, - delta: Self::StorageDataUnit, - ) -> DispatchResult { - Buckets::::try_mutate(&bucket_id, |maybe_bucket| { - let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; - bucket.size = bucket.size.saturating_add(delta); - - Ok(()) - }) - } - - fn decrease_bucket_size( - bucket_id: &Self::BucketId, - delta: Self::StorageDataUnit, - ) -> DispatchResult { - Buckets::::try_mutate(&bucket_id, |maybe_bucket| { - let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; - bucket.size = bucket.size.saturating_sub(delta); - - Ok(()) - }) - } -} - -/// Implement the ReadStorageProvidersInterface trait for the Storage Providers pallet. -impl ReadStorageProvidersInterface for pallet::Pallet { - type ProviderId = HashId; - type StorageDataUnit = T::StorageDataUnit; - type SpCount = T::SpCount; - type MultiAddress = MultiAddress; - type MaxNumberOfMultiAddresses = T::MaxMultiAddressAmount; - type ReputationWeight = T::ReputationWeightType; - - fn is_bsp(who: &Self::ProviderId) -> bool { - BackupStorageProviders::::contains_key(&who) - } - - fn is_msp(who: &Self::ProviderId) -> bool { - MainStorageProviders::::contains_key(&who) - } - - fn get_global_bsps_reputation_weight() -> Self::ReputationWeight { - GlobalBspsReputationWeight::::get() - } - - fn get_bsp_reputation_weight( - who: &Self::ProviderId, - ) -> Result { - if let Some(bsp) = BackupStorageProviders::::get(who) { - Ok(bsp.reputation_weight) - } else { - Err(Error::::NotRegistered.into()) - } - } - - fn get_number_of_bsps() -> Self::SpCount { - Self::get_bsp_count() - } - - fn get_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit { - if let Some(bsp) = BackupStorageProviders::::get(who) { - bsp.capacity - } else if let Some(msp) = MainStorageProviders::::get(who) { - msp.capacity - } else { - Zero::zero() - } - } - - fn get_used_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit { - if let Some(bsp) = BackupStorageProviders::::get(who) { - bsp.capacity_used - } else if let Some(msp) = MainStorageProviders::::get(who) { - msp.capacity_used - } else { - Zero::zero() - } - } - - fn available_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit { - if let Some(bsp) = BackupStorageProviders::::get(who) { - bsp.capacity.saturating_sub(bsp.capacity_used) - } else if let Some(msp) = MainStorageProviders::::get(who) { - msp.capacity.saturating_sub(msp.capacity_used) - } else { - Zero::zero() - } - } - - fn get_bsp_multiaddresses( - who: &Self::ProviderId, - ) -> Result, DispatchError> - { - if let Some(bsp) = BackupStorageProviders::::get(who) { - Ok(BoundedVec::from(bsp.multiaddresses)) - } else { - Err(Error::::NotRegistered.into()) - } - } -} - -/// Implement the MutateStorageProvidersInterface trait for the Storage Providers pallet. -impl MutateStorageProvidersInterface for pallet::Pallet { - type ProviderId = HashId; - type StorageDataUnit = T::StorageDataUnit; - - fn decrease_capacity_used( - provider_id: &Self::ProviderId, - delta: Self::StorageDataUnit, - ) -> DispatchResult { - if MainStorageProviders::::contains_key(&provider_id) { - let mut msp = - MainStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; - msp.capacity_used = msp.capacity_used.saturating_sub(delta); - MainStorageProviders::::insert(&provider_id, msp); - } else if BackupStorageProviders::::contains_key(&provider_id) { - let mut bsp = - BackupStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; - bsp.capacity_used = bsp.capacity_used.saturating_sub(delta); - BackupStorageProviders::::insert(&provider_id, bsp); - UsedBspsCapacity::::mutate(|n| match n.checked_sub(&delta) { - Some(new_total_bsp_capacity) => { - *n = new_total_bsp_capacity; - Ok(()) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), - })?; - } else { - return Err(Error::::NotRegistered.into()); - } - Ok(()) - } - - fn increase_capacity_used( - provider_id: &Self::ProviderId, - delta: Self::StorageDataUnit, - ) -> DispatchResult { - if MainStorageProviders::::contains_key(&provider_id) { - let mut msp = - MainStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; - - let new_used_capacity = msp.capacity_used.saturating_add(delta); - if msp.capacity < new_used_capacity { - return Err(Error::::NewUsedCapacityExceedsStorageCapacity.into()); - } - msp.capacity_used = new_used_capacity; - MainStorageProviders::::insert(&provider_id, msp); - } else if BackupStorageProviders::::contains_key(&provider_id) { - let mut bsp = - BackupStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; - bsp.capacity_used = bsp.capacity_used.saturating_add(delta); - BackupStorageProviders::::insert(&provider_id, bsp); - UsedBspsCapacity::::mutate(|n| match n.checked_add(&delta) { - Some(new_total_bsp_capacity) => { - *n = new_total_bsp_capacity; - Ok(()) - } - None => Err(DispatchError::Arithmetic(ArithmeticError::Overflow)), - })?; - } else { - return Err(Error::::NotRegistered.into()); - } - Ok(()) - } -} - -/// Implement the ReadProvidersInterface for the Storage Providers pallet. -impl ReadProvidersInterface for pallet::Pallet { - type AccountId = T::AccountId; - type Balance = T::NativeBalance; - type MerkleHash = MerklePatriciaRoot; - type ProviderId = HashId; - - fn get_default_root() -> Self::MerkleHash { - T::DefaultMerkleRoot::get() - } - - fn get_owner_account(who: Self::ProviderId) -> Option { - if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(bsp.owner_account) - } else if let Some(msp) = MainStorageProviders::::get(&who) { - Some(msp.owner_account) - } else if let Some(bucket) = Buckets::::get(&who) { - let msp_for_bucket = bucket.msp_id; - if let Some(msp) = MainStorageProviders::::get(&msp_for_bucket) { - Some(msp.owner_account) - } else { - None - } - } else { - None - } - } - - fn get_payment_account(who: Self::ProviderId) -> Option { - if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(bsp.payment_account) - } else if let Some(msp) = MainStorageProviders::::get(&who) { - Some(msp.payment_account) - } else { - None - } - } - - fn get_provider_id(who: Self::AccountId) -> Option { - if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who.clone()) { - Some(bsp_id) - } else if let Some(msp_id) = AccountIdToMainStorageProviderId::::get(who) { - Some(msp_id) - } else { - None - } - } - - fn get_root(who: Self::ProviderId) -> Option { - if let Some(bucket) = Buckets::::get(&who) { - Some(bucket.root) - } else if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(bsp.root) - } else { - None - } - } - - fn get_stake( - who: Self::ProviderId, - ) -> Option<>::Balance> - { - if let Some(bucket) = Buckets::::get(&who) { - match MainStorageProviders::::get(bucket.msp_id) { - Some(related_msp) => Some(T::NativeBalance::balance_on_hold( - &HoldReason::BucketDeposit.into(), - &related_msp.owner_account, - )), - None => None, - } - } else if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(T::NativeBalance::balance_on_hold( - &HoldReason::StorageProviderDeposit.into(), - &bsp.owner_account, - )) - } else { - None - } - } - - fn is_provider(who: Self::ProviderId) -> bool { - BackupStorageProviders::::contains_key(&who) - || MainStorageProviders::::contains_key(&who) - || Buckets::::contains_key(&who) - } -} - -/// Implement the MutateProvidersInterface for the Storage Providers pallet. -impl MutateProvidersInterface for pallet::Pallet { - type MerkleHash = MerklePatriciaRoot; - type ProviderId = HashId; - - fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult { - if let Some(bucket) = Buckets::::get(&who) { - Buckets::::insert( - &who, - Bucket { - root: new_root, - ..bucket - }, - ); - } else if let Some(bsp) = BackupStorageProviders::::get(&who) { - BackupStorageProviders::::insert( - &who, - BackupStorageProvider { - root: new_root, - ..bsp - }, - ); - } else { - return Err(Error::::NotRegistered.into()); - } - Ok(()) - } -} - -/// Implement the ReadChallengeableProvidersInterface for the Storage Providers pallet. -impl ReadChallengeableProvidersInterface for pallet::Pallet { - type AccountId = T::AccountId; - type Balance = T::NativeBalance; - type MerkleHash = MerklePatriciaRoot; - type ProviderId = HashId; - - fn get_default_root() -> Self::MerkleHash { - T::DefaultMerkleRoot::get() - } - - fn get_owner_account(who: Self::ProviderId) -> Option { - if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(bsp.owner_account) - } else { - None - } - } - - fn get_provider_id(who: Self::AccountId) -> Option { - if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who.clone()) { - Some(bsp_id) - } else { - None - } - } - - fn get_root(who: Self::ProviderId) -> Option { - if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(bsp.root) - } else { - None - } - } - - fn get_stake( - who: Self::ProviderId, - ) -> Option<>::Balance> - { - if let Some(bsp) = BackupStorageProviders::::get(&who) { - Some(T::NativeBalance::balance_on_hold( - &HoldReason::StorageProviderDeposit.into(), - &bsp.owner_account, - )) - } else { - None - } - } - - fn is_provider(who: Self::ProviderId) -> bool { - BackupStorageProviders::::contains_key(&who) - } - - fn get_min_stake( - ) -> >::Balance { - T::SpMinDeposit::get() - } -} - -/// Implement the MutateChallengeableProvidersInterface for the Storage Providers pallet. -impl MutateChallengeableProvidersInterface for pallet::Pallet { - type MerkleHash = MerklePatriciaRoot; - type ProviderId = HashId; - - fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult { - if let Some(bsp) = BackupStorageProviders::::get(&who) { - BackupStorageProviders::::insert( - &who, - BackupStorageProvider { - root: new_root, - ..bsp - }, - ); - } else { - return Err(Error::::NotRegistered.into()); - } - Ok(()) - } - - fn update_provider_after_key_removal( - who: &Self::ProviderId, - removed_trie_value: &Vec, - ) -> DispatchResult { - // Get the removed file's metadata - let file_metadata = - <::FileMetadataManager as FileMetadataInterface>::decode( - removed_trie_value, - ) - .map_err(|_| Error::::InvalidEncodedFileMetadata)?; - - // Get the file size as a StorageDataUnit type and the owner as an AccountId type - let file_size = - <::FileMetadataManager as FileMetadataInterface>::get_file_size( - &file_metadata, - ); - let owner = - <::FileMetadataManager as FileMetadataInterface>::get_file_owner( - &file_metadata, - ) - .map_err(|_| Error::::InvalidEncodedAccountId)?; - - // Decrease the used capacity of the provider - Self::decrease_capacity_used(who, file_size)?; - - // Update the provider's payment stream with the user - let previous_amount_provided = - ::get_dynamic_rate_payment_stream_amount_provided( - who, - &owner, - ) - .ok_or(Error::::PaymentStreamNotFound)?; - let new_amount_provided = previous_amount_provided.saturating_sub(file_size); - ::update_dynamic_rate_payment_stream( - who, - &owner, - &new_amount_provided, - )?; - - Ok(()) - } -} - -/// Implement the SystemMetricsInterface for the Storage Providers pallet. -impl SystemMetricsInterface for pallet::Pallet { - type ProvidedUnit = StorageDataUnit; - - fn get_total_capacity() -> Self::ProvidedUnit { - Self::get_total_bsp_capacity() - } - - fn get_total_used_capacity() -> Self::ProvidedUnit { - Self::get_used_bsp_capacity() - } -} - -/// Runtime API implementation for the Storage Providers pallet. -impl Pallet -where - T: pallet::Config, -{ - pub fn get_bsp_info( - bsp_id: &BackupStorageProviderId, - ) -> Result, GetBspInfoError> { - BackupStorageProviders::::get(bsp_id).ok_or(GetBspInfoError::BspNotRegistered) - } - - pub fn get_storage_provider_id(who: &T::AccountId) -> Option> { - if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who) { - Some(StorageProviderId::BackupStorageProvider(bsp_id)) - } else if let Some(msp_id) = AccountIdToMainStorageProviderId::::get(who) { - Some(StorageProviderId::MainStorageProvider(msp_id)) - } else { - None - } - } - - pub fn query_storage_provider_capacity( - provider_id: &ProviderId, - ) -> Result, QueryStorageProviderCapacityError> { - if MainStorageProviders::::contains_key(provider_id) { - let msp = MainStorageProviders::::get(provider_id) - .ok_or(QueryStorageProviderCapacityError::ProviderNotRegistered)?; - Ok(msp.capacity) - } else if BackupStorageProviders::::contains_key(provider_id) { - let bsp = BackupStorageProviders::::get(provider_id) - .ok_or(QueryStorageProviderCapacityError::ProviderNotRegistered)?; - Ok(bsp.capacity) - } else { - Err(QueryStorageProviderCapacityError::ProviderNotRegistered) - } - } - - pub fn query_available_storage_capacity( - provider_id: &ProviderId, - ) -> Result, QueryAvailableStorageCapacityError> { - if MainStorageProviders::::contains_key(provider_id) { - let msp = MainStorageProviders::::get(provider_id) - .ok_or(QueryAvailableStorageCapacityError::ProviderNotRegistered)?; - Ok(msp.capacity.saturating_sub(msp.capacity_used)) - } else if BackupStorageProviders::::contains_key(provider_id) { - let bsp = BackupStorageProviders::::get(provider_id) - .ok_or(QueryAvailableStorageCapacityError::ProviderNotRegistered)?; - Ok(bsp.capacity.saturating_sub(bsp.capacity_used)) - } else { - Err(QueryAvailableStorageCapacityError::ProviderNotRegistered) - } - } - - pub fn query_earliest_change_capacity_block( - provider_id: &BackupStorageProviderId, - ) -> Result, QueryEarliestChangeCapacityBlockError> { - let bsp = BackupStorageProviders::::get(provider_id) - .ok_or(QueryEarliestChangeCapacityBlockError::ProviderNotRegistered)?; - Ok(bsp.last_capacity_change + T::MinBlocksBetweenCapacityChanges::get()) - } - - pub fn get_worst_case_scenario_slashable_amount( - provider_id: &ProviderId, - ) -> Result, DispatchError> { - Self::compute_worst_case_scenario_slashable_amount(provider_id) - } - - pub fn get_slash_amount_per_max_file_size() -> BalanceOf { - T::SlashAmountPerMaxFileSize::get() - } - - pub fn query_msp_id_of_bucket_id( - bucket_id: &BucketId, - ) -> Result, QueryMspIdOfBucketIdError> { - let bucket = - Buckets::::get(bucket_id).ok_or(QueryMspIdOfBucketIdError::BucketNotFound)?; - Ok(bucket.msp_id) - } -} +use crate::types::{Bucket, MainStorageProvider, MultiAddress, StorageProvider}; +use crate::*; +use codec::Encode; +use frame_support::{ + dispatch::{DispatchResultWithPostInfo, Pays}, + ensure, + pallet_prelude::DispatchResult, + sp_runtime::{ + traits::{CheckedAdd, CheckedMul, CheckedSub, One, Saturating, Zero}, + ArithmeticError, BoundedVec, DispatchError, + }, + traits::{ + fungible::{Inspect, InspectHold, MutateHold}, + tokens::{Fortitude, Precision, Preservation, Restriction}, + Get, Randomness, + }, +}; +use frame_system::pallet_prelude::BlockNumberFor; +use pallet_storage_providers_runtime_api::{ + GetBspInfoError, QueryAvailableStorageCapacityError, QueryEarliestChangeCapacityBlockError, + QueryMspIdOfBucketIdError, QueryStorageProviderCapacityError, +}; +use shp_traits::{ + FileMetadataInterface, MutateBucketsInterface, MutateChallengeableProvidersInterface, + MutateProvidersInterface, MutateStorageProvidersInterface, PaymentStreamsInterface, + ProofSubmittersInterface, ReadBucketsInterface, ReadChallengeableProvidersInterface, + ReadProvidersInterface, ReadStorageProvidersInterface, SystemMetricsInterface, +}; +use sp_std::vec::Vec; +use types::{ProviderId, StorageProviderId}; + +macro_rules! expect_or_err { + // Handle Option type + ($optional:expr, $error_msg:expr, $error_type:path) => {{ + match $optional { + Some(value) => value, + None => { + #[cfg(test)] + unreachable!($error_msg); + + #[allow(unreachable_code)] + { + Err($error_type)? + } + } + } + }}; + // Handle boolean type + ($condition:expr, $error_msg:expr, $error_type:path, bool) => {{ + if !$condition { + #[cfg(test)] + unreachable!($error_msg); + + #[allow(unreachable_code)] + { + Err($error_type)? + } + } + }}; +} + +impl Pallet +where + T: pallet::Config, +{ + /// This function holds the logic that checks if a user can request to sign up as a Main Storage Provider + /// and, if so, stores the request in the SignUpRequests mapping + pub fn do_request_msp_sign_up(msp_info: &MainStorageProvider) -> DispatchResult { + // todo!("If this comment is present, it means this function is still incomplete even though it compiles.") + + let who = &msp_info.owner_account; + + // Check that the user does not have a pending sign up request + ensure!( + SignUpRequests::::get(&who).is_none(), + Error::::SignUpRequestPending + ); + + // Check that the account is not already registered either as a Main Storage Provider or a Backup Storage Provider + ensure!( + AccountIdToMainStorageProviderId::::get(who).is_none() + && AccountIdToBackupStorageProviderId::::get(who).is_none(), + Error::::AlreadyRegistered + ); + + // Check that the multiaddresses vector is not empty (SPs have to register with at least one) + ensure!( + !msp_info.multiaddresses.is_empty(), + Error::::NoMultiAddress + ); + + // TODO: Check that the multiaddresses are valid + /* for multiaddress in msp_info.multiaddresses.iter() { + let multiaddress_vec = multiaddress.to_vec(); + let valid_multiaddress = Multiaddr::try_from(multiaddress_vec); + match valid_multiaddress { + Ok(_) => (), + Err(_) => return Err(Error::::InvalidMultiAddress.into()), + } + } */ + + // Check that the data to be stored is bigger than the minimum required by the runtime + ensure!( + msp_info.capacity >= T::SpMinCapacity::get(), + Error::::StorageTooLow + ); + + // Calculate how much deposit will the signer have to pay to register with this amount of data + let capacity_over_minimum = msp_info + .capacity + .checked_sub(&T::SpMinCapacity::get()) + .ok_or(Error::::StorageTooLow)?; + let deposit_for_capacity_over_minimum = T::DepositPerData::get() + .checked_mul(&capacity_over_minimum.into()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + let deposit = T::SpMinDeposit::get() + .checked_add(&deposit_for_capacity_over_minimum) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Check if the user has enough balance to pay the deposit + let user_balance = + T::NativeBalance::reducible_balance(who, Preservation::Preserve, Fortitude::Polite); + ensure!(user_balance >= deposit, Error::::NotEnoughBalance); + + // Check if we can hold the deposit from the user + ensure!( + T::NativeBalance::can_hold(&HoldReason::StorageProviderDeposit.into(), who, deposit), + Error::::CannotHoldDeposit + ); + + // Hold the deposit from the user + T::NativeBalance::hold(&HoldReason::StorageProviderDeposit.into(), who, deposit)?; + + // Store the sign up request in the SignUpRequests mapping + SignUpRequests::::insert( + who, + ( + StorageProvider::MainStorageProvider(msp_info.clone()), + frame_system::Pallet::::block_number(), + ), + ); + + Ok(()) + } + + /// This function holds the logic that checks if a user can request to sign up as a Backup Storage Provider + /// and, if so, stores the request in the SignUpRequests mapping + pub fn do_request_bsp_sign_up(bsp_info: &BackupStorageProvider) -> DispatchResult { + // todo!("If this comment is present, it means this function is still incomplete even though it compiles.") + + let who = &bsp_info.owner_account; + + // Check that the user does not have a pending sign up request + ensure!( + SignUpRequests::::get(&who).is_none(), + Error::::SignUpRequestPending + ); + + // Check that the account is not already registered either as a Main Storage Provider or a Backup Storage Provider + ensure!( + AccountIdToMainStorageProviderId::::get(who).is_none() + && AccountIdToBackupStorageProviderId::::get(who).is_none(), + Error::::AlreadyRegistered + ); + + // Check that the multiaddresses vector is not empty (SPs have to register with at least one) + ensure!( + !bsp_info.multiaddresses.is_empty(), + Error::::NoMultiAddress + ); + + // TODO: Check that the multiaddresses are valid + /* for multiaddress in bsp_info.multiaddresses.iter() { + let multiaddress_vec = multiaddress.to_vec(); + let valid_multiaddress = Multiaddr::try_from(multiaddress_vec); + match valid_multiaddress { + Ok(_) => (), + Err(_) => return Err(Error::::InvalidMultiAddress.into()), + } + } */ + + // Check that the data to be stored is bigger than the minimum required by the runtime + ensure!( + bsp_info.capacity >= T::SpMinCapacity::get(), + Error::::StorageTooLow + ); + + // Calculate how much deposit will the signer have to pay to register with this amount of data + let capacity_over_minimum = bsp_info + .capacity + .checked_sub(&T::SpMinCapacity::get()) + .ok_or(Error::::StorageTooLow)?; + let deposit_for_capacity_over_minimum = T::DepositPerData::get() + .checked_mul(&capacity_over_minimum.into()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + let deposit = T::SpMinDeposit::get() + .checked_add(&deposit_for_capacity_over_minimum) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Check if the user has enough balance to pay the deposit + let user_balance = + T::NativeBalance::reducible_balance(who, Preservation::Preserve, Fortitude::Polite); + ensure!(user_balance >= deposit, Error::::NotEnoughBalance); + + // Check if we can hold the deposit from the user + ensure!( + T::NativeBalance::can_hold(&HoldReason::StorageProviderDeposit.into(), who, deposit), + Error::::CannotHoldDeposit + ); + + // Hold the deposit from the user + T::NativeBalance::hold(&HoldReason::StorageProviderDeposit.into(), who, deposit)?; + + // Store the sign up request in the SignUpRequests mapping + SignUpRequests::::insert( + who, + ( + StorageProvider::BackupStorageProvider(bsp_info.clone()), + frame_system::Pallet::::block_number(), + ), + ); + + Ok(()) + } + + /// This function holds the logic that checks if a user can cancel a sign up request as a Storage Provider + /// and, if so, removes the request from the SignUpRequests mapping + pub fn do_cancel_sign_up(who: &T::AccountId) -> DispatchResult { + // Check that the signer has requested to sign up as a Storage Provider + SignUpRequests::::get(who).ok_or(Error::::SignUpNotRequested)?; + + // Remove the sign up request from the SignUpRequests mapping + SignUpRequests::::remove(who); + + // Return the deposit to the signer + // We return all held funds as there's no possibility of the user having another _valid_ hold with this pallet + T::NativeBalance::release_all( + &HoldReason::StorageProviderDeposit.into(), + who, + frame_support::traits::tokens::Precision::Exact, + )?; + + Ok(()) + } + + /// This function dispatches the logic to confirm the sign up of a user as a Storage Provider + /// It checks if the user has requested to sign up, and if so, it dispatches the corresponding logic + /// according to the type of Storage Provider that the user is trying to sign up as + pub fn do_confirm_sign_up(who: &T::AccountId) -> DispatchResult { + // Check that the signer has requested to sign up as a Storage Provider + let (sp, request_block) = + SignUpRequests::::get(who).ok_or(Error::::SignUpNotRequested)?; + + // Get the ProviderId by using the AccountId as the seed for a random generator + let (sp_id, block_number_when_random) = + T::ProvidersRandomness::random(who.encode().as_ref()); + + // Check that the maximum block number after which the randomness is invalid is greater than or equal to the block number when the + // request was made to ensure that the randomness was not known when the request was made + ensure!( + block_number_when_random >= request_block, + Error::::RandomnessNotValidYet + ); + + // Check what type of Storage Provider the signer is trying to sign up as and dispatch the corresponding logic + match sp { + StorageProvider::MainStorageProvider(msp_info) => { + Self::do_msp_sign_up(who, sp_id, &msp_info, request_block)?; + } + StorageProvider::BackupStorageProvider(bsp_info) => { + Self::do_bsp_sign_up(who, sp_id, &bsp_info, request_block)?; + } + } + + Ok(()) + } + + /// This function holds the logic that confirms the sign up of a user as a Main Storage Provider + /// It updates the storage to add the new Main Storage Provider, increments the counter of Main Storage Providers, + /// and removes the sign up request from the SignUpRequests mapping + pub fn do_msp_sign_up( + who: &T::AccountId, + msp_id: MainStorageProviderId, + msp_info: &MainStorageProvider, + request_block: BlockNumberFor, + ) -> DispatchResult { + // Check that the current block number is not greater than the block number when the request was made plus the maximum amount of + // blocks that we allow the user to wait for valid randomness (should be at least more than an epoch if using BABE's RandomnessFromOneEpochAgo) + // We do this to ensure that a user cannot wait indefinitely for randomness that suits them + ensure!( + frame_system::Pallet::::block_number() + < request_block + T::MaxBlocksForRandomness::get(), + Error::::SignUpRequestExpired + ); + + // Insert the MainStorageProviderId into the mapping + AccountIdToMainStorageProviderId::::insert(who, msp_id); + + // Save the MainStorageProvider information in storage + MainStorageProviders::::insert(&msp_id, msp_info); + + // Increment the counter of Main Storage Providers registered + let new_amount_of_msps = MspCount::::get() + .checked_add(&T::SpCount::one()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + MspCount::::set(new_amount_of_msps); + + // Remove the sign up request from the SignUpRequests mapping + SignUpRequests::::remove(who); + + // Emit the corresponding event + Self::deposit_event(Event::::MspSignUpSuccess { + who: who.clone(), + msp_id, + multiaddresses: msp_info.multiaddresses.clone(), + capacity: msp_info.capacity, + value_prop: msp_info.value_prop.clone(), + }); + + Ok(()) + } + + /// This function holds the logic that confirms the sign up of a user as a Backup Storage Provider + /// It updates the storage to add the new Backup Storage Provider, increments the counter of Backup Storage Providers, + /// increments the total capacity of the network (which is the sum of all BSPs capacities), and removes the sign up request + /// from the SignUpRequests mapping + pub fn do_bsp_sign_up( + who: &T::AccountId, + bsp_id: BackupStorageProviderId, + bsp_info: &BackupStorageProvider, + request_block: BlockNumberFor, + ) -> DispatchResult { + // Check that the current block number is not greater than the block number when the request was made plus the maximum amount of + // blocks that we allow the user to wait for valid randomness (should be at least more than an epoch if using BABE's RandomnessFromOneEpochAgo) + // We do this to ensure that a user cannot wait indefinitely for randomness that suits them + ensure!( + frame_system::Pallet::::block_number() + < request_block + T::MaxBlocksForRandomness::get(), + Error::::SignUpRequestExpired + ); + + // Insert the BackupStorageProviderId into the mapping + AccountIdToBackupStorageProviderId::::insert(who, bsp_id); + + // Save the BackupStorageProvider information in storage + BackupStorageProviders::::insert(&bsp_id, bsp_info.clone()); + + // Increment the total capacity of the network (which is the sum of all BSPs capacities) + TotalBspsCapacity::::mutate(|n| match n.checked_add(&bsp_info.capacity) { + Some(new_total_bsp_capacity) => { + *n = new_total_bsp_capacity; + Ok(()) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Overflow)), + })?; + + // Increment the counter of Backup Storage Providers registered + let new_amount_of_bsps = BspCount::::get() + .checked_add(&T::SpCount::one()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + BspCount::::set(new_amount_of_bsps); + + // Remove the sign up request from the SignUpRequests mapping + SignUpRequests::::remove(who); + + // Increase global reputation weight + GlobalBspsReputationWeight::::mutate(|n| { + *n = n.saturating_add(bsp_info.reputation_weight); + }); + + // Emit the corresponding event + Self::deposit_event(Event::::BspSignUpSuccess { + who: who.clone(), + bsp_id, + multiaddresses: bsp_info.multiaddresses.clone(), + capacity: bsp_info.capacity, + }); + + Ok(()) + } + + /// This function holds the logic that checks if a user can sign off as a Main Storage Provider + /// and, if so, updates the storage to remove the user as a Main Storage Provider, decrements the counter of Main Storage Providers, + /// and returns the deposit to the user + pub fn do_msp_sign_off(who: &T::AccountId) -> Result, DispatchError> { + // Check that the signer is registered as a MSP and get its info + let msp_id = + AccountIdToMainStorageProviderId::::get(who).ok_or(Error::::NotRegistered)?; + + let msp = expect_or_err!( + MainStorageProviders::::get(&msp_id), + "MSP is registered (has a MSP ID), it should also have metadata", + Error::::SpRegisteredButDataNotFound + ); + + // Check that the MSP has no storage assigned to it (no buckets or data used by it) + ensure!( + msp.capacity_used == T::StorageDataUnit::zero(), + Error::::StorageStillInUse + ); + + // Update the MSPs storage, removing the signer as an MSP + AccountIdToMainStorageProviderId::::remove(who); + MainStorageProviders::::remove(&msp_id); + + // Return the deposit to the signer (if all funds cannot be returned, it will fail and revert with the reason) + T::NativeBalance::release_all( + &HoldReason::StorageProviderDeposit.into(), + who, + frame_support::traits::tokens::Precision::Exact, + )?; + + // Decrement the storage that holds total amount of MSPs currently in the system + MspCount::::mutate(|n| { + let new_amount_of_msps = n.checked_sub(&T::SpCount::one()); + match new_amount_of_msps { + Some(new_amount_of_msps) => { + *n = new_amount_of_msps; + Ok(msp_id) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), + } + })?; + + Ok(msp_id) + } + + /// This function holds the logic that checks if a user can sign off as a Backup Storage Provider + /// and, if so, updates the storage to remove the user as a Backup Storage Provider, decrements the counter of Backup Storage Providers, + /// decrements the total capacity of the network (which is the sum of all BSPs capacities), and returns the deposit to the user + pub fn do_bsp_sign_off( + who: &T::AccountId, + ) -> Result, DispatchError> { + // Check that the signer is registered as a BSP and get its info + let bsp_id = + AccountIdToBackupStorageProviderId::::get(who).ok_or(Error::::NotRegistered)?; + + let bsp = expect_or_err!( + BackupStorageProviders::::get(&bsp_id), + "BSP is registered (has a BSP ID), it should also have metadata", + Error::::SpRegisteredButDataNotFound + ); + + // Check that the BSP has no storage assigned to it (it is not currently storing any files) + ensure!( + bsp.capacity_used == T::StorageDataUnit::zero(), + Error::::StorageStillInUse + ); + + // Update the BSPs storage, removing the signer as an BSP + AccountIdToBackupStorageProviderId::::remove(who); + BackupStorageProviders::::remove(&bsp_id); + + // Update the total capacity of the network (which is the sum of all BSPs capacities) + TotalBspsCapacity::::mutate(|n| match n.checked_sub(&bsp.capacity) { + Some(new_total_bsp_capacity) => { + *n = new_total_bsp_capacity; + Ok(bsp_id) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), + })?; + + // Return the deposit to the signer (if all funds cannot be returned, it will fail and revert with the reason) + T::NativeBalance::release_all( + &HoldReason::StorageProviderDeposit.into(), + who, + frame_support::traits::tokens::Precision::Exact, + )?; + + // Decrement the storage that holds total amount of BSPs currently in the system + BspCount::::mutate(|n| { + let new_amount_of_bsps = n.checked_sub(&T::SpCount::one()); + match new_amount_of_bsps { + Some(new_amount_of_bsps) => { + *n = new_amount_of_bsps; + Ok(bsp_id) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), + } + })?; + + // Decrease global reputation weight + GlobalBspsReputationWeight::::mutate(|n| { + *n = n.saturating_sub(bsp.reputation_weight); + }); + + Ok(bsp_id) + } + + /// This function is in charge of dispatching the logic to change the capacity of a Storage Provider + /// It checks if the signer is registered as a SP and dispatches the corresponding function + /// that checks if the user can change its capacity and, if so, updates the storage to reflect the new capacity + pub fn do_change_capacity( + who: &T::AccountId, + new_capacity: StorageDataUnit, + ) -> Result<(StorageProviderId, StorageDataUnit), DispatchError> { + // Check that the new capacity is not zero (there are specific functions to sign off as a SP) + ensure!( + new_capacity != T::StorageDataUnit::zero(), + Error::::NewCapacityCantBeZero + ); + + // Check that the signer is registered as a SP and dispatch the corresponding function, getting its old capacity + let old_capacity = if let Some(msp_id) = AccountIdToMainStorageProviderId::::get(who) { + ( + StorageProviderId::MainStorageProvider(msp_id), + Self::do_change_capacity_msp(who, msp_id, new_capacity)?, + ) + } else if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who) { + ( + StorageProviderId::BackupStorageProvider(bsp_id), + Self::do_change_capacity_bsp(who, bsp_id, new_capacity)?, + ) + } else { + return Err(Error::::NotRegistered.into()); + }; + + Ok(old_capacity) + } + + /// This function holds the logic that checks if a user can change its capacity as a Main Storage Provider + /// and, if so, updates the storage to reflect the new capacity, modifying the user's deposit accordingly + /// and returning the old capacity if successful + pub fn do_change_capacity_msp( + account_id: &T::AccountId, + msp_id: MainStorageProviderId, + new_capacity: StorageDataUnit, + ) -> Result, DispatchError> { + // Check that the MSP is registered and get its info + let mut msp = MainStorageProviders::::get(&msp_id).ok_or(Error::::NotRegistered)?; + + // Check that the new capacity is different from the current capacity + ensure!( + new_capacity != msp.capacity, + Error::::NewCapacityEqualsCurrentCapacity + ); + + // Check that enough time has passed since the last capacity change + ensure!( + frame_system::Pallet::::block_number() + >= msp.last_capacity_change + T::MinBlocksBetweenCapacityChanges::get(), + Error::::NotEnoughTimePassed + ); + + // Check that the new capacity is bigger than the minimum required by the runtime + ensure!( + new_capacity >= T::SpMinCapacity::get(), + Error::::StorageTooLow + ); + + // Check that the new capacity is bigger than the current used capacity by the MSP + ensure!( + new_capacity >= msp.capacity_used, + Error::::NewCapacityLessThanUsedStorage + ); + + // Calculate how much deposit will the signer have to pay to register with this amount of data + let capacity_over_minimum = new_capacity + .checked_sub(&T::SpMinCapacity::get()) + .ok_or(Error::::StorageTooLow)?; + let deposit_for_capacity_over_minimum = T::DepositPerData::get() + .checked_mul(&capacity_over_minimum.into()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + let new_deposit = T::SpMinDeposit::get() + .checked_add(&deposit_for_capacity_over_minimum) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Check how much has the MSP already deposited for the current capacity + let current_deposit = T::NativeBalance::balance_on_hold( + &HoldReason::StorageProviderDeposit.into(), + account_id, + ); + + // Check if the new deposit is bigger or smaller than the current deposit + // Note: we do not check directly capacities as, for example, a bigger new_capacity could entail a smaller deposit + // because of changes in storage pricing, so we check the difference in deposits instead + if new_deposit > current_deposit { + // If the new deposit is bigger than the current deposit, more balance has to be held from the user + Self::hold_balance(account_id, current_deposit, new_deposit)?; + } else if new_deposit < current_deposit { + // If the new deposit is smaller than the current deposit, some balance has to be released to the user + Self::release_balance(account_id, current_deposit, new_deposit)?; + } + + // Get the MSP's old capacity + let old_capacity = msp.capacity; + + // Update the MSP's storage, modifying the capacity and the last capacity change block number + msp.capacity = new_capacity; + msp.last_capacity_change = frame_system::Pallet::::block_number(); + MainStorageProviders::::insert(&msp_id, msp); + + // Return the old capacity + Ok(old_capacity) + } + + /// This function holds the logic that checks if a user can change its capacity as a Backup Storage Provider + /// and, if so, updates the storage to reflect the new capacity, modifying the user's deposit accordingly + /// and returning the old capacity if successful + pub fn do_change_capacity_bsp( + account_id: &T::AccountId, + bsp_id: BackupStorageProviderId, + new_capacity: StorageDataUnit, + ) -> Result, DispatchError> { + // Check that the BSP is registered and get its info + let mut bsp = BackupStorageProviders::::get(&bsp_id).ok_or(Error::::NotRegistered)?; + + // Check that the new capacity is different from the current capacity + ensure!( + new_capacity != bsp.capacity, + Error::::NewCapacityEqualsCurrentCapacity + ); + + // Check that enough time has passed since the last capacity change + ensure!( + frame_system::Pallet::::block_number() + >= bsp.last_capacity_change + T::MinBlocksBetweenCapacityChanges::get(), + Error::::NotEnoughTimePassed + ); + + // Check that the new capacity is bigger than the minimum required by the runtime + ensure!( + new_capacity >= T::SpMinCapacity::get(), + Error::::StorageTooLow + ); + + // Check that the new capacity is bigger than the current used capacity by the BSP + ensure!( + new_capacity >= bsp.capacity_used, + Error::::NewCapacityLessThanUsedStorage + ); + + // Calculate how much deposit will the signer have to pay to register with this amount of data + let capacity_over_minimum = new_capacity + .checked_sub(&T::SpMinCapacity::get()) + .ok_or(Error::::StorageTooLow)?; + let deposit_for_capacity_over_minimum = T::DepositPerData::get() + .checked_mul(&capacity_over_minimum.into()) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + let new_deposit = T::SpMinDeposit::get() + .checked_add(&deposit_for_capacity_over_minimum) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Overflow))?; + + // Check how much has the used already deposited for the current capacity + let current_deposit = T::NativeBalance::balance_on_hold( + &HoldReason::StorageProviderDeposit.into(), + account_id, + ); + + // Check if the new deposit is bigger or smaller than the current deposit + // Note: we do not check directly capacities as, for example, a bigger new_capacity could entail a smaller deposit + // because of changes in storage pricing, so we check the difference in deposits instead + if new_deposit > current_deposit { + // If the new deposit is bigger than the current deposit, more balance has to be held from the user + Self::hold_balance(account_id, current_deposit, new_deposit)?; + } else if new_deposit < current_deposit { + // If the new deposit is smaller than the current deposit, some balance has to be released to the user + Self::release_balance(account_id, current_deposit, new_deposit)?; + } + + // Get the BSP's old capacity + let old_capacity = bsp.capacity; + + // Update the total capacity of the network (which is the sum of all BSPs capacities) + if new_capacity > old_capacity { + // If the new capacity is bigger than the old capacity, get the difference doing new_capacity - old_capacity + let difference = new_capacity + .checked_sub(&old_capacity) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; + // Increment the total capacity of the network by the difference + TotalBspsCapacity::::mutate(|n| match n.checked_add(&difference) { + Some(new_total_bsp_capacity) => { + *n = new_total_bsp_capacity; + Ok(()) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Overflow)), + })?; + } else { + // If the new capacity is smaller than the old capacity, get the difference doing old_capacity - new_capacity + let difference = old_capacity + .checked_sub(&new_capacity) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; + // Decrement the total capacity of the network + TotalBspsCapacity::::mutate(|n| match n.checked_sub(&difference) { + Some(new_total_bsp_capacity) => { + *n = new_total_bsp_capacity; + Ok(()) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), + })?; + } + + // Update the BSP's storage, modifying the capacity and the last capacity change block number + bsp.capacity = new_capacity; + bsp.last_capacity_change = frame_system::Pallet::::block_number(); + BackupStorageProviders::::insert(&bsp_id, bsp); + + // Return the old capacity + Ok(old_capacity) + } + + /// Slash a Storage Provider. + /// + /// The amount slashed is calculated as the product of the [`SlashAmountPerChunkOfStorageData`] and the accrued failed proof submissions. + /// The amount is then slashed from the Storage Provider's held deposit and transferred to the treasury. + /// + /// This will return an error when the Storage Provider is not slashable. In the context of the StorageHub protocol, + /// a Storage Provider is slashable when the proofs-dealer pallet has marked them as such. + /// + /// Successfully slashing a Storage Provider should be a free operation. + pub(crate) fn do_slash(provider_id: &HashId) -> DispatchResultWithPostInfo { + let account_id = if let Some(provider) = MainStorageProviders::::get(provider_id) { + provider.owner_account + } else if let Some(provider) = BackupStorageProviders::::get(provider_id) { + provider.owner_account + } else { + return Err(Error::::ProviderNotSlashable.into()); + }; + + // Calculate slashable amount. + // Doubling the slash for each failed proof submission is necessary since it is more probabilistic for a Storage Provider to have + // responded with two file key proofs given a random or custom challenge. + let slashable_amount = Self::compute_worst_case_scenario_slashable_amount(provider_id)?; + + let amount_slashed = T::NativeBalance::transfer_on_hold( + &HoldReason::StorageProviderDeposit.into(), + &account_id, + &T::Treasury::get(), + slashable_amount, + Precision::BestEffort, + Restriction::Free, + Fortitude::Polite, + )?; + + // Clear the accrued failed proof submissions for the Storage Provider + ::clear_accrued_failed_proof_submissions(&provider_id); + + // Provider held funds have been completely depleted. + if amount_slashed <= slashable_amount { + // TODO: Force sign off the provider. + } + + Self::deposit_event(Event::::Slashed { + provider_id: *provider_id, + amount_slashed, + }); + + Ok(Pays::No.into()) + } + + fn hold_balance( + account_id: &T::AccountId, + previous_deposit: BalanceOf, + new_deposit: BalanceOf, + ) -> DispatchResult { + // Get the user's reducible balance + let user_balance = T::NativeBalance::reducible_balance( + account_id, + Preservation::Preserve, + Fortitude::Polite, + ); + + // Get the difference between the new deposit and the current deposit + let difference = new_deposit + .checked_sub(&previous_deposit) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; + + // Check if the user has enough balance to pay the difference + ensure!(user_balance >= difference, Error::::NotEnoughBalance); + + // Check if we can hold the difference from the user + ensure!( + T::NativeBalance::can_hold( + &HoldReason::StorageProviderDeposit.into(), + account_id, + difference, + ), + Error::::CannotHoldDeposit + ); + + // Hold the difference from the user + T::NativeBalance::hold( + &HoldReason::StorageProviderDeposit.into(), + account_id, + difference, + )?; + + Ok(()) + } + + fn release_balance( + account_id: &T::AccountId, + previous_deposit: BalanceOf, + new_deposit: BalanceOf, + ) -> DispatchResult { + // Get the difference between the current deposit and the new deposit + let difference = previous_deposit + .checked_sub(&new_deposit) + .ok_or(DispatchError::Arithmetic(ArithmeticError::Underflow))?; + + // Release the difference from the user + T::NativeBalance::release( + &HoldReason::StorageProviderDeposit.into(), + account_id, + difference, + Precision::Exact, + )?; + + Ok(()) + } + + /// Compute the worst case scenario slashable amount for a Storage Provider. + /// + /// Every failed proof submission counts as for two files which should have been proven due to the low probability of a challenge + /// being an exact match to a file key stored by the Storage Provider. The StorageHub protocol requires the Storage Provider to + /// submit a proof of storage for the neighbouring file keys of the missing challenged file key. + /// + /// The slashing amount is calculated based on an assumption that every file is the maximum size allowed by the protocol. + pub fn compute_worst_case_scenario_slashable_amount( + provider_id: &HashId, + ) -> Result, DispatchError> { + let accrued_failed_submission_count = ::get_accrued_failed_proof_submissions(&provider_id) + .ok_or(Error::::ProviderNotSlashable)?.into(); + + Ok(T::SlashAmountPerMaxFileSize::get() + .saturating_mul(accrued_failed_submission_count) + .saturating_mul(2u32.into())) + } +} + +impl From> for BackupStorageProvider { + fn from(msp: MainStorageProvider) -> Self { + BackupStorageProvider { + capacity: msp.capacity, + capacity_used: msp.capacity_used, + multiaddresses: msp.multiaddresses, + root: T::DefaultMerkleRoot::get(), + last_capacity_change: msp.last_capacity_change, + owner_account: msp.owner_account, + payment_account: msp.payment_account, + reputation_weight: T::StartingReputationWeight::get(), + } + } +} + +/// Implement the ReadBucketsInterface trait for the Storage Providers pallet. +impl ReadBucketsInterface for pallet::Pallet { + type AccountId = T::AccountId; + type BucketId = BucketId; + type BucketNameLimit = T::BucketNameLimit; + type ProviderId = HashId; + type ReadAccessGroupId = T::ReadAccessGroupId; + type MerkleHash = MerklePatriciaRoot; + type StorageDataUnit = T::StorageDataUnit; + + fn bucket_exists(bucket_id: &Self::BucketId) -> bool { + Buckets::::contains_key(bucket_id) + } + + fn derive_bucket_id( + msp_id: &Self::ProviderId, + owner: &Self::AccountId, + bucket_name: BoundedVec, + ) -> Self::BucketId { + let concat = msp_id + .encode() + .into_iter() + .chain( + owner + .encode() + .into_iter() + .chain(bucket_name.encode().into_iter()), + ) + .collect::>(); + + <::Hashing as sp_runtime::traits::Hash>::hash(&concat) + } + + fn get_msp_of_bucket(bucket_id: &Self::BucketId) -> Option { + Buckets::::get(bucket_id).map(|bucket| bucket.msp_id) + } + + fn get_read_access_group_id_of_bucket( + bucket_id: &Self::BucketId, + ) -> Result, DispatchError> { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(bucket.read_access_group_id) + } + + fn is_bucket_owner( + who: &Self::AccountId, + bucket_id: &Self::BucketId, + ) -> Result { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(&bucket.user_id == who) + } + + fn is_bucket_private(bucket_id: &Self::BucketId) -> Result { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(bucket.private) + } + + fn is_bucket_stored_by_msp(msp_id: &Self::ProviderId, bucket_id: &Self::BucketId) -> bool { + if let Some(bucket) = Buckets::::get(bucket_id) { + bucket.msp_id == *msp_id + } else { + false + } + } + + fn get_root_bucket(bucket_id: &Self::BucketId) -> Option { + Buckets::::get(bucket_id).map(|bucket| bucket.root) + } + + fn get_bucket_owner(bucket_id: &Self::BucketId) -> Result { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(bucket.user_id) + } + + fn get_bucket_size(bucket_id: &Self::BucketId) -> Result { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(bucket.size) + } + + fn get_msp_bucket(bucket_id: &Self::BucketId) -> Result { + let bucket = Buckets::::get(bucket_id).ok_or(Error::::BucketNotFound)?; + Ok(bucket.msp_id) + } +} + +/// Implement the MutateBucketsInterface trait for the Storage Providers pallet. +impl MutateBucketsInterface for pallet::Pallet { + type AccountId = T::AccountId; + type BucketId = BucketId; + type ProviderId = HashId; + type ReadAccessGroupId = T::ReadAccessGroupId; + type MerkleHash = MerklePatriciaRoot; + type StorageDataUnit = T::StorageDataUnit; + + fn add_bucket( + provider_id: Self::ProviderId, + user_id: Self::AccountId, + bucket_id: Self::BucketId, + privacy: bool, + maybe_read_access_group_id: Option, + ) -> DispatchResult { + // Check if bucket already exists + ensure!( + !Buckets::::contains_key(&bucket_id), + Error::::BucketAlreadyExists + ); + + // Check if the MSP exists + ensure!( + MainStorageProviders::::contains_key(&provider_id), + Error::::NotRegistered + ); + + let user_balance = T::NativeBalance::reducible_balance( + &user_id, + Preservation::Preserve, + Fortitude::Polite, + ); + + let deposit = T::BucketDeposit::get(); + ensure!(user_balance >= deposit, Error::::NotEnoughBalance); + ensure!( + T::NativeBalance::can_hold(&HoldReason::BucketDeposit.into(), &user_id, deposit), + Error::::CannotHoldDeposit + ); + + // Hold the bucket deposit + T::NativeBalance::hold(&HoldReason::BucketDeposit.into(), &user_id, deposit)?; + + let bucket = Bucket { + root: T::DefaultMerkleRoot::get(), + msp_id: provider_id, + private: privacy, + read_access_group_id: maybe_read_access_group_id, + user_id, + size: T::StorageDataUnit::zero(), + }; + + Buckets::::insert(&bucket_id, &bucket); + + MainStorageProviderIdsToBuckets::::try_append(&provider_id, bucket_id) + .map_err(|_| Error::::AppendBucketToMspFailed)?; + + Ok(()) + } + + fn change_msp_bucket(bucket_id: &Self::BucketId, new_msp: &Self::ProviderId) -> DispatchResult { + Buckets::::try_mutate(bucket_id, |bucket| { + let bucket = bucket.as_mut().ok_or(Error::::BucketNotFound)?; + bucket.msp_id = *new_msp; + + Ok(()) + }) + } + + fn change_root_bucket(bucket_id: Self::BucketId, new_root: Self::MerkleHash) -> DispatchResult { + Buckets::::try_mutate(&bucket_id, |bucket| { + let bucket = bucket.as_mut().ok_or(Error::::BucketNotFound)?; + bucket.root = new_root; + + Ok(()) + }) + } + + fn remove_root_bucket(bucket_id: Self::BucketId) -> DispatchResult { + let bucket = Buckets::::take(&bucket_id).ok_or(Error::::BucketNotFound)?; + + MainStorageProviderIdsToBuckets::::mutate_exists( + &bucket.msp_id, + |buckets| match buckets { + Some(b) => { + b.retain(|b| b != &bucket_id); + + if b.is_empty() { + *buckets = None; + } + } + _ => {} + }, + ); + + // Release the bucket deposit hold + T::NativeBalance::release( + &HoldReason::BucketDeposit.into(), + &bucket.user_id, + T::BucketDeposit::get(), + Precision::Exact, + )?; + + Ok(()) + } + + fn update_bucket_privacy(bucket_id: Self::BucketId, privacy: bool) -> DispatchResult { + Buckets::::try_mutate(&bucket_id, |maybe_bucket| { + let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; + bucket.private = privacy; + + Ok(()) + }) + } + + fn update_bucket_read_access_group_id( + bucket_id: Self::BucketId, + maybe_read_access_group_id: Option, + ) -> DispatchResult { + Buckets::::try_mutate(&bucket_id, |maybe_bucket| { + let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; + bucket.read_access_group_id = maybe_read_access_group_id; + + Ok(()) + }) + } + + fn increase_bucket_size( + bucket_id: &Self::BucketId, + delta: Self::StorageDataUnit, + ) -> DispatchResult { + Buckets::::try_mutate(&bucket_id, |maybe_bucket| { + let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; + bucket.size = bucket.size.saturating_add(delta); + + Ok(()) + }) + } + + fn decrease_bucket_size( + bucket_id: &Self::BucketId, + delta: Self::StorageDataUnit, + ) -> DispatchResult { + Buckets::::try_mutate(&bucket_id, |maybe_bucket| { + let bucket = maybe_bucket.as_mut().ok_or(Error::::BucketNotFound)?; + bucket.size = bucket.size.saturating_sub(delta); + + Ok(()) + }) + } +} + +/// Implement the ReadStorageProvidersInterface trait for the Storage Providers pallet. +impl ReadStorageProvidersInterface for pallet::Pallet { + type ProviderId = HashId; + type StorageDataUnit = T::StorageDataUnit; + type SpCount = T::SpCount; + type MultiAddress = MultiAddress; + type MaxNumberOfMultiAddresses = T::MaxMultiAddressAmount; + type ReputationWeight = T::ReputationWeightType; + + fn is_bsp(who: &Self::ProviderId) -> bool { + BackupStorageProviders::::contains_key(&who) + } + + fn is_msp(who: &Self::ProviderId) -> bool { + MainStorageProviders::::contains_key(&who) + } + + fn get_global_bsps_reputation_weight() -> Self::ReputationWeight { + GlobalBspsReputationWeight::::get() + } + + fn get_bsp_reputation_weight( + who: &Self::ProviderId, + ) -> Result { + if let Some(bsp) = BackupStorageProviders::::get(who) { + Ok(bsp.reputation_weight) + } else { + Err(Error::::NotRegistered.into()) + } + } + + fn get_number_of_bsps() -> Self::SpCount { + Self::get_bsp_count() + } + + fn get_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit { + if let Some(bsp) = BackupStorageProviders::::get(who) { + bsp.capacity + } else if let Some(msp) = MainStorageProviders::::get(who) { + msp.capacity + } else { + Zero::zero() + } + } + + fn get_used_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit { + if let Some(bsp) = BackupStorageProviders::::get(who) { + bsp.capacity_used + } else if let Some(msp) = MainStorageProviders::::get(who) { + msp.capacity_used + } else { + Zero::zero() + } + } + + fn available_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit { + if let Some(bsp) = BackupStorageProviders::::get(who) { + bsp.capacity.saturating_sub(bsp.capacity_used) + } else if let Some(msp) = MainStorageProviders::::get(who) { + msp.capacity.saturating_sub(msp.capacity_used) + } else { + Zero::zero() + } + } + + fn get_bsp_multiaddresses( + who: &Self::ProviderId, + ) -> Result, DispatchError> + { + if let Some(bsp) = BackupStorageProviders::::get(who) { + Ok(BoundedVec::from(bsp.multiaddresses)) + } else { + Err(Error::::NotRegistered.into()) + } + } +} + +/// Implement the MutateStorageProvidersInterface trait for the Storage Providers pallet. +impl MutateStorageProvidersInterface for pallet::Pallet { + type ProviderId = HashId; + type StorageDataUnit = T::StorageDataUnit; + + fn decrease_capacity_used( + provider_id: &Self::ProviderId, + delta: Self::StorageDataUnit, + ) -> DispatchResult { + if MainStorageProviders::::contains_key(&provider_id) { + let mut msp = + MainStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; + msp.capacity_used = msp.capacity_used.saturating_sub(delta); + MainStorageProviders::::insert(&provider_id, msp); + } else if BackupStorageProviders::::contains_key(&provider_id) { + let mut bsp = + BackupStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; + bsp.capacity_used = bsp.capacity_used.saturating_sub(delta); + BackupStorageProviders::::insert(&provider_id, bsp); + UsedBspsCapacity::::mutate(|n| match n.checked_sub(&delta) { + Some(new_total_bsp_capacity) => { + *n = new_total_bsp_capacity; + Ok(()) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Underflow)), + })?; + } else { + return Err(Error::::NotRegistered.into()); + } + Ok(()) + } + + fn increase_capacity_used( + provider_id: &Self::ProviderId, + delta: Self::StorageDataUnit, + ) -> DispatchResult { + if MainStorageProviders::::contains_key(&provider_id) { + let mut msp = + MainStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; + + let new_used_capacity = msp.capacity_used.saturating_add(delta); + if msp.capacity < new_used_capacity { + return Err(Error::::NewUsedCapacityExceedsStorageCapacity.into()); + } + msp.capacity_used = new_used_capacity; + MainStorageProviders::::insert(&provider_id, msp); + } else if BackupStorageProviders::::contains_key(&provider_id) { + let mut bsp = + BackupStorageProviders::::get(&provider_id).ok_or(Error::::NotRegistered)?; + bsp.capacity_used = bsp.capacity_used.saturating_add(delta); + BackupStorageProviders::::insert(&provider_id, bsp); + UsedBspsCapacity::::mutate(|n| match n.checked_add(&delta) { + Some(new_total_bsp_capacity) => { + *n = new_total_bsp_capacity; + Ok(()) + } + None => Err(DispatchError::Arithmetic(ArithmeticError::Overflow)), + })?; + } else { + return Err(Error::::NotRegistered.into()); + } + Ok(()) + } +} + +/// Implement the ReadProvidersInterface for the Storage Providers pallet. +impl ReadProvidersInterface for pallet::Pallet { + type AccountId = T::AccountId; + type Balance = T::NativeBalance; + type MerkleHash = MerklePatriciaRoot; + type ProviderId = HashId; + + fn get_default_root() -> Self::MerkleHash { + T::DefaultMerkleRoot::get() + } + + fn get_owner_account(who: Self::ProviderId) -> Option { + if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(bsp.owner_account) + } else if let Some(msp) = MainStorageProviders::::get(&who) { + Some(msp.owner_account) + } else if let Some(bucket) = Buckets::::get(&who) { + let msp_for_bucket = bucket.msp_id; + if let Some(msp) = MainStorageProviders::::get(&msp_for_bucket) { + Some(msp.owner_account) + } else { + None + } + } else { + None + } + } + + fn get_payment_account(who: Self::ProviderId) -> Option { + if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(bsp.payment_account) + } else if let Some(msp) = MainStorageProviders::::get(&who) { + Some(msp.payment_account) + } else { + None + } + } + + fn get_provider_id(who: Self::AccountId) -> Option { + if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who.clone()) { + Some(bsp_id) + } else if let Some(msp_id) = AccountIdToMainStorageProviderId::::get(who) { + Some(msp_id) + } else { + None + } + } + + fn get_root(who: Self::ProviderId) -> Option { + if let Some(bucket) = Buckets::::get(&who) { + Some(bucket.root) + } else if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(bsp.root) + } else { + None + } + } + + fn get_stake( + who: Self::ProviderId, + ) -> Option<>::Balance> + { + if let Some(bucket) = Buckets::::get(&who) { + match MainStorageProviders::::get(bucket.msp_id) { + Some(related_msp) => Some(T::NativeBalance::balance_on_hold( + &HoldReason::BucketDeposit.into(), + &related_msp.owner_account, + )), + None => None, + } + } else if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(T::NativeBalance::balance_on_hold( + &HoldReason::StorageProviderDeposit.into(), + &bsp.owner_account, + )) + } else { + None + } + } + + fn is_provider(who: Self::ProviderId) -> bool { + BackupStorageProviders::::contains_key(&who) + || MainStorageProviders::::contains_key(&who) + || Buckets::::contains_key(&who) + } +} + +/// Implement the MutateProvidersInterface for the Storage Providers pallet. +impl MutateProvidersInterface for pallet::Pallet { + type MerkleHash = MerklePatriciaRoot; + type ProviderId = HashId; + + fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult { + if let Some(bucket) = Buckets::::get(&who) { + Buckets::::insert( + &who, + Bucket { + root: new_root, + ..bucket + }, + ); + } else if let Some(bsp) = BackupStorageProviders::::get(&who) { + BackupStorageProviders::::insert( + &who, + BackupStorageProvider { + root: new_root, + ..bsp + }, + ); + } else { + return Err(Error::::NotRegistered.into()); + } + Ok(()) + } +} + +/// Implement the ReadChallengeableProvidersInterface for the Storage Providers pallet. +impl ReadChallengeableProvidersInterface for pallet::Pallet { + type AccountId = T::AccountId; + type Balance = T::NativeBalance; + type MerkleHash = MerklePatriciaRoot; + type ProviderId = HashId; + + fn get_default_root() -> Self::MerkleHash { + T::DefaultMerkleRoot::get() + } + + fn get_owner_account(who: Self::ProviderId) -> Option { + if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(bsp.owner_account) + } else { + None + } + } + + fn get_provider_id(who: Self::AccountId) -> Option { + if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who.clone()) { + Some(bsp_id) + } else { + None + } + } + + fn get_root(who: Self::ProviderId) -> Option { + if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(bsp.root) + } else { + None + } + } + + fn get_stake( + who: Self::ProviderId, + ) -> Option<>::Balance> + { + if let Some(bsp) = BackupStorageProviders::::get(&who) { + Some(T::NativeBalance::balance_on_hold( + &HoldReason::StorageProviderDeposit.into(), + &bsp.owner_account, + )) + } else { + None + } + } + + fn is_provider(who: Self::ProviderId) -> bool { + BackupStorageProviders::::contains_key(&who) + } + + fn get_min_stake( + ) -> >::Balance { + T::SpMinDeposit::get() + } +} + +/// Implement the MutateChallengeableProvidersInterface for the Storage Providers pallet. +impl MutateChallengeableProvidersInterface for pallet::Pallet { + type MerkleHash = MerklePatriciaRoot; + type ProviderId = HashId; + + fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult { + if let Some(bsp) = BackupStorageProviders::::get(&who) { + BackupStorageProviders::::insert( + &who, + BackupStorageProvider { + root: new_root, + ..bsp + }, + ); + } else { + return Err(Error::::NotRegistered.into()); + } + Ok(()) + } + + fn update_provider_after_key_removal( + who: &Self::ProviderId, + removed_trie_value: &Vec, + ) -> DispatchResult { + // Get the removed file's metadata + let file_metadata = + <::FileMetadataManager as FileMetadataInterface>::decode( + removed_trie_value, + ) + .map_err(|_| Error::::InvalidEncodedFileMetadata)?; + + // Get the file size as a StorageDataUnit type and the owner as an AccountId type + let file_size = + <::FileMetadataManager as FileMetadataInterface>::get_file_size( + &file_metadata, + ); + let owner = + <::FileMetadataManager as FileMetadataInterface>::get_file_owner( + &file_metadata, + ) + .map_err(|_| Error::::InvalidEncodedAccountId)?; + + // Decrease the used capacity of the provider + Self::decrease_capacity_used(who, file_size)?; + + // Update the provider's payment stream with the user + let previous_amount_provided = + ::get_dynamic_rate_payment_stream_amount_provided( + who, + &owner, + ) + .ok_or(Error::::PaymentStreamNotFound)?; + let new_amount_provided = previous_amount_provided.saturating_sub(file_size); + ::update_dynamic_rate_payment_stream( + who, + &owner, + &new_amount_provided, + )?; + + Ok(()) + } +} + +/// Implement the SystemMetricsInterface for the Storage Providers pallet. +impl SystemMetricsInterface for pallet::Pallet { + type ProvidedUnit = StorageDataUnit; + + fn get_total_capacity() -> Self::ProvidedUnit { + Self::get_total_bsp_capacity() + } + + fn get_total_used_capacity() -> Self::ProvidedUnit { + Self::get_used_bsp_capacity() + } +} + +/// Runtime API implementation for the Storage Providers pallet. +impl Pallet +where + T: pallet::Config, +{ + pub fn get_bsp_info( + bsp_id: &BackupStorageProviderId, + ) -> Result, GetBspInfoError> { + BackupStorageProviders::::get(bsp_id).ok_or(GetBspInfoError::BspNotRegistered) + } + + pub fn get_storage_provider_id(who: &T::AccountId) -> Option> { + if let Some(bsp_id) = AccountIdToBackupStorageProviderId::::get(who) { + Some(StorageProviderId::BackupStorageProvider(bsp_id)) + } else if let Some(msp_id) = AccountIdToMainStorageProviderId::::get(who) { + Some(StorageProviderId::MainStorageProvider(msp_id)) + } else { + None + } + } + + pub fn query_storage_provider_capacity( + provider_id: &ProviderId, + ) -> Result, QueryStorageProviderCapacityError> { + if MainStorageProviders::::contains_key(provider_id) { + let msp = MainStorageProviders::::get(provider_id) + .ok_or(QueryStorageProviderCapacityError::ProviderNotRegistered)?; + Ok(msp.capacity) + } else if BackupStorageProviders::::contains_key(provider_id) { + let bsp = BackupStorageProviders::::get(provider_id) + .ok_or(QueryStorageProviderCapacityError::ProviderNotRegistered)?; + Ok(bsp.capacity) + } else { + Err(QueryStorageProviderCapacityError::ProviderNotRegistered) + } + } + + pub fn query_available_storage_capacity( + provider_id: &ProviderId, + ) -> Result, QueryAvailableStorageCapacityError> { + if MainStorageProviders::::contains_key(provider_id) { + let msp = MainStorageProviders::::get(provider_id) + .ok_or(QueryAvailableStorageCapacityError::ProviderNotRegistered)?; + Ok(msp.capacity.saturating_sub(msp.capacity_used)) + } else if BackupStorageProviders::::contains_key(provider_id) { + let bsp = BackupStorageProviders::::get(provider_id) + .ok_or(QueryAvailableStorageCapacityError::ProviderNotRegistered)?; + Ok(bsp.capacity.saturating_sub(bsp.capacity_used)) + } else { + Err(QueryAvailableStorageCapacityError::ProviderNotRegistered) + } + } + + pub fn query_earliest_change_capacity_block( + provider_id: &BackupStorageProviderId, + ) -> Result, QueryEarliestChangeCapacityBlockError> { + let bsp = BackupStorageProviders::::get(provider_id) + .ok_or(QueryEarliestChangeCapacityBlockError::ProviderNotRegistered)?; + Ok(bsp.last_capacity_change + T::MinBlocksBetweenCapacityChanges::get()) + } + + pub fn get_worst_case_scenario_slashable_amount( + provider_id: &ProviderId, + ) -> Result, DispatchError> { + Self::compute_worst_case_scenario_slashable_amount(provider_id) + } + + pub fn get_slash_amount_per_max_file_size() -> BalanceOf { + T::SlashAmountPerMaxFileSize::get() + } + + pub fn query_msp_id_of_bucket_id( + bucket_id: &BucketId, + ) -> Result, QueryMspIdOfBucketIdError> { + let bucket = + Buckets::::get(bucket_id).ok_or(QueryMspIdOfBucketIdError::BucketNotFound)?; + Ok(bucket.msp_id) + } +} diff --git a/primitives/file-key-verifier/src/tests.rs b/primitives/file-key-verifier/src/tests.rs index b630c4cf3..84264607c 100644 --- a/primitives/file-key-verifier/src/tests.rs +++ b/primitives/file-key-verifier/src/tests.rs @@ -1,1061 +1,1061 @@ -use codec::Encode; -use num_bigint::BigUint; -use rand::Rng; -use shp_file_metadata::ChunkId; -use shp_file_metadata::FileMetadata; -use shp_file_metadata::Fingerprint; -use shp_traits::{AsCompact, CommitmentVerifier}; -use sp_runtime::traits::{BlakeTwo256, Keccak256}; -use sp_trie::{ - recorder::Recorder, CompactProof, LayoutV1, MemoryDB, TrieDBBuilder, TrieDBMutBuilder, - TrieLayout, TrieMut, -}; -use trie_db::{Hasher, Trie, TrieIterator}; - -use crate::{FileKeyProof, FileKeyVerifier}; - -/// The hash type of trie node keys -type HashT = <::Hash as Hasher>::Out; - -const H_LENGTH: usize = 32; -const CHUNK_SIZE: u64 = 2; -const FILE_SIZE: u64 = 2u64.pow(11); -const SIZE_TO_CHALLENGES: u64 = FILE_SIZE / 10; - -/// Build a Merkle Patricia Trie simulating a file split in chunks. -fn build_merkle_patricia_trie( - random: bool, - file_size: u64, -) -> ( - MemoryDB, - HashT, - FileMetadata, -) -where - ::Out: for<'a> TryFrom<&'a [u8; 32]>, -{ - let user_id = b"user_id"; - let bucket = b"bucket"; - let file_name = if random { - String::from("random_file") + &file_size.to_string() - } else { - String::from("large_file") + &file_size.to_string() - }; - let file_name = file_name.as_bytes(); - - println!("Chunking file into 32 byte chunks and building Merkle Patricia Trie..."); - - let data = if random { - create_random_test_data(file_size) - } else { - create_sequential_test_data(file_size) - }; - - let (memdb, fingerprint) = merklise_data::(&data); - - let file_path = format!( - "{}-{}-{}.txt", - String::from_utf8(user_id.to_vec()).unwrap(), - String::from_utf8(bucket.to_vec()).unwrap(), - String::from_utf8(file_name.to_vec()).unwrap() - ); - - let file_metadata = FileMetadata { - owner: user_id.to_vec(), - bucket_id: bucket.to_vec(), - location: file_path.as_bytes().to_vec(), - file_size, - fingerprint: fingerprint - .as_ref() - .try_into() - .expect("slice with incorrect length"), - }; - - let file_key = file_metadata.file_key::(); - - (memdb, file_key, file_metadata) -} - -/// Chunk data into [`CHUNK_SIZE`] byte chunks and store them in a Merkle Patricia Trie. -/// -/// The trie is stored in a [`MemoryDB`] and the [`Root`] is returned. -pub fn merklise_data(data: &[u8]) -> (MemoryDB, HashT) { - let mut buf = [0; CHUNK_SIZE as usize]; - let mut chunks = Vec::new(); - - // create list of key-value pairs consisting of chunk metadata and chunk data - let mut chunk_i = 0u64; - let mut offset = 0; - - while offset < data.len() { - // Determine the end of the current chunk - let end = std::cmp::min(offset + CHUNK_SIZE as usize, data.len()); - - // Copy the current chunk from data into the buffer - buf[..end - offset].copy_from_slice(&data[offset..end]); - - // Store the current chunk as a vector in the chunks vector - chunks.push((chunk_i, buf[..end - offset].to_vec())); - - // Increment the chunk index - chunk_i += 1; - - // Move the offset forward by CHUNK_SIZE - offset += CHUNK_SIZE as usize; - } - - let mut memdb = MemoryDB::::default(); - let mut root = Default::default(); - { - let mut t = TrieDBMutBuilder::::new(&mut memdb, &mut root).build(); - for (k, v) in &chunks { - t.insert(&ChunkId::new(*k).as_trie_key(), v).unwrap(); - } - } - - println!("Data fingerprint (root): {:?}", root); - - (memdb, root) -} - -/// Generate sequential test data of a given size. -pub fn create_sequential_test_data(size: u64) -> Vec { - let mut i = 0u8; - let content: Vec = (0..size) - .map(|_| { - i = i % (u8::MAX - 1); - i += 1; - i - }) - .collect(); - content -} - -/// Generate random test data of a given size. -pub fn create_random_test_data(size: u64) -> Vec { - let mut rng = rand::thread_rng(); - let content: Vec = (0..size).map(|_| rng.gen()).collect(); - content -} - -fn generate_challenges( - challenges_count: u32, - chunks_count: u64, -) -> (Vec>, Vec>) { - let mut challenges = Vec::new(); - let mut chunks_challenged = Vec::new(); - - for i in 0..challenges_count { - // Generate challenge as a hash. - let hash_arg = "chunk".to_string() + i.to_string().as_str(); - let challenge = T::Hash::hash(hash_arg.as_bytes()); - challenges.push(challenge); - - // Calculate the modulo of the challenge with the number of chunks in the file. - // The challenge is a big endian 32 byte array. - let challenged_chunk = BigUint::from_bytes_be(challenge.as_ref()) % chunks_count; - let challenged_chunk: u64 = challenged_chunk.try_into().expect( - "This is impossible. The modulo of a number with a u64 should always fit in a u64.", - ); - - chunks_challenged.push(AsCompact(challenged_chunk).encode()); - } - - (challenges, chunks_challenged) -} - -#[test] -fn generate_trie_works() { - let (memdb, _file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - let trie = TrieDBBuilder::>::new(&memdb, &root).build(); - - println!("Trie root: {:?}", trie.root()); - - // Count the number of leaves in the trie. - // This should be the same as the number of chunks in the file. - let mut leaves_count = 0; - let mut trie_iter = trie.iter().unwrap(); - while let Some(_) = trie_iter.next() { - leaves_count += 1; - } - - let chunks_count = file_metadata.chunks_count(); - - assert_eq!(leaves_count, chunks_count); - - println!("Number of leaves: {:?}", leaves_count); -} - -#[test] -fn commitment_verifier_many_challenges_success() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (mut challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - let proven_challenges = FileKeyVerifier::< - LayoutV1, - { BlakeTwo256::LENGTH }, - { CHUNK_SIZE }, - { SIZE_TO_CHALLENGES }, - >::verify_proof(&file_key, &challenges, &file_key_proof) - .expect("Failed to verify proof"); - - assert_eq!( - proven_challenges.into_iter().collect::>().sort(), - challenges.sort() - ); -} - -#[test] -fn commitment_verifier_many_challenges_random_file_success() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(true, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (mut challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - let proven_challenges = FileKeyVerifier::< - LayoutV1, - { BlakeTwo256::LENGTH }, - { CHUNK_SIZE }, - { SIZE_TO_CHALLENGES }, - >::verify_proof(&file_key, &challenges, &file_key_proof) - .expect("Failed to verify proof"); - - assert_eq!( - proven_challenges.into_iter().collect::>().sort(), - challenges.sort() - ); -} - -#[test] -fn commitment_verifier_many_challenges_keccak_success() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (mut challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - let proven_challenges = FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof) - .expect("Failed to verify proof"); - - assert_eq!( - proven_challenges.into_iter().collect::>().sort(), - challenges.sort() - ); -} - -#[test] -fn commitment_verifier_many_challenges_one_chunk_success() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, CHUNK_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (mut challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - assert!(chunks_count == 1); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - let proven_challenges = FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof) - .expect("Failed to verify proof"); - - assert_eq!( - proven_challenges.into_iter().collect::>().sort(), - challenges.sort() - ); -} - -#[test] -fn commitment_verifier_many_challenges_two_chunks_success() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, CHUNK_SIZE + 1); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (mut challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - assert!(chunks_count == 2); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - let proven_challenges = FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof) - .expect("Failed to verify proof"); - - assert_eq!( - proven_challenges.into_iter().collect::>().sort(), - challenges.sort() - ); -} - -#[test] -fn commitment_verifier_no_challenges_failure() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let (challenges, chunks_challenged) = - generate_challenges::>(0, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("No challenges provided.".into()) - ); -} - -#[test] -fn commitment_verifier_wrong_number_of_challenges_failure() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, chunks_challenged) = - generate_challenges::>(challenges_count - 1, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("Number of challenges does not match the number of chunks that should have been challenged for a file of this size.".into()) - ); -} - -#[test] -fn commitment_verifier_wrong_file_key_failure() { - let (memdb, _file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&Default::default(), &challenges, &file_key_proof), - Err("File key provided should be equal to the file key constructed from the proof.".into()) - ); -} - -#[test] -fn commitment_verifier_wrong_file_key_no_compact_encoding_failure() { - let (memdb, _file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - let file_key = BlakeTwo256::hash( - &[ - &file_metadata.owner.encode(), - &file_metadata.location.encode(), - &file_metadata.file_size.encode(), - &file_metadata.fingerprint.encode(), - ] - .into_iter() - .flatten() - .cloned() - .collect::>(), - ); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - { BlakeTwo256::LENGTH }, - { CHUNK_SIZE }, - { SIZE_TO_CHALLENGES }, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("File key provided should be equal to the file key constructed from the proof.".into()) - ); -} - -#[test] -fn commitment_verifier_wrong_file_key_vec_fingerprint_failure() { - let (memdb, _file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - let file_key = BlakeTwo256::hash( - &[ - &file_metadata.owner.encode(), - &file_metadata.location.encode(), - &AsCompact(file_metadata.file_size).encode(), - &file_metadata.fingerprint.as_hash().to_vec().encode(), - ] - .into_iter() - .flatten() - .cloned() - .collect::>(), - ); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - let (challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - { BlakeTwo256::LENGTH }, - { CHUNK_SIZE }, - { SIZE_TO_CHALLENGES }, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("File key provided should be equal to the file key constructed from the proof.".into()) - ); -} - -#[test] -fn commitment_verifier_wrong_file_key_encoding_as_bytes_failure() { - let (memdb, _file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - let file_key = BlakeTwo256::hash( - &[ - &file_metadata.owner, - &file_metadata.location, - &file_metadata.file_size.to_be_bytes().to_vec(), - &file_metadata.fingerprint.as_hash().to_vec(), - ] - .into_iter() - .flatten() - .cloned() - .collect::>(), - ); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("File key provided should be equal to the file key constructed from the proof.".into()) - ); -} - -#[test] -fn commitment_verifier_empty_proof_failure() { - let (_memdb, _file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - - let file_key = file_metadata.file_key::(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, _) = - generate_challenges::>(challenges_count, chunks_count); - - // Generate proof - let proof = CompactProof { - encoded_nodes: vec![], - }; - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("Failed to convert proof to memory DB, root doesn't match with expected.".into()) - ); -} - -#[test] -fn commitment_verifier_empty_fingerprint_failure() { - let (_memdb, _file_key, mut file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - - file_metadata.fingerprint = Fingerprint::default(); - - let file_key = file_metadata.file_key::(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, _) = - generate_challenges::>(challenges_count, chunks_count); - - // Generate proof - let proof = CompactProof { - encoded_nodes: vec![], - }; - let file_key_proof = FileKeyProof { - file_metadata: FileMetadata { - fingerprint: Fingerprint::default(), - ..file_metadata - }, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("Failed to convert proof to memory DB, root doesn't match with expected.".into()) - ); -} - -#[test] -fn commitment_verifier_challenge_missing_from_proof_failure() { - let (memdb, file_key, file_metadata) = - build_merkle_patricia_trie::>(false, FILE_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (mut challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Change one challenge so that the proof is invalid. - challenges[0] = BlakeTwo256::hash("invalid_challenge".as_bytes()); - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("The proof is invalid. The challenge does not exist in the trie.".into()) - ); -} - -#[test] -fn commitment_verifier_challenge_with_none_value_failure() { - let (memdb, _file_key, mut file_metadata) = - build_merkle_patricia_trie::>(false, 2 * CHUNK_SIZE); - let root = file_metadata.fingerprint.as_hash().into(); - - file_metadata.file_size = FILE_SIZE; - - let file_key = file_metadata.file_key::(); - - // This recorder is used to record accessed keys in the trie and later generate a proof for them. - let recorder: Recorder = Recorder::default(); - - let chunks_count = file_metadata.chunks_count(); - let challenges_count = file_metadata.chunks_to_check(); - - let (challenges, chunks_challenged) = - generate_challenges::>(challenges_count, chunks_count); - - { - // Creating trie inside of closure to drop it before generating proof. - let mut trie_recorder = recorder.as_trie_recorder(root); - let trie = TrieDBBuilder::>::new(&memdb, &root) - .with_recorder(&mut trie_recorder) - .build(); - - // Create an iterator over the leaf nodes. - let mut iter = trie.into_double_ended_iter().unwrap(); - - for challenged_chunk in chunks_challenged { - // Seek to the challenge key. - iter.seek(&challenged_chunk).unwrap(); - - // Read the leaf node. - iter.next(); - } - } - - // Generate proof - let proof = recorder - .drain_storage_proof() - .to_compact_proof::(root) - .expect("Failed to create compact proof from recorder"); - // Using wrong file size (larger than it actually is) - let file_key_proof = FileKeyProof { - file_metadata, - proof, - }; - - // Verify proof - assert_eq!( - FileKeyVerifier::< - LayoutV1, - H_LENGTH, - CHUNK_SIZE, - SIZE_TO_CHALLENGES, - >::verify_proof(&file_key, &challenges, &file_key_proof), - Err("The proof is invalid. The challenged chunk was not found in the trie, possibly because the challenged chunk has an index higher than the amount of chunks in the file. This should not be possible, provided that the size of the file (and therefore number of chunks) is correct.".into()) - ); -} - -#[test] -fn chunk_id_convert_to_and_from_trie_key() { - let chunk_id = ChunkId::new(0x12345678u64); - let chunk_id_bytes = chunk_id.as_trie_key(); - let chunk_id_decoded = ChunkId::from_trie_key(&chunk_id_bytes).unwrap(); - assert_eq!(chunk_id, chunk_id_decoded); -} +use codec::Encode; +use num_bigint::BigUint; +use rand::Rng; +use shp_file_metadata::ChunkId; +use shp_file_metadata::FileMetadata; +use shp_file_metadata::Fingerprint; +use shp_traits::{AsCompact, CommitmentVerifier}; +use sp_runtime::traits::{BlakeTwo256, Keccak256}; +use sp_trie::{ + recorder::Recorder, CompactProof, LayoutV1, MemoryDB, TrieDBBuilder, TrieDBMutBuilder, + TrieLayout, TrieMut, +}; +use trie_db::{Hasher, Trie, TrieIterator}; + +use crate::{FileKeyProof, FileKeyVerifier}; + +/// The hash type of trie node keys +type HashT = <::Hash as Hasher>::Out; + +const H_LENGTH: usize = 32; +const CHUNK_SIZE: u64 = 2; +const FILE_SIZE: u64 = 2u64.pow(11); +const SIZE_TO_CHALLENGES: u64 = FILE_SIZE / 10; + +/// Build a Merkle Patricia Trie simulating a file split in chunks. +fn build_merkle_patricia_trie( + random: bool, + file_size: u64, +) -> ( + MemoryDB, + HashT, + FileMetadata, +) +where + ::Out: for<'a> TryFrom<&'a [u8; 32]>, +{ + let user_id = b"user_id"; + let bucket = b"bucket"; + let file_name = if random { + String::from("random_file") + &file_size.to_string() + } else { + String::from("large_file") + &file_size.to_string() + }; + let file_name = file_name.as_bytes(); + + println!("Chunking file into 32 byte chunks and building Merkle Patricia Trie..."); + + let data = if random { + create_random_test_data(file_size) + } else { + create_sequential_test_data(file_size) + }; + + let (memdb, fingerprint) = merklise_data::(&data); + + let file_path = format!( + "{}-{}-{}.txt", + String::from_utf8(user_id.to_vec()).unwrap(), + String::from_utf8(bucket.to_vec()).unwrap(), + String::from_utf8(file_name.to_vec()).unwrap() + ); + + let file_metadata = FileMetadata { + owner: user_id.to_vec(), + bucket_id: bucket.to_vec(), + location: file_path.as_bytes().to_vec(), + file_size, + fingerprint: fingerprint + .as_ref() + .try_into() + .expect("slice with incorrect length"), + }; + + let file_key = file_metadata.file_key::(); + + (memdb, file_key, file_metadata) +} + +/// Chunk data into [`CHUNK_SIZE`] byte chunks and store them in a Merkle Patricia Trie. +/// +/// The trie is stored in a [`MemoryDB`] and the [`Root`] is returned. +pub fn merklise_data(data: &[u8]) -> (MemoryDB, HashT) { + let mut buf = [0; CHUNK_SIZE as usize]; + let mut chunks = Vec::new(); + + // create list of key-value pairs consisting of chunk metadata and chunk data + let mut chunk_i = 0u64; + let mut offset = 0; + + while offset < data.len() { + // Determine the end of the current chunk + let end = std::cmp::min(offset + CHUNK_SIZE as usize, data.len()); + + // Copy the current chunk from data into the buffer + buf[..end - offset].copy_from_slice(&data[offset..end]); + + // Store the current chunk as a vector in the chunks vector + chunks.push((chunk_i, buf[..end - offset].to_vec())); + + // Increment the chunk index + chunk_i += 1; + + // Move the offset forward by CHUNK_SIZE + offset += CHUNK_SIZE as usize; + } + + let mut memdb = MemoryDB::::default(); + let mut root = Default::default(); + { + let mut t = TrieDBMutBuilder::::new(&mut memdb, &mut root).build(); + for (k, v) in &chunks { + t.insert(&ChunkId::new(*k).as_trie_key(), v).unwrap(); + } + } + + println!("Data fingerprint (root): {:?}", root); + + (memdb, root) +} + +/// Generate sequential test data of a given size. +pub fn create_sequential_test_data(size: u64) -> Vec { + let mut i = 0u8; + let content: Vec = (0..size) + .map(|_| { + i = i % (u8::MAX - 1); + i += 1; + i + }) + .collect(); + content +} + +/// Generate random test data of a given size. +pub fn create_random_test_data(size: u64) -> Vec { + let mut rng = rand::thread_rng(); + let content: Vec = (0..size).map(|_| rng.gen()).collect(); + content +} + +fn generate_challenges( + challenges_count: u32, + chunks_count: u64, +) -> (Vec>, Vec>) { + let mut challenges = Vec::new(); + let mut chunks_challenged = Vec::new(); + + for i in 0..challenges_count { + // Generate challenge as a hash. + let hash_arg = "chunk".to_string() + i.to_string().as_str(); + let challenge = T::Hash::hash(hash_arg.as_bytes()); + challenges.push(challenge); + + // Calculate the modulo of the challenge with the number of chunks in the file. + // The challenge is a big endian 32 byte array. + let challenged_chunk = BigUint::from_bytes_be(challenge.as_ref()) % chunks_count; + let challenged_chunk: u64 = challenged_chunk.try_into().expect( + "This is impossible. The modulo of a number with a u64 should always fit in a u64.", + ); + + chunks_challenged.push(AsCompact(challenged_chunk).encode()); + } + + (challenges, chunks_challenged) +} + +#[test] +fn generate_trie_works() { + let (memdb, _file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + let trie = TrieDBBuilder::>::new(&memdb, &root).build(); + + println!("Trie root: {:?}", trie.root()); + + // Count the number of leaves in the trie. + // This should be the same as the number of chunks in the file. + let mut leaves_count = 0; + let mut trie_iter = trie.iter().unwrap(); + while let Some(_) = trie_iter.next() { + leaves_count += 1; + } + + let chunks_count = file_metadata.chunks_count(); + + assert_eq!(leaves_count, chunks_count); + + println!("Number of leaves: {:?}", leaves_count); +} + +#[test] +fn commitment_verifier_many_challenges_success() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (mut challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + let proven_challenges = FileKeyVerifier::< + LayoutV1, + { BlakeTwo256::LENGTH }, + { CHUNK_SIZE }, + { SIZE_TO_CHALLENGES }, + >::verify_proof(&file_key, &challenges, &file_key_proof) + .expect("Failed to verify proof"); + + assert_eq!( + proven_challenges.into_iter().collect::>().sort(), + challenges.sort() + ); +} + +#[test] +fn commitment_verifier_many_challenges_random_file_success() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(true, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (mut challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + let proven_challenges = FileKeyVerifier::< + LayoutV1, + { BlakeTwo256::LENGTH }, + { CHUNK_SIZE }, + { SIZE_TO_CHALLENGES }, + >::verify_proof(&file_key, &challenges, &file_key_proof) + .expect("Failed to verify proof"); + + assert_eq!( + proven_challenges.into_iter().collect::>().sort(), + challenges.sort() + ); +} + +#[test] +fn commitment_verifier_many_challenges_keccak_success() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (mut challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + let proven_challenges = FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof) + .expect("Failed to verify proof"); + + assert_eq!( + proven_challenges.into_iter().collect::>().sort(), + challenges.sort() + ); +} + +#[test] +fn commitment_verifier_many_challenges_one_chunk_success() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, CHUNK_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (mut challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + assert!(chunks_count == 1); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + let proven_challenges = FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof) + .expect("Failed to verify proof"); + + assert_eq!( + proven_challenges.into_iter().collect::>().sort(), + challenges.sort() + ); +} + +#[test] +fn commitment_verifier_many_challenges_two_chunks_success() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, CHUNK_SIZE + 1); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (mut challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + assert!(chunks_count == 2); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + let proven_challenges = FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof) + .expect("Failed to verify proof"); + + assert_eq!( + proven_challenges.into_iter().collect::>().sort(), + challenges.sort() + ); +} + +#[test] +fn commitment_verifier_no_challenges_failure() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let (challenges, chunks_challenged) = + generate_challenges::>(0, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("No challenges provided.".into()) + ); +} + +#[test] +fn commitment_verifier_wrong_number_of_challenges_failure() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, chunks_challenged) = + generate_challenges::>(challenges_count - 1, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("Number of challenges does not match the number of chunks that should have been challenged for a file of this size.".into()) + ); +} + +#[test] +fn commitment_verifier_wrong_file_key_failure() { + let (memdb, _file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&Default::default(), &challenges, &file_key_proof), + Err("File key provided should be equal to the file key constructed from the proof.".into()) + ); +} + +#[test] +fn commitment_verifier_wrong_file_key_no_compact_encoding_failure() { + let (memdb, _file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + let file_key = BlakeTwo256::hash( + &[ + &file_metadata.owner.encode(), + &file_metadata.location.encode(), + &file_metadata.file_size.encode(), + &file_metadata.fingerprint.encode(), + ] + .into_iter() + .flatten() + .cloned() + .collect::>(), + ); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + { BlakeTwo256::LENGTH }, + { CHUNK_SIZE }, + { SIZE_TO_CHALLENGES }, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("File key provided should be equal to the file key constructed from the proof.".into()) + ); +} + +#[test] +fn commitment_verifier_wrong_file_key_vec_fingerprint_failure() { + let (memdb, _file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + let file_key = BlakeTwo256::hash( + &[ + &file_metadata.owner.encode(), + &file_metadata.location.encode(), + &AsCompact(file_metadata.file_size).encode(), + &file_metadata.fingerprint.as_hash().to_vec().encode(), + ] + .into_iter() + .flatten() + .cloned() + .collect::>(), + ); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + let (challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + { BlakeTwo256::LENGTH }, + { CHUNK_SIZE }, + { SIZE_TO_CHALLENGES }, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("File key provided should be equal to the file key constructed from the proof.".into()) + ); +} + +#[test] +fn commitment_verifier_wrong_file_key_encoding_as_bytes_failure() { + let (memdb, _file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + let file_key = BlakeTwo256::hash( + &[ + &file_metadata.owner, + &file_metadata.location, + &file_metadata.file_size.to_be_bytes().to_vec(), + &file_metadata.fingerprint.as_hash().to_vec(), + ] + .into_iter() + .flatten() + .cloned() + .collect::>(), + ); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("File key provided should be equal to the file key constructed from the proof.".into()) + ); +} + +#[test] +fn commitment_verifier_empty_proof_failure() { + let (_memdb, _file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + + let file_key = file_metadata.file_key::(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, _) = + generate_challenges::>(challenges_count, chunks_count); + + // Generate proof + let proof = CompactProof { + encoded_nodes: vec![], + }; + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("Failed to convert proof to memory DB, root doesn't match with expected.".into()) + ); +} + +#[test] +fn commitment_verifier_empty_fingerprint_failure() { + let (_memdb, _file_key, mut file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + + file_metadata.fingerprint = Fingerprint::default(); + + let file_key = file_metadata.file_key::(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, _) = + generate_challenges::>(challenges_count, chunks_count); + + // Generate proof + let proof = CompactProof { + encoded_nodes: vec![], + }; + let file_key_proof = FileKeyProof { + file_metadata: FileMetadata { + fingerprint: Fingerprint::default(), + ..file_metadata + }, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("Failed to convert proof to memory DB, root doesn't match with expected.".into()) + ); +} + +#[test] +fn commitment_verifier_challenge_missing_from_proof_failure() { + let (memdb, file_key, file_metadata) = + build_merkle_patricia_trie::>(false, FILE_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (mut challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Change one challenge so that the proof is invalid. + challenges[0] = BlakeTwo256::hash("invalid_challenge".as_bytes()); + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("The proof is invalid. The challenge does not exist in the trie.".into()) + ); +} + +#[test] +fn commitment_verifier_challenge_with_none_value_failure() { + let (memdb, _file_key, mut file_metadata) = + build_merkle_patricia_trie::>(false, 2 * CHUNK_SIZE); + let root = file_metadata.fingerprint.as_hash().into(); + + file_metadata.file_size = FILE_SIZE; + + let file_key = file_metadata.file_key::(); + + // This recorder is used to record accessed keys in the trie and later generate a proof for them. + let recorder: Recorder = Recorder::default(); + + let chunks_count = file_metadata.chunks_count(); + let challenges_count = file_metadata.chunks_to_check(); + + let (challenges, chunks_challenged) = + generate_challenges::>(challenges_count, chunks_count); + + { + // Creating trie inside of closure to drop it before generating proof. + let mut trie_recorder = recorder.as_trie_recorder(root); + let trie = TrieDBBuilder::>::new(&memdb, &root) + .with_recorder(&mut trie_recorder) + .build(); + + // Create an iterator over the leaf nodes. + let mut iter = trie.into_double_ended_iter().unwrap(); + + for challenged_chunk in chunks_challenged { + // Seek to the challenge key. + iter.seek(&challenged_chunk).unwrap(); + + // Read the leaf node. + iter.next(); + } + } + + // Generate proof + let proof = recorder + .drain_storage_proof() + .to_compact_proof::(root) + .expect("Failed to create compact proof from recorder"); + // Using wrong file size (larger than it actually is) + let file_key_proof = FileKeyProof { + file_metadata, + proof, + }; + + // Verify proof + assert_eq!( + FileKeyVerifier::< + LayoutV1, + H_LENGTH, + CHUNK_SIZE, + SIZE_TO_CHALLENGES, + >::verify_proof(&file_key, &challenges, &file_key_proof), + Err("The proof is invalid. The challenged chunk was not found in the trie, possibly because the challenged chunk has an index higher than the amount of chunks in the file. This should not be possible, provided that the size of the file (and therefore number of chunks) is correct.".into()) + ); +} + +#[test] +fn chunk_id_convert_to_and_from_trie_key() { + let chunk_id = ChunkId::new(0x12345678u64); + let chunk_id_bytes = chunk_id.as_trie_key(); + let chunk_id_decoded = ChunkId::from_trie_key(&chunk_id_bytes).unwrap(); + assert_eq!(chunk_id, chunk_id_decoded); +} diff --git a/primitives/file-metadata/src/lib.rs b/primitives/file-metadata/src/lib.rs index 4df39a4cc..3c1dc8900 100644 --- a/primitives/file-metadata/src/lib.rs +++ b/primitives/file-metadata/src/lib.rs @@ -1,286 +1,286 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use codec::{Compact, Decode, Encode}; -use core::fmt::Debug; -use num_bigint::BigUint; -use scale_info::TypeInfo; -use serde::{Deserialize, Serialize}; -use shp_traits::{AsCompact, FileMetadataInterface}; -use sp_arithmetic::traits::SaturatedConversion; -use sp_core::{crypto::AccountId32, H256}; -use sp_std::vec::Vec; - -/// A struct containing all the information about a file in StorageHub. -/// -/// It also provides utility functions like calculating the number of chunks in a file, -/// the last chunk ID, and generating a file key for a given file metadata. -#[derive(Clone, Debug, PartialEq, Eq, TypeInfo, Encode, Decode, Serialize, Deserialize)] -pub struct FileMetadata -{ - pub owner: Vec, - pub bucket_id: Vec, - pub location: Vec, - #[codec(compact)] - pub file_size: u64, - pub fingerprint: Fingerprint, -} - -/// Maximum number of chunks a Storage Provider would need to prove for a file. -const MAX_CHUNKS_TO_CHECK: u32 = 10; - -impl - FileMetadata -{ - pub fn new( - owner: Vec, - bucket_id: Vec, - location: Vec, - size: u64, - fingerprint: Fingerprint, - ) -> Self { - Self { - owner, - bucket_id, - location, - file_size: size, - fingerprint, - } - } - - pub fn file_key(&self) -> T::Out { - T::hash(self.encode().as_slice()) - } - - pub fn chunks_to_check(&self) -> u32 { - // In here we downcast and saturate to u32, as we're going to saturate to MAX_CHUNKS_TO_CHECK anyway. - let chunks = (self.file_size / SIZE_TO_CHALLENGES - + (self.file_size % SIZE_TO_CHALLENGES != 0) as u64) - .saturated_into::(); - - // Cap chunks to check at MAX_CHUNKS_TO_CHECK. - // This maximum number of chunks is based on the issue raised in the audit https://github.com/Moonsong-Labs/internal-storage-hub-design-audit/issues/11. - chunks.min(MAX_CHUNKS_TO_CHECK) - } - - pub fn chunks_count(&self) -> u64 { - self.file_size / CHUNK_SIZE + (self.file_size % CHUNK_SIZE != 0) as u64 - } - - pub fn last_chunk_id(&self) -> ChunkId { - ChunkId::new(self.chunks_count() - 1) - } -} - -/// Interface for encoding and decoding FileMetadata, used by the runtime. -impl - FileMetadataInterface for FileMetadata -{ - type AccountId = AccountId32; - type Metadata = Self; - type StorageDataUnit = u64; - - fn encode(metadata: &Self::Metadata) -> Vec { - metadata.encode() - } - - fn decode(data: &[u8]) -> Result { - as Decode>::decode(&mut &data[..]) - } - - fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { - metadata.file_size - } - - fn get_file_owner(metadata: &Self::Metadata) -> Result { - Self::AccountId::decode(&mut metadata.owner.as_slice()) - } -} - -/// FileKey is the identifier for a file. -/// Computed as the hash of the SCALE-encoded FileMetadata. -#[derive(Encode, Decode, Clone, Copy, Debug, PartialEq, Eq, Hash)] -pub struct FileKey(Hash); - -impl From> for FileKey { - fn from(hash: Hash) -> Self { - Self(hash) - } -} - -impl Into> for FileKey { - fn into(self) -> Hash { - self.0 - } -} - -impl From for FileKey<32> { - fn from(hash: H256) -> Self { - let mut file_key = [0u8; 32]; - file_key.copy_from_slice(hash.as_bytes()); - Self(file_key) - } -} - -impl Into for FileKey<32> { - fn into(self) -> H256 { - H256::from_slice(&self.0) - } -} - -impl From<&[u8]> for FileKey { - fn from(bytes: &[u8]) -> Self { - let mut hash = [0u8; H_LENGTH]; - hash.copy_from_slice(&bytes); - Self(hash) - } -} - -impl AsRef<[u8]> for FileKey { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -impl From<&[u8; H_LENGTH]> for FileKey { - fn from(bytes: &[u8; H_LENGTH]) -> Self { - Self(*bytes) - } -} - -impl AsRef<[u8; H_LENGTH]> for FileKey { - fn as_ref(&self) -> &[u8; H_LENGTH] { - &self.0 - } -} - -/// A fingerprint is something that uniquely identifies the content of a file. -/// In the context of this crate, a fingerprint is the root hash of a Merkle Patricia Trie -/// of the merklised file. -#[derive(Encode, Decode, Clone, Copy, Debug, PartialEq, Eq, TypeInfo)] -pub struct Fingerprint(Hash); - -impl Default for Fingerprint { - fn default() -> Self { - Self([0u8; H_LENGTH]) - } -} - -impl Serialize for Fingerprint { - fn serialize(&self, serializer: S) -> Result - where - S: serde::ser::Serializer, - { - self.0.to_vec().serialize(serializer) - } -} - -impl<'de, const H_LENGTH: usize> Deserialize<'de> for Fingerprint { - fn deserialize(deserializer: D) -> Result - where - D: serde::de::Deserializer<'de>, - { - let vec = Vec::::deserialize(deserializer)?; - let mut hash = [0u8; H_LENGTH]; - hash.copy_from_slice(&vec); - Ok(Self(hash)) - } -} - -impl Fingerprint { - /// Returns the hash of the fingerprint. - pub fn as_hash(&self) -> Hash { - self.0 - } -} - -impl From> for Fingerprint { - fn from(hash: Hash) -> Self { - Self(hash) - } -} - -impl Into> for Fingerprint { - fn into(self) -> Hash { - self.0 - } -} - -impl From<&[u8]> for Fingerprint { - fn from(bytes: &[u8]) -> Self { - let mut hash = [0u8; H_LENGTH]; - hash.copy_from_slice(&bytes); - Self(hash) - } -} - -impl AsRef<[u8]> for Fingerprint { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -/// Typed u64 representing the index of a file [`Chunk`]. Indexed from 0. -#[derive(Debug, Clone, Copy, PartialEq, Eq, TypeInfo, Encode, Decode, Ord, PartialOrd, Hash)] -pub struct ChunkId(u64); - -#[derive(Debug, Clone, PartialEq, Eq)] -pub enum ChunkIdError { - InvalidChunkId, -} - -impl ChunkId { - pub fn new(id: u64) -> Self { - Self(id) - } - - pub fn from_challenge(challenge: &[u8], chunks_count: u64) -> Self { - // Calculate the modulo of the challenge with the number of chunks in the file. - // The challenge is a big endian 32 byte array. - let challenged_chunk = BigUint::from_bytes_be(challenge) % chunks_count; - ChunkId::new(challenged_chunk.try_into().expect( - "This is impossible. The modulo of a number with a u64 should always fit in a u64.", - )) - } - - pub fn as_u64(&self) -> u64 { - self.0 - } - - pub fn as_trie_key(&self) -> Vec { - AsCompact(self.0).encode() - } - - pub fn from_trie_key(key: &Vec) -> Result { - let id = Compact::::decode(&mut &key[..]) - .map_err(|_| ChunkIdError::InvalidChunkId)? - .0; - Ok(Self(id)) - } -} - -// TODO: this is currently a placeholder in order to define Storage interface. -/// Typed chunk of a file. This is what is stored in the leaf of the stored Merkle tree. -pub type Chunk = Vec; - -/// A chunk with its ID. This is the actual data stored in the Merkle tree for each chunk. -#[derive(Clone, Debug, Encode, Decode, PartialEq)] -pub struct ChunkWithId { - pub chunk_id: ChunkId, - pub data: Chunk, -} - -/// A leaf in the in a trie. -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Leaf { - pub key: K, - pub data: D, -} - -impl Leaf { - pub fn new(key: K, data: D) -> Self { - Self { key, data } - } -} - -/// A hash type of arbitrary length `H_LENGTH`. -pub type Hash = [u8; H_LENGTH]; +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Compact, Decode, Encode}; +use core::fmt::Debug; +use num_bigint::BigUint; +use scale_info::TypeInfo; +use serde::{Deserialize, Serialize}; +use shp_traits::{AsCompact, FileMetadataInterface}; +use sp_arithmetic::traits::SaturatedConversion; +use sp_core::{crypto::AccountId32, H256}; +use sp_std::vec::Vec; + +/// A struct containing all the information about a file in StorageHub. +/// +/// It also provides utility functions like calculating the number of chunks in a file, +/// the last chunk ID, and generating a file key for a given file metadata. +#[derive(Clone, Debug, PartialEq, Eq, TypeInfo, Encode, Decode, Serialize, Deserialize)] +pub struct FileMetadata +{ + pub owner: Vec, + pub bucket_id: Vec, + pub location: Vec, + #[codec(compact)] + pub file_size: u64, + pub fingerprint: Fingerprint, +} + +/// Maximum number of chunks a Storage Provider would need to prove for a file. +const MAX_CHUNKS_TO_CHECK: u32 = 10; + +impl + FileMetadata +{ + pub fn new( + owner: Vec, + bucket_id: Vec, + location: Vec, + size: u64, + fingerprint: Fingerprint, + ) -> Self { + Self { + owner, + bucket_id, + location, + file_size: size, + fingerprint, + } + } + + pub fn file_key(&self) -> T::Out { + T::hash(self.encode().as_slice()) + } + + pub fn chunks_to_check(&self) -> u32 { + // In here we downcast and saturate to u32, as we're going to saturate to MAX_CHUNKS_TO_CHECK anyway. + let chunks = (self.file_size / SIZE_TO_CHALLENGES + + (self.file_size % SIZE_TO_CHALLENGES != 0) as u64) + .saturated_into::(); + + // Cap chunks to check at MAX_CHUNKS_TO_CHECK. + // This maximum number of chunks is based on the issue raised in the audit https://github.com/Moonsong-Labs/internal-storage-hub-design-audit/issues/11. + chunks.min(MAX_CHUNKS_TO_CHECK) + } + + pub fn chunks_count(&self) -> u64 { + self.file_size / CHUNK_SIZE + (self.file_size % CHUNK_SIZE != 0) as u64 + } + + pub fn last_chunk_id(&self) -> ChunkId { + ChunkId::new(self.chunks_count() - 1) + } +} + +/// Interface for encoding and decoding FileMetadata, used by the runtime. +impl + FileMetadataInterface for FileMetadata +{ + type AccountId = AccountId32; + type Metadata = Self; + type StorageDataUnit = u64; + + fn encode(metadata: &Self::Metadata) -> Vec { + metadata.encode() + } + + fn decode(data: &[u8]) -> Result { + as Decode>::decode(&mut &data[..]) + } + + fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit { + metadata.file_size + } + + fn get_file_owner(metadata: &Self::Metadata) -> Result { + Self::AccountId::decode(&mut metadata.owner.as_slice()) + } +} + +/// FileKey is the identifier for a file. +/// Computed as the hash of the SCALE-encoded FileMetadata. +#[derive(Encode, Decode, Clone, Copy, Debug, PartialEq, Eq, Hash)] +pub struct FileKey(Hash); + +impl From> for FileKey { + fn from(hash: Hash) -> Self { + Self(hash) + } +} + +impl Into> for FileKey { + fn into(self) -> Hash { + self.0 + } +} + +impl From for FileKey<32> { + fn from(hash: H256) -> Self { + let mut file_key = [0u8; 32]; + file_key.copy_from_slice(hash.as_bytes()); + Self(file_key) + } +} + +impl Into for FileKey<32> { + fn into(self) -> H256 { + H256::from_slice(&self.0) + } +} + +impl From<&[u8]> for FileKey { + fn from(bytes: &[u8]) -> Self { + let mut hash = [0u8; H_LENGTH]; + hash.copy_from_slice(&bytes); + Self(hash) + } +} + +impl AsRef<[u8]> for FileKey { + fn as_ref(&self) -> &[u8] { + &self.0 + } +} + +impl From<&[u8; H_LENGTH]> for FileKey { + fn from(bytes: &[u8; H_LENGTH]) -> Self { + Self(*bytes) + } +} + +impl AsRef<[u8; H_LENGTH]> for FileKey { + fn as_ref(&self) -> &[u8; H_LENGTH] { + &self.0 + } +} + +/// A fingerprint is something that uniquely identifies the content of a file. +/// In the context of this crate, a fingerprint is the root hash of a Merkle Patricia Trie +/// of the merklised file. +#[derive(Encode, Decode, Clone, Copy, Debug, PartialEq, Eq, TypeInfo)] +pub struct Fingerprint(Hash); + +impl Default for Fingerprint { + fn default() -> Self { + Self([0u8; H_LENGTH]) + } +} + +impl Serialize for Fingerprint { + fn serialize(&self, serializer: S) -> Result + where + S: serde::ser::Serializer, + { + self.0.to_vec().serialize(serializer) + } +} + +impl<'de, const H_LENGTH: usize> Deserialize<'de> for Fingerprint { + fn deserialize(deserializer: D) -> Result + where + D: serde::de::Deserializer<'de>, + { + let vec = Vec::::deserialize(deserializer)?; + let mut hash = [0u8; H_LENGTH]; + hash.copy_from_slice(&vec); + Ok(Self(hash)) + } +} + +impl Fingerprint { + /// Returns the hash of the fingerprint. + pub fn as_hash(&self) -> Hash { + self.0 + } +} + +impl From> for Fingerprint { + fn from(hash: Hash) -> Self { + Self(hash) + } +} + +impl Into> for Fingerprint { + fn into(self) -> Hash { + self.0 + } +} + +impl From<&[u8]> for Fingerprint { + fn from(bytes: &[u8]) -> Self { + let mut hash = [0u8; H_LENGTH]; + hash.copy_from_slice(&bytes); + Self(hash) + } +} + +impl AsRef<[u8]> for Fingerprint { + fn as_ref(&self) -> &[u8] { + &self.0 + } +} + +/// Typed u64 representing the index of a file [`Chunk`]. Indexed from 0. +#[derive(Debug, Clone, Copy, PartialEq, Eq, TypeInfo, Encode, Decode, Ord, PartialOrd, Hash)] +pub struct ChunkId(u64); + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum ChunkIdError { + InvalidChunkId, +} + +impl ChunkId { + pub fn new(id: u64) -> Self { + Self(id) + } + + pub fn from_challenge(challenge: &[u8], chunks_count: u64) -> Self { + // Calculate the modulo of the challenge with the number of chunks in the file. + // The challenge is a big endian 32 byte array. + let challenged_chunk = BigUint::from_bytes_be(challenge) % chunks_count; + ChunkId::new(challenged_chunk.try_into().expect( + "This is impossible. The modulo of a number with a u64 should always fit in a u64.", + )) + } + + pub fn as_u64(&self) -> u64 { + self.0 + } + + pub fn as_trie_key(&self) -> Vec { + AsCompact(self.0).encode() + } + + pub fn from_trie_key(key: &Vec) -> Result { + let id = Compact::::decode(&mut &key[..]) + .map_err(|_| ChunkIdError::InvalidChunkId)? + .0; + Ok(Self(id)) + } +} + +// TODO: this is currently a placeholder in order to define Storage interface. +/// Typed chunk of a file. This is what is stored in the leaf of the stored Merkle tree. +pub type Chunk = Vec; + +/// A chunk with its ID. This is the actual data stored in the Merkle tree for each chunk. +#[derive(Clone, Debug, Encode, Decode, PartialEq)] +pub struct ChunkWithId { + pub chunk_id: ChunkId, + pub data: Chunk, +} + +/// A leaf in the in a trie. +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct Leaf { + pub key: K, + pub data: D, +} + +impl Leaf { + pub fn new(key: K, data: D) -> Self { + Self { key, data } + } +} + +/// A hash type of arbitrary length `H_LENGTH`. +pub type Hash = [u8; H_LENGTH]; diff --git a/primitives/traits/src/lib.rs b/primitives/traits/src/lib.rs index 6dc8d121c..e4748c24e 100644 --- a/primitives/traits/src/lib.rs +++ b/primitives/traits/src/lib.rs @@ -1,1059 +1,1059 @@ -#![cfg_attr(not(feature = "std"), no_std)] - -use codec::{Decode, Encode, FullCodec, HasCompact}; -use frame_support::{ - dispatch::DispatchResult, - pallet_prelude::{MaxEncodedLen, MaybeSerializeDeserialize, Member}, - sp_runtime::traits::{CheckEqual, MaybeDisplay, SimpleBitOps}, - traits::{fungible, Incrementable}, - BoundedBTreeSet, Parameter, -}; -use scale_info::{prelude::fmt::Debug, TypeInfo}; -use sp_core::Get; -use sp_runtime::{ - traits::{ - AtLeast32BitUnsigned, CheckedAdd, CheckedDiv, CheckedMul, CheckedSub, Hash, One, - Saturating, Zero, - }, - BoundedVec, DispatchError, -}; -use sp_std::{collections::btree_set::BTreeSet, vec::Vec}; - -#[cfg(feature = "std")] -pub trait MaybeDebug: Debug {} -#[cfg(feature = "std")] -impl MaybeDebug for T {} -#[cfg(not(feature = "std"))] -pub trait MaybeDebug {} -#[cfg(not(feature = "std"))] -impl MaybeDebug for T {} - -#[derive(Encode)] -pub struct AsCompact(#[codec(compact)] pub T); - -/// A trait to read information about buckets registered in the system, such as their owner and -/// the MSP ID of the MSP that's storing it, etc. -pub trait ReadBucketsInterface { - /// Type that can be used to identify accounts. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - - /// Type of the registered Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of the buckets' IDs. - type BucketId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type that represents the unit of storage data in which the capacity is measured. - type StorageDataUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Copy - + MaxEncodedLen - + HasCompact - + Into; - - /// Type of the root of the buckets. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of a bucket's read-access group's ID (which is the read-access NFT collection's ID). - type ReadAccessGroupId: Member + Parameter + MaxEncodedLen + Copy + Incrementable; - - /// Byte limit of a bucket's name. - type BucketNameLimit: Get; - - /// Check if a bucket exists. - fn bucket_exists(bucket_id: &Self::BucketId) -> bool; - - /// Return if a bucket (represented by its Bucket ID) is stored by a specific MSP. - fn is_bucket_stored_by_msp(msp_id: &Self::ProviderId, bucket_id: &Self::BucketId) -> bool; - - /// Get the read-access group's ID of a bucket, if there is one. - fn get_read_access_group_id_of_bucket( - bucket_id: &Self::BucketId, - ) -> Result, DispatchError>; - - /// Get the MSP ID of the MSP that's storing a bucket. - fn get_msp_of_bucket(bucket_id: &Self::BucketId) -> Option; - - /// Check if an account is the owner of a bucket. - fn is_bucket_owner( - who: &Self::AccountId, - bucket_id: &Self::BucketId, - ) -> Result; - - /// Check if a bucket is private. - fn is_bucket_private(bucket_id: &Self::BucketId) -> Result; - - /// Derive the Bucket Id of a bucket, from its MSP, owner and name. - fn derive_bucket_id( - msp_id: &Self::ProviderId, - owner: &Self::AccountId, - bucket_name: BoundedVec, - ) -> Self::BucketId; - - /// Get the root of a bucket. - fn get_root_bucket(bucket_id: &Self::BucketId) -> Option; - - /// Get the bucket owner. - fn get_bucket_owner(bucket_id: &Self::BucketId) -> Result; - - /// Get bucket size. - fn get_bucket_size(bucket_id: &Self::BucketId) -> Result; - - /// Get the MSP of a bucket. - fn get_msp_bucket(bucket_id: &Self::BucketId) -> Result; -} - -/// A trait to change the state of buckets registered in the system, such as updating their privacy -/// settings, changing their root, etc. -pub trait MutateBucketsInterface { - /// Type that can be used to identify accounts. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - - /// Type of the registered Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of the buckets' IDs. - type BucketId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type that represents the unit of storage data in which the capacity is measured. - type StorageDataUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Copy - + MaxEncodedLen - + HasCompact - + Into; - - /// Type of a bucket's read-access group's ID (which is the read-access NFT collection's ID). - type ReadAccessGroupId: Member + Parameter + MaxEncodedLen + Copy + Incrementable; - - /// Type of the root and keys in the Merkle Patricia Forest of a - /// registered Provider. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Update a bucket's privacy setting. - fn update_bucket_privacy(bucket_id: Self::BucketId, privacy: bool) -> DispatchResult; - - /// Update a bucket's read-access group's ID. If None is passed, no one other than the owner - /// will be able to access the bucket. - fn update_bucket_read_access_group_id( - bucket_id: Self::BucketId, - maybe_read_access_group_id: Option, - ) -> DispatchResult; - - /// Add a new bucket under the MSP corresponding to `provider_id`, that will be owned by the account `user_id`. - /// If `privacy` is true, the bucket will be private and optionally the `read_access_group_id` will be used to - /// determine the collection of NFTs that can access the bucket. - fn add_bucket( - provider_id: Self::ProviderId, - user_id: Self::AccountId, - bucket_id: Self::BucketId, - privacy: bool, - maybe_read_access_group_id: Option, - ) -> DispatchResult; - - /// Change MSP of a bucket. - fn change_msp_bucket(bucket_id: &Self::BucketId, new_msp: &Self::ProviderId) -> DispatchResult; - - /// Change the root of a bucket. - fn change_root_bucket(bucket_id: Self::BucketId, new_root: Self::MerkleHash) -> DispatchResult; - - /// Remove a root from a bucket of a MSP, removing the whole bucket from storage. - fn remove_root_bucket(bucket_id: Self::BucketId) -> DispatchResult; - - /// Increase the size of a bucket. - fn increase_bucket_size( - bucket_id: &Self::BucketId, - delta: Self::StorageDataUnit, - ) -> DispatchResult; - - /// Decrease the size of a bucket. - fn decrease_bucket_size( - bucket_id: &Self::BucketId, - delta: Self::StorageDataUnit, - ) -> DispatchResult; -} - -/// A trait to read information about Storage Providers present in the -/// `storage-providers` pallet, such as if they are a BSP or MSP, their multiaddresses, etc. -pub trait ReadStorageProvidersInterface { - /// Type of the registered Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type that represents the unit of storage data in which the capacity is measured. - type StorageDataUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Copy - + MaxEncodedLen - + HasCompact - + Into; - - /// Type of the counter of the total number of registered Storage Providers. - type SpCount: Parameter - + Member - + MaybeSerializeDeserialize - + Ord - + AtLeast32BitUnsigned - + FullCodec - + Copy - + Default - + Debug - + scale_info::TypeInfo - + MaxEncodedLen; - - /// Type that represents a MultiAddress of a Storage Provider. - type MultiAddress: Parameter - + MaybeSerializeDeserialize - + Debug - + Ord - + Default - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Maximum number of MultiAddresses a provider can have. - type MaxNumberOfMultiAddresses: Get; - /// Type that represents the reputation weight of a Storage Provider. - type ReputationWeight: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + Ord - + FullCodec - + Copy - + Debug - + scale_info::TypeInfo - + MaxEncodedLen - + CheckedAdd - + One - + Saturating - + PartialOrd - + sp_runtime::traits::Zero; - - /// Check if provider is a BSP. - fn is_bsp(who: &Self::ProviderId) -> bool; - - /// Check if provider is a MSP. - fn is_msp(who: &Self::ProviderId) -> bool; - - /// Get the total global reputation weight of all BSPs. - fn get_global_bsps_reputation_weight() -> Self::ReputationWeight; - - /// Get the reputation weight of a registered Provider. - fn get_bsp_reputation_weight( - who: &Self::ProviderId, - ) -> Result; - - /// Get number of registered BSPs. - fn get_number_of_bsps() -> Self::SpCount; - - /// Get the capacity of a Provider (MSP or BSP). - fn get_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit; - - /// Get the capacity currently in use of a Provider (MSP or BSP). - fn get_used_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit; - - /// Get available capacity of a Provider (MSP or BSP). - fn available_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit; - - /// Get multiaddresses of a BSP. - fn get_bsp_multiaddresses( - who: &Self::ProviderId, - ) -> Result, DispatchError>; -} - -/// A trait to mutate the state of Storage Providers present in the `storage-providers` pallet. -/// This includes increasing and decreasing the data used by a Storage Provider. -pub trait MutateStorageProvidersInterface { - /// Type of the registered Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type that represents the unit of storage data in which the capacity is measured. - type StorageDataUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Copy - + MaxEncodedLen - + HasCompact - + Into; - - /// Increase the used capacity of a Storage Provider (MSP or BSP). To be called when confirming - /// that it's storing a new file. - fn increase_capacity_used( - provider_id: &Self::ProviderId, - delta: Self::StorageDataUnit, - ) -> DispatchResult; - - /// Decrease the used capacity of a Storage Provider (MSP or BSP). To be called when confirming - /// that it has deleted a previously stored file. - fn decrease_capacity_used( - provider_id: &Self::ProviderId, - delta: Self::StorageDataUnit, - ) -> DispatchResult; -} - -/// A trait to read information about generic challengeable Providers, such as their ID, owner, root, -/// stake, etc. -pub trait ReadChallengeableProvidersInterface { - /// Type that can be used to identify accounts. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - - /// Type of the registered challengeable Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of the root and keys in the Merkle Patricia Forest of a - /// registered Provider. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// The Balance type of the runtime, which should correspond to the type of - /// the staking balance of a registered Provider. - type Balance: fungible::Inspect + fungible::hold::Inspect; - - /// Check if an account is a registered challengeable Provider. - fn is_provider(who: Self::ProviderId) -> bool; - - /// Get the Provider Id from Account Id, if it is a registered challengeable Provider. - fn get_provider_id(who: Self::AccountId) -> Option; - - /// Get the Account Id of the owner of a registered challengeable Provider. - fn get_owner_account(who: Self::ProviderId) -> Option; - - /// Get the root for a registered challengeable Provider. - fn get_root(who: Self::ProviderId) -> Option; - - /// Get the default value for the root of a Merkle Patricia Forest. - fn get_default_root() -> Self::MerkleHash; - - /// Get the stake for a registered challengeable Provider. - fn get_stake( - who: Self::ProviderId, - ) -> Option<>::Balance>; - - /// Get the minimum stake for a registered challengeable Provider. - fn get_min_stake() -> >::Balance; -} - -/// A trait to mutate the state of challengeable Providers, such as updating their root. -pub trait MutateChallengeableProvidersInterface { - /// Type of the registered challengeable Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of the root and keys in the Merkle Patricia Forest of a - /// registered Provider. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Update the root for a registered challengeable Provider. - fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult; - - /// Update the information of a registered challengeable Provider after a successful trie element removal. - fn update_provider_after_key_removal( - who: &Self::ProviderId, - removed_trie_value: &Vec, - ) -> DispatchResult; -} - -/// A trait to read information about generic Providers, such as their ID, owner, root, stake, etc. -pub trait ReadProvidersInterface { - /// Type that can be used to identify accounts. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - - /// Type of the registered Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of the root and keys in the Merkle Patricia Forest of a - /// registered Provider. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// The Balance type of the runtime, which should correspond to the type of - /// the staking balance of a registered Provider. - type Balance: fungible::Inspect + fungible::hold::Inspect; - - /// Check if an account is a registered Provider. - fn is_provider(who: Self::ProviderId) -> bool; - - /// Get the Provider Id from Account Id, if it is a registered Provider. - fn get_provider_id(who: Self::AccountId) -> Option; - - /// Get the Account Id of the owner of a registered Provider. - fn get_owner_account(who: Self::ProviderId) -> Option; - - /// Get the Account Id of the payment account of a registered Provider. - fn get_payment_account(who: Self::ProviderId) -> Option; - - /// Get the root for a registered Provider. - fn get_root(who: Self::ProviderId) -> Option; - - /// Get the default value for the root of a Merkle Patricia Forest. - fn get_default_root() -> Self::MerkleHash; - - /// Get the stake for a registered Provider. - fn get_stake( - who: Self::ProviderId, - ) -> Option<>::Balance>; -} - -/// A trait to mutate the state of a generic Provider, such as updating their root. -pub trait MutateProvidersInterface { - /// Type of the registered Providers' IDs. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Type of the root and keys in the Merkle Patricia Forest of a - /// registered Provider. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + FullCodec; - - /// Update the root for a registered Provider. - fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult; -} - -/// A trait to get system-wide metrics, such as the total available capacity of the network and -/// its total used capacity. -pub trait SystemMetricsInterface { - /// Type of the unit provided by Providers - type ProvidedUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Copy - + MaxEncodedLen - + HasCompact - + Into; - - /// Get the total available capacity of units of the network. - fn get_total_capacity() -> Self::ProvidedUnit; - - /// Get the total used capacity of units of the network. - fn get_total_used_capacity() -> Self::ProvidedUnit; -} - -/// The interface for the ProofsDealer pallet. -/// -/// It is abstracted over the `Provider` type, `Proof` type, `ForestProof` type and `MerkleHash` type. -/// It provides the functions to verify a proof, submit a new proof challenge and -/// submit a new challenge with priority. -pub trait ProofsDealerInterface { - /// The type which represents a registered Provider. - type ProviderId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - /// The type that represents a proof just for the Merkle Patricia Forest. - type ForestProof: Parameter + Member + Debug; - /// The type that represents a proof for an inner key (leaf) of the Merkle Patricia Forest. - type KeyProof: Parameter + Member + Debug; - /// The type corresponding to the root and keys in the Merkle Patricia Forest of a - /// registered Provider. - type MerkleHash: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + MaybeDisplay - + SimpleBitOps - + Ord - + Default - + Copy - + CheckEqual - + AsRef<[u8]> - + AsMut<[u8]> - + MaxEncodedLen - + PartialEq - + Eq - + Clone - + FullCodec; - /// The hashing system (algorithm) being used for the Merkle Patricia Forests (e.g. Blake2). - type MerkleHashing: Hash; - /// The type that represents the randomness output. - type RandomnessOutput: Parameter + Member + Debug; - /// The numerical type used to represent ticks. - /// The Proofs Dealer pallet uses ticks to keep track of time, for things like sending out - /// challenges and making sure that Providers respond to them in time - type TickNumber: Parameter - + Member - + AtLeast32BitUnsigned - + Debug - + Default - + Copy - + MaxEncodedLen - + FullCodec - + MaybeSerializeDeserialize - + Zero - + One - + CheckedAdd - + CheckedSub - + CheckedDiv - + CheckedMul - + Saturating; - - /// Verify a proof just for the Merkle Patricia Forest, for a given Provider. - /// - /// This only verifies that something is included in the forest of the Provider. It is not a full - /// proof of the Provider's data. - fn verify_forest_proof( - provider_id: &Self::ProviderId, - challenges: &[Self::MerkleHash], - proof: &Self::ForestProof, - ) -> Result, DispatchError>; - - /// Verify a proof for a Merkle Patricia Forest, without requiring it to be associated with a Provider. - /// - /// WARNING: This function should be used with caution, as it does not verify the root against a specific Provider. - /// This means this function should only be used when the root is previously known to be correct, and in NO case should - /// it be used to verify proofs associated with a challengeable Provider. That is what `verify_forest_proof` is for. - /// - /// This only verifies that something is included in the forest that has the given root. It is not a full - /// proof of its data. - fn verify_generic_forest_proof( - root: &Self::MerkleHash, - challenges: &[Self::MerkleHash], - proof: &Self::ForestProof, - ) -> Result, DispatchError>; - - /// Verify a proof for a key within the Merkle Patricia Forest of a Provider. - /// - /// This only verifies a proof of the data at a specific key within the Provider's forest. It does - /// not verify if that key is included in the Merkle Patricia Forest of the Provider. - fn verify_key_proof( - key: &Self::MerkleHash, - challenges: &[Self::MerkleHash], - proof: &Self::KeyProof, - ) -> Result, DispatchError>; - - /// Submit a new proof challenge. - fn challenge(key_challenged: &Self::MerkleHash) -> DispatchResult; - - /// Submit a new challenge with priority. - fn challenge_with_priority( - key_challenged: &Self::MerkleHash, - mutation: Option, - ) -> DispatchResult; - - /// Given a randomness seed, a provider id and a count, generate a list of challenges. - fn generate_challenges_from_seed( - seed: Self::RandomnessOutput, - provider_id: &Self::ProviderId, - count: u32, - ) -> Vec; - - /// Apply delta (mutations) to the partial trie based on the proof and the commitment. - /// - /// The new root is returned. - fn apply_delta( - provider_id: &Self::ProviderId, - mutations: &[(Self::MerkleHash, TrieMutation)], - proof: &Self::ForestProof, - ) -> Result; - - /// Apply delta (mutations) to the partial trie based on the proof and the commitment. - /// - /// WARNING: This function should be used with caution, as it does not verify the root against a specific Provider. - /// This means this function should only be used when the root is previously known to be correct, and in NO case should - /// it be used to verify proofs associated with a challengeable Provider. That is what `apply_delta` is for. - /// - /// The new root is returned. - fn generic_apply_delta( - root: &Self::MerkleHash, - mutations: &[(Self::MerkleHash, TrieMutation)], - proof: &Self::ForestProof, - ) -> Result; - - /// Initialise a Provider's challenge cycle. - /// - /// Sets the last tick the Provider submitted a proof for to the current tick and sets the - /// deadline for submitting a proof to the current tick + the Provider's period (based on its - /// stake) + the challenges tick tolerance. - fn initialise_challenge_cycle(who: &Self::ProviderId) -> DispatchResult; - - /// Get the current tick. - /// - /// The Proofs Dealer pallet uses ticks to keep track of time, for things like sending out - /// challenges and making sure that Providers respond to them in time. - fn get_current_tick() -> Self::TickNumber; -} - -/// A trait to verify proofs based on commitments and challenges. -/// -/// It is abstracted over the `Proof`, `Commitment` and `Challenge` types. -pub trait CommitmentVerifier { - /// The type that represents the proof. - type Proof: Parameter + Member + Debug; - /// The type that represents the commitment (e.g. a Merkle root) - type Commitment: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>; - /// The type that represents the challenges which a proof is being verified against. - type Challenge: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>; - - /// Verify a proof based on a commitment and a set of challenges. - /// - /// The function returns a vector of keys that are verified by the proof, or an error if the proof - /// is invalid. - fn verify_proof( - commitment: &Self::Commitment, - challenges: &[Self::Challenge], - proof: &Self::Proof, - ) -> Result, DispatchError>; -} - -/// Enum representing the type of mutation (addition or removal of a key). -#[derive(Encode, Decode, TypeInfo, Clone, PartialEq, Debug)] -pub enum TrieMutation { - Add(TrieAddMutation), - Remove(TrieRemoveMutation), -} - -#[derive(Encode, Decode, TypeInfo, Clone, PartialEq, Debug, Default)] -pub struct TrieAddMutation { - pub value: Vec, -} - -impl Into for TrieAddMutation { - fn into(self) -> TrieMutation { - TrieMutation::Add(self) - } -} - -impl TrieAddMutation { - pub fn new(value: Vec) -> Self { - Self { value } - } -} - -#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Clone, PartialEq, Debug, Default)] -pub struct TrieRemoveMutation; - -impl Into for TrieRemoveMutation { - fn into(self) -> TrieMutation { - TrieMutation::Remove(self) - } -} - -/// A trait to apply mutations (delta) to a partial trie based on a proof and a commitment. -pub trait TrieProofDeltaApplier { - /// The type that represents the proof. - type Proof: Parameter + Member + Debug; - /// The type that represents the keys (e.g. a Merkle root, node keys, etc.) - type Key: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>; - - /// Apply mutations (delta) to a partial trie based on a proof and a commitment. - /// - /// Returns the MemoryDB of the trie generated by the proof, the new root computed after applying the mutations - /// and a vector of the key-value pairs that were changed by the mutations. - fn apply_delta( - root: &Self::Key, - mutations: &[(Self::Key, TrieMutation)], - proof: &Self::Proof, - ) -> Result< - ( - sp_trie::MemoryDB, - Self::Key, - Vec<(Self::Key, Option>)>, - ), - DispatchError, - >; -} - -/// Interface used by the file system pallet in order to read storage from NFTs pallet (avoiding tight coupling). -pub trait InspectCollections { - type CollectionId; - - /// Check if a collection exists. - fn collection_exists(collection_id: &Self::CollectionId) -> bool; -} - -/// The interface of the Payment Streams pallet. -/// -/// It is to be used by other pallets to interact with the Payment Streams pallet to create, update and delete payment streams. -pub trait PaymentStreamsInterface { - /// The type which represents the balance of the runtime. - type Balance: fungible::Inspect - + fungible::Mutate - + fungible::hold::Inspect - + fungible::hold::Mutate; - /// The type which represents a User account identifier. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - /// The type which represents a Provider identifier. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + Ord - + MaxEncodedLen - + Copy; - /// The type which represents a block number. - type BlockNumber: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - /// The type which represents a fixed-rate payment stream. - type FixedRatePaymentStream: Encode - + Decode - + Parameter - + Member - + Debug - + MaxEncodedLen - + PartialEq - + Clone; - /// The type which represents a dynamic-rate payment stream. - type DynamicRatePaymentStream: Encode - + Decode - + Parameter - + Member - + Debug - + MaxEncodedLen - + PartialEq - + Clone; - /// The type of the units that the Provider provides to the User (for example, for storage could be terabytes) - type Units: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Saturating - + Copy - + MaxEncodedLen - + HasCompact - + Into<>::Balance>; - - /// Create a new fixed-rate payment stream from a User to a Provider. - fn create_fixed_rate_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - rate: >::Balance, - ) -> DispatchResult; - - /// Update the rate of an existing fixed-rate payment stream. - fn update_fixed_rate_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - new_rate: >::Balance, - ) -> DispatchResult; - - /// Delete a fixed-rate payment stream. - fn delete_fixed_rate_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - ) -> DispatchResult; - - /// Get the fixed-rate payment stream information between a User and a Provider - fn get_fixed_rate_payment_stream_info( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - ) -> Option; - - /// Create a new dynamic-rate payment stream from a User to a Provider. - fn create_dynamic_rate_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - amount_provided: &Self::Units, - ) -> DispatchResult; - - /// Update the amount provided of an existing dynamic-rate payment stream. - fn update_dynamic_rate_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - new_amount_provided: &Self::Units, - ) -> DispatchResult; - - /// Delete a dynamic-rate payment stream. - fn delete_dynamic_rate_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - ) -> DispatchResult; - - /// Get the dynamic-rate payment stream information between a User and a Provider - fn get_dynamic_rate_payment_stream_info( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - ) -> Option; - - /// Get the amount provided of a dynamic-rate payment stream between a User and a Provider - fn get_dynamic_rate_payment_stream_amount_provided( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - ) -> Option; - - /// Check if a user has an active payment stream with a provider. - fn has_active_payment_stream( - provider_id: &Self::ProviderId, - user_account: &Self::AccountId, - ) -> bool; -} - -/// The interface of the Payment Streams pallet that allows for the reading of user's solvency. -pub trait ReadUserSolvencyInterface { - /// The type which represents a User account identifier. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - - /// Get if a user has been flagged as insolvent (without funds) - fn is_user_insolvent(user_account: &Self::AccountId) -> bool; -} - -/// The interface of the ProofsDealer pallet that allows other pallets to query and modify proof -/// submitters in the last ticks. -pub trait ProofSubmittersInterface { - /// The type which represents a provider identifier. - type ProviderId: Parameter - + Member - + MaybeSerializeDeserialize - + Debug - + Ord - + MaxEncodedLen - + Copy; - /// The type which represents a tick number. - type TickNumber: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - /// The type which represents the maximum limit of the number of proof submitters for a tick. - type MaxProofSubmitters: Get; - - fn get_proof_submitters_for_tick( - tick_number: &Self::TickNumber, - ) -> Option>; - - fn get_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) -> Option; - - fn clear_accrued_failed_proof_submissions(provider_id: &Self::ProviderId); -} - -/// A trait to encode, decode and read information from file metadata. -pub trait FileMetadataInterface { - /// The type which represents a User account identifier. - type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; - /// The type which represents a file's metadata - type Metadata: Parameter + Member + MaybeSerializeDeserialize + Debug + Encode + Decode; - - /// The type which represents the unit that we use to measure file size (e.g. bytes) - type StorageDataUnit: Parameter - + Member - + MaybeSerializeDeserialize - + Default - + MaybeDisplay - + AtLeast32BitUnsigned - + Copy - + MaxEncodedLen - + HasCompact - + Into; - - fn decode(data: &[u8]) -> Result; - - fn encode(metadata: &Self::Metadata) -> Vec; - - fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit; - - fn get_file_owner(metadata: &Self::Metadata) -> Result; -} +#![cfg_attr(not(feature = "std"), no_std)] + +use codec::{Decode, Encode, FullCodec, HasCompact}; +use frame_support::{ + dispatch::DispatchResult, + pallet_prelude::{MaxEncodedLen, MaybeSerializeDeserialize, Member}, + sp_runtime::traits::{CheckEqual, MaybeDisplay, SimpleBitOps}, + traits::{fungible, Incrementable}, + BoundedBTreeSet, Parameter, +}; +use scale_info::{prelude::fmt::Debug, TypeInfo}; +use sp_core::Get; +use sp_runtime::{ + traits::{ + AtLeast32BitUnsigned, CheckedAdd, CheckedDiv, CheckedMul, CheckedSub, Hash, One, + Saturating, Zero, + }, + BoundedVec, DispatchError, +}; +use sp_std::{collections::btree_set::BTreeSet, vec::Vec}; + +#[cfg(feature = "std")] +pub trait MaybeDebug: Debug {} +#[cfg(feature = "std")] +impl MaybeDebug for T {} +#[cfg(not(feature = "std"))] +pub trait MaybeDebug {} +#[cfg(not(feature = "std"))] +impl MaybeDebug for T {} + +#[derive(Encode)] +pub struct AsCompact(#[codec(compact)] pub T); + +/// A trait to read information about buckets registered in the system, such as their owner and +/// the MSP ID of the MSP that's storing it, etc. +pub trait ReadBucketsInterface { + /// Type that can be used to identify accounts. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + + /// Type of the registered Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of the buckets' IDs. + type BucketId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type that represents the unit of storage data in which the capacity is measured. + type StorageDataUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Copy + + MaxEncodedLen + + HasCompact + + Into; + + /// Type of the root of the buckets. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of a bucket's read-access group's ID (which is the read-access NFT collection's ID). + type ReadAccessGroupId: Member + Parameter + MaxEncodedLen + Copy + Incrementable; + + /// Byte limit of a bucket's name. + type BucketNameLimit: Get; + + /// Check if a bucket exists. + fn bucket_exists(bucket_id: &Self::BucketId) -> bool; + + /// Return if a bucket (represented by its Bucket ID) is stored by a specific MSP. + fn is_bucket_stored_by_msp(msp_id: &Self::ProviderId, bucket_id: &Self::BucketId) -> bool; + + /// Get the read-access group's ID of a bucket, if there is one. + fn get_read_access_group_id_of_bucket( + bucket_id: &Self::BucketId, + ) -> Result, DispatchError>; + + /// Get the MSP ID of the MSP that's storing a bucket. + fn get_msp_of_bucket(bucket_id: &Self::BucketId) -> Option; + + /// Check if an account is the owner of a bucket. + fn is_bucket_owner( + who: &Self::AccountId, + bucket_id: &Self::BucketId, + ) -> Result; + + /// Check if a bucket is private. + fn is_bucket_private(bucket_id: &Self::BucketId) -> Result; + + /// Derive the Bucket Id of a bucket, from its MSP, owner and name. + fn derive_bucket_id( + msp_id: &Self::ProviderId, + owner: &Self::AccountId, + bucket_name: BoundedVec, + ) -> Self::BucketId; + + /// Get the root of a bucket. + fn get_root_bucket(bucket_id: &Self::BucketId) -> Option; + + /// Get the bucket owner. + fn get_bucket_owner(bucket_id: &Self::BucketId) -> Result; + + /// Get bucket size. + fn get_bucket_size(bucket_id: &Self::BucketId) -> Result; + + /// Get the MSP of a bucket. + fn get_msp_bucket(bucket_id: &Self::BucketId) -> Result; +} + +/// A trait to change the state of buckets registered in the system, such as updating their privacy +/// settings, changing their root, etc. +pub trait MutateBucketsInterface { + /// Type that can be used to identify accounts. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + + /// Type of the registered Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of the buckets' IDs. + type BucketId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type that represents the unit of storage data in which the capacity is measured. + type StorageDataUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Copy + + MaxEncodedLen + + HasCompact + + Into; + + /// Type of a bucket's read-access group's ID (which is the read-access NFT collection's ID). + type ReadAccessGroupId: Member + Parameter + MaxEncodedLen + Copy + Incrementable; + + /// Type of the root and keys in the Merkle Patricia Forest of a + /// registered Provider. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Update a bucket's privacy setting. + fn update_bucket_privacy(bucket_id: Self::BucketId, privacy: bool) -> DispatchResult; + + /// Update a bucket's read-access group's ID. If None is passed, no one other than the owner + /// will be able to access the bucket. + fn update_bucket_read_access_group_id( + bucket_id: Self::BucketId, + maybe_read_access_group_id: Option, + ) -> DispatchResult; + + /// Add a new bucket under the MSP corresponding to `provider_id`, that will be owned by the account `user_id`. + /// If `privacy` is true, the bucket will be private and optionally the `read_access_group_id` will be used to + /// determine the collection of NFTs that can access the bucket. + fn add_bucket( + provider_id: Self::ProviderId, + user_id: Self::AccountId, + bucket_id: Self::BucketId, + privacy: bool, + maybe_read_access_group_id: Option, + ) -> DispatchResult; + + /// Change MSP of a bucket. + fn change_msp_bucket(bucket_id: &Self::BucketId, new_msp: &Self::ProviderId) -> DispatchResult; + + /// Change the root of a bucket. + fn change_root_bucket(bucket_id: Self::BucketId, new_root: Self::MerkleHash) -> DispatchResult; + + /// Remove a root from a bucket of a MSP, removing the whole bucket from storage. + fn remove_root_bucket(bucket_id: Self::BucketId) -> DispatchResult; + + /// Increase the size of a bucket. + fn increase_bucket_size( + bucket_id: &Self::BucketId, + delta: Self::StorageDataUnit, + ) -> DispatchResult; + + /// Decrease the size of a bucket. + fn decrease_bucket_size( + bucket_id: &Self::BucketId, + delta: Self::StorageDataUnit, + ) -> DispatchResult; +} + +/// A trait to read information about Storage Providers present in the +/// `storage-providers` pallet, such as if they are a BSP or MSP, their multiaddresses, etc. +pub trait ReadStorageProvidersInterface { + /// Type of the registered Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type that represents the unit of storage data in which the capacity is measured. + type StorageDataUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Copy + + MaxEncodedLen + + HasCompact + + Into; + + /// Type of the counter of the total number of registered Storage Providers. + type SpCount: Parameter + + Member + + MaybeSerializeDeserialize + + Ord + + AtLeast32BitUnsigned + + FullCodec + + Copy + + Default + + Debug + + scale_info::TypeInfo + + MaxEncodedLen; + + /// Type that represents a MultiAddress of a Storage Provider. + type MultiAddress: Parameter + + MaybeSerializeDeserialize + + Debug + + Ord + + Default + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Maximum number of MultiAddresses a provider can have. + type MaxNumberOfMultiAddresses: Get; + /// Type that represents the reputation weight of a Storage Provider. + type ReputationWeight: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + Ord + + FullCodec + + Copy + + Debug + + scale_info::TypeInfo + + MaxEncodedLen + + CheckedAdd + + One + + Saturating + + PartialOrd + + sp_runtime::traits::Zero; + + /// Check if provider is a BSP. + fn is_bsp(who: &Self::ProviderId) -> bool; + + /// Check if provider is a MSP. + fn is_msp(who: &Self::ProviderId) -> bool; + + /// Get the total global reputation weight of all BSPs. + fn get_global_bsps_reputation_weight() -> Self::ReputationWeight; + + /// Get the reputation weight of a registered Provider. + fn get_bsp_reputation_weight( + who: &Self::ProviderId, + ) -> Result; + + /// Get number of registered BSPs. + fn get_number_of_bsps() -> Self::SpCount; + + /// Get the capacity of a Provider (MSP or BSP). + fn get_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit; + + /// Get the capacity currently in use of a Provider (MSP or BSP). + fn get_used_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit; + + /// Get available capacity of a Provider (MSP or BSP). + fn available_capacity(who: &Self::ProviderId) -> Self::StorageDataUnit; + + /// Get multiaddresses of a BSP. + fn get_bsp_multiaddresses( + who: &Self::ProviderId, + ) -> Result, DispatchError>; +} + +/// A trait to mutate the state of Storage Providers present in the `storage-providers` pallet. +/// This includes increasing and decreasing the data used by a Storage Provider. +pub trait MutateStorageProvidersInterface { + /// Type of the registered Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type that represents the unit of storage data in which the capacity is measured. + type StorageDataUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Copy + + MaxEncodedLen + + HasCompact + + Into; + + /// Increase the used capacity of a Storage Provider (MSP or BSP). To be called when confirming + /// that it's storing a new file. + fn increase_capacity_used( + provider_id: &Self::ProviderId, + delta: Self::StorageDataUnit, + ) -> DispatchResult; + + /// Decrease the used capacity of a Storage Provider (MSP or BSP). To be called when confirming + /// that it has deleted a previously stored file. + fn decrease_capacity_used( + provider_id: &Self::ProviderId, + delta: Self::StorageDataUnit, + ) -> DispatchResult; +} + +/// A trait to read information about generic challengeable Providers, such as their ID, owner, root, +/// stake, etc. +pub trait ReadChallengeableProvidersInterface { + /// Type that can be used to identify accounts. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + + /// Type of the registered challengeable Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of the root and keys in the Merkle Patricia Forest of a + /// registered Provider. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// The Balance type of the runtime, which should correspond to the type of + /// the staking balance of a registered Provider. + type Balance: fungible::Inspect + fungible::hold::Inspect; + + /// Check if an account is a registered challengeable Provider. + fn is_provider(who: Self::ProviderId) -> bool; + + /// Get the Provider Id from Account Id, if it is a registered challengeable Provider. + fn get_provider_id(who: Self::AccountId) -> Option; + + /// Get the Account Id of the owner of a registered challengeable Provider. + fn get_owner_account(who: Self::ProviderId) -> Option; + + /// Get the root for a registered challengeable Provider. + fn get_root(who: Self::ProviderId) -> Option; + + /// Get the default value for the root of a Merkle Patricia Forest. + fn get_default_root() -> Self::MerkleHash; + + /// Get the stake for a registered challengeable Provider. + fn get_stake( + who: Self::ProviderId, + ) -> Option<>::Balance>; + + /// Get the minimum stake for a registered challengeable Provider. + fn get_min_stake() -> >::Balance; +} + +/// A trait to mutate the state of challengeable Providers, such as updating their root. +pub trait MutateChallengeableProvidersInterface { + /// Type of the registered challengeable Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of the root and keys in the Merkle Patricia Forest of a + /// registered Provider. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Update the root for a registered challengeable Provider. + fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult; + + /// Update the information of a registered challengeable Provider after a successful trie element removal. + fn update_provider_after_key_removal( + who: &Self::ProviderId, + removed_trie_value: &Vec, + ) -> DispatchResult; +} + +/// A trait to read information about generic Providers, such as their ID, owner, root, stake, etc. +pub trait ReadProvidersInterface { + /// Type that can be used to identify accounts. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + + /// Type of the registered Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of the root and keys in the Merkle Patricia Forest of a + /// registered Provider. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// The Balance type of the runtime, which should correspond to the type of + /// the staking balance of a registered Provider. + type Balance: fungible::Inspect + fungible::hold::Inspect; + + /// Check if an account is a registered Provider. + fn is_provider(who: Self::ProviderId) -> bool; + + /// Get the Provider Id from Account Id, if it is a registered Provider. + fn get_provider_id(who: Self::AccountId) -> Option; + + /// Get the Account Id of the owner of a registered Provider. + fn get_owner_account(who: Self::ProviderId) -> Option; + + /// Get the Account Id of the payment account of a registered Provider. + fn get_payment_account(who: Self::ProviderId) -> Option; + + /// Get the root for a registered Provider. + fn get_root(who: Self::ProviderId) -> Option; + + /// Get the default value for the root of a Merkle Patricia Forest. + fn get_default_root() -> Self::MerkleHash; + + /// Get the stake for a registered Provider. + fn get_stake( + who: Self::ProviderId, + ) -> Option<>::Balance>; +} + +/// A trait to mutate the state of a generic Provider, such as updating their root. +pub trait MutateProvidersInterface { + /// Type of the registered Providers' IDs. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Type of the root and keys in the Merkle Patricia Forest of a + /// registered Provider. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + FullCodec; + + /// Update the root for a registered Provider. + fn update_root(who: Self::ProviderId, new_root: Self::MerkleHash) -> DispatchResult; +} + +/// A trait to get system-wide metrics, such as the total available capacity of the network and +/// its total used capacity. +pub trait SystemMetricsInterface { + /// Type of the unit provided by Providers + type ProvidedUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Copy + + MaxEncodedLen + + HasCompact + + Into; + + /// Get the total available capacity of units of the network. + fn get_total_capacity() -> Self::ProvidedUnit; + + /// Get the total used capacity of units of the network. + fn get_total_used_capacity() -> Self::ProvidedUnit; +} + +/// The interface for the ProofsDealer pallet. +/// +/// It is abstracted over the `Provider` type, `Proof` type, `ForestProof` type and `MerkleHash` type. +/// It provides the functions to verify a proof, submit a new proof challenge and +/// submit a new challenge with priority. +pub trait ProofsDealerInterface { + /// The type which represents a registered Provider. + type ProviderId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + /// The type that represents a proof just for the Merkle Patricia Forest. + type ForestProof: Parameter + Member + Debug; + /// The type that represents a proof for an inner key (leaf) of the Merkle Patricia Forest. + type KeyProof: Parameter + Member + Debug; + /// The type corresponding to the root and keys in the Merkle Patricia Forest of a + /// registered Provider. + type MerkleHash: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + MaybeDisplay + + SimpleBitOps + + Ord + + Default + + Copy + + CheckEqual + + AsRef<[u8]> + + AsMut<[u8]> + + MaxEncodedLen + + PartialEq + + Eq + + Clone + + FullCodec; + /// The hashing system (algorithm) being used for the Merkle Patricia Forests (e.g. Blake2). + type MerkleHashing: Hash; + /// The type that represents the randomness output. + type RandomnessOutput: Parameter + Member + Debug; + /// The numerical type used to represent ticks. + /// The Proofs Dealer pallet uses ticks to keep track of time, for things like sending out + /// challenges and making sure that Providers respond to them in time + type TickNumber: Parameter + + Member + + AtLeast32BitUnsigned + + Debug + + Default + + Copy + + MaxEncodedLen + + FullCodec + + MaybeSerializeDeserialize + + Zero + + One + + CheckedAdd + + CheckedSub + + CheckedDiv + + CheckedMul + + Saturating; + + /// Verify a proof just for the Merkle Patricia Forest, for a given Provider. + /// + /// This only verifies that something is included in the forest of the Provider. It is not a full + /// proof of the Provider's data. + fn verify_forest_proof( + provider_id: &Self::ProviderId, + challenges: &[Self::MerkleHash], + proof: &Self::ForestProof, + ) -> Result, DispatchError>; + + /// Verify a proof for a Merkle Patricia Forest, without requiring it to be associated with a Provider. + /// + /// WARNING: This function should be used with caution, as it does not verify the root against a specific Provider. + /// This means this function should only be used when the root is previously known to be correct, and in NO case should + /// it be used to verify proofs associated with a challengeable Provider. That is what `verify_forest_proof` is for. + /// + /// This only verifies that something is included in the forest that has the given root. It is not a full + /// proof of its data. + fn verify_generic_forest_proof( + root: &Self::MerkleHash, + challenges: &[Self::MerkleHash], + proof: &Self::ForestProof, + ) -> Result, DispatchError>; + + /// Verify a proof for a key within the Merkle Patricia Forest of a Provider. + /// + /// This only verifies a proof of the data at a specific key within the Provider's forest. It does + /// not verify if that key is included in the Merkle Patricia Forest of the Provider. + fn verify_key_proof( + key: &Self::MerkleHash, + challenges: &[Self::MerkleHash], + proof: &Self::KeyProof, + ) -> Result, DispatchError>; + + /// Submit a new proof challenge. + fn challenge(key_challenged: &Self::MerkleHash) -> DispatchResult; + + /// Submit a new challenge with priority. + fn challenge_with_priority( + key_challenged: &Self::MerkleHash, + mutation: Option, + ) -> DispatchResult; + + /// Given a randomness seed, a provider id and a count, generate a list of challenges. + fn generate_challenges_from_seed( + seed: Self::RandomnessOutput, + provider_id: &Self::ProviderId, + count: u32, + ) -> Vec; + + /// Apply delta (mutations) to the partial trie based on the proof and the commitment. + /// + /// The new root is returned. + fn apply_delta( + provider_id: &Self::ProviderId, + mutations: &[(Self::MerkleHash, TrieMutation)], + proof: &Self::ForestProof, + ) -> Result; + + /// Apply delta (mutations) to the partial trie based on the proof and the commitment. + /// + /// WARNING: This function should be used with caution, as it does not verify the root against a specific Provider. + /// This means this function should only be used when the root is previously known to be correct, and in NO case should + /// it be used to verify proofs associated with a challengeable Provider. That is what `apply_delta` is for. + /// + /// The new root is returned. + fn generic_apply_delta( + root: &Self::MerkleHash, + mutations: &[(Self::MerkleHash, TrieMutation)], + proof: &Self::ForestProof, + ) -> Result; + + /// Initialise a Provider's challenge cycle. + /// + /// Sets the last tick the Provider submitted a proof for to the current tick and sets the + /// deadline for submitting a proof to the current tick + the Provider's period (based on its + /// stake) + the challenges tick tolerance. + fn initialise_challenge_cycle(who: &Self::ProviderId) -> DispatchResult; + + /// Get the current tick. + /// + /// The Proofs Dealer pallet uses ticks to keep track of time, for things like sending out + /// challenges and making sure that Providers respond to them in time. + fn get_current_tick() -> Self::TickNumber; +} + +/// A trait to verify proofs based on commitments and challenges. +/// +/// It is abstracted over the `Proof`, `Commitment` and `Challenge` types. +pub trait CommitmentVerifier { + /// The type that represents the proof. + type Proof: Parameter + Member + Debug; + /// The type that represents the commitment (e.g. a Merkle root) + type Commitment: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>; + /// The type that represents the challenges which a proof is being verified against. + type Challenge: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>; + + /// Verify a proof based on a commitment and a set of challenges. + /// + /// The function returns a vector of keys that are verified by the proof, or an error if the proof + /// is invalid. + fn verify_proof( + commitment: &Self::Commitment, + challenges: &[Self::Challenge], + proof: &Self::Proof, + ) -> Result, DispatchError>; +} + +/// Enum representing the type of mutation (addition or removal of a key). +#[derive(Encode, Decode, TypeInfo, Clone, PartialEq, Debug)] +pub enum TrieMutation { + Add(TrieAddMutation), + Remove(TrieRemoveMutation), +} + +#[derive(Encode, Decode, TypeInfo, Clone, PartialEq, Debug, Default)] +pub struct TrieAddMutation { + pub value: Vec, +} + +impl Into for TrieAddMutation { + fn into(self) -> TrieMutation { + TrieMutation::Add(self) + } +} + +impl TrieAddMutation { + pub fn new(value: Vec) -> Self { + Self { value } + } +} + +#[derive(Encode, Decode, MaxEncodedLen, TypeInfo, Clone, PartialEq, Debug, Default)] +pub struct TrieRemoveMutation; + +impl Into for TrieRemoveMutation { + fn into(self) -> TrieMutation { + TrieMutation::Remove(self) + } +} + +/// A trait to apply mutations (delta) to a partial trie based on a proof and a commitment. +pub trait TrieProofDeltaApplier { + /// The type that represents the proof. + type Proof: Parameter + Member + Debug; + /// The type that represents the keys (e.g. a Merkle root, node keys, etc.) + type Key: MaybeDebug + Ord + Default + Copy + AsRef<[u8]> + AsMut<[u8]>; + + /// Apply mutations (delta) to a partial trie based on a proof and a commitment. + /// + /// Returns the MemoryDB of the trie generated by the proof, the new root computed after applying the mutations + /// and a vector of the key-value pairs that were changed by the mutations. + fn apply_delta( + root: &Self::Key, + mutations: &[(Self::Key, TrieMutation)], + proof: &Self::Proof, + ) -> Result< + ( + sp_trie::MemoryDB, + Self::Key, + Vec<(Self::Key, Option>)>, + ), + DispatchError, + >; +} + +/// Interface used by the file system pallet in order to read storage from NFTs pallet (avoiding tight coupling). +pub trait InspectCollections { + type CollectionId; + + /// Check if a collection exists. + fn collection_exists(collection_id: &Self::CollectionId) -> bool; +} + +/// The interface of the Payment Streams pallet. +/// +/// It is to be used by other pallets to interact with the Payment Streams pallet to create, update and delete payment streams. +pub trait PaymentStreamsInterface { + /// The type which represents the balance of the runtime. + type Balance: fungible::Inspect + + fungible::Mutate + + fungible::hold::Inspect + + fungible::hold::Mutate; + /// The type which represents a User account identifier. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + /// The type which represents a Provider identifier. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + Ord + + MaxEncodedLen + + Copy; + /// The type which represents a block number. + type BlockNumber: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + /// The type which represents a fixed-rate payment stream. + type FixedRatePaymentStream: Encode + + Decode + + Parameter + + Member + + Debug + + MaxEncodedLen + + PartialEq + + Clone; + /// The type which represents a dynamic-rate payment stream. + type DynamicRatePaymentStream: Encode + + Decode + + Parameter + + Member + + Debug + + MaxEncodedLen + + PartialEq + + Clone; + /// The type of the units that the Provider provides to the User (for example, for storage could be terabytes) + type Units: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Saturating + + Copy + + MaxEncodedLen + + HasCompact + + Into<>::Balance>; + + /// Create a new fixed-rate payment stream from a User to a Provider. + fn create_fixed_rate_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + rate: >::Balance, + ) -> DispatchResult; + + /// Update the rate of an existing fixed-rate payment stream. + fn update_fixed_rate_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + new_rate: >::Balance, + ) -> DispatchResult; + + /// Delete a fixed-rate payment stream. + fn delete_fixed_rate_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + ) -> DispatchResult; + + /// Get the fixed-rate payment stream information between a User and a Provider + fn get_fixed_rate_payment_stream_info( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + ) -> Option; + + /// Create a new dynamic-rate payment stream from a User to a Provider. + fn create_dynamic_rate_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + amount_provided: &Self::Units, + ) -> DispatchResult; + + /// Update the amount provided of an existing dynamic-rate payment stream. + fn update_dynamic_rate_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + new_amount_provided: &Self::Units, + ) -> DispatchResult; + + /// Delete a dynamic-rate payment stream. + fn delete_dynamic_rate_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + ) -> DispatchResult; + + /// Get the dynamic-rate payment stream information between a User and a Provider + fn get_dynamic_rate_payment_stream_info( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + ) -> Option; + + /// Get the amount provided of a dynamic-rate payment stream between a User and a Provider + fn get_dynamic_rate_payment_stream_amount_provided( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + ) -> Option; + + /// Check if a user has an active payment stream with a provider. + fn has_active_payment_stream( + provider_id: &Self::ProviderId, + user_account: &Self::AccountId, + ) -> bool; +} + +/// The interface of the Payment Streams pallet that allows for the reading of user's solvency. +pub trait ReadUserSolvencyInterface { + /// The type which represents a User account identifier. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + + /// Get if a user has been flagged as insolvent (without funds) + fn is_user_insolvent(user_account: &Self::AccountId) -> bool; +} + +/// The interface of the ProofsDealer pallet that allows other pallets to query and modify proof +/// submitters in the last ticks. +pub trait ProofSubmittersInterface { + /// The type which represents a provider identifier. + type ProviderId: Parameter + + Member + + MaybeSerializeDeserialize + + Debug + + Ord + + MaxEncodedLen + + Copy; + /// The type which represents a tick number. + type TickNumber: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + /// The type which represents the maximum limit of the number of proof submitters for a tick. + type MaxProofSubmitters: Get; + + fn get_proof_submitters_for_tick( + tick_number: &Self::TickNumber, + ) -> Option>; + + fn get_accrued_failed_proof_submissions(provider_id: &Self::ProviderId) -> Option; + + fn clear_accrued_failed_proof_submissions(provider_id: &Self::ProviderId); +} + +/// A trait to encode, decode and read information from file metadata. +pub trait FileMetadataInterface { + /// The type which represents a User account identifier. + type AccountId: Parameter + Member + MaybeSerializeDeserialize + Debug + Ord + MaxEncodedLen; + /// The type which represents a file's metadata + type Metadata: Parameter + Member + MaybeSerializeDeserialize + Debug + Encode + Decode; + + /// The type which represents the unit that we use to measure file size (e.g. bytes) + type StorageDataUnit: Parameter + + Member + + MaybeSerializeDeserialize + + Default + + MaybeDisplay + + AtLeast32BitUnsigned + + Copy + + MaxEncodedLen + + HasCompact + + Into; + + fn decode(data: &[u8]) -> Result; + + fn encode(metadata: &Self::Metadata) -> Vec; + + fn get_file_size(metadata: &Self::Metadata) -> Self::StorageDataUnit; + + fn get_file_owner(metadata: &Self::Metadata) -> Result; +} diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml index 5d4a0e2af..3401be354 100644 --- a/runtime/Cargo.toml +++ b/runtime/Cargo.toml @@ -1,266 +1,266 @@ -[package] -name = "storage-hub-runtime" -version = "0.1.0" -description = "StorageHub Runtime - a decentralised storage solution designed for the Polkadot ecosystem." -homepage = { workspace = true } -license = { workspace = true } -authors = { workspace = true } -repository = { workspace = true } -edition = { workspace = true } - -[lints] -workspace = true - -[package.metadata.docs.rs] -targets = ["x86_64-unknown-linux-gnu"] - -[build-dependencies] -substrate-wasm-builder = { workspace = true, optional = true } -docify = "0.2.8" - -[dependencies] -codec = { workspace = true } -num-bigint = { workspace = true } -hex-literal = { workspace = true, optional = true } -log = { workspace = true } -smallvec = { workspace = true } -scale-info = { workspace = true } - -# Local -pallet-bucket-nfts = { workspace = true } -pallet-file-system = { workspace = true } -pallet-file-system-runtime-api = { workspace = true } -pallet-parameters = { workspace = true } -pallet-payment-streams = { workspace = true } -pallet-payment-streams-runtime-api = { workspace = true } -pallet-proofs-dealer = { workspace = true } -pallet-proofs-dealer-runtime-api = { workspace = true } -pallet-randomness = { workspace = true } -pallet-storage-providers = { workspace = true } -pallet-storage-providers-runtime-api = { workspace = true } - -shp-constants = { workspace = true } -shp-file-key-verifier = { workspace = true } -shp-file-metadata = { workspace = true } -shp-forest-verifier = { workspace = true } -shp-traits = { workspace = true } - -# Substrate -frame-support = { workspace = true } -frame-benchmarking = { workspace = true, optional = true } -frame-executive = { workspace = true } -frame-metadata-hash-extension = { workspace = true } -frame-system = { workspace = true } -frame-system-benchmarking = { workspace = true, optional = true } -frame-system-rpc-runtime-api = { workspace = true } -frame-try-runtime = { workspace = true, optional = true } -pallet-aura = { workspace = true } -pallet-authorship = { workspace = true } -pallet-balances = { workspace = true } -pallet-message-queue = { workspace = true } -pallet-nfts = { workspace = true } -pallet-session = { workspace = true } -pallet-sudo = { workspace = true } -pallet-timestamp = { workspace = true } -pallet-transaction-payment = { workspace = true } -pallet-transaction-payment-rpc-runtime-api = { workspace = true } -sp-api = { workspace = true } -sp-block-builder = { workspace = true } -sp-consensus-aura = { workspace = true } -sp-core = { workspace = true } -sp-genesis-builder = { workspace = true } -sp-inherents = { workspace = true } -sp-offchain = { workspace = true } -sp-runtime = { workspace = true } -sp-session = { workspace = true } -sp-std = { workspace = true } -sp-transaction-pool = { workspace = true } -sp-trie = { workspace = true } -sp-version = { workspace = true } -sp-weights = { workspace = true } - -# Polkadot -pallet-xcm = { workspace = true } -polkadot-parachain-primitives = { workspace = true } -polkadot-runtime-common = { workspace = true } -xcm = { workspace = true } -xcm-builder = { workspace = true } -xcm-executor = { workspace = true } -xcm-fee-payment-runtime-api = { workspace = true } - -# Cumulus -cumulus-pallet-aura-ext = { workspace = true } -cumulus-pallet-parachain-system = { workspace = true } -cumulus-pallet-session-benchmarking = { workspace = true } -cumulus-pallet-xcm = { workspace = true } -cumulus-pallet-xcmp-queue = { workspace = true } -cumulus-primitives-aura = { workspace = true } -cumulus-primitives-core = { workspace = true } -cumulus-primitives-utility = { workspace = true } -cumulus-primitives-storage-weight-reclaim = { workspace = true } -pallet-collator-selection = { workspace = true } -parachains-common = { workspace = true } -parachain-info = { workspace = true } - -[features] -default = ["std"] -std = [ - "codec/std", - "cumulus-pallet-aura-ext/std", - "cumulus-pallet-parachain-system/std", - "cumulus-pallet-session-benchmarking/std", - "cumulus-pallet-xcm/std", - "cumulus-pallet-xcmp-queue/std", - "cumulus-primitives-aura/std", - "cumulus-primitives-core/std", - "cumulus-primitives-utility/std", - "cumulus-primitives-storage-weight-reclaim/std", - "frame-benchmarking?/std", - "frame-executive/std", - "frame-metadata-hash-extension/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-bucket-nfts/std", - "pallet-collator-selection/std", - "pallet-file-system/std", - "pallet-file-system-runtime-api/std", - "pallet-message-queue/std", - "pallet-nfts/std", - "pallet-parameters/std", - "pallet-payment-streams/std", - "pallet-payment-streams-runtime-api/std", - "pallet-proofs-dealer/std", - "pallet-proofs-dealer-runtime-api/std", - "pallet-randomness/std", - "pallet-session/std", - "pallet-storage-providers/std", - "pallet-storage-providers-runtime-api/std", - "pallet-sudo/std", - "pallet-timestamp/std", - "pallet-transaction-payment-rpc-runtime-api/std", - "pallet-transaction-payment/std", - "pallet-xcm/std", - "parachain-info/std", - "parachains-common/std", - "polkadot-parachain-primitives/std", - "polkadot-runtime-common/std", - "scale-info/std", - "shp-constants/std", - "shp-file-key-verifier/std", - "shp-file-metadata/std", - "shp-forest-verifier/std", - "shp-traits/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-transaction-pool/std", - "sp-version/std", - "substrate-wasm-builder", - "xcm-builder/std", - "xcm-executor/std", - "xcm-fee-payment-runtime-api/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-aura/std", - "cumulus-primitives-core/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-balances/runtime-benchmarks", - "pallet-bucket-nfts/runtime-benchmarks", - "pallet-collator-selection/runtime-benchmarks", - "pallet-file-system/runtime-benchmarks", - "pallet-message-queue/runtime-benchmarks", - "pallet-nfts/runtime-benchmarks", - "pallet-parameters/runtime-benchmarks", - "pallet-payment-streams/runtime-benchmarks", - "pallet-proofs-dealer/runtime-benchmarks", - "pallet-randomness/runtime-benchmarks", - "pallet-storage-providers/runtime-benchmarks", - "pallet-sudo/runtime-benchmarks", - "pallet-timestamp/runtime-benchmarks", - "pallet-xcm/runtime-benchmarks", - "parachains-common/runtime-benchmarks", - "polkadot-parachain-primitives/runtime-benchmarks", - "polkadot-runtime-common/runtime-benchmarks", - "shp-constants/runtime-benchmarks", - "shp-file-key-verifier/runtime-benchmarks", - "shp-file-metadata/runtime-benchmarks", - "shp-forest-verifier/runtime-benchmarks", - "shp-traits/runtime-benchmarks", - "sp-runtime/runtime-benchmarks", - "xcm-builder/runtime-benchmarks", - "xcm-executor/runtime-benchmarks", - "xcm-fee-payment-runtime-api/runtime-benchmarks", -] - -try-runtime = [ - "cumulus-pallet-aura-ext/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-bucket-nfts/try-runtime", - "pallet-collator-selection/try-runtime", - "pallet-file-system/try-runtime", - "pallet-message-queue/try-runtime", - "pallet-nfts/try-runtime", - "pallet-parameters/try-runtime", - "pallet-proofs-dealer/try-runtime", - "pallet-randomness/try-runtime", - "pallet-session/try-runtime", - "pallet-storage-providers/try-runtime", - "pallet-sudo/try-runtime", - "pallet-timestamp/try-runtime", - "pallet-transaction-payment/try-runtime", - "pallet-xcm/try-runtime", - "parachain-info/try-runtime", - "polkadot-runtime-common/try-runtime", - "shp-constants/try-runtime", - "shp-file-key-verifier/try-runtime", - "shp-file-metadata/try-runtime", - "shp-forest-verifier/try-runtime", - "shp-traits/try-runtime", - "sp-runtime/try-runtime", -] - -# Enable the metadata hash generation. -# -# This is hidden behind a feature because it increases the compile time. -# The wasm binary needs to be compiled twice, once to fetch the metadata, -# generate the metadata hash and then a second time with the -# `RUNTIME_METADATA_HASH` environment variable set for the `CheckMetadataHash` -# extension. -metadata-hash = ["substrate-wasm-builder/metadata-hash"] - -# A convenience feature for enabling things when doing a build -# for an on-chain release. -on-chain-release-build = ["metadata-hash"] +[package] +name = "storage-hub-runtime" +version = "0.1.0" +description = "StorageHub Runtime - a decentralised storage solution designed for the Polkadot ecosystem." +homepage = { workspace = true } +license = { workspace = true } +authors = { workspace = true } +repository = { workspace = true } +edition = { workspace = true } + +[lints] +workspace = true + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] + +[build-dependencies] +substrate-wasm-builder = { workspace = true, optional = true } +docify = "0.2.8" + +[dependencies] +codec = { workspace = true } +num-bigint = { workspace = true } +hex-literal = { workspace = true, optional = true } +log = { workspace = true } +smallvec = { workspace = true } +scale-info = { workspace = true } + +# Local +pallet-bucket-nfts = { workspace = true } +pallet-file-system = { workspace = true } +pallet-file-system-runtime-api = { workspace = true } +pallet-parameters = { workspace = true } +pallet-payment-streams = { workspace = true } +pallet-payment-streams-runtime-api = { workspace = true } +pallet-proofs-dealer = { workspace = true } +pallet-proofs-dealer-runtime-api = { workspace = true } +pallet-randomness = { workspace = true } +pallet-storage-providers = { workspace = true } +pallet-storage-providers-runtime-api = { workspace = true } + +shp-constants = { workspace = true } +shp-file-key-verifier = { workspace = true } +shp-file-metadata = { workspace = true } +shp-forest-verifier = { workspace = true } +shp-traits = { workspace = true } + +# Substrate +frame-support = { workspace = true } +frame-benchmarking = { workspace = true, optional = true } +frame-executive = { workspace = true } +frame-metadata-hash-extension = { workspace = true } +frame-system = { workspace = true } +frame-system-benchmarking = { workspace = true, optional = true } +frame-system-rpc-runtime-api = { workspace = true } +frame-try-runtime = { workspace = true, optional = true } +pallet-aura = { workspace = true } +pallet-authorship = { workspace = true } +pallet-balances = { workspace = true } +pallet-message-queue = { workspace = true } +pallet-nfts = { workspace = true } +pallet-session = { workspace = true } +pallet-sudo = { workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } +pallet-transaction-payment-rpc-runtime-api = { workspace = true } +sp-api = { workspace = true } +sp-block-builder = { workspace = true } +sp-consensus-aura = { workspace = true } +sp-core = { workspace = true } +sp-genesis-builder = { workspace = true } +sp-inherents = { workspace = true } +sp-offchain = { workspace = true } +sp-runtime = { workspace = true } +sp-session = { workspace = true } +sp-std = { workspace = true } +sp-transaction-pool = { workspace = true } +sp-trie = { workspace = true } +sp-version = { workspace = true } +sp-weights = { workspace = true } + +# Polkadot +pallet-xcm = { workspace = true } +polkadot-parachain-primitives = { workspace = true } +polkadot-runtime-common = { workspace = true } +xcm = { workspace = true } +xcm-builder = { workspace = true } +xcm-executor = { workspace = true } +xcm-fee-payment-runtime-api = { workspace = true } + +# Cumulus +cumulus-pallet-aura-ext = { workspace = true } +cumulus-pallet-parachain-system = { workspace = true } +cumulus-pallet-session-benchmarking = { workspace = true } +cumulus-pallet-xcm = { workspace = true } +cumulus-pallet-xcmp-queue = { workspace = true } +cumulus-primitives-aura = { workspace = true } +cumulus-primitives-core = { workspace = true } +cumulus-primitives-utility = { workspace = true } +cumulus-primitives-storage-weight-reclaim = { workspace = true } +pallet-collator-selection = { workspace = true } +parachains-common = { workspace = true } +parachain-info = { workspace = true } + +[features] +default = ["std"] +std = [ + "codec/std", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-session-benchmarking/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-aura/std", + "cumulus-primitives-core/std", + "cumulus-primitives-utility/std", + "cumulus-primitives-storage-weight-reclaim/std", + "frame-benchmarking?/std", + "frame-executive/std", + "frame-metadata-hash-extension/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-bucket-nfts/std", + "pallet-collator-selection/std", + "pallet-file-system/std", + "pallet-file-system-runtime-api/std", + "pallet-message-queue/std", + "pallet-nfts/std", + "pallet-parameters/std", + "pallet-payment-streams/std", + "pallet-payment-streams-runtime-api/std", + "pallet-proofs-dealer/std", + "pallet-proofs-dealer-runtime-api/std", + "pallet-randomness/std", + "pallet-session/std", + "pallet-storage-providers/std", + "pallet-storage-providers-runtime-api/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-parachain-primitives/std", + "polkadot-runtime-common/std", + "scale-info/std", + "shp-constants/std", + "shp-file-key-verifier/std", + "shp-file-metadata/std", + "shp-forest-verifier/std", + "shp-traits/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-transaction-pool/std", + "sp-version/std", + "substrate-wasm-builder", + "xcm-builder/std", + "xcm-executor/std", + "xcm-fee-payment-runtime-api/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-aura/std", + "cumulus-primitives-core/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-balances/runtime-benchmarks", + "pallet-bucket-nfts/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "pallet-file-system/runtime-benchmarks", + "pallet-message-queue/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", + "pallet-parameters/runtime-benchmarks", + "pallet-payment-streams/runtime-benchmarks", + "pallet-proofs-dealer/runtime-benchmarks", + "pallet-randomness/runtime-benchmarks", + "pallet-storage-providers/runtime-benchmarks", + "pallet-sudo/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "parachains-common/runtime-benchmarks", + "polkadot-parachain-primitives/runtime-benchmarks", + "polkadot-runtime-common/runtime-benchmarks", + "shp-constants/runtime-benchmarks", + "shp-file-key-verifier/runtime-benchmarks", + "shp-file-metadata/runtime-benchmarks", + "shp-forest-verifier/runtime-benchmarks", + "shp-traits/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "xcm-executor/runtime-benchmarks", + "xcm-fee-payment-runtime-api/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-aura-ext/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-bucket-nfts/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-file-system/try-runtime", + "pallet-message-queue/try-runtime", + "pallet-nfts/try-runtime", + "pallet-parameters/try-runtime", + "pallet-proofs-dealer/try-runtime", + "pallet-randomness/try-runtime", + "pallet-session/try-runtime", + "pallet-storage-providers/try-runtime", + "pallet-sudo/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", + "polkadot-runtime-common/try-runtime", + "shp-constants/try-runtime", + "shp-file-key-verifier/try-runtime", + "shp-file-metadata/try-runtime", + "shp-forest-verifier/try-runtime", + "shp-traits/try-runtime", + "sp-runtime/try-runtime", +] + +# Enable the metadata hash generation. +# +# This is hidden behind a feature because it increases the compile time. +# The wasm binary needs to be compiled twice, once to fetch the metadata, +# generate the metadata hash and then a second time with the +# `RUNTIME_METADATA_HASH` environment variable set for the `CheckMetadataHash` +# extension. +metadata-hash = ["substrate-wasm-builder/metadata-hash"] + +# A convenience feature for enabling things when doing a build +# for an on-chain release. +on-chain-release-build = ["metadata-hash"] diff --git a/runtime/src/configs/runtime_params.rs b/runtime/src/configs/runtime_params.rs index dcacfd2f9..e8f7295ef 100644 --- a/runtime/src/configs/runtime_params.rs +++ b/runtime/src/configs/runtime_params.rs @@ -1,49 +1,49 @@ -use crate::{configs::SpMinDeposit, Balance, BlockNumber, Runtime, UNIT}; -use frame_support::dynamic_params::{dynamic_pallet_params, dynamic_params}; - -#[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] -pub mod dynamic_params { - use super::*; - #[dynamic_pallet_params] - #[codec(index = 0)] - pub mod runtime_config { - use super::*; - - #[codec(index = 0)] - #[allow(non_upper_case_globals)] - pub static SlashAmountPerMaxFileSize: Balance = 20 * UNIT; - - #[codec(index = 1)] - #[allow(non_upper_case_globals)] - // This can be interpreted as "a Provider with 10k UNITs of stake would get the minimum challenge period". - pub static StakeToChallengePeriod: Balance = - 10_000 * UNIT * Into::::into(MinChallengePeriod::get()); // 300k UNITs - - #[codec(index = 2)] - #[allow(non_upper_case_globals)] - // The CheckpointChallengePeriod is set to be equal to the longest possible challenge period (i.e. the - // StakeToChallengePeriod divided by the SpMinDeposit). - pub static CheckpointChallengePeriod: BlockNumber = (StakeToChallengePeriod::get() - / SpMinDeposit::get()) // 300k UNITs / 100 UNITs = 3k ticks (i.e. 5 hours with 6 seconds per tick) - .try_into() - .expect( - "StakeToChallengePeriod / SpMinDeposit should be a number of ticks that can fit in BlockNumber numerical type", - ); - - #[codec(index = 3)] - #[allow(non_upper_case_globals)] - pub static MinChallengePeriod: BlockNumber = 30; - } -} - -#[cfg(feature = "runtime-benchmarks")] -impl Default for RuntimeParameters { - fn default() -> Self { - RuntimeParameters::RuntimeConfig( - dynamic_params::runtime_config::Parameters::SlashAmountPerMaxFileSize( - dynamic_params::runtime_config::SlashAmountPerMaxFileSize, - Some(20 * UNIT), - ), - ) - } -} +use crate::{configs::SpMinDeposit, Balance, BlockNumber, Runtime, UNIT}; +use frame_support::dynamic_params::{dynamic_pallet_params, dynamic_params}; + +#[dynamic_params(RuntimeParameters, pallet_parameters::Parameters::)] +pub mod dynamic_params { + use super::*; + #[dynamic_pallet_params] + #[codec(index = 0)] + pub mod runtime_config { + use super::*; + + #[codec(index = 0)] + #[allow(non_upper_case_globals)] + pub static SlashAmountPerMaxFileSize: Balance = 20 * UNIT; + + #[codec(index = 1)] + #[allow(non_upper_case_globals)] + // This can be interpreted as "a Provider with 10k UNITs of stake would get the minimum challenge period". + pub static StakeToChallengePeriod: Balance = + 10_000 * UNIT * Into::::into(MinChallengePeriod::get()); // 300k UNITs + + #[codec(index = 2)] + #[allow(non_upper_case_globals)] + // The CheckpointChallengePeriod is set to be equal to the longest possible challenge period (i.e. the + // StakeToChallengePeriod divided by the SpMinDeposit). + pub static CheckpointChallengePeriod: BlockNumber = (StakeToChallengePeriod::get() + / SpMinDeposit::get()) // 300k UNITs / 100 UNITs = 3k ticks (i.e. 5 hours with 6 seconds per tick) + .try_into() + .expect( + "StakeToChallengePeriod / SpMinDeposit should be a number of ticks that can fit in BlockNumber numerical type", + ); + + #[codec(index = 3)] + #[allow(non_upper_case_globals)] + pub static MinChallengePeriod: BlockNumber = 30; + } +} + +#[cfg(feature = "runtime-benchmarks")] +impl Default for RuntimeParameters { + fn default() -> Self { + RuntimeParameters::RuntimeConfig( + dynamic_params::runtime_config::Parameters::SlashAmountPerMaxFileSize( + dynamic_params::runtime_config::SlashAmountPerMaxFileSize, + Some(20 * UNIT), + ), + ) + } +} diff --git a/test/package.json b/test/package.json index 869302179..d15fc8193 100644 --- a/test/package.json +++ b/test/package.json @@ -1,85 +1,85 @@ -{ - "name": "@storagehub/test", - "version": "0.1.0", - "description": "Test package for storagehub", - "main": "index.js", - "type": "module", - "engines": { - "node": "22.x.x" - }, - "scripts": { - "bundle-types": "cd ../types-bundle && pnpm i && pnpm build && pnpm fmt:fix && cd ../test", - "typegen": "pnpm bundle-types && cd ../api-augment && pnpm scrape && pnpm generate:all && pnpm build && pnpm fmt:fix; cd ../test", - "fmt": "biome format .", - "fmt:fix": "biome format . --write", - "lint": "biome lint .", - "typecheck": "tsc --noEmit", - "crossbuild:mac": "DOCKER_DEFAULT_PLATFORM=linux/amd64 pnpm tsx scripts/crossBuildMac.ts", - "docker:build": "DOCKER_DEFAULT_PLATFORM=linux/amd64 pnpm tsx scripts/buildLocalDocker.ts", - "docker:start": "docker compose -f ../docker/local-node-compose.yml -p sh_dev_node up -d", - "docker:start:latest": "docker compose -f ../docker/latest-node-compose.yml -p sh_dev_node up -d", - "docker:stop": "docker compose -f ../docker/local-node-compose.yml -p sh_dev_node down", - "docker:stop:latest": "docker compose -f ../docker/latest-node-compose.yml -p sh_dev_node down", - "docker:start:bspnet": "NOISY=0 ROCKSDB=0 pnpm tsx scripts/bspNetBootstrap.ts", - "docker:stop:bspnet": "docker compose -f ../docker/local-dev-bsp-compose.yml down --remove-orphans && docker volume prune -f", - "docker:start:fullNet": "NOISY=0 ROCKSDB=0 pnpm tsx scripts/fullNetBootstrap.ts", - "docker:stop:fullNet": "docker compose -f ../docker/local-dev-full-compose.yml down --remove-orphans && docker volume prune -f", - "docker:start:bspnet:rocksdb": "NOISY=0 ROCKSDB=1 pnpm tsx scripts/bspNetBootstrap.ts", - "docker:stop:bspnet:rocksdb": "docker compose -f ../docker/local-dev-bsp-rocksdb-compose.yml down --remove-orphans && docker volume prune -f", - "docker:start:fullNet:rocksdb": "NOISY=0 ROCKSDB=1 pnpm tsx scripts/fullNetBootstrap.ts", - "docker:stop:fullNet:rocksdb": "docker compose -f ../docker/local-dev-full-rocksdb-compose.yml down --remove-orphans && docker volume prune -f", - "docker:start:noisynet": "NOISY=1 ROCKSDB=0 pnpm tsx scripts/bspNetBootstrap.ts", - "docker:stop:noisynet": "docker compose -f ../docker/noisy-bsp-compose.yml down --remove-orphans && docker volume prune -f", - "zombie:run:latest": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet spawn configs/simple.toml", - "zombie:run:local": "DOCKER_BUILDKIT=0 SH_IMAGE=storage-hub:local pnpm zombienet spawn configs/simple.toml", - "zombie:run:native": "pnpm tsx scripts/downloadPolkadot.ts 1.9.0 && pnpm zombienet spawn configs/simpleNative.toml", - "zombie:run:full": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet spawn configs/fullNetwork.toml", - "zombie:run:full:native": "pnpm tsx scripts/downloadPolkadot.ts 1.9.0 && pnpm zombienet spawn configs/fullNetworkNative.toml", - "zombie:setup:native": "pnpm tsx scripts/fullNetworkSetup.ts", - "zombie:test:native": "pnpm tsx scripts/downloadPolkadot.ts 1.9.0 && pnpm zombienet test --provider native configs/simpleNative.zndsl", - "zombie:test:local": "SH_IMAGE=storage-hub:local pnpm zombienet test configs/simple.zndsl", - "zombie:test:latest": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet test configs/simple.zndsl", - "test:full": "node --no-deprecation --import tsx --test ./suites/zombie/**.spec.ts", - "test:bspnet": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/bsp/**.test.ts", - "test:bspnet:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --import tsx --test-concurrency 1 --test --test-only ./suites/integration/bsp/**.test.ts", - "test:user": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/user/**.test.ts", - "test:user:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test --test-only ./suites/integration/user/**.test.ts", - "test:node": "node --no-deprecation --import tsx --test ./suites/solo-node/**/**.test.ts", - "test:node:only": "node --no-deprecation --import tsx --test --test-only ./suites/solo-node/**/**.test.ts", - "test:node:single": "node --no-deprecation --import tsx --test --test-name-pattern=$FILTER ./suites/solo-node/**/**.test.ts" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "@polkadot/api": "12.4.2", - "@polkadot/api-augment": "12.4.2", - "@polkadot/keyring": "13.0.2", - "@polkadot/types": "12.4.2", - "@polkadot/util": "13.0.2", - "@polkadot/util-crypto": "13.0.2", - "@polkadot/wasm-crypto": "7.3.2", - "@reporters/github": "1.7.0", - "@storagehub/api-augment": "workspace:*", - "@storagehub/types-bundle": "workspace:*", - "@zombienet/cli": "1.3.109", - "@zombienet/utils": "0.0.25", - "docker-compose": "0.24.8", - "dockerode": "4.0.2", - "dotenv": "16.4.5", - "inquirer": "10.2.0", - "json-bigint": "^1.0.0", - "testcontainers": "10.13.0", - "tiny-invariant": "^1.3.3", - "tsx": "4.19.0", - "yaml": "^2.5.1" - }, - "devDependencies": { - "@biomejs/biome": "1.8.3", - "@types/dockerode": "3.3.31", - "@types/inquirer": "9.0.7", - "@types/json-bigint": "1.0.4", - "@types/node": "22.5.2", - "typescript": "5.5.4" - } +{ + "name": "@storagehub/test", + "version": "0.1.0", + "description": "Test package for storagehub", + "main": "index.js", + "type": "module", + "engines": { + "node": "22.x.x" + }, + "scripts": { + "bundle-types": "cd ../types-bundle && pnpm i && pnpm build && pnpm fmt:fix && cd ../test", + "typegen": "pnpm bundle-types && cd ../api-augment && pnpm scrape && pnpm generate:all && pnpm build && pnpm fmt:fix; cd ../test", + "fmt": "biome format .", + "fmt:fix": "biome format . --write", + "lint": "biome lint .", + "typecheck": "tsc --noEmit", + "crossbuild:mac": "DOCKER_DEFAULT_PLATFORM=linux/amd64 pnpm tsx scripts/crossBuildMac.ts", + "docker:build": "DOCKER_DEFAULT_PLATFORM=linux/amd64 pnpm tsx scripts/buildLocalDocker.ts", + "docker:start": "docker compose -f ../docker/local-node-compose.yml -p sh_dev_node up -d", + "docker:start:latest": "docker compose -f ../docker/latest-node-compose.yml -p sh_dev_node up -d", + "docker:stop": "docker compose -f ../docker/local-node-compose.yml -p sh_dev_node down", + "docker:stop:latest": "docker compose -f ../docker/latest-node-compose.yml -p sh_dev_node down", + "docker:start:bspnet": "NOISY=0 ROCKSDB=0 pnpm tsx scripts/bspNetBootstrap.ts", + "docker:stop:bspnet": "docker compose -f ../docker/local-dev-bsp-compose.yml down --remove-orphans && docker volume prune -f", + "docker:start:fullNet": "NOISY=0 ROCKSDB=0 pnpm tsx scripts/fullNetBootstrap.ts", + "docker:stop:fullNet": "docker compose -f ../docker/local-dev-full-compose.yml down --remove-orphans && docker volume prune -f", + "docker:start:bspnet:rocksdb": "NOISY=0 ROCKSDB=1 pnpm tsx scripts/bspNetBootstrap.ts", + "docker:stop:bspnet:rocksdb": "docker compose -f ../docker/local-dev-bsp-rocksdb-compose.yml down --remove-orphans && docker volume prune -f", + "docker:start:fullNet:rocksdb": "NOISY=0 ROCKSDB=1 pnpm tsx scripts/fullNetBootstrap.ts", + "docker:stop:fullNet:rocksdb": "docker compose -f ../docker/local-dev-full-rocksdb-compose.yml down --remove-orphans && docker volume prune -f", + "docker:start:noisynet": "NOISY=1 ROCKSDB=0 pnpm tsx scripts/bspNetBootstrap.ts", + "docker:stop:noisynet": "docker compose -f ../docker/noisy-bsp-compose.yml down --remove-orphans && docker volume prune -f", + "zombie:run:latest": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet spawn configs/simple.toml", + "zombie:run:local": "DOCKER_BUILDKIT=0 SH_IMAGE=storage-hub:local pnpm zombienet spawn configs/simple.toml", + "zombie:run:native": "pnpm tsx scripts/downloadPolkadot.ts 1.9.0 && pnpm zombienet spawn configs/simpleNative.toml", + "zombie:run:full": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet spawn configs/fullNetwork.toml", + "zombie:run:full:native": "pnpm tsx scripts/downloadPolkadot.ts 1.9.0 && pnpm zombienet spawn configs/fullNetworkNative.toml", + "zombie:setup:native": "pnpm tsx scripts/fullNetworkSetup.ts", + "zombie:test:native": "pnpm tsx scripts/downloadPolkadot.ts 1.9.0 && pnpm zombienet test --provider native configs/simpleNative.zndsl", + "zombie:test:local": "SH_IMAGE=storage-hub:local pnpm zombienet test configs/simple.zndsl", + "zombie:test:latest": "SH_IMAGE=docker.io/moonsonglabs/storage-hub:latest pnpm zombienet test configs/simple.zndsl", + "test:full": "node --no-deprecation --import tsx --test ./suites/zombie/**.spec.ts", + "test:bspnet": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/bsp/**.test.ts", + "test:bspnet:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --import tsx --test-concurrency 1 --test --test-only ./suites/integration/bsp/**.test.ts", + "test:user": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test ./suites/integration/user/**.test.ts", + "test:user:only": "NODE_OPTIONS='--no-deprecation' pnpm tsx scripts/checkRunning.ts && node --no-deprecation --test-concurrency 1 --import tsx --test --test-only ./suites/integration/user/**.test.ts", + "test:node": "node --no-deprecation --import tsx --test ./suites/solo-node/**/**.test.ts", + "test:node:only": "node --no-deprecation --import tsx --test --test-only ./suites/solo-node/**/**.test.ts", + "test:node:single": "node --no-deprecation --import tsx --test --test-name-pattern=$FILTER ./suites/solo-node/**/**.test.ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@polkadot/api": "12.4.2", + "@polkadot/api-augment": "12.4.2", + "@polkadot/keyring": "13.0.2", + "@polkadot/types": "12.4.2", + "@polkadot/util": "13.0.2", + "@polkadot/util-crypto": "13.0.2", + "@polkadot/wasm-crypto": "7.3.2", + "@reporters/github": "1.7.0", + "@storagehub/api-augment": "workspace:*", + "@storagehub/types-bundle": "workspace:*", + "@zombienet/cli": "1.3.109", + "@zombienet/utils": "0.0.25", + "docker-compose": "0.24.8", + "dockerode": "4.0.2", + "dotenv": "16.4.5", + "inquirer": "10.2.0", + "json-bigint": "^1.0.0", + "testcontainers": "10.13.0", + "tiny-invariant": "^1.3.3", + "tsx": "4.19.0", + "yaml": "^2.5.1" + }, + "devDependencies": { + "@biomejs/biome": "1.8.3", + "@types/dockerode": "3.3.31", + "@types/inquirer": "9.0.7", + "@types/json-bigint": "1.0.4", + "@types/node": "22.5.2", + "typescript": "5.5.4" + } } \ No newline at end of file diff --git a/test/scripts/fullNetBootstrap.ts b/test/scripts/fullNetBootstrap.ts index a54e863a6..d1328306c 100644 --- a/test/scripts/fullNetBootstrap.ts +++ b/test/scripts/fullNetBootstrap.ts @@ -1,86 +1,86 @@ -import { - BspNetTestApi, - registerToxics, - type BspNetConfig, - type EnrichedBspApi, - type ToxicInfo -} from "../util"; -import * as ShConsts from "../util/bspNet/consts"; -import { runFullNet } from "../util/fullNet/helpers"; - -let api: EnrichedBspApi | undefined; -const fullNetConfig: BspNetConfig = { - noisy: process.env.NOISY === "1", - rocksdb: process.env.ROCKSDB === "1" -}; - -const CONFIG = { - bucketName: "nothingmuch-0", - localPath: "res/whatsup.jpg", - remotePath: "cat/whatsup.jpg" -}; - -async function bootStrapNetwork() { - await runFullNet(fullNetConfig); - - if (fullNetConfig.noisy) { - // For more info on the kind of toxics you can register, - // see: https://github.com/Shopify/toxiproxy?tab=readme-ov-file#toxics - const reqToxics = [ - { - type: "latency", - name: "lag-down", - stream: "upstream", - toxicity: 0.8, - attributes: { - latency: 25, - jitter: 7 - } - }, - { - type: "bandwidth", - name: "low-band", - // Setting as upstream simulates slow user connection - stream: "upstream", - // 50% of the time, the toxic will be applied - toxicity: 0.5, - attributes: { - // 10kbps - rate: 10 - } - } - ] satisfies ToxicInfo[]; - - await registerToxics(reqToxics); - } - - api = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - await api.file.newStorageRequest( - CONFIG.localPath, - CONFIG.remotePath, - CONFIG.bucketName, - ShConsts.DUMMY_MSP_ID - ); - - await api.wait.bspVolunteer(); - await api.wait.bspStored(); - - if (fullNetConfig.noisy) { - console.log("✅ NoisyNet Bootstrap success"); - } else { - console.log("✅ BSPNet Bootstrap success"); - } -} - -bootStrapNetwork() - .catch((e) => { - console.error("Error running bootstrap script:", e); - if (fullNetConfig.noisy) { - console.log("❌ NoisyNet Bootstrap failure"); - } else { - console.log("❌ BSPNet Bootstrap failure"); - } - process.exitCode = 1; - }) - .finally(async () => await api?.disconnect()); +import { + BspNetTestApi, + registerToxics, + type BspNetConfig, + type EnrichedBspApi, + type ToxicInfo +} from "../util"; +import * as ShConsts from "../util/bspNet/consts"; +import { runFullNet } from "../util/fullNet/helpers"; + +let api: EnrichedBspApi | undefined; +const fullNetConfig: BspNetConfig = { + noisy: process.env.NOISY === "1", + rocksdb: process.env.ROCKSDB === "1" +}; + +const CONFIG = { + bucketName: "nothingmuch-0", + localPath: "res/whatsup.jpg", + remotePath: "cat/whatsup.jpg" +}; + +async function bootStrapNetwork() { + await runFullNet(fullNetConfig); + + if (fullNetConfig.noisy) { + // For more info on the kind of toxics you can register, + // see: https://github.com/Shopify/toxiproxy?tab=readme-ov-file#toxics + const reqToxics = [ + { + type: "latency", + name: "lag-down", + stream: "upstream", + toxicity: 0.8, + attributes: { + latency: 25, + jitter: 7 + } + }, + { + type: "bandwidth", + name: "low-band", + // Setting as upstream simulates slow user connection + stream: "upstream", + // 50% of the time, the toxic will be applied + toxicity: 0.5, + attributes: { + // 10kbps + rate: 10 + } + } + ] satisfies ToxicInfo[]; + + await registerToxics(reqToxics); + } + + api = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + await api.file.newStorageRequest( + CONFIG.localPath, + CONFIG.remotePath, + CONFIG.bucketName, + ShConsts.DUMMY_MSP_ID + ); + + await api.wait.bspVolunteer(); + await api.wait.bspStored(); + + if (fullNetConfig.noisy) { + console.log("✅ NoisyNet Bootstrap success"); + } else { + console.log("✅ BSPNet Bootstrap success"); + } +} + +bootStrapNetwork() + .catch((e) => { + console.error("Error running bootstrap script:", e); + if (fullNetConfig.noisy) { + console.log("❌ NoisyNet Bootstrap failure"); + } else { + console.log("❌ BSPNet Bootstrap failure"); + } + process.exitCode = 1; + }) + .finally(async () => await api?.disconnect()); diff --git a/test/suites/integration/bsp/debt-collection.test.ts b/test/suites/integration/bsp/debt-collection.test.ts index 129bc8f50..342bb28e8 100644 --- a/test/suites/integration/bsp/debt-collection.test.ts +++ b/test/suites/integration/bsp/debt-collection.test.ts @@ -1,695 +1,695 @@ -import assert, { strictEqual } from "node:assert"; -import { after } from "node:test"; -import { - describeBspNet, - fetchEventData, - ShConsts, - sleep, - type EnrichedBspApi -} from "../../../util"; - -describeBspNet( - "BSPNet: Collect users debt", - { initialised: "multi", networkConfig: "standard" }, - ({ before, it, createUserApi, createBspApi, getLaunchResponse, createApi }) => { - let userApi: EnrichedBspApi; - let bspApi: EnrichedBspApi; - let bspTwoApi: EnrichedBspApi; - let bspThreeApi: EnrichedBspApi; - let userAddress: string; - - before(async () => { - const launchResponse = await getLaunchResponse(); - assert(launchResponse, "BSPNet failed to initialise"); - userApi = await createUserApi(); - bspApi = await createBspApi(); - bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); - bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); - userAddress = ShConsts.NODE_INFOS.user.AddressId; - }); - - after(async () => { - await bspTwoApi.disconnect(); - await bspThreeApi.disconnect(); - }); - - it("BSP correctly charges payment stream", async () => { - // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists - const paymentStreamExistsResult = - await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( - ShConsts.DUMMY_BSP_ID - ); - // Check if the first element of the returned vector is the user - assert(paymentStreamExistsResult[0].toString() === userAddress); - assert(paymentStreamExistsResult.length === 1); - - // Seal one more block. - await userApi.sealBlock(); - - // Check if the user owes the provider. - let usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 0 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, - // since they all have the same file they were initialised with, and responded to it at - // the same time. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - let currentBlock = await userApi.rpc.chain.getBlock(); - let currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - - // Advance blocksToAdvance blocks. - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Check that no Providers have submitted a valid proof yet. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - let providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Check that the Providers were added to the list of Providers that have submitted proofs - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert( - providersWithProofs.isSome, - "There should be Providers that have submitted a valid proof" - ); - assert( - providersWithProofs.unwrap().size === 3, - "There should be three Providers that have submitted a valid proof" - ); - - // Check that the last chargeable info of the dummy BSP has not been updated yet - let lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - assert(lastChargeableInfo.priceIndex.toNumber() === 0); - - // Seal one more block to update the last chargeable info of the Provider - await userApi.sealBlock(); - - // Assert for the the event of the last chargeable info of the Providers being updated - const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( - "paymentStreams", - "LastChargeableInfoUpdated" - ); - strictEqual( - lastChargeableInfoUpdatedEvents.length, - 3, - "There should be three last chargeable info updated events" - ); - - // Check the last chargeable info of the dummy BSP - lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - - // Check the info of the payment stream between the user and the DUMMY_BSP_ID - const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream - // so that the payment stream can be charged by the BSP - assert( - paymentStreamInfo.unwrap().priceIndexWhenLastCharged.lt(lastChargeableInfo.priceIndex) - ); - - // Check that the user now owes the provider. - usersWithDebtResult = await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 1 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - await userApi.sealBlock(); - - // Assert that event for the BSP charging its payment stream was emitted - await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); - }); - - it("Correctly updates payment stream on-chain to make user insolvent", async () => { - // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists - const paymentStreamExistsResult = - await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( - ShConsts.DUMMY_BSP_ID - ); - // Check if the first element of the returned vector is the user - assert(paymentStreamExistsResult[0].toString() === userAddress); - assert(paymentStreamExistsResult.length === 1); - - // Check the payment stream info between the user and the DUMMY_BSP_ID - const paymentStreamInfoBeforeDeletion = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // Add extra files to the user's storage with the DUMMY_BSP_ID - await userApi.file.newStorageRequest("res/cloud.jpg", "test/cloud.jpg", "bucket-1"); - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - await userApi.file.newStorageRequest("res/adolphus.jpg", "test/adolphus.jpg", "bucket-3"); - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - - // Check the payment stream info after adding the new files - const paymentStreamInfoAfterAddingFiles = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // The amount provided of the payment stream should be higher after adding the new files - assert( - paymentStreamInfoAfterAddingFiles - .unwrap() - .amountProvided.gt(paymentStreamInfoBeforeDeletion.unwrap().amountProvided) - ); - - // Seal one more block. - await userApi.sealBlock(); - - // Check if the user owes the provider. - const usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 0 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Get the current price of storage from the runtime, the new stream deposit and the ED - const currentPriceOfStorage = await userApi.query.paymentStreams.currentPricePerUnitPerTick(); - const newStreamDeposit = userApi.consts.paymentStreams.newStreamDeposit; - const existentialDeposit = userApi.consts.balances.existentialDeposit; - - // Get the current free balance of the user - const freeBalance = (await userApi.query.system.account(userAddress)).data.free; - - // To make the user insolvent, we need to update the payment stream with a very high amount - // and advance new stream deposit blocks - // To do this, the new amount provided should be equal to the free balance of the user divided by - // the current price of storage multiplied by the new stream deposit - const newAmountProvidedForInsolvency = freeBalance - .div(currentPriceOfStorage.mul(newStreamDeposit)) - .sub(existentialDeposit); - - // Make the user insolvent by updating the payment stream with a very high amount - const updateDynamicRatePaymentStreamResult = await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.paymentStreams.updateDynamicRatePaymentStream( - ShConsts.DUMMY_BSP_ID, - userAddress, - newAmountProvidedForInsolvency - ) - ) - ); - const { extSuccess } = updateDynamicRatePaymentStreamResult; - strictEqual(extSuccess, true, "Extrinsic should be successful"); - - // Assert that event dynamic-rate payment stream update was emitted - userApi.assertEvent( - "paymentStreams", - "DynamicRatePaymentStreamUpdated", - updateDynamicRatePaymentStreamResult.events - ); - // Get the on-chain payment stream information - const [userAccount, providerId, newAmountProvided] = fetchEventData( - userApi.events.paymentStreams.DynamicRatePaymentStreamUpdated, - await userApi.query.system.events() - ); - // Assert that the information on-chain is correct - strictEqual(userAccount.toString(), userAddress); - strictEqual(providerId.toString(), ShConsts.DUMMY_BSP_ID.toString()); - strictEqual(newAmountProvided.toNumber(), newAmountProvidedForInsolvency.toNumber()); - }); - - it("Correctly flags update payment stream as without funds after charging", async () => { - // Get the last chargeable info of the dummy BSP before proof submission - const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - // Calculate the next challenge tick for the DUMMY_BSP_ID. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - let currentBlock = await userApi.rpc.chain.getBlock(); - let currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - - // Advance blocksToAdvance blocks. - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Check that no Providers have submitted a valid proof yet. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - let providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Check that the Providers were added to the list of Providers that have submitted proofs - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert( - providersWithProofs.isSome, - "There should be Providers that have submitted a valid proof" - ); - assert( - providersWithProofs.unwrap().size === 3, - "There should be three Providers that have submitted a valid proof" - ); - - // Check that the last chargeable info of the dummy BSP has not been updated yet - const lastChargeableInfoAfterProofSubmission = - await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); - assert( - lastChargeableInfo.priceIndex.toNumber() === - lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() - ); - - // Seal one more block to update the last chargeable info of the Provider - await userApi.sealBlock(); - - // Assert for the the event of the last chargeable info of the Providers being updated - const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( - "paymentStreams", - "LastChargeableInfoUpdated" - ); - strictEqual( - lastChargeableInfoUpdatedEvents.length, - 3, - "There should be three last chargeable info updated events" - ); - - // Get the last chargeable info of the dummy BSP after it's updated - const lastChargeableInfoAfterUpdate = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - - // Check the info of the payment stream between the user and the DUMMY_BSP_ID - const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream - // so that the payment stream can be charged by the BSP - assert( - paymentStreamInfo - .unwrap() - .priceIndexWhenLastCharged.lt(lastChargeableInfoAfterUpdate.priceIndex) - ); - - // Check that the user now owes the provider. - const usersWithDebtResult = - await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 1 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - await userApi.sealBlock(); - await sleep(500); - - // Assert that event for the BSP charging its payment stream was emitted - await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); - - // Assert that the payment stream between the user and the DUMMY_BSP_ID has been flagged as without - // funds, but the other two ones haven't - const insolventPaymentStreamInfoAfterCharging = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - assert(insolventPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isSome); - const solventTwoPaymentStreamInfoAfterCharging = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_TWO_ID, - userAddress - ); - assert(solventTwoPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); - const solventThreePaymentStreamInfoAfterCharging = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_THREE_ID, - userAddress - ); - assert(solventThreePaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); - }); - - it("Correctly flags user as without funds after grace period, emits event and deletes payment stream", async () => { - // Get the last chargeable info of the dummy BSP before proof submission - const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - // Calculate the next challenge tick for the DUMMY_BSP_ID. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - let currentBlock = await userApi.rpc.chain.getBlock(); - let currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - - // Advance blocksToAdvance blocks - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Check that no Providers have submitted a valid proof yet. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - let providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Check that the Providers were added to the list of Providers that have submitted proofs - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert( - providersWithProofs.isSome, - "There should be Providers that have submitted a valid proof" - ); - assert( - providersWithProofs.unwrap().size === 3, - "There should be three Providers that have submitted a valid proof" - ); - - // Check that the last chargeable info of the dummy BSP has not been updated yet - const lastChargeableInfoAfterProofSubmission = - await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); - assert( - lastChargeableInfo.priceIndex.toNumber() === - lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() - ); - - // Seal one more block to update the last chargeable info of the Provider - await userApi.sealBlock(); - - // Assert for the the event of the last chargeable info of the Providers being updated - const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( - "paymentStreams", - "LastChargeableInfoUpdated" - ); - strictEqual( - lastChargeableInfoUpdatedEvents.length, - 3, - "There should be three last chargeable info updated events" - ); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - const blockResult = await userApi.sealBlock(); - - // Assert that event for the BSP charging its payment stream was emitted - await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); - - // Check if the "UserWithoutFunds" event was emitted. If it wasn't, advance until - // the next challenge period and check again - if (!blockResult.events?.find((event) => event.event.method === "UserWithoutFunds")) { - // Calculate the next challenge tick for the DUMMY_BSP_ID. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - // Advance blocksToAdvance blocks - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Seal another block so the last chargeable info of the providers is updated - await userApi.sealBlock(); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - await userApi.sealBlock(); - } - - // Assert that the user without funds event was emitted - await userApi.assert.eventPresent("paymentStreams", "UserWithoutFunds"); - - // Check that the payment stream between the user and the DUMMY_BSP_ID has been deleted - const deletedPaymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - assert(deletedPaymentStreamInfo.isNone); - }); - - it("BSP correctly deletes all files from an insolvent user", async () => { - // We execute this loop three times since that's the amount of files the user has stored with the BSPs - for (let i = 0; i < 3; i++) { - // Check that the three Providers are trying to delete the files of the user - await userApi.assert.extrinsicPresent({ - method: "stopStoringForInsolventUser", - module: "fileSystem", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to delete the files of the user - await userApi.sealBlock(); - - // Assert that event for the BSP deleting the files of the user was emitted - const spStopStoringForInsolventUserEvents = await userApi.assert.eventMany( - "fileSystem", - "SpStopStoringInsolventUser" - ); - strictEqual( - spStopStoringForInsolventUserEvents.length, - 3, - "There should be three stop storing for insolvent user events" - ); - - // For each event, fetch its info and check if the BSP correctly deleted the files of the user - for (const event of spStopStoringForInsolventUserEvents) { - const stopStoringInsolventUserBlob = - userApi.events.fileSystem.SpStopStoringInsolventUser.is(event.event) && - event.event.data; - assert(stopStoringInsolventUserBlob, "Event doesn't match Type"); - if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.DUMMY_BSP_ID) { - assert( - ( - await bspApi.rpc.storagehubclient.isFileInForest( - null, - stopStoringInsolventUserBlob.fileKey - ) - ).isFalse - ); - } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_TWO_ID) { - assert( - ( - await bspTwoApi.rpc.storagehubclient.isFileInForest( - null, - stopStoringInsolventUserBlob.fileKey - ) - ).isFalse - ); - } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_THREE_ID) { - assert( - ( - await bspThreeApi.rpc.storagehubclient.isFileInForest( - null, - stopStoringInsolventUserBlob.fileKey - ) - ).isFalse - ); - } - } - - // Seal a block to allow BSPs to delete the files of the user - await userApi.sealBlock(); - } - - // After deleting all the files, the user should have no payment streams with any provider - const paymentStreamInfoAfterDeletion = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - assert(paymentStreamInfoAfterDeletion.isNone); - const paymentStreamInfoAfterDeletionTwo = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_TWO_ID, - userAddress - ); - assert(paymentStreamInfoAfterDeletionTwo.isNone); - const paymentStreamInfoAfterDeletionThree = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_THREE_ID, - userAddress - ); - assert(paymentStreamInfoAfterDeletionThree.isNone); - }); - } -); +import assert, { strictEqual } from "node:assert"; +import { after } from "node:test"; +import { + describeBspNet, + fetchEventData, + ShConsts, + sleep, + type EnrichedBspApi +} from "../../../util"; + +describeBspNet( + "BSPNet: Collect users debt", + { initialised: "multi", networkConfig: "standard" }, + ({ before, it, createUserApi, createBspApi, getLaunchResponse, createApi }) => { + let userApi: EnrichedBspApi; + let bspApi: EnrichedBspApi; + let bspTwoApi: EnrichedBspApi; + let bspThreeApi: EnrichedBspApi; + let userAddress: string; + + before(async () => { + const launchResponse = await getLaunchResponse(); + assert(launchResponse, "BSPNet failed to initialise"); + userApi = await createUserApi(); + bspApi = await createBspApi(); + bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); + bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); + userAddress = ShConsts.NODE_INFOS.user.AddressId; + }); + + after(async () => { + await bspTwoApi.disconnect(); + await bspThreeApi.disconnect(); + }); + + it("BSP correctly charges payment stream", async () => { + // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists + const paymentStreamExistsResult = + await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( + ShConsts.DUMMY_BSP_ID + ); + // Check if the first element of the returned vector is the user + assert(paymentStreamExistsResult[0].toString() === userAddress); + assert(paymentStreamExistsResult.length === 1); + + // Seal one more block. + await userApi.sealBlock(); + + // Check if the user owes the provider. + let usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 0 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, + // since they all have the same file they were initialised with, and responded to it at + // the same time. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + let currentBlock = await userApi.rpc.chain.getBlock(); + let currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + + // Advance blocksToAdvance blocks. + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Check that no Providers have submitted a valid proof yet. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + let providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Check that the Providers were added to the list of Providers that have submitted proofs + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert( + providersWithProofs.isSome, + "There should be Providers that have submitted a valid proof" + ); + assert( + providersWithProofs.unwrap().size === 3, + "There should be three Providers that have submitted a valid proof" + ); + + // Check that the last chargeable info of the dummy BSP has not been updated yet + let lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + assert(lastChargeableInfo.priceIndex.toNumber() === 0); + + // Seal one more block to update the last chargeable info of the Provider + await userApi.sealBlock(); + + // Assert for the the event of the last chargeable info of the Providers being updated + const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( + "paymentStreams", + "LastChargeableInfoUpdated" + ); + strictEqual( + lastChargeableInfoUpdatedEvents.length, + 3, + "There should be three last chargeable info updated events" + ); + + // Check the last chargeable info of the dummy BSP + lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + + // Check the info of the payment stream between the user and the DUMMY_BSP_ID + const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream + // so that the payment stream can be charged by the BSP + assert( + paymentStreamInfo.unwrap().priceIndexWhenLastCharged.lt(lastChargeableInfo.priceIndex) + ); + + // Check that the user now owes the provider. + usersWithDebtResult = await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 1 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + await userApi.sealBlock(); + + // Assert that event for the BSP charging its payment stream was emitted + await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); + }); + + it("Correctly updates payment stream on-chain to make user insolvent", async () => { + // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists + const paymentStreamExistsResult = + await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( + ShConsts.DUMMY_BSP_ID + ); + // Check if the first element of the returned vector is the user + assert(paymentStreamExistsResult[0].toString() === userAddress); + assert(paymentStreamExistsResult.length === 1); + + // Check the payment stream info between the user and the DUMMY_BSP_ID + const paymentStreamInfoBeforeDeletion = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // Add extra files to the user's storage with the DUMMY_BSP_ID + await userApi.file.newStorageRequest("res/cloud.jpg", "test/cloud.jpg", "bucket-1"); + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + await userApi.file.newStorageRequest("res/adolphus.jpg", "test/adolphus.jpg", "bucket-3"); + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + + // Check the payment stream info after adding the new files + const paymentStreamInfoAfterAddingFiles = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // The amount provided of the payment stream should be higher after adding the new files + assert( + paymentStreamInfoAfterAddingFiles + .unwrap() + .amountProvided.gt(paymentStreamInfoBeforeDeletion.unwrap().amountProvided) + ); + + // Seal one more block. + await userApi.sealBlock(); + + // Check if the user owes the provider. + const usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 0 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Get the current price of storage from the runtime, the new stream deposit and the ED + const currentPriceOfStorage = await userApi.query.paymentStreams.currentPricePerUnitPerTick(); + const newStreamDeposit = userApi.consts.paymentStreams.newStreamDeposit; + const existentialDeposit = userApi.consts.balances.existentialDeposit; + + // Get the current free balance of the user + const freeBalance = (await userApi.query.system.account(userAddress)).data.free; + + // To make the user insolvent, we need to update the payment stream with a very high amount + // and advance new stream deposit blocks + // To do this, the new amount provided should be equal to the free balance of the user divided by + // the current price of storage multiplied by the new stream deposit + const newAmountProvidedForInsolvency = freeBalance + .div(currentPriceOfStorage.mul(newStreamDeposit)) + .sub(existentialDeposit); + + // Make the user insolvent by updating the payment stream with a very high amount + const updateDynamicRatePaymentStreamResult = await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.paymentStreams.updateDynamicRatePaymentStream( + ShConsts.DUMMY_BSP_ID, + userAddress, + newAmountProvidedForInsolvency + ) + ) + ); + const { extSuccess } = updateDynamicRatePaymentStreamResult; + strictEqual(extSuccess, true, "Extrinsic should be successful"); + + // Assert that event dynamic-rate payment stream update was emitted + userApi.assertEvent( + "paymentStreams", + "DynamicRatePaymentStreamUpdated", + updateDynamicRatePaymentStreamResult.events + ); + // Get the on-chain payment stream information + const [userAccount, providerId, newAmountProvided] = fetchEventData( + userApi.events.paymentStreams.DynamicRatePaymentStreamUpdated, + await userApi.query.system.events() + ); + // Assert that the information on-chain is correct + strictEqual(userAccount.toString(), userAddress); + strictEqual(providerId.toString(), ShConsts.DUMMY_BSP_ID.toString()); + strictEqual(newAmountProvided.toNumber(), newAmountProvidedForInsolvency.toNumber()); + }); + + it("Correctly flags update payment stream as without funds after charging", async () => { + // Get the last chargeable info of the dummy BSP before proof submission + const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + // Calculate the next challenge tick for the DUMMY_BSP_ID. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + let currentBlock = await userApi.rpc.chain.getBlock(); + let currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + + // Advance blocksToAdvance blocks. + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Check that no Providers have submitted a valid proof yet. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + let providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Check that the Providers were added to the list of Providers that have submitted proofs + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert( + providersWithProofs.isSome, + "There should be Providers that have submitted a valid proof" + ); + assert( + providersWithProofs.unwrap().size === 3, + "There should be three Providers that have submitted a valid proof" + ); + + // Check that the last chargeable info of the dummy BSP has not been updated yet + const lastChargeableInfoAfterProofSubmission = + await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); + assert( + lastChargeableInfo.priceIndex.toNumber() === + lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() + ); + + // Seal one more block to update the last chargeable info of the Provider + await userApi.sealBlock(); + + // Assert for the the event of the last chargeable info of the Providers being updated + const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( + "paymentStreams", + "LastChargeableInfoUpdated" + ); + strictEqual( + lastChargeableInfoUpdatedEvents.length, + 3, + "There should be three last chargeable info updated events" + ); + + // Get the last chargeable info of the dummy BSP after it's updated + const lastChargeableInfoAfterUpdate = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + + // Check the info of the payment stream between the user and the DUMMY_BSP_ID + const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream + // so that the payment stream can be charged by the BSP + assert( + paymentStreamInfo + .unwrap() + .priceIndexWhenLastCharged.lt(lastChargeableInfoAfterUpdate.priceIndex) + ); + + // Check that the user now owes the provider. + const usersWithDebtResult = + await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 1 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + await userApi.sealBlock(); + await sleep(500); + + // Assert that event for the BSP charging its payment stream was emitted + await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); + + // Assert that the payment stream between the user and the DUMMY_BSP_ID has been flagged as without + // funds, but the other two ones haven't + const insolventPaymentStreamInfoAfterCharging = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + assert(insolventPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isSome); + const solventTwoPaymentStreamInfoAfterCharging = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_TWO_ID, + userAddress + ); + assert(solventTwoPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); + const solventThreePaymentStreamInfoAfterCharging = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_THREE_ID, + userAddress + ); + assert(solventThreePaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); + }); + + it("Correctly flags user as without funds after grace period, emits event and deletes payment stream", async () => { + // Get the last chargeable info of the dummy BSP before proof submission + const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + // Calculate the next challenge tick for the DUMMY_BSP_ID. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + let currentBlock = await userApi.rpc.chain.getBlock(); + let currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + + // Advance blocksToAdvance blocks + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Check that no Providers have submitted a valid proof yet. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + let providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Check that the Providers were added to the list of Providers that have submitted proofs + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert( + providersWithProofs.isSome, + "There should be Providers that have submitted a valid proof" + ); + assert( + providersWithProofs.unwrap().size === 3, + "There should be three Providers that have submitted a valid proof" + ); + + // Check that the last chargeable info of the dummy BSP has not been updated yet + const lastChargeableInfoAfterProofSubmission = + await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); + assert( + lastChargeableInfo.priceIndex.toNumber() === + lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() + ); + + // Seal one more block to update the last chargeable info of the Provider + await userApi.sealBlock(); + + // Assert for the the event of the last chargeable info of the Providers being updated + const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( + "paymentStreams", + "LastChargeableInfoUpdated" + ); + strictEqual( + lastChargeableInfoUpdatedEvents.length, + 3, + "There should be three last chargeable info updated events" + ); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + const blockResult = await userApi.sealBlock(); + + // Assert that event for the BSP charging its payment stream was emitted + await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); + + // Check if the "UserWithoutFunds" event was emitted. If it wasn't, advance until + // the next challenge period and check again + if (!blockResult.events?.find((event) => event.event.method === "UserWithoutFunds")) { + // Calculate the next challenge tick for the DUMMY_BSP_ID. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + // Advance blocksToAdvance blocks + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Seal another block so the last chargeable info of the providers is updated + await userApi.sealBlock(); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + await userApi.sealBlock(); + } + + // Assert that the user without funds event was emitted + await userApi.assert.eventPresent("paymentStreams", "UserWithoutFunds"); + + // Check that the payment stream between the user and the DUMMY_BSP_ID has been deleted + const deletedPaymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + assert(deletedPaymentStreamInfo.isNone); + }); + + it("BSP correctly deletes all files from an insolvent user", async () => { + // We execute this loop three times since that's the amount of files the user has stored with the BSPs + for (let i = 0; i < 3; i++) { + // Check that the three Providers are trying to delete the files of the user + await userApi.assert.extrinsicPresent({ + method: "stopStoringForInsolventUser", + module: "fileSystem", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to delete the files of the user + await userApi.sealBlock(); + + // Assert that event for the BSP deleting the files of the user was emitted + const spStopStoringForInsolventUserEvents = await userApi.assert.eventMany( + "fileSystem", + "SpStopStoringInsolventUser" + ); + strictEqual( + spStopStoringForInsolventUserEvents.length, + 3, + "There should be three stop storing for insolvent user events" + ); + + // For each event, fetch its info and check if the BSP correctly deleted the files of the user + for (const event of spStopStoringForInsolventUserEvents) { + const stopStoringInsolventUserBlob = + userApi.events.fileSystem.SpStopStoringInsolventUser.is(event.event) && + event.event.data; + assert(stopStoringInsolventUserBlob, "Event doesn't match Type"); + if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.DUMMY_BSP_ID) { + assert( + ( + await bspApi.rpc.storagehubclient.isFileInForest( + null, + stopStoringInsolventUserBlob.fileKey + ) + ).isFalse + ); + } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_TWO_ID) { + assert( + ( + await bspTwoApi.rpc.storagehubclient.isFileInForest( + null, + stopStoringInsolventUserBlob.fileKey + ) + ).isFalse + ); + } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_THREE_ID) { + assert( + ( + await bspThreeApi.rpc.storagehubclient.isFileInForest( + null, + stopStoringInsolventUserBlob.fileKey + ) + ).isFalse + ); + } + } + + // Seal a block to allow BSPs to delete the files of the user + await userApi.sealBlock(); + } + + // After deleting all the files, the user should have no payment streams with any provider + const paymentStreamInfoAfterDeletion = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + assert(paymentStreamInfoAfterDeletion.isNone); + const paymentStreamInfoAfterDeletionTwo = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_TWO_ID, + userAddress + ); + assert(paymentStreamInfoAfterDeletionTwo.isNone); + const paymentStreamInfoAfterDeletionThree = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_THREE_ID, + userAddress + ); + assert(paymentStreamInfoAfterDeletionThree.isNone); + }); + } +); diff --git a/test/suites/integration/bsp/onboard.test.ts b/test/suites/integration/bsp/onboard.test.ts index ffdbc23a0..22f7334dc 100644 --- a/test/suites/integration/bsp/onboard.test.ts +++ b/test/suites/integration/bsp/onboard.test.ts @@ -1,171 +1,171 @@ -import Docker from "dockerode"; -import assert, { strictEqual } from "node:assert"; -import { - addBspContainer, - describeBspNet, - DOCKER_IMAGE, - sleep, - type EnrichedBspApi -} from "../../../util"; -import { CAPACITY, MAX_STORAGE_CAPACITY } from "../../../util/bspNet/consts.ts"; - -describeBspNet("BSPNet: Adding new BSPs", ({ before, createBspApi, createApi, it }) => { - let api: EnrichedBspApi; - - before(async () => { - api = await createBspApi(); - }); - - it("New BSP can be created", async () => { - const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ - name: "nueva", - additionalArgs: [ - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - - await it("is in a running container", async () => { - const docker = new Docker(); - const { - State: { Status } - } = await docker.getContainer(containerName).inspect(); - strictEqual(Status, "running"); - }); - - await it("can open new API connection with", async () => { - console.log(`connecting to rpcPort ${rpcPort}`); - await using newApi = await createApi(`ws://127.0.0.1:${rpcPort}`); - - await it("has correct reported peerId", async () => { - const localPeerId = await newApi.rpc.system.localPeerId(); - strictEqual(localPeerId.toString(), peerId); - }); - - await it("is synced with current block", async () => { - // Give some time to the BSP to catch up - await sleep(500); - - const syncHeight = (await newApi.rpc.chain.getHeader()).number.toNumber(); - const currentHeight = (await api.rpc.chain.getHeader()).number.toNumber(); - strictEqual(syncHeight, currentHeight); - }); - - await it("is listening on the correct P2P port", async () => { - const listenAddresses = (await newApi.rpc.system.localListenAddresses()).map((address) => - address.toString() - ); - const matchingAddress = listenAddresses.filter((address) => - address.includes(`/tcp/${p2pPort}/p2p/`) - ); - strictEqual(matchingAddress.length > 1, true); - }); - }); - - await it("is peer of other nodes", async () => { - const peers = (await api.rpc.system.peers()).map(({ peerId }) => peerId.toString()); - strictEqual(peers.includes(peerId), true, `PeerId ${peerId} not found in ${peers}`); - }); - }); - - it("Lots of BSPs can be created", async () => { - await addBspContainer({ - name: "timbo1", - additionalArgs: [ - "--database=rocksdb", - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await addBspContainer({ - name: "timbo2", - additionalArgs: [ - "--database=paritydb", - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await addBspContainer({ - name: "timbo3", - additionalArgs: [ - "--database=auto", - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - - const docker = new Docker(); - const sh_nodes = ( - await docker.listContainers({ - filters: { ancestor: [DOCKER_IMAGE] } - }) - ).flatMap(({ Names }) => Names); - - strictEqual(sh_nodes.length > 3, true); - }); - - it("Inserts new blockchain service keys (BCSV)", async () => { - const keystorePath = "/tmp/test/insert/keystore"; - const { rpcPort } = await addBspContainer({ - name: "insert-keys-container", - additionalArgs: [ - `--keystore-path=${keystorePath}`, - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await using insertKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); - - const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; - const bobPubKey = "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"; - const bcsvKeyType = "bcsv"; - const bobSeed = "//Bob"; - - const hasAliceKey = await insertKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); - strictEqual(hasAliceKey.isTrue, true); - - let hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); - strictEqual(hasBobKey.isTrue, false); - - // Rotate keys and check that Bob's pub key is now in Keystore. - await insertKeysApi.rpc.storagehubclient.insertBcsvKeys(bobSeed); - hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); - strictEqual(hasBobKey.isTrue, true); - }); - - it("Removes BCSV keys from keystore", async () => { - const keystore_path = "/tmp/test/remove/keystore"; - const { rpcPort } = await addBspContainer({ - name: "remove-keys-container", - additionalArgs: [ - `--keystore-path=${keystore_path}`, - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await using removeKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); - const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; - const davePubKey = "0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20"; - const bcsvKeyType = "bcsv"; - const daveSeed = "//Dave"; - - let hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); - strictEqual(hasAliceKey.isTrue, true); - - let hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); - strictEqual(hasDaveKey.isTrue, false); - - // Rotate keys and check that Dave's pub key is now in Keystore. - await removeKeysApi.rpc.storagehubclient.insertBcsvKeys(daveSeed); - hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); - strictEqual(hasDaveKey.isTrue, true); - - await removeKeysApi.rpc.storagehubclient.removeBcsvKeys(keystore_path); - - // We still have Alice's key in `--dev` mode because it's inserted into the in-memory Keystore. - hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); - strictEqual(hasAliceKey.isTrue, true); - hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); - assert(hasDaveKey.isFalse); - }); -}); +import Docker from "dockerode"; +import assert, { strictEqual } from "node:assert"; +import { + addBspContainer, + describeBspNet, + DOCKER_IMAGE, + sleep, + type EnrichedBspApi +} from "../../../util"; +import { CAPACITY, MAX_STORAGE_CAPACITY } from "../../../util/bspNet/consts.ts"; + +describeBspNet("BSPNet: Adding new BSPs", ({ before, createBspApi, createApi, it }) => { + let api: EnrichedBspApi; + + before(async () => { + api = await createBspApi(); + }); + + it("New BSP can be created", async () => { + const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ + name: "nueva", + additionalArgs: [ + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + + await it("is in a running container", async () => { + const docker = new Docker(); + const { + State: { Status } + } = await docker.getContainer(containerName).inspect(); + strictEqual(Status, "running"); + }); + + await it("can open new API connection with", async () => { + console.log(`connecting to rpcPort ${rpcPort}`); + await using newApi = await createApi(`ws://127.0.0.1:${rpcPort}`); + + await it("has correct reported peerId", async () => { + const localPeerId = await newApi.rpc.system.localPeerId(); + strictEqual(localPeerId.toString(), peerId); + }); + + await it("is synced with current block", async () => { + // Give some time to the BSP to catch up + await sleep(500); + + const syncHeight = (await newApi.rpc.chain.getHeader()).number.toNumber(); + const currentHeight = (await api.rpc.chain.getHeader()).number.toNumber(); + strictEqual(syncHeight, currentHeight); + }); + + await it("is listening on the correct P2P port", async () => { + const listenAddresses = (await newApi.rpc.system.localListenAddresses()).map((address) => + address.toString() + ); + const matchingAddress = listenAddresses.filter((address) => + address.includes(`/tcp/${p2pPort}/p2p/`) + ); + strictEqual(matchingAddress.length > 1, true); + }); + }); + + await it("is peer of other nodes", async () => { + const peers = (await api.rpc.system.peers()).map(({ peerId }) => peerId.toString()); + strictEqual(peers.includes(peerId), true, `PeerId ${peerId} not found in ${peers}`); + }); + }); + + it("Lots of BSPs can be created", async () => { + await addBspContainer({ + name: "timbo1", + additionalArgs: [ + "--database=rocksdb", + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await addBspContainer({ + name: "timbo2", + additionalArgs: [ + "--database=paritydb", + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await addBspContainer({ + name: "timbo3", + additionalArgs: [ + "--database=auto", + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + + const docker = new Docker(); + const sh_nodes = ( + await docker.listContainers({ + filters: { ancestor: [DOCKER_IMAGE] } + }) + ).flatMap(({ Names }) => Names); + + strictEqual(sh_nodes.length > 3, true); + }); + + it("Inserts new blockchain service keys (BCSV)", async () => { + const keystorePath = "/tmp/test/insert/keystore"; + const { rpcPort } = await addBspContainer({ + name: "insert-keys-container", + additionalArgs: [ + `--keystore-path=${keystorePath}`, + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await using insertKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); + + const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; + const bobPubKey = "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"; + const bcsvKeyType = "bcsv"; + const bobSeed = "//Bob"; + + const hasAliceKey = await insertKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); + strictEqual(hasAliceKey.isTrue, true); + + let hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); + strictEqual(hasBobKey.isTrue, false); + + // Rotate keys and check that Bob's pub key is now in Keystore. + await insertKeysApi.rpc.storagehubclient.insertBcsvKeys(bobSeed); + hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); + strictEqual(hasBobKey.isTrue, true); + }); + + it("Removes BCSV keys from keystore", async () => { + const keystore_path = "/tmp/test/remove/keystore"; + const { rpcPort } = await addBspContainer({ + name: "remove-keys-container", + additionalArgs: [ + `--keystore-path=${keystore_path}`, + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await using removeKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); + const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; + const davePubKey = "0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20"; + const bcsvKeyType = "bcsv"; + const daveSeed = "//Dave"; + + let hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); + strictEqual(hasAliceKey.isTrue, true); + + let hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); + strictEqual(hasDaveKey.isTrue, false); + + // Rotate keys and check that Dave's pub key is now in Keystore. + await removeKeysApi.rpc.storagehubclient.insertBcsvKeys(daveSeed); + hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); + strictEqual(hasDaveKey.isTrue, true); + + await removeKeysApi.rpc.storagehubclient.removeBcsvKeys(keystore_path); + + // We still have Alice's key in `--dev` mode because it's inserted into the in-memory Keystore. + hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); + strictEqual(hasAliceKey.isTrue, true); + hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); + assert(hasDaveKey.isFalse); + }); +}); diff --git a/test/suites/integration/bsp/submit-proofs.test.ts b/test/suites/integration/bsp/submit-proofs.test.ts index f49dd7320..35bd4142a 100644 --- a/test/suites/integration/bsp/submit-proofs.test.ts +++ b/test/suites/integration/bsp/submit-proofs.test.ts @@ -1,678 +1,678 @@ -import assert, { strictEqual } from "node:assert"; -import { - describeBspNet, - shUser, - sleep, - type EnrichedBspApi, - type FileMetadata, - ShConsts -} from "../../../util"; -import { BSP_THREE_ID, BSP_TWO_ID, DUMMY_BSP_ID } from "../../../util/bspNet/consts"; - -describeBspNet( - "BSP: Many BSPs Submit Proofs", - { initialised: "multi", networkConfig: "standard" }, - ({ before, createUserApi, after, it, createApi, createBspApi, getLaunchResponse }) => { - let userApi: EnrichedBspApi; - let bspApi: EnrichedBspApi; - let bspTwoApi: EnrichedBspApi; - let bspThreeApi: EnrichedBspApi; - let fileData: FileMetadata; - let oneBspFileData: FileMetadata; - let rootBeforeDeletion: string; - - before(async () => { - const launchResponse = await getLaunchResponse(); - assert(launchResponse, "BSPNet failed to initialise"); - fileData = launchResponse.fileData; - userApi = await createUserApi(); - bspApi = await createBspApi(); - bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); - bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); - }); - - after(async () => { - await bspTwoApi.disconnect(); - await bspThreeApi.disconnect(); - }); - - it("Network launches and can be queried", async () => { - const userNodePeerId = await userApi.rpc.system.localPeerId(); - strictEqual(userNodePeerId.toString(), userApi.shConsts.NODE_INFOS.user.expectedPeerId); - const bspNodePeerId = await bspApi.rpc.system.localPeerId(); - strictEqual(bspNodePeerId.toString(), userApi.shConsts.NODE_INFOS.bsp.expectedPeerId); - }); - - it("Many BSPs are challenged and correctly submit proofs", async () => { - // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, - // since they all have the same file they were initialised with, and responded to it at - // the same time. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - // Finally, advance to the next challenge tick. - await userApi.advanceToBlock(nextChallengeTick); - - await userApi.assert.extrinsicPresent({ - module: "proofsDealer", - method: "submitProof", - checkTxPool: true, - assertLength: 3, - timeout: 10000 - }); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Get the new last tick for which the BSP submitted a proof. - // It should be the previous last tick plus one BSP period. - const lastTickResultAfterProof = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(lastTickResultAfterProof.isOk); - const lastTickBspSubmittedProofAfterProof = lastTickResultAfterProof.asOk.toNumber(); - strictEqual( - lastTickBspSubmittedProofAfterProof, - lastTickBspSubmittedProof + challengePeriod, - "The last tick for which the BSP submitted a proof should be the previous last tick plus one BSP period" - ); - - // Get the new deadline for the BSP. - // It should be the current last tick, plus one BSP period, plus the challenges tick tolerance. - const challengesTickTolerance = Number(userApi.consts.proofsDealer.challengeTicksTolerance); - const newDeadline = - lastTickBspSubmittedProofAfterProof + challengePeriod + challengesTickTolerance; - const newDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(newDeadlineResult.isOk); - const newDeadlineOnChain = newDeadlineResult.asOk.toNumber(); - strictEqual( - newDeadline, - newDeadlineOnChain, - "The deadline should be the same as the one we just calculated" - ); - }); - - it("BSP fails to submit proof and is marked as slashable", async () => { - // Get BSP-Down's deadline. - const bspDownDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( - userApi.shConsts.BSP_DOWN_ID - ); - assert(bspDownDeadlineResult.isOk); - const bspDownDeadline = bspDownDeadlineResult.asOk.toNumber(); - - // Get the last tick for which the BSP-Down submitted a proof before advancing to the deadline. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.BSP_DOWN_ID - ); - assert(lastTickResult.isOk); - const lastTickBspDownSubmittedProof = lastTickResult.asOk.toNumber(); - // Finally, advance to the next challenge tick. - await userApi.advanceToBlock(bspDownDeadline); - - // Expect to see a `SlashableProvider` event in the last block. - const slashableProviderEvent = await userApi.assert.eventPresent( - "proofsDealer", - "SlashableProvider" - ); - const slashableProviderEventDataBlob = - userApi.events.proofsDealer.SlashableProvider.is(slashableProviderEvent.event) && - slashableProviderEvent.event.data; - assert(slashableProviderEventDataBlob, "Event doesn't match Type"); - strictEqual( - slashableProviderEventDataBlob.provider.toString(), - userApi.shConsts.BSP_DOWN_ID, - "The BSP-Down should be slashable" - ); - - // Get the last tick for which the BSP-Down submitted a proof after advancing to the deadline. - const lastTickResultAfterSlashable = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.BSP_DOWN_ID - ); - assert(lastTickResultAfterSlashable.isOk); - const lastTickBspDownSubmittedProofAfterSlashable = - lastTickResultAfterSlashable.asOk.toNumber(); - - // The new last tick should be equal to the last tick before BSP-Down was marked as slashable plus one challenge period. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - strictEqual( - lastTickBspDownSubmittedProofAfterSlashable, - lastTickBspDownSubmittedProof + challengePeriod, - "The last tick for which the BSP-Down submitted a proof should be the last tick before BSP-Down was marked as slashable plus one challenge period" - ); - }); - - it( - "BSP stops storing last file", - { skip: "Not implemented yet. Needs RPC method to build proofs." }, - async () => { - // TODO: Build inclusion forest proof for file. - // TODO: BSP-Three sends transaction to stop storing the only file it has. - console.log(fileData); - // // Build transaction for BSP-Three to stop storing the only file it has. - // const call = bspThreeApi.sealBlock( - // bspThreeApi.tx.fileSystem.bspStopStoring( - // fileData.fileKey, - // fileData.bucketId, - // fileData.location, - // fileData.owner, - // fileData.fingerprint, - // fileData.fileSize, - // false - // ), - // bspThreeKey - // ); - } - ); - - it( - "BSP can correctly delete a file from its forest and runtime correctly updates its root", - { skip: "Not implemented yet. Needs RPC method to build proofs." }, - async () => { - // TODO: Setup a BSP that has two files which lie under the same NibbledBranch in the forest. - // TODO: Generate the proof to delete one of the files. - /* let inclusionForestProof = bspThreeApi.rpc.storagehubclient.buildForestRoot(fileData.fileKey); */ - // TODO: Request the deletion of the file: - /* const fileDeletionRequestResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspRequestStopStoring( - fileData.fileKey, - fileData.bucketId, - fileData.location, - fileData.owner, - fileData.fingerprint, - fileData.fileSize, - false, - inclusion_forest_proof: ForestProof, - ); */ - // Wait enough blocks for the deletion to be allowed. - /* const currentBlock = await bspThreeApi.rpc.chain.getBlock(); - const currentBlockNumber = currentBlock.block.header.number.toNumber(); - const cooldown = currentBlockNumber + bspThreeApi.consts.fileSystem.minWaitForStopStoring.toNumber(); - await bspThreeApi.advanceToBlock(cooldown); */ - // TODO: Confirm the request of deletion. Make sure the extrinsic doesn't fail and the root is updated correctly. - /* const fileDeletionConfirmResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspConfirmStopStoring( - fileData.fileKey, - inclusionForestProof, - )); - // Check for the confirm stopped storing event. - let confirmStopStoringEvent = bspThreeApi.assert.eventPresent( - "fileSystem", - "BspConfirmStoppedStoring", - fileDeletionConfirmResult.events - ); - // Make sure the new root was updated correctly. - bspThreeApi.rpc.storagehubclient.deleteFile(fileData.fileKey); // Not sure if this is the correct way to do it. - const newRoot = bspThreeApi.rpc.storagehubclient.getForestRoot(); - const newRootInRuntime = confirmStopStoringEvent.event.data.newRoot; - assert(newRoot === newRootInRuntime, "The new root should be updated correctly"); - */ - } - ); - - it("BSP is not challenged any more", { skip: "Not implemented yet." }, async () => { - // TODO: Check that BSP-Three no longer has a challenge deadline. - }); - - it( - "BSP submits proof, transaction gets dropped, BSP-resubmits and succeeds", - { skip: "Dropping transactions is not implemented as testing utility yet." }, - async () => {} - ); - - it("New storage request sent by user, to only one BSP", async () => { - // Pause BSP-Two and BSP-Three. - await userApi.docker.pauseBspContainer("sh-bsp-two"); - await userApi.docker.pauseBspContainer("sh-bsp-three"); - - // Send transaction to create new storage request. - const source = "res/adolphus.jpg"; - const location = "test/adolphus.jpg"; - const bucketName = "nothingmuch-2"; - const fileData = await userApi.file.newStorageRequest(source, location, bucketName); - oneBspFileData = fileData; - }); - - it("Only one BSP confirms it", async () => { - await userApi.wait.bspVolunteer(1); - await userApi.wait.bspStored(1); - }); - - it("BSP correctly responds to challenge with new forest root", async () => { - // Advance to two challenge periods ahead for first BSP. - // This is because in the odd case that we're exactly on the next challenge tick right now, - // there is a race condition chance where the BSP will send the submit proof extrinsic in the - // next block, since the Forest write lock is released as a consequence of the confirm storing - // extrinsic. So we advance two challenge periods ahead to be sure. - - // First we get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate two challenge ticks ahead. - const nextChallengeTick = lastTickBspSubmittedProof + 2 * challengePeriod; - // Finally, advance two challenge ticks ahead. - await userApi.advanceToBlock(nextChallengeTick); - - // Wait for BSP to submit proof. - await sleep(1000); - - // There should be at least one pending submit proof transaction. - const submitProofsPending = await userApi.assert.extrinsicPresent({ - module: "proofsDealer", - method: "submitProof", - checkTxPool: true - }); - assert(submitProofsPending.length > 0); - - // Seal block and check that the transaction was successful. - await userApi.sealBlock(); - - // Assert for the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual( - proofAcceptedEvents.length, - submitProofsPending.length, - "All pending submit proof transactions should have been successful" - ); - }); - - it("Resume BSPs, and they shouldn't volunteer for the expired storage request", async () => { - // Advance a number of blocks up to when the storage request times out for sure. - const storageRequestTtl = Number(userApi.consts.fileSystem.storageRequestTtl); - const currentBlock = await userApi.rpc.chain.getBlock(); - const currentBlockNumber = currentBlock.block.header.number.toNumber(); - await userApi.advanceToBlock(currentBlockNumber + storageRequestTtl, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID] - }); - - // Resume BSP-Two and BSP-Three. - await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-two" }); - await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-three" }); - - // Wait for BSPs to resync. - await sleep(1000); - - // There shouldn't be any pending volunteer transactions. - await assert.rejects( - async () => { - await userApi.assert.extrinsicPresent({ - module: "fileSystem", - method: "bspVolunteer", - checkTxPool: true - }); - }, - /No matching extrinsic found for fileSystem\.bspVolunteer/, - "There should be no pending volunteer transactions" - ); - }); - - it("BSP-Two still correctly responds to challenges with same forest root", async () => { - // Advance some blocks to allow the BSP to process the challenges and submit proofs. - for (let i = 0; i < 20; i++) { - await userApi.sealBlock(); - await sleep(500); - } - - // Advance to next challenge tick for BSP-Two. - // First we get the last tick for which the BSP submitted a proof. - const lastTickResult = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(BSP_TWO_ID); - assert(lastTickResult.isOk); - const lastTickBspTwoSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = - await userApi.call.proofsDealerApi.getChallengePeriod(BSP_TWO_ID); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspTwoSubmittedProof + challengePeriod; - // Finally, advance to the next challenge tick. - await userApi.advanceToBlock(nextChallengeTick); - - // Wait for tasks to execute and for the BSPs to submit proofs. - await sleep(500); - - // There should be at least one pending submit proof transaction. - const submitProofsPending = await userApi.assert.extrinsicPresent({ - module: "proofsDealer", - method: "submitProof", - checkTxPool: true - }); - assert(submitProofsPending.length > 0); - - // Seal block and check that the transaction was successful. - await userApi.sealBlock(); - - // Assert for the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual( - proofAcceptedEvents.length, - submitProofsPending.length, - "All pending submit proof transactions should have been successful" - ); - }); - - it( - "Custom challenge is added", - { skip: "Not implemented yet. All BSPs have the same files." }, - async () => { - await it("Custom challenge is included in checkpoint challenge round", async () => { - // TODO: Send transaction for custom challenge with new file key. - // TODO: Advance until next checkpoint challenge block. - // TODO: Check that custom challenge was included in checkpoint challenge round. - }); - - await it("BSP that has it responds to custom challenge with proof of inclusion", async () => { - // TODO: Advance until next challenge for BSP. - // TODO: Build block with proof submission. - // TODO: Check that proof submission was successful, including the custom challenge. - }); - - await it("BSPs who don't have it respond non-inclusion proof", async () => { - // TODO: Advance until next challenge for BSP-Two and BSP-Three. - // TODO: Build block with proof submission. - // TODO: Check that proof submission was successful, with proof of non-inclusion. - }); - } - ); - - it("File is deleted by user", async () => { - // Get the root of the BSP that has the file before deletion. - const bspMetadata = await userApi.query.providers.backupStorageProviders( - ShConsts.DUMMY_BSP_ID - ); - assert(bspMetadata, "BSP metadata should exist"); - assert(bspMetadata.isSome, "BSP metadata should be Some"); - const bspMetadataBlob = bspMetadata.unwrap(); - rootBeforeDeletion = bspMetadataBlob.root.toHex(); - // Make sure it matches the one of the actual merkle forest. - const actualRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); - strictEqual( - rootBeforeDeletion, - actualRoot.toHex(), - "The root of the BSP should match the actual merkle forest root." - ); - - // User sends file deletion request. - await userApi.sealBlock( - userApi.tx.fileSystem.deleteFile( - oneBspFileData.bucketId, - oneBspFileData.fileKey, - oneBspFileData.location, - oneBspFileData.fileSize, - oneBspFileData.fingerprint, - null - ), - shUser - ); - - // Check for a file deletion request event. - await userApi.assert.eventPresent("fileSystem", "FileDeletionRequest"); - - // Advance until the deletion request expires so that it can be processed. - const deletionRequestTtl = Number(userApi.consts.fileSystem.pendingFileDeletionRequestTtl); - const currentBlock = await userApi.rpc.chain.getBlock(); - const currentBlockNumber = currentBlock.block.header.number.toNumber(); - await userApi.advanceToBlock(currentBlockNumber + deletionRequestTtl, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] - }); - - // Check for a file deletion request event. - await userApi.assert.eventPresent("fileSystem", "PriorityChallengeForFileDeletionQueued"); - }); - - it("Priority challenge is included in checkpoint challenge round", async () => { - // Advance to next checkpoint challenge block. - const checkpointChallengePeriod = Number( - userApi.consts.proofsDealer.checkpointChallengePeriod - ); - const lastCheckpointChallengeTick = Number( - await userApi.call.proofsDealerApi.getLastCheckpointChallengeTick() - ); - const nextCheckpointChallengeBlock = lastCheckpointChallengeTick + checkpointChallengePeriod; - await userApi.advanceToBlock(nextCheckpointChallengeBlock, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] - }); - - // Check that the event for the priority challenge is emitted. - const newCheckpointChallengesEvent = await userApi.assert.eventPresent( - "proofsDealer", - "NewCheckpointChallenge" - ); - - // Check that the file key is in the included checkpoint challenges. - const newCheckpointChallengesEventDataBlob = - userApi.events.proofsDealer.NewCheckpointChallenge.is(newCheckpointChallengesEvent.event) && - newCheckpointChallengesEvent.event.data; - assert(newCheckpointChallengesEventDataBlob, "Event doesn't match Type"); - let containsFileKey = false; - for (const checkpointChallenge of newCheckpointChallengesEventDataBlob.challenges) { - if (checkpointChallenge[0].toHuman() === oneBspFileData.fileKey) { - containsFileKey = true; - break; - } - } - assert(containsFileKey, "The file key should be included in the checkpoint challenge."); - }); - - it("BSP that has the file responds with correct proof including the file key, and BSP that doesn't have the file responds with correct proof non-including the file key", async () => { - // Check who has a challenge tick coming up first: the BSP that has the file or BSP-Two who doesn't have it. - // Whoever has the challenge tick first, we check that they submitted a proof successfully first. - const currentTick = (await userApi.call.proofsDealerApi.getCurrentTick()).toNumber(); - - // Calculate next challenge tick for the BSP that has the file. - // We first get the last tick for which the BSP submitted a proof. - const dummyBspLastTickResult = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.DUMMY_BSP_ID); - assert(dummyBspLastTickResult.isOk); - const lastTickBspSubmittedProof = dummyBspLastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const dummyBspChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(dummyBspChallengePeriodResult.isOk); - const dummyBspChallengePeriod = dummyBspChallengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - let dummyBspNextChallengeTick = lastTickBspSubmittedProof + dummyBspChallengePeriod; - // If it is exactly equal to the current tick, we take the next challenge tick. - if (dummyBspNextChallengeTick === currentTick) { - dummyBspNextChallengeTick += dummyBspChallengePeriod; - } - - // Calculate next challenge tick for BSP-Two. - // We first get the last tick for which the BSP submitted a proof. - const bspTwoLastTickResult = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.BSP_TWO_ID); - assert(bspTwoLastTickResult.isOk); - const bspTwoLastTickBspTwoSubmittedProof = bspTwoLastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const bspTwoChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.BSP_TWO_ID - ); - assert(bspTwoChallengePeriodResult.isOk); - const bspTwoChallengePeriod = bspTwoChallengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - let bspTwoNextChallengeTick = bspTwoLastTickBspTwoSubmittedProof + bspTwoChallengePeriod; - // If it is exactly equal to the current tick, we take the next challenge tick. - if (bspTwoNextChallengeTick === currentTick) { - bspTwoNextChallengeTick += bspTwoChallengePeriod; - } - - const firstBspToRespond = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? ShConsts.DUMMY_BSP_ID - : ShConsts.BSP_TWO_ID; - const secondBspToRespond = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? ShConsts.BSP_TWO_ID - : ShConsts.DUMMY_BSP_ID; - const firstBlockToAdvance = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? dummyBspNextChallengeTick - : bspTwoNextChallengeTick; - const secondBlockToAdvance = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? bspTwoNextChallengeTick - : dummyBspNextChallengeTick; - - // Advance to first next challenge block. - await userApi.advanceToBlock(firstBlockToAdvance, { - waitForBspProofs: [DUMMY_BSP_ID, BSP_TWO_ID, BSP_THREE_ID] - }); - - // Wait for BSP to generate the proof and advance one more block. - await sleep(500); - await userApi.sealBlock(); - - // Check for a ProofAccepted event. - const firstChallengeBlockEvents = await userApi.assert.eventMany( - "proofsDealer", - "ProofAccepted" - ); - - // Check that at least one of the `ProofAccepted` events belongs to `firstBspToRespond`. - const atLeastOneEventBelongsToFirstBsp = firstChallengeBlockEvents.some((eventRecord) => { - const firstChallengeBlockEventDataBlob = - userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; - assert(firstChallengeBlockEventDataBlob, "Event doesn't match Type"); - - return firstChallengeBlockEventDataBlob.provider.toString() === firstBspToRespond; - }); - assert(atLeastOneEventBelongsToFirstBsp, "No ProofAccepted event belongs to the first BSP"); - - // If the first BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. - if (firstBspToRespond === ShConsts.DUMMY_BSP_ID) { - const mutationsAppliedEvents = await userApi.assert.eventMany( - "proofsDealer", - "MutationsApplied" - ); - strictEqual( - mutationsAppliedEvents.length, - 1, - "There should be one mutations applied event" - ); - - // Check that the mutations applied event belongs to the dummy BSP. - const mutationsAppliedEventDataBlob = - userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && - mutationsAppliedEvents[0].event.data; - assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); - strictEqual( - mutationsAppliedEventDataBlob.provider.toString(), - ShConsts.DUMMY_BSP_ID, - "The mutations applied event should belong to the dummy BSP" - ); - } - - // Advance to second next challenge block. - await userApi.advanceToBlock(secondBlockToAdvance, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] - }); - - // Wait for BSP to generate the proof and advance one more block. - await sleep(500); - const secondChallengeBlockResult = await userApi.sealBlock(); - - // Check for a ProofAccepted event. - const secondChallengeBlockEvents = await userApi.assert.eventMany( - "proofsDealer", - "ProofAccepted", - secondChallengeBlockResult.events - ); - - // Check that at least one of the `ProofAccepted` events belongs to `secondBspToRespond`. - const atLeastOneEventBelongsToSecondBsp = secondChallengeBlockEvents.some((eventRecord) => { - const secondChallengeBlockEventDataBlob = - userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; - assert(secondChallengeBlockEventDataBlob, "Event doesn't match Type"); - - return secondChallengeBlockEventDataBlob.provider.toString() === secondBspToRespond; - }); - assert(atLeastOneEventBelongsToSecondBsp, "No ProofAccepted event belongs to the second BSP"); - - // If the second BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. - if (secondBspToRespond === ShConsts.DUMMY_BSP_ID) { - const mutationsAppliedEvents = await userApi.assert.eventMany( - "proofsDealer", - "MutationsApplied" - ); - strictEqual( - mutationsAppliedEvents.length, - 1, - "There should be one mutations applied event" - ); - - // Check that the mutations applied event belongs to the dummy BSP. - const mutationsAppliedEventDataBlob = - userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && - mutationsAppliedEvents[0].event.data; - assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); - strictEqual( - mutationsAppliedEventDataBlob.provider.toString(), - ShConsts.DUMMY_BSP_ID, - "The mutations applied event should belong to the dummy BSP" - ); - } - }); - - it("File is removed from Forest by BSP", async () => { - // Make sure the root was updated in the runtime - const bspMetadataAfterDeletion = await userApi.query.providers.backupStorageProviders( - ShConsts.DUMMY_BSP_ID - ); - assert(bspMetadataAfterDeletion, "BSP metadata should exist"); - assert(bspMetadataAfterDeletion.isSome, "BSP metadata should be Some"); - const bspMetadataAfterDeletionBlob = bspMetadataAfterDeletion.unwrap(); - assert( - bspMetadataAfterDeletionBlob.root.toHex() !== rootBeforeDeletion, - "The root should have been updated on chain" - ); - - // Check that the runtime root matches the forest root of the BSP. - const forestRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); - strictEqual( - bspMetadataAfterDeletionBlob.root.toString(), - forestRoot.toString(), - "The runtime root should match the forest root of the BSP" - ); - }); - - it( - "File mutation is finalised and BSP removes it from File Storage", - { skip: "Not implemented yet." }, - async () => { - // TODO: Finalise block with mutations. - // TODO: Check that file is removed from File Storage. Need a RPC method for this. - } - ); - } -); +import assert, { strictEqual } from "node:assert"; +import { + describeBspNet, + shUser, + sleep, + type EnrichedBspApi, + type FileMetadata, + ShConsts +} from "../../../util"; +import { BSP_THREE_ID, BSP_TWO_ID, DUMMY_BSP_ID } from "../../../util/bspNet/consts"; + +describeBspNet( + "BSP: Many BSPs Submit Proofs", + { initialised: "multi", networkConfig: "standard" }, + ({ before, createUserApi, after, it, createApi, createBspApi, getLaunchResponse }) => { + let userApi: EnrichedBspApi; + let bspApi: EnrichedBspApi; + let bspTwoApi: EnrichedBspApi; + let bspThreeApi: EnrichedBspApi; + let fileData: FileMetadata; + let oneBspFileData: FileMetadata; + let rootBeforeDeletion: string; + + before(async () => { + const launchResponse = await getLaunchResponse(); + assert(launchResponse, "BSPNet failed to initialise"); + fileData = launchResponse.fileData; + userApi = await createUserApi(); + bspApi = await createBspApi(); + bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); + bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); + }); + + after(async () => { + await bspTwoApi.disconnect(); + await bspThreeApi.disconnect(); + }); + + it("Network launches and can be queried", async () => { + const userNodePeerId = await userApi.rpc.system.localPeerId(); + strictEqual(userNodePeerId.toString(), userApi.shConsts.NODE_INFOS.user.expectedPeerId); + const bspNodePeerId = await bspApi.rpc.system.localPeerId(); + strictEqual(bspNodePeerId.toString(), userApi.shConsts.NODE_INFOS.bsp.expectedPeerId); + }); + + it("Many BSPs are challenged and correctly submit proofs", async () => { + // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, + // since they all have the same file they were initialised with, and responded to it at + // the same time. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + // Finally, advance to the next challenge tick. + await userApi.advanceToBlock(nextChallengeTick); + + await userApi.assert.extrinsicPresent({ + module: "proofsDealer", + method: "submitProof", + checkTxPool: true, + assertLength: 3, + timeout: 10000 + }); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Get the new last tick for which the BSP submitted a proof. + // It should be the previous last tick plus one BSP period. + const lastTickResultAfterProof = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(lastTickResultAfterProof.isOk); + const lastTickBspSubmittedProofAfterProof = lastTickResultAfterProof.asOk.toNumber(); + strictEqual( + lastTickBspSubmittedProofAfterProof, + lastTickBspSubmittedProof + challengePeriod, + "The last tick for which the BSP submitted a proof should be the previous last tick plus one BSP period" + ); + + // Get the new deadline for the BSP. + // It should be the current last tick, plus one BSP period, plus the challenges tick tolerance. + const challengesTickTolerance = Number(userApi.consts.proofsDealer.challengeTicksTolerance); + const newDeadline = + lastTickBspSubmittedProofAfterProof + challengePeriod + challengesTickTolerance; + const newDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(newDeadlineResult.isOk); + const newDeadlineOnChain = newDeadlineResult.asOk.toNumber(); + strictEqual( + newDeadline, + newDeadlineOnChain, + "The deadline should be the same as the one we just calculated" + ); + }); + + it("BSP fails to submit proof and is marked as slashable", async () => { + // Get BSP-Down's deadline. + const bspDownDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( + userApi.shConsts.BSP_DOWN_ID + ); + assert(bspDownDeadlineResult.isOk); + const bspDownDeadline = bspDownDeadlineResult.asOk.toNumber(); + + // Get the last tick for which the BSP-Down submitted a proof before advancing to the deadline. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.BSP_DOWN_ID + ); + assert(lastTickResult.isOk); + const lastTickBspDownSubmittedProof = lastTickResult.asOk.toNumber(); + // Finally, advance to the next challenge tick. + await userApi.advanceToBlock(bspDownDeadline); + + // Expect to see a `SlashableProvider` event in the last block. + const slashableProviderEvent = await userApi.assert.eventPresent( + "proofsDealer", + "SlashableProvider" + ); + const slashableProviderEventDataBlob = + userApi.events.proofsDealer.SlashableProvider.is(slashableProviderEvent.event) && + slashableProviderEvent.event.data; + assert(slashableProviderEventDataBlob, "Event doesn't match Type"); + strictEqual( + slashableProviderEventDataBlob.provider.toString(), + userApi.shConsts.BSP_DOWN_ID, + "The BSP-Down should be slashable" + ); + + // Get the last tick for which the BSP-Down submitted a proof after advancing to the deadline. + const lastTickResultAfterSlashable = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.BSP_DOWN_ID + ); + assert(lastTickResultAfterSlashable.isOk); + const lastTickBspDownSubmittedProofAfterSlashable = + lastTickResultAfterSlashable.asOk.toNumber(); + + // The new last tick should be equal to the last tick before BSP-Down was marked as slashable plus one challenge period. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + strictEqual( + lastTickBspDownSubmittedProofAfterSlashable, + lastTickBspDownSubmittedProof + challengePeriod, + "The last tick for which the BSP-Down submitted a proof should be the last tick before BSP-Down was marked as slashable plus one challenge period" + ); + }); + + it( + "BSP stops storing last file", + { skip: "Not implemented yet. Needs RPC method to build proofs." }, + async () => { + // TODO: Build inclusion forest proof for file. + // TODO: BSP-Three sends transaction to stop storing the only file it has. + console.log(fileData); + // // Build transaction for BSP-Three to stop storing the only file it has. + // const call = bspThreeApi.sealBlock( + // bspThreeApi.tx.fileSystem.bspStopStoring( + // fileData.fileKey, + // fileData.bucketId, + // fileData.location, + // fileData.owner, + // fileData.fingerprint, + // fileData.fileSize, + // false + // ), + // bspThreeKey + // ); + } + ); + + it( + "BSP can correctly delete a file from its forest and runtime correctly updates its root", + { skip: "Not implemented yet. Needs RPC method to build proofs." }, + async () => { + // TODO: Setup a BSP that has two files which lie under the same NibbledBranch in the forest. + // TODO: Generate the proof to delete one of the files. + /* let inclusionForestProof = bspThreeApi.rpc.storagehubclient.buildForestRoot(fileData.fileKey); */ + // TODO: Request the deletion of the file: + /* const fileDeletionRequestResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspRequestStopStoring( + fileData.fileKey, + fileData.bucketId, + fileData.location, + fileData.owner, + fileData.fingerprint, + fileData.fileSize, + false, + inclusion_forest_proof: ForestProof, + ); */ + // Wait enough blocks for the deletion to be allowed. + /* const currentBlock = await bspThreeApi.rpc.chain.getBlock(); + const currentBlockNumber = currentBlock.block.header.number.toNumber(); + const cooldown = currentBlockNumber + bspThreeApi.consts.fileSystem.minWaitForStopStoring.toNumber(); + await bspThreeApi.advanceToBlock(cooldown); */ + // TODO: Confirm the request of deletion. Make sure the extrinsic doesn't fail and the root is updated correctly. + /* const fileDeletionConfirmResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspConfirmStopStoring( + fileData.fileKey, + inclusionForestProof, + )); + // Check for the confirm stopped storing event. + let confirmStopStoringEvent = bspThreeApi.assert.eventPresent( + "fileSystem", + "BspConfirmStoppedStoring", + fileDeletionConfirmResult.events + ); + // Make sure the new root was updated correctly. + bspThreeApi.rpc.storagehubclient.deleteFile(fileData.fileKey); // Not sure if this is the correct way to do it. + const newRoot = bspThreeApi.rpc.storagehubclient.getForestRoot(); + const newRootInRuntime = confirmStopStoringEvent.event.data.newRoot; + assert(newRoot === newRootInRuntime, "The new root should be updated correctly"); + */ + } + ); + + it("BSP is not challenged any more", { skip: "Not implemented yet." }, async () => { + // TODO: Check that BSP-Three no longer has a challenge deadline. + }); + + it( + "BSP submits proof, transaction gets dropped, BSP-resubmits and succeeds", + { skip: "Dropping transactions is not implemented as testing utility yet." }, + async () => {} + ); + + it("New storage request sent by user, to only one BSP", async () => { + // Pause BSP-Two and BSP-Three. + await userApi.docker.pauseBspContainer("sh-bsp-two"); + await userApi.docker.pauseBspContainer("sh-bsp-three"); + + // Send transaction to create new storage request. + const source = "res/adolphus.jpg"; + const location = "test/adolphus.jpg"; + const bucketName = "nothingmuch-2"; + const fileData = await userApi.file.newStorageRequest(source, location, bucketName); + oneBspFileData = fileData; + }); + + it("Only one BSP confirms it", async () => { + await userApi.wait.bspVolunteer(1); + await userApi.wait.bspStored(1); + }); + + it("BSP correctly responds to challenge with new forest root", async () => { + // Advance to two challenge periods ahead for first BSP. + // This is because in the odd case that we're exactly on the next challenge tick right now, + // there is a race condition chance where the BSP will send the submit proof extrinsic in the + // next block, since the Forest write lock is released as a consequence of the confirm storing + // extrinsic. So we advance two challenge periods ahead to be sure. + + // First we get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate two challenge ticks ahead. + const nextChallengeTick = lastTickBspSubmittedProof + 2 * challengePeriod; + // Finally, advance two challenge ticks ahead. + await userApi.advanceToBlock(nextChallengeTick); + + // Wait for BSP to submit proof. + await sleep(1000); + + // There should be at least one pending submit proof transaction. + const submitProofsPending = await userApi.assert.extrinsicPresent({ + module: "proofsDealer", + method: "submitProof", + checkTxPool: true + }); + assert(submitProofsPending.length > 0); + + // Seal block and check that the transaction was successful. + await userApi.sealBlock(); + + // Assert for the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual( + proofAcceptedEvents.length, + submitProofsPending.length, + "All pending submit proof transactions should have been successful" + ); + }); + + it("Resume BSPs, and they shouldn't volunteer for the expired storage request", async () => { + // Advance a number of blocks up to when the storage request times out for sure. + const storageRequestTtl = Number(userApi.consts.fileSystem.storageRequestTtl); + const currentBlock = await userApi.rpc.chain.getBlock(); + const currentBlockNumber = currentBlock.block.header.number.toNumber(); + await userApi.advanceToBlock(currentBlockNumber + storageRequestTtl, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID] + }); + + // Resume BSP-Two and BSP-Three. + await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-two" }); + await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-three" }); + + // Wait for BSPs to resync. + await sleep(1000); + + // There shouldn't be any pending volunteer transactions. + await assert.rejects( + async () => { + await userApi.assert.extrinsicPresent({ + module: "fileSystem", + method: "bspVolunteer", + checkTxPool: true + }); + }, + /No matching extrinsic found for fileSystem\.bspVolunteer/, + "There should be no pending volunteer transactions" + ); + }); + + it("BSP-Two still correctly responds to challenges with same forest root", async () => { + // Advance some blocks to allow the BSP to process the challenges and submit proofs. + for (let i = 0; i < 20; i++) { + await userApi.sealBlock(); + await sleep(500); + } + + // Advance to next challenge tick for BSP-Two. + // First we get the last tick for which the BSP submitted a proof. + const lastTickResult = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(BSP_TWO_ID); + assert(lastTickResult.isOk); + const lastTickBspTwoSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = + await userApi.call.proofsDealerApi.getChallengePeriod(BSP_TWO_ID); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspTwoSubmittedProof + challengePeriod; + // Finally, advance to the next challenge tick. + await userApi.advanceToBlock(nextChallengeTick); + + // Wait for tasks to execute and for the BSPs to submit proofs. + await sleep(500); + + // There should be at least one pending submit proof transaction. + const submitProofsPending = await userApi.assert.extrinsicPresent({ + module: "proofsDealer", + method: "submitProof", + checkTxPool: true + }); + assert(submitProofsPending.length > 0); + + // Seal block and check that the transaction was successful. + await userApi.sealBlock(); + + // Assert for the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual( + proofAcceptedEvents.length, + submitProofsPending.length, + "All pending submit proof transactions should have been successful" + ); + }); + + it( + "Custom challenge is added", + { skip: "Not implemented yet. All BSPs have the same files." }, + async () => { + await it("Custom challenge is included in checkpoint challenge round", async () => { + // TODO: Send transaction for custom challenge with new file key. + // TODO: Advance until next checkpoint challenge block. + // TODO: Check that custom challenge was included in checkpoint challenge round. + }); + + await it("BSP that has it responds to custom challenge with proof of inclusion", async () => { + // TODO: Advance until next challenge for BSP. + // TODO: Build block with proof submission. + // TODO: Check that proof submission was successful, including the custom challenge. + }); + + await it("BSPs who don't have it respond non-inclusion proof", async () => { + // TODO: Advance until next challenge for BSP-Two and BSP-Three. + // TODO: Build block with proof submission. + // TODO: Check that proof submission was successful, with proof of non-inclusion. + }); + } + ); + + it("File is deleted by user", async () => { + // Get the root of the BSP that has the file before deletion. + const bspMetadata = await userApi.query.providers.backupStorageProviders( + ShConsts.DUMMY_BSP_ID + ); + assert(bspMetadata, "BSP metadata should exist"); + assert(bspMetadata.isSome, "BSP metadata should be Some"); + const bspMetadataBlob = bspMetadata.unwrap(); + rootBeforeDeletion = bspMetadataBlob.root.toHex(); + // Make sure it matches the one of the actual merkle forest. + const actualRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); + strictEqual( + rootBeforeDeletion, + actualRoot.toHex(), + "The root of the BSP should match the actual merkle forest root." + ); + + // User sends file deletion request. + await userApi.sealBlock( + userApi.tx.fileSystem.deleteFile( + oneBspFileData.bucketId, + oneBspFileData.fileKey, + oneBspFileData.location, + oneBspFileData.fileSize, + oneBspFileData.fingerprint, + null + ), + shUser + ); + + // Check for a file deletion request event. + await userApi.assert.eventPresent("fileSystem", "FileDeletionRequest"); + + // Advance until the deletion request expires so that it can be processed. + const deletionRequestTtl = Number(userApi.consts.fileSystem.pendingFileDeletionRequestTtl); + const currentBlock = await userApi.rpc.chain.getBlock(); + const currentBlockNumber = currentBlock.block.header.number.toNumber(); + await userApi.advanceToBlock(currentBlockNumber + deletionRequestTtl, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] + }); + + // Check for a file deletion request event. + await userApi.assert.eventPresent("fileSystem", "PriorityChallengeForFileDeletionQueued"); + }); + + it("Priority challenge is included in checkpoint challenge round", async () => { + // Advance to next checkpoint challenge block. + const checkpointChallengePeriod = Number( + userApi.consts.proofsDealer.checkpointChallengePeriod + ); + const lastCheckpointChallengeTick = Number( + await userApi.call.proofsDealerApi.getLastCheckpointChallengeTick() + ); + const nextCheckpointChallengeBlock = lastCheckpointChallengeTick + checkpointChallengePeriod; + await userApi.advanceToBlock(nextCheckpointChallengeBlock, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] + }); + + // Check that the event for the priority challenge is emitted. + const newCheckpointChallengesEvent = await userApi.assert.eventPresent( + "proofsDealer", + "NewCheckpointChallenge" + ); + + // Check that the file key is in the included checkpoint challenges. + const newCheckpointChallengesEventDataBlob = + userApi.events.proofsDealer.NewCheckpointChallenge.is(newCheckpointChallengesEvent.event) && + newCheckpointChallengesEvent.event.data; + assert(newCheckpointChallengesEventDataBlob, "Event doesn't match Type"); + let containsFileKey = false; + for (const checkpointChallenge of newCheckpointChallengesEventDataBlob.challenges) { + if (checkpointChallenge[0].toHuman() === oneBspFileData.fileKey) { + containsFileKey = true; + break; + } + } + assert(containsFileKey, "The file key should be included in the checkpoint challenge."); + }); + + it("BSP that has the file responds with correct proof including the file key, and BSP that doesn't have the file responds with correct proof non-including the file key", async () => { + // Check who has a challenge tick coming up first: the BSP that has the file or BSP-Two who doesn't have it. + // Whoever has the challenge tick first, we check that they submitted a proof successfully first. + const currentTick = (await userApi.call.proofsDealerApi.getCurrentTick()).toNumber(); + + // Calculate next challenge tick for the BSP that has the file. + // We first get the last tick for which the BSP submitted a proof. + const dummyBspLastTickResult = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.DUMMY_BSP_ID); + assert(dummyBspLastTickResult.isOk); + const lastTickBspSubmittedProof = dummyBspLastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const dummyBspChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(dummyBspChallengePeriodResult.isOk); + const dummyBspChallengePeriod = dummyBspChallengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + let dummyBspNextChallengeTick = lastTickBspSubmittedProof + dummyBspChallengePeriod; + // If it is exactly equal to the current tick, we take the next challenge tick. + if (dummyBspNextChallengeTick === currentTick) { + dummyBspNextChallengeTick += dummyBspChallengePeriod; + } + + // Calculate next challenge tick for BSP-Two. + // We first get the last tick for which the BSP submitted a proof. + const bspTwoLastTickResult = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.BSP_TWO_ID); + assert(bspTwoLastTickResult.isOk); + const bspTwoLastTickBspTwoSubmittedProof = bspTwoLastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const bspTwoChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.BSP_TWO_ID + ); + assert(bspTwoChallengePeriodResult.isOk); + const bspTwoChallengePeriod = bspTwoChallengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + let bspTwoNextChallengeTick = bspTwoLastTickBspTwoSubmittedProof + bspTwoChallengePeriod; + // If it is exactly equal to the current tick, we take the next challenge tick. + if (bspTwoNextChallengeTick === currentTick) { + bspTwoNextChallengeTick += bspTwoChallengePeriod; + } + + const firstBspToRespond = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? ShConsts.DUMMY_BSP_ID + : ShConsts.BSP_TWO_ID; + const secondBspToRespond = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? ShConsts.BSP_TWO_ID + : ShConsts.DUMMY_BSP_ID; + const firstBlockToAdvance = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? dummyBspNextChallengeTick + : bspTwoNextChallengeTick; + const secondBlockToAdvance = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? bspTwoNextChallengeTick + : dummyBspNextChallengeTick; + + // Advance to first next challenge block. + await userApi.advanceToBlock(firstBlockToAdvance, { + waitForBspProofs: [DUMMY_BSP_ID, BSP_TWO_ID, BSP_THREE_ID] + }); + + // Wait for BSP to generate the proof and advance one more block. + await sleep(500); + await userApi.sealBlock(); + + // Check for a ProofAccepted event. + const firstChallengeBlockEvents = await userApi.assert.eventMany( + "proofsDealer", + "ProofAccepted" + ); + + // Check that at least one of the `ProofAccepted` events belongs to `firstBspToRespond`. + const atLeastOneEventBelongsToFirstBsp = firstChallengeBlockEvents.some((eventRecord) => { + const firstChallengeBlockEventDataBlob = + userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; + assert(firstChallengeBlockEventDataBlob, "Event doesn't match Type"); + + return firstChallengeBlockEventDataBlob.provider.toString() === firstBspToRespond; + }); + assert(atLeastOneEventBelongsToFirstBsp, "No ProofAccepted event belongs to the first BSP"); + + // If the first BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. + if (firstBspToRespond === ShConsts.DUMMY_BSP_ID) { + const mutationsAppliedEvents = await userApi.assert.eventMany( + "proofsDealer", + "MutationsApplied" + ); + strictEqual( + mutationsAppliedEvents.length, + 1, + "There should be one mutations applied event" + ); + + // Check that the mutations applied event belongs to the dummy BSP. + const mutationsAppliedEventDataBlob = + userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && + mutationsAppliedEvents[0].event.data; + assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); + strictEqual( + mutationsAppliedEventDataBlob.provider.toString(), + ShConsts.DUMMY_BSP_ID, + "The mutations applied event should belong to the dummy BSP" + ); + } + + // Advance to second next challenge block. + await userApi.advanceToBlock(secondBlockToAdvance, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] + }); + + // Wait for BSP to generate the proof and advance one more block. + await sleep(500); + const secondChallengeBlockResult = await userApi.sealBlock(); + + // Check for a ProofAccepted event. + const secondChallengeBlockEvents = await userApi.assert.eventMany( + "proofsDealer", + "ProofAccepted", + secondChallengeBlockResult.events + ); + + // Check that at least one of the `ProofAccepted` events belongs to `secondBspToRespond`. + const atLeastOneEventBelongsToSecondBsp = secondChallengeBlockEvents.some((eventRecord) => { + const secondChallengeBlockEventDataBlob = + userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; + assert(secondChallengeBlockEventDataBlob, "Event doesn't match Type"); + + return secondChallengeBlockEventDataBlob.provider.toString() === secondBspToRespond; + }); + assert(atLeastOneEventBelongsToSecondBsp, "No ProofAccepted event belongs to the second BSP"); + + // If the second BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. + if (secondBspToRespond === ShConsts.DUMMY_BSP_ID) { + const mutationsAppliedEvents = await userApi.assert.eventMany( + "proofsDealer", + "MutationsApplied" + ); + strictEqual( + mutationsAppliedEvents.length, + 1, + "There should be one mutations applied event" + ); + + // Check that the mutations applied event belongs to the dummy BSP. + const mutationsAppliedEventDataBlob = + userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && + mutationsAppliedEvents[0].event.data; + assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); + strictEqual( + mutationsAppliedEventDataBlob.provider.toString(), + ShConsts.DUMMY_BSP_ID, + "The mutations applied event should belong to the dummy BSP" + ); + } + }); + + it("File is removed from Forest by BSP", async () => { + // Make sure the root was updated in the runtime + const bspMetadataAfterDeletion = await userApi.query.providers.backupStorageProviders( + ShConsts.DUMMY_BSP_ID + ); + assert(bspMetadataAfterDeletion, "BSP metadata should exist"); + assert(bspMetadataAfterDeletion.isSome, "BSP metadata should be Some"); + const bspMetadataAfterDeletionBlob = bspMetadataAfterDeletion.unwrap(); + assert( + bspMetadataAfterDeletionBlob.root.toHex() !== rootBeforeDeletion, + "The root should have been updated on chain" + ); + + // Check that the runtime root matches the forest root of the BSP. + const forestRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); + strictEqual( + bspMetadataAfterDeletionBlob.root.toString(), + forestRoot.toString(), + "The runtime root should match the forest root of the BSP" + ); + }); + + it( + "File mutation is finalised and BSP removes it from File Storage", + { skip: "Not implemented yet." }, + async () => { + // TODO: Finalise block with mutations. + // TODO: Check that file is removed from File Storage. Need a RPC method for this. + } + ); + } +); diff --git a/test/util/bspNet/consts.ts b/test/util/bspNet/consts.ts index 1a5494633..b424fb528 100644 --- a/test/util/bspNet/consts.ts +++ b/test/util/bspNet/consts.ts @@ -1,100 +1,100 @@ -export const NODE_INFOS = { - user: { - containerName: "docker-sh-user-1", - port: 9888, - p2pPort: 30444, - AddressId: "5CombC1j5ZmdNMEpWYpeEWcKPPYcKsC1WgMPgzGLU72SLa4o", - expectedPeerId: "12D3KooWMvbhtYjbhgjoDzbnf71SFznJAKBBkSGYEUtnpES1y9tM" - }, - bsp: { - containerName: "docker-sh-bsp-1", - port: 9666, - p2pPort: 30350, - AddressId: "5FHSHEFWHVGDnyiw66DoRUpLyh5RouWkXo9GT1Sjk8qw7MAg", - expectedPeerId: "12D3KooWNEZ8PGNydcdXTYy1SPHvkP9mbxdtTqGGFVrhorDzeTfU" - }, - msp: { - containerName: "docker-sh-msp-1", - port: 9777, - p2pPort: 30555, - AddressId: "5E1rPv1M2mheg6pM57QqU7TZ6eCwbVpiYfyYkrugpBdEzDiU", - nodeKey: "0x12b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - expectedPeerId: "12D3KooWSUvz8QM5X4tfAaSLErAZjR2puojo16pULBHyqTMGKtNV" - }, - collator: { - containerName: "docker-sh-collator-1", - port: 9955, - p2pPort: 30333, - AddressId: "5C8NC6YuAivp3knYC58Taycx2scQoDcDd3MCEEgyw36Gh1R4" - }, - toxiproxy: { - containerName: "toxiproxy", - port: 8474 - } -} as const; - -export const TEST_ARTEFACTS = { - "res/adolphus.jpg": { - size: 416400n, - checksum: "739fb97f7c2b8e7f192b608722a60dc67ee0797c85ff1ea849c41333a40194f2", - fingerprint: "0x34eb5f637e05fc18f857ccb013250076534192189894d174ee3aa6d3525f6970" - }, - "res/smile.jpg": { - size: 633160n, - checksum: "12094d47c2fdf1a984c0b950c2c0ede733722bea3bee22fef312e017383b410c", - fingerprint: "0x535dd863026735ffe0919cc0fc3d8e5da45b9203f01fbf014dbe98005bd8d2fe" - }, - "res/whatsup.jpg": { - size: 216211n, - checksum: "585ed00a96349499cbc8a3882b0bd6f6aec5ce3b7dbee2d8b3d33f3c09a38ec6", - fingerprint: "0x2b83b972e63f52abc0d4146c4aee1f1ec8aa8e274d2ad1b626529446da93736c" - }, - "res/cloud.jpg": { - size: 346248n, - checksum: "8e06811883fc3e5e6a0331825b365e4bd7b83ba7683fa9da17e4daea25d7a9f5", - fingerprint: "0x5559299bc73782b5ad7e9dd57ba01bb06b8c44f5cab8d7afab5e1db2ea93da4c" - }, - "res/empty-file": { - size: 0n, - checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - fingerprint: "0x03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314" - }, - "res/half-chunk-file": { - size: 512n, - checksum: "c7b3b7dd37d7e0947b04550613692950c72b0551e038a01ab8679a3ea5631104", - fingerprint: "0xade3ca4ff2151a2533e816eb9402ae17e21160c6c52b1855ecff29faea8880b5" - }, - "res/one-chunk-file": { - size: 1024n, - checksum: "1f006b6a97eeb0dfd8cbc91ed815e6a429dcfdc2f3f32f2ac3e7977e70df4988", - fingerprint: "0x0904317e4977ad6f872cd9672d2733da9a628fda86ee9add68623a66918cbd8c" - } -} as const; - -export const DUMMY_MSP_ID = "0x0000000000000000000000000000000000000000000000000000000000000300"; -export const VALUE_PROP = "0x0000000000000000000000000000000000000000000000000000000000000770"; - -export const DUMMY_BSP_ID = TEST_ARTEFACTS["res/whatsup.jpg"].fingerprint; -export const BSP_TWO_ID = "0x0000000000000000000000000000000000000000000000000000000000000002"; -export const BSP_THREE_ID = "0x0000000000000000000000000000000000000000000000000000000000000003"; -export const BSP_DOWN_ID = "0xf000000000000000000000000000000000000000000000000000000000000000"; - -export const CAPACITY_5 = 1024n * 1024n * 5n; // 5 MB -export const CAPACITY_256 = 1024n * 1024n * 256n; // 256 MB -export const CAPACITY_512 = 1024n * 1024n * 512n; // 512 MB -export const CAPACITY_1024 = 1024n * 1024n * 1024n; // 1024 MB - -export const CAPACITY = { - 5: CAPACITY_5, - 256: CAPACITY_256, - 512: CAPACITY_512, - 1024: CAPACITY_1024 -} as const; - -export const U32_MAX = (BigInt(1) << BigInt(32)) - BigInt(1); -export const MAX_STORAGE_CAPACITY = CAPACITY[1024] * 4n - 1n; - -export const REMARK_WEIGHT_REF_TIME = 127_121_340; -export const REMARK_WEIGHT_PROOF_SIZE = 142; -export const TRANSFER_WEIGHT_REF_TIME = 297_297_000; -export const TRANSFER_WEIGHT_PROOF_SIZE = 308; +export const NODE_INFOS = { + user: { + containerName: "docker-sh-user-1", + port: 9888, + p2pPort: 30444, + AddressId: "5CombC1j5ZmdNMEpWYpeEWcKPPYcKsC1WgMPgzGLU72SLa4o", + expectedPeerId: "12D3KooWMvbhtYjbhgjoDzbnf71SFznJAKBBkSGYEUtnpES1y9tM" + }, + bsp: { + containerName: "docker-sh-bsp-1", + port: 9666, + p2pPort: 30350, + AddressId: "5FHSHEFWHVGDnyiw66DoRUpLyh5RouWkXo9GT1Sjk8qw7MAg", + expectedPeerId: "12D3KooWNEZ8PGNydcdXTYy1SPHvkP9mbxdtTqGGFVrhorDzeTfU" + }, + msp: { + containerName: "docker-sh-msp-1", + port: 9777, + p2pPort: 30555, + AddressId: "5E1rPv1M2mheg6pM57QqU7TZ6eCwbVpiYfyYkrugpBdEzDiU", + nodeKey: "0x12b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + expectedPeerId: "12D3KooWSUvz8QM5X4tfAaSLErAZjR2puojo16pULBHyqTMGKtNV" + }, + collator: { + containerName: "docker-sh-collator-1", + port: 9955, + p2pPort: 30333, + AddressId: "5C8NC6YuAivp3knYC58Taycx2scQoDcDd3MCEEgyw36Gh1R4" + }, + toxiproxy: { + containerName: "toxiproxy", + port: 8474 + } +} as const; + +export const TEST_ARTEFACTS = { + "res/adolphus.jpg": { + size: 416400n, + checksum: "739fb97f7c2b8e7f192b608722a60dc67ee0797c85ff1ea849c41333a40194f2", + fingerprint: "0x34eb5f637e05fc18f857ccb013250076534192189894d174ee3aa6d3525f6970" + }, + "res/smile.jpg": { + size: 633160n, + checksum: "12094d47c2fdf1a984c0b950c2c0ede733722bea3bee22fef312e017383b410c", + fingerprint: "0x535dd863026735ffe0919cc0fc3d8e5da45b9203f01fbf014dbe98005bd8d2fe" + }, + "res/whatsup.jpg": { + size: 216211n, + checksum: "585ed00a96349499cbc8a3882b0bd6f6aec5ce3b7dbee2d8b3d33f3c09a38ec6", + fingerprint: "0x2b83b972e63f52abc0d4146c4aee1f1ec8aa8e274d2ad1b626529446da93736c" + }, + "res/cloud.jpg": { + size: 346248n, + checksum: "8e06811883fc3e5e6a0331825b365e4bd7b83ba7683fa9da17e4daea25d7a9f5", + fingerprint: "0x5559299bc73782b5ad7e9dd57ba01bb06b8c44f5cab8d7afab5e1db2ea93da4c" + }, + "res/empty-file": { + size: 0n, + checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + fingerprint: "0x03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314" + }, + "res/half-chunk-file": { + size: 512n, + checksum: "c7b3b7dd37d7e0947b04550613692950c72b0551e038a01ab8679a3ea5631104", + fingerprint: "0xade3ca4ff2151a2533e816eb9402ae17e21160c6c52b1855ecff29faea8880b5" + }, + "res/one-chunk-file": { + size: 1024n, + checksum: "1f006b6a97eeb0dfd8cbc91ed815e6a429dcfdc2f3f32f2ac3e7977e70df4988", + fingerprint: "0x0904317e4977ad6f872cd9672d2733da9a628fda86ee9add68623a66918cbd8c" + } +} as const; + +export const DUMMY_MSP_ID = "0x0000000000000000000000000000000000000000000000000000000000000300"; +export const VALUE_PROP = "0x0000000000000000000000000000000000000000000000000000000000000770"; + +export const DUMMY_BSP_ID = TEST_ARTEFACTS["res/whatsup.jpg"].fingerprint; +export const BSP_TWO_ID = "0x0000000000000000000000000000000000000000000000000000000000000002"; +export const BSP_THREE_ID = "0x0000000000000000000000000000000000000000000000000000000000000003"; +export const BSP_DOWN_ID = "0xf000000000000000000000000000000000000000000000000000000000000000"; + +export const CAPACITY_5 = 1024n * 1024n * 5n; // 5 MB +export const CAPACITY_256 = 1024n * 1024n * 256n; // 256 MB +export const CAPACITY_512 = 1024n * 1024n * 512n; // 512 MB +export const CAPACITY_1024 = 1024n * 1024n * 1024n; // 1024 MB + +export const CAPACITY = { + 5: CAPACITY_5, + 256: CAPACITY_256, + 512: CAPACITY_512, + 1024: CAPACITY_1024 +} as const; + +export const U32_MAX = (BigInt(1) << BigInt(32)) - BigInt(1); +export const MAX_STORAGE_CAPACITY = CAPACITY[1024] * 4n - 1n; + +export const REMARK_WEIGHT_REF_TIME = 127_121_340; +export const REMARK_WEIGHT_PROOF_SIZE = 142; +export const TRANSFER_WEIGHT_REF_TIME = 297_297_000; +export const TRANSFER_WEIGHT_PROOF_SIZE = 308; diff --git a/test/util/bspNet/docker.ts b/test/util/bspNet/docker.ts index 1dfd99db6..226021a37 100644 --- a/test/util/bspNet/docker.ts +++ b/test/util/bspNet/docker.ts @@ -1,285 +1,285 @@ -import Docker from "dockerode"; -import { execSync } from "node:child_process"; -import path from "node:path"; -import { DOCKER_IMAGE } from "../constants"; -import { sendCustomRpc } from "../rpc"; -import * as NodeBspNet from "./node"; -import { BspNetTestApi } from "./test-api"; -import invariant from "tiny-invariant"; -import { PassThrough, type Readable } from "node:stream"; - -export const checkBspForFile = async (filePath: string) => { - const containerId = "docker-sh-bsp-1"; - const loc = path.join("/storage", filePath); - - for (let i = 0; i < 10; i++) { - try { - // TODO: Replace with dockerode - execSync(`docker exec ${containerId} ls ${loc}`, { stdio: "ignore" }); - return; - } catch { - await new Promise((resolve) => setTimeout(resolve, 1000)); - } - } - throw `File not found: ${loc} in ${containerId}`; -}; - -export const checkFileChecksum = async (filePath: string) => { - const containerId = "docker-sh-bsp-1"; - const loc = path.join("/storage", filePath); - const output = execSync(`docker exec ${containerId} sha256sum ${loc}`); - return output.toString().split(" ")[0]; -}; - -export const showContainers = () => { - try { - // TODO: Replace with dockerode - execSync("docker ps -a", { stdio: "inherit" }); - } catch (e) { - console.log(e); - console.log("Error displaying docker containers"); - } -}; - -export const addBspContainer = async (options?: { - name?: string; - connectToPeer?: boolean; // unused - additionalArgs?: string[]; -}) => { - const docker = new Docker(); - const existingBsps = ( - await docker.listContainers({ - filters: { ancestor: [DOCKER_IMAGE] } - }) - ) - .flatMap(({ Command }) => Command) - .filter((cmd) => cmd.includes("--provider-type=bsp")); - - const bspNum = existingBsps.length; - - invariant(bspNum > 0, "No existing BSP containers"); - - const p2pPort = 30350 + bspNum; - const rpcPort = 9888 + bspNum * 7; - const containerName = options?.name || `docker-sh-bsp-${bspNum + 1}`; - // get bootnode from docker args - - const { Args } = await docker.getContainer("docker-sh-user-1").inspect(); - - const bootNodeArg = Args.find((arg) => arg.includes("--bootnodes=")); - - invariant(bootNodeArg, "No bootnode found in docker args"); - - let keystorePath: string; - const keystoreArg = Args.find((arg) => arg.includes("--keystore-path=")); - if (keystoreArg) { - keystorePath = keystoreArg.split("=")[1]; - } else { - keystorePath = "/keystore"; - } - - const container = await docker.createContainer({ - Image: DOCKER_IMAGE, - name: containerName, - platform: "linux/amd64", - NetworkingConfig: { - EndpointsConfig: { - docker_default: {} - } - }, - HostConfig: { - PortBindings: { - "9944/tcp": [{ HostPort: rpcPort.toString() }], - [`${p2pPort}/tcp`]: [{ HostPort: p2pPort.toString() }] - }, - Binds: [`${process.cwd()}/../docker/dev-keystores:${keystorePath}:rw`] - }, - Cmd: [ - "--dev", - "--sealing=manual", - "--provider", - "--provider-type=bsp", - `--name=${containerName}`, - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--rpc-cors=all", - `--port=${p2pPort}`, - "--base-path=/data", - bootNodeArg, - ...(options?.additionalArgs || []) - ] - }); - await container.start(); - - let peerId: string | undefined; - for (let i = 0; i < 20; i++) { - try { - peerId = await sendCustomRpc(`http://127.0.0.1:${rpcPort}`, "system_localPeerId"); - break; - } catch { - await new Promise((resolve) => setTimeout(resolve, 500)); - } - } - - invariant(peerId, "Failed to connect after 10s. Exiting..."); - - const api = await BspNetTestApi.create(`ws://127.0.0.1:${rpcPort}`); - - const chainName = api.consts.system.version.specName.toString(); - - invariant( - chainName === "storage-hub-runtime", - `Error connecting to BSP via api ${containerName}` - ); - - await api.disconnect(); - - console.log( - `▶️ BSP container started with name: ${containerName}, rpc port: ${rpcPort}, p2p port: ${p2pPort}, peerId: ${peerId}` - ); - - return { containerName, rpcPort, p2pPort, peerId }; -}; - -// Make this a rusty style OO function with api contexts -export const pauseBspContainer = async (containerName: string) => { - const docker = new Docker(); - const container = docker.getContainer(containerName); - await container.pause(); -}; - -export const stopBspContainer = async (containerName: string) => { - const docker = new Docker(); - const containersToStop = await docker.listContainers({ - filters: { name: [containerName] } - }); - - await docker.getContainer(containersToStop[0].Id).stop(); - await docker.getContainer(containersToStop[0].Id).remove({ force: true }); -}; - -export const startBspContainer = async (options: { - containerName: string; -}) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - await container.start(); -}; - -export const restartBspContainer = async (options: { - containerName: string; -}) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - await container.restart(); -}; - -export const resumeBspContainer = async (options: { - containerName: string; -}) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - await container.unpause(); -}; - -export const dropAllTransactionsGlobally = async () => { - const docker = new Docker(); - - const containersToStop = await docker.listContainers({ - filters: { ancestor: ["storage-hub:local"] } - }); - - for (const container of containersToStop) { - const publicPort = container.Ports.filter( - ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 - )[0].PublicPort; - const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; - await using api = await BspNetTestApi.connect(endpoint); - try { - await NodeBspNet.dropTransaction(api); - } catch { - console.log(`Error dropping txn from ${container.Id}, continuing...`); - } - } -}; - -export const dropTransactionGlobally = async (options: { module: string; method: string }) => { - const docker = new Docker(); - - const containersToStop = await docker.listContainers({ - filters: { ancestor: ["storage-hub:local"] } - }); - - for (const container of containersToStop) { - const publicPort = container.Ports.filter( - ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 - )[0].PublicPort; - const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; - await using api = await BspNetTestApi.connect(endpoint); - await NodeBspNet.dropTransaction(api, { module: options.module, method: options.method }); - } -}; - -export const waitForLog = async (options: { - searchString: string; - containerName: string; - timeout?: number; -}): Promise => { - return new Promise((resolve, reject) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - - container.logs( - { follow: true, stdout: true, stderr: true, tail: 0, timestamps: false }, - (err, stream) => { - if (err) { - return reject(err); - } - - if (stream === undefined) { - return reject(new Error("No stream returned.")); - } - - const stdout = new PassThrough(); - const stderr = new PassThrough(); - - docker.modem.demuxStream(stream, stdout, stderr); - - let timeoutHandle: NodeJS.Timeout | undefined; - - const cleanup = () => { - (stream as Readable).destroy(); - stdout.destroy(); - stderr.destroy(); - if (timeoutHandle) { - clearTimeout(timeoutHandle); - } - }; - - const onData = (chunk: Buffer) => { - const log = chunk.toString("utf8"); - if (log.includes(options.searchString)) { - cleanup(); - resolve(log); - } - }; - - stdout.on("data", onData); - stderr.on("data", onData); - - stream.on("error", (err) => { - cleanup(); - reject(err); - }); - - if (options.timeout) { - timeoutHandle = setTimeout(() => { - cleanup(); - reject(new Error(`Timeout of ${options.timeout}ms exceeded while waiting for log.`)); - }, options.timeout); - } - } - ); - }); -}; +import Docker from "dockerode"; +import { execSync } from "node:child_process"; +import path from "node:path"; +import { DOCKER_IMAGE } from "../constants"; +import { sendCustomRpc } from "../rpc"; +import * as NodeBspNet from "./node"; +import { BspNetTestApi } from "./test-api"; +import invariant from "tiny-invariant"; +import { PassThrough, type Readable } from "node:stream"; + +export const checkBspForFile = async (filePath: string) => { + const containerId = "docker-sh-bsp-1"; + const loc = path.join("/storage", filePath); + + for (let i = 0; i < 10; i++) { + try { + // TODO: Replace with dockerode + execSync(`docker exec ${containerId} ls ${loc}`, { stdio: "ignore" }); + return; + } catch { + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + } + throw `File not found: ${loc} in ${containerId}`; +}; + +export const checkFileChecksum = async (filePath: string) => { + const containerId = "docker-sh-bsp-1"; + const loc = path.join("/storage", filePath); + const output = execSync(`docker exec ${containerId} sha256sum ${loc}`); + return output.toString().split(" ")[0]; +}; + +export const showContainers = () => { + try { + // TODO: Replace with dockerode + execSync("docker ps -a", { stdio: "inherit" }); + } catch (e) { + console.log(e); + console.log("Error displaying docker containers"); + } +}; + +export const addBspContainer = async (options?: { + name?: string; + connectToPeer?: boolean; // unused + additionalArgs?: string[]; +}) => { + const docker = new Docker(); + const existingBsps = ( + await docker.listContainers({ + filters: { ancestor: [DOCKER_IMAGE] } + }) + ) + .flatMap(({ Command }) => Command) + .filter((cmd) => cmd.includes("--provider-type=bsp")); + + const bspNum = existingBsps.length; + + invariant(bspNum > 0, "No existing BSP containers"); + + const p2pPort = 30350 + bspNum; + const rpcPort = 9888 + bspNum * 7; + const containerName = options?.name || `docker-sh-bsp-${bspNum + 1}`; + // get bootnode from docker args + + const { Args } = await docker.getContainer("docker-sh-user-1").inspect(); + + const bootNodeArg = Args.find((arg) => arg.includes("--bootnodes=")); + + invariant(bootNodeArg, "No bootnode found in docker args"); + + let keystorePath: string; + const keystoreArg = Args.find((arg) => arg.includes("--keystore-path=")); + if (keystoreArg) { + keystorePath = keystoreArg.split("=")[1]; + } else { + keystorePath = "/keystore"; + } + + const container = await docker.createContainer({ + Image: DOCKER_IMAGE, + name: containerName, + platform: "linux/amd64", + NetworkingConfig: { + EndpointsConfig: { + docker_default: {} + } + }, + HostConfig: { + PortBindings: { + "9944/tcp": [{ HostPort: rpcPort.toString() }], + [`${p2pPort}/tcp`]: [{ HostPort: p2pPort.toString() }] + }, + Binds: [`${process.cwd()}/../docker/dev-keystores:${keystorePath}:rw`] + }, + Cmd: [ + "--dev", + "--sealing=manual", + "--provider", + "--provider-type=bsp", + `--name=${containerName}`, + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--rpc-cors=all", + `--port=${p2pPort}`, + "--base-path=/data", + bootNodeArg, + ...(options?.additionalArgs || []) + ] + }); + await container.start(); + + let peerId: string | undefined; + for (let i = 0; i < 20; i++) { + try { + peerId = await sendCustomRpc(`http://127.0.0.1:${rpcPort}`, "system_localPeerId"); + break; + } catch { + await new Promise((resolve) => setTimeout(resolve, 500)); + } + } + + invariant(peerId, "Failed to connect after 10s. Exiting..."); + + const api = await BspNetTestApi.create(`ws://127.0.0.1:${rpcPort}`); + + const chainName = api.consts.system.version.specName.toString(); + + invariant( + chainName === "storage-hub-runtime", + `Error connecting to BSP via api ${containerName}` + ); + + await api.disconnect(); + + console.log( + `▶️ BSP container started with name: ${containerName}, rpc port: ${rpcPort}, p2p port: ${p2pPort}, peerId: ${peerId}` + ); + + return { containerName, rpcPort, p2pPort, peerId }; +}; + +// Make this a rusty style OO function with api contexts +export const pauseBspContainer = async (containerName: string) => { + const docker = new Docker(); + const container = docker.getContainer(containerName); + await container.pause(); +}; + +export const stopBspContainer = async (containerName: string) => { + const docker = new Docker(); + const containersToStop = await docker.listContainers({ + filters: { name: [containerName] } + }); + + await docker.getContainer(containersToStop[0].Id).stop(); + await docker.getContainer(containersToStop[0].Id).remove({ force: true }); +}; + +export const startBspContainer = async (options: { + containerName: string; +}) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + await container.start(); +}; + +export const restartBspContainer = async (options: { + containerName: string; +}) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + await container.restart(); +}; + +export const resumeBspContainer = async (options: { + containerName: string; +}) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + await container.unpause(); +}; + +export const dropAllTransactionsGlobally = async () => { + const docker = new Docker(); + + const containersToStop = await docker.listContainers({ + filters: { ancestor: ["storage-hub:local"] } + }); + + for (const container of containersToStop) { + const publicPort = container.Ports.filter( + ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 + )[0].PublicPort; + const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; + await using api = await BspNetTestApi.connect(endpoint); + try { + await NodeBspNet.dropTransaction(api); + } catch { + console.log(`Error dropping txn from ${container.Id}, continuing...`); + } + } +}; + +export const dropTransactionGlobally = async (options: { module: string; method: string }) => { + const docker = new Docker(); + + const containersToStop = await docker.listContainers({ + filters: { ancestor: ["storage-hub:local"] } + }); + + for (const container of containersToStop) { + const publicPort = container.Ports.filter( + ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 + )[0].PublicPort; + const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; + await using api = await BspNetTestApi.connect(endpoint); + await NodeBspNet.dropTransaction(api, { module: options.module, method: options.method }); + } +}; + +export const waitForLog = async (options: { + searchString: string; + containerName: string; + timeout?: number; +}): Promise => { + return new Promise((resolve, reject) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + + container.logs( + { follow: true, stdout: true, stderr: true, tail: 0, timestamps: false }, + (err, stream) => { + if (err) { + return reject(err); + } + + if (stream === undefined) { + return reject(new Error("No stream returned.")); + } + + const stdout = new PassThrough(); + const stderr = new PassThrough(); + + docker.modem.demuxStream(stream, stdout, stderr); + + let timeoutHandle: NodeJS.Timeout | undefined; + + const cleanup = () => { + (stream as Readable).destroy(); + stdout.destroy(); + stderr.destroy(); + if (timeoutHandle) { + clearTimeout(timeoutHandle); + } + }; + + const onData = (chunk: Buffer) => { + const log = chunk.toString("utf8"); + if (log.includes(options.searchString)) { + cleanup(); + resolve(log); + } + }; + + stdout.on("data", onData); + stderr.on("data", onData); + + stream.on("error", (err) => { + cleanup(); + reject(err); + }); + + if (options.timeout) { + timeoutHandle = setTimeout(() => { + cleanup(); + reject(new Error(`Timeout of ${options.timeout}ms exceeded while waiting for log.`)); + }, options.timeout); + } + } + ); + }); +}; diff --git a/test/util/bspNet/helpers.ts b/test/util/bspNet/helpers.ts index cd3410abd..8109a8bb0 100644 --- a/test/util/bspNet/helpers.ts +++ b/test/util/bspNet/helpers.ts @@ -1,527 +1,527 @@ -import type { KeyringPair } from "@polkadot/keyring/types"; -import "@storagehub/api-augment"; -import { v2 as compose } from "docker-compose"; -import Docker from "dockerode"; -import * as child_process from "node:child_process"; -import { execSync } from "node:child_process"; -import crypto from "node:crypto"; -import path from "node:path"; -import * as util from "node:util"; -import { DOCKER_IMAGE, MILLIUNIT, UNIT } from "../constants.ts"; -import { - alice, - bspDownKey, - bspDownSeed, - bspKey, - bspThreeKey, - bspThreeSeed, - bspTwoKey, - bspTwoSeed, - shUser -} from "../pjsKeyring"; -import { addBspContainer, showContainers } from "./docker"; -import type { BspNetConfig, InitialisedMultiBspNetwork } from "./types"; -import { CAPACITY, MAX_STORAGE_CAPACITY } from "./consts"; -import * as ShConsts from "./consts.ts"; -import { BspNetTestApi, type EnrichedBspApi } from "./test-api.ts"; -import invariant from "tiny-invariant"; -import * as fs from "node:fs"; -import { parse, stringify } from "yaml"; -import { sealBlock } from "./block.ts"; -import type { ApiPromise } from "@polkadot/api"; - -const exec = util.promisify(child_process.exec); - -export const getContainerIp = async (containerName: string, verbose = false): Promise => { - const maxRetries = 60; - const sleepTime = 500; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for ${containerName} to launch...`); - - // TODO: Replace with dockerode command - try { - const { stdout } = await exec( - `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` - ); - return stdout.trim(); - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - // TODO: Replace with dockerode - execSync("docker ps -a", { stdio: "inherit" }); - try { - execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); - execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); - } catch (e) { - console.log(e); - } - console.log( - `Error fetching container IP for ${containerName} after ${ - (maxRetries * sleepTime) / 1000 - } seconds` - ); - showContainers(); - throw "Error fetching container IP"; -}; - -export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); -export const getContainerPeerId = async (url: string, verbose = false) => { - const maxRetries = 60; - const sleepTime = 500; - - const payload = { - id: "1", - jsonrpc: "2.0", - method: "system_localPeerId", - params: [] - }; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for node at ${url} to launch...`); - - try { - const response = await fetch(url, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(payload) - }); - - invariant(response.ok, `HTTP error! status: ${response.status}`); - - const resp = (await response.json()) as any; - return resp.result as string; - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - - console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); - showContainers(); - throw `Error fetching peerId from ${url}`; -}; - -export const runSimpleBspNet = async (bspNetConfig: BspNetConfig, verbose = false) => { - let userApi: EnrichedBspApi | undefined; - try { - console.log(`SH user id: ${shUser.address}`); - console.log(`SH BSP id: ${bspKey.address}`); - let file = "local-dev-bsp-compose.yml"; - if (bspNetConfig.rocksdb) { - file = "local-dev-bsp-rocksdb-compose.yml"; - } - if (bspNetConfig.noisy) { - file = "noisy-bsp-compose.yml"; - } - const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); - const cwd = path.resolve(process.cwd(), "..", "docker"); - const composeFile = fs.readFileSync(composeFilePath, "utf8"); - const composeYaml = parse(composeFile); - if (bspNetConfig.extrinsicRetryTimeout) { - composeYaml.services["sh-bsp"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - composeYaml.services["sh-user"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - } - - const updatedCompose = stringify(composeYaml); - - if (bspNetConfig.noisy) { - await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); - } - - await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); - - const bspIp = await getContainerIp( - bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName - ); - - if (bspNetConfig.noisy) { - verbose && console.log(`toxiproxy IP: ${bspIp}`); - } else { - verbose && console.log(`sh-bsp IP: ${bspIp}`); - } - - const bspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`); - - process.env.BSP_IP = bspIp; - process.env.BSP_PEER_ID = bspPeerId; - - await compose.upOne("sh-user", { - cwd: cwd, - configAsString: updatedCompose, - log: true, - env: { - ...process.env, - BSP_IP: bspIp, - BSP_PEER_ID: bspPeerId - } - }); - - const peerIDUser = await getContainerPeerId( - `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` - ); - verbose && console.log(`sh-user Peer ID: ${peerIDUser}`); - - const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; - - // Create Connection API Object to User Node - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - // Give Balances - const amount = 10000n * 10n ** 12n; - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) - ); - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) - ); - - // Setting: - // replication_target = 1 -> One BSP is enough to fulfil a storage request. - // block_range_to_maximum_threshold = 1 -> The threshold goes from the minimum to the maximum in 1 tick. - await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); - - // Adjusting runtime parameters... - // The `set_parameter` extrinsic receives an object like this: - // { - // RuntimeConfig: Enum { - // SlashAmountPerMaxFileSize: [null, {VALUE_YOU_WANT}], - // StakeToChallengePeriod: [null, {VALUE_YOU_WANT}], - // CheckpointChallengePeriod: [null, {VALUE_YOU_WANT}], - // MinChallengePeriod: [null, {VALUE_YOU_WANT}], - // } - // } - const slashAmountPerMaxFileSizeRuntimeParameter = { - RuntimeConfig: { - SlashAmountPerMaxFileSize: [null, 20n * MILLIUNIT] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.parameters.setParameter(slashAmountPerMaxFileSizeRuntimeParameter) - ) - ); - const stakeToChallengePeriodRuntimeParameter = { - RuntimeConfig: { - StakeToChallengePeriod: [null, 1000n * UNIT] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.parameters.setParameter(stakeToChallengePeriodRuntimeParameter) - ) - ); - const checkpointChallengePeriodRuntimeParameter = { - RuntimeConfig: { - CheckpointChallengePeriod: [null, 10] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.parameters.setParameter(checkpointChallengePeriodRuntimeParameter) - ) - ); - const minChallengePeriodRuntimeParameter = { - RuntimeConfig: { - MinChallengePeriod: [null, 5] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.parameters.setParameter(minChallengePeriodRuntimeParameter)) - ); - - // Make BSP - await forceSignupBsp({ - api: userApi, - who: bspKey.address, - multiaddress: multiAddressBsp, - bspId: ShConsts.DUMMY_BSP_ID, - capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, - weight: bspNetConfig.bspStartingWeight - }); - - // Make MSP - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.providers.forceMspSignUp( - alice.address, - ShConsts.DUMMY_MSP_ID, - bspNetConfig.capacity || ShConsts.CAPACITY_512, - [multiAddressBsp], - { - identifier: ShConsts.VALUE_PROP, - dataLimit: 500, - protocols: ["https", "ssh", "telnet"] - }, - alice.address - ) - ) - ); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const forceSignupBsp = async (options: { - api: EnrichedBspApi; - multiaddress: string; - who: string | Uint8Array; - bspId?: string; - capacity?: bigint; - payeeAddress?: string; - weight?: bigint; -}) => { - const bspId = options.bspId || `0x${crypto.randomBytes(32).toString("hex")}`; - const blockResults = await options.api.sealBlock( - options.api.tx.sudo.sudo( - options.api.tx.providers.forceBspSignUp( - options.who, - bspId, - options.capacity || ShConsts.CAPACITY_512, - [options.multiaddress], - options.payeeAddress || options.who, - options.weight ?? null - ) - ) - ); - return Object.assign(bspId, blockResults); -}; -export const closeSimpleBspNet = async () => { - const docker = new Docker(); - - const allContainers = await docker.listContainers({ all: true }); - - const existingNodes = allContainers.filter((container) => container.Image === DOCKER_IMAGE); - - const toxiproxyContainer = allContainers.find((container) => - container.Names.some((name) => name.includes("toxiproxy")) - ); - - const promises = existingNodes.map(async (node) => docker.getContainer(node.Id).stop()); - - if (toxiproxyContainer && toxiproxyContainer.State === "running") { - console.log("Stopping toxiproxy container"); - promises.push(docker.getContainer(toxiproxyContainer.Id).stop()); - } else { - console.log("No running toxiproxy container found, skipping"); - } - - await Promise.allSettled(promises); - - await docker.pruneContainers(); - await docker.pruneVolumes(); -}; - -export const runInitialisedBspsNet = async (bspNetConfig: BspNetConfig) => { - await runSimpleBspNet(bspNetConfig); - - let userApi: EnrichedBspApi | undefined; - try { - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ - const source = "res/whatsup.jpg"; - const destination = "test/smile.jpg"; - const bucketName = "nothingmuch-1"; - - const newBucketEventEvent = await userApi.createBucket(bucketName); - const newBucketEventDataBlob = - userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; - - invariant(newBucketEventDataBlob, "Event doesn't match Type"); - - const { fingerprint, file_size, location } = - await userApi.rpc.storagehubclient.loadFileInStorage( - source, - destination, - ShConsts.NODE_INFOS.user.AddressId, - newBucketEventDataBlob.bucketId - ); - - await userApi.sealBlock( - userApi.tx.fileSystem.issueStorageRequest( - newBucketEventDataBlob.bucketId, - location, - fingerprint, - file_size, - ShConsts.DUMMY_MSP_ID, - [ShConsts.NODE_INFOS.user.expectedPeerId] - ), - shUser - ); - - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const runMultipleInitialisedBspsNet = async ( - bspNetConfig: BspNetConfig -): Promise => { - await runSimpleBspNet(bspNetConfig); - - let userApi: EnrichedBspApi | undefined; - try { - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(5, 1))); - - // Add more BSPs to the network. - // One BSP will be down, two more will be up. - const { containerName: bspDownContainerName } = await addBsp(userApi, bspDownKey, { - name: "sh-bsp-down", - rocksdb: bspNetConfig.rocksdb, - bspKeySeed: bspDownSeed, - bspId: ShConsts.BSP_DOWN_ID, - bspStartingWeight: bspNetConfig.capacity, - additionalArgs: ["--keystore-path=/keystore/bsp-down"] - }); - const { rpcPort: bspTwoRpcPort } = await addBsp(userApi, bspTwoKey, { - name: "sh-bsp-two", - rocksdb: bspNetConfig.rocksdb, - bspKeySeed: bspTwoSeed, - bspId: ShConsts.BSP_TWO_ID, - bspStartingWeight: bspNetConfig.capacity, - additionalArgs: ["--keystore-path=/keystore/bsp-two"] - }); - const { rpcPort: bspThreeRpcPort } = await addBsp(userApi, bspThreeKey, { - name: "sh-bsp-three", - rocksdb: bspNetConfig.rocksdb, - bspKeySeed: bspThreeSeed, - bspId: ShConsts.BSP_THREE_ID, - bspStartingWeight: bspNetConfig.capacity, - additionalArgs: ["--keystore-path=/keystore/bsp-three"] - }); - - // Everything executed below is tested in `volunteer.test.ts` and `onboard.test.ts` files. - // For the context of this test, this is a preamble, so that a BSP has a challenge cycle initiated. - - /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ - const source = "res/whatsup.jpg"; - const location = "test/smile.jpg"; - const bucketName = "nothingmuch-1"; - - const fileMetadata = await userApi.file.newStorageRequest(source, location, bucketName); - - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - - // Stopping BSP that is supposed to be down. - await userApi.docker.stopBspContainer(bspDownContainerName); - - return { - bspTwoRpcPort, - bspThreeRpcPort, - fileData: { - fileKey: fileMetadata.fileKey, - bucketId: fileMetadata.bucketId, - location: location, - owner: fileMetadata.owner, - fingerprint: fileMetadata.fingerprint, - fileSize: fileMetadata.fileSize - } - }; - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const cleardownTest = async (cleardownOptions: { - api: EnrichedBspApi | EnrichedBspApi[]; - keepNetworkAlive?: boolean; -}) => { - try { - if (Array.isArray(cleardownOptions.api)) { - for (const api of cleardownOptions.api) { - await api.disconnect(); - } - } else { - await cleardownOptions.api.disconnect(); - } - } catch (e) { - console.error(e); - console.log("cleardown failed, but we will continue."); - } - cleardownOptions.keepNetworkAlive === true ? null : await closeSimpleBspNet(); -}; - -export const createCheckBucket = async (api: EnrichedBspApi, bucketName: string) => { - const newBucketEventEvent = await api.createBucket(bucketName); - const newBucketEventDataBlob = - api.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; - - invariant(newBucketEventDataBlob, "Event doesn't match Type"); - - return newBucketEventDataBlob; -}; - -export const addBsp = async ( - api: ApiPromise, - bspKey: KeyringPair, - options?: { - name?: string; - rocksdb?: boolean; - bspKeySeed?: string; - bspId?: string; - bspStartingWeight?: bigint; - maxStorageCapacity?: number; - extrinsicRetryTimeout?: number; - additionalArgs?: string[]; - } -) => { - // Launch a BSP node. - const additionalArgs = options?.additionalArgs ?? []; - if (options?.extrinsicRetryTimeout) { - additionalArgs.push(`--extrinsic-retry-timeout=${options.extrinsicRetryTimeout}`); - } - if (options?.rocksdb) { - additionalArgs.push("--storage-layer=rocks-db"); - } - additionalArgs.push(`--storage-path=/tmp/bsp/${bspKey.address}`); - additionalArgs.push( - `--max-storage-capacity=${options?.maxStorageCapacity ?? MAX_STORAGE_CAPACITY}` - ); - additionalArgs.push(`--jump-capacity=${options?.maxStorageCapacity ?? CAPACITY[1024]}`); - const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ - ...options, - additionalArgs - }); - - //Give it some balance. - const amount = 10000n * 10n ** 12n; - await sealBlock(api, api.tx.sudo.sudo(api.tx.balances.forceSetBalance(bspKey.address, amount))); - - const bspIp = await getContainerIp(containerName); - const multiAddressBsp = `/ip4/${bspIp}/tcp/${p2pPort}/p2p/${peerId}`; - - // Make BSP - await sealBlock( - api, - api.tx.sudo.sudo( - api.tx.providers.forceBspSignUp( - bspKey.address, - options?.bspId ?? bspKey.publicKey, - ShConsts.CAPACITY_512, - [multiAddressBsp], - bspKey.address, - options?.bspStartingWeight ?? null - ) - ) - ); - - return { containerName, rpcPort, p2pPort, peerId }; -}; +import type { KeyringPair } from "@polkadot/keyring/types"; +import "@storagehub/api-augment"; +import { v2 as compose } from "docker-compose"; +import Docker from "dockerode"; +import * as child_process from "node:child_process"; +import { execSync } from "node:child_process"; +import crypto from "node:crypto"; +import path from "node:path"; +import * as util from "node:util"; +import { DOCKER_IMAGE, MILLIUNIT, UNIT } from "../constants.ts"; +import { + alice, + bspDownKey, + bspDownSeed, + bspKey, + bspThreeKey, + bspThreeSeed, + bspTwoKey, + bspTwoSeed, + shUser +} from "../pjsKeyring"; +import { addBspContainer, showContainers } from "./docker"; +import type { BspNetConfig, InitialisedMultiBspNetwork } from "./types"; +import { CAPACITY, MAX_STORAGE_CAPACITY } from "./consts"; +import * as ShConsts from "./consts.ts"; +import { BspNetTestApi, type EnrichedBspApi } from "./test-api.ts"; +import invariant from "tiny-invariant"; +import * as fs from "node:fs"; +import { parse, stringify } from "yaml"; +import { sealBlock } from "./block.ts"; +import type { ApiPromise } from "@polkadot/api"; + +const exec = util.promisify(child_process.exec); + +export const getContainerIp = async (containerName: string, verbose = false): Promise => { + const maxRetries = 60; + const sleepTime = 500; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for ${containerName} to launch...`); + + // TODO: Replace with dockerode command + try { + const { stdout } = await exec( + `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` + ); + return stdout.trim(); + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + // TODO: Replace with dockerode + execSync("docker ps -a", { stdio: "inherit" }); + try { + execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); + execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); + } catch (e) { + console.log(e); + } + console.log( + `Error fetching container IP for ${containerName} after ${ + (maxRetries * sleepTime) / 1000 + } seconds` + ); + showContainers(); + throw "Error fetching container IP"; +}; + +export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); +export const getContainerPeerId = async (url: string, verbose = false) => { + const maxRetries = 60; + const sleepTime = 500; + + const payload = { + id: "1", + jsonrpc: "2.0", + method: "system_localPeerId", + params: [] + }; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for node at ${url} to launch...`); + + try { + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(payload) + }); + + invariant(response.ok, `HTTP error! status: ${response.status}`); + + const resp = (await response.json()) as any; + return resp.result as string; + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + + console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); + showContainers(); + throw `Error fetching peerId from ${url}`; +}; + +export const runSimpleBspNet = async (bspNetConfig: BspNetConfig, verbose = false) => { + let userApi: EnrichedBspApi | undefined; + try { + console.log(`SH user id: ${shUser.address}`); + console.log(`SH BSP id: ${bspKey.address}`); + let file = "local-dev-bsp-compose.yml"; + if (bspNetConfig.rocksdb) { + file = "local-dev-bsp-rocksdb-compose.yml"; + } + if (bspNetConfig.noisy) { + file = "noisy-bsp-compose.yml"; + } + const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); + const cwd = path.resolve(process.cwd(), "..", "docker"); + const composeFile = fs.readFileSync(composeFilePath, "utf8"); + const composeYaml = parse(composeFile); + if (bspNetConfig.extrinsicRetryTimeout) { + composeYaml.services["sh-bsp"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + composeYaml.services["sh-user"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + } + + const updatedCompose = stringify(composeYaml); + + if (bspNetConfig.noisy) { + await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); + } + + await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); + + const bspIp = await getContainerIp( + bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName + ); + + if (bspNetConfig.noisy) { + verbose && console.log(`toxiproxy IP: ${bspIp}`); + } else { + verbose && console.log(`sh-bsp IP: ${bspIp}`); + } + + const bspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`); + + process.env.BSP_IP = bspIp; + process.env.BSP_PEER_ID = bspPeerId; + + await compose.upOne("sh-user", { + cwd: cwd, + configAsString: updatedCompose, + log: true, + env: { + ...process.env, + BSP_IP: bspIp, + BSP_PEER_ID: bspPeerId + } + }); + + const peerIDUser = await getContainerPeerId( + `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` + ); + verbose && console.log(`sh-user Peer ID: ${peerIDUser}`); + + const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; + + // Create Connection API Object to User Node + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + // Give Balances + const amount = 10000n * 10n ** 12n; + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) + ); + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) + ); + + // Setting: + // replication_target = 1 -> One BSP is enough to fulfil a storage request. + // block_range_to_maximum_threshold = 1 -> The threshold goes from the minimum to the maximum in 1 tick. + await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); + + // Adjusting runtime parameters... + // The `set_parameter` extrinsic receives an object like this: + // { + // RuntimeConfig: Enum { + // SlashAmountPerMaxFileSize: [null, {VALUE_YOU_WANT}], + // StakeToChallengePeriod: [null, {VALUE_YOU_WANT}], + // CheckpointChallengePeriod: [null, {VALUE_YOU_WANT}], + // MinChallengePeriod: [null, {VALUE_YOU_WANT}], + // } + // } + const slashAmountPerMaxFileSizeRuntimeParameter = { + RuntimeConfig: { + SlashAmountPerMaxFileSize: [null, 20n * MILLIUNIT] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.parameters.setParameter(slashAmountPerMaxFileSizeRuntimeParameter) + ) + ); + const stakeToChallengePeriodRuntimeParameter = { + RuntimeConfig: { + StakeToChallengePeriod: [null, 1000n * UNIT] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.parameters.setParameter(stakeToChallengePeriodRuntimeParameter) + ) + ); + const checkpointChallengePeriodRuntimeParameter = { + RuntimeConfig: { + CheckpointChallengePeriod: [null, 10] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.parameters.setParameter(checkpointChallengePeriodRuntimeParameter) + ) + ); + const minChallengePeriodRuntimeParameter = { + RuntimeConfig: { + MinChallengePeriod: [null, 5] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.parameters.setParameter(minChallengePeriodRuntimeParameter)) + ); + + // Make BSP + await forceSignupBsp({ + api: userApi, + who: bspKey.address, + multiaddress: multiAddressBsp, + bspId: ShConsts.DUMMY_BSP_ID, + capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, + weight: bspNetConfig.bspStartingWeight + }); + + // Make MSP + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.providers.forceMspSignUp( + alice.address, + ShConsts.DUMMY_MSP_ID, + bspNetConfig.capacity || ShConsts.CAPACITY_512, + [multiAddressBsp], + { + identifier: ShConsts.VALUE_PROP, + dataLimit: 500, + protocols: ["https", "ssh", "telnet"] + }, + alice.address + ) + ) + ); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const forceSignupBsp = async (options: { + api: EnrichedBspApi; + multiaddress: string; + who: string | Uint8Array; + bspId?: string; + capacity?: bigint; + payeeAddress?: string; + weight?: bigint; +}) => { + const bspId = options.bspId || `0x${crypto.randomBytes(32).toString("hex")}`; + const blockResults = await options.api.sealBlock( + options.api.tx.sudo.sudo( + options.api.tx.providers.forceBspSignUp( + options.who, + bspId, + options.capacity || ShConsts.CAPACITY_512, + [options.multiaddress], + options.payeeAddress || options.who, + options.weight ?? null + ) + ) + ); + return Object.assign(bspId, blockResults); +}; +export const closeSimpleBspNet = async () => { + const docker = new Docker(); + + const allContainers = await docker.listContainers({ all: true }); + + const existingNodes = allContainers.filter((container) => container.Image === DOCKER_IMAGE); + + const toxiproxyContainer = allContainers.find((container) => + container.Names.some((name) => name.includes("toxiproxy")) + ); + + const promises = existingNodes.map(async (node) => docker.getContainer(node.Id).stop()); + + if (toxiproxyContainer && toxiproxyContainer.State === "running") { + console.log("Stopping toxiproxy container"); + promises.push(docker.getContainer(toxiproxyContainer.Id).stop()); + } else { + console.log("No running toxiproxy container found, skipping"); + } + + await Promise.allSettled(promises); + + await docker.pruneContainers(); + await docker.pruneVolumes(); +}; + +export const runInitialisedBspsNet = async (bspNetConfig: BspNetConfig) => { + await runSimpleBspNet(bspNetConfig); + + let userApi: EnrichedBspApi | undefined; + try { + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ + const source = "res/whatsup.jpg"; + const destination = "test/smile.jpg"; + const bucketName = "nothingmuch-1"; + + const newBucketEventEvent = await userApi.createBucket(bucketName); + const newBucketEventDataBlob = + userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; + + invariant(newBucketEventDataBlob, "Event doesn't match Type"); + + const { fingerprint, file_size, location } = + await userApi.rpc.storagehubclient.loadFileInStorage( + source, + destination, + ShConsts.NODE_INFOS.user.AddressId, + newBucketEventDataBlob.bucketId + ); + + await userApi.sealBlock( + userApi.tx.fileSystem.issueStorageRequest( + newBucketEventDataBlob.bucketId, + location, + fingerprint, + file_size, + ShConsts.DUMMY_MSP_ID, + [ShConsts.NODE_INFOS.user.expectedPeerId] + ), + shUser + ); + + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const runMultipleInitialisedBspsNet = async ( + bspNetConfig: BspNetConfig +): Promise => { + await runSimpleBspNet(bspNetConfig); + + let userApi: EnrichedBspApi | undefined; + try { + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(5, 1))); + + // Add more BSPs to the network. + // One BSP will be down, two more will be up. + const { containerName: bspDownContainerName } = await addBsp(userApi, bspDownKey, { + name: "sh-bsp-down", + rocksdb: bspNetConfig.rocksdb, + bspKeySeed: bspDownSeed, + bspId: ShConsts.BSP_DOWN_ID, + bspStartingWeight: bspNetConfig.capacity, + additionalArgs: ["--keystore-path=/keystore/bsp-down"] + }); + const { rpcPort: bspTwoRpcPort } = await addBsp(userApi, bspTwoKey, { + name: "sh-bsp-two", + rocksdb: bspNetConfig.rocksdb, + bspKeySeed: bspTwoSeed, + bspId: ShConsts.BSP_TWO_ID, + bspStartingWeight: bspNetConfig.capacity, + additionalArgs: ["--keystore-path=/keystore/bsp-two"] + }); + const { rpcPort: bspThreeRpcPort } = await addBsp(userApi, bspThreeKey, { + name: "sh-bsp-three", + rocksdb: bspNetConfig.rocksdb, + bspKeySeed: bspThreeSeed, + bspId: ShConsts.BSP_THREE_ID, + bspStartingWeight: bspNetConfig.capacity, + additionalArgs: ["--keystore-path=/keystore/bsp-three"] + }); + + // Everything executed below is tested in `volunteer.test.ts` and `onboard.test.ts` files. + // For the context of this test, this is a preamble, so that a BSP has a challenge cycle initiated. + + /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ + const source = "res/whatsup.jpg"; + const location = "test/smile.jpg"; + const bucketName = "nothingmuch-1"; + + const fileMetadata = await userApi.file.newStorageRequest(source, location, bucketName); + + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + + // Stopping BSP that is supposed to be down. + await userApi.docker.stopBspContainer(bspDownContainerName); + + return { + bspTwoRpcPort, + bspThreeRpcPort, + fileData: { + fileKey: fileMetadata.fileKey, + bucketId: fileMetadata.bucketId, + location: location, + owner: fileMetadata.owner, + fingerprint: fileMetadata.fingerprint, + fileSize: fileMetadata.fileSize + } + }; + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const cleardownTest = async (cleardownOptions: { + api: EnrichedBspApi | EnrichedBspApi[]; + keepNetworkAlive?: boolean; +}) => { + try { + if (Array.isArray(cleardownOptions.api)) { + for (const api of cleardownOptions.api) { + await api.disconnect(); + } + } else { + await cleardownOptions.api.disconnect(); + } + } catch (e) { + console.error(e); + console.log("cleardown failed, but we will continue."); + } + cleardownOptions.keepNetworkAlive === true ? null : await closeSimpleBspNet(); +}; + +export const createCheckBucket = async (api: EnrichedBspApi, bucketName: string) => { + const newBucketEventEvent = await api.createBucket(bucketName); + const newBucketEventDataBlob = + api.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; + + invariant(newBucketEventDataBlob, "Event doesn't match Type"); + + return newBucketEventDataBlob; +}; + +export const addBsp = async ( + api: ApiPromise, + bspKey: KeyringPair, + options?: { + name?: string; + rocksdb?: boolean; + bspKeySeed?: string; + bspId?: string; + bspStartingWeight?: bigint; + maxStorageCapacity?: number; + extrinsicRetryTimeout?: number; + additionalArgs?: string[]; + } +) => { + // Launch a BSP node. + const additionalArgs = options?.additionalArgs ?? []; + if (options?.extrinsicRetryTimeout) { + additionalArgs.push(`--extrinsic-retry-timeout=${options.extrinsicRetryTimeout}`); + } + if (options?.rocksdb) { + additionalArgs.push("--storage-layer=rocks-db"); + } + additionalArgs.push(`--storage-path=/tmp/bsp/${bspKey.address}`); + additionalArgs.push( + `--max-storage-capacity=${options?.maxStorageCapacity ?? MAX_STORAGE_CAPACITY}` + ); + additionalArgs.push(`--jump-capacity=${options?.maxStorageCapacity ?? CAPACITY[1024]}`); + const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ + ...options, + additionalArgs + }); + + //Give it some balance. + const amount = 10000n * 10n ** 12n; + await sealBlock(api, api.tx.sudo.sudo(api.tx.balances.forceSetBalance(bspKey.address, amount))); + + const bspIp = await getContainerIp(containerName); + const multiAddressBsp = `/ip4/${bspIp}/tcp/${p2pPort}/p2p/${peerId}`; + + // Make BSP + await sealBlock( + api, + api.tx.sudo.sudo( + api.tx.providers.forceBspSignUp( + bspKey.address, + options?.bspId ?? bspKey.publicKey, + ShConsts.CAPACITY_512, + [multiAddressBsp], + bspKey.address, + options?.bspStartingWeight ?? null + ) + ) + ); + + return { containerName, rpcPort, p2pPort, peerId }; +}; diff --git a/test/util/bspNet/test-api.ts b/test/util/bspNet/test-api.ts index 9f949ff40..e79da9663 100644 --- a/test/util/bspNet/test-api.ts +++ b/test/util/bspNet/test-api.ts @@ -1,458 +1,458 @@ -import "@storagehub/api-augment"; -import { ApiPromise, WsProvider } from "@polkadot/api"; -import type { SubmittableExtrinsic } from "@polkadot/api/types"; -import type { KeyringPair } from "@polkadot/keyring/types"; -import type { EventRecord } from "@polkadot/types/interfaces"; -import type { ISubmittableResult } from "@polkadot/types/types"; -import type { HexString } from "@polkadot/util/types"; -import { types as BundledTypes } from "@storagehub/types-bundle"; -import type { AssertExtrinsicOptions } from "../asserts"; -import * as Assertions from "../asserts"; -import * as BspNetBlock from "./block"; -import { sealBlock } from "./block"; -import * as ShConsts from "./consts"; -import * as DockerBspNet from "./docker"; -import * as Files from "./fileHelpers"; -import * as NodeBspNet from "./node"; -import type { BspNetApi, SealBlockOptions } from "./types"; -import * as Waits from "./waits"; -import { addBsp } from "./helpers"; - -/** - * Represents an enhanced API for interacting with StorageHub BSPNet. - */ -export class BspNetTestApi implements AsyncDisposable { - private _api: ApiPromise; - private _endpoint: `ws://${string}` | `wss://${string}`; - - private constructor(api: ApiPromise, endpoint: `ws://${string}` | `wss://${string}`) { - this._api = api; - this._endpoint = endpoint; - } - - /** - * Creates a new instance of BspNetTestApi. - * - * @param endpoint - The WebSocket endpoint to connect to. - * @returns A promise that resolves to an enriched BspNetApi. - */ - public static async create(endpoint: `ws://${string}` | `wss://${string}`) { - const api = await BspNetTestApi.connect(endpoint); - await api.isReady; - - const ctx = new BspNetTestApi(api, endpoint); - - return ctx.enrichApi(); - } - - public async reconnect(): Promise { - if (!this._api.isConnected) { - await this._api.disconnect(); - const newApi = await ApiPromise.create({ - provider: new WsProvider(this._endpoint), - noInitWarn: true, - throwOnConnect: false, - throwOnUnknown: false, - typesBundle: BundledTypes - }); - await newApi.isReady; - this._api = newApi; - this.enrichApi(); - } - } - - /** - * Establishes a connection to the specified endpoint. - * Note: This method shouldn't be called directly in tests. Use `create` instead. - * - * @param endpoint - The WebSocket endpoint to connect to. - * @returns A promise that resolves to an ApiPromise with async disposal. - */ - public static async connect(endpoint: `ws://${string}` | `wss://${string}`) { - const api = await ApiPromise.create({ - provider: new WsProvider(endpoint), - noInitWarn: true, - throwOnConnect: false, - throwOnUnknown: false, - typesBundle: BundledTypes - }); - return Object.assign(api, { - [Symbol.asyncDispose]: async () => { - await api.disconnect(); - } - }); - } - - private async disconnect() { - await this._api.disconnect(); - } - - /** - * Seals a block with optional extrinsics and finalizes it. - * - * @param calls - Optional extrinsic(s) to include in the block. - * @param signer - Optional signer for the extrinsics. - * @param finaliseBlock - Whether to finalize the block. Defaults to true. - * @returns A Promise resolving to a SealedBlock object. - */ - private async sealBlock( - calls?: - | SubmittableExtrinsic<"promise", ISubmittableResult> - | SubmittableExtrinsic<"promise", ISubmittableResult>[], - signer?: KeyringPair, - finaliseBlock = true - ) { - return sealBlock(this._api, calls, signer, finaliseBlock); - } - - private async sendNewStorageRequest(source: string, location: string, bucketName: string) { - return Files.sendNewStorageRequest(this._api, source, location, bucketName); - } - - private async createBucket(bucketName: string) { - return Files.createBucket(this._api, bucketName); - } - - private assertEvent(module: string, method: string, events?: EventRecord[]) { - return Assertions.assertEventPresent(this._api, module, method, events); - } - - /** - * Advances the blockchain to a specified block number. - * - * This function seals blocks until the specified block number is reached. It can optionally - * wait between blocks and watch for BSP proofs. - * - * @param api - The ApiPromise instance to interact with the blockchain. - * @param blockNumber - The target block number to advance to. - * @param waitBetweenBlocks - Optional. If specified: - * - If a number, waits for that many milliseconds between blocks. - * - If true, waits for 500ms between blocks. - * - If false or undefined, doesn't wait between blocks. - * @param watchForBspProofs - Optional. An array of BSP IDs to watch for proofs. - * If specified, the function will wait for BSP proofs at appropriate intervals. - * - * @returns A Promise that resolves to a SealedBlock object representing the last sealed block. - * - * @throws Will throw an error if the target block number is lower than the current block number. - * - * @example - * // Advance to block 100 with no waiting - * const result = await advanceToBlock(api, 100); - * - * @example - * // Advance to block 200, waiting 1000ms between blocks - * const result = await advanceToBlock(api, 200, 1000); - * - * @example - * // Advance to block 300, watching for proofs from two BSPs - * const result = await advanceToBlock(api, 300, true, ['bsp1', 'bsp2']); - */ - private advanceToBlock( - blockNumber: number, - options?: { - waitBetweenBlocks?: number | boolean; - waitForBspProofs?: string[]; - } - ) { - return BspNetBlock.advanceToBlock( - this._api, - blockNumber, - options?.waitBetweenBlocks, - options?.waitForBspProofs - ); - } - - private enrichApi() { - const remappedAssertNs = { - fetchEventData: Assertions.fetchEventData, - - /** - * Asserts that a specific event is present in the given events or the latest block. - * @param module - The module name of the event. - * @param method - The method name of the event. - * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. - * @returns The matching event and its data. - */ - eventPresent: async (module: string, method: string, events?: EventRecord[]) => { - const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); - return Assertions.assertEventPresent(this._api, module, method, evts); - }, - /** - * Asserts that multiple instances of a specific event are present. - * @param module - The module name of the event. - * @param method - The method name of the event. - * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. - * @returns An array of matching events and their data. - */ - eventMany: async (module: string, method: string, events?: EventRecord[]) => { - const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); - return Assertions.assertEventMany(this._api, module, method, evts); - }, - /** - * Asserts that a specific extrinsic is present in the transaction pool or recent blocks. - * @param options - Options specifying the extrinsic to search for. - * @returns An array of matching extrinsics. - */ - extrinsicPresent: (options: AssertExtrinsicOptions) => - Assertions.assertExtrinsicPresent(this._api, options), - /** - * Asserts that a specific provider has been slashed. - * @param providerId - The ID of the provider to check. - * @returns A boolean indicating whether the provider was slashed. - */ - providerSlashed: (providerId: string) => - Assertions.checkProviderWasSlashed(this._api, providerId), - - /** - * Asserts that a specific log message appears in a Docker container's output. - * @param options - The options for the log assertion. - * @param options.searchString - The string to search for in the container's logs. - * @param options.containerName - The name of the Docker container to search logs in. - * @param options.timeout - Optional. The maximum time (in milliseconds) to wait for the log message to appear. Default 10s. - * @returns A promise that resolves to the matching log message if found, or rejects if the timeout is reached. - */ - log: async (options: { searchString: string; containerName: string; timeout?: number }) => { - return Assertions.assertDockerLog( - options.containerName, - options.searchString, - options.timeout - ); - } - }; - - /** - * Waits namespace - * Contains methods for waiting on specific events or conditions in the BSP network. - */ - const remappedWaitsNs = { - /** - * Waits for a BSP to volunteer for a storage request. - * @param expectedExts - Optional param to specify the number of expected extrinsics. - * @returns A promise that resolves when a BSP has volunteered. - */ - bspVolunteer: (expectedExts?: number) => Waits.waitForBspVolunteer(this._api, expectedExts), - - /** - * Waits for a BSP to confirm storing a file. - * @param expectedExts - Optional param to specify the number of expected extrinsics. - * @returns A promise that resolves when a BSP has confirmed storing a file. - */ - bspStored: (expectedExts?: number) => Waits.waitForBspStored(this._api, expectedExts) - }; - - /** - * File operations namespace - * Contains methods for interacting with StorageHub file system. - */ - const remappedFileNs = { - /** - * Creates a new bucket. - * - * @param bucketName - The name of the bucket to be created. - * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. - * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. - * @returns A promise that resolves to a new bucket event. - */ - newBucket: (bucketName: string, owner?: KeyringPair) => - Files.createBucket(this._api, bucketName, undefined, owner), - - /** - * Creates a new bucket and submits a new storage request. - * - * @param source - The local path to the file to be uploaded. - * @param location - The StorageHub "location" field of the file to be uploaded. - * @param bucketName - The name of the bucket to be created. - * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. - * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. - * @returns A promise that resolves to file metadata. - */ - newStorageRequest: ( - source: string, - location: string, - bucketName: string, - msp_id?: HexString, - owner?: KeyringPair - ) => Files.sendNewStorageRequest(this._api, source, location, bucketName, msp_id, owner) - }; - - /** - * Block operations namespace - * Contains methods for manipulating and interacting with blocks in the BSP network. - */ - const remappedBlockNs = { - /** - * Seals a block with optional extrinsics. - * @param options - Options for sealing the block, including calls, signer, and whether to finalize. - * @returns A promise that resolves to a SealedBlock object. - */ - seal: (options?: SealBlockOptions) => - BspNetBlock.sealBlock(this._api, options?.calls, options?.signer, options?.finaliseBlock), - /** - * Seal blocks until the next challenge period block. - * It will verify that the SlashableProvider event is emitted and check if the provider is slashable with an additional failed challenge deadline. - * @param nextChallengeTick - The block number of the next challenge. - * @param provider - The provider to check for slashing. - * @returns A promise that resolves when the challenge period block is reached. - */ - skipToChallengePeriod: (nextChallengeTick: number, provider: string) => - BspNetBlock.runToNextChallengePeriodBlock(this._api, nextChallengeTick, provider), - /** - * Skips a specified number of blocks. - * Note: This skips too quickly for nodes to BSPs to react. Use skipTo where reaction extrinsics are required. - * @param blocksToAdvance - The number of blocks to skip. - * @returns A promise that resolves when the specified number of blocks have been skipped. - */ - skip: (blocksToAdvance: number) => BspNetBlock.skipBlocks(this._api, blocksToAdvance), - /** - * Advances the chain to a specific block number. - * @param blockNumber - The target block number to advance to. - * @param options - Optional parameters for waiting between blocks and watching for BSP proofs. - * @returns A promise that resolves when the specified block number is reached. - */ - skipTo: ( - blockNumber: number, - options?: { - waitBetweenBlocks?: number | boolean; - waitForBspProofs?: string[]; - spam?: boolean; - verbose?: boolean; - } - ) => - BspNetBlock.advanceToBlock( - this._api, - blockNumber, - options?.waitBetweenBlocks, - options?.waitForBspProofs, - options?.spam, - options?.verbose - ), - /** - * Skips blocks until the minimum time for capacity changes is reached. - * @returns A promise that resolves when the minimum change time is reached. - */ - skipToMinChangeTime: () => BspNetBlock.skipBlocksToMinChangeTime(this._api), - /** - * Causes a chain re-org by creating a finalized block on top of the parent block. - * Note: This requires the head block to be unfinalized, otherwise it will throw! - * @returns A promise that resolves when the chain re-org is complete. - */ - reOrg: () => BspNetBlock.reOrgBlocks(this._api) - }; - - const remappedNodeNs = { - /** - * Drops transaction(s) from the node's transaction pool. - * - * @param extrinsic - Optional. Specifies which transaction(s) to drop: - * - If omitted, all transactions in the pool will be cleared. - * - If an object with module and method, it will drop matching transactions. - * - If a hex string, it will drop the transaction with the matching hash. - * @param sealAfter - Whether to seal a block after dropping the transaction(s). Defaults to false. - */ - dropTxn: (extrinsic?: { module: string; method: string } | HexString, sealAfter = false) => - NodeBspNet.dropTransaction(this._api, extrinsic, sealAfter) - }; - - const remappedDockerNs = { - ...DockerBspNet, - onboardBsp: (options: { - bspSigner: KeyringPair; - name?: string; - rocksdb?: boolean; - bspKeySeed?: string; - bspId?: string; - bspStartingWeight?: bigint; - maxStorageCapacity?: number; - additionalArgs?: string[]; - }) => addBsp(this._api, options.bspSigner, options) - }; - - return Object.assign(this._api, { - /** - * Soon Deprecated. Use api.block.seal() instead. - * @see {@link sealBlock} - */ - sealBlock: this.sealBlock.bind(this), - /** - * Soon Deprecated. Use api.file.newStorageRequest() instead. - * @see {@link sendNewStorageRequest} - */ - sendNewStorageRequest: this.sendNewStorageRequest.bind(this), - /** - * Soon Deprecated. Use api.file.newBucket() instead. - * @see {@link createBucket} - */ - createBucket: this.createBucket.bind(this), - /** - * Soon Deprecated. Use api.assert.eventPresent() instead. - * @see {@link assertEvent} - */ - assertEvent: this.assertEvent.bind(this), - /** - * Soon Deprecated. Use api.assert.eventPresent() instead. - * @see {@link advanceToBlock} - */ - advanceToBlock: this.advanceToBlock.bind(this), - /** - * Assertions namespace - * Provides methods for asserting various conditions in the BSP network tests. - */ - assert: remappedAssertNs, - /** - * Waits namespace - * Contains methods for waiting on specific events or conditions in the BSP network. - */ - wait: remappedWaitsNs, - /** - * File operations namespace - * Offers methods for file-related operations in the BSP network, such as creating buckets and storage requests. - */ - file: remappedFileNs, - /** - * Node operations namespace - * Provides methods for interacting with and manipulating nodes in the BSP network. - */ - node: remappedNodeNs, - /** - * Block operations namespace - * Contains methods for manipulating and interacting with blocks in the BSP network. - */ - block: remappedBlockNs, - /** - * StorageHub Constants namespace - * Contains static data useful for testing the BSP network. - */ - shConsts: ShConsts, - /** - * Docker operations namespace - * Offers methods for interacting with Docker containers in the BSP network test environment. - */ - docker: remappedDockerNs, - [Symbol.asyncDispose]: this.disconnect.bind(this) - }) satisfies BspNetApi; - } - - async [Symbol.asyncDispose]() { - await this._api.disconnect(); - } -} - -/** - * Represents an enhanced API for interacting with StorageHub BSPNet. - * This type extends the standard Polkadot API with additional methods and namespaces - * specifically designed for testing and interacting with a StorageHub BSP network. - * - * It includes: - * - Extended assertion capabilities (@see {@link Assertions}) - * - Waiting utilities for BSP-specific events (@see {@link Waits}) - * - File and bucket operations (@see {@link Files}) - * - Block manipulation and advancement utilities (@see {@link BspNetBlock}) - * - Node interaction methods (@see {@link NodeBspNet}) - * - Docker container management for BSP testing (@see {@link DockerBspNet}) - * - StorageHub constants (@see {@link ShConsts}) - * - * This API is created using the BspNetTestApi.create() static method and provides - * a comprehensive toolkit for testing and developing BSP network functionality. - */ -export type EnrichedBspApi = Awaited>; +import "@storagehub/api-augment"; +import { ApiPromise, WsProvider } from "@polkadot/api"; +import type { SubmittableExtrinsic } from "@polkadot/api/types"; +import type { KeyringPair } from "@polkadot/keyring/types"; +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { ISubmittableResult } from "@polkadot/types/types"; +import type { HexString } from "@polkadot/util/types"; +import { types as BundledTypes } from "@storagehub/types-bundle"; +import type { AssertExtrinsicOptions } from "../asserts"; +import * as Assertions from "../asserts"; +import * as BspNetBlock from "./block"; +import { sealBlock } from "./block"; +import * as ShConsts from "./consts"; +import * as DockerBspNet from "./docker"; +import * as Files from "./fileHelpers"; +import * as NodeBspNet from "./node"; +import type { BspNetApi, SealBlockOptions } from "./types"; +import * as Waits from "./waits"; +import { addBsp } from "./helpers"; + +/** + * Represents an enhanced API for interacting with StorageHub BSPNet. + */ +export class BspNetTestApi implements AsyncDisposable { + private _api: ApiPromise; + private _endpoint: `ws://${string}` | `wss://${string}`; + + private constructor(api: ApiPromise, endpoint: `ws://${string}` | `wss://${string}`) { + this._api = api; + this._endpoint = endpoint; + } + + /** + * Creates a new instance of BspNetTestApi. + * + * @param endpoint - The WebSocket endpoint to connect to. + * @returns A promise that resolves to an enriched BspNetApi. + */ + public static async create(endpoint: `ws://${string}` | `wss://${string}`) { + const api = await BspNetTestApi.connect(endpoint); + await api.isReady; + + const ctx = new BspNetTestApi(api, endpoint); + + return ctx.enrichApi(); + } + + public async reconnect(): Promise { + if (!this._api.isConnected) { + await this._api.disconnect(); + const newApi = await ApiPromise.create({ + provider: new WsProvider(this._endpoint), + noInitWarn: true, + throwOnConnect: false, + throwOnUnknown: false, + typesBundle: BundledTypes + }); + await newApi.isReady; + this._api = newApi; + this.enrichApi(); + } + } + + /** + * Establishes a connection to the specified endpoint. + * Note: This method shouldn't be called directly in tests. Use `create` instead. + * + * @param endpoint - The WebSocket endpoint to connect to. + * @returns A promise that resolves to an ApiPromise with async disposal. + */ + public static async connect(endpoint: `ws://${string}` | `wss://${string}`) { + const api = await ApiPromise.create({ + provider: new WsProvider(endpoint), + noInitWarn: true, + throwOnConnect: false, + throwOnUnknown: false, + typesBundle: BundledTypes + }); + return Object.assign(api, { + [Symbol.asyncDispose]: async () => { + await api.disconnect(); + } + }); + } + + private async disconnect() { + await this._api.disconnect(); + } + + /** + * Seals a block with optional extrinsics and finalizes it. + * + * @param calls - Optional extrinsic(s) to include in the block. + * @param signer - Optional signer for the extrinsics. + * @param finaliseBlock - Whether to finalize the block. Defaults to true. + * @returns A Promise resolving to a SealedBlock object. + */ + private async sealBlock( + calls?: + | SubmittableExtrinsic<"promise", ISubmittableResult> + | SubmittableExtrinsic<"promise", ISubmittableResult>[], + signer?: KeyringPair, + finaliseBlock = true + ) { + return sealBlock(this._api, calls, signer, finaliseBlock); + } + + private async sendNewStorageRequest(source: string, location: string, bucketName: string) { + return Files.sendNewStorageRequest(this._api, source, location, bucketName); + } + + private async createBucket(bucketName: string) { + return Files.createBucket(this._api, bucketName); + } + + private assertEvent(module: string, method: string, events?: EventRecord[]) { + return Assertions.assertEventPresent(this._api, module, method, events); + } + + /** + * Advances the blockchain to a specified block number. + * + * This function seals blocks until the specified block number is reached. It can optionally + * wait between blocks and watch for BSP proofs. + * + * @param api - The ApiPromise instance to interact with the blockchain. + * @param blockNumber - The target block number to advance to. + * @param waitBetweenBlocks - Optional. If specified: + * - If a number, waits for that many milliseconds between blocks. + * - If true, waits for 500ms between blocks. + * - If false or undefined, doesn't wait between blocks. + * @param watchForBspProofs - Optional. An array of BSP IDs to watch for proofs. + * If specified, the function will wait for BSP proofs at appropriate intervals. + * + * @returns A Promise that resolves to a SealedBlock object representing the last sealed block. + * + * @throws Will throw an error if the target block number is lower than the current block number. + * + * @example + * // Advance to block 100 with no waiting + * const result = await advanceToBlock(api, 100); + * + * @example + * // Advance to block 200, waiting 1000ms between blocks + * const result = await advanceToBlock(api, 200, 1000); + * + * @example + * // Advance to block 300, watching for proofs from two BSPs + * const result = await advanceToBlock(api, 300, true, ['bsp1', 'bsp2']); + */ + private advanceToBlock( + blockNumber: number, + options?: { + waitBetweenBlocks?: number | boolean; + waitForBspProofs?: string[]; + } + ) { + return BspNetBlock.advanceToBlock( + this._api, + blockNumber, + options?.waitBetweenBlocks, + options?.waitForBspProofs + ); + } + + private enrichApi() { + const remappedAssertNs = { + fetchEventData: Assertions.fetchEventData, + + /** + * Asserts that a specific event is present in the given events or the latest block. + * @param module - The module name of the event. + * @param method - The method name of the event. + * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. + * @returns The matching event and its data. + */ + eventPresent: async (module: string, method: string, events?: EventRecord[]) => { + const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); + return Assertions.assertEventPresent(this._api, module, method, evts); + }, + /** + * Asserts that multiple instances of a specific event are present. + * @param module - The module name of the event. + * @param method - The method name of the event. + * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. + * @returns An array of matching events and their data. + */ + eventMany: async (module: string, method: string, events?: EventRecord[]) => { + const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); + return Assertions.assertEventMany(this._api, module, method, evts); + }, + /** + * Asserts that a specific extrinsic is present in the transaction pool or recent blocks. + * @param options - Options specifying the extrinsic to search for. + * @returns An array of matching extrinsics. + */ + extrinsicPresent: (options: AssertExtrinsicOptions) => + Assertions.assertExtrinsicPresent(this._api, options), + /** + * Asserts that a specific provider has been slashed. + * @param providerId - The ID of the provider to check. + * @returns A boolean indicating whether the provider was slashed. + */ + providerSlashed: (providerId: string) => + Assertions.checkProviderWasSlashed(this._api, providerId), + + /** + * Asserts that a specific log message appears in a Docker container's output. + * @param options - The options for the log assertion. + * @param options.searchString - The string to search for in the container's logs. + * @param options.containerName - The name of the Docker container to search logs in. + * @param options.timeout - Optional. The maximum time (in milliseconds) to wait for the log message to appear. Default 10s. + * @returns A promise that resolves to the matching log message if found, or rejects if the timeout is reached. + */ + log: async (options: { searchString: string; containerName: string; timeout?: number }) => { + return Assertions.assertDockerLog( + options.containerName, + options.searchString, + options.timeout + ); + } + }; + + /** + * Waits namespace + * Contains methods for waiting on specific events or conditions in the BSP network. + */ + const remappedWaitsNs = { + /** + * Waits for a BSP to volunteer for a storage request. + * @param expectedExts - Optional param to specify the number of expected extrinsics. + * @returns A promise that resolves when a BSP has volunteered. + */ + bspVolunteer: (expectedExts?: number) => Waits.waitForBspVolunteer(this._api, expectedExts), + + /** + * Waits for a BSP to confirm storing a file. + * @param expectedExts - Optional param to specify the number of expected extrinsics. + * @returns A promise that resolves when a BSP has confirmed storing a file. + */ + bspStored: (expectedExts?: number) => Waits.waitForBspStored(this._api, expectedExts) + }; + + /** + * File operations namespace + * Contains methods for interacting with StorageHub file system. + */ + const remappedFileNs = { + /** + * Creates a new bucket. + * + * @param bucketName - The name of the bucket to be created. + * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. + * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. + * @returns A promise that resolves to a new bucket event. + */ + newBucket: (bucketName: string, owner?: KeyringPair) => + Files.createBucket(this._api, bucketName, undefined, owner), + + /** + * Creates a new bucket and submits a new storage request. + * + * @param source - The local path to the file to be uploaded. + * @param location - The StorageHub "location" field of the file to be uploaded. + * @param bucketName - The name of the bucket to be created. + * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. + * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. + * @returns A promise that resolves to file metadata. + */ + newStorageRequest: ( + source: string, + location: string, + bucketName: string, + msp_id?: HexString, + owner?: KeyringPair + ) => Files.sendNewStorageRequest(this._api, source, location, bucketName, msp_id, owner) + }; + + /** + * Block operations namespace + * Contains methods for manipulating and interacting with blocks in the BSP network. + */ + const remappedBlockNs = { + /** + * Seals a block with optional extrinsics. + * @param options - Options for sealing the block, including calls, signer, and whether to finalize. + * @returns A promise that resolves to a SealedBlock object. + */ + seal: (options?: SealBlockOptions) => + BspNetBlock.sealBlock(this._api, options?.calls, options?.signer, options?.finaliseBlock), + /** + * Seal blocks until the next challenge period block. + * It will verify that the SlashableProvider event is emitted and check if the provider is slashable with an additional failed challenge deadline. + * @param nextChallengeTick - The block number of the next challenge. + * @param provider - The provider to check for slashing. + * @returns A promise that resolves when the challenge period block is reached. + */ + skipToChallengePeriod: (nextChallengeTick: number, provider: string) => + BspNetBlock.runToNextChallengePeriodBlock(this._api, nextChallengeTick, provider), + /** + * Skips a specified number of blocks. + * Note: This skips too quickly for nodes to BSPs to react. Use skipTo where reaction extrinsics are required. + * @param blocksToAdvance - The number of blocks to skip. + * @returns A promise that resolves when the specified number of blocks have been skipped. + */ + skip: (blocksToAdvance: number) => BspNetBlock.skipBlocks(this._api, blocksToAdvance), + /** + * Advances the chain to a specific block number. + * @param blockNumber - The target block number to advance to. + * @param options - Optional parameters for waiting between blocks and watching for BSP proofs. + * @returns A promise that resolves when the specified block number is reached. + */ + skipTo: ( + blockNumber: number, + options?: { + waitBetweenBlocks?: number | boolean; + waitForBspProofs?: string[]; + spam?: boolean; + verbose?: boolean; + } + ) => + BspNetBlock.advanceToBlock( + this._api, + blockNumber, + options?.waitBetweenBlocks, + options?.waitForBspProofs, + options?.spam, + options?.verbose + ), + /** + * Skips blocks until the minimum time for capacity changes is reached. + * @returns A promise that resolves when the minimum change time is reached. + */ + skipToMinChangeTime: () => BspNetBlock.skipBlocksToMinChangeTime(this._api), + /** + * Causes a chain re-org by creating a finalized block on top of the parent block. + * Note: This requires the head block to be unfinalized, otherwise it will throw! + * @returns A promise that resolves when the chain re-org is complete. + */ + reOrg: () => BspNetBlock.reOrgBlocks(this._api) + }; + + const remappedNodeNs = { + /** + * Drops transaction(s) from the node's transaction pool. + * + * @param extrinsic - Optional. Specifies which transaction(s) to drop: + * - If omitted, all transactions in the pool will be cleared. + * - If an object with module and method, it will drop matching transactions. + * - If a hex string, it will drop the transaction with the matching hash. + * @param sealAfter - Whether to seal a block after dropping the transaction(s). Defaults to false. + */ + dropTxn: (extrinsic?: { module: string; method: string } | HexString, sealAfter = false) => + NodeBspNet.dropTransaction(this._api, extrinsic, sealAfter) + }; + + const remappedDockerNs = { + ...DockerBspNet, + onboardBsp: (options: { + bspSigner: KeyringPair; + name?: string; + rocksdb?: boolean; + bspKeySeed?: string; + bspId?: string; + bspStartingWeight?: bigint; + maxStorageCapacity?: number; + additionalArgs?: string[]; + }) => addBsp(this._api, options.bspSigner, options) + }; + + return Object.assign(this._api, { + /** + * Soon Deprecated. Use api.block.seal() instead. + * @see {@link sealBlock} + */ + sealBlock: this.sealBlock.bind(this), + /** + * Soon Deprecated. Use api.file.newStorageRequest() instead. + * @see {@link sendNewStorageRequest} + */ + sendNewStorageRequest: this.sendNewStorageRequest.bind(this), + /** + * Soon Deprecated. Use api.file.newBucket() instead. + * @see {@link createBucket} + */ + createBucket: this.createBucket.bind(this), + /** + * Soon Deprecated. Use api.assert.eventPresent() instead. + * @see {@link assertEvent} + */ + assertEvent: this.assertEvent.bind(this), + /** + * Soon Deprecated. Use api.assert.eventPresent() instead. + * @see {@link advanceToBlock} + */ + advanceToBlock: this.advanceToBlock.bind(this), + /** + * Assertions namespace + * Provides methods for asserting various conditions in the BSP network tests. + */ + assert: remappedAssertNs, + /** + * Waits namespace + * Contains methods for waiting on specific events or conditions in the BSP network. + */ + wait: remappedWaitsNs, + /** + * File operations namespace + * Offers methods for file-related operations in the BSP network, such as creating buckets and storage requests. + */ + file: remappedFileNs, + /** + * Node operations namespace + * Provides methods for interacting with and manipulating nodes in the BSP network. + */ + node: remappedNodeNs, + /** + * Block operations namespace + * Contains methods for manipulating and interacting with blocks in the BSP network. + */ + block: remappedBlockNs, + /** + * StorageHub Constants namespace + * Contains static data useful for testing the BSP network. + */ + shConsts: ShConsts, + /** + * Docker operations namespace + * Offers methods for interacting with Docker containers in the BSP network test environment. + */ + docker: remappedDockerNs, + [Symbol.asyncDispose]: this.disconnect.bind(this) + }) satisfies BspNetApi; + } + + async [Symbol.asyncDispose]() { + await this._api.disconnect(); + } +} + +/** + * Represents an enhanced API for interacting with StorageHub BSPNet. + * This type extends the standard Polkadot API with additional methods and namespaces + * specifically designed for testing and interacting with a StorageHub BSP network. + * + * It includes: + * - Extended assertion capabilities (@see {@link Assertions}) + * - Waiting utilities for BSP-specific events (@see {@link Waits}) + * - File and bucket operations (@see {@link Files}) + * - Block manipulation and advancement utilities (@see {@link BspNetBlock}) + * - Node interaction methods (@see {@link NodeBspNet}) + * - Docker container management for BSP testing (@see {@link DockerBspNet}) + * - StorageHub constants (@see {@link ShConsts}) + * + * This API is created using the BspNetTestApi.create() static method and provides + * a comprehensive toolkit for testing and developing BSP network functionality. + */ +export type EnrichedBspApi = Awaited>; diff --git a/test/util/fullNet/helpers.ts b/test/util/fullNet/helpers.ts index dc4f25f5d..8a78181b4 100644 --- a/test/util/fullNet/helpers.ts +++ b/test/util/fullNet/helpers.ts @@ -1,279 +1,279 @@ -import "@storagehub/api-augment"; -import { v2 as compose } from "docker-compose"; -import * as child_process from "node:child_process"; -import { execSync } from "node:child_process"; -import path from "node:path"; -import * as util from "node:util"; -import { bspKey, mspKey, shUser } from "../pjsKeyring"; -import { showContainers } from "../bspNet/docker"; -import type { BspNetConfig } from "../bspNet/types"; -import * as ShConsts from "../bspNet/consts.ts"; -import { BspNetTestApi, type EnrichedBspApi } from "../bspNet/test-api.ts"; -import invariant from "tiny-invariant"; -import * as fs from "node:fs"; -import { parse, stringify } from "yaml"; -import { forceSignupBsp } from "../bspNet/helpers.ts"; - -const exec = util.promisify(child_process.exec); - -export const getContainerIp = async (containerName: string, verbose = false): Promise => { - const maxRetries = 60; - const sleepTime = 500; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for ${containerName} to launch...`); - - // TODO: Replace with dockerode command - try { - const { stdout } = await exec( - `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` - ); - return stdout.trim(); - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - // TODO: Replace with dockerode - execSync("docker ps -a", { stdio: "inherit" }); - try { - execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); - execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); - } catch (e) { - console.log(e); - } - console.log( - `Error fetching container IP for ${containerName} after ${ - (maxRetries * sleepTime) / 1000 - } seconds` - ); - showContainers(); - throw "Error fetching container IP"; -}; - -export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); -export const getContainerPeerId = async (url: string, verbose = false) => { - const maxRetries = 60; - const sleepTime = 500; - - const payload = { - id: "1", - jsonrpc: "2.0", - method: "system_localPeerId", - params: [] - }; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for node at ${url} to launch...`); - - try { - const response = await fetch(url, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(payload) - }); - - invariant(response.ok, `HTTP error! status: ${response.status}`); - - const resp = (await response.json()) as any; - return resp.result as string; - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - - console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); - showContainers(); - throw `Error fetching peerId from ${url}`; -}; - -export const runFullNet = async (bspNetConfig: BspNetConfig) => { - let userApi: EnrichedBspApi | undefined; - try { - console.log(`SH user id: ${shUser.address}`); - console.log(`SH BSP id: ${bspKey.address}`); - let file = "local-dev-full-compose.yml"; - if (bspNetConfig.rocksdb) { - file = "local-dev-full-rocksdb-compose.yml"; - } - - const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); - const cwd = path.resolve(process.cwd(), "..", "docker"); - const composeFile = fs.readFileSync(composeFilePath, "utf8"); - const composeYaml = parse(composeFile); - if (bspNetConfig.extrinsicRetryTimeout) { - composeYaml.services["sh-bsp"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - composeYaml.services["sh-msp"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - composeYaml.services["sh-user"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - } - - const updatedCompose = stringify(composeYaml); - - if (bspNetConfig.noisy) { - await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); - } - - await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); - - const bspIp = await getContainerIp( - bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName - ); - - if (bspNetConfig.noisy) { - console.log(`toxiproxy IP: ${bspIp}`); - } else { - console.log(`sh-bsp IP: ${bspIp}`); - } - - const bspPeerId = await getContainerPeerId( - `http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`, - true - ); - console.log(`sh-bsp Peer ID: ${bspPeerId}`); - - process.env.BSP_IP = bspIp; - process.env.BSP_PEER_ID = bspPeerId; - - await compose.upOne("sh-msp", { - cwd: cwd, - configAsString: updatedCompose, - log: true, - env: { - ...process.env, - NODE_KEY: ShConsts.NODE_INFOS.msp.nodeKey, - BSP_IP: bspIp, - BSP_PEER_ID: bspPeerId - } - }); - - const mspId = await getContainerIp( - bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.msp.containerName - ); - - const mspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.msp.port}`); - console.log(`sh-msp Peer ID: ${mspPeerId}`); - - const multiAddressMsp = `/ip4/${mspId}/tcp/30350/p2p/${mspPeerId}`; - - await compose.upOne("sh-user", { - cwd: cwd, - configAsString: updatedCompose, - log: true, - env: { - ...process.env, - BSP_IP: bspIp, - BSP_PEER_ID: bspPeerId - } - }); - - const peerIDUser = await getContainerPeerId( - `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` - ); - console.log(`sh-user Peer ID: ${peerIDUser}`); - - const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; - - // Create Connection API Object to User Node - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - // Give Balances - const amount = 10000n * 10n ** 12n; - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) - ); - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(mspKey.address, amount)) - ); - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) - ); - - await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); - - // Make BSP - await forceSignupBsp({ - api: userApi, - who: bspKey.address, - multiaddress: multiAddressBsp, - bspId: ShConsts.DUMMY_BSP_ID, - capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, - weight: bspNetConfig.bspStartingWeight - }); - - // Sign up MSP - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.providers.forceMspSignUp( - mspKey.address, - ShConsts.DUMMY_MSP_ID, - bspNetConfig.capacity || ShConsts.CAPACITY_512, - [multiAddressMsp], - { - identifier: ShConsts.VALUE_PROP, - dataLimit: 500, - protocols: ["https", "ssh", "telnet"] - }, - mspKey.address - ) - ) - ); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const runInitialisedFullNet = async (bspNetConfig: BspNetConfig) => { - await runFullNet(bspNetConfig); - - let userApi: EnrichedBspApi | undefined; - try { - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ - const source = "res/whatsup.jpg"; - const destination = "test/smile.jpg"; - const bucketName = "nothingmuch-1"; - - const newBucketEventEvent = await userApi.createBucket(bucketName); - const newBucketEventDataBlob = - userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; - - invariant(newBucketEventDataBlob, "Event doesn't match Type"); - - const { fingerprint, file_size, location } = - await userApi.rpc.storagehubclient.loadFileInStorage( - source, - destination, - ShConsts.NODE_INFOS.user.AddressId, - newBucketEventDataBlob.bucketId - ); - - await userApi.sealBlock( - userApi.tx.fileSystem.issueStorageRequest( - newBucketEventDataBlob.bucketId, - location, - fingerprint, - file_size, - ShConsts.DUMMY_MSP_ID, - [ShConsts.NODE_INFOS.user.expectedPeerId] - ), - shUser - ); - - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; +import "@storagehub/api-augment"; +import { v2 as compose } from "docker-compose"; +import * as child_process from "node:child_process"; +import { execSync } from "node:child_process"; +import path from "node:path"; +import * as util from "node:util"; +import { bspKey, mspKey, shUser } from "../pjsKeyring"; +import { showContainers } from "../bspNet/docker"; +import type { BspNetConfig } from "../bspNet/types"; +import * as ShConsts from "../bspNet/consts.ts"; +import { BspNetTestApi, type EnrichedBspApi } from "../bspNet/test-api.ts"; +import invariant from "tiny-invariant"; +import * as fs from "node:fs"; +import { parse, stringify } from "yaml"; +import { forceSignupBsp } from "../bspNet/helpers.ts"; + +const exec = util.promisify(child_process.exec); + +export const getContainerIp = async (containerName: string, verbose = false): Promise => { + const maxRetries = 60; + const sleepTime = 500; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for ${containerName} to launch...`); + + // TODO: Replace with dockerode command + try { + const { stdout } = await exec( + `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` + ); + return stdout.trim(); + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + // TODO: Replace with dockerode + execSync("docker ps -a", { stdio: "inherit" }); + try { + execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); + execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); + } catch (e) { + console.log(e); + } + console.log( + `Error fetching container IP for ${containerName} after ${ + (maxRetries * sleepTime) / 1000 + } seconds` + ); + showContainers(); + throw "Error fetching container IP"; +}; + +export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); +export const getContainerPeerId = async (url: string, verbose = false) => { + const maxRetries = 60; + const sleepTime = 500; + + const payload = { + id: "1", + jsonrpc: "2.0", + method: "system_localPeerId", + params: [] + }; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for node at ${url} to launch...`); + + try { + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(payload) + }); + + invariant(response.ok, `HTTP error! status: ${response.status}`); + + const resp = (await response.json()) as any; + return resp.result as string; + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + + console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); + showContainers(); + throw `Error fetching peerId from ${url}`; +}; + +export const runFullNet = async (bspNetConfig: BspNetConfig) => { + let userApi: EnrichedBspApi | undefined; + try { + console.log(`SH user id: ${shUser.address}`); + console.log(`SH BSP id: ${bspKey.address}`); + let file = "local-dev-full-compose.yml"; + if (bspNetConfig.rocksdb) { + file = "local-dev-full-rocksdb-compose.yml"; + } + + const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); + const cwd = path.resolve(process.cwd(), "..", "docker"); + const composeFile = fs.readFileSync(composeFilePath, "utf8"); + const composeYaml = parse(composeFile); + if (bspNetConfig.extrinsicRetryTimeout) { + composeYaml.services["sh-bsp"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + composeYaml.services["sh-msp"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + composeYaml.services["sh-user"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + } + + const updatedCompose = stringify(composeYaml); + + if (bspNetConfig.noisy) { + await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); + } + + await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); + + const bspIp = await getContainerIp( + bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName + ); + + if (bspNetConfig.noisy) { + console.log(`toxiproxy IP: ${bspIp}`); + } else { + console.log(`sh-bsp IP: ${bspIp}`); + } + + const bspPeerId = await getContainerPeerId( + `http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`, + true + ); + console.log(`sh-bsp Peer ID: ${bspPeerId}`); + + process.env.BSP_IP = bspIp; + process.env.BSP_PEER_ID = bspPeerId; + + await compose.upOne("sh-msp", { + cwd: cwd, + configAsString: updatedCompose, + log: true, + env: { + ...process.env, + NODE_KEY: ShConsts.NODE_INFOS.msp.nodeKey, + BSP_IP: bspIp, + BSP_PEER_ID: bspPeerId + } + }); + + const mspId = await getContainerIp( + bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.msp.containerName + ); + + const mspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.msp.port}`); + console.log(`sh-msp Peer ID: ${mspPeerId}`); + + const multiAddressMsp = `/ip4/${mspId}/tcp/30350/p2p/${mspPeerId}`; + + await compose.upOne("sh-user", { + cwd: cwd, + configAsString: updatedCompose, + log: true, + env: { + ...process.env, + BSP_IP: bspIp, + BSP_PEER_ID: bspPeerId + } + }); + + const peerIDUser = await getContainerPeerId( + `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` + ); + console.log(`sh-user Peer ID: ${peerIDUser}`); + + const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; + + // Create Connection API Object to User Node + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + // Give Balances + const amount = 10000n * 10n ** 12n; + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) + ); + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(mspKey.address, amount)) + ); + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) + ); + + await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); + + // Make BSP + await forceSignupBsp({ + api: userApi, + who: bspKey.address, + multiaddress: multiAddressBsp, + bspId: ShConsts.DUMMY_BSP_ID, + capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, + weight: bspNetConfig.bspStartingWeight + }); + + // Sign up MSP + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.providers.forceMspSignUp( + mspKey.address, + ShConsts.DUMMY_MSP_ID, + bspNetConfig.capacity || ShConsts.CAPACITY_512, + [multiAddressMsp], + { + identifier: ShConsts.VALUE_PROP, + dataLimit: 500, + protocols: ["https", "ssh", "telnet"] + }, + mspKey.address + ) + ) + ); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const runInitialisedFullNet = async (bspNetConfig: BspNetConfig) => { + await runFullNet(bspNetConfig); + + let userApi: EnrichedBspApi | undefined; + try { + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ + const source = "res/whatsup.jpg"; + const destination = "test/smile.jpg"; + const bucketName = "nothingmuch-1"; + + const newBucketEventEvent = await userApi.createBucket(bucketName); + const newBucketEventDataBlob = + userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; + + invariant(newBucketEventDataBlob, "Event doesn't match Type"); + + const { fingerprint, file_size, location } = + await userApi.rpc.storagehubclient.loadFileInStorage( + source, + destination, + ShConsts.NODE_INFOS.user.AddressId, + newBucketEventDataBlob.bucketId + ); + + await userApi.sealBlock( + userApi.tx.fileSystem.issueStorageRequest( + newBucketEventDataBlob.bucketId, + location, + fingerprint, + file_size, + ShConsts.DUMMY_MSP_ID, + [ShConsts.NODE_INFOS.user.expectedPeerId] + ), + shUser + ); + + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; diff --git a/test/util/pjsKeyring.ts b/test/util/pjsKeyring.ts index b1b19d630..af79626de 100644 --- a/test/util/pjsKeyring.ts +++ b/test/util/pjsKeyring.ts @@ -1,56 +1,56 @@ -import { Keyring } from "@polkadot/api"; -import { randomBytes } from "node:crypto"; -import { cryptoWaitReady } from "@polkadot/util-crypto"; - -export const keyring = new Keyring({ type: "sr25519" }); -await cryptoWaitReady(); - -export const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); - -export const bob = keyring.addFromUri("//Bob", { name: "Bob default" }); - -export const charlie = keyring.addFromUri("//Charlie", { - name: "Charlie default" -}); - -export const dave = keyring.addFromUri("//Dave", { name: "Dave default" }); - -export const eve = keyring.addFromUri("//Eve", { name: "Eve default" }); - -export const ferdie = keyring.addFromUri("//Ferdie", { - name: "Ferdie default" -}); - -export const bspSeed = "//Sh-BSP"; -export const bspKey = keyring.addFromUri(bspSeed, { name: "Sh-BSP" }); -export const bspDownSeed = "//Sh-BSP-Down"; -export const bspDownKey = keyring.addFromUri(bspDownSeed, { name: "Sh-BSP-Down" }); -export const bspTwoSeed = "//Sh-BSP-Two"; -export const bspTwoKey = keyring.addFromUri(bspTwoSeed, { name: "Sh-BSP-Two" }); -export const bspThreeSeed = "//Sh-BSP-Three"; -export const bspThreeKey = keyring.addFromUri(bspThreeSeed, { name: "Sh-BSP-Three" }); - -export const mspSeed = "//Sh-MSP"; -export const mspKey = keyring.addFromUri(mspSeed, { name: "Sh-MSP" }); -export const mspDownSeed = "//Sh-MSP-Down"; -export const mspDownKey = keyring.addFromUri(mspDownSeed, { name: "Sh-MSP-Down" }); -export const mspTwoSeed = "//Sh-MSP-Two"; -export const mspTwoKey = keyring.addFromUri(mspTwoSeed, { name: "Sh-MSP-Two" }); - -export const collator = keyring.addFromUri("//Sh-collator", { - name: "Sh-collator" -}); - -export const shUser = keyring.addFromUri("//Sh-User", { - name: "Sh-User" -}); - -export const sudo = alice; - -export const createSr25519Account = async (privateKey?: string) => { - const rand = `0x${randomBytes(32).toString("hex")}`; - console.log("random", rand); - const keyring = new Keyring({ type: "sr25519" }); - const account = keyring.addFromUri(privateKey || rand); - return account; -}; +import { Keyring } from "@polkadot/api"; +import { randomBytes } from "node:crypto"; +import { cryptoWaitReady } from "@polkadot/util-crypto"; + +export const keyring = new Keyring({ type: "sr25519" }); +await cryptoWaitReady(); + +export const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); + +export const bob = keyring.addFromUri("//Bob", { name: "Bob default" }); + +export const charlie = keyring.addFromUri("//Charlie", { + name: "Charlie default" +}); + +export const dave = keyring.addFromUri("//Dave", { name: "Dave default" }); + +export const eve = keyring.addFromUri("//Eve", { name: "Eve default" }); + +export const ferdie = keyring.addFromUri("//Ferdie", { + name: "Ferdie default" +}); + +export const bspSeed = "//Sh-BSP"; +export const bspKey = keyring.addFromUri(bspSeed, { name: "Sh-BSP" }); +export const bspDownSeed = "//Sh-BSP-Down"; +export const bspDownKey = keyring.addFromUri(bspDownSeed, { name: "Sh-BSP-Down" }); +export const bspTwoSeed = "//Sh-BSP-Two"; +export const bspTwoKey = keyring.addFromUri(bspTwoSeed, { name: "Sh-BSP-Two" }); +export const bspThreeSeed = "//Sh-BSP-Three"; +export const bspThreeKey = keyring.addFromUri(bspThreeSeed, { name: "Sh-BSP-Three" }); + +export const mspSeed = "//Sh-MSP"; +export const mspKey = keyring.addFromUri(mspSeed, { name: "Sh-MSP" }); +export const mspDownSeed = "//Sh-MSP-Down"; +export const mspDownKey = keyring.addFromUri(mspDownSeed, { name: "Sh-MSP-Down" }); +export const mspTwoSeed = "//Sh-MSP-Two"; +export const mspTwoKey = keyring.addFromUri(mspTwoSeed, { name: "Sh-MSP-Two" }); + +export const collator = keyring.addFromUri("//Sh-collator", { + name: "Sh-collator" +}); + +export const shUser = keyring.addFromUri("//Sh-User", { + name: "Sh-User" +}); + +export const sudo = alice; + +export const createSr25519Account = async (privateKey?: string) => { + const rand = `0x${randomBytes(32).toString("hex")}`; + console.log("random", rand); + const keyring = new Keyring({ type: "sr25519" }); + const account = keyring.addFromUri(privateKey || rand); + return account; +}; diff --git a/types-bundle/dist/runtime.js b/types-bundle/dist/runtime.js index 2bccb43cd..f3ec112fb 100644 --- a/types-bundle/dist/runtime.js +++ b/types-bundle/dist/runtime.js @@ -1,273 +1,273 @@ -const FILE_SYSTEM_V1 = { - query_earliest_file_volunteer_tick: { - description: "Query the earliest tick number that a BSP can volunteer for a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result" - }, - query_bsp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryBspConfirmChunksToProveForFileError>" - }, - query_msp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "mspId", - type: "MainStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryMspConfirmChunksToProveForFileError>" - } -}; -const PROOFS_DEALER_V1 = { - get_last_tick_provider_submitted_proof: { - description: "Get the last tick for which the submitter submitted a proof.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_last_checkpoint_challenge_tick: { - description: "Get the last checkpoint challenge tick.", - params: [], - type: "BlockNumber" - }, - get_checkpoint_challenges: { - description: "Get checkpoint challenges for a given block.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result)>, GetCheckpointChallengesError>" - }, - get_challenge_seed: { - description: "Get the seed for a given challenge tick.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result" - }, - get_challenge_period: { - description: "Get the challenge period for a given Provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_checkpoint_challenge_period: { - description: "Get the checkpoint challenge period.", - params: [], - type: "BlockNumber" - }, - get_challenges_from_seed: { - description: "Get challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - }, - { - name: "count", - type: "u32" - } - ], - type: "Vec" - }, - get_forest_challenges_from_seed: { - description: "Get forest challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - }, - get_current_tick: { - description: "Get the current tick.", - params: [], - type: "BlockNumber" - }, - get_next_deadline_tick: { - description: "Get the next deadline tick.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - } -}; -const STORAGE_PROVIDERS_V1 = { - get_bsp_info: { - description: "Get the BSP info for a given BSP ID.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - get_storage_provider_id: { - description: "Get the Storage Provider ID for a given Account ID.", - params: [ - { - name: "who", - type: "AccountId" - } - ], - type: "Option" - }, - get_worst_case_scenario_slashable_amount: { - description: "Get the worst case scenario slashable amount for a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Option" - }, - get_slash_amount_per_max_file_size: { - description: "Get the slashable amount corresponding to the configured max file size.", - params: [], - type: "Balance" - }, - query_storage_provider_capacity: { - description: "Query the storage provider capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_available_storage_capacity: { - description: "Query the available storage capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_earliest_change_capacity_block: { - description: "Query the earliest block number that a BSP can change its capacity.", - params: [ - { - name: "providerId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - query_msp_id_of_bucket_id: { - description: "Query the MSP ID of a bucket ID.", - params: [ - { - name: "bucketId", - type: "H256" - } - ], - type: "Result" - } -}; -const PAYMENT_STREAMS_V1 = { - get_users_with_debt_over_threshold: { - description: "Get the users that have a debt to the provider greater than the threshold.", - params: [ - { - name: "providerId", - type: "ProviderId" - }, - { - name: "threshold", - type: "Balance" - } - ], - type: "Result, GetUsersWithDebtOverThresholdError>" - }, - get_users_of_payment_streams_of_provider: { - description: "Get the payment streams of a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - } -}; -export const runtime = { - FileSystemApi: [ - { - methods: FILE_SYSTEM_V1, - version: 1 - } - ], - ProofsDealerApi: [ - { - methods: PROOFS_DEALER_V1, - version: 1 - } - ], - StorageProvidersApi: [ - { - methods: STORAGE_PROVIDERS_V1, - version: 1 - } - ], - PaymentStreamsApi: [ - { - methods: PAYMENT_STREAMS_V1, - version: 1 - } - ] -}; -//# sourceMappingURL=runtime.js.map +const FILE_SYSTEM_V1 = { + query_earliest_file_volunteer_tick: { + description: "Query the earliest tick number that a BSP can volunteer for a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result" + }, + query_bsp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryBspConfirmChunksToProveForFileError>" + }, + query_msp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "mspId", + type: "MainStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryMspConfirmChunksToProveForFileError>" + } +}; +const PROOFS_DEALER_V1 = { + get_last_tick_provider_submitted_proof: { + description: "Get the last tick for which the submitter submitted a proof.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_last_checkpoint_challenge_tick: { + description: "Get the last checkpoint challenge tick.", + params: [], + type: "BlockNumber" + }, + get_checkpoint_challenges: { + description: "Get checkpoint challenges for a given block.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result)>, GetCheckpointChallengesError>" + }, + get_challenge_seed: { + description: "Get the seed for a given challenge tick.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result" + }, + get_challenge_period: { + description: "Get the challenge period for a given Provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_checkpoint_challenge_period: { + description: "Get the checkpoint challenge period.", + params: [], + type: "BlockNumber" + }, + get_challenges_from_seed: { + description: "Get challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + }, + { + name: "count", + type: "u32" + } + ], + type: "Vec" + }, + get_forest_challenges_from_seed: { + description: "Get forest challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + }, + get_current_tick: { + description: "Get the current tick.", + params: [], + type: "BlockNumber" + }, + get_next_deadline_tick: { + description: "Get the next deadline tick.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + } +}; +const STORAGE_PROVIDERS_V1 = { + get_bsp_info: { + description: "Get the BSP info for a given BSP ID.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + get_storage_provider_id: { + description: "Get the Storage Provider ID for a given Account ID.", + params: [ + { + name: "who", + type: "AccountId" + } + ], + type: "Option" + }, + get_worst_case_scenario_slashable_amount: { + description: "Get the worst case scenario slashable amount for a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Option" + }, + get_slash_amount_per_max_file_size: { + description: "Get the slashable amount corresponding to the configured max file size.", + params: [], + type: "Balance" + }, + query_storage_provider_capacity: { + description: "Query the storage provider capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_available_storage_capacity: { + description: "Query the available storage capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_earliest_change_capacity_block: { + description: "Query the earliest block number that a BSP can change its capacity.", + params: [ + { + name: "providerId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + query_msp_id_of_bucket_id: { + description: "Query the MSP ID of a bucket ID.", + params: [ + { + name: "bucketId", + type: "H256" + } + ], + type: "Result" + } +}; +const PAYMENT_STREAMS_V1 = { + get_users_with_debt_over_threshold: { + description: "Get the users that have a debt to the provider greater than the threshold.", + params: [ + { + name: "providerId", + type: "ProviderId" + }, + { + name: "threshold", + type: "Balance" + } + ], + type: "Result, GetUsersWithDebtOverThresholdError>" + }, + get_users_of_payment_streams_of_provider: { + description: "Get the payment streams of a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + } +}; +export const runtime = { + FileSystemApi: [ + { + methods: FILE_SYSTEM_V1, + version: 1 + } + ], + ProofsDealerApi: [ + { + methods: PROOFS_DEALER_V1, + version: 1 + } + ], + StorageProvidersApi: [ + { + methods: STORAGE_PROVIDERS_V1, + version: 1 + } + ], + PaymentStreamsApi: [ + { + methods: PAYMENT_STREAMS_V1, + version: 1 + } + ] +}; +//# sourceMappingURL=runtime.js.map diff --git a/types-bundle/dist/types.js b/types-bundle/dist/types.js index aeb0c03ed..9ea5b3c1d 100644 --- a/types-bundle/dist/types.js +++ b/types-bundle/dist/types.js @@ -1,157 +1,157 @@ -export const ALL_TYPES = { - FileMetadata: { - owner: "Vec", - bucket_id: "Vec", - location: "Vec", - file_size: "u64", - fingerprint: "[u8; 32]" - }, - IncompleteFileStatus: { - file_metadata: "FileMetadata", - stored_chunks: "u64", - total_chunks: "u64" - }, - SaveFileToDisk: { - _enum: { - FileNotFound: null, - Success: "FileMetadata", - IncompleteFile: "IncompleteFileStatus" - } - }, - GetFileFromFileStorageResult: { - _enum: { - FileNotFound: null, - FileFound: "FileMetadata", - IncompleteFile: "IncompleteFileStatus", - FileFoundWithInconsistency: "FileMetadata" - } - }, - ProviderId: "H256", - Key: "H256", - RandomnessOutput: "H256", - TrieRemoveMutation: {}, - BackupStorageProviderId: "H256", - MainStorageProviderId: "H256", - StorageData: "u32", - MerklePatriciaRoot: "H256", - ChunkId: "u64", - StorageDataUnit: "u32", - BackupStorageProvider: { - capacity: "StorageData", - data_used: "StorageData", - multiaddresses: "BoundedVec", - root: "MerklePatriciaRoot", - last_capacity_change: "BlockNumber", - owner_account: "AccountId", - payment_account: "AccountId" - }, - StorageProviderId: { - _enum: { - BackupStorageProvider: "BackupStorageProviderId", - MainStorageProvider: "MainStorageProviderId" - } - }, - GetLastTickProviderSubmittedProofError: { - _enum: { - ProviderNotRegistered: null, - ProviderNeverSubmittedProof: null, - InternalApiError: null - } - }, - GetCheckpointChallengesError: { - _enum: { - TickGreaterThanLastCheckpointTick: null, - NoCheckpointChallengesInTick: null, - InternalApiError: null - } - }, - GetChallengeSeedError: { - _enum: { - TickBeyondLastSeedStored: null, - TickIsInTheFuture: null, - InternalApiError: null - } - }, - GetChallengePeriodError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - GetBspInfoError: { - _enum: { - BspNotRegistered: null, - InternalApiError: null - } - }, - GetNextDeadlineTickError: { - _enum: { - ProviderNotRegistered: null, - ProviderNotInitialised: null, - ArithmeticOverflow: null, - InternalApiError: null - } - }, - QueryFileEarliestVolunteerBlockError: { - _enum: { - FailedToEncodeFingerprint: null, - FailedToEncodeBsp: null, - ThresholdArithmeticError: null, - StorageRequestNotFound: null, - InternalError: null - } - }, - QueryBspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryMspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryConfirmChunksToProveForFileError: { - _enum: { - ChallengedChunkToChunkIdError: null - } - }, - GetUsersWithDebtOverThresholdError: { - _enum: { - ProviderNotRegistered: null, - ProviderWithoutPaymentStreams: null, - AmountToChargeOverflow: null, - DebtOverflow: null, - InternalApiError: null - } - }, - QueryStorageProviderCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryAvailableStorageCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryEarliestChangeCapacityBlockError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryMspIdOfBucketIdError: { - _enum: { - BucketNotFound: null, - InternalApiError: null - } - } -}; -//# sourceMappingURL=types.js.map +export const ALL_TYPES = { + FileMetadata: { + owner: "Vec", + bucket_id: "Vec", + location: "Vec", + file_size: "u64", + fingerprint: "[u8; 32]" + }, + IncompleteFileStatus: { + file_metadata: "FileMetadata", + stored_chunks: "u64", + total_chunks: "u64" + }, + SaveFileToDisk: { + _enum: { + FileNotFound: null, + Success: "FileMetadata", + IncompleteFile: "IncompleteFileStatus" + } + }, + GetFileFromFileStorageResult: { + _enum: { + FileNotFound: null, + FileFound: "FileMetadata", + IncompleteFile: "IncompleteFileStatus", + FileFoundWithInconsistency: "FileMetadata" + } + }, + ProviderId: "H256", + Key: "H256", + RandomnessOutput: "H256", + TrieRemoveMutation: {}, + BackupStorageProviderId: "H256", + MainStorageProviderId: "H256", + StorageData: "u32", + MerklePatriciaRoot: "H256", + ChunkId: "u64", + StorageDataUnit: "u32", + BackupStorageProvider: { + capacity: "StorageData", + data_used: "StorageData", + multiaddresses: "BoundedVec", + root: "MerklePatriciaRoot", + last_capacity_change: "BlockNumber", + owner_account: "AccountId", + payment_account: "AccountId" + }, + StorageProviderId: { + _enum: { + BackupStorageProvider: "BackupStorageProviderId", + MainStorageProvider: "MainStorageProviderId" + } + }, + GetLastTickProviderSubmittedProofError: { + _enum: { + ProviderNotRegistered: null, + ProviderNeverSubmittedProof: null, + InternalApiError: null + } + }, + GetCheckpointChallengesError: { + _enum: { + TickGreaterThanLastCheckpointTick: null, + NoCheckpointChallengesInTick: null, + InternalApiError: null + } + }, + GetChallengeSeedError: { + _enum: { + TickBeyondLastSeedStored: null, + TickIsInTheFuture: null, + InternalApiError: null + } + }, + GetChallengePeriodError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + GetBspInfoError: { + _enum: { + BspNotRegistered: null, + InternalApiError: null + } + }, + GetNextDeadlineTickError: { + _enum: { + ProviderNotRegistered: null, + ProviderNotInitialised: null, + ArithmeticOverflow: null, + InternalApiError: null + } + }, + QueryFileEarliestVolunteerBlockError: { + _enum: { + FailedToEncodeFingerprint: null, + FailedToEncodeBsp: null, + ThresholdArithmeticError: null, + StorageRequestNotFound: null, + InternalError: null + } + }, + QueryBspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryMspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryConfirmChunksToProveForFileError: { + _enum: { + ChallengedChunkToChunkIdError: null + } + }, + GetUsersWithDebtOverThresholdError: { + _enum: { + ProviderNotRegistered: null, + ProviderWithoutPaymentStreams: null, + AmountToChargeOverflow: null, + DebtOverflow: null, + InternalApiError: null + } + }, + QueryStorageProviderCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryAvailableStorageCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryEarliestChangeCapacityBlockError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryMspIdOfBucketIdError: { + _enum: { + BucketNotFound: null, + InternalApiError: null + } + } +}; +//# sourceMappingURL=types.js.map diff --git a/types-bundle/src/runtime.ts b/types-bundle/src/runtime.ts index d8d72e829..1bf60dca1 100644 --- a/types-bundle/src/runtime.ts +++ b/types-bundle/src/runtime.ts @@ -1,278 +1,278 @@ -import type { DefinitionCall, DefinitionsCall } from "@polkadot/types/types"; - -const FILE_SYSTEM_V1: Record = { - query_earliest_file_volunteer_tick: { - description: "Query the earliest tick number that a BSP can volunteer for a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result" - }, - query_bsp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryBspConfirmChunksToProveForFileError>" - }, - query_msp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "mspId", - type: "MainStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryMspConfirmChunksToProveForFileError>" - } -}; - -const PROOFS_DEALER_V1: Record = { - get_last_tick_provider_submitted_proof: { - description: "Get the last tick for which the submitter submitted a proof.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_last_checkpoint_challenge_tick: { - description: "Get the last checkpoint challenge tick.", - params: [], - type: "BlockNumber" - }, - get_checkpoint_challenges: { - description: "Get checkpoint challenges for a given block.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result)>, GetCheckpointChallengesError>" - }, - get_challenge_seed: { - description: "Get the seed for a given challenge tick.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result" - }, - get_challenge_period: { - description: "Get the challenge period for a given Provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_checkpoint_challenge_period: { - description: "Get the checkpoint challenge period.", - params: [], - type: "BlockNumber" - }, - get_challenges_from_seed: { - description: "Get challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - }, - { - name: "count", - type: "u32" - } - ], - type: "Vec" - }, - get_forest_challenges_from_seed: { - description: "Get forest challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - }, - get_current_tick: { - description: "Get the current tick.", - params: [], - type: "BlockNumber" - }, - get_next_deadline_tick: { - description: "Get the next deadline tick.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - } -}; - -const STORAGE_PROVIDERS_V1: Record = { - get_bsp_info: { - description: "Get the BSP info for a given BSP ID.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - get_storage_provider_id: { - description: "Get the Storage Provider ID for a given Account ID.", - params: [ - { - name: "who", - type: "AccountId" - } - ], - type: "Option" - }, - get_worst_case_scenario_slashable_amount: { - description: "Get the worst case scenario slashable amount for a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Option" - }, - get_slash_amount_per_max_file_size: { - description: "Get the slashable amount corresponding to the configured max file size.", - params: [], - type: "Balance" - }, - query_storage_provider_capacity: { - description: "Query the storage provider capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_available_storage_capacity: { - description: "Query the available storage capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_earliest_change_capacity_block: { - description: "Query the earliest block number that a BSP can change its capacity.", - params: [ - { - name: "providerId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - query_msp_id_of_bucket_id: { - description: "Query the MSP ID of a bucket ID.", - params: [ - { - name: "bucketId", - type: "H256" - } - ], - type: "Result" - } -}; - -const PAYMENT_STREAMS_V1: Record = { - get_users_with_debt_over_threshold: { - description: "Get the users that have a debt to the provider greater than the threshold.", - params: [ - { - name: "providerId", - type: "ProviderId" - }, - { - name: "threshold", - type: "Balance" - } - ], - type: "Result, GetUsersWithDebtOverThresholdError>" - }, - get_users_of_payment_streams_of_provider: { - description: "Get the payment streams of a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - } -}; - -export const runtime: DefinitionsCall = { - FileSystemApi: [ - { - methods: FILE_SYSTEM_V1, - version: 1 - } - ], - ProofsDealerApi: [ - { - methods: PROOFS_DEALER_V1, - version: 1 - } - ], - StorageProvidersApi: [ - { - methods: STORAGE_PROVIDERS_V1, - version: 1 - } - ], - PaymentStreamsApi: [ - { - methods: PAYMENT_STREAMS_V1, - version: 1 - } - ] -}; +import type { DefinitionCall, DefinitionsCall } from "@polkadot/types/types"; + +const FILE_SYSTEM_V1: Record = { + query_earliest_file_volunteer_tick: { + description: "Query the earliest tick number that a BSP can volunteer for a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result" + }, + query_bsp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryBspConfirmChunksToProveForFileError>" + }, + query_msp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "mspId", + type: "MainStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryMspConfirmChunksToProveForFileError>" + } +}; + +const PROOFS_DEALER_V1: Record = { + get_last_tick_provider_submitted_proof: { + description: "Get the last tick for which the submitter submitted a proof.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_last_checkpoint_challenge_tick: { + description: "Get the last checkpoint challenge tick.", + params: [], + type: "BlockNumber" + }, + get_checkpoint_challenges: { + description: "Get checkpoint challenges for a given block.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result)>, GetCheckpointChallengesError>" + }, + get_challenge_seed: { + description: "Get the seed for a given challenge tick.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result" + }, + get_challenge_period: { + description: "Get the challenge period for a given Provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_checkpoint_challenge_period: { + description: "Get the checkpoint challenge period.", + params: [], + type: "BlockNumber" + }, + get_challenges_from_seed: { + description: "Get challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + }, + { + name: "count", + type: "u32" + } + ], + type: "Vec" + }, + get_forest_challenges_from_seed: { + description: "Get forest challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + }, + get_current_tick: { + description: "Get the current tick.", + params: [], + type: "BlockNumber" + }, + get_next_deadline_tick: { + description: "Get the next deadline tick.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + } +}; + +const STORAGE_PROVIDERS_V1: Record = { + get_bsp_info: { + description: "Get the BSP info for a given BSP ID.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + get_storage_provider_id: { + description: "Get the Storage Provider ID for a given Account ID.", + params: [ + { + name: "who", + type: "AccountId" + } + ], + type: "Option" + }, + get_worst_case_scenario_slashable_amount: { + description: "Get the worst case scenario slashable amount for a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Option" + }, + get_slash_amount_per_max_file_size: { + description: "Get the slashable amount corresponding to the configured max file size.", + params: [], + type: "Balance" + }, + query_storage_provider_capacity: { + description: "Query the storage provider capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_available_storage_capacity: { + description: "Query the available storage capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_earliest_change_capacity_block: { + description: "Query the earliest block number that a BSP can change its capacity.", + params: [ + { + name: "providerId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + query_msp_id_of_bucket_id: { + description: "Query the MSP ID of a bucket ID.", + params: [ + { + name: "bucketId", + type: "H256" + } + ], + type: "Result" + } +}; + +const PAYMENT_STREAMS_V1: Record = { + get_users_with_debt_over_threshold: { + description: "Get the users that have a debt to the provider greater than the threshold.", + params: [ + { + name: "providerId", + type: "ProviderId" + }, + { + name: "threshold", + type: "Balance" + } + ], + type: "Result, GetUsersWithDebtOverThresholdError>" + }, + get_users_of_payment_streams_of_provider: { + description: "Get the payment streams of a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + } +}; + +export const runtime: DefinitionsCall = { + FileSystemApi: [ + { + methods: FILE_SYSTEM_V1, + version: 1 + } + ], + ProofsDealerApi: [ + { + methods: PROOFS_DEALER_V1, + version: 1 + } + ], + StorageProvidersApi: [ + { + methods: STORAGE_PROVIDERS_V1, + version: 1 + } + ], + PaymentStreamsApi: [ + { + methods: PAYMENT_STREAMS_V1, + version: 1 + } + ] +}; diff --git a/types-bundle/src/types.ts b/types-bundle/src/types.ts index e8b8e9c14..5f7eafe06 100644 --- a/types-bundle/src/types.ts +++ b/types-bundle/src/types.ts @@ -1,158 +1,158 @@ -import type { RegistryTypes } from "@polkadot/types/types"; - -export const ALL_TYPES: RegistryTypes = { - FileMetadata: { - owner: "Vec", - bucket_id: "Vec", - location: "Vec", - file_size: "u64", - fingerprint: "[u8; 32]" - }, - IncompleteFileStatus: { - file_metadata: "FileMetadata", - stored_chunks: "u64", - total_chunks: "u64" - }, - SaveFileToDisk: { - _enum: { - FileNotFound: null, - Success: "FileMetadata", - IncompleteFile: "IncompleteFileStatus" - } - }, - GetFileFromFileStorageResult: { - _enum: { - FileNotFound: null, - FileFound: "FileMetadata", - IncompleteFile: "IncompleteFileStatus", - FileFoundWithInconsistency: "FileMetadata" - } - }, - ProviderId: "H256", - Key: "H256", - RandomnessOutput: "H256", - TrieRemoveMutation: {}, - BackupStorageProviderId: "H256", - MainStorageProviderId: "H256", - StorageData: "u32", - MerklePatriciaRoot: "H256", - ChunkId: "u64", - StorageDataUnit: "u32", - BackupStorageProvider: { - capacity: "StorageData", - data_used: "StorageData", - multiaddresses: "BoundedVec", - root: "MerklePatriciaRoot", - last_capacity_change: "BlockNumber", - owner_account: "AccountId", - payment_account: "AccountId" - }, - StorageProviderId: { - _enum: { - BackupStorageProvider: "BackupStorageProviderId", - MainStorageProvider: "MainStorageProviderId" - } - }, - GetLastTickProviderSubmittedProofError: { - _enum: { - ProviderNotRegistered: null, - ProviderNeverSubmittedProof: null, - InternalApiError: null - } - }, - GetCheckpointChallengesError: { - _enum: { - TickGreaterThanLastCheckpointTick: null, - NoCheckpointChallengesInTick: null, - InternalApiError: null - } - }, - GetChallengeSeedError: { - _enum: { - TickBeyondLastSeedStored: null, - TickIsInTheFuture: null, - InternalApiError: null - } - }, - GetChallengePeriodError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - GetBspInfoError: { - _enum: { - BspNotRegistered: null, - InternalApiError: null - } - }, - GetNextDeadlineTickError: { - _enum: { - ProviderNotRegistered: null, - ProviderNotInitialised: null, - ArithmeticOverflow: null, - InternalApiError: null - } - }, - QueryFileEarliestVolunteerBlockError: { - _enum: { - FailedToEncodeFingerprint: null, - FailedToEncodeBsp: null, - ThresholdArithmeticError: null, - StorageRequestNotFound: null, - InternalError: null - } - }, - QueryBspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryMspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryConfirmChunksToProveForFileError: { - _enum: { - ChallengedChunkToChunkIdError: null - } - }, - GetUsersWithDebtOverThresholdError: { - _enum: { - ProviderNotRegistered: null, - ProviderWithoutPaymentStreams: null, - AmountToChargeOverflow: null, - DebtOverflow: null, - InternalApiError: null - } - }, - QueryStorageProviderCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryAvailableStorageCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryEarliestChangeCapacityBlockError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryMspIdOfBucketIdError: { - _enum: { - BucketNotFound: null, - InternalApiError: null - } - } -}; +import type { RegistryTypes } from "@polkadot/types/types"; + +export const ALL_TYPES: RegistryTypes = { + FileMetadata: { + owner: "Vec", + bucket_id: "Vec", + location: "Vec", + file_size: "u64", + fingerprint: "[u8; 32]" + }, + IncompleteFileStatus: { + file_metadata: "FileMetadata", + stored_chunks: "u64", + total_chunks: "u64" + }, + SaveFileToDisk: { + _enum: { + FileNotFound: null, + Success: "FileMetadata", + IncompleteFile: "IncompleteFileStatus" + } + }, + GetFileFromFileStorageResult: { + _enum: { + FileNotFound: null, + FileFound: "FileMetadata", + IncompleteFile: "IncompleteFileStatus", + FileFoundWithInconsistency: "FileMetadata" + } + }, + ProviderId: "H256", + Key: "H256", + RandomnessOutput: "H256", + TrieRemoveMutation: {}, + BackupStorageProviderId: "H256", + MainStorageProviderId: "H256", + StorageData: "u32", + MerklePatriciaRoot: "H256", + ChunkId: "u64", + StorageDataUnit: "u32", + BackupStorageProvider: { + capacity: "StorageData", + data_used: "StorageData", + multiaddresses: "BoundedVec", + root: "MerklePatriciaRoot", + last_capacity_change: "BlockNumber", + owner_account: "AccountId", + payment_account: "AccountId" + }, + StorageProviderId: { + _enum: { + BackupStorageProvider: "BackupStorageProviderId", + MainStorageProvider: "MainStorageProviderId" + } + }, + GetLastTickProviderSubmittedProofError: { + _enum: { + ProviderNotRegistered: null, + ProviderNeverSubmittedProof: null, + InternalApiError: null + } + }, + GetCheckpointChallengesError: { + _enum: { + TickGreaterThanLastCheckpointTick: null, + NoCheckpointChallengesInTick: null, + InternalApiError: null + } + }, + GetChallengeSeedError: { + _enum: { + TickBeyondLastSeedStored: null, + TickIsInTheFuture: null, + InternalApiError: null + } + }, + GetChallengePeriodError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + GetBspInfoError: { + _enum: { + BspNotRegistered: null, + InternalApiError: null + } + }, + GetNextDeadlineTickError: { + _enum: { + ProviderNotRegistered: null, + ProviderNotInitialised: null, + ArithmeticOverflow: null, + InternalApiError: null + } + }, + QueryFileEarliestVolunteerBlockError: { + _enum: { + FailedToEncodeFingerprint: null, + FailedToEncodeBsp: null, + ThresholdArithmeticError: null, + StorageRequestNotFound: null, + InternalError: null + } + }, + QueryBspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryMspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryConfirmChunksToProveForFileError: { + _enum: { + ChallengedChunkToChunkIdError: null + } + }, + GetUsersWithDebtOverThresholdError: { + _enum: { + ProviderNotRegistered: null, + ProviderWithoutPaymentStreams: null, + AmountToChargeOverflow: null, + DebtOverflow: null, + InternalApiError: null + } + }, + QueryStorageProviderCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryAvailableStorageCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryEarliestChangeCapacityBlockError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryMspIdOfBucketIdError: { + _enum: { + BucketNotFound: null, + InternalApiError: null + } + } +}; From 22cf3abd61a3ea49570cac209569c038e89e6315 Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 4 Oct 2024 16:31:46 -0300 Subject: [PATCH 23/24] fix: :adhesive_bandage: fix merge from main --- Cargo.lock | 38470 +++++++--------- api-augment/dist/interfaces/lookup.js | 9226 ++-- api-augment/dist/interfaces/lookup.js.map | 6 +- .../types/interfaces/augment-api-consts.d.ts | 1124 +- .../types/interfaces/augment-api-errors.d.ts | 2390 +- .../types/interfaces/augment-api-events.d.ts | 4748 +- .../types/interfaces/augment-api-query.d.ts | 4051 +- .../types/interfaces/augment-api-runtime.d.ts | 1469 +- .../dist/types/interfaces/augment-api-tx.d.ts | 8040 ++-- .../dist/types/interfaces/augment-types.d.ts | 5245 ++- api-augment/dist/types/interfaces/lookup.d.ts | 8574 ++-- .../dist/types/interfaces/registry.d.ts | 1078 +- .../interfaces/storagehubclient/types.d.ts | 392 +- .../dist/types/interfaces/types-lookup.d.ts | 10904 +++-- .../src/interfaces/augment-api-consts.ts | 1140 +- .../src/interfaces/augment-api-errors.ts | 2406 +- .../src/interfaces/augment-api-events.ts | 3648 +- .../src/interfaces/augment-api-query.ts | 3935 +- .../src/interfaces/augment-api-runtime.ts | 1351 +- api-augment/src/interfaces/augment-api-tx.ts | 6836 +-- api-augment/src/interfaces/augment-types.ts | 5259 ++- api-augment/src/interfaces/lookup.ts | 9228 ++-- api-augment/src/interfaces/registry.ts | 1092 +- .../src/interfaces/storagehubclient/types.ts | 462 +- api-augment/src/interfaces/types-lookup.ts | 11452 +++-- api-augment/storagehub.json | 6 +- runtime/src/apis.rs | 65 +- runtime/src/configs/mod.rs | 50 +- types-bundle/dist/runtime.js | 546 +- types-bundle/dist/types.js | 314 +- types-bundle/src/runtime.ts | 556 +- types-bundle/src/types.ts | 316 +- xcm-simulator/src/storagehub/apis.rs | 62 +- xcm-simulator/src/storagehub/configs/mod.rs | 42 +- 34 files changed, 70240 insertions(+), 74243 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 57914aaf3..0500f78b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,20523 +1,17947 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli 0.27.3", -] - -[[package]] -name = "addr2line" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" -dependencies = [ - "gimli 0.29.0", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array 0.14.7", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" -dependencies = [ - "aead", - "aes", - "cipher 0.4.4", - "ctr", - "ghash", - "subtle 2.6.1", -] - -[[package]] -name = "ahash" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" -dependencies = [ - "getrandom 0.2.15", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "getrandom 0.2.15", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "always-assert" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.6.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" - -[[package]] -name = "anstyle-parse" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" -dependencies = [ - "anstyle", - "windows-sys 0.52.0", -] - -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "aquamarine" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" -dependencies = [ - "include_dir", - "itertools 0.10.5", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "ark-bls12-377" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-bls12-377-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" -dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-models-ext", - "ark-std", -] - -[[package]] -name = "ark-bls12-381" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", -] - -[[package]] -name = "ark-bls12-381-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-models-ext", - "ark-serialize", - "ark-std", -] - -[[package]] -name = "ark-bw6-761" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" -dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-bw6-761-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" -dependencies = [ - "ark-bw6-761", - "ark-ec", - "ark-ff", - "ark-models-ext", - "ark-std", -] - -[[package]] -name = "ark-ec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" -dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.13.2", - "itertools 0.10.5", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ed-on-bls12-377" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" -dependencies = [ - "ark-bls12-377", - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-ed-on-bls12-377-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" -dependencies = [ - "ark-ec", - "ark-ed-on-bls12-377", - "ark-ff", - "ark-models-ext", - "ark-std", -] - -[[package]] -name = "ark-ed-on-bls12-381-bandersnatch" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-ed-on-bls12-381-bandersnatch-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" -dependencies = [ - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-models-ext", - "ark-std", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-models-ext" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", -] - -[[package]] -name = "ark-poly" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.13.2", -] - -[[package]] -name = "ark-scale" -version = "0.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "ark-secret-scalar" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", - "ark-transcript", - "digest 0.10.7", - "getrandom_or_panic", - "zeroize", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.10.7", - "num-bigint", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", - "rayon", -] - -[[package]] -name = "ark-transcript" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "digest 0.10.7", - "rand_core 0.6.4", - "sha3", -] - -[[package]] -name = "array-bytes" -version = "6.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" - -[[package]] -name = "arrayref" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" - -[[package]] -name = "arrayvec" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" -dependencies = [ - "nodrop", -] - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[package]] -name = "asn1-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "assert_matches" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" -dependencies = [ - "concurrent-queue", - "event-listener-strategy", - "futures-core", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "async-executor" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7" -dependencies = [ - "async-task", - "concurrent-queue", - "fastrand 2.1.0", - "futures-lite 2.3.0", - "slab", -] - -[[package]] -name = "async-fs" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" -dependencies = [ - "async-lock 3.4.0", - "cfg-if", - "concurrent-queue", - "futures-io", - "futures-lite 2.3.0", - "parking", - "polling 3.7.3", - "rustix 0.38.34", - "slab", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" -dependencies = [ - "event-listener 5.3.1", - "event-listener-strategy", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "async-net" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" -dependencies = [ - "async-io 1.13.0", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "async-process" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" -dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", - "async-signal", - "blocking", - "cfg-if", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.34", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-signal" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" -dependencies = [ - "async-io 2.3.4", - "async-lock 3.4.0", - "atomic-waker", - "cfg-if", - "futures-core", - "futures-io", - "rustix 0.38.34", - "signal-hook-registry", - "slab", - "windows-sys 0.59.0", -] - -[[package]] -name = "async-task" -version = "4.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" - -[[package]] -name = "async-trait" -version = "0.1.81" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "asynchronous-codec" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" -dependencies = [ - "bytes", - "futures-sink", - "futures-util", - "memchr", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "atomic-take" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "backtrace" -version = "0.3.73" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" -dependencies = [ - "addr2line 0.22.0", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.7.4", - "object 0.36.3", - "rustc-demangle", -] - -[[package]] -name = "bandersnatch_vrfs" -version = "0.0.4" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ff", - "ark-serialize", - "ark-std", - "dleq_vrf", - "fflonk", - "merlin", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "ring 0.1.0", - "sha2 0.10.8", - "sp-ark-bls12-381", - "sp-ark-ed-on-bls12-381-bandersnatch", - "zeroize", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bb8" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b10cf871f3ff2ce56432fddc2615ac7acc3aa22ca321f8fea800846fbb32f188" -dependencies = [ - "async-trait", - "futures-util", - "parking_lot 0.12.3", - "tokio", -] - -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde", -] - -[[package]] -name = "bigdecimal" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d712318a27c7150326677b321a5fa91b55f6d9034ffd67f20319e147d40cee" -dependencies = [ - "autocfg", - "libm", - "num-bigint", - "num-integer", - "num-traits", - "serde", -] - -[[package]] -name = "binary-merkle-tree" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "hash-db", - "log", -] - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.65.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" -dependencies = [ - "bitflags 1.3.2", - "cexpr", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "prettyplease 0.2.20", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.75", -] - -[[package]] -name = "bip39" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" -dependencies = [ - "bitcoin_hashes 0.11.0", -<<<<<<< HEAD - "rand 0.7.3", - "rand_core 0.5.1", -======= - "rand 0.8.5", - "rand_core 0.6.4", ->>>>>>> main - "serde", - "unicode-normalization", -] - -[[package]] -name = "bitcoin-internals" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" - -[[package]] -name = "bitcoin_hashes" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" - -[[package]] -name = "bitcoin_hashes" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" -dependencies = [ - "bitcoin-internals", - "hex-conservative", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" -dependencies = [ - "byte-tools", - "crypto-mac 0.7.0", - "digest 0.8.1", - "opaque-debug 0.2.3", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2-rfc" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" -dependencies = [ - "arrayvec 0.4.12", - "constant_time_eq 0.1.5", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "blake2s_simd" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "blake3" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "cc", - "cfg-if", - "constant_time_eq 0.3.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "blocking" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" -dependencies = [ - "async-channel 2.3.1", - "async-task", - "futures-io", - "futures-lite 2.3.0", - "piper", -] - -[[package]] -name = "bounded-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" -dependencies = [ - "log", - "parity-scale-codec", - "scale-info", - "serde", -] - -[[package]] -name = "bounded-vec" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" -dependencies = [ - "thiserror", -] - -[[package]] -name = "bp-xcm-bridge-hub-router" -version = "0.6.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "build-helper" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" -dependencies = [ - "semver 0.6.0", -] - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byte-tools" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" - -[[package]] -name = "bytemuck" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "c2-chacha" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" -dependencies = [ - "cipher 0.2.5", - "ppv-lite86", -] - -[[package]] -name = "camino" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cc" -version = "1.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" -dependencies = [ - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" - -[[package]] -name = "chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" -dependencies = [ - "byteorder", - "keystream", -] - -[[package]] -name = "chacha20" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", -] - -[[package]] -name = "chacha20poly1305" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" -dependencies = [ - "aead", - "chacha20", - "cipher 0.4.4", - "poly1305", - "zeroize", -] - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "wasm-bindgen", - "windows-targets 0.52.6", -] - -[[package]] -name = "cid" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" -dependencies = [ - "core2", - "multibase", - "multihash 0.17.0", - "serde", - "unsigned-varint", -] - -[[package]] -name = "cid" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" -dependencies = [ - "core2", - "multibase", - "multihash 0.18.1", - "serde", - "unsigned-varint", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", - "zeroize", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", - "terminal_size", -] - -[[package]] -name = "clap_derive" -version = "4.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "clap_lex" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" - -[[package]] -name = "coarsetime" -version = "0.1.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b3839cf01bb7960114be3ccf2340f541b6d0c81f8690b007b2b39f750f7e5d" -dependencies = [ - "libc", - "wasix", - "wasm-bindgen", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] - -[[package]] -name = "color-print" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" -dependencies = [ - "color-print-proc-macro", -] - -[[package]] -name = "color-print-proc-macro" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" -dependencies = [ - "nom", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "colorchoice" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "comfy-table" -version = "7.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" -dependencies = [ - "strum 0.26.3", - "strum_macros 0.26.4", - "unicode-width", -] - -[[package]] -name = "common" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "fflonk", - "getrandom_or_panic", - "merlin", - "rand_chacha 0.3.1", -] - -[[package]] -name = "common-path" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" - -[[package]] -name = "concurrent-queue" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "console" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const-random" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" -dependencies = [ - "const-random-macro", -] - -[[package]] -name = "const-random-macro" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" -dependencies = [ - "getrandom 0.2.15", - "once_cell", - "tiny-keccak", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - -[[package]] -name = "constcat" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpp_demangle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "cpu-time" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "cpufeatures" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" -dependencies = [ - "libc", -] - -[[package]] -name = "cranelift-bforest" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" -dependencies = [ - "bumpalo", - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-entity", - "cranelift-isle", - "gimli 0.27.3", - "hashbrown 0.13.2", - "log", - "regalloc2 0.6.1", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" - -[[package]] -name = "cranelift-entity" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" -dependencies = [ - "serde", -] - -[[package]] -name = "cranelift-frontend" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-isle" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" - -[[package]] -name = "cranelift-native" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" -dependencies = [ - "cranelift-codegen", - "libc", - "target-lexicon", -] - -[[package]] -name = "cranelift-wasm" -version = "0.95.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools 0.10.5", - "log", - "smallvec", - "wasmparser", - "wasmtime-types", -] - -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "typenum", -] - -[[package]] -name = "crypto-mac" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" -dependencies = [ - "generic-array 0.12.4", - "subtle 1.0.0", -] - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.6.1", -] - -[[package]] -name = "crypto-mac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.6.1", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher 0.4.4", -] - -[[package]] -name = "cumulus-client-cli" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "clap", - "parity-scale-codec", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-service", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "url", -] - -[[package]] -name = "cumulus-client-collator" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-primitives-core", - "futures", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sp-api 26.0.0", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-aura" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-client-collator", - "cumulus-client-consensus-common", - "cumulus-client-consensus-proposer", - "cumulus-client-parachain-inherent", - "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-slots", - "sc-telemetry", - "schnellru", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-timestamp 26.0.0", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-common" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "dyn-clone", - "futures", - "log", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-consensus", - "sc-consensus-babe", - "schnellru", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "cumulus-client-consensus-proposer" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "anyhow", - "async-trait", - "cumulus-primitives-parachain-inherent", - "sp-consensus", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "thiserror", -] - -[[package]] -name = "cumulus-client-network" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-relay-chain-interface", - "futures", - "futures-timer", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sp-blockchain", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "tracing", -] - -[[package]] -name = "cumulus-client-parachain-inherent" -version = "0.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-relay-chain-interface", - "cumulus-test-relay-sproof-builder", - "parity-scale-codec", - "sc-client-api", - "scale-info", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "tracing", -] - -[[package]] -name = "cumulus-client-pov-recovery" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures", - "futures-timer", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "sc-client-api", - "sc-consensus", - "sp-consensus", - "sp-maybe-compressed-blob", - "sp-runtime 31.0.1", - "tracing", -] - -[[package]] -name = "cumulus-client-service" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-client-cli", - "cumulus-client-collator", - "cumulus-client-consensus-common", - "cumulus-client-network", - "cumulus-client-pov-recovery", - "cumulus-primitives-core", - "cumulus-primitives-proof-size-hostfunction", - "cumulus-relay-chain-inprocess-interface", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-minimal-node", - "futures", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-sync", - "sc-network-transactions", - "sc-rpc", - "sc-service", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-utils", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-transaction-pool", -] - -[[package]] -name = "cumulus-pallet-aura-ext" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-pallet-parachain-system", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-aura", - "pallet-timestamp 27.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0", - "sp-consensus-aura", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", -] - -[[package]] -name = "cumulus-pallet-dmp-queue" -version = "0.7.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "cumulus-primitives-core", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "staging-xcm 7.0.0", ->>>>>>> main -] - -[[package]] -name = "cumulus-pallet-parachain-system" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bytes", - "cumulus-pallet-parachain-system-proc-macro", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-primitives-proof-size-hostfunction", - "environmental", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "log", - "pallet-message-queue 31.0.0", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", - "sp-version 29.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", - "staging-xcm 7.0.0", ->>>>>>> main - "trie-db 0.29.1", -] - -[[package]] -name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.6.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "cumulus-pallet-session-benchmarking" -version = "9.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-session 28.0.0", - "parity-scale-codec", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "cumulus-pallet-xcm" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-primitives-core", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", -] - -[[package]] -name = "cumulus-pallet-xcmp-queue" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bounded-collections", - "bp-xcm-bridge-hub-router", - "cumulus-primitives-core", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-message-queue 31.0.0", - "parity-scale-codec", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", -] - -[[package]] -name = "cumulus-primitives-aura" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-primitives 7.0.0", - "sp-api 26.0.0", - "sp-consensus-aura", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "cumulus-primitives-core" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", -] - -[[package]] -name = "cumulus-primitives-parachain-inherent" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "cumulus-primitives-proof-size-hostfunction" -version = "0.2.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "cumulus-primitives-storage-weight-reclaim" -version = "1.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-primitives-core", - "cumulus-primitives-proof-size-hostfunction", - "docify", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "cumulus-primitives-utility" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-primitives-core", - "frame-support 28.0.0", - "log", - "pallet-asset-conversion", - "parity-scale-codec", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", -] - -[[package]] -name = "cumulus-relay-chain-inprocess-interface" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "futures", - "futures-timer", - "polkadot-cli", - "polkadot-service", - "sc-cli", - "sc-client-api", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sp-api 26.0.0", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", -] - -[[package]] -name = "cumulus-relay-chain-interface" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "futures", - "jsonrpsee-core", - "parity-scale-codec", - "polkadot-overseer", - "sc-client-api", - "sp-api 26.0.0", - "sp-blockchain", - "sp-state-machine 0.35.0", - "thiserror", -] - -[[package]] -name = "cumulus-relay-chain-minimal-node" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-relay-chain-rpc-interface", - "futures", - "parking_lot 0.12.3", - "polkadot-availability-recovery", - "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-chain-api", - "polkadot-node-core-prospective-parachains", - "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "polkadot-service", - "sc-authority-discovery", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-service", - "sc-tracing", - "sc-utils", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "tokio", - "tracing", -] - -[[package]] -name = "cumulus-relay-chain-rpc-interface" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "either", - "futures", - "futures-timer", - "jsonrpsee", - "parity-scale-codec", - "pin-project", - "polkadot-overseer", - "rand 0.8.5", - "sc-client-api", - "sc-rpc-api", - "sc-service", - "schnellru", - "serde", - "serde_json", - "smoldot", - "smoldot-light", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-consensus-babe 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-version 29.0.0", - "thiserror", - "tokio", - "tokio-util", - "tracing", - "url", -] - -[[package]] -name = "cumulus-test-relay-sproof-builder" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-primitives-core", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "curve25519-dalek" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest 0.10.7", - "fiat-crypto", - "rustc_version", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "subtle-ng", - "zeroize", -] - -[[package]] -name = "cxx" -version = "1.0.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c4eae4b7fc8dcb0032eb3b1beee46b38d371cdeaf2d0c64b9944f6f69ad7755" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c822bf7fb755d97328d6c337120b6f843678178751cba33c9da25cf522272e0" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn 2.0.75", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719d6197dc016c88744aff3c0d0340a01ecce12e8939fc282e7c8f583ee64bc6" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.126" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35de3b547387863c8f82013c4f79f1c2162edee956383e4089e1d04c18c4f16c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.75", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "data-encoding-macro" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "der-parser" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive-syn-parse" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive-syn-parse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version", - "syn 2.0.75", -] - -[[package]] -name = "diesel" -version = "2.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "158fe8e2e68695bd615d7e4f3227c0727b151330d3e253b525086c348d055d5e" -dependencies = [ - "bigdecimal", - "bitflags 2.6.0", - "byteorder", - "chrono", - "diesel_derives", - "itoa", - "num-bigint", - "num-integer", - "num-traits", - "pq-sys", -] - -[[package]] -name = "diesel-async" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb799bb6f8ca6a794462125d7b8983b0c86e6c93a33a9c55934a4a5de4409d3" -dependencies = [ - "async-trait", - "bb8", - "diesel", - "futures-util", - "scoped-futures", - "tokio", - "tokio-postgres", -] - -[[package]] -name = "diesel_derives" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f2c3de51e2ba6bf2a648285696137aaf0f5f487bcbea93972fe8a364e131a4" -dependencies = [ - "diesel_table_macro_syntax", - "dsl_auto_type", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "diesel_table_macro_syntax" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" -dependencies = [ - "syn 2.0.75", -] - -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle 2.6.1", -] - -[[package]] -name = "directories" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "directories-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "dleq_vrf" -version = "0.0.2" -source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-scale", - "ark-secret-scalar", - "ark-serialize", - "ark-std", - "ark-transcript", - "arrayvec 0.7.6", - "zeroize", -] - -[[package]] -name = "docify" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" -dependencies = [ - "docify_macros", -] - -[[package]] -name = "docify_macros" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" -dependencies = [ - "common-path", - "derive-syn-parse 0.2.0", - "once_cell", - "proc-macro2", - "quote", - "regex", - "syn 2.0.75", - "termcolor", - "toml 0.8.19", - "walkdir", -] - -[[package]] -name = "downcast" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dsl_auto_type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607" -dependencies = [ - "darling", - "either", - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "dtoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" - -[[package]] -name = "dyn-clonable" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" -dependencies = [ - "dyn-clonable-impl", - "dyn-clone", -] - -[[package]] -name = "dyn-clonable-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "dyn-clone" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature 2.2.0", - "spki", -] - -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "signature 1.6.4", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "signature 2.2.0", -] - -[[package]] -name = "ed25519-dalek" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" -dependencies = [ - "curve25519-dalek 3.2.0", - "ed25519 1.5.3", - "rand 0.7.3", - "serde", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "ed25519-dalek" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" -dependencies = [ - "curve25519-dalek 4.1.3", - "ed25519 2.2.3", - "rand_core 0.6.4", - "serde", - "sha2 0.10.8", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "ed25519-zebra" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" -dependencies = [ - "curve25519-dalek 3.2.0", - "hashbrown 0.12.3", - "hex", - "rand_core 0.6.4", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "ed25519-zebra" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" -dependencies = [ - "curve25519-dalek 4.1.3", - "ed25519 2.2.3", - "hashbrown 0.14.5", - "hex", - "rand_core 0.6.4", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array 0.14.7", - "group", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "enum-as-inner" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "enumflags2" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" -dependencies = [ - "enumflags2_derive", -] - -[[package]] -name = "enumflags2_derive" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "enumn" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "environmental" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "event-listener" -version = "5.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" -dependencies = [ - "event-listener 5.3.1", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "exit-future" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" -dependencies = [ - "futures", -] - -[[package]] -name = "expander" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" -dependencies = [ - "blake2 0.10.6", - "file-guard", - "fs-err", - "prettyplease 0.2.20", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fatality" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" -dependencies = [ - "fatality-proc-macro", - "thiserror", -] - -[[package]] -name = "fatality-proc-macro" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" -dependencies = [ - "expander", - "indexmap 2.4.0", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "fdlimit" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" -dependencies = [ - "libc", - "thiserror", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle 2.6.1", -] - -[[package]] -name = "fflonk" -version = "0.1.0" -source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "merlin", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "file-guard" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "file-per-thread-logger" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" -dependencies = [ - "env_logger", - "log", -] - -[[package]] -name = "filetime" -version = "0.2.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf401df4a4e3872c4fe8151134cf483738e74b67fc934d6532c882b3d24a4550" -dependencies = [ - "cfg-if", - "libc", - "libredox", - "windows-sys 0.59.0", -] - -[[package]] -name = "finality-grandpa" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" -dependencies = [ - "either", - "futures", - "futures-timer", - "log", - "num-traits", - "parity-scale-codec", - "parking_lot 0.12.3", - "scale-info", -] - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0596c1eac1f9e04ed902702e9878208b336edc9d6fddc8a48387349bab3666" -dependencies = [ - "crc32fast", - "libz-sys", - "miniz_oxide 0.8.0", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "fork-tree" -version = "12.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "forwarded-header-value" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" -dependencies = [ - "nonempty", - "thiserror", -] - -[[package]] -name = "fragile" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" - -[[package]] -name = "frame-benchmarking" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-support-procedural 23.0.0", - "frame-system 28.0.0", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "static_assertions", -] - -[[package]] -name = "frame-benchmarking" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4090659c6aaa3c4d5b6c6ec909b4b0a25dec10ad92aad5f729efa8d5bd4d806a" -dependencies = [ - "frame-support 29.0.2", - "frame-support-procedural 24.0.0", - "frame-system 29.0.0", - "linregress", - "log", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "sp-api 27.0.1", - "sp-application-crypto 31.0.0", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-runtime-interface 25.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 20.0.0", - "static_assertions", -] - -[[package]] -name = "frame-benchmarking-cli" -version = "32.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "Inflector", - "array-bytes", - "chrono", - "clap", - "comfy-table", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "gethostname", - "handlebars", - "itertools 0.11.0", - "lazy_static", - "linked-hash-map", - "log", - "parity-scale-codec", - "rand 0.8.5", - "rand_pcg", - "sc-block-builder", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-client-db", - "sc-executor", - "sc-service", - "sc-sysinfo", - "serde", - "serde_json", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", -<<<<<<< HEAD - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "thousands", -] - -[[package]] -name = "frame-election-provider-solution-type" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-election-provider-solution-type" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-election-provider-support" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "frame-election-provider-support" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87da19ee99e6473cd057ead84337d20011fe5e299c6750e88e43b8b7963b8852" -dependencies = [ - "frame-election-provider-solution-type 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "frame-support 29.0.2", - "frame-system 29.0.0", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-npos-elections 27.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "frame-executive" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "aquamarine", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-try-runtime", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "frame-metadata" -version = "16.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" -dependencies = [ - "cfg-if", - "parity-scale-codec", - "scale-info", - "serde", -] - -[[package]] -name = "frame-metadata-hash-extension" -version = "0.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "array-bytes", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", ->>>>>>> main - "docify", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -] - -[[package]] -name = "frame-support" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "aquamarine", - "array-bytes", - "bitflags 1.3.2", - "docify", - "environmental", - "frame-metadata", - "frame-support-procedural 23.0.0", - "impl-trait-for-tuples", - "k256", - "log", - "macro_magic", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "serde_json", - "smallvec", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", - "static_assertions", - "tt-call", -] - -[[package]] -name = "frame-support" -version = "29.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e52c84b611d2049d9253f83a62ab0f093e4be5c42a7ef42ea5bb16d6611e32" -dependencies = [ - "aquamarine", - "array-bytes", - "bitflags 1.3.2", - "docify", - "environmental", - "frame-metadata", - "frame-support-procedural 24.0.0", - "impl-trait-for-tuples", - "k256", - "log", - "macro_magic", - "parity-scale-codec", - "paste", - "scale-info", - "serde", - "serde_json", - "smallvec", - "sp-api 27.0.1", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-genesis-builder 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-inherents 27.0.0", - "sp-io 31.0.0", - "sp-metadata-ir 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 32.0.0", - "sp-staking 27.0.0", - "sp-state-machine 0.36.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 28.0.0", - "static_assertions", - "tt-call", -] - -[[package]] -name = "frame-support-procedural" -version = "23.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "Inflector", - "cfg-expr", - "derive-syn-parse 0.2.0", -<<<<<<< HEAD - "expander", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "itertools 0.11.0", -======= - "expander 2.2.1", - "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "itertools 0.10.5", ->>>>>>> main - "macro_magic", - "proc-macro-warning", - "proc-macro2", - "quote", -<<<<<<< HEAD - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf1d648c4007d421b9677b3c893256913498fff159dc2d85022cdd9cc432f3c" -dependencies = [ - "Inflector", - "cfg-expr", - "derive-syn-parse 0.1.5", - "expander", - "frame-support-procedural-tools 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "itertools 0.10.5", - "macro_magic", - "proc-macro-warning", - "proc-macro2", - "quote", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "10.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3363df38464c47a73eb521a4f648bfcc7537a82d70347ef8af3f73b6d019e910" -dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural-tools" -version = "10.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "11.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68672b9ec6fe72d259d3879dc212c5e42e977588cdac830c76f54d9f492aeb58" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-support-procedural-tools-derive" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "frame-system" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cfg-if", - "docify", - "frame-support 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-version 29.0.0", - "sp-weights 27.0.0", -] - -[[package]] -name = "frame-system" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc20a793c3cec0b11165c1075fe11a255b2491f3eef8230bb3073cb296e7383" -dependencies = [ - "cfg-if", - "docify", - "frame-support 29.0.2", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-version 30.0.0", - "sp-weights 28.0.0", -] - -[[package]] -name = "frame-system-benchmarking" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "frame-system-rpc-runtime-api" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "sp-api 26.0.0", -] - -[[package]] -name = "frame-try-runtime" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "parity-scale-codec", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "fs-err" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" -dependencies = [ - "autocfg", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "fs4" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" -dependencies = [ - "rustix 0.38.34", - "windows-sys 0.48.0", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", - "num_cpus", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite 0.2.14", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" -dependencies = [ - "fastrand 2.1.0", - "futures-core", - "futures-io", - "parking", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "futures-rustls" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" -dependencies = [ - "futures-io", - "rustls 0.20.9", - "webpki", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite 0.2.14", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "gethostname" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom_or_panic" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" -dependencies = [ - "rand 0.8.5", - "rand_core 0.6.4", -] - -[[package]] -name = "ghash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" -dependencies = [ - "opaque-debug 0.3.1", - "polyval", -] - -[[package]] -name = "gimli" -version = "0.27.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" -dependencies = [ - "fallible-iterator 0.2.0", - "indexmap 1.9.3", - "stable_deref_trait", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -dependencies = [ - "fallible-iterator 0.3.0", - "stable_deref_trait", -] - -[[package]] -name = "gimli" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "governor" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" -dependencies = [ - "cfg-if", - "dashmap", - "futures", - "futures-timer", - "no-std-compat", - "nonzero_ext", - "parking_lot 0.12.3", - "portable-atomic", - "quanta", - "rand 0.8.5", - "smallvec", - "spinning_top", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core 0.6.4", - "subtle 2.6.1", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 2.4.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "handlebars" -version = "5.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" -dependencies = [ - "log", - "pest", - "pest_derive", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "hash-db" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" - -[[package]] -name = "hash256-std-hasher" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" -dependencies = [ - "crunchy", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.8", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash 0.8.11", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash 0.8.11", - "allocator-api2", - "serde", -] - -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.5", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hermit-abi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-conservative" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hkdf" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" -dependencies = [ - "hmac 0.12.1", -] - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac 0.8.0", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.0", - "digest 0.9.0", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.7", - "hmac 0.8.1", -] - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "hostname" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" -dependencies = [ - "libc", - "match_cfg", - "winapi", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite 0.2.14", -] - -[[package]] -name = "http-range-header" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" - -[[package]] -name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite 0.2.14", - "socket2 0.5.7", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http", - "hyper", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core 0.52.0", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "if-addrs" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "if-watch" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" -dependencies = [ - "async-io 2.3.4", - "core-foundation", - "fnv", - "futures", - "if-addrs", - "ipnet", - "log", - "rtnetlink", - "system-configuration", - "tokio", - "windows", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "include_dir" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" -dependencies = [ - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", -] - -[[package]] -name = "indexmap-nostd" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "integer-encoding" -version = "3.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" - -[[package]] -name = "integer-sqrt" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" -dependencies = [ - "num-traits", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ip_network" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" - -[[package]] -name = "ipconfig" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" -dependencies = [ - "socket2 0.5.7", - "widestring", - "windows-sys 0.48.0", - "winreg", -] - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" -dependencies = [ - "hermit-abi 0.4.0", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "is_executable" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa9acdc6d67b75e626ad644734e8bc6df893d9cd2a834129065d3dd6158ea9c8" -dependencies = [ - "winapi", -] - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonrpsee" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" -dependencies = [ - "jsonrpsee-core", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", - "jsonrpsee-ws-client", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" -dependencies = [ - "futures-util", - "http", - "jsonrpsee-core", - "pin-project", - "rustls-native-certs 0.7.2", - "rustls-pki-types", - "soketto", - "thiserror", - "tokio", - "tokio-rustls 0.25.0", - "tokio-util", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" -dependencies = [ - "anyhow", - "async-trait", - "beef", - "futures-timer", - "futures-util", - "hyper", - "jsonrpsee-types", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "rustc-hash", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" -dependencies = [ - "heck 0.4.1", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" -dependencies = [ - "futures-util", - "http", - "hyper", - "jsonrpsee-core", - "jsonrpsee-types", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" -dependencies = [ - "anyhow", - "beef", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.22.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" -dependencies = [ - "http", - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", - "url", -] - -[[package]] -name = "k256" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "serdect", - "sha2 0.10.8", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-hasher" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ea4653859ca2266a86419d3f592d3f22e7a854b482f99180d2498507902048" -dependencies = [ - "hash-db", - "hash256-std-hasher", - "tiny-keccak", -] - -[[package]] -name = "keystream" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" - -[[package]] -name = "kvdb" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" -dependencies = [ - "smallvec", -] - -[[package]] -name = "kvdb-memorydb" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" -dependencies = [ - "kvdb", - "parking_lot 0.12.3", -] - -[[package]] -name = "kvdb-rocksdb" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" -dependencies = [ - "kvdb", - "num_cpus", - "parking_lot 0.12.3", - "regex", - "rocksdb", - "smallvec", -] - -[[package]] -name = "landlock" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" -dependencies = [ - "enumflags2", - "libc", - "thiserror", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "libloading" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" -dependencies = [ - "cfg-if", - "windows-targets 0.52.6", -] - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "libp2p" -version = "0.51.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" -dependencies = [ - "bytes", - "futures", - "futures-timer", - "getrandom 0.2.15", - "instant", - "libp2p-allow-block-list", - "libp2p-connection-limits", - "libp2p-core", - "libp2p-dns", - "libp2p-identify", - "libp2p-identity", - "libp2p-kad", - "libp2p-mdns", - "libp2p-metrics", - "libp2p-noise", - "libp2p-ping", - "libp2p-quic", - "libp2p-request-response", - "libp2p-swarm", - "libp2p-tcp", - "libp2p-wasm-ext", - "libp2p-websocket", - "libp2p-yamux", - "multiaddr", - "pin-project", -] - -[[package]] -name = "libp2p-allow-block-list" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" -dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "void", -] - -[[package]] -name = "libp2p-connection-limits" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" -dependencies = [ - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "void", -] - -[[package]] -name = "libp2p-core" -version = "0.39.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" -dependencies = [ - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "libp2p-identity", - "log", - "multiaddr", - "multihash 0.17.0", - "multistream-select", - "once_cell", - "parking_lot 0.12.3", - "pin-project", - "quick-protobuf", - "rand 0.8.5", - "rw-stream-sink", - "smallvec", - "thiserror", - "unsigned-varint", - "void", -] - -[[package]] -name = "libp2p-dns" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" -dependencies = [ - "futures", - "libp2p-core", - "log", - "parking_lot 0.12.3", - "smallvec", - "trust-dns-resolver 0.22.0", -] - -[[package]] -name = "libp2p-identify" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" -dependencies = [ - "asynchronous-codec", - "either", - "futures", - "futures-timer", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "lru 0.10.1", - "quick-protobuf", - "quick-protobuf-codec", - "smallvec", - "thiserror", - "void", -] - -[[package]] -name = "libp2p-identity" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" -dependencies = [ - "bs58 0.4.0", - "ed25519-dalek 2.1.1", - "log", - "multiaddr", - "multihash 0.17.0", - "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "zeroize", -] - -[[package]] -name = "libp2p-kad" -version = "0.43.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" -dependencies = [ - "arrayvec 0.7.6", - "asynchronous-codec", - "bytes", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", - "smallvec", - "thiserror", - "uint", - "unsigned-varint", - "void", -] - -[[package]] -name = "libp2p-mdns" -version = "0.43.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" -dependencies = [ - "data-encoding", - "futures", - "if-watch", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "log", - "rand 0.8.5", - "smallvec", - "socket2 0.4.10", - "tokio", - "trust-dns-proto 0.22.0", - "void", -] - -[[package]] -name = "libp2p-metrics" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" -dependencies = [ - "libp2p-core", - "libp2p-identify", - "libp2p-kad", - "libp2p-ping", - "libp2p-swarm", - "prometheus-client", -] - -[[package]] -name = "libp2p-noise" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" -dependencies = [ - "bytes", - "curve25519-dalek 3.2.0", - "futures", - "libp2p-core", - "libp2p-identity", - "log", - "once_cell", - "quick-protobuf", - "rand 0.8.5", - "sha2 0.10.8", - "snow", - "static_assertions", - "thiserror", - "x25519-dalek 1.1.1", - "zeroize", -] - -[[package]] -name = "libp2p-ping" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" -dependencies = [ - "either", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-swarm", - "log", - "rand 0.8.5", - "void", -] - -[[package]] -name = "libp2p-quic" -version = "0.7.0-alpha.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" -dependencies = [ - "bytes", - "futures", - "futures-timer", - "if-watch", - "libp2p-core", - "libp2p-identity", - "libp2p-tls", - "log", - "parking_lot 0.12.3", - "quinn-proto", - "rand 0.8.5", - "rustls 0.20.9", - "thiserror", - "tokio", -] - -[[package]] -name = "libp2p-request-response" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" -dependencies = [ - "async-trait", - "futures", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm", - "rand 0.8.5", - "smallvec", -] - -[[package]] -name = "libp2p-swarm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" -dependencies = [ - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "libp2p-core", - "libp2p-identity", - "libp2p-swarm-derive", - "log", - "rand 0.8.5", - "smallvec", - "tokio", - "void", -] - -[[package]] -name = "libp2p-swarm-derive" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" -dependencies = [ - "heck 0.4.1", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "libp2p-tcp" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" -dependencies = [ - "futures", - "futures-timer", - "if-watch", - "libc", - "libp2p-core", - "log", - "socket2 0.4.10", - "tokio", -] - -[[package]] -name = "libp2p-tls" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" -dependencies = [ - "futures", - "futures-rustls", - "libp2p-core", - "libp2p-identity", - "rcgen", - "ring 0.16.20", - "rustls 0.20.9", - "thiserror", - "webpki", - "x509-parser 0.14.0", - "yasna", -] - -[[package]] -name = "libp2p-wasm-ext" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" -dependencies = [ - "futures", - "js-sys", - "libp2p-core", - "parity-send-wrapper", - "wasm-bindgen", - "wasm-bindgen-futures", -] - -[[package]] -name = "libp2p-websocket" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" -dependencies = [ - "either", - "futures", - "futures-rustls", - "libp2p-core", - "log", - "parking_lot 0.12.3", - "quicksink", - "rw-stream-sink", - "soketto", - "url", - "webpki-roots", -] - -[[package]] -name = "libp2p-yamux" -version = "0.43.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" -dependencies = [ - "futures", - "libp2p-core", - "log", - "thiserror", - "yamux", -] - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.6.0", - "libc", - "redox_syscall 0.5.3", -] - -[[package]] -name = "librocksdb-sys" -version = "0.11.0+8.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" -dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "lz4-sys", - "tikv-jemalloc-sys", - "zstd-sys", -] - -[[package]] -name = "libsecp256k1" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" -dependencies = [ - "arrayref", - "base64 0.13.1", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand 0.8.5", - "serde", - "sha2 0.9.9", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ - "crunchy", - "digest 0.9.0", - "subtle 2.6.1", -] - -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libz-sys" -version = "1.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" -dependencies = [ - "cc", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linked_hash_set" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "linregress" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" -dependencies = [ - "nalgebra", -] - -[[package]] -name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "lioness" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" -dependencies = [ - "arrayref", - "blake2 0.8.1", - "chacha", - "keystream", -] - -[[package]] -name = "litep2p" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f02542ae3a94b4c4ffa37dc56388c923e286afa3bf65452e3984b50b2a2f316" -dependencies = [ - "async-trait", - "bs58 0.4.0", - "bytes", - "cid 0.10.1", - "ed25519-dalek 1.0.1", - "futures", - "futures-timer", - "hex-literal", - "indexmap 2.4.0", - "libc", - "mockall 0.12.1", - "multiaddr", - "multihash 0.17.0", - "network-interface", - "nohash-hasher", - "parking_lot 0.12.3", - "pin-project", - "prost 0.11.9", - "prost-build 0.11.9", - "quinn", - "rand 0.8.5", - "rcgen", - "ring 0.16.20", - "rustls 0.20.9", - "serde", - "sha2 0.10.8", - "simple-dns", - "smallvec", - "snow", - "socket2 0.5.7", - "static_assertions", - "str0m", - "thiserror", - "tokio", - "tokio-stream", - "tokio-tungstenite", - "tokio-util", - "tracing", - "trust-dns-resolver 0.23.2", - "uint", - "unsigned-varint", - "url", - "webpki", - "x25519-dalek 2.0.1", - "x509-parser 0.15.1", - "yasna", - "zeroize", -] - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "lru" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" -dependencies = [ - "hashbrown 0.13.2", -] - -[[package]] -name = "lru" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" - -[[package]] -name = "lru-cache" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "lz4" -version = "1.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958b4caa893816eea05507c20cfe47574a43d9a697138a7872990bba8a0ece68" -dependencies = [ - "libc", - "lz4-sys", -] - -[[package]] -name = "lz4-sys" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "macro_magic" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" -dependencies = [ - "macro_magic_core", - "macro_magic_macros", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "macro_magic_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" -dependencies = [ - "const-random", - "derive-syn-parse 0.2.0", - "macro_magic_core_macros", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "macro_magic_core_macros" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "macro_magic_macros" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" -dependencies = [ - "macro_magic_core", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - -[[package]] -name = "matchers" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matches" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" - -[[package]] -name = "matrixmultiply" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" -dependencies = [ - "autocfg", - "rawpointer", -] - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memfd" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" -dependencies = [ - "rustix 0.38.34", -] - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memmap2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memory-db" -version = "0.32.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" -dependencies = [ - "hash-db", -] - -[[package]] -name = "merkleized-metadata" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" -dependencies = [ -<<<<<<< HEAD - "array-bytes", -======= - "array-bytes 6.2.3", ->>>>>>> main - "blake3", - "frame-metadata", - "parity-scale-codec", - "scale-decode", - "scale-info", -] - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "mick-jaeger" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" -dependencies = [ - "futures", - "rand 0.8.5", - "thrift", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi 0.3.9", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", -] - -[[package]] -name = "mixnet" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "bitflags 1.3.2", - "blake2 0.10.6", - "c2-chacha", - "curve25519-dalek 4.1.3", - "either", - "hashlink", - "lioness", - "log", - "parking_lot 0.12.3", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_distr", - "subtle 2.6.1", - "thiserror", - "zeroize", -] - -[[package]] -name = "mmr-gadget" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-offchain", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-beefy", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-mmr-primitives", - "sp-runtime 31.0.1", -] - -[[package]] -name = "mmr-rpc" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "serde", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-mmr-primitives", - "sp-runtime 31.0.1", -] - -[[package]] -name = "mockall" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" -dependencies = [ - "cfg-if", - "downcast", - "fragile", - "lazy_static", - "mockall_derive 0.11.4", - "predicates 2.1.5", - "predicates-tree", -] - -[[package]] -name = "mockall" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" -dependencies = [ - "cfg-if", - "downcast", - "fragile", - "lazy_static", - "mockall_derive 0.12.1", - "predicates 3.1.2", - "predicates-tree", -] - -[[package]] -name = "mockall_derive" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" -dependencies = [ - "cfg-if", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "mockall_derive" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" -dependencies = [ - "cfg-if", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "multiaddr" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "log", - "multibase", - "multihash 0.17.0", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint", - "url", -] - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive 0.8.1", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive 0.8.1", - "sha2 0.10.8", - "sha3", - "unsigned-varint", -] - -[[package]] -name = "multihash" -version = "0.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" -dependencies = [ - "core2", - "unsigned-varint", -] - -[[package]] -name = "multihash-codetable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935" -dependencies = [ - "blake2b_simd", - "blake2s_simd", - "blake3", - "core2", - "digest 0.10.7", - "multihash-derive 0.9.0", - "ripemd", - "serde", - "sha1", - "sha2 0.10.8", - "sha3", - "strobe-rs", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate 1.1.3", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure 0.12.6", -] - -[[package]] -name = "multihash-derive" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e" -dependencies = [ - "core2", - "multihash 0.19.1", - "multihash-derive-impl", -] - -[[package]] -name = "multihash-derive-impl" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3958713ce794e12f7c6326fac9aa274c68d74c4881dd37b3e2662b8a2046bb19" -dependencies = [ - "proc-macro-crate 2.0.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", - "synstructure 0.13.1", -] - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "multimap" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" - -[[package]] -name = "multistream-select" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" -dependencies = [ - "bytes", - "futures", - "log", - "pin-project", - "smallvec", - "unsigned-varint", -] - -[[package]] -name = "nalgebra" -version = "0.32.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" -dependencies = [ - "approx", - "matrixmultiply", - "nalgebra-macros", - "num-complex", - "num-rational", - "num-traits", - "simba", - "typenum", -] - -[[package]] -name = "nalgebra-macros" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "names" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" -dependencies = [ - "rand 0.8.5", -] - -[[package]] -name = "nanorand" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" - -[[package]] -name = "netlink-packet-core" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" -dependencies = [ - "anyhow", - "byteorder", - "libc", - "netlink-packet-utils", -] - -[[package]] -name = "netlink-packet-route" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" -dependencies = [ - "anyhow", - "bitflags 1.3.2", - "byteorder", - "libc", - "netlink-packet-core", - "netlink-packet-utils", -] - -[[package]] -name = "netlink-packet-utils" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" -dependencies = [ - "anyhow", - "byteorder", - "paste", - "thiserror", -] - -[[package]] -name = "netlink-proto" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" -dependencies = [ - "bytes", - "futures", - "log", - "netlink-packet-core", - "netlink-sys", - "thiserror", - "tokio", -] - -[[package]] -name = "netlink-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" -dependencies = [ - "bytes", - "futures", - "libc", - "log", - "tokio", -] - -[[package]] -name = "network-interface" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" -dependencies = [ - "cc", - "libc", - "thiserror", - "winapi", -] - -[[package]] -name = "nix" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" -dependencies = [ - "bitflags 1.3.2", - "cfg-if", - "libc", -] - -[[package]] -name = "nix" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "cfg_aliases", - "libc", -] - -[[package]] -name = "no-std-compat" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" - -[[package]] -name = "no-std-net" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" - -[[package]] -name = "nodrop" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" - -[[package]] -name = "nohash-hasher" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nonempty" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" - -[[package]] -name = "nonzero_ext" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" - -[[package]] -name = "normalize-line-endings" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-format" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" -dependencies = [ - "arrayvec 0.7.6", - "itoa", -] - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.9", - "libc", -] - -[[package]] -name = "object" -version = "0.30.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" -dependencies = [ - "crc32fast", - "hashbrown 0.13.2", - "indexmap 1.9.3", - "memchr", -] - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "memchr", -] - -[[package]] -name = "object" -version = "0.36.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" -dependencies = [ - "memchr", -] - -[[package]] -name = "oid-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" -dependencies = [ - "asn1-rs", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "opaque-debug" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" - -[[package]] -name = "opaque-debug" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" - -[[package]] -name = "openssl" -version = "0.10.66" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" -dependencies = [ - "bitflags 2.6.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "300.3.2+3.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" -dependencies = [ - "cc", -] - -[[package]] -name = "openssl-sys" -version = "0.9.103" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "orchestra" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" -dependencies = [ - "async-trait", - "dyn-clonable", - "futures", - "futures-timer", - "orchestra-proc-macro", - "pin-project", - "prioritized-metered-channel", - "thiserror", - "tracing", -] - -[[package]] -name = "orchestra-proc-macro" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" -dependencies = [ - "expander", - "indexmap 2.4.0", - "itertools 0.11.0", - "petgraph", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ordered-float" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" -dependencies = [ - "num-traits", -] - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "pallet-asset-conversion" -version = "10.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-asset-rate" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-asset-rate" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571ce57fd846911041749832b46a8c2b01f0b79ffebcd7585e3973865607036d" -dependencies = [ - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "parity-scale-codec", - "scale-info", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-asset-tx-payment" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-transaction-payment 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-assets" -version = "29.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-aura" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-timestamp 27.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0", - "sp-consensus-aura", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-authority-discovery" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-session 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0", - "sp-authority-discovery 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-authority-discovery" -version = "29.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd9a381c613e6538638391fb51f353fd13b16f849d0d1ac66a388326bd456f1" -dependencies = [ - "frame-support 29.0.2", - "frame-system 29.0.0", - "pallet-session 29.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 31.0.0", - "sp-authority-discovery 27.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-authorship" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-authorship" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d83773e731a1760f99684b09961ed7b92acafe335f36f08ebb8313d3b9c72e2" -dependencies = [ - "frame-support 29.0.2", - "frame-system 29.0.0", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-babe" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", - "pallet-timestamp 27.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0", - "sp-consensus-babe 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-babe" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f2020c52667a650d64e84a4bbb63388e25bc1c9bc872a8243d03bfcb285049" -dependencies = [ - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "pallet-authorship 29.0.0", - "pallet-session 29.0.0", - "pallet-timestamp 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 31.0.0", - "sp-consensus-babe 0.33.0", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-session 28.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-bags-list" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "aquamarine", - "docify", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-balances 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-balances" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-balances" -version = "29.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a54b5d0c7c4c3731883d6b1ac18aff44db20c3d0a3470c8861001a17afdc85" -dependencies = [ - "docify", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-beefy" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "sp-consensus-beefy", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-beefy-mmr" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "binary-merkle-tree", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-beefy", - "pallet-mmr", - "pallet-session 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-consensus-beefy", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-bounties" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-treasury 27.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-broker" -version = "0.6.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-broker" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "574c52fd629191c374c24a18036acac008ea92142309e5dd05e7f03149a667c3" -dependencies = [ - "bitvec", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-bucket-nfts" -version = "0.1.0" -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "num-bigint", - "pallet-balances 28.0.0", - "pallet-file-system", - "pallet-nfts", - "pallet-payment-streams", - "pallet-storage-providers", - "parity-scale-codec", - "scale-info", - "serde", - "shp-constants", - "shp-file-metadata", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main -] - -[[package]] -name = "pallet-child-bounties" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-bounties", - "pallet-treasury 27.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-collator-selection" -version = "9.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", - "pallet-session 28.0.0", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-collective" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-conviction-voting" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "assert_matches", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -] - -[[package]] -name = "pallet-delegated-staking" -version = "1.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-democracy" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-election-provider-multi-phase" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-election-provider-support-benchmarking 27.0.0", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "strum 0.26.3", -] - -[[package]] -name = "pallet-election-provider-multi-phase" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b54d1d3fe9ae61a144d581147e699b7c3009169de0019a0f87cca0bed82681e7" -dependencies = [ - "frame-benchmarking 29.0.0", - "frame-election-provider-support 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "pallet-election-provider-support-benchmarking 28.0.0", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-npos-elections 27.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "strum 0.24.1", -] - -[[package]] -name = "pallet-election-provider-support-benchmarking" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-election-provider-support-benchmarking" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46ec87816a1e32a1ab6deececa99e21e6684b111efe87b11b8298328dbbefd01" -dependencies = [ - "frame-benchmarking 29.0.0", - "frame-election-provider-support 29.0.0", - "frame-system 29.0.0", - "parity-scale-codec", - "sp-npos-elections 27.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-elections-phragmen" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-fast-unstake" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-fast-unstake" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2222607a0dba10a9d57cab5360a6549b5fda925181c3c7af481246c0964998df" -dependencies = [ - "docify", - "frame-benchmarking 29.0.0", - "frame-election-provider-support 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-file-system" -version = "0.1.0" -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "num-bigint", - "pallet-balances 28.0.0", - "pallet-bucket-nfts", - "pallet-file-system-runtime-api", - "pallet-nfts", - "pallet-payment-streams", - "pallet-proofs-dealer", - "pallet-storage-providers", - "parity-scale-codec", - "scale-info", - "serde", - "shp-constants", - "shp-file-metadata", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main -] - -[[package]] -name = "pallet-file-system-runtime-api" -version = "0.1.0" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "pallet-grandpa" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0", - "sp-consensus-grandpa", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-identity" -<<<<<<< HEAD -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "enumflags2", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-identity" -version = "29.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "452bba25325b7f0148eeecbde13e7c26dfb677ad46b3f160b359d7643b44c94b" -dependencies = [ - "enumflags2", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-im-online" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-authorship 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-indices" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-keyring", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-membership" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-message-queue" -version = "31.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "environmental", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", -] - -[[package]] -name = "pallet-message-queue" -version = "32.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccb23dee70b184a214d729db550117a0965a69107d466d35181d60a6feede38" -dependencies = [ - "environmental", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 28.0.0", -] - -[[package]] -name = "pallet-mmr" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-mmr-primitives", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-mmr-primitives", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-multisig" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-nfts" -version = "22.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "enumflags2", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-nis" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-nomination-pools" -version = "25.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-balances 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-nomination-pools-benchmarking" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-bags-list", - "pallet-delegated-staking", - "pallet-nomination-pools", - "pallet-staking 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-staking 26.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-nomination-pools-runtime-api" -version = "23.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "pallet-nomination-pools", - "parity-scale-codec", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-offences" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-balances 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-offences-benchmarking" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", - "pallet-grandpa", - "pallet-im-online", - "pallet-offences", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-parameters" -version = "0.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "paste", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-payment-streams" -version = "0.1.0" -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-balances 28.0.0", - "pallet-nfts", - "pallet-payment-streams-runtime-api", - "pallet-storage-providers", - "parity-scale-codec", - "scale-info", - "serde", - "shp-constants", - "shp-file-metadata", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main -] - -[[package]] -name = "pallet-payment-streams-runtime-api" -version = "0.1.0" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-preimage" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-proofs-dealer" -version = "0.1.0" -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-balances 28.0.0", - "pallet-payment-streams", - "pallet-proofs-dealer-runtime-api", - "pallet-storage-providers", - "parity-scale-codec", - "scale-info", - "serde", - "shp-constants", - "shp-file-metadata", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main -] - -[[package]] -name = "pallet-proofs-dealer-runtime-api" -version = "0.1.0" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-proxy" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-randomness" -version = "0.1.0" -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-balances 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "shp-session-keys", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-ranked-collective" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-recovery" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-referenda" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "assert_matches", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 23.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-root-testing" -version = "4.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-scheduler" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", -] - -[[package]] -name = "pallet-session" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "log", - "pallet-timestamp 27.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", - "sp-state-machine 0.35.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-session" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7412ac59247b300feee53709f7009a23d1c6f8c70528599f48f44e102d896d03" -dependencies = [ - "frame-support 29.0.2", - "frame-system 29.0.0", - "impl-trait-for-tuples", - "log", - "pallet-timestamp 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-session 28.0.0", - "sp-staking 27.0.0", - "sp-state-machine 0.36.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 30.0.0", -] - -[[package]] -name = "pallet-session-benchmarking" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", - "parity-scale-codec", - "rand 0.8.5", - "sp-runtime 31.0.1", - "sp-session 27.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-society" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "rand_chacha 0.3.1", - "scale-info", - "sp-arithmetic 23.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-staking" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-authorship 28.0.0", - "pallet-session 28.0.0", - "parity-scale-codec", - "rand_chacha 0.3.1", - "scale-info", - "serde", - "sp-application-crypto 30.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-staking" -version = "29.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061b00814eb794a40df4eca7972a7c67b26473cd85cc7c54f5816ae49ad6e11b" -dependencies = [ - "frame-benchmarking 29.0.0", - "frame-election-provider-support 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "pallet-authorship 29.0.0", - "pallet-session 29.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "sp-application-crypto 31.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-staking-reward-curve" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "pallet-staking-reward-fn" -version = "19.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "log", - "sp-arithmetic 23.0.0", -] - -[[package]] -name = "pallet-staking-reward-fn" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d45e08bad052f55fb51f00a6b6244d23ee46ffdc8091f6cddf4e3a880319d" -dependencies = [ - "log", - "sp-arithmetic 24.0.0", -] - -[[package]] -name = "pallet-staking-runtime-api" -version = "14.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "sp-api 26.0.0", - "sp-staking 26.0.0", -] - -[[package]] -name = "pallet-state-trie-migration" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-storage-providers" -version = "0.1.0" -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "pallet-balances 28.0.0", - "pallet-payment-streams", - "pallet-proofs-dealer", - "pallet-storage-providers-runtime-api", - "parity-scale-codec", - "scale-info", - "serde", - "shp-constants", - "shp-file-metadata", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main -] - -[[package]] -name = "pallet-storage-providers-runtime-api" -version = "0.1.0" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "pallet-sudo" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-timestamp" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-timestamp 26.0.0", -] - -[[package]] -name = "pallet-timestamp" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b8810ddfb254c7fb8cd7698229cce513d309a43ff117b38798dae6120f477b" -dependencies = [ - "docify", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-inherents 27.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 20.0.0", - "sp-timestamp 27.0.0", -] - -[[package]] -name = "pallet-tips" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-treasury 27.0.0", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-transaction-payment" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-transaction-payment" -version = "29.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5ba71f06f09e955b80dc313c333be3f8d9e8505b051558e0b7af4806b13310" -dependencies = [ - "frame-support 29.0.2", - "frame-system 29.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-transaction-payment-rpc" -version = "30.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "jsonrpsee", - "pallet-transaction-payment-rpc-runtime-api", - "parity-scale-codec", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-rpc", - "sp-runtime 31.0.1", - "sp-weights 27.0.0", -] - -[[package]] -name = "pallet-transaction-payment-rpc-runtime-api" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "pallet-transaction-payment 28.0.0", - "parity-scale-codec", - "sp-api 26.0.0", - "sp-runtime 31.0.1", - "sp-weights 27.0.0", -] - -[[package]] -name = "pallet-treasury" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "pallet-balances 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-treasury" -version = "28.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eca44990d0d759213744f2d1f6fe1fadec1079a3e4e4da40556d6b4e42abbcd" -dependencies = [ - "docify", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "impl-trait-for-tuples", - "pallet-balances 29.0.2", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-uniques" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-utility" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-vesting" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-vesting" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4525f3038cdf078fea39d913c563ca626f09a615e7724f0c9eac97743c75ff44" -dependencies = [ - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pallet-whitelist" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "pallet-xcm" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bounded-collections", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-balances 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "xcm-fee-payment-runtime-api", -] - -[[package]] -name = "pallet-xcm-benchmarks" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "parity-scale-codec", - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", -] - -[[package]] -name = "parachains-common" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-primitives-core", - "cumulus-primitives-utility", - "frame-support 28.0.0", - "frame-system 28.0.0", - "log", - "pallet-asset-tx-payment", - "pallet-assets", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", - "pallet-collator-selection", - "pallet-message-queue 31.0.0", - "pallet-xcm", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "scale-info", - "sp-consensus-aura", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-parachain-info", - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", - "substrate-wasm-builder", -] - -[[package]] -name = "parity-bip39" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" -dependencies = [ - "bitcoin_hashes 0.13.0", - "rand 0.8.5", - "rand_core 0.6.4", - "serde", - "unicode-normalization", -] - -[[package]] -name = "parity-db" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" -dependencies = [ - "blake2 0.10.6", - "crc32fast", - "fs2", - "hex", - "libc", - "log", - "lz4", - "memmap2 0.5.10", - "parking_lot 0.12.3", - "rand 0.8.5", - "siphasher", - "snap", - "winapi", -] - -[[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -dependencies = [ - "arrayvec 0.7.6", - "bitvec", - "byte-slice-cast", - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parity-send-wrapper" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" - -[[package]] -name = "parity-wasm" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.3", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "partial_sort" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" - -[[package]] -name = "password-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle 2.6.1", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pbkdf2" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" -dependencies = [ - "crypto-mac 0.11.0", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "password-hash", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "pest_meta" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" -dependencies = [ - "once_cell", - "pest", - "sha2 0.10.8", -] - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.4.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "pin-project-lite" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" - -[[package]] -name = "pin-project-lite" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" -dependencies = [ - "atomic-waker", - "fastrand 2.1.0", - "futures-io", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "polkadot-approval-distribution" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "futures", - "futures-timer", - "itertools 0.11.0", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "tracing-gum", -] - -[[package]] -name = "polkadot-availability-bitfield-distribution" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "always-assert", - "futures", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "tracing-gum", -] - -[[package]] -name = "polkadot-availability-distribution" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "derive_more", - "fatality", - "futures", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "rand 0.8.5", -<<<<<<< HEAD - "sc-network", - "schnellru", - "sp-core 28.0.0", -======= - "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-availability-recovery" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "fatality", - "futures", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "sc-network", - "schnellru", - "thiserror", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-ckb-merkle-mountain-range" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92" -dependencies = [ - "cfg-if", - "itertools 0.10.5", -] - -[[package]] -name = "polkadot-cli" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cfg-if", - "clap", - "frame-benchmarking-cli", - "futures", - "log", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-service", - "sc-cli", - "sc-executor", - "sc-service", - "sc-storage-monitor", - "sc-sysinfo", - "sc-tracing", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-keyring", - "sp-maybe-compressed-blob", - "sp-runtime 31.0.1", - "substrate-build-script-utils", - "thiserror", -] - -[[package]] -name = "polkadot-collator-protocol" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "fatality", - "futures", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "thiserror", - "tokio-util", - "tracing-gum", -] - -[[package]] -name = "polkadot-core-primitives" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "polkadot-core-primitives" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a08e4e014c853b252ecbbe3ccd67b2d33d78e46988d309b8cccf4ac06e25ef" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "polkadot-dispute-distribution" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "derive_more", - "fatality", - "futures", - "futures-timer", - "indexmap 2.4.0", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sc-network", - "schnellru", - "sp-application-crypto 30.0.0", - "sp-keystore 0.34.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-erasure-coding" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", - "reed-solomon-novelpoly", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", -] - -[[package]] -name = "polkadot-gossip-support" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "futures-timer", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "rand_chacha 0.3.1", - "sc-network", - "sc-network-common", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "tracing-gum", -] - -[[package]] -name = "polkadot-network-bridge" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "always-assert", - "async-trait", - "bytes", - "fatality", - "futures", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sc-network", - "sp-consensus", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-collation-generation" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-maybe-compressed-blob", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-approval-voting" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "derive_more", - "futures", - "futures-timer", - "itertools 0.11.0", - "kvdb", - "merlin", - "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "sc-keystore", - "schnellru", - "schnorrkel 0.11.4", - "sp-application-crypto 30.0.0", - "sp-consensus", - "sp-consensus-slots 0.32.0", - "sp-runtime 31.0.1", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-av-store" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "futures", - "futures-timer", - "kvdb", - "parity-scale-codec", - "polkadot-erasure-coding", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sp-consensus", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-backing" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "fatality", - "futures", - "polkadot-erasure-coding", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "polkadot-statement-table", - "schnellru", - "sp-keystore 0.34.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-bitfield-signing" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0", - "thiserror", - "tracing-gum", - "wasm-timer", -] - -[[package]] -name = "polkadot-node-core-candidate-validation" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "parity-scale-codec", - "polkadot-node-core-pvf", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "sp-maybe-compressed-blob", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-chain-api" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "polkadot-node-metrics", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "sc-client-api", - "sc-consensus-babe", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-chain-selection" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "futures-timer", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-dispute-coordinator" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "fatality", - "futures", - "kvdb", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sc-keystore", - "schnellru", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-parachains-inherent" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "polkadot-node-subsystem", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sp-blockchain", - "sp-inherents 26.0.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-prospective-parachains" -version = "6.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "fatality", - "futures", - "parity-scale-codec", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-provisioner" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "fatality", - "futures", - "futures-timer", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "schnellru", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "always-assert", - "array-bytes", - "blake3", - "cfg-if", - "futures", - "futures-timer", - "parity-scale-codec", - "pin-project", - "polkadot-core-primitives 7.0.0", - "polkadot-node-core-pvf-common", - "polkadot-node-metrics", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "slotmap", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "tempfile", - "thiserror", - "tokio", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-checker" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-pvf-common" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cpu-time", - "futures", - "landlock", - "libc", - "nix 0.28.0", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "sc-executor", - "sc-executor-common", - "sc-executor-wasmtime", - "seccompiler", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-io 30.0.0", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-core-runtime-api" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "polkadot-node-metrics", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-primitives 7.0.0", - "schnellru", - "sp-consensus-babe 0.32.0", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-jaeger" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "lazy_static", - "log", - "mick-jaeger", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", - "sc-network", - "sc-network-types", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "tokio", -] - -[[package]] -name = "polkadot-node-metrics" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bs58 0.5.1", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "prioritized-metered-channel", - "sc-cli", - "sc-service", - "sc-tracing", - "substrate-prometheus-endpoint", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-network-protocol" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-channel 1.9.0", - "async-trait", - "bitvec", - "derive_more", - "fatality", - "futures", - "hex", - "parity-scale-codec", - "polkadot-node-jaeger", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", - "rand 0.8.5", - "sc-authority-discovery", - "sc-network", - "sc-network-types", - "sp-runtime 31.0.1", - "strum 0.26.3", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-node-primitives" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "bounded-vec", - "futures", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "schnorrkel 0.11.4", - "serde", - "sp-application-crypto 30.0.0", - "sp-consensus-babe 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-maybe-compressed-blob", - "sp-runtime 31.0.1", - "thiserror", - "zstd 0.12.4", -] - -[[package]] -name = "polkadot-node-subsystem" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "polkadot-node-jaeger", - "polkadot-node-subsystem-types", - "polkadot-overseer", -] - -[[package]] -name = "polkadot-node-subsystem-types" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "bitvec", - "derive_more", - "fatality", - "futures", - "orchestra", - "polkadot-node-jaeger", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-primitives 7.0.0", - "polkadot-statement-table", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-transaction-pool-api", - "smallvec", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-blockchain", - "sp-consensus-babe 0.32.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "polkadot-node-subsystem-util" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "derive_more", - "fatality", - "futures", - "futures-channel", - "itertools 0.11.0", - "kvdb", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "pin-project", - "polkadot-erasure-coding", - "polkadot-node-jaeger", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-overseer", - "polkadot-primitives 7.0.0", - "prioritized-metered-channel", - "rand 0.8.5", - "sc-client-api", - "schnellru", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-overseer" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "orchestra", - "parking_lot 0.12.3", - "polkadot-node-metrics", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem-types", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "tikv-jemalloc-ctl", - "tracing-gum", -] - -[[package]] -name = "polkadot-parachain-primitives" -version = "6.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bounded-collections", - "derive_more", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", -] - -[[package]] -name = "polkadot-parachain-primitives" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248ab090959a92e61493277e33b7e85104280a4beb4cb0815137d3c8c50a07f4" -dependencies = [ - "bounded-collections", - "derive_more", - "parity-scale-codec", - "polkadot-core-primitives 8.0.0", - "scale-info", - "serde", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 28.0.0", -] - -[[package]] -name = "polkadot-primitives" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "hex-literal", - "log", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-authority-discovery 26.0.0", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "polkadot-primitives" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0d5f9930210cab0233d81204415c9ef4a8889cdf3e60de1435250481a2773ca" -dependencies = [ - "bitvec", - "hex-literal", - "log", - "parity-scale-codec", - "polkadot-core-primitives 8.0.0", - "polkadot-parachain-primitives 7.0.0", - "scale-info", - "serde", - "sp-api 27.0.1", - "sp-application-crypto 31.0.0", - "sp-arithmetic 24.0.0", - "sp-authority-discovery 27.0.0", - "sp-consensus-slots 0.33.0", - "sp-core 29.0.0", - "sp-inherents 27.0.0", - "sp-io 31.0.0", - "sp-keystore 0.35.0", - "sp-runtime 32.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "polkadot-rpc" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "jsonrpsee", - "mmr-rpc", - "pallet-transaction-payment-rpc", - "polkadot-primitives 7.0.0", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-babe-rpc", - "sc-consensus-beefy", - "sc-consensus-beefy-rpc", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "sc-consensus-grandpa-rpc", - "sc-rpc", - "sc-rpc-spec-v2", - "sc-sync-state-rpc", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", -<<<<<<< HEAD - "sp-consensus-beefy", -======= ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-frame-rpc-system", - "substrate-state-trie-migration-rpc", -] - -[[package]] -name = "polkadot-runtime-common" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitvec", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "libsecp256k1", - "log", - "pallet-asset-rate 7.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", - "pallet-broker 0.6.0", - "pallet-election-provider-multi-phase 27.0.0", - "pallet-fast-unstake 27.0.0", - "pallet-identity 29.0.0", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", - "pallet-staking-reward-fn 19.0.0", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-treasury 27.0.0", - "pallet-vesting 28.0.0", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "slot-range-helper 7.0.0", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-npos-elections 26.0.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "static_assertions", -] - -[[package]] -name = "polkadot-runtime-common" -version = "8.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12a70422ca43d30457e2d9502a5e4af35e20fa2ff3f7cd46e0d2997c784f2665" -dependencies = [ - "bitvec", - "frame-benchmarking 29.0.0", - "frame-election-provider-support 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "impl-trait-for-tuples", - "libsecp256k1", - "log", - "pallet-asset-rate 8.0.0", - "pallet-authorship 29.0.0", - "pallet-balances 29.0.2", - "pallet-broker 0.7.2", - "pallet-election-provider-multi-phase 28.0.0", - "pallet-fast-unstake 28.0.0", - "pallet-identity 29.0.1", - "pallet-session 29.0.0", - "pallet-staking 29.0.3", - "pallet-staking-reward-fn 20.0.0", - "pallet-timestamp 28.0.0", - "pallet-transaction-payment 29.0.2", - "pallet-treasury 28.0.1", - "pallet-vesting 29.0.0", - "parity-scale-codec", - "polkadot-primitives 8.0.1", - "polkadot-runtime-parachains 8.0.3", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "slot-range-helper 8.0.0", - "sp-api 27.0.1", - "sp-core 29.0.0", - "sp-inherents 27.0.0", - "sp-io 31.0.0", - "sp-npos-elections 27.0.0", - "sp-runtime 32.0.0", - "sp-session 28.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "staging-xcm 8.0.1", - "staging-xcm-builder 8.0.3", - "staging-xcm-executor 8.0.2", - "static_assertions", -] - -[[package]] -name = "polkadot-runtime-constants" -version = "1.0.0" -source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v1.2.3#061073f2e740bfae3a576deab05feda962eb1851" -dependencies = [ - "frame-support 29.0.2", - "polkadot-primitives 8.0.1", - "polkadot-runtime-common 8.0.3", - "smallvec", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-weights 28.0.0", - "staging-xcm-builder 8.0.3", -] - -[[package]] -name = "polkadot-runtime-metrics" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bs58 0.5.1", - "frame-benchmarking 28.0.0", - "parity-scale-codec", - "polkadot-primitives 7.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "polkadot-runtime-metrics" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3566c6fd0c21b5dd555309427c984cf506f875ee90f710acea295b478fecbe0" -dependencies = [ - "bs58 0.5.1", - "frame-benchmarking 29.0.0", - "parity-scale-codec", - "polkadot-primitives 8.0.1", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "polkadot-runtime-parachains" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bitflags 1.3.2", - "bitvec", - "derive_more", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "log", - "pallet-authority-discovery 28.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", - "pallet-broker 0.6.0", - "pallet-message-queue 31.0.0", - "pallet-session 28.0.0", - "pallet-staking 28.0.0", - "pallet-timestamp 27.0.0", - "pallet-vesting 28.0.0", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-metrics 7.0.0", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rustc-hex", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", - "static_assertions", -] - -[[package]] -name = "polkadot-runtime-parachains" -version = "8.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8d37cd3e014b06daf396d1483b5327782a0ebadc816423419665166b75b3e3e" -dependencies = [ - "bitflags 1.3.2", - "bitvec", - "derive_more", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "frame-system 29.0.0", - "impl-trait-for-tuples", - "log", - "pallet-authority-discovery 29.0.1", - "pallet-authorship 29.0.0", - "pallet-babe 29.0.0", - "pallet-balances 29.0.2", - "pallet-broker 0.7.2", - "pallet-message-queue 32.0.0", - "pallet-session 29.0.0", - "pallet-staking 29.0.3", - "pallet-timestamp 28.0.0", - "pallet-vesting 29.0.0", - "parity-scale-codec", - "polkadot-core-primitives 8.0.0", - "polkadot-parachain-primitives 7.0.0", - "polkadot-primitives 8.0.1", - "polkadot-runtime-metrics 8.0.0", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rustc-hex", - "scale-info", - "serde", - "sp-api 27.0.1", - "sp-application-crypto 31.0.0", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-inherents 27.0.0", - "sp-io 31.0.0", - "sp-keystore 0.35.0", - "sp-runtime 32.0.0", - "sp-session 28.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "staging-xcm 8.0.1", - "staging-xcm-executor 8.0.2", -] - -[[package]] -name = "polkadot-service" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "bitvec", - "frame-benchmarking 28.0.0", - "frame-benchmarking-cli", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-rpc-runtime-api", - "futures", - "hex-literal", - "is_executable", - "kvdb", - "kvdb-rocksdb", - "log", - "mmr-gadget", - "pallet-babe 28.0.0", - "pallet-staking 28.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "polkadot-approval-distribution", - "polkadot-availability-bitfield-distribution", - "polkadot-availability-distribution", - "polkadot-availability-recovery", - "polkadot-collator-protocol", - "polkadot-core-primitives 7.0.0", - "polkadot-dispute-distribution", - "polkadot-gossip-support", - "polkadot-network-bridge", - "polkadot-node-collation-generation", - "polkadot-node-core-approval-voting", - "polkadot-node-core-av-store", - "polkadot-node-core-backing", - "polkadot-node-core-bitfield-signing", - "polkadot-node-core-candidate-validation", - "polkadot-node-core-chain-api", - "polkadot-node-core-chain-selection", - "polkadot-node-core-dispute-coordinator", - "polkadot-node-core-parachains-inherent", - "polkadot-node-core-prospective-parachains", - "polkadot-node-core-provisioner", - "polkadot-node-core-pvf", - "polkadot-node-core-pvf-checker", - "polkadot-node-core-runtime-api", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-types", - "polkadot-node-subsystem-util", - "polkadot-overseer", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-rpc", - "polkadot-runtime-parachains 7.0.0", - "polkadot-statement-distribution", - "rococo-runtime", - "rococo-runtime-constants", - "sc-authority-discovery", - "sc-basic-authorship", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-consensus-babe", - "sc-consensus-beefy", - "sc-consensus-grandpa", - "sc-consensus-slots", - "sc-executor", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-offchain", - "sc-service", - "sc-sync-state-rpc", - "sc-sysinfo", - "sc-telemetry", - "sc-transaction-pool", - "sc-transaction-pool-api", - "schnellru", - "serde", - "serde_json", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", - "sp-consensus-beefy", - "sp-consensus-grandpa", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-keystore 0.34.0", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-state-machine 0.35.0", -<<<<<<< HEAD - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-timestamp 26.0.0", - "sp-transaction-pool", - "sp-version 29.0.0", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "substrate-prometheus-endpoint", - "thiserror", - "tracing-gum", - "westend-runtime", - "xcm-fee-payment-runtime-api", -] - -[[package]] -name = "polkadot-statement-distribution" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "arrayvec 0.7.6", - "bitvec", - "fatality", - "futures", - "futures-timer", - "indexmap 2.4.0", - "parity-scale-codec", - "polkadot-node-network-protocol", - "polkadot-node-primitives", - "polkadot-node-subsystem", - "polkadot-node-subsystem-util", - "polkadot-primitives 7.0.0", - "sp-keystore 0.34.0", - "sp-staking 26.0.0", - "thiserror", - "tracing-gum", -] - -[[package]] -name = "polkadot-statement-table" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sp-core 28.0.0", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "tracing-gum", -] - -[[package]] -name = "polkavm" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" -dependencies = [ - "libc", - "log", - "polkavm-assembler", - "polkavm-common", - "polkavm-linux-raw", -] - -[[package]] -name = "polkavm-assembler" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" -dependencies = [ - "log", -] - -[[package]] -name = "polkavm-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" -dependencies = [ - "log", -] - -[[package]] -name = "polkavm-derive" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" -dependencies = [ - "polkavm-derive-impl-macro", -] - -[[package]] -name = "polkavm-derive-impl" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" -dependencies = [ - "polkavm-common", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "polkavm-derive-impl-macro" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" -dependencies = [ - "polkavm-derive-impl", - "syn 2.0.75", -] - -[[package]] -name = "polkavm-linker" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" -dependencies = [ - "gimli 0.28.1", - "hashbrown 0.14.5", - "log", - "object 0.32.2", - "polkavm-common", - "regalloc2 0.9.3", - "rustc-demangle", -] - -[[package]] -name = "polkavm-linux-raw" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", - "libc", - "log", - "pin-project-lite 0.2.14", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" -dependencies = [ - "cfg-if", - "concurrent-queue", - "hermit-abi 0.4.0", - "pin-project-lite 0.2.14", - "rustix 0.38.34", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "poly1305" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" -dependencies = [ - "cpufeatures", - "opaque-debug 0.3.1", - "universal-hash", -] - -[[package]] -name = "polyval" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug 0.3.1", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" - -[[package]] -name = "postgres-protocol" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" -dependencies = [ - "base64 0.22.1", - "byteorder", - "bytes", - "fallible-iterator 0.2.0", - "hmac 0.12.1", - "md-5", - "memchr", - "rand 0.8.5", - "sha2 0.10.8", - "stringprep", -] - -[[package]] -name = "postgres-types" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" -dependencies = [ - "bytes", - "fallible-iterator 0.2.0", - "postgres-protocol", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "pq-sys" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6cc05d7ea95200187117196eee9edd0644424911821aeb28a18ce60ea0b8793" -dependencies = [ - "vcpkg", -] - -[[package]] -name = "predicates" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" -dependencies = [ - "difflib", - "float-cmp", - "itertools 0.10.5", - "normalize-line-endings", - "predicates-core", - "regex", -] - -[[package]] -name = "predicates" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" -dependencies = [ - "anstyle", - "predicates-core", -] - -[[package]] -name = "predicates-core" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" - -[[package]] -name = "predicates-tree" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" -dependencies = [ - "predicates-core", - "termtree", -] - -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "prettyplease" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" -dependencies = [ - "proc-macro2", - "syn 2.0.75", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "prioritized-metered-channel" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" -dependencies = [ - "coarsetime", - "crossbeam-queue", - "derive_more", - "futures", - "futures-timer", - "nanorand", - "thiserror", - "tracing", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml 0.5.11", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - -[[package]] -name = "proc-macro-crate" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" -dependencies = [ - "toml_edit 0.21.1", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-warning" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot 0.12.3", - "thiserror", -] - -[[package]] -name = "prometheus-client" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" -dependencies = [ - "dtoa", - "itoa", - "parking_lot 0.12.3", - "prometheus-client-derive-encode", -] - -[[package]] -name = "prometheus-client-derive-encode" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - -[[package]] -name = "prost" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" -dependencies = [ - "bytes", - "prost-derive 0.12.6", -] - -[[package]] -name = "prost-build" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" -dependencies = [ - "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", - "log", - "multimap 0.8.3", - "petgraph", - "prettyplease 0.1.25", - "prost 0.11.9", - "prost-types 0.11.9", - "regex", - "syn 1.0.109", - "tempfile", - "which", -] - -[[package]] -name = "prost-build" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" -dependencies = [ - "bytes", - "heck 0.5.0", - "itertools 0.12.1", - "log", - "multimap 0.10.0", - "once_cell", - "petgraph", - "prettyplease 0.2.20", - "prost 0.12.6", - "prost-types 0.12.6", - "regex", - "syn 2.0.75", - "tempfile", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "prost-derive" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" -dependencies = [ - "anyhow", - "itertools 0.12.1", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost 0.11.9", -] - -[[package]] -name = "prost-types" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" -dependencies = [ - "prost 0.12.6", -] - -[[package]] -name = "psm" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" -dependencies = [ - "cc", -] - -[[package]] -name = "quanta" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" -dependencies = [ - "crossbeam-utils", - "libc", - "once_cell", - "raw-cpuid", - "wasi 0.11.0+wasi-snapshot-preview1", - "web-sys", - "winapi", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quick-protobuf" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" -dependencies = [ - "byteorder", -] - -[[package]] -name = "quick-protobuf-codec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" -dependencies = [ - "asynchronous-codec", - "bytes", - "quick-protobuf", - "thiserror", - "unsigned-varint", -] - -[[package]] -name = "quicksink" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" -dependencies = [ - "futures-core", - "futures-sink", - "pin-project-lite 0.1.12", -] - -[[package]] -name = "quinn" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" -dependencies = [ - "bytes", - "pin-project-lite 0.2.14", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls 0.20.9", - "thiserror", - "tokio", - "tracing", - "webpki", -] - -[[package]] -name = "quinn-proto" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" -dependencies = [ - "bytes", - "rand 0.8.5", - "ring 0.16.20", - "rustc-hash", - "rustls 0.20.9", - "slab", - "thiserror", - "tinyvec", - "tracing", - "webpki", -] - -[[package]] -name = "quinn-udp" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" -dependencies = [ - "libc", - "quinn-proto", - "socket2 0.4.10", - "tracing", - "windows-sys 0.42.0", -] - -[[package]] -name = "quote" -version = "1.0.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_pcg" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "raw-cpuid" -version = "11.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb9ee317cfe3fbd54b36a511efc1edd42e216903c9cd575e686dd68a2ba90d8d" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rcgen" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" -dependencies = [ - "pem", - "ring 0.16.20", - "time", - "yasna", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.15", - "libredox", - "thiserror", -] - -[[package]] -name = "reed-solomon-novelpoly" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" -dependencies = [ - "derive_more", - "fs-err", - "static_init", - "thiserror", -] - -[[package]] -name = "ref-cast" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "reference-trie" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07d0cce9052afc45cefde7166ad8b8a165c7136de8b57634c7789f14eebed06c" -dependencies = [ - "hash-db", - "hashbrown 0.13.2", - "keccak-hasher", - "parity-scale-codec", - "paste", - "trie-db 0.27.1", - "trie-root", -] - -[[package]] -name = "regalloc2" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" -dependencies = [ - "fxhash", - "log", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regalloc2" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" -dependencies = [ - "hashbrown 0.13.2", - "log", - "rustc-hash", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.4", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[package]] -name = "resolv-conf" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" -dependencies = [ - "hostname", - "quick-error", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac 0.12.1", - "subtle 2.6.1", -] - -[[package]] -name = "ring" -version = "0.1.0" -source = "git+https://github.com/w3f/ring-proof#665f5f51af5734c7b6d90b985dd6861d4c5b4752" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "arrayvec 0.7.6", - "blake2 0.10.6", - "common", - "fflonk", - "merlin", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.15", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.52.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rocksdb" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rococo-runtime" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "binary-merkle-tree", - "bitvec", - "frame-benchmarking 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-asset-rate 7.0.0", - "pallet-authority-discovery 28.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-balances 28.0.0", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-bounties", - "pallet-child-bounties", - "pallet-collective", - "pallet-conviction-voting", - "pallet-democracy", - "pallet-elections-phragmen", - "pallet-grandpa", -<<<<<<< HEAD - "pallet-identity 29.0.0", -======= - "pallet-identity 28.0.0", ->>>>>>> main - "pallet-indices", - "pallet-membership", - "pallet-message-queue 31.0.0", - "pallet-mmr", - "pallet-multisig", - "pallet-nis", - "pallet-offences", - "pallet-parameters", - "pallet-preimage", - "pallet-proxy", - "pallet-ranked-collective", - "pallet-recovery", - "pallet-referenda", - "pallet-root-testing", - "pallet-scheduler", - "pallet-session 28.0.0", - "pallet-society", - "pallet-staking 28.0.0", - "pallet-state-trie-migration", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-tips", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury 27.0.0", - "pallet-utility", - "pallet-vesting 28.0.0", - "pallet-whitelist", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "rococo-runtime-constants", - "scale-info", - "serde", - "serde_derive", - "serde_json", - "smallvec", - "sp-api 26.0.0", - "sp-arithmetic 23.0.0", - "sp-authority-discovery 26.0.0", - "sp-block-builder", - "sp-consensus-babe 0.32.0", - "sp-consensus-beefy", - "sp-consensus-grandpa", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-mmr-primitives", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-transaction-pool", - "sp-version 29.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "static_assertions", - "substrate-wasm-builder", - "xcm-fee-payment-runtime-api", -] - -[[package]] -name = "rococo-runtime-constants" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "smallvec", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", -] - -[[package]] -name = "route-recognizer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" - -[[package]] -name = "rpassword" -version = "7.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" -dependencies = [ - "libc", - "rtoolbox", - "windows-sys 0.48.0", -] - -[[package]] -name = "rtnetlink" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" -dependencies = [ - "futures", - "log", - "netlink-packet-route", - "netlink-proto", - "nix 0.24.3", - "thiserror", - "tokio", -] - -[[package]] -name = "rtoolbox" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.23", -] - -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - -[[package]] -name = "rustix" -version = "0.36.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" -dependencies = [ - "bitflags 2.6.0", - "errno", - "libc", - "linux-raw-sys 0.4.14", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" -dependencies = [ - "log", - "ring 0.16.20", - "sct", - "webpki", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-pki-types", - "rustls-webpki 0.102.6", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.1.3", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" -dependencies = [ - "base64 0.22.1", - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" -dependencies = [ - "ring 0.17.8", - "rustls-pki-types", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" - -[[package]] -name = "ruzstd" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" -dependencies = [ - "byteorder", - "thiserror-core", - "twox-hash", -] - -[[package]] -name = "rw-stream-sink" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" -dependencies = [ - "futures", - "pin-project", - "static_assertions", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "safe_arch" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "sc-allocator" -version = "23.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "log", - "sp-core 28.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "log", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", -] - -[[package]] -name = "sc-authority-discovery" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "ip_network", - "libp2p", - "linked_hash_set", - "log", - "multihash 0.17.0", - "multihash-codetable", - "parity-scale-codec", - "prost 0.12.6", -<<<<<<< HEAD - "prost-build 0.12.6", -======= - "prost-build 0.11.9", ->>>>>>> main - "rand 0.8.5", - "sc-client-api", - "sc-network", - "sc-network-types", - "sp-api 26.0.0", - "sp-authority-discovery 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-basic-authorship" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "sc-block-builder", - "sc-proposer-metrics", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-block-builder" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sc-chain-spec" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "docify", - "log", - "memmap2 0.9.4", - "parity-scale-codec", - "sc-chain-spec-derive", - "sc-client-api", - "sc-executor", - "sc-network", - "sc-telemetry", - "serde", - "serde_json", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sc-chain-spec-derive" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sc-cli" -version = "0.36.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "chrono", - "clap", - "fdlimit", - "futures", - "itertools 0.11.0", - "libp2p-identity", - "log", - "names", - "parity-bip39", - "parity-scale-codec", - "rand 0.8.5", - "regex", - "rpassword", - "sc-client-api", - "sc-client-db", - "sc-keystore", - "sc-mixnet", - "sc-network", - "sc-service", - "sc-telemetry", - "sc-tracing", - "sc-utils", - "serde", - "serde_json", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-keyring", - "sp-keystore 0.34.0", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keyring", - "sp-keystore 0.34.0", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "sp-version 29.0.0", - "thiserror", - "tokio", -] - -[[package]] -name = "sc-client-api" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "fnv", - "futures", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor", - "sc-transaction-pool-api", - "sc-utils", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-statement-store", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-client-db" -version = "0.35.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "linked-hash-map", - "log", - "parity-db", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-state-db", - "schnellru", - "sp-arithmetic 23.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-database", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-database", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sc-consensus" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "log", - "mockall 0.11.4", - "parking_lot 0.12.3", - "sc-client-api", - "sc-network-types", - "sc-utils", - "serde", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-aura" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "log", - "parity-scale-codec", - "sc-block-builder", - "sc-client-api", - "sc-consensus", - "sc-consensus-slots", - "sc-telemetry", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-babe" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "fork-tree", - "futures", - "log", - "num-bigint", - "num-rational", - "num-traits", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sc-consensus-epochs", - "sc-consensus-slots", - "sc-telemetry", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-babe-rpc" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "jsonrpsee", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-rpc-api", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-babe 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-consensus-beefy" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "fnv", - "futures", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-gossip", - "sc-network-sync", - "sc-network-types", - "sc-utils", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-beefy", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-keystore 0.34.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-mmr-primitives", ->>>>>>> main - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", - "wasm-timer", -] - -[[package]] -name = "sc-consensus-beefy-rpc" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-consensus-beefy", - "sc-rpc", - "serde", - "sp-application-crypto 30.0.0", - "sp-consensus-beefy", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-consensus-epochs" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "fork-tree", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sp-blockchain", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sc-consensus-grandpa" -version = "0.19.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "ahash 0.8.11", - "array-bytes", - "async-trait", - "dyn-clone", - "finality-grandpa", - "fork-tree", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-network-sync", - "sc-network-types", - "sc-telemetry", - "sc-transaction-pool-api", - "sc-utils", - "serde_json", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-grandpa", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-grandpa-rpc" -version = "0.19.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "finality-grandpa", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus-grandpa", - "sc-rpc", - "serde", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-consensus-manual-seal" -version = "0.35.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "assert_matches", - "async-trait", - "futures", - "futures-timer", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-transaction-pool", - "sc-transaction-pool-api", - "serde", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-aura", - "sp-consensus-babe 0.32.0", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-consensus-slots" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-consensus", - "sc-telemetry", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", -] - -[[package]] -name = "sc-executor" -version = "0.32.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-executor-common", - "sc-executor-polkavm", - "sc-executor-wasmtime", - "schnellru", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-io 30.0.0", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", - "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version 29.0.0", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "tracing", -] - -[[package]] -name = "sc-executor-common" -version = "0.29.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "polkavm", - "sc-allocator", - "sp-maybe-compressed-blob", -<<<<<<< HEAD - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "wasm-instrument", -] - -[[package]] -name = "sc-executor-polkavm" -version = "0.29.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "log", - "polkavm", - "sc-executor-common", -<<<<<<< HEAD - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sc-executor-wasmtime" -version = "0.29.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "anyhow", - "cfg-if", - "libc", - "log", - "parking_lot 0.12.3", - "rustix 0.36.17", - "sc-allocator", - "sc-executor-common", -<<<<<<< HEAD - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "wasmtime", -] - -[[package]] -name = "sc-informant" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "ansi_term", - "futures", - "futures-timer", - "log", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sp-blockchain", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sc-keystore" -version = "25.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "parking_lot 0.12.3", - "serde_json", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "thiserror", -] - -[[package]] -name = "sc-mixnet" -version = "0.4.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "arrayvec 0.7.6", - "blake2 0.10.6", - "bytes", - "futures", - "futures-timer", - "log", - "mixnet", - "multiaddr", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-mixnet", - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-network" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "asynchronous-codec", - "bytes", - "cid 0.9.0", - "either", - "fnv", - "futures", - "futures-timer", - "ip_network", - "libp2p", - "linked_hash_set", - "litep2p", - "log", - "mockall 0.11.4", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.3", - "partial_sort", - "pin-project", -<<<<<<< HEAD - "prost 0.12.6", - "prost-build 0.12.6", -======= - "prost 0.11.9", - "prost-build 0.11.9", ->>>>>>> main - "rand 0.8.5", - "sc-client-api", - "sc-network-common", - "sc-network-types", - "sc-utils", - "schnellru", - "serde", - "serde_json", - "smallvec", - "sp-arithmetic 23.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", - "tokio-stream", - "unsigned-varint", - "void", - "wasm-timer", - "zeroize", -] - -[[package]] -name = "sc-network-common" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "futures", - "libp2p-identity", - "parity-scale-codec", - "prost-build 0.12.6", - "sc-consensus", - "sc-network-types", - "sp-consensus", - "sp-consensus-grandpa", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sc-network-gossip" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "ahash 0.8.11", - "futures", - "futures-timer", - "libp2p", - "log", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", - "schnellru", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "tracing", -] - -[[package]] -name = "sc-network-light" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "futures", - "log", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.12.6", - "sc-client-api", - "sc-network", - "sc-network-types", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-network-sync" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "fork-tree", - "futures", - "futures-timer", - "libp2p", - "log", - "mockall 0.11.4", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.12.6", - "sc-client-api", - "sc-consensus", - "sc-network", - "sc-network-common", - "sc-network-types", - "sc-utils", - "schnellru", - "smallvec", - "sp-arithmetic 23.0.0", - "sp-blockchain", - "sp-consensus", - "sp-consensus-grandpa", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", - "tokio-stream", -] - -[[package]] -name = "sc-network-transactions" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "futures", - "libp2p", - "log", - "parity-scale-codec", - "sc-network", - "sc-network-common", - "sc-network-sync", - "sc-network-types", - "sc-utils", - "sp-consensus", - "sp-runtime 31.0.1", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-network-types" -<<<<<<< HEAD -version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "bs58 0.5.1", - "ed25519-dalek 2.1.1", -======= -version = "0.10.0-dev" -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "bs58 0.4.0", ->>>>>>> main - "libp2p-identity", - "litep2p", - "multiaddr", - "multihash 0.17.0", - "rand 0.8.5", - "thiserror", -<<<<<<< HEAD - "zeroize", -======= ->>>>>>> main -] - -[[package]] -name = "sc-offchain" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "bytes", - "fnv", - "futures", - "futures-timer", - "hyper", - "hyper-rustls", - "libp2p", - "log", - "num_cpus", - "once_cell", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-client-api", - "sc-network", - "sc-network-common", - "sc-network-types", - "sc-transaction-pool-api", - "sc-utils", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-offchain", - "sp-runtime 31.0.1", - "threadpool", - "tracing", -] - -[[package]] -name = "sc-proposer-metrics" -version = "0.17.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "log", - "substrate-prometheus-endpoint", -] - -[[package]] -name = "sc-rpc" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-mixnet", - "sc-rpc-api", - "sc-tracing", - "sc-transaction-pool-api", - "sc-utils", - "serde_json", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-offchain", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-statement-store", - "sp-version 29.0.0", - "tokio", -] - -[[package]] -name = "sc-rpc-api" -version = "0.33.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec", - "sc-mixnet", - "sc-transaction-pool-api", - "scale-info", - "serde", - "serde_json", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-rpc", - "sp-runtime 31.0.1", - "sp-version 29.0.0", - "thiserror", -] - -[[package]] -name = "sc-rpc-server" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "forwarded-header-value", - "futures", - "governor", - "http", - "hyper", - "ip_network", - "jsonrpsee", - "log", - "serde_json", - "substrate-prometheus-endpoint", - "tokio", - "tower", - "tower-http", -] - -[[package]] -name = "sc-rpc-spec-v2" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "futures", - "futures-util", - "hex", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "sc-chain-spec", - "sc-client-api", - "sc-rpc", - "sc-transaction-pool-api", - "sc-utils", - "schnellru", - "serde", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-rpc", - "sp-runtime 31.0.1", - "sp-version 29.0.0", - "thiserror", - "tokio", - "tokio-stream", -] - -[[package]] -name = "sc-service" -version = "0.35.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "directories", - "exit-future", - "futures", - "futures-timer", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "sc-chain-spec", - "sc-client-api", - "sc-client-db", - "sc-consensus", - "sc-executor", - "sc-informant", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-light", - "sc-network-sync", - "sc-network-transactions", - "sc-network-types", - "sc-rpc", - "sc-rpc-server", - "sc-rpc-spec-v2", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "schnellru", - "serde", - "serde_json", - "sp-api 26.0.0", - "sp-blockchain", - "sp-consensus", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-state-machine 0.35.0", -<<<<<<< HEAD - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie 29.0.0", -======= - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-transaction-pool", - "sp-transaction-storage-proof", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-version 29.0.0", - "static_init", - "substrate-prometheus-endpoint", - "tempfile", - "thiserror", - "tokio", - "tracing", - "tracing-futures", -] - -[[package]] -name = "sc-state-db" -version = "0.30.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "log", - "parity-scale-codec", - "parking_lot 0.12.3", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sc-storage-monitor" -version = "0.16.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "clap", - "fs4", - "log", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "tokio", -] - -[[package]] -name = "sc-sync-state-rpc" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-chain-spec", - "sc-client-api", - "sc-consensus-babe", - "sc-consensus-epochs", - "sc-consensus-grandpa", - "serde", - "serde_json", - "sp-blockchain", - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-sysinfo" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "derive_more", - "futures", - "libc", - "log", - "rand 0.8.5", - "rand_pcg", - "regex", - "sc-telemetry", - "serde", - "serde_json", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sc-telemetry" -version = "15.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "chrono", - "futures", - "libp2p", - "log", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "sc-network", - "sc-utils", - "serde", - "serde_json", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "sc-tracing" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "ansi_term", - "chrono", - "is-terminal", - "lazy_static", - "libc", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "regex", - "rustc-hash", - "sc-client-api", - "sc-tracing-proc-macro", - "serde", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "thiserror", - "tracing", - "tracing-log 0.2.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-rpc", - "sp-runtime 31.0.1", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "tracing-log 0.1.4", ->>>>>>> main - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "sc-tracing-proc-macro" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sc-transaction-pool" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "futures-timer", - "linked-hash-map", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "sc-client-api", - "sc-transaction-pool-api", - "sc-utils", - "serde", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime 31.0.1", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-transaction-pool", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-transaction-pool-api" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "log", - "parity-scale-codec", - "serde", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sc-utils" -version = "14.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-channel 1.9.0", - "futures", - "futures-timer", - "lazy_static", - "log", - "parking_lot 0.12.3", - "prometheus", - "sp-arithmetic 23.0.0", -] - -[[package]] -name = "scale-bits" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" -dependencies = [ - "parity-scale-codec", - "scale-type-resolver", -] - -[[package]] -name = "scale-decode" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" -dependencies = [ - "derive_more", - "parity-scale-codec", - "scale-bits", - "scale-type-resolver", - "smallvec", -] - -[[package]] -name = "scale-info" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" -dependencies = [ - "bitvec", - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", - "serde", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" -dependencies = [ - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "scale-type-resolver" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "schnellru" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" -dependencies = [ - "ahash 0.8.11", - "cfg-if", - "hashbrown 0.13.2", -] - -[[package]] -name = "schnorrkel" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "curve25519-dalek-ng", - "merlin", - "rand_core 0.6.4", - "sha2 0.9.9", - "subtle-ng", - "zeroize", -] - -[[package]] -name = "schnorrkel" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" -dependencies = [ - "aead", - "arrayref", - "arrayvec 0.7.6", - "curve25519-dalek 4.1.3", - "getrandom_or_panic", - "merlin", - "rand_core 0.6.4", - "serde_bytes", - "sha2 0.10.8", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "scoped-futures" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" -dependencies = [ - "cfg-if", - "pin-utils", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scratch" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "sctp-proto" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" -dependencies = [ - "bytes", - "crc", - "fxhash", - "log", - "rand 0.8.5", - "slab", - "thiserror", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array 0.14.7", - "pkcs8", - "serdect", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "seccompiler" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "345a3e4dddf721a478089d4697b83c6c0a8f5bf16086f6c13397e4534eb6e2e5" -dependencies = [ - "libc", -] - -[[package]] -name = "secp256k1" -version = "0.28.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" -dependencies = [ - "secp256k1-sys", -] - -[[package]] -name = "secp256k1-sys" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" -dependencies = [ - "cc", -] - -[[package]] -name = "secrecy" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" -dependencies = [ - "zeroize", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.6.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "serde" -version = "1.0.210" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_bytes" -version = "0.11.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.210" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "serde_json" -version = "1.0.125" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" -dependencies = [ - "serde", -] - -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "sh-xcm-simulator" -version = "0.1.0" -dependencies = [ - "cumulus-pallet-aura-ext", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-primitives-storage-weight-reclaim", - "cumulus-primitives-utility", - "frame-benchmarking 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "num-bigint", - "pallet-aura", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", - "pallet-bucket-nfts", - "pallet-collator-selection", - "pallet-file-system", - "pallet-file-system-runtime-api", - "pallet-message-queue 31.0.0", - "pallet-nfts", - "pallet-payment-streams", - "pallet-payment-streams-runtime-api", - "pallet-proofs-dealer", - "pallet-proofs-dealer-runtime-api", - "pallet-randomness", - "pallet-session 28.0.0", - "pallet-storage-providers", - "pallet-storage-providers-runtime-api", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-uniques", - "pallet-xcm", - "parachains-common", - "parity-scale-codec", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-constants", - "polkadot-runtime-parachains 7.0.0", - "scale-info", - "shp-constants", - "shp-file-key-verifier", - "shp-file-metadata", - "shp-forest-verifier", - "shp-traits", - "smallvec", - "sp-api 26.0.0", - "sp-block-builder", - "sp-consensus-aura", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-transaction-pool", - "sp-trie 29.0.0", - "sp-version 29.0.0", - "sp-weights 27.0.0", - "staging-parachain-info", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "xcm-fee-payment-runtime-api", - "xcm-simulator", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.1", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", - "sha1-asm", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha1-asm" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" -dependencies = [ - "cc", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug 0.3.1", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shc-actors-framework" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "futures", - "sc-service", - "sc-tracing", - "sc-utils", - "serde", - "serde_json", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "tokio", -] - -[[package]] -name = "shc-blockchain-service" -version = "0.1.0" -dependencies = [ - "anyhow", - "array-bytes", - "async-trait", - "cumulus-primitives-core", - "cumulus-primitives-storage-weight-reclaim", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "futures", - "lazy_static", - "log", - "pallet-file-system", - "pallet-file-system-runtime-api", - "pallet-payment-streams", - "pallet-payment-streams-runtime-api", - "pallet-proofs-dealer", - "pallet-proofs-dealer-runtime-api", - "pallet-storage-providers", - "pallet-storage-providers-runtime-api", - "pallet-transaction-payment 28.0.0", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "rocksdb", - "sc-client-api", - "sc-network", - "sc-service", - "sc-tracing", - "sc-utils", - "serde", - "serde_json", - "shc-actors-framework", - "shc-common", - "shp-file-key-verifier", - "shp-file-metadata", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "storage-hub-runtime", - "substrate-frame-rpc-system", - "tokio", -] - -[[package]] -name = "shc-common" -version = "0.1.0" -dependencies = [ - "anyhow", - "bincode", - "cumulus-client-service", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "frame-system 28.0.0", - "lazy_static", - "pallet-file-system", - "pallet-proofs-dealer", - "pallet-storage-providers", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "sc-client-api", - "sc-executor", - "sc-network", - "sc-service", - "serde", - "shp-constants", - "shp-file-key-verifier", - "shp-file-metadata", - "shp-forest-verifier", - "shp-traits", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "storage-hub-runtime", - "thiserror", - "trie-db 0.29.1", -] - -[[package]] -name = "shc-file-manager" -version = "0.1.0" -dependencies = [ - "bincode", - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "log", - "parity-scale-codec", - "serde_json", - "shc-common", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "thiserror", - "trie-db 0.29.1", -] - -[[package]] -name = "shc-file-transfer-service" -version = "0.1.0" -dependencies = [ - "anyhow", - "array-bytes", - "async-channel 1.9.0", - "async-trait", - "futures", - "parity-scale-codec", - "prost 0.12.6", - "prost-build 0.12.6", - "sc-client-api", - "sc-network", - "sc-network-types", - "sc-service", - "sc-tracing", - "sc-utils", - "shc-actors-framework", - "shc-common", - "shp-file-key-verifier", - "shp-file-metadata", - "thiserror", - "tokio", -] - -[[package]] -name = "shc-forest-manager" -version = "0.1.0" -dependencies = [ - "async-trait", - "bincode", - "hash-db", - "kvdb", - "kvdb-memorydb", - "kvdb-rocksdb", - "log", - "parity-scale-codec", - "reference-trie", - "serde", - "shc-common", - "shp-forest-verifier", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "thiserror", - "tokio", - "trie-db 0.29.1", -] - -[[package]] -name = "shc-indexer-db" -version = "0.1.0" -dependencies = [ - "bigdecimal", - "chrono", - "diesel", - "diesel-async", - "futures", - "log", - "serde", - "serde_json", - "thiserror", - "tokio", -] - -[[package]] -name = "shc-indexer-service" -version = "0.1.0" -dependencies = [ - "anyhow", - "array-bytes", - "async-trait", - "cumulus-primitives-core", - "cumulus-primitives-storage-weight-reclaim", - "diesel", - "diesel-async", - "frame-support 28.0.0", - "frame-system 28.0.0", - "futures", - "lazy_static", - "log", - "pallet-bucket-nfts", - "pallet-file-system", - "pallet-file-system-runtime-api", - "pallet-payment-streams", - "pallet-payment-streams-runtime-api", - "pallet-proofs-dealer", - "pallet-proofs-dealer-runtime-api", - "pallet-randomness", - "pallet-storage-providers", - "pallet-storage-providers-runtime-api", - "pallet-transaction-payment 28.0.0", - "parity-scale-codec", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "sc-client-api", - "sc-network", - "sc-service", - "sc-tracing", - "sc-utils", - "serde", - "serde_json", - "shc-actors-framework", - "shc-common", - "shc-indexer-db", - "sp-api 26.0.0", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "storage-hub-runtime", - "substrate-frame-rpc-system", - "thiserror", - "tokio", -] - -[[package]] -name = "shc-rpc" -version = "0.1.0" -dependencies = [ - "array-bytes", - "jsonrpsee", - "log", - "serde", - "shc-common", - "shc-file-manager", - "shc-forest-manager", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "tokio", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "shp-constants" -version = "0.1.0" -dependencies = [ -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", -] - -[[package]] -name = "shp-file-key-verifier" -version = "0.1.0" -dependencies = [ - "bincode", - "frame-support 28.0.0", - "num-bigint", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "serde", - "shp-file-metadata", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "trie-db 0.29.1", -] - -[[package]] -name = "shp-file-metadata" -version = "0.1.0" -dependencies = [ - "num-bigint", - "parity-scale-codec", - "scale-info", - "serde", - "shp-traits", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "shp-forest-verifier" -version = "0.1.0" -dependencies = [ - "bincode", - "frame-support 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", - "shp-traits", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "trie-db 0.29.1", -] - -[[package]] -name = "shp-session-keys" -version = "0.1.0" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "shp-traits" -version = "0.1.0" -dependencies = [ - "frame-support 28.0.0", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simba" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" -dependencies = [ - "approx", - "num-complex", - "num-traits", - "paste", - "wide", -] - -[[package]] -name = "simple-dns" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" -dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "simple-mermaid" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slice-group-by" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" - -[[package]] -name = "slot-range-helper" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "enumn", - "parity-scale-codec", - "paste", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "slot-range-helper" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40fa5e14772407fd2ccffdd5971bf055bbf46a40727c0ea96d2bb6563d17e1c" -dependencies = [ - "enumn", - "parity-scale-codec", - "paste", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "slotmap" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" -dependencies = [ - "version_check", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "smol" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" -dependencies = [ - "async-channel 1.9.0", - "async-executor", - "async-fs", - "async-io 1.13.0", - "async-lock 2.8.0", - "async-net", - "async-process", - "blocking", - "futures-lite 1.13.0", -] - -[[package]] -name = "smoldot" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" -dependencies = [ - "arrayvec 0.7.6", - "async-lock 2.8.0", - "atomic-take", - "base64 0.21.7", - "bip39", - "blake2-rfc", - "bs58 0.5.1", - "chacha20", - "crossbeam-queue", - "derive_more", - "ed25519-zebra 4.0.3", - "either", - "event-listener 2.5.3", - "fnv", - "futures-lite 1.13.0", - "futures-util", - "hashbrown 0.14.5", - "hex", - "hmac 0.12.1", - "itertools 0.11.0", - "libsecp256k1", - "merlin", - "no-std-net", - "nom", - "num-bigint", - "num-rational", - "num-traits", - "pbkdf2 0.12.2", - "pin-project", - "poly1305", - "rand 0.8.5", - "rand_chacha 0.3.1", - "ruzstd", - "schnorrkel 0.10.2", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "siphasher", - "slab", - "smallvec", - "soketto", - "twox-hash", - "wasmi", - "x25519-dalek 2.0.1", - "zeroize", -] - -[[package]] -name = "smoldot-light" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" -dependencies = [ - "async-channel 1.9.0", - "async-lock 2.8.0", - "base64 0.21.7", - "blake2-rfc", - "derive_more", - "either", - "event-listener 2.5.3", - "fnv", - "futures-channel", - "futures-lite 1.13.0", - "futures-util", - "hashbrown 0.14.5", - "hex", - "itertools 0.11.0", - "log", - "lru 0.11.1", - "no-std-net", - "parking_lot 0.12.3", - "pin-project", - "rand 0.8.5", - "rand_chacha 0.3.1", - "serde", - "serde_json", - "siphasher", - "slab", - "smol", - "smoldot", - "zeroize", -] - -[[package]] -name = "snap" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" - -[[package]] -name = "snow" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" -dependencies = [ - "aes-gcm", - "blake2 0.10.6", - "chacha20poly1305", - "curve25519-dalek 4.1.3", - "rand_core 0.6.4", - "ring 0.17.8", - "rustc_version", - "sha2 0.10.8", - "subtle 2.6.1", -] - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "soketto" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" -dependencies = [ - "base64 0.13.1", - "bytes", - "flate2", - "futures", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha-1 0.9.8", -] - -[[package]] -name = "sp-api" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro 15.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-version 29.0.0", - "thiserror", -] - -[[package]] -name = "sp-api" -version = "27.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e4f8702afd77f14a32733e2b589c02694bf79d0b3a641963c508016208724d0" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "scale-info", - "sp-api-proc-macro 15.0.1", - "sp-core 29.0.0", - "sp-externalities 0.26.0", - "sp-metadata-ir 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 32.0.0", - "sp-state-machine 0.36.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 30.0.0", - "sp-version 30.0.0", - "thiserror", -] - -[[package]] -name = "sp-api-proc-macro" -version = "15.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-api-proc-macro" -version = "15.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0301e2f77afb450fbf2b093f8b324c7ad88cc82e5e69bd5dc8658a1f068b2a96" -dependencies = [ - "Inflector", - "blake2 0.10.6", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-application-crypto" -version = "30.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-application-crypto" -version = "31.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "547cad7a6eabb52c639ec117b3db9c6b43cf1b29a9393b18feb19e101a91833f" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-arithmetic" -version = "23.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "static_assertions", -] - -[[package]] -name = "sp-arithmetic" -version = "24.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa823ca5adc490d47dccb41d69ad482bc57a317bd341de275868378f48f131c" -dependencies = [ - "integer-sqrt", - "num-traits", - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions", -] - -[[package]] -name = "sp-ark-bls12-381" -version = "0.4.2" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" -dependencies = [ - "ark-bls12-381-ext", - "sp-crypto-ec-utils", -] - -[[package]] -name = "sp-ark-ed-on-bls12-381-bandersnatch" -version = "0.4.2" -source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" -dependencies = [ - "ark-ed-on-bls12-381-bandersnatch-ext", - "sp-crypto-ec-utils", -] - -[[package]] -name = "sp-authority-discovery" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-authority-discovery" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c92b177c72b5d2973c36d60f6ef942d791d9fd91eae8b08c71882e4118d4fbfc" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 27.0.1", - "sp-application-crypto 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-block-builder" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "sp-api 26.0.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-blockchain" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "futures", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "schnellru", - "sp-api 26.0.0", - "sp-consensus", - "sp-database", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "thiserror", -] - -[[package]] -name = "sp-consensus" -version = "0.32.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "futures", - "log", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "thiserror", -] - -[[package]] -name = "sp-consensus-aura" -version = "0.32.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-consensus-slots 0.32.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", -] - -[[package]] -name = "sp-consensus-babe" -version = "0.32.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-consensus-slots 0.32.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", -] - -[[package]] -name = "sp-consensus-babe" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9be2f86a2f0ce2a78b455feb547aa27604fd76a7f7a691995cbad44e0b1b9dd" -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 27.0.1", - "sp-application-crypto 31.0.0", - "sp-consensus-slots 0.33.0", - "sp-core 29.0.0", - "sp-inherents 27.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-timestamp 27.0.0", -] - -[[package]] -name = "sp-consensus-beefy" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "lazy_static", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-io 30.0.0", - "sp-keystore 0.34.0", - "sp-mmr-primitives", - "sp-runtime 31.0.1", - "strum 0.26.3", -] - -[[package]] -name = "sp-consensus-grandpa" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.32.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-timestamp 26.0.0", -] - -[[package]] -name = "sp-consensus-slots" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73a5bd1fcd84bbdc7255528c7cdb92f9357fd555f06ee553af7e340cbdab517c" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-timestamp 27.0.0", -] - -[[package]] -name = "sp-core" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "array-bytes", - "bandersnatch_vrfs", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", - "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand 0.8.5", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1", - "secrecy", - "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "ss58-registry", - "substrate-bip39 0.4.7 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-core" -version = "28.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "array-bytes 6.2.3", - "bandersnatch_vrfs 0.0.4 (git+https://github.com/w3f/ring-vrf?rev=0fef826)", ->>>>>>> main - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 4.0.3", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.11.0", - "k256", - "libsecp256k1", - "log", - "merlin", - "parity-bip39", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand 0.8.5", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1", - "secrecy", - "serde", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "ss58-registry", - "substrate-bip39 0.4.7", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-core" -version = "29.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c33c7a1568175250628567d50c4e1c54a6ac5bc1190413b9be29a9e810cbe73" -dependencies = [ - "array-bytes", - "bip39", - "bitflags 1.3.2", - "blake2 0.10.6", - "bounded-collections", - "bs58 0.5.1", - "dyn-clonable", - "ed25519-zebra 3.1.0", - "futures", - "hash-db", - "hash256-std-hasher", - "impl-serde", - "itertools 0.10.5", - "libsecp256k1", - "log", - "merlin", - "parity-scale-codec", - "parking_lot 0.12.3", - "paste", - "primitive-types", - "rand 0.8.5", - "scale-info", - "schnorrkel 0.11.4", - "secp256k1", - "secrecy", - "serde", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.26.0", - "sp-runtime-interface 25.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 20.0.0", - "ss58-registry", - "substrate-bip39 0.4.6", - "thiserror", - "tracing", - "w3f-bls", - "zeroize", -] - -[[package]] -name = "sp-crypto-ec-utils" -version = "0.10.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "ark-bls12-377", - "ark-bls12-377-ext", - "ark-bls12-381", - "ark-bls12-381-ext", - "ark-bw6-761", - "ark-bw6-761-ext", - "ark-ec", - "ark-ed-on-bls12-377", - "ark-ed-on-bls12-377-ext", - "ark-ed-on-bls12-381-bandersnatch", - "ark-ed-on-bls12-381-bandersnatch-ext", - "ark-scale", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", -] - -[[package]] -name = "sp-crypto-hashing" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - -[[package]] -name = "sp-crypto-hashing" -version = "0.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - -[[package]] -<<<<<<< HEAD -======= -name = "sp-crypto-hashing" -version = "0.1.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "blake2b_simd", - "byteorder", - "digest 0.10.7", - "sha2 0.10.8", - "sha3", - "twox-hash", -] - -[[package]] ->>>>>>> main -name = "sp-crypto-hashing-proc-macro" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" -dependencies = [ - "quote", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 2.0.75", -] - -[[package]] -name = "sp-crypto-hashing-proc-macro" -version = "0.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "syn 2.0.75", -] - -[[package]] -name = "sp-database" -version = "10.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "kvdb", - "parking_lot 0.12.3", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-debug-derive" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-externalities" -version = "0.25.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", -] - -[[package]] -name = "sp-externalities" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7096ed024cec397804864898b093b51e14c7299f1d00c67dd5800330e02bb82" -dependencies = [ - "environmental", - "parity-scale-codec", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 20.0.0", -] - -[[package]] -name = "sp-genesis-builder" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd865540ec19479c7349b584ccd78cc34c3f3a628a2a69dbb6365ceec36295ee" -dependencies = [ - "serde_json", - "sp-api 27.0.1", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-genesis-builder" -version = "0.8.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde_json", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-inherents" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sp-inherents" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "607c9e35e96966645ff180a9e9f976433b96e905d0a91d8d5315e605a21f4bc0" -dependencies = [ - "async-trait", - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror", -] - -[[package]] -name = "sp-io" -version = "30.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bytes", - "ed25519-dalek 2.1.1", - "libsecp256k1", - "log", - "parity-scale-codec", - "polkavm-derive", - "rustversion", - "secp256k1", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-keystore 0.34.0", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-keystore 0.34.0", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-state-machine 0.35.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-io" -version = "31.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec43aa073eab35fcb920d7592474d5427ea3be2bf938706a3ad955d7ba54fd8d" -dependencies = [ - "bytes", - "ed25519-dalek 2.1.1", - "libsecp256k1", - "log", - "parity-scale-codec", - "rustversion", - "secp256k1", - "sp-core 29.0.0", - "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-externalities 0.26.0", - "sp-keystore 0.35.0", - "sp-runtime-interface 25.0.0", - "sp-state-machine 0.36.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 30.0.0", - "tracing", - "tracing-core", -] - -[[package]] -name = "sp-keyring" -version = "31.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "sp-core 28.0.0", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "strum 0.26.3", -] - -[[package]] -name = "sp-keystore" -version = "0.34.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-keystore" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "444f2d53968b1ce5e908882710ff1f3873fcf3e95f59d57432daf685bbacb959" -dependencies = [ - "parity-scale-codec", - "parking_lot 0.12.3", - "sp-core 29.0.0", - "sp-externalities 0.26.0", - "thiserror", -] - -[[package]] -name = "sp-maybe-compressed-blob" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "thiserror", - "zstd 0.12.4", -] - -[[package]] -name = "sp-metadata-ir" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0b5e87e56c1bb26d9524d48dd127121d630f895bd5914a34f0b017489f7c1d" -dependencies = [ - "frame-metadata", - "parity-scale-codec", - "scale-info", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-metadata-ir" -version = "0.6.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-metadata", - "parity-scale-codec", - "scale-info", -] - -[[package]] -name = "sp-mixnet" -version = "0.4.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", -] - -[[package]] -name = "sp-mmr-primitives" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "log", - "parity-scale-codec", - "polkadot-ckb-merkle-mountain-range", - "scale-info", - "serde", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sp-npos-elections" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-npos-elections" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "195d7e1154c91cce5c3abc8c778689c3e5799da6411328dd32ac7a974c68e526" -dependencies = [ - "parity-scale-codec", - "scale-info", - "serde", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-offchain" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "sp-api 26.0.0", - "sp-core 28.0.0", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "sp-api 26.0.0", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-panic-handler" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8f5a17a0a11de029a8b811cb6e8b32ce7e02183cc04a3e965c383246798c416" -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-panic-handler" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "backtrace", - "lazy_static", - "regex", -] - -[[package]] -name = "sp-rpc" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "rustc-hash", - "serde", - "sp-core 28.0.0", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "rustc-hash", - "serde", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-runtime" -version = "31.0.1" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "num-traits", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", -] - -[[package]] -name = "sp-runtime" -version = "32.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a95e71603a6281e91b0f1fd3d68057644be16d75a4602013187b8137db8abee" -dependencies = [ - "docify", - "either", - "hash256-std-hasher", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "paste", - "rand 0.8.5", - "scale-info", - "serde", - "simple-mermaid", - "sp-application-crypto 31.0.0", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 28.0.0", -] - -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive", - "primitive-types", -<<<<<<< HEAD - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "24.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "polkavm-derive", - "primitive-types", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface" -version = "25.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e2321ab29d4bcc31f1ba1b4f076a81fb2a666465231e5c981c72320d74dbe63" -dependencies = [ - "bytes", - "impl-trait-for-tuples", - "parity-scale-codec", - "primitive-types", - "sp-externalities 0.26.0", - "sp-runtime-interface-proc-macro 17.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-storage 20.0.0", - "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-wasm-interface 20.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "static_assertions", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfaf6e85b2ec12a4b99cd6d8d57d083e30c94b7f1b0d8f93547121495aae6f0c" -dependencies = [ - "Inflector", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "Inflector", - "expander", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "Inflector", - "expander 2.2.1", ->>>>>>> main - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-runtime-interface-proc-macro" -version = "17.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "Inflector", - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-session" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-staking 26.0.0", -] - -[[package]] -name = "sp-session" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b86531090cc04d2ab3535df07146258e2fb3ab6257b0a77ef14aa08282c3d4a" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api 27.0.1", - "sp-core 29.0.0", - "sp-keystore 0.35.0", - "sp-runtime 32.0.0", - "sp-staking 27.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-staking" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-staking" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e14d003ecf0b610bf1305a92bdab875289b39d514c073f30e75e78c2763a788" -dependencies = [ - "impl-trait-for-tuples", - "parity-scale-codec", - "scale-info", - "serde", - "sp-core 29.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-state-machine" -version = "0.35.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "smallvec", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "tracing", - "trie-db 0.29.1", -] - -[[package]] -name = "sp-state-machine" -version = "0.36.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a67297e702aa32027d7766803f362a420d6d3ec9e2f84961f3c64e2e52b5aaf9" -dependencies = [ - "hash-db", - "log", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "smallvec", - "sp-core 29.0.0", - "sp-externalities 0.26.0", - "sp-panic-handler 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-trie 30.0.0", - "thiserror", - "tracing", - "trie-db 0.28.0", -] - -[[package]] -name = "sp-statement-store" -version = "10.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "aes-gcm", - "curve25519-dalek 4.1.3", - "ed25519-dalek 2.1.1", - "hkdf", - "parity-scale-codec", - "rand 0.8.5", - "scale-info", - "sha2 0.10.8", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", - "x25519-dalek 2.0.1", -] - -[[package]] -name = "sp-std" -version = "14.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" - -[[package]] -name = "sp-std" -version = "14.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main - -[[package]] -name = "sp-std" -version = "14.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" - -[[package]] -name = "sp-storage" -version = "19.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", -<<<<<<< HEAD - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-storage" -version = "19.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", -] - -[[package]] -name = "sp-storage" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dba5791cb3978e95daf99dad919ecb3ec35565604e88cd38d805d9d4981e8bd" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "ref-cast", - "serde", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "sp-timestamp" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "thiserror", -] - -[[package]] -name = "sp-timestamp" -version = "27.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "249cd06624f2edb53b25af528ab216a508dc9d0870e158b43caac3a97e86699f" -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents 27.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0351810b9d074df71c4514c5228ed05c250607cba131c1c9d1526760ab69c05c" -dependencies = [ - "parity-scale-codec", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "tracing", - "tracing-core", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "sp-tracing" -version = "16.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "parity-scale-codec", - "tracing", - "tracing-core", - "tracing-subscriber 0.3.18", -] - -[[package]] -name = "sp-transaction-pool" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "sp-api 26.0.0", - "sp-runtime 31.0.1", -] - -[[package]] -name = "sp-transaction-storage-proof" -version = "26.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "async-trait", - "parity-scale-codec", - "scale-info", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-inherents 26.0.0", - "sp-runtime 31.0.1", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-trie" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "ahash 0.8.11", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "scale-info", - "schnellru", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "thiserror", - "tracing", - "trie-db 0.29.1", - "trie-root", -] - -[[package]] -name = "sp-trie" -version = "29.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "ahash 0.8.11", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "scale-info", - "schnellru", - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git)", - "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git)", ->>>>>>> main - "thiserror", - "tracing", - "trie-db 0.29.1", - "trie-root", -] - -[[package]] -name = "sp-trie" -version = "30.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed48dfd05081e8b36741b10ce4eb686c135a2952227a11fe71caec89890ddbb" -dependencies = [ - "ahash 0.8.11", - "hash-db", - "lazy_static", - "memory-db", - "nohash-hasher", - "parity-scale-codec", - "parking_lot 0.12.3", - "rand 0.8.5", - "scale-info", - "schnellru", - "sp-core 29.0.0", - "sp-externalities 0.26.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror", - "tracing", - "trie-db 0.28.0", - "trie-root", -] - -[[package]] -name = "sp-version" -version = "29.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", -<<<<<<< HEAD - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "thiserror", -] - -[[package]] -name = "sp-version" -version = "30.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4a660c68995663d6778df324f4e2b4efc48d55a8e9c92c22a5fb7dae7899cd" -dependencies = [ - "impl-serde", - "parity-scale-codec", - "parity-wasm", - "scale-info", - "serde", - "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-version-proc-macro 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "thiserror", -] - -[[package]] -name = "sp-version-proc-macro" -version = "13.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9bc3fed32d6dacbbbfb28dd1fe0224affbb737cb6cbfca1d9149351c2b69a7d" -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-version-proc-macro" -version = "13.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "parity-scale-codec", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ef97172c42eb4c6c26506f325f48463e9bc29b2034a587f1b9e48c751229bee" -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "wasmtime", -] - -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "anyhow", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "wasmtime", -] - -[[package]] -name = "sp-wasm-interface" -version = "20.0.0" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" -dependencies = [ - "impl-trait-for-tuples", - "log", - "parity-scale-codec", -] - -[[package]] -name = "sp-weights" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "sp-weights" -version = "28.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3be30aec904994451dcacf841a9168cfbbaf817de6b24b6a1c1418cbf1af2fe" -dependencies = [ - "bounded-collections", - "parity-scale-codec", - "scale-info", - "serde", - "smallvec", - "sp-arithmetic 24.0.0", - "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spinning_top" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" -dependencies = [ - "lock_api", -] - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "ss58-registry" -version = "1.47.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" -dependencies = [ - "Inflector", - "num-format", - "proc-macro2", - "quote", - "serde", - "serde_json", - "unicode-xid", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "staging-parachain-info" -version = "0.7.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "cumulus-primitives-core", - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main -] - -[[package]] -name = "staging-xcm" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "array-bytes", - "bounded-collections", - "derivative", - "environmental", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-weights 27.0.0", - "xcm-procedural 7.0.0", -] - -[[package]] -name = "staging-xcm" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48fa328b87de3466bc38cc9a07244c42c647b7755b81115e1dfeb47cc13fc6e6" -dependencies = [ - "array-bytes", - "bounded-collections", - "derivative", - "environmental", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-weights 28.0.0", - "xcm-procedural 8.0.0", -] - -[[package]] -name = "staging-xcm-builder" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "impl-trait-for-tuples", - "log", - "pallet-transaction-payment 28.0.0", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "scale-info", - "sp-arithmetic 23.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "staging-xcm-executor 7.0.0", -] - -[[package]] -name = "staging-xcm-builder" -version = "8.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b7447c38be3ca9fb21c7434de2243aa6ac74acde8944cda7bb6e2a4f765801" -dependencies = [ - "frame-support 29.0.2", - "frame-system 29.0.0", - "impl-trait-for-tuples", - "log", - "pallet-transaction-payment 29.0.2", - "parity-scale-codec", - "polkadot-parachain-primitives 7.0.0", - "scale-info", - "sp-arithmetic 24.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 28.0.0", - "staging-xcm 8.0.1", - "staging-xcm-executor 8.0.2", -] - -[[package]] -name = "staging-xcm-executor" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "environmental", - "frame-benchmarking 28.0.0", - "frame-support 28.0.0", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 23.0.0", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", - "staging-xcm 7.0.0", -] - -[[package]] -name = "staging-xcm-executor" -version = "8.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b5c5f2a1d610c5e20e5fae2680c9a28380f305afafeed62f341bfbce57b79a" -dependencies = [ - "environmental", - "frame-benchmarking 29.0.0", - "frame-support 29.0.2", - "impl-trait-for-tuples", - "log", - "parity-scale-codec", - "scale-info", - "sp-arithmetic 24.0.0", - "sp-core 29.0.0", - "sp-io 31.0.0", - "sp-runtime 32.0.0", - "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-weights 28.0.0", - "staging-xcm 8.0.1", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "static_init" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" -dependencies = [ - "bitflags 1.3.2", - "cfg_aliases", - "libc", - "parking_lot 0.11.2", - "parking_lot_core 0.8.6", - "static_init_macro", - "winapi", -] - -[[package]] -name = "static_init_macro" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" -dependencies = [ - "cfg_aliases", - "memchr", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "storage-hub-node" -version = "0.1.0" -dependencies = [ - "anyhow", - "array-bytes", - "async-channel 1.9.0", - "async-io 2.3.4", - "async-trait", - "chrono", - "clap", - "color-print", - "cumulus-client-cli", - "cumulus-client-collator", - "cumulus-client-consensus-aura", - "cumulus-client-consensus-common", - "cumulus-client-consensus-proposer", - "cumulus-client-parachain-inherent", - "cumulus-client-service", - "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", - "cumulus-primitives-storage-weight-reclaim", - "cumulus-relay-chain-interface", - "frame-benchmarking 28.0.0", - "frame-benchmarking-cli", - "frame-support 28.0.0", - "frame-system 28.0.0", - "futures", - "futures-timer", - "hex", - "jsonrpsee", - "kvdb", - "kvdb-rocksdb", - "lazy_static", - "log", - "pallet-file-system", - "pallet-file-system-runtime-api", - "pallet-payment-streams", - "pallet-payment-streams-runtime-api", - "pallet-proofs-dealer", - "pallet-proofs-dealer-runtime-api", - "pallet-storage-providers", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc", - "parity-scale-codec", - "polkadot-cli", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "sc-basic-authorship", - "sc-chain-spec", - "sc-cli", - "sc-client-api", - "sc-consensus", - "sc-consensus-aura", - "sc-consensus-manual-seal", - "sc-executor", - "sc-network", - "sc-network-sync", - "sc-offchain", - "sc-rpc", - "sc-service", - "sc-sysinfo", - "sc-telemetry", - "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", - "sc-utils", - "serde", - "serde_json", - "shc-actors-framework", - "shc-blockchain-service", - "shc-common", - "shc-file-manager", - "shc-file-transfer-service", - "shc-forest-manager", - "shc-indexer-db", - "shc-indexer-service", - "shc-rpc", - "shp-constants", - "shp-file-key-verifier", - "shp-file-metadata", - "shp-traits", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", - "sp-consensus-aura", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-keyring", - "sp-keystore 0.34.0", - "sp-runtime 31.0.1", - "sp-timestamp 26.0.0", - "sp-trie 29.0.0", - "staging-xcm 7.0.0", - "storage-hub-runtime", - "substrate-build-script-utils", - "substrate-frame-rpc-system", - "substrate-prometheus-endpoint", - "thiserror", - "tokio", -] - -[[package]] -name = "storage-hub-runtime" -version = "0.1.0" -dependencies = [ - "cumulus-pallet-aura-ext", - "cumulus-pallet-parachain-system", - "cumulus-pallet-session-benchmarking", - "cumulus-pallet-xcm", - "cumulus-pallet-xcmp-queue", - "cumulus-primitives-aura", - "cumulus-primitives-core", - "cumulus-primitives-storage-weight-reclaim", - "cumulus-primitives-utility", - "docify", - "frame-benchmarking 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "num-bigint", - "pallet-aura", - "pallet-authorship 28.0.0", - "pallet-balances 28.0.0", - "pallet-bucket-nfts", - "pallet-collator-selection", - "pallet-file-system", - "pallet-file-system-runtime-api", - "pallet-message-queue 31.0.0", - "pallet-nfts", - "pallet-parameters", - "pallet-payment-streams", - "pallet-payment-streams-runtime-api", - "pallet-proofs-dealer", - "pallet-proofs-dealer-runtime-api", - "pallet-randomness", - "pallet-session 28.0.0", - "pallet-storage-providers", - "pallet-storage-providers-runtime-api", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-xcm", - "parachains-common", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-runtime-common 7.0.0", - "scale-info", - "shp-constants", - "shp-file-key-verifier", - "shp-file-metadata", - "shp-forest-verifier", - "shp-traits", - "smallvec", - "sp-api 26.0.0", - "sp-block-builder", - "sp-consensus-aura", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-transaction-pool", - "sp-trie 29.0.0", - "sp-version 29.0.0", - "sp-weights 27.0.0", - "staging-parachain-info", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "substrate-wasm-builder", - "xcm-fee-payment-runtime-api", -] - -[[package]] -name = "str0m" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" -dependencies = [ - "combine", - "crc", - "fastrand 2.1.0", - "hmac 0.12.1", - "once_cell", - "openssl", - "openssl-sys", - "sctp-proto", - "serde", - "sha-1 0.10.1", - "thiserror", - "tracing", -] - -[[package]] -name = "str0m" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" -dependencies = [ - "combine", - "crc", - "fastrand 2.1.0", - "hmac 0.12.1", - "once_cell", - "openssl", - "openssl-sys", - "sctp-proto", - "serde", - "sha-1 0.10.1", - "thiserror", - "tracing", -] - -[[package]] -name = "stringprep" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", - "unicode-properties", -] - -[[package]] -name = "strobe-rs" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d" -dependencies = [ - "bitflags 1.3.2", - "byteorder", - "keccak", - "subtle 2.6.1", - "zeroize", -] - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.75", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" -dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", - "schnorrkel 0.11.4", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.7" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.12.2", - "schnorrkel 0.11.4", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "substrate-bip39" -version = "0.4.7" -source = "git+https://github.com/paritytech/polkadot-sdk.git#b2ec017c0e5e49f3cbf782a5255bb0f9e88bd6c1" ->>>>>>> main -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.12.2", - "schnorrkel 0.11.4", - "sha2 0.10.8", - "zeroize", -] - -[[package]] -name = "substrate-build-script-utils" -version = "11.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main - -[[package]] -name = "substrate-frame-rpc-system" -version = "28.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-system-rpc-runtime-api", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-rpc-api", - "sc-transaction-pool-api", - "sp-api 26.0.0", - "sp-block-builder", - "sp-blockchain", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", -] - -[[package]] -name = "substrate-prometheus-endpoint" -version = "0.17.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "hyper", - "log", - "prometheus", - "thiserror", - "tokio", -] - -[[package]] -name = "substrate-state-trie-migration-rpc" -version = "27.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "jsonrpsee", - "parity-scale-codec", - "sc-client-api", - "sc-rpc-api", - "serde", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-runtime 31.0.1", - "sp-state-machine 0.35.0", - "sp-trie 29.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "trie-db 0.29.1", -] - -[[package]] -name = "substrate-wasm-builder" -version = "17.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -dependencies = [ - "array-bytes", -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" -dependencies = [ - "array-bytes 6.2.3", ->>>>>>> main - "build-helper", - "cargo_metadata", - "console", - "filetime", - "frame-metadata", - "merkleized-metadata", - "parity-scale-codec", - "parity-wasm", - "polkavm-linker", - "sc-executor", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-io 30.0.0", - "sp-maybe-compressed-blob", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-io 30.0.0", - "sp-maybe-compressed-blob", - "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-version 29.0.0", - "strum 0.26.3", - "tempfile", - "toml 0.8.19", - "walkdir", - "wasm-opt", -] - -[[package]] -name = "subtle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "subtle-ng" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "target-lexicon" -version = "0.12.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - -[[package]] -name = "tempfile" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" -dependencies = [ - "cfg-if", - "fastrand 2.1.0", - "once_cell", - "rustix 0.38.34", - "windows-sys 0.59.0", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal_size" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" -dependencies = [ - "rustix 0.38.34", - "windows-sys 0.48.0", -] - -[[package]] -name = "termtree" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" - -[[package]] -name = "thiserror" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-core" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" -dependencies = [ - "thiserror-core-impl", -] - -[[package]] -name = "thiserror-core-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "thousands" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "thrift" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" -dependencies = [ - "byteorder", - "integer-encoding", - "log", - "ordered-float", - "threadpool", -] - -[[package]] -name = "tikv-jemalloc-ctl" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619bfed27d807b54f7f776b9430d4f8060e66ee138a28632ca898584d462c31c" -dependencies = [ - "libc", - "paste", - "tikv-jemalloc-sys", -] - -[[package]] -name = "tikv-jemalloc-sys" -version = "0.5.4+5.3.0-patched" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.39.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot 0.12.3", - "pin-project-lite 0.2.14", - "signal-hook-registry", - "socket2 0.5.7", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "tokio-postgres" -version = "0.7.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" -dependencies = [ - "async-trait", - "byteorder", - "bytes", - "fallible-iterator 0.2.0", - "futures-channel", - "futures-util", - "log", - "parking_lot 0.12.3", - "percent-encoding", - "phf", - "pin-project-lite 0.2.14", - "postgres-protocol", - "postgres-types", - "rand 0.8.5", - "socket2 0.5.7", - "tokio", - "tokio-util", - "whoami", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", - "rustls-pki-types", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" -dependencies = [ - "futures-core", - "pin-project-lite 0.2.14", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite", -] - -[[package]] -name = "tokio-util" -version = "0.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite 0.2.14", - "tokio", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.20", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" -dependencies = [ - "indexmap 2.4.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" -dependencies = [ - "indexmap 2.4.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite 0.2.14", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" -dependencies = [ - "bitflags 2.6.0", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite 0.2.14", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite 0.2.14", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-gum" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "coarsetime", - "polkadot-primitives 7.0.0", - "tracing", - "tracing-gum-proc-macro", -] - -[[package]] -name = "tracing-gum-proc-macro" -version = "5.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "expander", - "proc-macro-crate 3.1.0", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "tracing-log" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "ansi_term", - "chrono", - "lazy_static", - "matchers 0.0.1", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log 0.1.4", - "tracing-serde", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers 0.1.0", - "nu-ansi-term", - "once_cell", - "parking_lot 0.12.3", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "time", - "tracing", - "tracing-core", - "tracing-log 0.2.0", -] - -[[package]] -name = "trie-db" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" -dependencies = [ - "hash-db", - "hashbrown 0.13.2", - "log", - "rustc-hex", - "smallvec", -] - -[[package]] -name = "trie-db" -version = "0.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" -dependencies = [ - "hash-db", - "hashbrown 0.13.2", - "log", - "rustc-hex", - "smallvec", -] - -[[package]] -name = "trie-db" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" -dependencies = [ - "hash-db", - "log", - "rustc-hex", - "smallvec", -] - -[[package]] -name = "trie-root" -version = "0.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" -dependencies = [ - "hash-db", -] - -[[package]] -name = "trust-dns-proto" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.5.1", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.2.3", - "ipnet", - "lazy_static", - "rand 0.8.5", - "smallvec", - "socket2 0.4.10", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-proto" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner 0.6.1", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand 0.8.5", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lazy_static", - "lru-cache", - "parking_lot 0.12.3", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto 0.22.0", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot 0.12.3", - "rand 0.8.5", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto 0.23.2", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tt-call" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" - -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror", - "url", - "utf-8", -] - -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "digest 0.10.7", - "rand 0.8.5", - "static_assertions", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "ucd-trie" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-properties" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ea75f83c0137a9b98608359a5f1af8144876eb67bcb1ce837368e906a9f524" - -[[package]] -name = "unicode-width" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" - -[[package]] -name = "unicode-xid" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" - -[[package]] -name = "universal-hash" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" -dependencies = [ - "crypto-common", - "subtle 2.6.1", -] - -[[package]] -name = "unsigned-varint" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" -dependencies = [ - "asynchronous-codec", - "bytes", - "futures-io", - "futures-util", - "tokio-util", -] - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" -dependencies = [ - "form_urlencoded", - "idna 0.5.0", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "w3f-bls" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" -dependencies = [ - "ark-bls12-377", - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-serialize-derive", - "arrayref", - "constcat", - "digest 0.10.7", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "sha2 0.10.8", - "sha3", - "thiserror", - "zeroize", -] - -[[package]] -name = "waker-fn" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" - -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasite" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" - -[[package]] -name = "wasix" -version = "0.12.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" -dependencies = [ - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.75", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" - -[[package]] -name = "wasm-instrument" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" -dependencies = [ - "parity-wasm", -] - -[[package]] -name = "wasm-opt" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" -dependencies = [ - "anyhow", - "libc", - "strum 0.24.1", - "strum_macros 0.24.3", - "tempfile", - "thiserror", - "wasm-opt-cxx-sys", - "wasm-opt-sys", -] - -[[package]] -name = "wasm-opt-cxx-sys" -version = "0.116.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" -dependencies = [ - "anyhow", - "cxx", - "cxx-build", - "wasm-opt-sys", -] - -[[package]] -name = "wasm-opt-sys" -version = "0.116.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" -dependencies = [ - "anyhow", - "cc", - "cxx", - "cxx-build", -] - -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" -dependencies = [ - "futures", - "js-sys", - "parking_lot 0.11.2", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmi" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" -dependencies = [ - "smallvec", - "spin 0.9.8", - "wasmi_arena", - "wasmi_core", - "wasmparser-nostd", -] - -[[package]] -name = "wasmi_arena" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" - -[[package]] -name = "wasmi_core" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" -dependencies = [ - "downcast-rs", - "libm", - "num-traits", - "paste", -] - -[[package]] -name = "wasmparser" -version = "0.102.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" -dependencies = [ - "indexmap 1.9.3", - "url", -] - -[[package]] -name = "wasmparser-nostd" -version = "0.100.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" -dependencies = [ - "indexmap-nostd", -] - -[[package]] -name = "wasmtime" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" -dependencies = [ - "anyhow", - "bincode", - "cfg-if", - "indexmap 1.9.3", - "libc", - "log", - "object 0.30.4", - "once_cell", - "paste", - "psm", - "rayon", - "serde", - "target-lexicon", - "wasmparser", - "wasmtime-cache", - "wasmtime-cranelift", - "wasmtime-environ", - "wasmtime-jit", - "wasmtime-runtime", - "windows-sys 0.45.0", -] - -[[package]] -name = "wasmtime-asm-macros" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "wasmtime-cache" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" -dependencies = [ - "anyhow", - "base64 0.21.7", - "bincode", - "directories-next", - "file-per-thread-logger", - "log", - "rustix 0.36.17", - "serde", - "sha2 0.10.8", - "toml 0.5.11", - "windows-sys 0.45.0", - "zstd 0.11.2+zstd.1.5.2", -] - -[[package]] -name = "wasmtime-cranelift" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli 0.27.3", - "log", - "object 0.30.4", - "target-lexicon", - "thiserror", - "wasmparser", - "wasmtime-cranelift-shared", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-cranelift-shared" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-native", - "gimli 0.27.3", - "object 0.30.4", - "target-lexicon", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-environ" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" -dependencies = [ - "anyhow", - "cranelift-entity", - "gimli 0.27.3", - "indexmap 1.9.3", - "log", - "object 0.30.4", - "serde", - "target-lexicon", - "thiserror", - "wasmparser", - "wasmtime-types", -] - -[[package]] -name = "wasmtime-jit" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" -dependencies = [ - "addr2line 0.19.0", - "anyhow", - "bincode", - "cfg-if", - "cpp_demangle", - "gimli 0.27.3", - "log", - "object 0.30.4", - "rustc-demangle", - "serde", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.45.0", -] - -[[package]] -name = "wasmtime-jit-debug" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" -dependencies = [ - "object 0.30.4", - "once_cell", - "rustix 0.36.17", -] - -[[package]] -name = "wasmtime-jit-icache-coherence" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" -dependencies = [ - "cfg-if", - "libc", - "windows-sys 0.45.0", -] - -[[package]] -name = "wasmtime-runtime" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" -dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap 1.9.3", - "libc", - "log", - "mach", - "memfd", - "memoffset", - "paste", - "rand 0.8.5", - "rustix 0.36.17", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-jit-debug", - "windows-sys 0.45.0", -] - -[[package]] -name = "wasmtime-types" -version = "8.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" -dependencies = [ - "cranelift-entity", - "serde", - "thiserror", - "wasmparser", -] - -[[package]] -name = "web-sys" -version = "0.3.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - -[[package]] -name = "westend-runtime" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "binary-merkle-tree", - "bitvec", - "frame-benchmarking 28.0.0", - "frame-election-provider-support 28.0.0", - "frame-executive", - "frame-metadata-hash-extension", - "frame-support 28.0.0", - "frame-system 28.0.0", - "frame-system-benchmarking", - "frame-system-rpc-runtime-api", - "frame-try-runtime", - "hex-literal", - "log", - "pallet-asset-rate 7.0.0", - "pallet-authority-discovery 28.0.0", - "pallet-authorship 28.0.0", - "pallet-babe 28.0.0", - "pallet-bags-list", - "pallet-balances 28.0.0", - "pallet-beefy", - "pallet-beefy-mmr", - "pallet-collective", - "pallet-conviction-voting", - "pallet-delegated-staking", - "pallet-democracy", - "pallet-election-provider-multi-phase 27.0.0", - "pallet-election-provider-support-benchmarking 27.0.0", - "pallet-elections-phragmen", - "pallet-fast-unstake 27.0.0", - "pallet-grandpa", -<<<<<<< HEAD - "pallet-identity 29.0.0", -======= - "pallet-identity 28.0.0", ->>>>>>> main - "pallet-indices", - "pallet-membership", - "pallet-message-queue 31.0.0", - "pallet-mmr", - "pallet-multisig", - "pallet-nomination-pools", - "pallet-nomination-pools-benchmarking", - "pallet-nomination-pools-runtime-api", - "pallet-offences", - "pallet-offences-benchmarking", - "pallet-preimage", - "pallet-proxy", - "pallet-recovery", - "pallet-referenda", - "pallet-root-testing", - "pallet-scheduler", - "pallet-session 28.0.0", - "pallet-session-benchmarking", - "pallet-society", - "pallet-staking 28.0.0", - "pallet-staking-reward-curve", - "pallet-staking-runtime-api", - "pallet-state-trie-migration", - "pallet-sudo", - "pallet-timestamp 27.0.0", - "pallet-transaction-payment 28.0.0", - "pallet-transaction-payment-rpc-runtime-api", - "pallet-treasury 27.0.0", - "pallet-utility", - "pallet-vesting 28.0.0", - "pallet-whitelist", - "pallet-xcm", - "pallet-xcm-benchmarks", - "parity-scale-codec", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "polkadot-runtime-parachains 7.0.0", - "rustc-hex", - "scale-info", - "serde", - "serde_derive", - "smallvec", - "sp-api 26.0.0", - "sp-application-crypto 30.0.0", - "sp-arithmetic 23.0.0", - "sp-authority-discovery 26.0.0", - "sp-block-builder", - "sp-consensus-babe 0.32.0", - "sp-consensus-beefy", -<<<<<<< HEAD - "sp-core 28.0.0", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-inherents 26.0.0", - "sp-io 30.0.0", - "sp-mmr-primitives", - "sp-npos-elections 26.0.0", - "sp-offchain", - "sp-runtime 31.0.1", - "sp-session 27.0.0", - "sp-staking 26.0.0", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", - "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-transaction-pool", - "sp-version 29.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", - "substrate-wasm-builder", - "westend-runtime-constants", - "xcm-fee-payment-runtime-api", -] - -[[package]] -name = "westend-runtime-constants" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-common 7.0.0", - "smallvec", -<<<<<<< HEAD - "sp-core 28.0.0", -======= - "sp-core 28.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-runtime 31.0.1", - "sp-weights 27.0.0", - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", -] - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.34", -] - -[[package]] -name = "whoami" -version = "1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" -dependencies = [ - "redox_syscall 0.5.3", - "wasite", - "web-sys", -] - -[[package]] -name = "wide" -version = "0.7.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690" -dependencies = [ - "bytemuck", - "safe_arch", -] - -[[package]] -name = "widestring" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" -dependencies = [ - "windows-core 0.51.1", - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-core" -version = "0.51.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "x25519-dalek" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" -dependencies = [ - "curve25519-dalek 3.2.0", - "rand_core 0.5.1", - "zeroize", -] - -[[package]] -name = "x25519-dalek" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" -dependencies = [ - "curve25519-dalek 4.1.3", - "rand_core 0.6.4", - "serde", - "zeroize", -] - -[[package]] -name = "x509-parser" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" -dependencies = [ - "asn1-rs", - "base64 0.13.1", - "data-encoding", - "der-parser", - "lazy_static", - "nom", - "oid-registry", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "x509-parser" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" -dependencies = [ - "asn1-rs", - "data-encoding", - "der-parser", - "lazy_static", - "nom", - "oid-registry", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "xcm-fee-payment-runtime-api" -version = "0.1.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "parity-scale-codec", - "scale-info", - "sp-api 26.0.0", - "sp-runtime 31.0.1", -<<<<<<< HEAD - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "sp-weights 27.0.0", - "staging-xcm 7.0.0", -] - -[[package]] -name = "xcm-procedural" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "xcm-procedural" -version = "8.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4717a97970a9cda70d7db53cf50d2615c2f6f6b7c857445325b4a39ea7aa2cd" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "xcm-simulator" -version = "7.0.0" -<<<<<<< HEAD -source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" -======= -source = "git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0#8c8edacf8942298c3807a2e192860da9e7e4996a" ->>>>>>> main -dependencies = [ - "frame-support 28.0.0", - "frame-system 28.0.0", - "parity-scale-codec", - "paste", - "polkadot-core-primitives 7.0.0", - "polkadot-parachain-primitives 6.0.0", - "polkadot-primitives 7.0.0", - "polkadot-runtime-parachains 7.0.0", -<<<<<<< HEAD - "scale-info", - "sp-io 30.0.0", - "sp-runtime 31.0.1", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", -======= - "sp-io 30.0.0", - "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?branch=release-polkadot-v1.11.0)", ->>>>>>> main - "staging-xcm 7.0.0", - "staging-xcm-builder 7.0.0", - "staging-xcm-executor 7.0.0", -] - -[[package]] -name = "yamux" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" -dependencies = [ - "futures", - "log", - "nohash-hasher", - "parking_lot 0.12.3", - "rand 0.8.5", - "static_assertions", -] - -[[package]] -name = "yasna" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" -dependencies = [ - "time", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" -dependencies = [ - "zstd-safe 6.0.6", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -] +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.3", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli 0.31.1", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array 0.14.7", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" +dependencies = [ + "aead", + "aes", + "cipher 0.4.4", + "ctr", + "ghash", + "subtle 2.6.1", +] + +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "getrandom 0.2.15", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "always-assert" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "aquamarine" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "ark-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bls12-381-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bw6-761" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-bw6-761-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" +dependencies = [ + "ark-bw6-761", + "ark-ec", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ed-on-bls12-377" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" +dependencies = [ + "ark-bls12-377", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-377-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-ed-on-bls12-381-bandersnatch-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" +dependencies = [ + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-models-ext", + "ark-std", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-models-ext" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-scale" +version = "0.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "ark-secret-scalar" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", + "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "digest 0.10.7", + "getrandom_or_panic", + "zeroize", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "563084372d89271122bd743ef0a608179726f5fad0566008ba55bd0f756489b8" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "ark-transcript" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "digest 0.10.7", + "rand_core 0.6.4", + "sha3", +] + +[[package]] +name = "array-bytes" +version = "6.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "assert_matches" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" + +[[package]] +name = "async-channel" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" +dependencies = [ + "concurrent-queue", + "event-listener 2.5.3", + "futures-core", +] + +[[package]] +name = "async-channel" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +dependencies = [ + "concurrent-queue", + "event-listener-strategy", + "futures-core", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "async-executor" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec" +dependencies = [ + "async-task", + "concurrent-queue", + "fastrand 2.1.1", + "futures-lite 2.3.0", + "slab", +] + +[[package]] +name = "async-fs" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "279cf904654eeebfa37ac9bb1598880884924aab82e290aa65c9e77a0e142e06" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-io" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" +dependencies = [ + "async-lock 2.8.0", + "autocfg", + "cfg-if", + "concurrent-queue", + "futures-lite 1.13.0", + "log", + "parking", + "polling 2.8.0", + "rustix 0.37.27", + "slab", + "socket2 0.4.10", + "waker-fn", +] + +[[package]] +name = "async-io" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8" +dependencies = [ + "async-lock 3.4.0", + "cfg-if", + "concurrent-queue", + "futures-io", + "futures-lite 2.3.0", + "parking", + "polling 3.7.3", + "rustix 0.38.37", + "slab", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-lock" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" +dependencies = [ + "event-listener 2.5.3", +] + +[[package]] +name = "async-lock" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +dependencies = [ + "event-listener 5.3.1", + "event-listener-strategy", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "async-net" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0434b1ed18ce1cf5769b8ac540e33f01fa9471058b5e89da9e06f3c882a8c12f" +dependencies = [ + "async-io 1.13.0", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "async-process" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" +dependencies = [ + "async-io 1.13.0", + "async-lock 2.8.0", + "async-signal", + "blocking", + "cfg-if", + "event-listener 3.1.0", + "futures-lite 1.13.0", + "rustix 0.38.37", + "windows-sys 0.48.0", +] + +[[package]] +name = "async-signal" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3" +dependencies = [ + "async-io 2.3.4", + "async-lock 3.4.0", + "atomic-waker", + "cfg-if", + "futures-core", + "futures-io", + "rustix 0.38.37", + "signal-hook-registry", + "slab", + "windows-sys 0.59.0", +] + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "asynchronous-codec" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4057f2c32adbb2fc158e22fb38433c8e9bbf76b75a4732c7c0cbaf695fb65568" +dependencies = [ + "bytes", + "futures-sink", + "futures-util", + "memchr", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "atomic-take" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line 0.24.2", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.36.5", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "bandersnatch_vrfs" +version = "0.0.4" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-bls12-381", + "ark-ec", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ff", + "ark-serialize", + "ark-std", + "dleq_vrf", + "fflonk", + "merlin", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "ring 0.1.0", + "sha2 0.10.8", + "sp-ark-bls12-381", + "sp-ark-ed-on-bls12-381-bandersnatch", + "zeroize", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bb8" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b10cf871f3ff2ce56432fddc2615ac7acc3aa22ca321f8fea800846fbb32f188" +dependencies = [ + "async-trait", + "futures-util", + "parking_lot 0.12.3", + "tokio", +] + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde", +] + +[[package]] +name = "bigdecimal" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d712318a27c7150326677b321a5fa91b55f6d9034ffd67f20319e147d40cee" +dependencies = [ + "autocfg", + "libm", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "binary-merkle-tree" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "hash-db", + "log", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.65.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdf7b466f9a4903edc73f95d6d2bcd5baf8ae620638762244d3f60143643cc5" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "peeking_take_while", + "prettyplease 0.2.22", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.79", +] + +[[package]] +name = "bip39" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" +dependencies = [ + "bitcoin_hashes 0.11.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + +[[package]] +name = "bitcoin_hashes" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" + +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "serde", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94cb07b0da6a73955f8fb85d24c466778e70cda767a568229b104f0264089330" +dependencies = [ + "byte-tools", + "crypto-mac 0.7.0", + "digest 0.8.1", + "opaque-debug 0.2.3", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2-rfc" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" +dependencies = [ + "arrayvec 0.4.12", + "constant_time_eq 0.1.5", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "blake2s_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94230421e395b9920d23df13ea5d77a20e1725331f90fbbf6df6040b33f756ae" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "blake3" +version = "1.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "cc", + "cfg-if", + "constant_time_eq 0.3.1", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "blocking" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +dependencies = [ + "async-channel 2.3.1", + "async-task", + "futures-io", + "futures-lite 2.3.0", + "piper", +] + +[[package]] +name = "bounded-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" +dependencies = [ + "log", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "bounded-vec" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" +dependencies = [ + "thiserror", +] + +[[package]] +name = "bp-xcm-bridge-hub-router" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "build-helper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdce191bf3fa4995ce948c8c83b4640a1745457a149e73c6db75b4ffe36aad5f" +dependencies = [ + "semver 0.6.0", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byte-tools" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + +[[package]] +name = "bytemuck" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "c2-chacha" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" +dependencies = [ + "cipher 0.2.5", + "ppv-lite86", +] + +[[package]] +name = "camino" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812acba72f0a070b003d3697490d2b55b837230ae7c6c6497f05cc2ddbb8d938" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chacha" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf3c081b5fba1e5615640aae998e0fbd10c24cbd897ee39ed754a77601a4862" +dependencies = [ + "byteorder", + "keystream", +] + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher 0.4.4", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "cid" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" +dependencies = [ + "core2", + "multibase", + "multihash 0.17.0", + "serde", + "unsigned-varint", +] + +[[package]] +name = "cid" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd94671561e36e4e7de75f753f577edafb0e7c05d6e4547229fdf7938fbcd2c3" +dependencies = [ + "core2", + "multibase", + "multihash 0.18.1", + "serde", + "unsigned-varint", +] + +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7be5744db7978a28d9df86a214130d106a89ce49644cbc4e3f0c22c3fba30615" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5fbc17d3ef8278f55b282b2a2e75ae6f6c7d4bb70ed3d0382375104bfafdb4b" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", + "terminal_size", +] + +[[package]] +name = "clap_derive" +version = "4.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "clap_lex" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" + +[[package]] +name = "coarsetime" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13b3839cf01bb7960114be3ccf2340f541b6d0c81f8690b007b2b39f750f7e5d" +dependencies = [ + "libc", + "wasix", + "wasm-bindgen", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "color-print" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ee543c60ff3888934877a5671f45494dd27ed4ba25c6670b9a7576b7ed7a8c0" +dependencies = [ + "color-print-proc-macro", +] + +[[package]] +name = "color-print-proc-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ff1a80c5f3cb1ca7c06ffdd71b6a6dd6d8f896c42141fbd43f50ed28dcdb93" +dependencies = [ + "nom", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "comfy-table" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" +dependencies = [ + "strum 0.26.3", + "strum_macros 0.26.4", + "unicode-width", +] + +[[package]] +name = "common" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "fflonk", + "getrandom_or_panic", + "rand_core 0.6.4", +] + +[[package]] +name = "common-path" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const-random" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" +dependencies = [ + "const-random-macro", +] + +[[package]] +name = "const-random-macro" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" +dependencies = [ + "getrandom 0.2.15", + "once_cell", + "tiny-keccak", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" + +[[package]] +name = "constcat" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpu-time" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e393a7668fe1fad3075085b86c781883000b4ede868f43627b34a87c8b7ded" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "cpufeatures" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "cranelift-isle", + "gimli 0.27.3", + "hashbrown 0.13.2", + "log", + "regalloc2 0.6.1", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" + +[[package]] +name = "cranelift-entity" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40099d38061b37e505e63f89bab52199037a72b931ad4868d9089ff7268660b0" +dependencies = [ + "serde", +] + +[[package]] +name = "cranelift-frontend" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" + +[[package]] +name = "cranelift-native" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.10.5", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "crc" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +dependencies = [ + "generic-array 0.12.4", + "subtle 1.0.0", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array 0.14.7", + "subtle 2.6.1", +] + +[[package]] +name = "crypto-mac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e" +dependencies = [ + "generic-array 0.14.7", + "subtle 2.6.1", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher 0.4.4", +] + +[[package]] +name = "cumulus-client-cli" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "clap", + "parity-scale-codec", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-service", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "url", +] + +[[package]] +name = "cumulus-client-collator" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-client-consensus-common", + "cumulus-client-network", + "cumulus-primitives-core", + "futures", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sp-api 26.0.0", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-aura" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-client-collator", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-slots", + "sc-telemetry", + "schnellru", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-timestamp 26.0.0", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-common" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-client-pov-recovery", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "dyn-clone", + "futures", + "log", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-consensus", + "sc-consensus-babe", + "schnellru", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", + "sp-trie 29.0.0", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "cumulus-client-consensus-proposer" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "anyhow", + "async-trait", + "cumulus-primitives-parachain-inherent", + "sp-consensus", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "thiserror", +] + +[[package]] +name = "cumulus-client-network" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-relay-chain-interface", + "futures", + "futures-timer", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "tracing", +] + +[[package]] +name = "cumulus-client-parachain-inherent" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "cumulus-test-relay-sproof-builder", + "parity-scale-codec", + "sc-client-api", + "scale-info", + "sp-api 26.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "tracing", +] + +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures", + "futures-timer", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "sc-client-api", + "sc-consensus", + "sp-consensus", + "sp-maybe-compressed-blob", + "sp-runtime 31.0.1", + "tracing", +] + +[[package]] +name = "cumulus-client-service" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-client-cli", + "cumulus-client-collator", + "cumulus-client-consensus-common", + "cumulus-client-network", + "cumulus-client-pov-recovery", + "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", + "cumulus-relay-chain-inprocess-interface", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-minimal-node", + "futures", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", + "sc-service", + "sc-sysinfo", + "sc-telemetry", + "sc-transaction-pool", + "sc-utils", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-transaction-pool", +] + +[[package]] +name = "cumulus-pallet-aura-ext" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-pallet-parachain-system", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-aura", + "pallet-timestamp 27.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0", + "sp-consensus-aura", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "cumulus-pallet-parachain-system" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bytes", + "cumulus-pallet-parachain-system-proc-macro", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-primitives-proof-size-hostfunction", + "environmental", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "log", + "pallet-message-queue 31.0.0", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "scale-info", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "trie-db 0.29.1", +] + +[[package]] +name = "cumulus-pallet-parachain-system-proc-macro" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "cumulus-pallet-session-benchmarking" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-session 28.0.0", + "parity-scale-codec", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "cumulus-pallet-xcm" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-primitives-core", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", +] + +[[package]] +name = "cumulus-pallet-xcmp-queue" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bounded-collections", + "bp-xcm-bridge-hub-router", + "cumulus-primitives-core", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-message-queue 31.0.0", + "parity-scale-codec", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", +] + +[[package]] +name = "cumulus-primitives-aura" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "polkadot-primitives 7.0.0", + "sp-api 26.0.0", + "sp-consensus-aura", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "cumulus-primitives-core" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "staging-xcm 7.0.0", +] + +[[package]] +name = "cumulus-primitives-parachain-inherent" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "cumulus-primitives-proof-size-hostfunction" +version = "0.2.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "cumulus-primitives-storage-weight-reclaim" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", + "docify", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "cumulus-primitives-utility" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-primitives-core", + "frame-support 28.0.0", + "log", + "pallet-asset-conversion", + "parity-scale-codec", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", +] + +[[package]] +name = "cumulus-relay-chain-inprocess-interface" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "futures", + "futures-timer", + "polkadot-cli", + "polkadot-service", + "sc-cli", + "sc-client-api", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sp-api 26.0.0", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", +] + +[[package]] +name = "cumulus-relay-chain-interface" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "futures", + "jsonrpsee-core", + "parity-scale-codec", + "polkadot-overseer", + "sc-client-api", + "sp-api 26.0.0", + "sp-blockchain", + "sp-state-machine 0.35.0", + "thiserror", +] + +[[package]] +name = "cumulus-relay-chain-minimal-node" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "cumulus-relay-chain-rpc-interface", + "futures", + "parking_lot 0.12.3", + "polkadot-availability-recovery", + "polkadot-collator-protocol", + "polkadot-core-primitives 7.0.0", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-chain-api", + "polkadot-node-core-prospective-parachains", + "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "polkadot-service", + "sc-authority-discovery", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-service", + "sc-tracing", + "sc-utils", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "tokio", + "tracing", +] + +[[package]] +name = "cumulus-relay-chain-rpc-interface" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-relay-chain-interface", + "either", + "futures", + "futures-timer", + "jsonrpsee", + "parity-scale-codec", + "pin-project", + "polkadot-overseer", + "rand 0.8.5", + "sc-client-api", + "sc-rpc-api", + "sc-service", + "schnellru", + "serde", + "serde_json", + "smoldot", + "smoldot-light", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version 29.0.0", + "thiserror", + "tokio", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "cumulus-test-relay-sproof-builder" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-primitives-core", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "cxx" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ccead7d199d584d139148b04b4a368d1ec7556a1d9ea2548febb1b9d49f9a4" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77953e99f01508f89f55c494bfa867171ef3a6c8cea03d26975368f2121a5c1" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn 2.0.79", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65777e06cc48f0cb0152024c77d6cf9e4bdb4408e7b48bea993d42fa0f5b02b6" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98532a60dedaebc4848cb2cba5023337cc9ea3af16a5b062633fabfd9f18fb60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.79", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "data-encoding-macro" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "derive_more" +version = "0.99.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 2.0.79", +] + +[[package]] +name = "diesel" +version = "2.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "158fe8e2e68695bd615d7e4f3227c0727b151330d3e253b525086c348d055d5e" +dependencies = [ + "bigdecimal", + "bitflags 2.6.0", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "num-bigint", + "num-integer", + "num-traits", + "pq-sys", +] + +[[package]] +name = "diesel-async" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb799bb6f8ca6a794462125d7b8983b0c86e6c93a33a9c55934a4a5de4409d3" +dependencies = [ + "async-trait", + "bb8", + "diesel", + "futures-util", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel_derives" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f2c3de51e2ba6bf2a648285696137aaf0f5f487bcbea93972fe8a364e131a4" +dependencies = [ + "diesel_table_macro_syntax", + "dsl_auto_type", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "diesel_table_macro_syntax" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" +dependencies = [ + "syn 2.0.79", +] + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "digest" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +dependencies = [ + "generic-array 0.12.4", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle 2.6.1", +] + +[[package]] +name = "directories" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "dleq_vrf" +version = "0.0.2" +source = "git+https://github.com/w3f/ring-vrf?rev=e9782f9#e9782f938629c90f3adb3fff2358bc8d1386af3e" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-scale", + "ark-secret-scalar", + "ark-serialize", + "ark-std", + "ark-transcript 0.0.2 (git+https://github.com/w3f/ring-vrf?rev=e9782f9)", + "arrayvec 0.7.6", + "zeroize", +] + +[[package]] +name = "docify" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" +dependencies = [ + "docify_macros", +] + +[[package]] +name = "docify_macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" +dependencies = [ + "common-path", + "derive-syn-parse 0.2.0", + "once_cell", + "proc-macro2", + "quote", + "regex", + "syn 2.0.79", + "termcolor", + "toml 0.8.19", + "walkdir", +] + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dsl_auto_type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607" +dependencies = [ + "darling", + "either", + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "dtoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653" + +[[package]] +name = "dyn-clonable" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e9232f0e607a262ceb9bd5141a3dfb3e4db6994b31989bbfd845878cba59fd4" +dependencies = [ + "dyn-clonable-impl", + "dyn-clone", +] + +[[package]] +name = "dyn-clonable-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dyn-clone" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "serdect", + "signature 2.2.0", + "spki", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature 1.6.4", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "signature 2.2.0", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek 3.2.0", + "ed25519 1.5.3", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "ed25519-dalek" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +dependencies = [ + "curve25519-dalek 4.1.3", + "ed25519 2.2.3", + "rand_core 0.6.4", + "serde", + "sha2 0.10.8", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" +dependencies = [ + "curve25519-dalek 3.2.0", + "hashbrown 0.12.3", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek 4.1.3", + "ed25519 2.2.3", + "hashbrown 0.14.5", + "hex", + "rand_core 0.6.4", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array 0.14.7", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "serdect", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "enum-as-inner" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "enumflags2" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d232db7f5956f3f14313dc2f87985c58bd2c695ce124c8cdd984e08e15ac133d" +dependencies = [ + "enumflags2_derive", +] + +[[package]] +name = "enumflags2_derive" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "enumn" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "environmental" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "event-listener" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "exit-future" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e43f2f1833d64e33f15592464d6fdd70f349dda7b1a53088eb83cd94014008c5" +dependencies = [ + "futures", +] + +[[package]] +name = "expander" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2c470c71d91ecbd179935b24170459e926382eaaa86b590b78814e180d8a8e2" +dependencies = [ + "blake2 0.10.6", + "file-guard", + "fs-err", + "prettyplease 0.2.22", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fatality" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec6f82451ff7f0568c6181287189126d492b5654e30a788add08027b6363d019" +dependencies = [ + "fatality-proc-macro", + "thiserror", +] + +[[package]] +name = "fatality-proc-macro" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb42427514b063d97ce21d5199f36c0c307d981434a6be32582bc79fe5bd2303" +dependencies = [ + "expander", + "indexmap 2.6.0", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "fdlimit" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" +dependencies = [ + "libc", + "thiserror", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle 2.6.1", +] + +[[package]] +name = "fflonk" +version = "0.1.0" +source = "git+https://github.com/w3f/fflonk#1e854f35e9a65d08b11a86291405cdc95baa0a35" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "merlin", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "file-guard" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21ef72acf95ec3d7dbf61275be556299490a245f017cf084bd23b4f68cf9407c" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "file-per-thread-logger" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" +dependencies = [ + "env_logger", + "log", +] + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "finality-grandpa" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" +dependencies = [ + "either", + "futures", + "futures-timer", + "log", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.3", + "scale-info", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +dependencies = [ + "crc32fast", + "libz-sys", + "miniz_oxide", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "fork-tree" +version = "12.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "frame-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-support-procedural 23.0.0", + "frame-system 28.0.0", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "static_assertions", +] + +[[package]] +name = "frame-benchmarking" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4090659c6aaa3c4d5b6c6ec909b4b0a25dec10ad92aad5f729efa8d5bd4d806a" +dependencies = [ + "frame-support 29.0.2", + "frame-support-procedural 24.0.0", + "frame-system 29.0.0", + "linregress", + "log", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-api 27.0.1", + "sp-application-crypto 31.0.0", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-runtime-interface 25.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 20.0.0", + "static_assertions", +] + +[[package]] +name = "frame-benchmarking-cli" +version = "32.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "Inflector", + "array-bytes", + "chrono", + "clap", + "comfy-table", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "gethostname", + "handlebars", + "itertools 0.11.0", + "lazy_static", + "linked-hash-map", + "log", + "parity-scale-codec", + "rand 0.8.5", + "rand_pcg", + "sc-block-builder", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-client-db", + "sc-executor", + "sc-service", + "sc-sysinfo", + "serde", + "serde_json", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-database", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", + "thousands", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "frame-election-provider-solution-type" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "frame-election-provider-support" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-election-provider-solution-type 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "frame-election-provider-support" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87da19ee99e6473cd057ead84337d20011fe5e299c6750e88e43b8b7963b8852" +dependencies = [ + "frame-election-provider-solution-type 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "frame-support 29.0.2", + "frame-system 29.0.0", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-npos-elections 27.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "frame-executive" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "aquamarine", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-try-runtime", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "frame-metadata" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cf1549fba25a6fcac22785b61698317d958e96cac72a59102ea45b9ae64692" +dependencies = [ + "cfg-if", + "parity-scale-codec", + "scale-info", + "serde", +] + +[[package]] +name = "frame-metadata-hash-extension" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "docify", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", +] + +[[package]] +name = "frame-support" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "aquamarine", + "array-bytes", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata", + "frame-support-procedural 23.0.0", + "impl-trait-for-tuples", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "smallvec", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "static_assertions", + "tt-call", +] + +[[package]] +name = "frame-support" +version = "29.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e52c84b611d2049d9253f83a62ab0f093e4be5c42a7ef42ea5bb16d6611e32" +dependencies = [ + "aquamarine", + "array-bytes", + "bitflags 1.3.2", + "docify", + "environmental", + "frame-metadata", + "frame-support-procedural 24.0.0", + "impl-trait-for-tuples", + "k256", + "log", + "macro_magic", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "serde_json", + "smallvec", + "sp-api 27.0.1", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-genesis-builder 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-inherents 27.0.0", + "sp-io 31.0.0", + "sp-metadata-ir 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 32.0.0", + "sp-staking 27.0.0", + "sp-state-machine 0.36.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 28.0.0", + "static_assertions", + "tt-call", +] + +[[package]] +name = "frame-support-procedural" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse 0.2.0", + "expander", + "frame-support-procedural-tools 10.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "itertools 0.11.0", + "macro_magic", + "proc-macro-warning", + "proc-macro2", + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "syn 2.0.79", +] + +[[package]] +name = "frame-support-procedural" +version = "24.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf1d648c4007d421b9677b3c893256913498fff159dc2d85022cdd9cc432f3c" +dependencies = [ + "Inflector", + "cfg-expr", + "derive-syn-parse 0.1.5", + "expander", + "frame-support-procedural-tools 10.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "itertools 0.10.5", + "macro_magic", + "proc-macro-warning", + "proc-macro2", + "quote", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 2.0.79", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3363df38464c47a73eb521a4f648bfcc7537a82d70347ef8af3f73b6d019e910" +dependencies = [ + "frame-support-procedural-tools-derive 11.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "frame-support-procedural-tools" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support-procedural-tools-derive 11.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68672b9ec6fe72d259d3879dc212c5e42e977588cdac830c76f54d9f492aeb58" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "frame-support-procedural-tools-derive" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "frame-system" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cfg-if", + "docify", + "frame-support 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version 29.0.0", + "sp-weights 27.0.0", +] + +[[package]] +name = "frame-system" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bc20a793c3cec0b11165c1075fe11a255b2491f3eef8230bb3073cb296e7383" +dependencies = [ + "cfg-if", + "docify", + "frame-support 29.0.2", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-version 30.0.0", + "sp-weights 28.0.0", +] + +[[package]] +name = "frame-system-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "frame-system-rpc-runtime-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "sp-api 26.0.0", +] + +[[package]] +name = "frame-try-runtime" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "parity-scale-codec", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "fs-err" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41" +dependencies = [ + "autocfg", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fs4" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" +dependencies = [ + "rustix 0.38.37", + "windows-sys 0.48.0", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", + "num_cpus", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand 1.9.0", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite 0.2.14", + "waker-fn", +] + +[[package]] +name = "futures-lite" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +dependencies = [ + "fastrand 2.1.1", + "futures-core", + "futures-io", + "parking", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "futures-rustls" +version = "0.22.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" +dependencies = [ + "futures-io", + "rustls 0.20.9", + "webpki", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite 0.2.14", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "gethostname" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom_or_panic" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" +dependencies = [ + "rand 0.8.5", + "rand_core 0.6.4", +] + +[[package]] +name = "ghash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" +dependencies = [ + "opaque-debug 0.3.1", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +dependencies = [ + "fallible-iterator 0.2.0", + "indexmap 1.9.3", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle 2.6.1", +] + +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "handlebars" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hash-db" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" + +[[package]] +name = "hash256-std-hasher" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92c171d55b98633f4ed3860808f004099b36c1cc29c42cfc53aa8591b21efcf2" +dependencies = [ + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.11", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash 0.8.11", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" + +[[package]] +name = "hashlink" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" +dependencies = [ + "hashbrown 0.14.5", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac 0.12.1", +] + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac 0.8.0", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +dependencies = [ + "crypto-mac 0.11.0", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array 0.14.7", + "hmac 0.8.1", +] + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "http-range-header" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f" + +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite 0.2.14", + "socket2 0.5.7", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core 0.52.0", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if-addrs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cabb0019d51a643781ff15c9c8a3e5dedc365c47211270f4e8f82812fedd8f0a" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "if-watch" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" +dependencies = [ + "async-io 2.3.4", + "core-foundation", + "fnv", + "futures", + "if-addrs", + "ipnet", + "log", + "rtnetlink", + "system-configuration", + "tokio", + "windows", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "include_dir" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "923d117408f1e49d914f1a379a309cffe4f18c05cf4e3d12e613a15fc81bd0dd" +dependencies = [ + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cab85a7ed0bd5f0e76d93846e0147172bed2e2d3f859bcc33a8d9699cad1a75" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" +dependencies = [ + "equivalent", + "hashbrown 0.15.0", +] + +[[package]] +name = "indexmap-nostd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integer-encoding" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb03732005da905c88227371639bf1ad885cc712789c011c31c5fb3ab3ccf02" + +[[package]] +name = "integer-sqrt" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276ec31bcb4a9ee45f58bec6f9ec700ae4cf4f4f8f2fa7e06cb406bd5ffdd770" +dependencies = [ + "num-traits", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ip_network" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2f047c0a98b2f299aa5d6d7088443570faae494e9ae1305e48be000c9e0eb1" + +[[package]] +name = "ipconfig" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +dependencies = [ + "socket2 0.5.7", + "widestring", + "windows-sys 0.48.0", + "winreg", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is-terminal" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +dependencies = [ + "hermit-abi 0.4.0", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is_executable" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ba3d8548b8b04dafdf2f4cc6f5e379db766d0a6d9aac233ad4c9a92ea892233" +dependencies = [ + "winapi", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpsee" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" +dependencies = [ + "jsonrpsee-core", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-ws-client", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" +dependencies = [ + "futures-util", + "http", + "jsonrpsee-core", + "pin-project", + "rustls-native-certs 0.7.3", + "rustls-pki-types", + "soketto", + "thiserror", + "tokio", + "tokio-rustls 0.25.0", + "tokio-util", + "tracing", + "url", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" +dependencies = [ + "anyhow", + "async-trait", + "beef", + "futures-timer", + "futures-util", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rustc-hash", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" +dependencies = [ + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" +dependencies = [ + "anyhow", + "beef", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", + "url", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "serdect", + "sha2 0.10.8", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-hasher" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ea4653859ca2266a86419d3f592d3f22e7a854b482f99180d2498507902048" +dependencies = [ + "hash-db", + "hash256-std-hasher", + "tiny-keccak", +] + +[[package]] +name = "keystream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33070833c9ee02266356de0c43f723152bd38bd96ddf52c82b3af10c9138b28" + +[[package]] +name = "kvdb" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7d770dcb02bf6835887c3a979b5107a04ff4bbde97a5f0928d27404a155add9" +dependencies = [ + "smallvec", +] + +[[package]] +name = "kvdb-memorydb" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" +dependencies = [ + "kvdb", + "parking_lot 0.12.3", +] + +[[package]] +name = "kvdb-rocksdb" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" +dependencies = [ + "kvdb", + "num_cpus", + "parking_lot 0.12.3", + "regex", + "rocksdb", + "smallvec", +] + +[[package]] +name = "landlock" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" +dependencies = [ + "enumflags2", + "libc", + "thiserror", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.159" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libp2p" +version = "0.51.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" +dependencies = [ + "bytes", + "futures", + "futures-timer", + "getrandom 0.2.15", + "instant", + "libp2p-allow-block-list", + "libp2p-connection-limits", + "libp2p-core", + "libp2p-dns", + "libp2p-identify", + "libp2p-identity", + "libp2p-kad", + "libp2p-mdns", + "libp2p-metrics", + "libp2p-noise", + "libp2p-ping", + "libp2p-quic", + "libp2p-request-response", + "libp2p-swarm", + "libp2p-tcp", + "libp2p-wasm-ext", + "libp2p-websocket", + "libp2p-yamux", + "multiaddr", + "pin-project", +] + +[[package]] +name = "libp2p-allow-block-list" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "510daa05efbc25184458db837f6f9a5143888f1caa742426d92e1833ddd38a50" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-connection-limits" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4caa33f1d26ed664c4fe2cca81a08c8e07d4c1c04f2f4ac7655c2dd85467fda0" +dependencies = [ + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "void", +] + +[[package]] +name = "libp2p-core" +version = "0.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-identity", + "log", + "multiaddr", + "multihash 0.17.0", + "multistream-select", + "once_cell", + "parking_lot 0.12.3", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "smallvec", + "thiserror", + "unsigned-varint", + "void", +] + +[[package]] +name = "libp2p-dns" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146ff7034daae62077c415c2376b8057368042df6ab95f5432ad5e88568b1554" +dependencies = [ + "futures", + "libp2p-core", + "log", + "parking_lot 0.12.3", + "smallvec", + "trust-dns-resolver 0.22.0", +] + +[[package]] +name = "libp2p-identify" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5455f472243e63b9c497ff320ded0314254a9eb751799a39c283c6f20b793f3c" +dependencies = [ + "asynchronous-codec", + "either", + "futures", + "futures-timer", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "lru 0.10.1", + "quick-protobuf", + "quick-protobuf-codec", + "smallvec", + "thiserror", + "void", +] + +[[package]] +name = "libp2p-identity" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "276bb57e7af15d8f100d3c11cbdd32c6752b7eef4ba7a18ecf464972c07abcce" +dependencies = [ + "bs58 0.4.0", + "ed25519-dalek 2.1.1", + "log", + "multiaddr", + "multihash 0.17.0", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "zeroize", +] + +[[package]] +name = "libp2p-kad" +version = "0.43.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39d5ef876a2b2323d63c258e63c2f8e36f205fe5a11f0b3095d59635650790ff" +dependencies = [ + "arrayvec 0.7.6", + "asynchronous-codec", + "bytes", + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.8", + "smallvec", + "thiserror", + "uint", + "unsigned-varint", + "void", +] + +[[package]] +name = "libp2p-mdns" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19983e1f949f979a928f2c603de1cf180cc0dc23e4ac93a62651ccb18341460b" +dependencies = [ + "data-encoding", + "futures", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "log", + "rand 0.8.5", + "smallvec", + "socket2 0.4.10", + "tokio", + "trust-dns-proto 0.22.0", + "void", +] + +[[package]] +name = "libp2p-metrics" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a42ec91e227d7d0dafa4ce88b333cdf5f277253873ab087555c92798db2ddd46" +dependencies = [ + "libp2p-core", + "libp2p-identify", + "libp2p-kad", + "libp2p-ping", + "libp2p-swarm", + "prometheus-client", +] + +[[package]] +name = "libp2p-noise" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3673da89d29936bc6435bafc638e2f184180d554ce844db65915113f86ec5e" +dependencies = [ + "bytes", + "curve25519-dalek 3.2.0", + "futures", + "libp2p-core", + "libp2p-identity", + "log", + "once_cell", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.8", + "snow", + "static_assertions", + "thiserror", + "x25519-dalek 1.1.1", + "zeroize", +] + +[[package]] +name = "libp2p-ping" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e57759c19c28a73ef1eb3585ca410cefb72c1a709fcf6de1612a378e4219202" +dependencies = [ + "either", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-swarm", + "log", + "rand 0.8.5", + "void", +] + +[[package]] +name = "libp2p-quic" +version = "0.7.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b26abd81cd2398382a1edfe739b539775be8a90fa6914f39b2ab49571ec735" +dependencies = [ + "bytes", + "futures", + "futures-timer", + "if-watch", + "libp2p-core", + "libp2p-identity", + "libp2p-tls", + "log", + "parking_lot 0.12.3", + "quinn-proto", + "rand 0.8.5", + "rustls 0.20.9", + "thiserror", + "tokio", +] + +[[package]] +name = "libp2p-request-response" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffdb374267d42dc5ed5bc53f6e601d4a64ac5964779c6e40bb9e4f14c1e30d5" +dependencies = [ + "async-trait", + "futures", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm", + "rand 0.8.5", + "smallvec", +] + +[[package]] +name = "libp2p-swarm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903b3d592d7694e56204d211f29d31bc004be99386644ba8731fc3e3ef27b296" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-core", + "libp2p-identity", + "libp2p-swarm-derive", + "log", + "rand 0.8.5", + "smallvec", + "tokio", + "void", +] + +[[package]] +name = "libp2p-swarm-derive" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" +dependencies = [ + "heck 0.4.1", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "libp2p-tcp" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d33698596d7722d85d3ab0c86c2c322254fce1241e91208e3679b4eb3026cf" +dependencies = [ + "futures", + "futures-timer", + "if-watch", + "libc", + "libp2p-core", + "log", + "socket2 0.4.10", + "tokio", +] + +[[package]] +name = "libp2p-tls" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +dependencies = [ + "futures", + "futures-rustls", + "libp2p-core", + "libp2p-identity", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "thiserror", + "webpki", + "x509-parser 0.14.0", + "yasna", +] + +[[package]] +name = "libp2p-wasm-ext" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77dff9d32353a5887adb86c8afc1de1a94d9e8c3bc6df8b2201d7cdf5c848f43" +dependencies = [ + "futures", + "js-sys", + "libp2p-core", + "parity-send-wrapper", + "wasm-bindgen", + "wasm-bindgen-futures", +] + +[[package]] +name = "libp2p-websocket" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111273f7b3d3510524c752e8b7a5314b7f7a1fee7e68161c01a7d72cbb06db9f" +dependencies = [ + "either", + "futures", + "futures-rustls", + "libp2p-core", + "log", + "parking_lot 0.12.3", + "quicksink", + "rw-stream-sink", + "soketto", + "url", + "webpki-roots", +] + +[[package]] +name = "libp2p-yamux" +version = "0.43.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd21d950662700a385d4c6d68e2f5f54d778e97068cdd718522222ef513bda" +dependencies = [ + "futures", + "libp2p-core", + "log", + "thiserror", + "yamux", +] + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", + "redox_syscall 0.5.7", +] + +[[package]] +name = "librocksdb-sys" +version = "0.11.0+8.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3386f101bcb4bd252d8e9d2fb41ec3b0862a15a62b478c355b2982efa469e3e" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "tikv-jemalloc-sys", + "zstd-sys", +] + +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64 0.13.1", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand 0.8.5", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle 2.6.1", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libz-sys" +version = "1.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d240c6f7e1ba3a28b0249f774e6a9dd0175054b52dfbb61b16eb8505c3785c9" +dependencies = [ + "cc", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linked_hash_set" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47186c6da4d81ca383c7c47c1bfc80f4b95f4720514d860a5407aaf4233f9588" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "linregress" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4de04dcecc58d366391f9920245b85ffa684558a5ef6e7736e754347c3aea9c2" +dependencies = [ + "nalgebra", +] + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lioness" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae926706ba42c425c9457121178330d75e273df2e82e28b758faf3de3a9acb9" +dependencies = [ + "arrayref", + "blake2 0.8.1", + "chacha", + "keystream", +] + +[[package]] +name = "litep2p" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f02542ae3a94b4c4ffa37dc56388c923e286afa3bf65452e3984b50b2a2f316" +dependencies = [ + "async-trait", + "bs58 0.4.0", + "bytes", + "cid 0.10.1", + "ed25519-dalek 1.0.1", + "futures", + "futures-timer", + "hex-literal", + "indexmap 2.6.0", + "libc", + "mockall 0.12.1", + "multiaddr", + "multihash 0.17.0", + "network-interface", + "nohash-hasher", + "parking_lot 0.12.3", + "pin-project", + "prost 0.11.9", + "prost-build 0.11.9", + "quinn", + "rand 0.8.5", + "rcgen", + "ring 0.16.20", + "rustls 0.20.9", + "serde", + "sha2 0.10.8", + "simple-dns", + "smallvec", + "snow", + "socket2 0.5.7", + "static_assertions", + "str0m", + "thiserror", + "tokio", + "tokio-stream", + "tokio-tungstenite", + "tokio-util", + "tracing", + "trust-dns-resolver 0.23.2", + "uint", + "unsigned-varint", + "url", + "webpki", + "x25519-dalek 2.0.1", + "x509-parser 0.15.1", + "yasna", + "zeroize", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718e8fae447df0c7e1ba7f5189829e63fd536945c8988d61444c19039f16b670" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lru" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a83fb7698b3643a0e34f9ae6f2e8f0178c0fd42f8b59d493aa271ff3a5bf21" + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "lz4" +version = "1.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d1febb2b4a79ddd1980eede06a8f7902197960aa0383ffcfdd62fe723036725" +dependencies = [ + "lz4-sys", +] + +[[package]] +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "macro_magic" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc33f9f0351468d26fbc53d9ce00a096c8522ecb42f19b50f34f2c422f76d21d" +dependencies = [ + "macro_magic_core", + "macro_magic_macros", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "macro_magic_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1687dc887e42f352865a393acae7cf79d98fab6351cde1f58e9e057da89bf150" +dependencies = [ + "const-random", + "derive-syn-parse 0.2.0", + "macro_magic_core_macros", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "macro_magic_core_macros" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b02abfe41815b5bd98dbd4260173db2c116dda171dc0fe7838cb206333b83308" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "macro_magic_macros" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73ea28ee64b88876bf45277ed9a5817c1817df061a74f2b988971a12570e5869" +dependencies = [ + "macro_magic_core", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "matchers" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f099785f7595cc4b4553a174ce30dd7589ef93391ff414dbb67f62392b9e0ce1" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + +[[package]] +name = "matrixmultiply" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix 0.38.37", +] + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memory-db" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" +dependencies = [ + "hash-db", +] + +[[package]] +name = "merkleized-metadata" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f313fcff1d2a4bcaa2deeaa00bf7530d77d5f7bd0467a117dde2e29a75a7a17a" +dependencies = [ + "array-bytes", + "blake3", + "frame-metadata", + "parity-scale-codec", + "scale-decode", + "scale-info", +] + +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "mick-jaeger" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" +dependencies = [ + "futures", + "rand 0.8.5", + "thrift", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +dependencies = [ + "hermit-abi 0.3.9", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "mixnet" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa3eb39495d8e2e2947a1d862852c90cc6a4a8845f8b41c8829cb9fcc047f4a" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "bitflags 1.3.2", + "blake2 0.10.6", + "c2-chacha", + "curve25519-dalek 4.1.3", + "either", + "hashlink", + "lioness", + "log", + "parking_lot 0.12.3", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_distr", + "subtle 2.6.1", + "thiserror", + "zeroize", +] + +[[package]] +name = "mmr-gadget" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-offchain", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-beefy", + "sp-core 28.0.0", + "sp-mmr-primitives", + "sp-runtime 31.0.1", +] + +[[package]] +name = "mmr-rpc" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "serde", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-mmr-primitives", + "sp-runtime 31.0.1", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive 0.11.4", + "predicates 2.1.5", + "predicates-tree", +] + +[[package]] +name = "mockall" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43766c2b5203b10de348ffe19f7e54564b64f3d6018ff7648d1e2d6d3a0f0a48" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive 0.12.1", + "predicates 3.1.2", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "mockall_derive" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash 0.17.0", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive 0.8.1", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive 0.8.1", + "sha2 0.10.8", + "sha3", + "unsigned-varint", +] + +[[package]] +name = "multihash" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +dependencies = [ + "core2", + "unsigned-varint", +] + +[[package]] +name = "multihash-codetable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive 0.9.0", + "ripemd", + "serde", + "sha1", + "sha2 0.10.8", + "sha3", + "strobe-rs", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate 1.1.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure 0.12.6", +] + +[[package]] +name = "multihash-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e" +dependencies = [ + "core2", + "multihash 0.19.1", + "multihash-derive-impl", +] + +[[package]] +name = "multihash-derive-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3958713ce794e12f7c6326fac9aa274c68d74c4881dd37b3e2662b8a2046bb19" +dependencies = [ + "proc-macro-crate 2.0.0", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.79", + "synstructure 0.13.1", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "multimap" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" + +[[package]] +name = "multistream-select" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8552ab875c1313b97b8d20cb857b9fd63e2d1d6a0a1b53ce9821e575405f27a" +dependencies = [ + "bytes", + "futures", + "log", + "pin-project", + "smallvec", + "unsigned-varint", +] + +[[package]] +name = "nalgebra" +version = "0.32.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5c17de023a86f59ed79891b2e5d5a94c705dbe904a5b5c9c952ea6221b03e4" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "names" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "nanorand" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a51313c5820b0b02bd422f4b44776fbf47961755c74ce64afc73bfad10226c3" + +[[package]] +name = "netlink-packet-core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345b8ab5bd4e71a2986663e88c56856699d060e78e152e6e9d7966fcd5491297" +dependencies = [ + "anyhow", + "byteorder", + "libc", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-route" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9ea4302b9759a7a88242299225ea3688e63c85ea136371bb6cf94fd674efaab" +dependencies = [ + "anyhow", + "bitflags 1.3.2", + "byteorder", + "libc", + "netlink-packet-core", + "netlink-packet-utils", +] + +[[package]] +name = "netlink-packet-utils" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" +dependencies = [ + "anyhow", + "byteorder", + "paste", + "thiserror", +] + +[[package]] +name = "netlink-proto" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65b4b14489ab424703c092062176d52ba55485a89c076b4f9db05092b7223aa6" +dependencies = [ + "bytes", + "futures", + "log", + "netlink-packet-core", + "netlink-sys", + "thiserror", + "tokio", +] + +[[package]] +name = "netlink-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" +dependencies = [ + "bytes", + "futures", + "libc", + "log", + "tokio", +] + +[[package]] +name = "network-interface" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a43439bf756eed340bdf8feba761e2d50c7d47175d87545cd5cbe4a137c4d1" +dependencies = [ + "cc", + "libc", + "thiserror", + "winapi", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "libc", +] + +[[package]] +name = "nix" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "cfg_aliases", + "libc", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "no-std-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec 0.7.6", + "itoa", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.9", + "libc", +] + +[[package]] +name = "object" +version = "0.30.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b4680b86d9cfafba8fc491dc9b6df26b68cf40e9e6cd73909194759a63c385" +dependencies = [ + "crc32fast", + "hashbrown 0.13.2", + "indexmap 1.9.3", + "memchr", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "memchr", +] + +[[package]] +name = "object" +version = "0.36.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aedf0a2d09c573ed1d8d85b30c119153926a2b36dce0ab28322c09a117a4683e" +dependencies = [ + "memchr", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "opaque-debug" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-src" +version = "300.3.2+3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a211a18d945ef7e648cc6e0058f4c548ee46aab922ea203e0d30e966ea23647b" +dependencies = [ + "cc", +] + +[[package]] +name = "openssl-sys" +version = "0.9.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "openssl-src", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "orchestra" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" +dependencies = [ + "async-trait", + "dyn-clonable", + "futures", + "futures-timer", + "orchestra-proc-macro", + "pin-project", + "prioritized-metered-channel", + "thiserror", + "tracing", +] + +[[package]] +name = "orchestra-proc-macro" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" +dependencies = [ + "expander", + "indexmap 2.6.0", + "itertools 0.11.0", + "petgraph", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ordered-float" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3305af35278dd29f46fcdd139e0b1fbfae2153f0e5928b39b035542dd31e37b7" +dependencies = [ + "num-traits", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "pallet-asset-conversion" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-asset-rate" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-asset-rate" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "571ce57fd846911041749832b46a8c2b01f0b79ffebcd7585e3973865607036d" +dependencies = [ + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-asset-tx-payment" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-transaction-payment 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-assets" +version = "29.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-aura" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-timestamp 27.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0", + "sp-consensus-aura", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-authority-discovery" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-session 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0", + "sp-authority-discovery 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-authority-discovery" +version = "29.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd9a381c613e6538638391fb51f353fd13b16f849d0d1ac66a388326bd456f1" +dependencies = [ + "frame-support 29.0.2", + "frame-system 29.0.0", + "pallet-session 29.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 31.0.0", + "sp-authority-discovery 27.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-authorship" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-authorship" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d83773e731a1760f99684b09961ed7b92acafe335f36f08ebb8313d3b9c72e2" +dependencies = [ + "frame-support 29.0.2", + "frame-system 29.0.0", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-babe" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", + "pallet-timestamp 27.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-babe" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3f2020c52667a650d64e84a4bbb63388e25bc1c9bc872a8243d03bfcb285049" +dependencies = [ + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "pallet-authorship 29.0.0", + "pallet-session 29.0.0", + "pallet-timestamp 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 31.0.0", + "sp-consensus-babe 0.33.0", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-session 28.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-bags-list" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "aquamarine", + "docify", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-balances 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-balances" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-balances" +version = "29.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a54b5d0c7c4c3731883d6b1ac18aff44db20c3d0a3470c8861001a17afdc85" +dependencies = [ + "docify", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-beefy" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-consensus-beefy", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-beefy-mmr" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "binary-merkle-tree", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-beefy", + "pallet-mmr", + "pallet-session 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-consensus-beefy", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-bounties" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-treasury 27.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-broker" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-broker" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "574c52fd629191c374c24a18036acac008ea92142309e5dd05e7f03149a667c3" +dependencies = [ + "bitvec", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-bucket-nfts" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "num-bigint", + "pallet-balances 28.0.0", + "pallet-file-system", + "pallet-nfts", + "pallet-payment-streams", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "serde", + "shp-constants", + "shp-file-metadata", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "pallet-child-bounties" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-bounties", + "pallet-treasury 27.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-collator-selection" +version = "9.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", + "pallet-session 28.0.0", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-collective" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-conviction-voting" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "assert_matches", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-delegated-staking" +version = "1.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-democracy" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-election-provider-multi-phase" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-election-provider-support-benchmarking 27.0.0", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "strum 0.26.3", +] + +[[package]] +name = "pallet-election-provider-multi-phase" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b54d1d3fe9ae61a144d581147e699b7c3009169de0019a0f87cca0bed82681e7" +dependencies = [ + "frame-benchmarking 29.0.0", + "frame-election-provider-support 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "pallet-election-provider-support-benchmarking 28.0.0", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-npos-elections 27.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "strum 0.24.1", +] + +[[package]] +name = "pallet-election-provider-support-benchmarking" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-election-provider-support-benchmarking" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ec87816a1e32a1ab6deececa99e21e6684b111efe87b11b8298328dbbefd01" +dependencies = [ + "frame-benchmarking 29.0.0", + "frame-election-provider-support 29.0.0", + "frame-system 29.0.0", + "parity-scale-codec", + "sp-npos-elections 27.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-elections-phragmen" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-fast-unstake" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-fast-unstake" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2222607a0dba10a9d57cab5360a6549b5fda925181c3c7af481246c0964998df" +dependencies = [ + "docify", + "frame-benchmarking 29.0.0", + "frame-election-provider-support 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-file-system" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "num-bigint", + "pallet-balances 28.0.0", + "pallet-bucket-nfts", + "pallet-file-system-runtime-api", + "pallet-nfts", + "pallet-payment-streams", + "pallet-proofs-dealer", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "serde", + "shp-constants", + "shp-file-metadata", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "pallet-file-system-runtime-api" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "pallet-grandpa" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-identity" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "enumflags2", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-identity" +version = "29.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "452bba25325b7f0148eeecbde13e7c26dfb677ad46b3f160b359d7643b44c94b" +dependencies = [ + "enumflags2", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-im-online" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-authorship 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-indices" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-membership" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-message-queue" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "environmental", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", +] + +[[package]] +name = "pallet-message-queue" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ccb23dee70b184a214d729db550117a0965a69107d466d35181d60a6feede38" +dependencies = [ + "environmental", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 28.0.0", +] + +[[package]] +name = "pallet-mmr" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-mmr-primitives", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-multisig" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-nfts" +version = "22.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "enumflags2", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-nis" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-nomination-pools" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-balances 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-nomination-pools-benchmarking" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-bags-list", + "pallet-delegated-staking", + "pallet-nomination-pools", + "pallet-staking 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-nomination-pools-runtime-api" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "pallet-nomination-pools", + "parity-scale-codec", + "sp-api 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-offences" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-balances 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-offences-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", + "pallet-grandpa", + "pallet-im-online", + "pallet-offences", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-parameters" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "paste", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-payment-streams" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", + "pallet-nfts", + "pallet-payment-streams-runtime-api", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "serde", + "shp-constants", + "shp-file-metadata", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", +] + +[[package]] +name = "pallet-payment-streams-runtime-api" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-preimage" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-proofs-dealer" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", + "pallet-payment-streams", + "pallet-proofs-dealer-runtime-api", + "pallet-storage-providers", + "parity-scale-codec", + "scale-info", + "serde", + "shp-constants", + "shp-file-metadata", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "pallet-proofs-dealer-runtime-api" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-proxy" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-randomness" +version = "0.1.0" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-balances 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "shp-session-keys", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-ranked-collective" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-recovery" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-referenda" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "assert_matches", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-root-testing" +version = "4.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-scheduler" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", +] + +[[package]] +name = "pallet-session" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "log", + "pallet-timestamp 27.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "pallet-session" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7412ac59247b300feee53709f7009a23d1c6f8c70528599f48f44e102d896d03" +dependencies = [ + "frame-support 29.0.2", + "frame-system 29.0.0", + "impl-trait-for-tuples", + "log", + "pallet-timestamp 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-session 28.0.0", + "sp-staking 27.0.0", + "sp-state-machine 0.36.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 30.0.0", +] + +[[package]] +name = "pallet-session-benchmarking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", + "parity-scale-codec", + "rand 0.8.5", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-society" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "rand_chacha 0.3.1", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-staking" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-authorship 28.0.0", + "pallet-session 28.0.0", + "parity-scale-codec", + "rand_chacha 0.3.1", + "scale-info", + "serde", + "sp-application-crypto 30.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-staking" +version = "29.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061b00814eb794a40df4eca7972a7c67b26473cd85cc7c54f5816ae49ad6e11b" +dependencies = [ + "frame-benchmarking 29.0.0", + "frame-election-provider-support 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "pallet-authorship 29.0.0", + "pallet-session 29.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-application-crypto 31.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-staking-reward-curve" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "pallet-staking-reward-fn" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "log", + "sp-arithmetic 23.0.0", +] + +[[package]] +name = "pallet-staking-reward-fn" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "505d45e08bad052f55fb51f00a6b6244d23ee46ffdc8091f6cddf4e3a880319d" +dependencies = [ + "log", + "sp-arithmetic 24.0.0", +] + +[[package]] +name = "pallet-staking-runtime-api" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "sp-api 26.0.0", + "sp-staking 26.0.0", +] + +[[package]] +name = "pallet-state-trie-migration" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-storage-providers" +version = "0.1.0" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "pallet-balances 28.0.0", + "pallet-payment-streams", + "pallet-proofs-dealer", + "pallet-storage-providers-runtime-api", + "parity-scale-codec", + "scale-info", + "serde", + "shp-constants", + "shp-file-metadata", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "pallet-storage-providers-runtime-api" +version = "0.1.0" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "pallet-sudo" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-timestamp" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-timestamp 26.0.0", +] + +[[package]] +name = "pallet-timestamp" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b8810ddfb254c7fb8cd7698229cce513d309a43ff117b38798dae6120f477b" +dependencies = [ + "docify", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-inherents 27.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 20.0.0", + "sp-timestamp 27.0.0", +] + +[[package]] +name = "pallet-tips" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-treasury 27.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-transaction-payment" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-transaction-payment" +version = "29.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5ba71f06f09e955b80dc313c333be3f8d9e8505b051558e0b7af4806b13310" +dependencies = [ + "frame-support 29.0.2", + "frame-system 29.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-transaction-payment-rpc" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "pallet-transaction-payment-rpc-runtime-api", + "parity-scale-codec", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", +] + +[[package]] +name = "pallet-transaction-payment-rpc-runtime-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "pallet-transaction-payment 28.0.0", + "parity-scale-codec", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", +] + +[[package]] +name = "pallet-treasury" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "pallet-balances 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-treasury" +version = "28.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eca44990d0d759213744f2d1f6fe1fadec1079a3e4e4da40556d6b4e42abbcd" +dependencies = [ + "docify", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "impl-trait-for-tuples", + "pallet-balances 29.0.2", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-uniques" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-utility" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-vesting" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-vesting" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4525f3038cdf078fea39d913c563ca626f09a615e7724f0c9eac97743c75ff44" +dependencies = [ + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "pallet-whitelist" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "pallet-xcm" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bounded-collections", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-balances 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "xcm-fee-payment-runtime-api", +] + +[[package]] +name = "pallet-xcm-benchmarks" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "parity-scale-codec", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", +] + +[[package]] +name = "parachains-common" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-support 28.0.0", + "frame-system 28.0.0", + "log", + "pallet-asset-tx-payment", + "pallet-assets", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", + "pallet-collator-selection", + "pallet-message-queue 31.0.0", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "scale-info", + "sp-consensus-aura", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-parachain-info", + "staging-xcm 7.0.0", + "staging-xcm-executor 7.0.0", + "substrate-wasm-builder", +] + +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + +[[package]] +name = "parity-db" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" +dependencies = [ + "blake2 0.10.6", + "crc32fast", + "fs2", + "hex", + "libc", + "log", + "lz4", + "memmap2 0.5.10", + "parking_lot 0.12.3", + "rand 0.8.5", + "siphasher", + "snap", + "winapi", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec 0.7.6", + "bitvec", + "byte-slice-cast", + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parity-send-wrapper" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa9777aa91b8ad9dd5aaa04a9b6bcb02c7f1deb952fca5a66034d5e63afc5c6f" + +[[package]] +name = "parity-wasm" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.10", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.7", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "partial_sort" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" + +[[package]] +name = "password-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle 2.6.1", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbkdf2" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +dependencies = [ + "crypto-mac 0.11.0", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "password-hash", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "pest_meta" +version = "2.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.8", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.6.0", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "piper" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +dependencies = [ + "atomic-waker", + "fastrand 2.1.1", + "futures-io", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" + +[[package]] +name = "polkadot-approval-distribution" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "futures", + "futures-timer", + "itertools 0.11.0", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "tracing-gum", +] + +[[package]] +name = "polkadot-availability-bitfield-distribution" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "always-assert", + "futures", + "futures-timer", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "tracing-gum", +] + +[[package]] +name = "polkadot-availability-distribution" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "derive_more", + "fatality", + "futures", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "sc-network", + "schnellru", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-availability-recovery" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "fatality", + "futures", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "sc-network", + "schnellru", + "thiserror", + "tokio", + "tracing-gum", +] + +[[package]] +name = "polkadot-ckb-merkle-mountain-range" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4b44320e5f7ce2c18227537a3032ae5b2c476a7e8eddba45333e1011fc31b92" +dependencies = [ + "cfg-if", + "itertools 0.10.5", +] + +[[package]] +name = "polkadot-cli" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cfg-if", + "clap", + "frame-benchmarking-cli", + "futures", + "log", + "polkadot-node-metrics", + "polkadot-node-primitives", + "polkadot-service", + "sc-cli", + "sc-executor", + "sc-service", + "sc-storage-monitor", + "sc-sysinfo", + "sc-tracing", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-maybe-compressed-blob", + "sp-runtime 31.0.1", + "substrate-build-script-utils", + "thiserror", +] + +[[package]] +name = "polkadot-collator-protocol" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "fatality", + "futures", + "futures-timer", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "thiserror", + "tokio-util", + "tracing-gum", +] + +[[package]] +name = "polkadot-core-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "polkadot-core-primitives" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6a08e4e014c853b252ecbbe3ccd67b2d33d78e46988d309b8cccf4ac06e25ef" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-dispute-distribution" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "derive_more", + "fatality", + "futures", + "futures-timer", + "indexmap 2.6.0", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "sc-network", + "schnellru", + "sp-application-crypto 30.0.0", + "sp-keystore 0.34.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-erasure-coding" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", + "reed-solomon-novelpoly", + "sp-core 28.0.0", + "sp-trie 29.0.0", + "thiserror", +] + +[[package]] +name = "polkadot-gossip-support" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "futures-timer", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "rand_chacha 0.3.1", + "sc-network", + "sc-network-common", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "tracing-gum", +] + +[[package]] +name = "polkadot-network-bridge" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "always-assert", + "async-trait", + "bytes", + "fatality", + "futures", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sc-network", + "sp-consensus", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-collation-generation" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "sp-core 28.0.0", + "sp-maybe-compressed-blob", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-approval-voting" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "derive_more", + "futures", + "futures-timer", + "itertools 0.11.0", + "kvdb", + "merlin", + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sc-keystore", + "schnellru", + "schnorrkel 0.11.4", + "sp-application-crypto 30.0.0", + "sp-consensus", + "sp-consensus-slots 0.32.0", + "sp-runtime 31.0.1", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-av-store" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "futures", + "futures-timer", + "kvdb", + "parity-scale-codec", + "polkadot-erasure-coding", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sp-consensus", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-backing" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "fatality", + "futures", + "polkadot-erasure-coding", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "polkadot-statement-table", + "schnellru", + "sp-keystore 0.34.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-bitfield-signing" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "sp-keystore 0.34.0", + "thiserror", + "tracing-gum", + "wasm-timer", +] + +[[package]] +name = "polkadot-node-core-candidate-validation" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "parity-scale-codec", + "polkadot-node-core-pvf", + "polkadot-node-metrics", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "sp-maybe-compressed-blob", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-chain-api" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "polkadot-node-metrics", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "sc-client-api", + "sc-consensus-babe", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-chain-selection" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "futures-timer", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-dispute-coordinator" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "fatality", + "futures", + "kvdb", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "sc-keystore", + "schnellru", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-parachains-inherent" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "polkadot-node-subsystem", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sp-blockchain", + "sp-inherents 26.0.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-prospective-parachains" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "fatality", + "futures", + "parity-scale-codec", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-provisioner" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "fatality", + "futures", + "futures-timer", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "schnellru", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "always-assert", + "array-bytes", + "blake3", + "cfg-if", + "futures", + "futures-timer", + "parity-scale-codec", + "pin-project", + "polkadot-core-primitives 7.0.0", + "polkadot-node-core-pvf-common", + "polkadot-node-metrics", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "slotmap", + "sp-core 28.0.0", + "tempfile", + "thiserror", + "tokio", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf-checker" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "sp-keystore 0.34.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-pvf-common" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cpu-time", + "futures", + "landlock", + "libc", + "nix 0.28.0", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "sc-executor", + "sc-executor-common", + "sc-executor-wasmtime", + "seccompiler", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-core-runtime-api" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "polkadot-node-metrics", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-primitives 7.0.0", + "schnellru", + "sp-consensus-babe 0.32.0", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-jaeger" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "lazy_static", + "log", + "mick-jaeger", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", + "sc-network", + "sc-network-types", + "sp-core 28.0.0", + "thiserror", + "tokio", +] + +[[package]] +name = "polkadot-node-metrics" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bs58 0.5.1", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "prioritized-metered-channel", + "sc-cli", + "sc-service", + "sc-tracing", + "substrate-prometheus-endpoint", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-network-protocol" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-channel 1.9.0", + "async-trait", + "bitvec", + "derive_more", + "fatality", + "futures", + "hex", + "parity-scale-codec", + "polkadot-node-jaeger", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", + "rand 0.8.5", + "sc-authority-discovery", + "sc-network", + "sc-network-types", + "sp-runtime 31.0.1", + "strum 0.26.3", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-node-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "bounded-vec", + "futures", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "schnorrkel 0.11.4", + "serde", + "sp-application-crypto 30.0.0", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-maybe-compressed-blob", + "sp-runtime 31.0.1", + "thiserror", + "zstd 0.12.4", +] + +[[package]] +name = "polkadot-node-subsystem" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "polkadot-node-jaeger", + "polkadot-node-subsystem-types", + "polkadot-overseer", +] + +[[package]] +name = "polkadot-node-subsystem-types" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "bitvec", + "derive_more", + "fatality", + "futures", + "orchestra", + "polkadot-node-jaeger", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-primitives 7.0.0", + "polkadot-statement-table", + "sc-client-api", + "sc-network", + "sc-network-types", + "sc-transaction-pool-api", + "smallvec", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-blockchain", + "sp-consensus-babe 0.32.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "polkadot-node-subsystem-util" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "derive_more", + "fatality", + "futures", + "futures-channel", + "itertools 0.11.0", + "kvdb", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.3", + "pin-project", + "polkadot-erasure-coding", + "polkadot-node-jaeger", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-overseer", + "polkadot-primitives 7.0.0", + "prioritized-metered-channel", + "rand 0.8.5", + "sc-client-api", + "schnellru", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-overseer" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "orchestra", + "parking_lot 0.12.3", + "polkadot-node-metrics", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem-types", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sp-api 26.0.0", + "sp-core 28.0.0", + "tikv-jemalloc-ctl", + "tracing-gum", +] + +[[package]] +name = "polkadot-parachain-primitives" +version = "6.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bounded-collections", + "derive_more", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", +] + +[[package]] +name = "polkadot-parachain-primitives" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248ab090959a92e61493277e33b7e85104280a4beb4cb0815137d3c8c50a07f4" +dependencies = [ + "bounded-collections", + "derive_more", + "parity-scale-codec", + "polkadot-core-primitives 8.0.0", + "scale-info", + "serde", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 28.0.0", +] + +[[package]] +name = "polkadot-primitives" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "hex-literal", + "log", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-authority-discovery 26.0.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "polkadot-primitives" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0d5f9930210cab0233d81204415c9ef4a8889cdf3e60de1435250481a2773ca" +dependencies = [ + "bitvec", + "hex-literal", + "log", + "parity-scale-codec", + "polkadot-core-primitives 8.0.0", + "polkadot-parachain-primitives 7.0.0", + "scale-info", + "serde", + "sp-api 27.0.1", + "sp-application-crypto 31.0.0", + "sp-arithmetic 24.0.0", + "sp-authority-discovery 27.0.0", + "sp-consensus-slots 0.33.0", + "sp-core 29.0.0", + "sp-inherents 27.0.0", + "sp-io 31.0.0", + "sp-keystore 0.35.0", + "sp-runtime 32.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-rpc" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "mmr-rpc", + "pallet-transaction-payment-rpc", + "polkadot-primitives 7.0.0", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", + "sc-consensus-epochs", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", + "sc-rpc", + "sc-rpc-spec-v2", + "sc-sync-state-rpc", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-consensus-beefy", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-frame-rpc-system", + "substrate-state-trie-migration-rpc", +] + +[[package]] +name = "polkadot-runtime-common" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitvec", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "libsecp256k1", + "log", + "pallet-asset-rate 7.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", + "pallet-broker 0.6.0", + "pallet-election-provider-multi-phase 27.0.0", + "pallet-fast-unstake 27.0.0", + "pallet-identity 29.0.0", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", + "pallet-staking-reward-fn 19.0.0", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-treasury 27.0.0", + "pallet-vesting 28.0.0", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "slot-range-helper 7.0.0", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-npos-elections 26.0.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-common" +version = "8.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12a70422ca43d30457e2d9502a5e4af35e20fa2ff3f7cd46e0d2997c784f2665" +dependencies = [ + "bitvec", + "frame-benchmarking 29.0.0", + "frame-election-provider-support 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "impl-trait-for-tuples", + "libsecp256k1", + "log", + "pallet-asset-rate 8.0.0", + "pallet-authorship 29.0.0", + "pallet-balances 29.0.2", + "pallet-broker 0.7.2", + "pallet-election-provider-multi-phase 28.0.0", + "pallet-fast-unstake 28.0.0", + "pallet-identity 29.0.1", + "pallet-session 29.0.0", + "pallet-staking 29.0.3", + "pallet-staking-reward-fn 20.0.0", + "pallet-timestamp 28.0.0", + "pallet-transaction-payment 29.0.2", + "pallet-treasury 28.0.1", + "pallet-vesting 29.0.0", + "parity-scale-codec", + "polkadot-primitives 8.0.1", + "polkadot-runtime-parachains 8.0.3", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "slot-range-helper 8.0.0", + "sp-api 27.0.1", + "sp-core 29.0.0", + "sp-inherents 27.0.0", + "sp-io 31.0.0", + "sp-npos-elections 27.0.0", + "sp-runtime 32.0.0", + "sp-session 28.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "staging-xcm 8.0.1", + "staging-xcm-builder 8.0.3", + "staging-xcm-executor 8.0.2", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-constants" +version = "1.0.0" +source = "git+https://github.com/polkadot-fellows/runtimes.git?tag=v1.2.3#061073f2e740bfae3a576deab05feda962eb1851" +dependencies = [ + "frame-support 29.0.2", + "polkadot-primitives 8.0.1", + "polkadot-runtime-common 8.0.3", + "smallvec", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-weights 28.0.0", + "staging-xcm-builder 8.0.3", +] + +[[package]] +name = "polkadot-runtime-metrics" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bs58 0.5.1", + "frame-benchmarking 28.0.0", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "polkadot-runtime-metrics" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3566c6fd0c21b5dd555309427c984cf506f875ee90f710acea295b478fecbe0" +dependencies = [ + "bs58 0.5.1", + "frame-benchmarking 29.0.0", + "parity-scale-codec", + "polkadot-primitives 8.0.1", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bitflags 1.3.2", + "bitvec", + "derive_more", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "log", + "pallet-authority-discovery 28.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", + "pallet-broker 0.6.0", + "pallet-message-queue 31.0.0", + "pallet-session 28.0.0", + "pallet-staking 28.0.0", + "pallet-timestamp 27.0.0", + "pallet-vesting 28.0.0", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-metrics 7.0.0", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rustc-hex", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-executor 7.0.0", + "static_assertions", +] + +[[package]] +name = "polkadot-runtime-parachains" +version = "8.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8d37cd3e014b06daf396d1483b5327782a0ebadc816423419665166b75b3e3e" +dependencies = [ + "bitflags 1.3.2", + "bitvec", + "derive_more", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "frame-system 29.0.0", + "impl-trait-for-tuples", + "log", + "pallet-authority-discovery 29.0.1", + "pallet-authorship 29.0.0", + "pallet-babe 29.0.0", + "pallet-balances 29.0.2", + "pallet-broker 0.7.2", + "pallet-message-queue 32.0.0", + "pallet-session 29.0.0", + "pallet-staking 29.0.3", + "pallet-timestamp 28.0.0", + "pallet-vesting 29.0.0", + "parity-scale-codec", + "polkadot-core-primitives 8.0.0", + "polkadot-parachain-primitives 7.0.0", + "polkadot-primitives 8.0.1", + "polkadot-runtime-metrics 8.0.0", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rustc-hex", + "scale-info", + "serde", + "sp-api 27.0.1", + "sp-application-crypto 31.0.0", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-inherents 27.0.0", + "sp-io 31.0.0", + "sp-keystore 0.35.0", + "sp-runtime 32.0.0", + "sp-session 28.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "staging-xcm 8.0.1", + "staging-xcm-executor 8.0.2", +] + +[[package]] +name = "polkadot-service" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "bitvec", + "frame-benchmarking 28.0.0", + "frame-benchmarking-cli", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-rpc-runtime-api", + "futures", + "hex-literal", + "is_executable", + "kvdb", + "kvdb-rocksdb", + "log", + "mmr-gadget", + "pallet-babe 28.0.0", + "pallet-staking 28.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.3", + "polkadot-approval-distribution", + "polkadot-availability-bitfield-distribution", + "polkadot-availability-distribution", + "polkadot-availability-recovery", + "polkadot-collator-protocol", + "polkadot-core-primitives 7.0.0", + "polkadot-dispute-distribution", + "polkadot-gossip-support", + "polkadot-network-bridge", + "polkadot-node-collation-generation", + "polkadot-node-core-approval-voting", + "polkadot-node-core-av-store", + "polkadot-node-core-backing", + "polkadot-node-core-bitfield-signing", + "polkadot-node-core-candidate-validation", + "polkadot-node-core-chain-api", + "polkadot-node-core-chain-selection", + "polkadot-node-core-dispute-coordinator", + "polkadot-node-core-parachains-inherent", + "polkadot-node-core-prospective-parachains", + "polkadot-node-core-provisioner", + "polkadot-node-core-pvf", + "polkadot-node-core-pvf-checker", + "polkadot-node-core-runtime-api", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-types", + "polkadot-node-subsystem-util", + "polkadot-overseer", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-rpc", + "polkadot-runtime-parachains 7.0.0", + "polkadot-statement-distribution", + "rococo-runtime", + "rococo-runtime-constants", + "sc-authority-discovery", + "sc-basic-authorship", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-consensus-babe", + "sc-consensus-beefy", + "sc-consensus-grandpa", + "sc-consensus-slots", + "sc-executor", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-offchain", + "sc-service", + "sc-sync-state-rpc", + "sc-sysinfo", + "sc-telemetry", + "sc-transaction-pool", + "sc-transaction-pool-api", + "schnellru", + "serde", + "serde_json", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-consensus-beefy", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-keystore 0.34.0", + "sp-mmr-primitives", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-timestamp 26.0.0", + "sp-transaction-pool", + "sp-version 29.0.0", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "substrate-prometheus-endpoint", + "thiserror", + "tracing-gum", + "westend-runtime", + "xcm-fee-payment-runtime-api", +] + +[[package]] +name = "polkadot-statement-distribution" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "arrayvec 0.7.6", + "bitvec", + "fatality", + "futures", + "futures-timer", + "indexmap 2.6.0", + "parity-scale-codec", + "polkadot-node-network-protocol", + "polkadot-node-primitives", + "polkadot-node-subsystem", + "polkadot-node-subsystem-util", + "polkadot-primitives 7.0.0", + "sp-keystore 0.34.0", + "sp-staking 26.0.0", + "thiserror", + "tracing-gum", +] + +[[package]] +name = "polkadot-statement-table" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "sp-core 28.0.0", + "tracing-gum", +] + +[[package]] +name = "polkavm" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" +dependencies = [ + "log", +] + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" +dependencies = [ + "polkavm-derive-impl-macro", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl", + "syn 2.0.79", +] + +[[package]] +name = "polkavm-linker" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" +dependencies = [ + "gimli 0.28.1", + "hashbrown 0.14.5", + "log", + "object 0.32.2", + "polkavm-common", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linux-raw" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite 0.2.14", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511" +dependencies = [ + "cfg-if", + "concurrent-queue", + "hermit-abi 0.4.0", + "pin-project-lite 0.2.14", + "rustix 0.38.37", + "tracing", + "windows-sys 0.59.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures", + "opaque-debug 0.3.1", + "universal-hash", +] + +[[package]] +name = "polyval" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug 0.3.1", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + +[[package]] +name = "postgres-protocol" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acda0ebdebc28befa84bee35e651e4c5f09073d668c7aed4cf7e23c3cda84b23" +dependencies = [ + "base64 0.22.1", + "byteorder", + "bytes", + "fallible-iterator 0.2.0", + "hmac 0.12.1", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.8", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f66ea23a2d0e5734297357705193335e0a957696f34bed2f2faefacb2fec336f" +dependencies = [ + "bytes", + "fallible-iterator 0.2.0", + "postgres-protocol", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "pq-sys" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6cc05d7ea95200187117196eee9edd0644424911821aeb28a18ce60ea0b8793" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools 0.10.5", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates" +version = "3.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e9086cc7640c29a356d1a29fd134380bee9d8f79a17410aa76e7ad295f42c97" +dependencies = [ + "anstyle", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931" + +[[package]] +name = "predicates-tree" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "prettyplease" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +dependencies = [ + "proc-macro2", + "syn 2.0.79", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "prioritized-metered-channel" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" +dependencies = [ + "coarsetime", + "crossbeam-queue", + "derive_more", + "futures", + "futures-timer", + "nanorand", + "thiserror", + "tracing", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml 0.5.11", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +dependencies = [ + "toml_edit 0.20.7", +] + +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.22", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-warning" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "proc-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static", + "memchr", + "parking_lot 0.12.3", + "thiserror", +] + +[[package]] +name = "prometheus-client" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" +dependencies = [ + "dtoa", + "itoa", + "parking_lot 0.12.3", + "prometheus-client-derive-encode", +] + +[[package]] +name = "prometheus-client-derive-encode" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", +] + +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools 0.10.5", + "lazy_static", + "log", + "multimap 0.8.3", + "petgraph", + "prettyplease 0.1.25", + "prost 0.11.9", + "prost-types 0.11.9", + "regex", + "syn 1.0.109", + "tempfile", + "which", +] + +[[package]] +name = "prost-build" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" +dependencies = [ + "bytes", + "heck 0.5.0", + "itertools 0.12.1", + "log", + "multimap 0.10.0", + "once_cell", + "petgraph", + "prettyplease 0.2.22", + "prost 0.12.6", + "prost-types 0.12.6", + "regex", + "syn 2.0.79", + "tempfile", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools 0.10.5", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost 0.11.9", +] + +[[package]] +name = "prost-types" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0" +dependencies = [ + "prost 0.12.6", +] + +[[package]] +name = "psm" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa37f80ca58604976033fae9515a8a2989fc13797d953f7c04fb8fa36a11f205" +dependencies = [ + "cc", +] + +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + +[[package]] +name = "quick-protobuf-codec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1693116345026436eb2f10b677806169c1a1260c1c60eaaffe3fb5a29ae23d8b" +dependencies = [ + "asynchronous-codec", + "bytes", + "quick-protobuf", + "thiserror", + "unsigned-varint", +] + +[[package]] +name = "quicksink" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77de3c815e5a160b1539c6592796801df2043ae35e123b46d73380cfa57af858" +dependencies = [ + "futures-core", + "futures-sink", + "pin-project-lite 0.1.12", +] + +[[package]] +name = "quinn" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e8b432585672228923edbbf64b8b12c14e1112f62e88737655b4a083dbcd78e" +dependencies = [ + "bytes", + "pin-project-lite 0.2.14", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls 0.20.9", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-proto" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring 0.16.20", + "rustc-hash", + "rustls 0.20.9", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +dependencies = [ + "libc", + "quinn-proto", + "socket2 0.4.10", + "tracing", + "windows-sys 0.42.0", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rand_distr" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" +dependencies = [ + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_pcg" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "11.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ab240315c661615f2ee9f0f2cd32d5a7343a84d5ebcccb99d46e6637565e7b0" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring 0.16.20", + "time", + "yasna", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.15", + "libredox", + "thiserror", +] + +[[package]] +name = "reed-solomon-novelpoly" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" +dependencies = [ + "derive_more", + "fs-err", + "static_init", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "reference-trie" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07d0cce9052afc45cefde7166ad8b8a165c7136de8b57634c7789f14eebed06c" +dependencies = [ + "hash-db", + "hashbrown 0.13.2", + "keccak-hasher", + "parity-scale-codec", + "paste", + "trie-db 0.27.1", + "trie-root", +] + +[[package]] +name = "regalloc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" +dependencies = [ + "fxhash", + "log", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac 0.12.1", + "subtle 2.6.1", +] + +[[package]] +name = "ring" +version = "0.1.0" +source = "git+https://github.com/w3f/ring-proof#652286c32f96beb9ce7f5793f5e2c2c923f63b73" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "ark-transcript 0.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "arrayvec 0.7.6", + "blake2 0.10.6", + "common", + "fflonk", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rocksdb" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6f170a4041d50a0ce04b0d2e14916d6ca863ea2e422689a5b694395d299ffe" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "rococo-runtime" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "binary-merkle-tree", + "bitvec", + "frame-benchmarking 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-asset-rate 7.0.0", + "pallet-authority-discovery 28.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-balances 28.0.0", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-bounties", + "pallet-child-bounties", + "pallet-collective", + "pallet-conviction-voting", + "pallet-democracy", + "pallet-elections-phragmen", + "pallet-grandpa", + "pallet-identity 29.0.0", + "pallet-indices", + "pallet-membership", + "pallet-message-queue 31.0.0", + "pallet-mmr", + "pallet-multisig", + "pallet-nis", + "pallet-offences", + "pallet-parameters", + "pallet-preimage", + "pallet-proxy", + "pallet-ranked-collective", + "pallet-recovery", + "pallet-referenda", + "pallet-root-testing", + "pallet-scheduler", + "pallet-session 28.0.0", + "pallet-society", + "pallet-staking 28.0.0", + "pallet-state-trie-migration", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-tips", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury 27.0.0", + "pallet-utility", + "pallet-vesting 28.0.0", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "rococo-runtime-constants", + "scale-info", + "serde", + "serde_derive", + "serde_json", + "smallvec", + "sp-api 26.0.0", + "sp-arithmetic 23.0.0", + "sp-authority-discovery 26.0.0", + "sp-block-builder", + "sp-consensus-babe 0.32.0", + "sp-consensus-beefy", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-mmr-primitives", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-version 29.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "static_assertions", + "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", +] + +[[package]] +name = "rococo-runtime-constants" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "smallvec", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", +] + +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + +[[package]] +name = "rpassword" +version = "7.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80472be3c897911d0137b2d2b9055faf6eeac5b14e324073d83bc17b191d7e3f" +dependencies = [ + "libc", + "rtoolbox", + "windows-sys 0.48.0", +] + +[[package]] +name = "rtnetlink" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" +dependencies = [ + "futures", + "log", + "netlink-packet-route", + "netlink-proto", + "nix 0.24.3", + "thiserror", + "tokio", +] + +[[package]] +name = "rtoolbox" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c247d24e63230cdb56463ae328478bd5eac8b8faa8c69461a77e8e323afac90e" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", +] + +[[package]] +name = "rustix" +version = "0.36.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "305efbd14fde4139eb501df5f136994bb520b033fa9fbdce287507dc23b8c7ed" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.37.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" +dependencies = [ + "bitflags 1.3.2", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.8", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustix" +version = "0.38.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "ruzstd" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3ffab8f9715a0d455df4bbb9d21e91135aab3cd3ca187af0cd0c3c3f868fdc" +dependencies = [ + "byteorder", + "thiserror-core", + "twox-hash", +] + +[[package]] +name = "rw-stream-sink" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26338f5e09bb721b85b135ea05af7767c90b52f6de4f087d4f4a3a9d64e7dc04" +dependencies = [ + "futures", + "pin-project", + "static_assertions", +] + +[[package]] +name = "ryu" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "safe_arch" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3460605018fdc9612bce72735cba0d27efbcd9904780d44c7e3a9948f96148a" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "sc-allocator" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "log", + "sp-core 28.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", +] + +[[package]] +name = "sc-authority-discovery" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "ip_network", + "libp2p", + "linked_hash_set", + "log", + "multihash 0.17.0", + "multihash-codetable", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "rand 0.8.5", + "sc-client-api", + "sc-network", + "sc-network-types", + "sp-api 26.0.0", + "sp-authority-discovery 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-basic-authorship" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-proposer-metrics", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-block-builder" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "sp-api 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", +] + +[[package]] +name = "sc-chain-spec" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "docify", + "log", + "memmap2 0.9.5", + "parity-scale-codec", + "sc-chain-spec-derive", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-telemetry", + "serde", + "serde_json", + "sp-blockchain", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sc-chain-spec-derive" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sc-cli" +version = "0.36.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "chrono", + "clap", + "fdlimit", + "futures", + "itertools 0.11.0", + "libp2p-identity", + "log", + "names", + "parity-bip39", + "parity-scale-codec", + "rand 0.8.5", + "regex", + "rpassword", + "sc-client-api", + "sc-client-db", + "sc-keystore", + "sc-mixnet", + "sc-network", + "sc-service", + "sc-telemetry", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "sp-blockchain", + "sp-core 28.0.0", + "sp-keyring", + "sp-keystore 0.34.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-version 29.0.0", + "thiserror", + "tokio", +] + +[[package]] +name = "sc-client-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "fnv", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-executor", + "sc-transaction-pool-api", + "sc-utils", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-database", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-statement-store", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-client-db" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "linked-hash-map", + "log", + "parity-db", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-state-db", + "schnellru", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-database", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", +] + +[[package]] +name = "sc-consensus" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "log", + "mockall 0.11.4", + "parking_lot 0.12.3", + "sc-client-api", + "sc-network-types", + "sc-utils", + "serde", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-aura" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "log", + "parity-scale-codec", + "sc-block-builder", + "sc-client-api", + "sc-consensus", + "sc-consensus-slots", + "sc-telemetry", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-babe" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "fork-tree", + "futures", + "log", + "num-bigint", + "num-rational", + "num-traits", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-consensus", + "sc-consensus-epochs", + "sc-consensus-slots", + "sc-telemetry", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-babe-rpc" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "jsonrpsee", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-rpc-api", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-babe 0.32.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-consensus-beefy" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "async-channel 1.9.0", + "async-trait", + "fnv", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-gossip", + "sc-network-sync", + "sc-network-types", + "sc-utils", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-beefy", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", + "wasm-timer", +] + +[[package]] +name = "sc-consensus-beefy-rpc" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-consensus-beefy", + "sc-rpc", + "serde", + "sp-application-crypto 30.0.0", + "sp-consensus-beefy", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-consensus-epochs" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sc-consensus-grandpa" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "ahash 0.8.11", + "array-bytes", + "async-trait", + "dyn-clone", + "finality-grandpa", + "fork-tree", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-sync", + "sc-network-types", + "sc-telemetry", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-grandpa-rpc" +version = "0.19.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "finality-grandpa", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus-grandpa", + "sc-rpc", + "serde", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-consensus-manual-seal" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "assert_matches", + "async-trait", + "futures", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-transaction-pool", + "sc-transaction-pool-api", + "serde", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-aura", + "sp-consensus-babe 0.32.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-slots" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sc-telemetry", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", +] + +[[package]] +name = "sc-executor" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", + "schnellru", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "tracing", +] + +[[package]] +name = "sc-executor-common" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "polkavm", + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", + "wasm-instrument", +] + +[[package]] +name = "sc-executor-polkavm" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.29.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "anyhow", + "cfg-if", + "libc", + "log", + "parking_lot 0.12.3", + "rustix 0.36.17", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "wasmtime", +] + +[[package]] +name = "sc-informant" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "ansi_term", + "futures", + "futures-timer", + "log", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sp-blockchain", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sc-keystore" +version = "25.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "parking_lot 0.12.3", + "serde_json", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "thiserror", +] + +[[package]] +name = "sc-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "arrayvec 0.7.6", + "blake2 0.10.6", + "bytes", + "futures", + "futures-timer", + "log", + "mixnet", + "multiaddr", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-network", + "sc-network-types", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-consensus", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-mixnet", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-network" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "async-channel 1.9.0", + "async-trait", + "asynchronous-codec", + "bytes", + "cid 0.9.0", + "either", + "fnv", + "futures", + "futures-timer", + "ip_network", + "libp2p", + "linked_hash_set", + "litep2p", + "log", + "mockall 0.11.4", + "once_cell", + "parity-scale-codec", + "parking_lot 0.12.3", + "partial_sort", + "pin-project", + "prost 0.12.6", + "prost-build 0.12.6", + "rand 0.8.5", + "sc-client-api", + "sc-network-common", + "sc-network-types", + "sc-utils", + "schnellru", + "serde", + "serde_json", + "smallvec", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", + "tokio-stream", + "unsigned-varint", + "void", + "wasm-timer", + "zeroize", +] + +[[package]] +name = "sc-network-common" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "bitflags 1.3.2", + "futures", + "libp2p-identity", + "parity-scale-codec", + "prost-build 0.12.6", + "sc-consensus", + "sc-network-types", + "sp-consensus", + "sp-consensus-grandpa", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sc-network-gossip" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "ahash 0.8.11", + "futures", + "futures-timer", + "libp2p", + "log", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-network-types", + "schnellru", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "tracing", +] + +[[package]] +name = "sc-network-light" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "async-channel 1.9.0", + "futures", + "log", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "sc-client-api", + "sc-network", + "sc-network-types", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-network-sync" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "async-channel 1.9.0", + "async-trait", + "fork-tree", + "futures", + "futures-timer", + "libp2p", + "log", + "mockall 0.11.4", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "sc-client-api", + "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-types", + "sc-utils", + "schnellru", + "smallvec", + "sp-arithmetic 23.0.0", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "sc-network-transactions" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "futures", + "libp2p", + "log", + "parity-scale-codec", + "sc-network", + "sc-network-common", + "sc-network-sync", + "sc-network-types", + "sc-utils", + "sp-consensus", + "sp-runtime 31.0.1", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-network-types" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bs58 0.5.1", + "ed25519-dalek 2.1.1", + "libp2p-identity", + "litep2p", + "multiaddr", + "multihash 0.17.0", + "rand 0.8.5", + "thiserror", + "zeroize", +] + +[[package]] +name = "sc-offchain" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "bytes", + "fnv", + "futures", + "futures-timer", + "hyper", + "hyper-rustls", + "libp2p", + "log", + "num_cpus", + "once_cell", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-client-api", + "sc-network", + "sc-network-common", + "sc-network-types", + "sc-transaction-pool-api", + "sc-utils", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-offchain", + "sp-runtime 31.0.1", + "threadpool", + "tracing", +] + +[[package]] +name = "sc-proposer-metrics" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "log", + "substrate-prometheus-endpoint", +] + +[[package]] +name = "sc-rpc" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-block-builder", + "sc-chain-spec", + "sc-client-api", + "sc-mixnet", + "sc-rpc-api", + "sc-tracing", + "sc-transaction-pool-api", + "sc-utils", + "serde_json", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-offchain", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-statement-store", + "sp-version 29.0.0", + "tokio", +] + +[[package]] +name = "sc-rpc-api" +version = "0.33.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec", + "sc-mixnet", + "sc-transaction-pool-api", + "scale-info", + "serde", + "serde_json", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-version 29.0.0", + "thiserror", +] + +[[package]] +name = "sc-rpc-server" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "forwarded-header-value", + "futures", + "governor", + "http", + "hyper", + "ip_network", + "jsonrpsee", + "log", + "serde_json", + "substrate-prometheus-endpoint", + "tokio", + "tower", + "tower-http", +] + +[[package]] +name = "sc-rpc-spec-v2" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "futures", + "futures-util", + "hex", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "sc-chain-spec", + "sc-client-api", + "sc-rpc", + "sc-transaction-pool-api", + "sc-utils", + "schnellru", + "serde", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-version 29.0.0", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "sc-service" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "directories", + "exit-future", + "futures", + "futures-timer", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "sc-chain-spec", + "sc-client-api", + "sc-client-db", + "sc-consensus", + "sc-executor", + "sc-informant", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-light", + "sc-network-sync", + "sc-network-transactions", + "sc-network-types", + "sc-rpc", + "sc-rpc-server", + "sc-rpc-spec-v2", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "schnellru", + "serde", + "serde_json", + "sp-api 26.0.0", + "sp-blockchain", + "sp-consensus", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-state-machine 0.35.0", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-transaction-storage-proof", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "static_init", + "substrate-prometheus-endpoint", + "tempfile", + "thiserror", + "tokio", + "tracing", + "tracing-futures", +] + +[[package]] +name = "sc-state-db" +version = "0.30.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 28.0.0", +] + +[[package]] +name = "sc-storage-monitor" +version = "0.16.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "clap", + "fs4", + "log", + "sp-core 28.0.0", + "thiserror", + "tokio", +] + +[[package]] +name = "sc-sync-state-rpc" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-chain-spec", + "sc-client-api", + "sc-consensus-babe", + "sc-consensus-epochs", + "sc-consensus-grandpa", + "serde", + "serde_json", + "sp-blockchain", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-sysinfo" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "derive_more", + "futures", + "libc", + "log", + "rand 0.8.5", + "rand_pcg", + "regex", + "sc-telemetry", + "serde", + "serde_json", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sc-telemetry" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "chrono", + "futures", + "libp2p", + "log", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "sc-network", + "sc-utils", + "serde", + "serde_json", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-tracing" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "ansi_term", + "chrono", + "is-terminal", + "lazy_static", + "libc", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "regex", + "rustc-hash", + "sc-client-api", + "sc-tracing-proc-macro", + "serde", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-rpc", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", + "tracing", + "tracing-log 0.2.0", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "sc-tracing-proc-macro" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sc-transaction-pool" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "futures-timer", + "linked-hash-map", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "sc-client-api", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-transaction-pool-api" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "log", + "parity-scale-codec", + "serde", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sc-utils" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-channel 1.9.0", + "futures", + "futures-timer", + "lazy_static", + "log", + "parking_lot 0.12.3", + "prometheus", + "sp-arithmetic 23.0.0", +] + +[[package]] +name = "scale-bits" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" +dependencies = [ + "parity-scale-codec", + "scale-type-resolver", +] + +[[package]] +name = "scale-decode" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" +dependencies = [ + "derive_more", + "parity-scale-codec", + "scale-bits", + "scale-type-resolver", + "smallvec", +] + +[[package]] +name = "scale-info" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "bitvec", + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", + "serde", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "scale-type-resolver" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" + +[[package]] +name = "schannel" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "schnellru" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" +dependencies = [ + "ahash 0.8.11", + "cfg-if", + "hashbrown 0.13.2", +] + +[[package]] +name = "schnorrkel" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +dependencies = [ + "arrayref", + "arrayvec 0.7.6", + "curve25519-dalek-ng", + "merlin", + "rand_core 0.6.4", + "sha2 0.9.9", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "schnorrkel" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" +dependencies = [ + "aead", + "arrayref", + "arrayvec 0.7.6", + "curve25519-dalek 4.1.3", + "getrandom_or_panic", + "merlin", + "rand_core 0.6.4", + "serde_bytes", + "sha2 0.10.8", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scratch" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "sctp-proto" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6220f78bb44c15f326b0596113305f6101097a18755d53727a575c97e09fb24" +dependencies = [ + "bytes", + "crc", + "fxhash", + "log", + "rand 0.8.5", + "slab", + "thiserror", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array 0.14.7", + "pkcs8", + "serdect", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "seccompiler" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "345a3e4dddf721a478089d4697b83c6c0a8f5bf16086f6c13397e4534eb6e2e5" +dependencies = [ + "libc", +] + +[[package]] +name = "secp256k1" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" +dependencies = [ + "cc", +] + +[[package]] +name = "secrecy" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bd1c54ea06cfd2f6b63219704de0b9b4f72dcc2b8fdef820be6cd799780e91e" +dependencies = [ + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3186ec9e65071a2095434b1f5bb24838d4e8e130f584c790f6033c79943537" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_bytes" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "serde_json" +version = "1.0.128" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + +[[package]] +name = "sh-xcm-simulator" +version = "0.1.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", + "cumulus-primitives-utility", + "frame-benchmarking 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "num-bigint", + "pallet-aura", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", + "pallet-bucket-nfts", + "pallet-collator-selection", + "pallet-file-system", + "pallet-file-system-runtime-api", + "pallet-message-queue 31.0.0", + "pallet-nfts", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", + "pallet-randomness", + "pallet-session 28.0.0", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-uniques", + "pallet-xcm", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-constants", + "polkadot-runtime-parachains 7.0.0", + "scale-info", + "shp-constants", + "shp-file-key-verifier", + "shp-file-metadata", + "shp-forest-verifier", + "shp-traits", + "smallvec", + "sp-api 26.0.0", + "sp-block-builder", + "sp-consensus-aura", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "sp-weights 27.0.0", + "staging-parachain-info", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "xcm-fee-payment-runtime-api", + "xcm-simulator", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.1", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", + "sha1-asm", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha1-asm" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "286acebaf8b67c1130aedffad26f594eff0c1292389158135327d2e23aed582b" +dependencies = [ + "cc", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug 0.3.1", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shc-actors-framework" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode", + "futures", + "sc-service", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "tokio", +] + +[[package]] +name = "shc-blockchain-service" +version = "0.1.0" +dependencies = [ + "anyhow", + "array-bytes", + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "futures", + "lazy_static", + "log", + "pallet-file-system", + "pallet-file-system-runtime-api", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", + "pallet-transaction-payment 28.0.0", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "rocksdb", + "sc-client-api", + "sc-network", + "sc-service", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "shc-actors-framework", + "shc-common", + "shp-file-key-verifier", + "shp-file-metadata", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "storage-hub-runtime", + "substrate-frame-rpc-system", + "tokio", +] + +[[package]] +name = "shc-common" +version = "0.1.0" +dependencies = [ + "anyhow", + "bincode", + "cumulus-client-service", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "frame-system 28.0.0", + "lazy_static", + "pallet-file-system", + "pallet-proofs-dealer", + "pallet-storage-providers", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "sc-client-api", + "sc-executor", + "sc-network", + "sc-service", + "serde", + "shp-constants", + "shp-file-key-verifier", + "shp-file-metadata", + "shp-forest-verifier", + "shp-traits", + "sp-blockchain", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "storage-hub-runtime", + "thiserror", + "trie-db 0.29.1", +] + +[[package]] +name = "shc-file-manager" +version = "0.1.0" +dependencies = [ + "bincode", + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "log", + "parity-scale-codec", + "serde_json", + "shc-common", + "shp-traits", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", + "thiserror", + "trie-db 0.29.1", +] + +[[package]] +name = "shc-file-transfer-service" +version = "0.1.0" +dependencies = [ + "anyhow", + "array-bytes", + "async-channel 1.9.0", + "async-trait", + "futures", + "parity-scale-codec", + "prost 0.12.6", + "prost-build 0.12.6", + "sc-client-api", + "sc-network", + "sc-network-types", + "sc-service", + "sc-tracing", + "sc-utils", + "shc-actors-framework", + "shc-common", + "shp-file-key-verifier", + "shp-file-metadata", + "thiserror", + "tokio", +] + +[[package]] +name = "shc-forest-manager" +version = "0.1.0" +dependencies = [ + "async-trait", + "bincode", + "hash-db", + "kvdb", + "kvdb-memorydb", + "kvdb-rocksdb", + "log", + "parity-scale-codec", + "reference-trie", + "serde", + "shc-common", + "shp-forest-verifier", + "shp-traits", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", + "thiserror", + "tokio", + "trie-db 0.29.1", +] + +[[package]] +name = "shc-indexer-db" +version = "0.1.0" +dependencies = [ + "bigdecimal", + "chrono", + "diesel", + "diesel-async", + "futures", + "log", + "serde", + "serde_json", + "thiserror", + "tokio", +] + +[[package]] +name = "shc-indexer-service" +version = "0.1.0" +dependencies = [ + "anyhow", + "array-bytes", + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", + "diesel", + "diesel-async", + "frame-support 28.0.0", + "frame-system 28.0.0", + "futures", + "lazy_static", + "log", + "pallet-bucket-nfts", + "pallet-file-system", + "pallet-file-system-runtime-api", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", + "pallet-randomness", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", + "pallet-transaction-payment 28.0.0", + "parity-scale-codec", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "sc-client-api", + "sc-network", + "sc-service", + "sc-tracing", + "sc-utils", + "serde", + "serde_json", + "shc-actors-framework", + "shc-common", + "shc-indexer-db", + "sp-api 26.0.0", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "storage-hub-runtime", + "substrate-frame-rpc-system", + "thiserror", + "tokio", +] + +[[package]] +name = "shc-rpc" +version = "0.1.0" +dependencies = [ + "array-bytes", + "jsonrpsee", + "log", + "serde", + "shc-common", + "shc-file-manager", + "shc-forest-manager", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", + "tokio", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "shp-constants" +version = "0.1.0" +dependencies = [ + "sp-core 28.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "shp-file-key-verifier" +version = "0.1.0" +dependencies = [ + "bincode", + "frame-support 28.0.0", + "num-bigint", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "serde", + "shp-file-metadata", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "trie-db 0.29.1", +] + +[[package]] +name = "shp-file-metadata" +version = "0.1.0" +dependencies = [ + "num-bigint", + "parity-scale-codec", + "scale-info", + "serde", + "shp-traits", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "shp-forest-verifier" +version = "0.1.0" +dependencies = [ + "bincode", + "frame-support 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "shp-traits", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "trie-db 0.29.1", +] + +[[package]] +name = "shp-session-keys" +version = "0.1.0" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "shp-traits" +version = "0.1.0" +dependencies = [ + "frame-support 28.0.0", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "simple-dns" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cae9a3fcdadafb6d97f4c0e007e4247b114ee0f119f650c3cbf3a8b3a1479694" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "simple-mermaid" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + +[[package]] +name = "slot-range-helper" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "enumn", + "parity-scale-codec", + "paste", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "slot-range-helper" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d40fa5e14772407fd2ccffdd5971bf055bbf46a40727c0ea96d2bb6563d17e1c" +dependencies = [ + "enumn", + "parity-scale-codec", + "paste", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "slotmap" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" +dependencies = [ + "version_check", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "smol" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13f2b548cd8447f8de0fdf1c592929f70f4fc7039a05e47404b0d096ec6987a1" +dependencies = [ + "async-channel 1.9.0", + "async-executor", + "async-fs", + "async-io 1.13.0", + "async-lock 2.8.0", + "async-net", + "async-process", + "blocking", + "futures-lite 1.13.0", +] + +[[package]] +name = "smoldot" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0bb30cf57b7b5f6109ce17c3164445e2d6f270af2cb48f6e4d31c2967c9a9f5" +dependencies = [ + "arrayvec 0.7.6", + "async-lock 2.8.0", + "atomic-take", + "base64 0.21.7", + "bip39", + "blake2-rfc", + "bs58 0.5.1", + "chacha20", + "crossbeam-queue", + "derive_more", + "ed25519-zebra 4.0.3", + "either", + "event-listener 2.5.3", + "fnv", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.5", + "hex", + "hmac 0.12.1", + "itertools 0.11.0", + "libsecp256k1", + "merlin", + "no-std-net", + "nom", + "num-bigint", + "num-rational", + "num-traits", + "pbkdf2 0.12.2", + "pin-project", + "poly1305", + "rand 0.8.5", + "rand_chacha 0.3.1", + "ruzstd", + "schnorrkel 0.10.2", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "siphasher", + "slab", + "smallvec", + "soketto", + "twox-hash", + "wasmi", + "x25519-dalek 2.0.1", + "zeroize", +] + +[[package]] +name = "smoldot-light" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" +dependencies = [ + "async-channel 1.9.0", + "async-lock 2.8.0", + "base64 0.21.7", + "blake2-rfc", + "derive_more", + "either", + "event-listener 2.5.3", + "fnv", + "futures-channel", + "futures-lite 1.13.0", + "futures-util", + "hashbrown 0.14.5", + "hex", + "itertools 0.11.0", + "log", + "lru 0.11.1", + "no-std-net", + "parking_lot 0.12.3", + "pin-project", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "siphasher", + "slab", + "smol", + "smoldot", + "zeroize", +] + +[[package]] +name = "snap" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" + +[[package]] +name = "snow" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" +dependencies = [ + "aes-gcm", + "blake2 0.10.6", + "chacha20poly1305", + "curve25519-dalek 4.1.3", + "rand_core 0.6.4", + "ring 0.17.8", + "rustc_version", + "sha2 0.10.8", + "subtle 2.6.1", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "flate2", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1 0.9.8", +] + +[[package]] +name = "sp-api" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 15.0.0", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-metadata-ir 0.6.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "thiserror", +] + +[[package]] +name = "sp-api" +version = "27.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4f8702afd77f14a32733e2b589c02694bf79d0b3a641963c508016208724d0" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro 15.0.1", + "sp-core 29.0.0", + "sp-externalities 0.26.0", + "sp-metadata-ir 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 32.0.0", + "sp-state-machine 0.36.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 30.0.0", + "sp-version 30.0.0", + "thiserror", +] + +[[package]] +name = "sp-api-proc-macro" +version = "15.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-api-proc-macro" +version = "15.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0301e2f77afb450fbf2b093f8b324c7ad88cc82e5e69bd5dc8658a1f068b2a96" +dependencies = [ + "Inflector", + "blake2 0.10.6", + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-application-crypto" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sp-application-crypto" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "547cad7a6eabb52c639ec117b3db9c6b43cf1b29a9393b18feb19e101a91833f" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-arithmetic" +version = "23.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "static_assertions", +] + +[[package]] +name = "sp-arithmetic" +version = "24.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa823ca5adc490d47dccb41d69ad482bc57a317bd341de275868378f48f131c" +dependencies = [ + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "static_assertions", +] + +[[package]] +name = "sp-ark-bls12-381" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-bls12-381-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-ark-ed-on-bls12-381-bandersnatch" +version = "0.4.2" +source = "git+https://github.com/paritytech/arkworks-substrate#caa2eed74beb885dd07c7db5f916f2281dad818f" +dependencies = [ + "ark-ed-on-bls12-381-bandersnatch-ext", + "sp-crypto-ec-utils", +] + +[[package]] +name = "sp-authority-discovery" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-authority-discovery" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c92b177c72b5d2973c36d60f6ef942d791d9fd91eae8b08c71882e4118d4fbfc" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 27.0.1", + "sp-application-crypto 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-block-builder" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "sp-api 26.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-blockchain" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "schnellru", + "sp-api 26.0.0", + "sp-consensus", + "sp-database", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "thiserror", +] + +[[package]] +name = "sp-consensus" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "futures", + "log", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "thiserror", +] + +[[package]] +name = "sp-consensus-aura" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-consensus-slots 0.32.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-consensus-slots 0.32.0", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", +] + +[[package]] +name = "sp-consensus-babe" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9be2f86a2f0ce2a78b455feb547aa27604fd76a7f7a691995cbad44e0b1b9dd" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 27.0.1", + "sp-application-crypto 31.0.0", + "sp-consensus-slots 0.33.0", + "sp-core 29.0.0", + "sp-inherents 27.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-timestamp 27.0.0", +] + +[[package]] +name = "sp-consensus-beefy" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "lazy_static", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-io 30.0.0", + "sp-keystore 0.34.0", + "sp-mmr-primitives", + "sp-runtime 31.0.1", + "strum 0.26.3", +] + +[[package]] +name = "sp-consensus-grandpa" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.32.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-timestamp 26.0.0", +] + +[[package]] +name = "sp-consensus-slots" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73a5bd1fcd84bbdc7255528c7cdb92f9357fd555f06ee553af7e340cbdab517c" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-timestamp 27.0.0", +] + +[[package]] +name = "sp-core" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "bandersnatch_vrfs", + "bitflags 1.3.2", + "blake2 0.10.6", + "bounded-collections", + "bs58 0.5.1", + "dyn-clonable", + "ed25519-zebra 4.0.3", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde", + "itertools 0.11.0", + "k256", + "libsecp256k1", + "log", + "merlin", + "parity-bip39", + "parity-scale-codec", + "parking_lot 0.12.3", + "paste", + "primitive-types", + "rand 0.8.5", + "scale-info", + "schnorrkel 0.11.4", + "secp256k1", + "secrecy", + "serde", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "ss58-registry", + "substrate-bip39 0.4.7", + "thiserror", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c33c7a1568175250628567d50c4e1c54a6ac5bc1190413b9be29a9e810cbe73" +dependencies = [ + "array-bytes", + "bip39", + "bitflags 1.3.2", + "blake2 0.10.6", + "bounded-collections", + "bs58 0.5.1", + "dyn-clonable", + "ed25519-zebra 3.1.0", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde", + "itertools 0.10.5", + "libsecp256k1", + "log", + "merlin", + "parity-scale-codec", + "parking_lot 0.12.3", + "paste", + "primitive-types", + "rand 0.8.5", + "scale-info", + "schnorrkel 0.11.4", + "secp256k1", + "secrecy", + "serde", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.26.0", + "sp-runtime-interface 25.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 20.0.0", + "ss58-registry", + "substrate-bip39 0.4.6", + "thiserror", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-crypto-ec-utils" +version = "0.10.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "ark-bls12-377", + "ark-bls12-377-ext", + "ark-bls12-381", + "ark-bls12-381-ext", + "ark-bw6-761", + "ark-bw6-761-ext", + "ark-ec", + "ark-ed-on-bls12-377", + "ark-ed-on-bls12-377-ext", + "ark-ed-on-bls12-381-bandersnatch", + "ark-ed-on-bls12-381-bandersnatch-ext", + "ark-scale", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "blake2b_simd", + "byteorder", + "digest 0.10.7", + "sha2 0.10.8", + "sha3", + "twox-hash", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 2.0.79", +] + +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "quote", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "syn 2.0.79", +] + +[[package]] +name = "sp-database" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "kvdb", + "parking_lot 0.12.3", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-debug-derive" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sp-externalities" +version = "0.25.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-externalities" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7096ed024cec397804864898b093b51e14c7299f1d00c67dd5800330e02bb82" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 20.0.0", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd865540ec19479c7349b584ccd78cc34c3f3a628a2a69dbb6365ceec36295ee" +dependencies = [ + "serde_json", + "sp-api 27.0.1", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-genesis-builder" +version = "0.8.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde_json", + "sp-api 26.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-inherents" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sp-inherents" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "607c9e35e96966645ff180a9e9f976433b96e905d0a91d8d5315e605a21f4bc0" +dependencies = [ + "async-trait", + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "sp-io" +version = "30.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bytes", + "ed25519-dalek 2.1.1", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive", + "rustversion", + "secp256k1", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-keystore 0.34.0", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-state-machine 0.35.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec43aa073eab35fcb920d7592474d5427ea3be2bf938706a3ad955d7ba54fd8d" +dependencies = [ + "bytes", + "ed25519-dalek 2.1.1", + "libsecp256k1", + "log", + "parity-scale-codec", + "rustversion", + "secp256k1", + "sp-core 29.0.0", + "sp-crypto-hashing 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-externalities 0.26.0", + "sp-keystore 0.35.0", + "sp-runtime-interface 25.0.0", + "sp-state-machine 0.36.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 30.0.0", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-keyring" +version = "31.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "strum 0.26.3", +] + +[[package]] +name = "sp-keystore" +version = "0.34.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sp-keystore" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444f2d53968b1ce5e908882710ff1f3873fcf3e95f59d57432daf685bbacb959" +dependencies = [ + "parity-scale-codec", + "parking_lot 0.12.3", + "sp-core 29.0.0", + "sp-externalities 0.26.0", + "thiserror", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "thiserror", + "zstd 0.12.4", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0b5e87e56c1bb26d9524d48dd127121d630f895bd5914a34f0b017489f7c1d" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.6.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "sp-mixnet" +version = "0.4.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", +] + +[[package]] +name = "sp-mmr-primitives" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "log", + "parity-scale-codec", + "polkadot-ckb-merkle-mountain-range", + "scale-info", + "serde", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sp-npos-elections" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-npos-elections" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "195d7e1154c91cce5c3abc8c778689c3e5799da6411328dd32ac7a974c68e526" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-offchain" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-panic-handler" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f5a17a0a11de029a8b811cb6e8b32ce7e02183cc04a3e965c383246798c416" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-panic-handler" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "backtrace", + "lazy_static", + "regex", +] + +[[package]] +name = "sp-rpc" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "rustc-hash", + "serde", + "sp-core 28.0.0", +] + +[[package]] +name = "sp-runtime" +version = "31.0.1" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", +] + +[[package]] +name = "sp-runtime" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a95e71603a6281e91b0f1fd3d68057644be16d75a4602013187b8137db8abee" +dependencies = [ + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "paste", + "rand 0.8.5", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto 31.0.0", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 28.0.0", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive", + "primitive-types", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "24.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive", + "primitive-types", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-runtime-interface-proc-macro 17.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "sp-wasm-interface 20.0.0 (git+https://github.com/paritytech/polkadot-sdk)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "25.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2321ab29d4bcc31f1ba1b4f076a81fb2a666465231e5c981c72320d74dbe63" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "primitive-types", + "sp-externalities 0.26.0", + "sp-runtime-interface-proc-macro 17.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-storage 20.0.0", + "sp-tracing 16.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-wasm-interface 20.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfaf6e85b2ec12a4b99cd6d8d57d083e30c94b7f1b0d8f93547121495aae6f0c" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-runtime-interface-proc-macro" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "Inflector", + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-session" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-core 28.0.0", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-staking 26.0.0", +] + +[[package]] +name = "sp-session" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b86531090cc04d2ab3535df07146258e2fb3ab6257b0a77ef14aa08282c3d4a" +dependencies = [ + "parity-scale-codec", + "scale-info", + "sp-api 27.0.1", + "sp-core 29.0.0", + "sp-keystore 0.35.0", + "sp-runtime 32.0.0", + "sp-staking 27.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-staking" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 28.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-staking" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e14d003ecf0b610bf1305a92bdab875289b39d514c073f30e75e78c2763a788" +dependencies = [ + "impl-trait-for-tuples", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 29.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-state-machine" +version = "0.35.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "smallvec", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-panic-handler 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-trie 29.0.0", + "thiserror", + "tracing", + "trie-db 0.29.1", +] + +[[package]] +name = "sp-state-machine" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a67297e702aa32027d7766803f362a420d6d3ec9e2f84961f3c64e2e52b5aaf9" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "smallvec", + "sp-core 29.0.0", + "sp-externalities 0.26.0", + "sp-panic-handler 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-trie 30.0.0", + "thiserror", + "tracing", + "trie-db 0.28.0", +] + +[[package]] +name = "sp-statement-store" +version = "10.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "aes-gcm", + "curve25519-dalek 4.1.3", + "ed25519-dalek 2.1.1", + "hkdf", + "parity-scale-codec", + "rand 0.8.5", + "scale-info", + "sha2 0.10.8", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-core 28.0.0", + "sp-crypto-hashing 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-runtime-interface 24.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", + "x25519-dalek 2.0.1", +] + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" + +[[package]] +name = "sp-std" +version = "14.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sp-storage" +version = "19.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk)", +] + +[[package]] +name = "sp-storage" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dba5791cb3978e95daf99dad919ecb3ec35565604e88cd38d805d9d4981e8bd" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "sp-timestamp" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "thiserror", +] + +[[package]] +name = "sp-timestamp" +version = "27.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "249cd06624f2edb53b25af528ab216a508dc9d0870e158b43caac3a97e86699f" +dependencies = [ + "async-trait", + "parity-scale-codec", + "sp-inherents 27.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0351810b9d074df71c4514c5228ed05c250607cba131c1c9d1526760ab69c05c" +dependencies = [ + "parity-scale-codec", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "tracing", + "tracing-core", + "tracing-subscriber 0.2.25", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "sp-tracing" +version = "16.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.18", +] + +[[package]] +name = "sp-transaction-pool" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "sp-api 26.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "sp-transaction-storage-proof" +version = "26.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "async-trait", + "parity-scale-codec", + "scale-info", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-runtime 31.0.1", + "sp-trie 29.0.0", +] + +[[package]] +name = "sp-trie" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "ahash 0.8.11", + "hash-db", + "lazy_static", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "scale-info", + "schnellru", + "sp-core 28.0.0", + "sp-externalities 0.25.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", + "tracing", + "trie-db 0.29.1", + "trie-root", +] + +[[package]] +name = "sp-trie" +version = "30.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed48dfd05081e8b36741b10ce4eb686c135a2952227a11fe71caec89890ddbb" +dependencies = [ + "ahash 0.8.11", + "hash-db", + "lazy_static", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot 0.12.3", + "rand 0.8.5", + "scale-info", + "schnellru", + "sp-core 29.0.0", + "sp-externalities 0.26.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", + "tracing", + "trie-db 0.28.0", + "trie-root", +] + +[[package]] +name = "sp-version" +version = "29.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version-proc-macro 13.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "thiserror", +] + +[[package]] +name = "sp-version" +version = "30.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4a660c68995663d6778df324f4e2b4efc48d55a8e9c92c22a5fb7dae7899cd" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-version-proc-macro 13.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "thiserror", +] + +[[package]] +name = "sp-version-proc-macro" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9bc3fed32d6dacbbbfb28dd1fe0224affbb737cb6cbfca1d9149351c2b69a7d" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-version-proc-macro" +version = "13.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ef97172c42eb4c6c26506f325f48463e9bc29b2034a587f1b9e48c751229bee" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "wasmtime", +] + +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "wasmtime", +] + +[[package]] +name = "sp-wasm-interface" +version = "20.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk#dada6cea6447ce2730a3f3b43a3b48b7a5c26cf6" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", +] + +[[package]] +name = "sp-weights" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 23.0.0", + "sp-debug-derive 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "sp-weights" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3be30aec904994451dcacf841a9168cfbbaf817de6b24b6a1c1418cbf1af2fe" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 24.0.0", + "sp-debug-derive 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "ss58-registry" +version = "1.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43fce22ed1df64d04b262351c8f9d5c6da4f76f79f25ad15529792f893fad25d" +dependencies = [ + "Inflector", + "num-format", + "proc-macro2", + "quote", + "serde", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "staging-parachain-info" +version = "0.7.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "cumulus-primitives-core", + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", +] + +[[package]] +name = "staging-xcm" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights 27.0.0", + "xcm-procedural 7.0.0", +] + +[[package]] +name = "staging-xcm" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fa328b87de3466bc38cc9a07244c42c647b7755b81115e1dfeb47cc13fc6e6" +dependencies = [ + "array-bytes", + "bounded-collections", + "derivative", + "environmental", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-weights 28.0.0", + "xcm-procedural 8.0.0", +] + +[[package]] +name = "staging-xcm-builder" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment 28.0.0", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "staging-xcm-executor 7.0.0", +] + +[[package]] +name = "staging-xcm-builder" +version = "8.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b7447c38be3ca9fb21c7434de2243aa6ac74acde8944cda7bb6e2a4f765801" +dependencies = [ + "frame-support 29.0.2", + "frame-system 29.0.0", + "impl-trait-for-tuples", + "log", + "pallet-transaction-payment 29.0.2", + "parity-scale-codec", + "polkadot-parachain-primitives 7.0.0", + "scale-info", + "sp-arithmetic 24.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 28.0.0", + "staging-xcm 8.0.1", + "staging-xcm-executor 8.0.2", +] + +[[package]] +name = "staging-xcm-executor" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "environmental", + "frame-benchmarking 28.0.0", + "frame-support 28.0.0", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 23.0.0", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", +] + +[[package]] +name = "staging-xcm-executor" +version = "8.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74b5c5f2a1d610c5e20e5fae2680c9a28380f305afafeed62f341bfbce57b79a" +dependencies = [ + "environmental", + "frame-benchmarking 29.0.0", + "frame-support 29.0.2", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "scale-info", + "sp-arithmetic 24.0.0", + "sp-core 29.0.0", + "sp-io 31.0.0", + "sp-runtime 32.0.0", + "sp-std 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp-weights 28.0.0", + "staging-xcm 8.0.1", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "static_init" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a2a1c578e98c1c16fc3b8ec1328f7659a500737d7a0c6d625e73e830ff9c1f6" +dependencies = [ + "bitflags 1.3.2", + "cfg_aliases", + "libc", + "parking_lot 0.11.2", + "parking_lot_core 0.8.6", + "static_init_macro", + "winapi", +] + +[[package]] +name = "static_init_macro" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a2595fc3aa78f2d0e45dd425b22282dd863273761cc77780914b2cf3003acf" +dependencies = [ + "cfg_aliases", + "memchr", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "storage-hub-node" +version = "0.1.0" +dependencies = [ + "anyhow", + "array-bytes", + "async-channel 1.9.0", + "async-io 2.3.4", + "async-trait", + "chrono", + "clap", + "color-print", + "cumulus-client-cli", + "cumulus-client-collator", + "cumulus-client-consensus-aura", + "cumulus-client-consensus-common", + "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", + "cumulus-client-service", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-primitives-storage-weight-reclaim", + "cumulus-relay-chain-interface", + "frame-benchmarking 28.0.0", + "frame-benchmarking-cli", + "frame-support 28.0.0", + "frame-system 28.0.0", + "futures", + "futures-timer", + "hex", + "jsonrpsee", + "kvdb", + "kvdb-rocksdb", + "lazy_static", + "log", + "pallet-file-system", + "pallet-file-system-runtime-api", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", + "pallet-storage-providers", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc", + "parity-scale-codec", + "polkadot-cli", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "sc-basic-authorship", + "sc-chain-spec", + "sc-cli", + "sc-client-api", + "sc-consensus", + "sc-consensus-aura", + "sc-consensus-manual-seal", + "sc-executor", + "sc-network", + "sc-network-sync", + "sc-offchain", + "sc-rpc", + "sc-service", + "sc-sysinfo", + "sc-telemetry", + "sc-tracing", + "sc-transaction-pool", + "sc-transaction-pool-api", + "sc-utils", + "serde", + "serde_json", + "shc-actors-framework", + "shc-blockchain-service", + "shc-common", + "shc-file-manager", + "shc-file-transfer-service", + "shc-forest-manager", + "shc-indexer-db", + "shc-indexer-service", + "shc-rpc", + "shp-constants", + "shp-file-key-verifier", + "shp-file-metadata", + "shp-traits", + "sp-api 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-consensus-aura", + "sp-core 28.0.0", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-keyring", + "sp-keystore 0.34.0", + "sp-runtime 31.0.1", + "sp-timestamp 26.0.0", + "sp-trie 29.0.0", + "staging-xcm 7.0.0", + "storage-hub-runtime", + "substrate-build-script-utils", + "substrate-frame-rpc-system", + "substrate-prometheus-endpoint", + "thiserror", + "tokio", +] + +[[package]] +name = "storage-hub-runtime" +version = "0.1.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-aura", + "cumulus-primitives-core", + "cumulus-primitives-storage-weight-reclaim", + "cumulus-primitives-utility", + "docify", + "frame-benchmarking 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "num-bigint", + "pallet-aura", + "pallet-authorship 28.0.0", + "pallet-balances 28.0.0", + "pallet-bucket-nfts", + "pallet-collator-selection", + "pallet-file-system", + "pallet-file-system-runtime-api", + "pallet-message-queue 31.0.0", + "pallet-nfts", + "pallet-parameters", + "pallet-payment-streams", + "pallet-payment-streams-runtime-api", + "pallet-proofs-dealer", + "pallet-proofs-dealer-runtime-api", + "pallet-randomness", + "pallet-session 28.0.0", + "pallet-storage-providers", + "pallet-storage-providers-runtime-api", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-xcm", + "parachains-common", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "polkadot-runtime-common 7.0.0", + "scale-info", + "shp-constants", + "shp-file-key-verifier", + "shp-file-metadata", + "shp-forest-verifier", + "shp-traits", + "smallvec", + "sp-api 26.0.0", + "sp-block-builder", + "sp-consensus-aura", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-trie 29.0.0", + "sp-version 29.0.0", + "sp-weights 27.0.0", + "staging-parachain-info", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "substrate-wasm-builder", + "xcm-fee-payment-runtime-api", +] + +[[package]] +name = "str0m" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6706347e49b13373f7ddfafad47df7583ed52083d6fc8a594eb2c80497ef959d" +dependencies = [ + "combine", + "crc", + "fastrand 2.1.1", + "hmac 0.12.1", + "once_cell", + "openssl", + "openssl-sys", + "sctp-proto", + "serde", + "sha-1 0.10.1", + "thiserror", + "tracing", +] + +[[package]] +name = "stringprep" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4df3d392d81bd458a8a621b8bffbd2302a12ffe288a9d931670948749463b1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", + "unicode-properties", +] + +[[package]] +name = "strobe-rs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "keccak", + "subtle 2.6.1", + "zeroize", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck 0.5.0", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.79", +] + +[[package]] +name = "substrate-bip39" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a7590dc041b9bc2825e52ce5af8416c73dbe9d0654402bfd4b4941938b94d8f" +dependencies = [ + "hmac 0.11.0", + "pbkdf2 0.8.0", + "schnorrkel 0.11.4", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "substrate-bip39" +version = "0.4.7" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "hmac 0.12.1", + "pbkdf2 0.12.2", + "schnorrkel 0.11.4", + "sha2 0.10.8", + "zeroize", +] + +[[package]] +name = "substrate-build-script-utils" +version = "11.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" + +[[package]] +name = "substrate-frame-rpc-system" +version = "28.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-system-rpc-runtime-api", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-rpc-api", + "sc-transaction-pool-api", + "sp-api 26.0.0", + "sp-block-builder", + "sp-blockchain", + "sp-core 28.0.0", + "sp-runtime 31.0.1", +] + +[[package]] +name = "substrate-prometheus-endpoint" +version = "0.17.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "hyper", + "log", + "prometheus", + "thiserror", + "tokio", +] + +[[package]] +name = "substrate-state-trie-migration-rpc" +version = "27.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "jsonrpsee", + "parity-scale-codec", + "sc-client-api", + "sc-rpc-api", + "serde", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-state-machine 0.35.0", + "sp-trie 29.0.0", + "trie-db 0.29.1", +] + +[[package]] +name = "substrate-wasm-builder" +version = "17.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "array-bytes", + "build-helper", + "cargo_metadata", + "console", + "filetime", + "frame-metadata", + "merkleized-metadata", + "parity-scale-codec", + "parity-wasm", + "polkavm-linker", + "sc-executor", + "sp-core 28.0.0", + "sp-io 30.0.0", + "sp-maybe-compressed-blob", + "sp-tracing 16.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-version 29.0.0", + "strum 0.26.3", + "tempfile", + "toml 0.8.19", + "walkdir", + "wasm-opt", +] + +[[package]] +name = "subtle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "unicode-xid", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tempfile" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" +dependencies = [ + "cfg-if", + "fastrand 2.1.1", + "once_cell", + "rustix 0.38.37", + "windows-sys 0.59.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terminal_size" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f599bd7ca042cfdf8f4512b277c02ba102247820f9d9d4a9f521f496751a6ef" +dependencies = [ + "rustix 0.38.37", + "windows-sys 0.59.0", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "thiserror" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-core" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c001ee18b7e5e3f62cbf58c7fe220119e68d902bb7443179c0c8aef30090e999" +dependencies = [ + "thiserror-core-impl", +] + +[[package]] +name = "thiserror-core-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "thousands" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "thrift" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b82ca8f46f95b3ce96081fe3dd89160fdea970c254bb72925255d1b62aae692e" +dependencies = [ + "byteorder", + "integer-encoding", + "log", + "ordered-float", + "threadpool", +] + +[[package]] +name = "tikv-jemalloc-ctl" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "619bfed27d807b54f7f776b9430d4f8060e66ee138a28632ca898584d462c31c" +dependencies = [ + "libc", + "paste", + "tikv-jemalloc-sys", +] + +[[package]] +name = "tikv-jemalloc-sys" +version = "0.5.4+5.3.0-patched" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot 0.12.3", + "pin-project-lite 0.2.14", + "signal-hook-registry", + "socket2 0.5.7", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5d3742945bc7d7f210693b0c58ae542c6fd47b17adbbda0885f3dcb34a6bdb" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator 0.2.0", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.3", + "percent-encoding", + "phf", + "pin-project-lite 0.2.14", + "postgres-protocol", + "postgres-types", + "rand 0.8.5", + "socket2 0.5.7", + "tokio", + "tokio-util", + "whoami", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" +dependencies = [ + "futures-core", + "pin-project-lite 0.2.14", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", +] + +[[package]] +name = "tokio-util" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite 0.2.14", + "tokio", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.20.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +dependencies = [ + "indexmap 2.6.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap 2.6.0", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.20", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite 0.2.14", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" +dependencies = [ + "bitflags 2.6.0", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite 0.2.14", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite 0.2.14", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-gum" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "coarsetime", + "polkadot-primitives 7.0.0", + "tracing", + "tracing-gum-proc-macro", +] + +[[package]] +name = "tracing-gum-proc-macro" +version = "5.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "expander", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "ansi_term", + "chrono", + "lazy_static", + "matchers 0.0.1", + "regex", + "serde", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-serde", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers 0.1.0", + "nu-ansi-term", + "once_cell", + "parking_lot 0.12.3", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "time", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + +[[package]] +name = "trie-db" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" +dependencies = [ + "hash-db", + "hashbrown 0.13.2", + "log", + "rustc-hex", + "smallvec", +] + +[[package]] +name = "trie-db" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" +dependencies = [ + "hash-db", + "hashbrown 0.13.2", + "log", + "rustc-hex", + "smallvec", +] + +[[package]] +name = "trie-db" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" +dependencies = [ + "hash-db", + "log", + "rustc-hex", + "smallvec", +] + +[[package]] +name = "trie-root" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" +dependencies = [ + "hash-db", +] + +[[package]] +name = "trust-dns-proto" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f7f83d1e4a0e4358ac54c5c3681e5d7da5efc5a7a632c90bb6d6669ddd9bc26" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.5.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.2.3", + "ipnet", + "lazy_static", + "rand 0.8.5", + "smallvec", + "socket2 0.4.10", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "trust-dns-proto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner 0.6.1", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand 0.8.5", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aff21aa4dcefb0a1afbfac26deb0adc93888c7d295fb63ab273ef276ba2b7cfe" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lazy_static", + "lru-cache", + "parking_lot 0.12.3", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto 0.22.0", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot 0.12.3", + "rand 0.8.5", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto 0.23.2", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tt-call" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" + +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "digest 0.10.7", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" + +[[package]] +name = "unicode-ident" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-properties" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e70f2a8b45122e719eb623c01822704c4e0907e7e426a05927e1a1cfff5b75d0" + +[[package]] +name = "unicode-width" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle 2.6.1", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6889a77d49f1f013504cec6bf97a2c730394adedaeb1deb5ea08949a50541105" +dependencies = [ + "asynchronous-codec", + "bytes", + "futures-io", + "futures-util", + "tokio-util", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna 0.5.0", + "percent-encoding", +] + +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "w3f-bls" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c5da5fa2c6afa2c9158eaa7cd9aee249765eb32b5fb0c63ad8b9e79336a47ec" +dependencies = [ + "ark-bls12-377", + "ark-bls12-381", + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-serialize-derive", + "arrayref", + "constcat", + "digest 0.10.7", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "sha2 0.10.8", + "sha3", + "thiserror", + "zeroize", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasite" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" + +[[package]] +name = "wasix" +version = "0.12.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" +dependencies = [ + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.79", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" + +[[package]] +name = "wasm-instrument" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" +dependencies = [ + "parity-wasm", +] + +[[package]] +name = "wasm-opt" +version = "0.116.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" +dependencies = [ + "anyhow", + "libc", + "strum 0.24.1", + "strum_macros 0.24.3", + "tempfile", + "thiserror", + "wasm-opt-cxx-sys", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-cxx-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c57b28207aa724318fcec6575fe74803c23f6f266fce10cbc9f3f116762f12e" +dependencies = [ + "anyhow", + "cxx", + "cxx-build", + "wasm-opt-sys", +] + +[[package]] +name = "wasm-opt-sys" +version = "0.116.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1cce564dc768dacbdb718fc29df2dba80bd21cb47d8f77ae7e3d95ceb98cbe" +dependencies = [ + "anyhow", + "cc", + "cxx", + "cxx-build", +] + +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmi" +version = "0.31.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" +dependencies = [ + "smallvec", + "spin 0.9.8", + "wasmi_arena", + "wasmi_core", + "wasmparser-nostd", +] + +[[package]] +name = "wasmi_arena" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" + +[[package]] +name = "wasmi_core" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf1a7db34bff95b85c261002720c00c3a6168256dcb93041d3fa2054d19856a" +dependencies = [ + "downcast-rs", + "libm", + "num-traits", + "paste", +] + +[[package]] +name = "wasmparser" +version = "0.102.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48134de3d7598219ab9eaf6b91b15d8e50d31da76b8519fe4ecfcec2cf35104b" +dependencies = [ + "indexmap 1.9.3", + "url", +] + +[[package]] +name = "wasmparser-nostd" +version = "0.100.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" +dependencies = [ + "indexmap-nostd", +] + +[[package]] +name = "wasmtime" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f907fdead3153cb9bfb7a93bbd5b62629472dc06dee83605358c64c52ed3dda9" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "object 0.30.4", + "once_cell", + "paste", + "psm", + "rayon", + "serde", + "target-lexicon", + "wasmparser", + "wasmtime-cache", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-jit", + "wasmtime-runtime", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b9daa7c14cd4fa3edbf69de994408d5f4b7b0959ac13fa69d465f6597f810d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-cache" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" +dependencies = [ + "anyhow", + "base64 0.21.7", + "bincode", + "directories-next", + "file-per-thread-logger", + "log", + "rustix 0.36.17", + "serde", + "sha2 0.10.8", + "toml 0.5.11", + "windows-sys 0.45.0", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "wasmtime-cranelift" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.27.3", + "log", + "object 0.30.4", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-native", + "gimli 0.27.3", + "object 0.30.4", + "target-lexicon", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a990198cee4197423045235bf89d3359e69bd2ea031005f4c2d901125955c949" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli 0.27.3", + "indexmap 1.9.3", + "log", + "object 0.30.4", + "serde", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-jit" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de48df552cfca1c9b750002d3e07b45772dd033b0b206d5c0968496abf31244" +dependencies = [ + "addr2line 0.19.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.27.3", + "log", + "object 0.30.4", + "rustc-demangle", + "serde", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" +dependencies = [ + "object 0.30.4", + "once_cell", + "rustix 0.36.17", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aecae978b13f7f67efb23bd827373ace4578f2137ec110bbf6a4a7cde4121bbd" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "658cf6f325232b6760e202e5255d823da5e348fdea827eff0a2a22319000b441" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap 1.9.3", + "libc", + "log", + "mach", + "memfd", + "memoffset", + "paste", + "rand 0.8.5", + "rustix 0.36.17", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-jit-debug", + "windows-sys 0.45.0", +] + +[[package]] +name = "wasmtime-types" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4f6fffd2a1011887d57f07654dd112791e872e3ff4a2e626aee8059ee17f06f" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "web-sys" +version = "0.3.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "westend-runtime" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "binary-merkle-tree", + "bitvec", + "frame-benchmarking 28.0.0", + "frame-election-provider-support 28.0.0", + "frame-executive", + "frame-metadata-hash-extension", + "frame-support 28.0.0", + "frame-system 28.0.0", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "pallet-asset-rate 7.0.0", + "pallet-authority-discovery 28.0.0", + "pallet-authorship 28.0.0", + "pallet-babe 28.0.0", + "pallet-bags-list", + "pallet-balances 28.0.0", + "pallet-beefy", + "pallet-beefy-mmr", + "pallet-collective", + "pallet-conviction-voting", + "pallet-delegated-staking", + "pallet-democracy", + "pallet-election-provider-multi-phase 27.0.0", + "pallet-election-provider-support-benchmarking 27.0.0", + "pallet-elections-phragmen", + "pallet-fast-unstake 27.0.0", + "pallet-grandpa", + "pallet-identity 29.0.0", + "pallet-indices", + "pallet-membership", + "pallet-message-queue 31.0.0", + "pallet-mmr", + "pallet-multisig", + "pallet-nomination-pools", + "pallet-nomination-pools-benchmarking", + "pallet-nomination-pools-runtime-api", + "pallet-offences", + "pallet-offences-benchmarking", + "pallet-preimage", + "pallet-proxy", + "pallet-recovery", + "pallet-referenda", + "pallet-root-testing", + "pallet-scheduler", + "pallet-session 28.0.0", + "pallet-session-benchmarking", + "pallet-society", + "pallet-staking 28.0.0", + "pallet-staking-reward-curve", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", + "pallet-sudo", + "pallet-timestamp 27.0.0", + "pallet-transaction-payment 28.0.0", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-treasury 27.0.0", + "pallet-utility", + "pallet-vesting 28.0.0", + "pallet-whitelist", + "pallet-xcm", + "pallet-xcm-benchmarks", + "parity-scale-codec", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "rustc-hex", + "scale-info", + "serde", + "serde_derive", + "smallvec", + "sp-api 26.0.0", + "sp-application-crypto 30.0.0", + "sp-arithmetic 23.0.0", + "sp-authority-discovery 26.0.0", + "sp-block-builder", + "sp-consensus-babe 0.32.0", + "sp-consensus-beefy", + "sp-core 28.0.0", + "sp-genesis-builder 0.8.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-inherents 26.0.0", + "sp-io 30.0.0", + "sp-mmr-primitives", + "sp-npos-elections 26.0.0", + "sp-offchain", + "sp-runtime 31.0.1", + "sp-session 27.0.0", + "sp-staking 26.0.0", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-storage 19.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-transaction-pool", + "sp-version 29.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", + "substrate-wasm-builder", + "westend-runtime-constants", + "xcm-fee-payment-runtime-api", +] + +[[package]] +name = "westend-runtime-constants" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-common 7.0.0", + "smallvec", + "sp-core 28.0.0", + "sp-runtime 31.0.1", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.37", +] + +[[package]] +name = "whoami" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372d5b87f58ec45c384ba03563b03544dc5fadc3983e434b286913f5b4a9bb6d" +dependencies = [ + "redox_syscall 0.5.7", + "wasite", + "web-sys", +] + +[[package]] +name = "wide" +version = "0.7.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b828f995bf1e9622031f8009f8481a85406ce1f4d4588ff746d872043e855690" +dependencies = [ + "bytemuck", + "safe_arch", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" +dependencies = [ + "windows-core 0.51.1", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "x25519-dalek" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a0c105152107e3b96f6a00a65e86ce82d9b125230e1c4302940eca58ff71f4f" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.5.1", + "zeroize", +] + +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek 4.1.3", + "rand_core 0.6.4", + "serde", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "x509-parser" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da" +dependencies = [ + "asn1-rs", + "data-encoding", + "der-parser", + "lazy_static", + "nom", + "oid-registry", + "rusticata-macros", + "thiserror", + "time", +] + +[[package]] +name = "xcm-fee-payment-runtime-api" +version = "0.1.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "parity-scale-codec", + "scale-info", + "sp-api 26.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "sp-weights 27.0.0", + "staging-xcm 7.0.0", +] + +[[package]] +name = "xcm-procedural" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "xcm-procedural" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4717a97970a9cda70d7db53cf50d2615c2f6f6b7c857445325b4a39ea7aa2cd" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "xcm-simulator" +version = "7.0.0" +source = "git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0#d5160c1d567cc73c7df6c816d41e21aa3adb188d" +dependencies = [ + "frame-support 28.0.0", + "frame-system 28.0.0", + "parity-scale-codec", + "paste", + "polkadot-core-primitives 7.0.0", + "polkadot-parachain-primitives 6.0.0", + "polkadot-primitives 7.0.0", + "polkadot-runtime-parachains 7.0.0", + "scale-info", + "sp-io 30.0.0", + "sp-runtime 31.0.1", + "sp-std 14.0.0 (git+https://github.com/paritytech/polkadot-sdk.git?tag=polkadot-v1.13.0)", + "staging-xcm 7.0.0", + "staging-xcm-builder 7.0.0", + "staging-xcm-executor 7.0.0", +] + +[[package]] +name = "yamux" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d9ba232399af1783a58d8eb26f6b5006fbefe2dc9ef36bd283324792d03ea5" +dependencies = [ + "futures", + "log", + "nohash-hasher", + "parking_lot 0.12.3", + "rand 0.8.5", + "static_assertions", +] + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.79", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/api-augment/dist/interfaces/lookup.js b/api-augment/dist/interfaces/lookup.js index ea58be071..b85467c40 100644 --- a/api-augment/dist/interfaces/lookup.js +++ b/api-augment/dist/interfaces/lookup.js @@ -1,4723 +1,4503 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ -/* eslint-disable sort-keys */ -export default { - /** - * Lookup3: frame_system::AccountInfo> - **/ - FrameSystemAccountInfo: { - nonce: "u32", - consumers: "u32", - providers: "u32", - sufficients: "u32", - data: "PalletBalancesAccountData" - }, - /** - * Lookup5: pallet_balances::types::AccountData - **/ - PalletBalancesAccountData: { - free: "u128", - reserved: "u128", - frozen: "u128", - flags: "u128" - }, - /** - * Lookup9: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeight: { - normal: "SpWeightsWeightV2Weight", - operational: "SpWeightsWeightV2Weight", - mandatory: "SpWeightsWeightV2Weight" - }, - /** - * Lookup10: sp_weights::weight_v2::Weight - **/ - SpWeightsWeightV2Weight: { - refTime: "Compact", - proofSize: "Compact" - }, - /** - * Lookup15: sp_runtime::generic::digest::Digest - **/ - SpRuntimeDigest: { - logs: "Vec" - }, - /** - * Lookup17: sp_runtime::generic::digest::DigestItem - **/ - SpRuntimeDigestDigestItem: { - _enum: { - Other: "Bytes", - __Unused1: "Null", - __Unused2: "Null", - __Unused3: "Null", - Consensus: "([u8;4],Bytes)", - Seal: "([u8;4],Bytes)", - PreRuntime: "([u8;4],Bytes)", - __Unused7: "Null", - RuntimeEnvironmentUpdated: "Null" - } - }, - /** - * Lookup20: frame_system::EventRecord - **/ - FrameSystemEventRecord: { - phase: "FrameSystemPhase", - event: "Event", - topics: "Vec" - }, - /** - * Lookup22: frame_system::pallet::Event - **/ - FrameSystemEvent: { - _enum: { - ExtrinsicSuccess: { - dispatchInfo: "FrameSupportDispatchDispatchInfo" - }, - ExtrinsicFailed: { - dispatchError: "SpRuntimeDispatchError", - dispatchInfo: "FrameSupportDispatchDispatchInfo" - }, - CodeUpdated: "Null", - NewAccount: { - account: "AccountId32" - }, - KilledAccount: { - account: "AccountId32" - }, - Remarked: { - _alias: { - hash_: "hash" - }, - sender: "AccountId32", - hash_: "H256" - }, - UpgradeAuthorized: { - codeHash: "H256", - checkVersion: "bool" - } - } - }, - /** - * Lookup23: frame_support::dispatch::DispatchInfo - **/ - FrameSupportDispatchDispatchInfo: { - weight: "SpWeightsWeightV2Weight", - class: "FrameSupportDispatchDispatchClass", - paysFee: "FrameSupportDispatchPays" - }, - /** - * Lookup24: frame_support::dispatch::DispatchClass - **/ - FrameSupportDispatchDispatchClass: { - _enum: ["Normal", "Operational", "Mandatory"] - }, - /** - * Lookup25: frame_support::dispatch::Pays - **/ - FrameSupportDispatchPays: { - _enum: ["Yes", "No"] - }, - /** - * Lookup26: sp_runtime::DispatchError - **/ - SpRuntimeDispatchError: { - _enum: { - Other: "Null", - CannotLookup: "Null", - BadOrigin: "Null", - Module: "SpRuntimeModuleError", - ConsumerRemaining: "Null", - NoProviders: "Null", - TooManyConsumers: "Null", - Token: "SpRuntimeTokenError", - Arithmetic: "SpArithmeticArithmeticError", - Transactional: "SpRuntimeTransactionalError", - Exhausted: "Null", - Corruption: "Null", - Unavailable: "Null", - RootNotAllowed: "Null" - } - }, - /** - * Lookup27: sp_runtime::ModuleError - **/ - SpRuntimeModuleError: { - index: "u8", - error: "[u8;4]" - }, - /** - * Lookup28: sp_runtime::TokenError - **/ - SpRuntimeTokenError: { - _enum: [ - "FundsUnavailable", - "OnlyProvider", - "BelowMinimum", - "CannotCreate", - "UnknownAsset", - "Frozen", - "Unsupported", - "CannotCreateHold", - "NotExpendable", - "Blocked" - ] - }, - /** - * Lookup29: sp_arithmetic::ArithmeticError - **/ - SpArithmeticArithmeticError: { - _enum: ["Underflow", "Overflow", "DivisionByZero"] - }, - /** - * Lookup30: sp_runtime::TransactionalError - **/ - SpRuntimeTransactionalError: { - _enum: ["LimitReached", "NoLayer"] - }, - /** - * Lookup31: cumulus_pallet_parachain_system::pallet::Event - **/ - CumulusPalletParachainSystemEvent: { - _enum: { - ValidationFunctionStored: "Null", - ValidationFunctionApplied: { - relayChainBlockNum: "u32" - }, - ValidationFunctionDiscarded: "Null", - DownwardMessagesReceived: { - count: "u32" - }, - DownwardMessagesProcessed: { - weightUsed: "SpWeightsWeightV2Weight", - dmqHead: "H256" - }, - UpwardMessageSent: { - messageHash: "Option<[u8;32]>" - } - } - }, - /** - * Lookup33: pallet_balances::pallet::Event - **/ - PalletBalancesEvent: { - _enum: { - Endowed: { - account: "AccountId32", - freeBalance: "u128" - }, - DustLost: { - account: "AccountId32", - amount: "u128" - }, - Transfer: { - from: "AccountId32", - to: "AccountId32", - amount: "u128" - }, - BalanceSet: { - who: "AccountId32", - free: "u128" - }, - Reserved: { - who: "AccountId32", - amount: "u128" - }, - Unreserved: { - who: "AccountId32", - amount: "u128" - }, - ReserveRepatriated: { - from: "AccountId32", - to: "AccountId32", - amount: "u128", - destinationStatus: "FrameSupportTokensMiscBalanceStatus" - }, - Deposit: { - who: "AccountId32", - amount: "u128" - }, - Withdraw: { - who: "AccountId32", - amount: "u128" - }, - Slashed: { - who: "AccountId32", - amount: "u128" - }, - Minted: { - who: "AccountId32", - amount: "u128" - }, - Burned: { - who: "AccountId32", - amount: "u128" - }, - Suspended: { - who: "AccountId32", - amount: "u128" - }, - Restored: { - who: "AccountId32", - amount: "u128" - }, - Upgraded: { - who: "AccountId32" - }, - Issued: { - amount: "u128" - }, - Rescinded: { - amount: "u128" - }, - Locked: { - who: "AccountId32", - amount: "u128" - }, - Unlocked: { - who: "AccountId32", - amount: "u128" - }, - Frozen: { - who: "AccountId32", - amount: "u128" - }, - Thawed: { - who: "AccountId32", - amount: "u128" - }, - TotalIssuanceForced: { - _alias: { - new_: "new" - }, - old: "u128", - new_: "u128" - } - } - }, - /** - * Lookup34: frame_support::traits::tokens::misc::BalanceStatus - **/ - FrameSupportTokensMiscBalanceStatus: { - _enum: ["Free", "Reserved"] - }, - /** - * Lookup35: pallet_transaction_payment::pallet::Event - **/ - PalletTransactionPaymentEvent: { - _enum: { - TransactionFeePaid: { - who: "AccountId32", - actualFee: "u128", - tip: "u128" - } - } - }, - /** - * Lookup36: pallet_sudo::pallet::Event - **/ - PalletSudoEvent: { - _enum: { - Sudid: { - sudoResult: "Result" - }, - KeyChanged: { - _alias: { - new_: "new" - }, - old: "Option", - new_: "AccountId32" - }, - KeyRemoved: "Null", - SudoAsDone: { - sudoResult: "Result" - } - } - }, - /** - * Lookup40: pallet_collator_selection::pallet::Event - **/ - PalletCollatorSelectionEvent: { - _enum: { - NewInvulnerables: { - invulnerables: "Vec" - }, - InvulnerableAdded: { - accountId: "AccountId32" - }, - InvulnerableRemoved: { - accountId: "AccountId32" - }, - NewDesiredCandidates: { - desiredCandidates: "u32" - }, - NewCandidacyBond: { - bondAmount: "u128" - }, - CandidateAdded: { - accountId: "AccountId32", - deposit: "u128" - }, - CandidateBondUpdated: { - accountId: "AccountId32", - deposit: "u128" - }, - CandidateRemoved: { - accountId: "AccountId32" - }, - CandidateReplaced: { - _alias: { - new_: "new" - }, - old: "AccountId32", - new_: "AccountId32", - deposit: "u128" - }, - InvalidInvulnerableSkipped: { - accountId: "AccountId32" - } - } - }, - /** - * Lookup42: pallet_session::pallet::Event - **/ - PalletSessionEvent: { - _enum: { - NewSession: { - sessionIndex: "u32" - } - } - }, - /** - * Lookup43: cumulus_pallet_xcmp_queue::pallet::Event - **/ - CumulusPalletXcmpQueueEvent: { - _enum: { - XcmpMessageSent: { - messageHash: "[u8;32]" - } - } - }, - /** - * Lookup44: pallet_xcm::pallet::Event - **/ - PalletXcmEvent: { - _enum: { - Attempted: { - outcome: "StagingXcmV4TraitsOutcome" - }, - Sent: { - origin: "StagingXcmV4Location", - destination: "StagingXcmV4Location", - message: "StagingXcmV4Xcm", - messageId: "[u8;32]" - }, - UnexpectedResponse: { - origin: "StagingXcmV4Location", - queryId: "u64" - }, - ResponseReady: { - queryId: "u64", - response: "StagingXcmV4Response" - }, - Notified: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8" - }, - NotifyOverweight: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8", - actualWeight: "SpWeightsWeightV2Weight", - maxBudgetedWeight: "SpWeightsWeightV2Weight" - }, - NotifyDispatchError: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8" - }, - NotifyDecodeFailed: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8" - }, - InvalidResponder: { - origin: "StagingXcmV4Location", - queryId: "u64", - expectedLocation: "Option" - }, - InvalidResponderVersion: { - origin: "StagingXcmV4Location", - queryId: "u64" - }, - ResponseTaken: { - queryId: "u64" - }, - AssetsTrapped: { - _alias: { - hash_: "hash" - }, - hash_: "H256", - origin: "StagingXcmV4Location", - assets: "XcmVersionedAssets" - }, - VersionChangeNotified: { - destination: "StagingXcmV4Location", - result: "u32", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - SupportedVersionChanged: { - location: "StagingXcmV4Location", - version: "u32" - }, - NotifyTargetSendFail: { - location: "StagingXcmV4Location", - queryId: "u64", - error: "XcmV3TraitsError" - }, - NotifyTargetMigrationFail: { - location: "XcmVersionedLocation", - queryId: "u64" - }, - InvalidQuerierVersion: { - origin: "StagingXcmV4Location", - queryId: "u64" - }, - InvalidQuerier: { - origin: "StagingXcmV4Location", - queryId: "u64", - expectedQuerier: "StagingXcmV4Location", - maybeActualQuerier: "Option" - }, - VersionNotifyStarted: { - destination: "StagingXcmV4Location", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - VersionNotifyRequested: { - destination: "StagingXcmV4Location", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - VersionNotifyUnrequested: { - destination: "StagingXcmV4Location", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - FeesPaid: { - paying: "StagingXcmV4Location", - fees: "StagingXcmV4AssetAssets" - }, - AssetsClaimed: { - _alias: { - hash_: "hash" - }, - hash_: "H256", - origin: "StagingXcmV4Location", - assets: "XcmVersionedAssets" - }, - VersionMigrationFinished: { - version: "u32" - } - } - }, - /** - * Lookup45: staging_xcm::v4::traits::Outcome - **/ - StagingXcmV4TraitsOutcome: { - _enum: { - Complete: { - used: "SpWeightsWeightV2Weight" - }, - Incomplete: { - used: "SpWeightsWeightV2Weight", - error: "XcmV3TraitsError" - }, - Error: { - error: "XcmV3TraitsError" - } - } - }, - /** - * Lookup46: xcm::v3::traits::Error - **/ - XcmV3TraitsError: { - _enum: { - Overflow: "Null", - Unimplemented: "Null", - UntrustedReserveLocation: "Null", - UntrustedTeleportLocation: "Null", - LocationFull: "Null", - LocationNotInvertible: "Null", - BadOrigin: "Null", - InvalidLocation: "Null", - AssetNotFound: "Null", - FailedToTransactAsset: "Null", - NotWithdrawable: "Null", - LocationCannotHold: "Null", - ExceedsMaxMessageSize: "Null", - DestinationUnsupported: "Null", - Transport: "Null", - Unroutable: "Null", - UnknownClaim: "Null", - FailedToDecode: "Null", - MaxWeightInvalid: "Null", - NotHoldingFees: "Null", - TooExpensive: "Null", - Trap: "u64", - ExpectationFalse: "Null", - PalletNotFound: "Null", - NameMismatch: "Null", - VersionIncompatible: "Null", - HoldingWouldOverflow: "Null", - ExportError: "Null", - ReanchorFailed: "Null", - NoDeal: "Null", - FeesNotMet: "Null", - LockError: "Null", - NoPermission: "Null", - Unanchored: "Null", - NotDepositable: "Null", - UnhandledXcmVersion: "Null", - WeightLimitReached: "SpWeightsWeightV2Weight", - Barrier: "Null", - WeightNotComputable: "Null", - ExceedsStackLimit: "Null" - } - }, - /** - * Lookup47: staging_xcm::v4::location::Location - **/ - StagingXcmV4Location: { - parents: "u8", - interior: "StagingXcmV4Junctions" - }, - /** - * Lookup48: staging_xcm::v4::junctions::Junctions - **/ - StagingXcmV4Junctions: { - _enum: { - Here: "Null", - X1: "[Lookup50;1]", - X2: "[Lookup50;2]", - X3: "[Lookup50;3]", - X4: "[Lookup50;4]", - X5: "[Lookup50;5]", - X6: "[Lookup50;6]", - X7: "[Lookup50;7]", - X8: "[Lookup50;8]" - } - }, - /** - * Lookup50: staging_xcm::v4::junction::Junction - **/ - StagingXcmV4Junction: { - _enum: { - Parachain: "Compact", - AccountId32: { - network: "Option", - id: "[u8;32]" - }, - AccountIndex64: { - network: "Option", - index: "Compact" - }, - AccountKey20: { - network: "Option", - key: "[u8;20]" - }, - PalletInstance: "u8", - GeneralIndex: "Compact", - GeneralKey: { - length: "u8", - data: "[u8;32]" - }, - OnlyChild: "Null", - Plurality: { - id: "XcmV3JunctionBodyId", - part: "XcmV3JunctionBodyPart" - }, - GlobalConsensus: "StagingXcmV4JunctionNetworkId" - } - }, - /** - * Lookup53: staging_xcm::v4::junction::NetworkId - **/ - StagingXcmV4JunctionNetworkId: { - _enum: { - ByGenesis: "[u8;32]", - ByFork: { - blockNumber: "u64", - blockHash: "[u8;32]" - }, - Polkadot: "Null", - Kusama: "Null", - Westend: "Null", - Rococo: "Null", - Wococo: "Null", - Ethereum: { - chainId: "Compact" - }, - BitcoinCore: "Null", - BitcoinCash: "Null", - PolkadotBulletin: "Null" - } - }, - /** - * Lookup56: xcm::v3::junction::BodyId - **/ - XcmV3JunctionBodyId: { - _enum: { - Unit: "Null", - Moniker: "[u8;4]", - Index: "Compact", - Executive: "Null", - Technical: "Null", - Legislative: "Null", - Judicial: "Null", - Defense: "Null", - Administration: "Null", - Treasury: "Null" - } - }, - /** - * Lookup57: xcm::v3::junction::BodyPart - **/ - XcmV3JunctionBodyPart: { - _enum: { - Voice: "Null", - Members: { - count: "Compact" - }, - Fraction: { - nom: "Compact", - denom: "Compact" - }, - AtLeastProportion: { - nom: "Compact", - denom: "Compact" - }, - MoreThanProportion: { - nom: "Compact", - denom: "Compact" - } - } - }, - /** - * Lookup65: staging_xcm::v4::Xcm - **/ - StagingXcmV4Xcm: "Vec", - /** - * Lookup67: staging_xcm::v4::Instruction - **/ - StagingXcmV4Instruction: { - _enum: { - WithdrawAsset: "StagingXcmV4AssetAssets", - ReserveAssetDeposited: "StagingXcmV4AssetAssets", - ReceiveTeleportedAsset: "StagingXcmV4AssetAssets", - QueryResponse: { - queryId: "Compact", - response: "StagingXcmV4Response", - maxWeight: "SpWeightsWeightV2Weight", - querier: "Option" - }, - TransferAsset: { - assets: "StagingXcmV4AssetAssets", - beneficiary: "StagingXcmV4Location" - }, - TransferReserveAsset: { - assets: "StagingXcmV4AssetAssets", - dest: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - Transact: { - originKind: "XcmV3OriginKind", - requireWeightAtMost: "SpWeightsWeightV2Weight", - call: "XcmDoubleEncoded" - }, - HrmpNewChannelOpenRequest: { - sender: "Compact", - maxMessageSize: "Compact", - maxCapacity: "Compact" - }, - HrmpChannelAccepted: { - recipient: "Compact" - }, - HrmpChannelClosing: { - initiator: "Compact", - sender: "Compact", - recipient: "Compact" - }, - ClearOrigin: "Null", - DescendOrigin: "StagingXcmV4Junctions", - ReportError: "StagingXcmV4QueryResponseInfo", - DepositAsset: { - assets: "StagingXcmV4AssetAssetFilter", - beneficiary: "StagingXcmV4Location" - }, - DepositReserveAsset: { - assets: "StagingXcmV4AssetAssetFilter", - dest: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - ExchangeAsset: { - give: "StagingXcmV4AssetAssetFilter", - want: "StagingXcmV4AssetAssets", - maximal: "bool" - }, - InitiateReserveWithdraw: { - assets: "StagingXcmV4AssetAssetFilter", - reserve: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - InitiateTeleport: { - assets: "StagingXcmV4AssetAssetFilter", - dest: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - ReportHolding: { - responseInfo: "StagingXcmV4QueryResponseInfo", - assets: "StagingXcmV4AssetAssetFilter" - }, - BuyExecution: { - fees: "StagingXcmV4Asset", - weightLimit: "XcmV3WeightLimit" - }, - RefundSurplus: "Null", - SetErrorHandler: "StagingXcmV4Xcm", - SetAppendix: "StagingXcmV4Xcm", - ClearError: "Null", - ClaimAsset: { - assets: "StagingXcmV4AssetAssets", - ticket: "StagingXcmV4Location" - }, - Trap: "Compact", - SubscribeVersion: { - queryId: "Compact", - maxResponseWeight: "SpWeightsWeightV2Weight" - }, - UnsubscribeVersion: "Null", - BurnAsset: "StagingXcmV4AssetAssets", - ExpectAsset: "StagingXcmV4AssetAssets", - ExpectOrigin: "Option", - ExpectError: "Option<(u32,XcmV3TraitsError)>", - ExpectTransactStatus: "XcmV3MaybeErrorCode", - QueryPallet: { - moduleName: "Bytes", - responseInfo: "StagingXcmV4QueryResponseInfo" - }, - ExpectPallet: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - crateMajor: "Compact", - minCrateMinor: "Compact" - }, - ReportTransactStatus: "StagingXcmV4QueryResponseInfo", - ClearTransactStatus: "Null", - UniversalOrigin: "StagingXcmV4Junction", - ExportMessage: { - network: "StagingXcmV4JunctionNetworkId", - destination: "StagingXcmV4Junctions", - xcm: "StagingXcmV4Xcm" - }, - LockAsset: { - asset: "StagingXcmV4Asset", - unlocker: "StagingXcmV4Location" - }, - UnlockAsset: { - asset: "StagingXcmV4Asset", - target: "StagingXcmV4Location" - }, - NoteUnlockable: { - asset: "StagingXcmV4Asset", - owner: "StagingXcmV4Location" - }, - RequestUnlock: { - asset: "StagingXcmV4Asset", - locker: "StagingXcmV4Location" - }, - SetFeesMode: { - jitWithdraw: "bool" - }, - SetTopic: "[u8;32]", - ClearTopic: "Null", - AliasOrigin: "StagingXcmV4Location", - UnpaidExecution: { - weightLimit: "XcmV3WeightLimit", - checkOrigin: "Option" - } - } - }, - /** - * Lookup68: staging_xcm::v4::asset::Assets - **/ - StagingXcmV4AssetAssets: "Vec", - /** - * Lookup70: staging_xcm::v4::asset::Asset - **/ - StagingXcmV4Asset: { - id: "StagingXcmV4AssetAssetId", - fun: "StagingXcmV4AssetFungibility" - }, - /** - * Lookup71: staging_xcm::v4::asset::AssetId - **/ - StagingXcmV4AssetAssetId: "StagingXcmV4Location", - /** - * Lookup72: staging_xcm::v4::asset::Fungibility - **/ - StagingXcmV4AssetFungibility: { - _enum: { - Fungible: "Compact", - NonFungible: "StagingXcmV4AssetAssetInstance" - } - }, - /** - * Lookup73: staging_xcm::v4::asset::AssetInstance - **/ - StagingXcmV4AssetAssetInstance: { - _enum: { - Undefined: "Null", - Index: "Compact", - Array4: "[u8;4]", - Array8: "[u8;8]", - Array16: "[u8;16]", - Array32: "[u8;32]" - } - }, - /** - * Lookup76: staging_xcm::v4::Response - **/ - StagingXcmV4Response: { - _enum: { - Null: "Null", - Assets: "StagingXcmV4AssetAssets", - ExecutionResult: "Option<(u32,XcmV3TraitsError)>", - Version: "u32", - PalletsInfo: "Vec", - DispatchResult: "XcmV3MaybeErrorCode" - } - }, - /** - * Lookup80: staging_xcm::v4::PalletInfo - **/ - StagingXcmV4PalletInfo: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - major: "Compact", - minor: "Compact", - patch: "Compact" - }, - /** - * Lookup83: xcm::v3::MaybeErrorCode - **/ - XcmV3MaybeErrorCode: { - _enum: { - Success: "Null", - Error: "Bytes", - TruncatedError: "Bytes" - } - }, - /** - * Lookup86: xcm::v3::OriginKind - **/ - XcmV3OriginKind: { - _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] - }, - /** - * Lookup87: xcm::double_encoded::DoubleEncoded - **/ - XcmDoubleEncoded: { - encoded: "Bytes" - }, - /** - * Lookup88: staging_xcm::v4::QueryResponseInfo - **/ - StagingXcmV4QueryResponseInfo: { - destination: "StagingXcmV4Location", - queryId: "Compact", - maxWeight: "SpWeightsWeightV2Weight" - }, - /** - * Lookup89: staging_xcm::v4::asset::AssetFilter - **/ - StagingXcmV4AssetAssetFilter: { - _enum: { - Definite: "StagingXcmV4AssetAssets", - Wild: "StagingXcmV4AssetWildAsset" - } - }, - /** - * Lookup90: staging_xcm::v4::asset::WildAsset - **/ - StagingXcmV4AssetWildAsset: { - _enum: { - All: "Null", - AllOf: { - id: "StagingXcmV4AssetAssetId", - fun: "StagingXcmV4AssetWildFungibility" - }, - AllCounted: "Compact", - AllOfCounted: { - id: "StagingXcmV4AssetAssetId", - fun: "StagingXcmV4AssetWildFungibility", - count: "Compact" - } - } - }, - /** - * Lookup91: staging_xcm::v4::asset::WildFungibility - **/ - StagingXcmV4AssetWildFungibility: { - _enum: ["Fungible", "NonFungible"] - }, - /** - * Lookup92: xcm::v3::WeightLimit - **/ - XcmV3WeightLimit: { - _enum: { - Unlimited: "Null", - Limited: "SpWeightsWeightV2Weight" - } - }, - /** - * Lookup93: xcm::VersionedAssets - **/ - XcmVersionedAssets: { - _enum: { - __Unused0: "Null", - V2: "XcmV2MultiassetMultiAssets", - __Unused2: "Null", - V3: "XcmV3MultiassetMultiAssets", - V4: "StagingXcmV4AssetAssets" - } - }, - /** - * Lookup94: xcm::v2::multiasset::MultiAssets - **/ - XcmV2MultiassetMultiAssets: "Vec", - /** - * Lookup96: xcm::v2::multiasset::MultiAsset - **/ - XcmV2MultiAsset: { - id: "XcmV2MultiassetAssetId", - fun: "XcmV2MultiassetFungibility" - }, - /** - * Lookup97: xcm::v2::multiasset::AssetId - **/ - XcmV2MultiassetAssetId: { - _enum: { - Concrete: "XcmV2MultiLocation", - Abstract: "Bytes" - } - }, - /** - * Lookup98: xcm::v2::multilocation::MultiLocation - **/ - XcmV2MultiLocation: { - parents: "u8", - interior: "XcmV2MultilocationJunctions" - }, - /** - * Lookup99: xcm::v2::multilocation::Junctions - **/ - XcmV2MultilocationJunctions: { - _enum: { - Here: "Null", - X1: "XcmV2Junction", - X2: "(XcmV2Junction,XcmV2Junction)", - X3: "(XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X4: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X5: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X6: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X7: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X8: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)" - } - }, - /** - * Lookup100: xcm::v2::junction::Junction - **/ - XcmV2Junction: { - _enum: { - Parachain: "Compact", - AccountId32: { - network: "XcmV2NetworkId", - id: "[u8;32]" - }, - AccountIndex64: { - network: "XcmV2NetworkId", - index: "Compact" - }, - AccountKey20: { - network: "XcmV2NetworkId", - key: "[u8;20]" - }, - PalletInstance: "u8", - GeneralIndex: "Compact", - GeneralKey: "Bytes", - OnlyChild: "Null", - Plurality: { - id: "XcmV2BodyId", - part: "XcmV2BodyPart" - } - } - }, - /** - * Lookup101: xcm::v2::NetworkId - **/ - XcmV2NetworkId: { - _enum: { - Any: "Null", - Named: "Bytes", - Polkadot: "Null", - Kusama: "Null" - } - }, - /** - * Lookup103: xcm::v2::BodyId - **/ - XcmV2BodyId: { - _enum: { - Unit: "Null", - Named: "Bytes", - Index: "Compact", - Executive: "Null", - Technical: "Null", - Legislative: "Null", - Judicial: "Null", - Defense: "Null", - Administration: "Null", - Treasury: "Null" - } - }, - /** - * Lookup104: xcm::v2::BodyPart - **/ - XcmV2BodyPart: { - _enum: { - Voice: "Null", - Members: { - count: "Compact" - }, - Fraction: { - nom: "Compact", - denom: "Compact" - }, - AtLeastProportion: { - nom: "Compact", - denom: "Compact" - }, - MoreThanProportion: { - nom: "Compact", - denom: "Compact" - } - } - }, - /** - * Lookup105: xcm::v2::multiasset::Fungibility - **/ - XcmV2MultiassetFungibility: { - _enum: { - Fungible: "Compact", - NonFungible: "XcmV2MultiassetAssetInstance" - } - }, - /** - * Lookup106: xcm::v2::multiasset::AssetInstance - **/ - XcmV2MultiassetAssetInstance: { - _enum: { - Undefined: "Null", - Index: "Compact", - Array4: "[u8;4]", - Array8: "[u8;8]", - Array16: "[u8;16]", - Array32: "[u8;32]", - Blob: "Bytes" - } - }, - /** - * Lookup107: xcm::v3::multiasset::MultiAssets - **/ - XcmV3MultiassetMultiAssets: "Vec", - /** - * Lookup109: xcm::v3::multiasset::MultiAsset - **/ - XcmV3MultiAsset: { - id: "XcmV3MultiassetAssetId", - fun: "XcmV3MultiassetFungibility" - }, - /** - * Lookup110: xcm::v3::multiasset::AssetId - **/ - XcmV3MultiassetAssetId: { - _enum: { - Concrete: "StagingXcmV3MultiLocation", - Abstract: "[u8;32]" - } - }, - /** - * Lookup111: staging_xcm::v3::multilocation::MultiLocation - **/ - StagingXcmV3MultiLocation: { - parents: "u8", - interior: "XcmV3Junctions" - }, - /** - * Lookup112: xcm::v3::junctions::Junctions - **/ - XcmV3Junctions: { - _enum: { - Here: "Null", - X1: "XcmV3Junction", - X2: "(XcmV3Junction,XcmV3Junction)", - X3: "(XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X4: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X5: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X6: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X7: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X8: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)" - } - }, - /** - * Lookup113: xcm::v3::junction::Junction - **/ - XcmV3Junction: { - _enum: { - Parachain: "Compact", - AccountId32: { - network: "Option", - id: "[u8;32]" - }, - AccountIndex64: { - network: "Option", - index: "Compact" - }, - AccountKey20: { - network: "Option", - key: "[u8;20]" - }, - PalletInstance: "u8", - GeneralIndex: "Compact", - GeneralKey: { - length: "u8", - data: "[u8;32]" - }, - OnlyChild: "Null", - Plurality: { - id: "XcmV3JunctionBodyId", - part: "XcmV3JunctionBodyPart" - }, - GlobalConsensus: "XcmV3JunctionNetworkId" - } - }, - /** - * Lookup115: xcm::v3::junction::NetworkId - **/ - XcmV3JunctionNetworkId: { - _enum: { - ByGenesis: "[u8;32]", - ByFork: { - blockNumber: "u64", - blockHash: "[u8;32]" - }, - Polkadot: "Null", - Kusama: "Null", - Westend: "Null", - Rococo: "Null", - Wococo: "Null", - Ethereum: { - chainId: "Compact" - }, - BitcoinCore: "Null", - BitcoinCash: "Null", - PolkadotBulletin: "Null" - } - }, - /** - * Lookup116: xcm::v3::multiasset::Fungibility - **/ - XcmV3MultiassetFungibility: { - _enum: { - Fungible: "Compact", - NonFungible: "XcmV3MultiassetAssetInstance" - } - }, - /** - * Lookup117: xcm::v3::multiasset::AssetInstance - **/ - XcmV3MultiassetAssetInstance: { - _enum: { - Undefined: "Null", - Index: "Compact", - Array4: "[u8;4]", - Array8: "[u8;8]", - Array16: "[u8;16]", - Array32: "[u8;32]" - } - }, - /** - * Lookup118: xcm::VersionedLocation - **/ - XcmVersionedLocation: { - _enum: { - __Unused0: "Null", - V2: "XcmV2MultiLocation", - __Unused2: "Null", - V3: "StagingXcmV3MultiLocation", - V4: "StagingXcmV4Location" - } - }, - /** - * Lookup119: cumulus_pallet_xcm::pallet::Event - **/ - CumulusPalletXcmEvent: { - _enum: { - InvalidFormat: "[u8;32]", - UnsupportedVersion: "[u8;32]", - ExecutedDownward: "([u8;32],StagingXcmV4TraitsOutcome)" - } - }, - /** - * Lookup120: pallet_message_queue::pallet::Event - **/ - PalletMessageQueueEvent: { - _enum: { - ProcessingFailed: { - id: "H256", - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - error: "FrameSupportMessagesProcessMessageError" - }, - Processed: { - id: "H256", - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - weightUsed: "SpWeightsWeightV2Weight", - success: "bool" - }, - OverweightEnqueued: { - id: "[u8;32]", - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - pageIndex: "u32", - messageIndex: "u32" - }, - PageReaped: { - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - index: "u32" - } - } - }, - /** - * Lookup121: cumulus_primitives_core::AggregateMessageOrigin - **/ - CumulusPrimitivesCoreAggregateMessageOrigin: { - _enum: { - Here: "Null", - Parent: "Null", - Sibling: "u32" - } - }, - /** - * Lookup123: frame_support::traits::messages::ProcessMessageError - **/ - FrameSupportMessagesProcessMessageError: { - _enum: { - BadFormat: "Null", - Corrupt: "Null", - Unsupported: "Null", - Overweight: "SpWeightsWeightV2Weight", - Yield: "Null", - StackLimitReached: "Null" - } - }, - /** - * Lookup124: pallet_storage_providers::pallet::Event - **/ - PalletStorageProvidersEvent: { - _enum: { - MspRequestSignUpSuccess: { - who: "AccountId32", - multiaddresses: "Vec", - capacity: "u64", - valueProp: "PalletStorageProvidersValueProposition" - }, - MspSignUpSuccess: { - who: "AccountId32", - mspId: "H256", - multiaddresses: "Vec", - capacity: "u64", - valueProp: "PalletStorageProvidersValueProposition" - }, - BspRequestSignUpSuccess: { - who: "AccountId32", - multiaddresses: "Vec", - capacity: "u64" - }, - BspSignUpSuccess: { - who: "AccountId32", - bspId: "H256", - multiaddresses: "Vec", - capacity: "u64" - }, - SignUpRequestCanceled: { - who: "AccountId32" - }, - MspSignOffSuccess: { - who: "AccountId32", - mspId: "H256" - }, - BspSignOffSuccess: { - who: "AccountId32", - bspId: "H256" - }, - CapacityChanged: { - who: "AccountId32", - providerId: "PalletStorageProvidersStorageProviderId", - oldCapacity: "u64", - newCapacity: "u64", - nextBlockWhenChangeAllowed: "u32" - }, - Slashed: { - providerId: "H256", - amountSlashed: "u128" - } - } - }, - /** - * Lookup128: pallet_storage_providers::types::ValueProposition - **/ - PalletStorageProvidersValueProposition: { - identifier: "H256", - dataLimit: "u64", - protocols: "Vec" - }, - /** - * Lookup130: pallet_storage_providers::types::StorageProviderId - **/ - PalletStorageProvidersStorageProviderId: { - _enum: { - BackupStorageProvider: "H256", - MainStorageProvider: "H256" - } - }, - /** - * Lookup131: pallet_file_system::pallet::Event - **/ - PalletFileSystemEvent: { - _enum: { - NewBucket: { - who: "AccountId32", - mspId: "H256", - bucketId: "H256", - name: "Bytes", - collectionId: "Option", - private: "bool" - }, - MoveBucketRequested: { - who: "AccountId32", - bucketId: "H256", - newMspId: "H256" - }, - BucketPrivacyUpdated: { - who: "AccountId32", - bucketId: "H256", - collectionId: "Option", - private: "bool" - }, - NewCollectionAndAssociation: { - who: "AccountId32", - bucketId: "H256", - collectionId: "u32" - }, - NewStorageRequest: { - _alias: { - size_: "size" - }, - who: "AccountId32", - fileKey: "H256", - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - size_: "u64", - peerIds: "Vec" - }, - MspRespondedToStorageRequests: { - results: "PalletFileSystemMspRespondStorageRequestsResult" - }, - AcceptedBspVolunteer: { - _alias: { - size_: "size" - }, - bspId: "H256", - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - multiaddresses: "Vec", - owner: "AccountId32", - size_: "u64" - }, - BspConfirmedStoring: { - who: "AccountId32", - bspId: "H256", - fileKeys: "Vec", - newRoot: "H256" - }, - StorageRequestFulfilled: { - fileKey: "H256" - }, - StorageRequestExpired: { - fileKey: "H256" - }, - StorageRequestRevoked: { - fileKey: "H256" - }, - BspRequestedToStopStoring: { - bspId: "H256", - fileKey: "H256", - owner: "AccountId32", - location: "Bytes" - }, - BspConfirmStoppedStoring: { - bspId: "H256", - fileKey: "H256", - newRoot: "H256" - }, - PriorityChallengeForFileDeletionQueued: { - issuer: "PalletFileSystemEitherAccountIdOrMspId", - fileKey: "H256" - }, - SpStopStoringInsolventUser: { - spId: "H256", - fileKey: "H256", - owner: "AccountId32", - location: "Bytes", - newRoot: "H256" - }, - FailedToQueuePriorityChallenge: { - user: "AccountId32", - fileKey: "H256" - }, - FileDeletionRequest: { - user: "AccountId32", - fileKey: "H256", - bucketId: "H256", - mspId: "H256", - proofOfInclusion: "bool" - }, - ProofSubmittedForPendingFileDeletionRequest: { - mspId: "H256", - user: "AccountId32", - fileKey: "H256", - bucketId: "H256", - proofOfInclusion: "bool" - }, - BspChallengeCycleInitialised: { - who: "AccountId32", - bspId: "H256" - }, - MoveBucketRequestExpired: { - mspId: "H256", - bucketId: "H256" - }, - MoveBucketAccepted: { - bucketId: "H256", - mspId: "H256" - }, - MoveBucketRejected: { - bucketId: "H256", - mspId: "H256" - }, - DataServerRegisteredForMoveBucket: { - bspId: "H256", - bucketId: "H256" - } - } - }, - /** - * Lookup134: pallet_file_system::types::MspRespondStorageRequestsResult - **/ - PalletFileSystemMspRespondStorageRequestsResult: { - mspId: "H256", - responses: "Vec" - }, - /** - * Lookup136: pallet_file_system::types::BatchResponses - **/ - PalletFileSystemBatchResponses: { - _enum: { - Accepted: "PalletFileSystemMspAcceptedBatchStorageRequests", - Rejected: "PalletFileSystemMspRejectedBatchStorageRequests", - Failed: "PalletFileSystemMspFailedBatchStorageRequests" - } - }, - /** - * Lookup137: pallet_file_system::types::MspAcceptedBatchStorageRequests - **/ - PalletFileSystemMspAcceptedBatchStorageRequests: { - fileKeys: "Vec", - bucketId: "H256", - newBucketRoot: "H256", - owner: "AccountId32" - }, - /** - * Lookup140: pallet_file_system::types::MspRejectedBatchStorageRequests - **/ - PalletFileSystemMspRejectedBatchStorageRequests: { - fileKeys: "Vec<(H256,PalletFileSystemRejectedStorageRequestReason)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup143: pallet_file_system::types::RejectedStorageRequestReason - **/ - PalletFileSystemRejectedStorageRequestReason: { - _enum: ["ReachedMaximumCapacity", "ReceivedInvalidProof", "InternalError"] - }, - /** - * Lookup145: pallet_file_system::types::MspFailedBatchStorageRequests - **/ - PalletFileSystemMspFailedBatchStorageRequests: { - fileKeys: "Vec<(H256,SpRuntimeDispatchError)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup150: pallet_file_system::types::EitherAccountIdOrMspId - **/ - PalletFileSystemEitherAccountIdOrMspId: { - _enum: { - AccountId: "AccountId32", - MspId: "H256" - } - }, - /** - * Lookup151: pallet_proofs_dealer::pallet::Event - **/ - PalletProofsDealerEvent: { - _enum: { - NewChallenge: { - who: "AccountId32", - keyChallenged: "H256" - }, - ProofAccepted: { - provider: "H256", - proof: "PalletProofsDealerProof" - }, - NewChallengeSeed: { - challengesTicker: "u32", - seed: "H256" - }, - NewCheckpointChallenge: { - challengesTicker: "u32", - challenges: "Vec<(H256,Option)>" - }, - SlashableProvider: { - provider: "H256", - nextChallengeDeadline: "u32" - }, - NoRecordOfLastSubmittedProof: { - provider: "H256" - }, - NewChallengeCycleInitialised: { - currentTick: "u32", - nextChallengeDeadline: "u32", - provider: "H256", - maybeProviderAccount: "Option" - }, - MutationsApplied: { - provider: "H256", - mutations: "Vec<(H256,ShpTraitsTrieRemoveMutation)>", - newRoot: "H256" - }, - ChallengesTickerSet: { - paused: "bool" - } - } - }, - /** - * Lookup152: pallet_proofs_dealer::types::Proof - **/ - PalletProofsDealerProof: { - forestProof: "SpTrieStorageProofCompactProof", - keyProofs: "BTreeMap" - }, - /** - * Lookup153: sp_trie::storage_proof::CompactProof - **/ - SpTrieStorageProofCompactProof: { - encodedNodes: "Vec" - }, - /** - * Lookup156: pallet_proofs_dealer::types::KeyProof - **/ - PalletProofsDealerKeyProof: { - proof: "ShpFileKeyVerifierFileKeyProof", - challengeCount: "u32" - }, - /** - * Lookup157: shp_file_key_verifier::types::FileKeyProof - **/ - ShpFileKeyVerifierFileKeyProof: { - fileMetadata: "ShpFileMetadataFileMetadata", - proof: "SpTrieStorageProofCompactProof" - }, - /** - * Lookup158: shp_file_metadata::FileMetadata - **/ - ShpFileMetadataFileMetadata: { - owner: "Bytes", - bucketId: "Bytes", - location: "Bytes", - fileSize: "Compact", - fingerprint: "ShpFileMetadataFingerprint" - }, - /** - * Lookup159: shp_file_metadata::Fingerprint - **/ - ShpFileMetadataFingerprint: "[u8;32]", - /** - * Lookup165: shp_traits::TrieRemoveMutation - **/ - ShpTraitsTrieRemoveMutation: "Null", - /** - * Lookup169: pallet_randomness::pallet::Event - **/ - PalletRandomnessEvent: { - _enum: { - NewOneEpochAgoRandomnessAvailable: { - randomnessSeed: "H256", - fromEpoch: "u64", - validUntilBlock: "u32" - } - } - }, - /** - * Lookup170: pallet_payment_streams::pallet::Event - **/ - PalletPaymentStreamsEvent: { - _enum: { - FixedRatePaymentStreamCreated: { - userAccount: "AccountId32", - providerId: "H256", - rate: "u128" - }, - FixedRatePaymentStreamUpdated: { - userAccount: "AccountId32", - providerId: "H256", - newRate: "u128" - }, - FixedRatePaymentStreamDeleted: { - userAccount: "AccountId32", - providerId: "H256" - }, - DynamicRatePaymentStreamCreated: { - userAccount: "AccountId32", - providerId: "H256", - amountProvided: "u64" - }, - DynamicRatePaymentStreamUpdated: { - userAccount: "AccountId32", - providerId: "H256", - newAmountProvided: "u64" - }, - DynamicRatePaymentStreamDeleted: { - userAccount: "AccountId32", - providerId: "H256" - }, - PaymentStreamCharged: { - userAccount: "AccountId32", - providerId: "H256", - amount: "u128" - }, - LastChargeableInfoUpdated: { - providerId: "H256", - lastChargeableTick: "u32", - lastChargeablePriceIndex: "u128" - }, - UserWithoutFunds: { - who: "AccountId32" - }, - UserPaidDebts: { - who: "AccountId32" - }, - UserSolvent: { - who: "AccountId32" - } - } - }, - /** - * Lookup171: pallet_bucket_nfts::pallet::Event - **/ - PalletBucketNftsEvent: { - _enum: { - AccessShared: { - issuer: "AccountId32", - recipient: "AccountId32" - }, - ItemReadAccessUpdated: { - admin: "AccountId32", - bucket: "H256", - itemId: "u32" - }, - ItemBurned: { - account: "AccountId32", - bucket: "H256", - itemId: "u32" - } - } - }, - /** - * Lookup172: pallet_nfts::pallet::Event - **/ - PalletNftsEvent: { - _enum: { - Created: { - collection: "u32", - creator: "AccountId32", - owner: "AccountId32" - }, - ForceCreated: { - collection: "u32", - owner: "AccountId32" - }, - Destroyed: { - collection: "u32" - }, - Issued: { - collection: "u32", - item: "u32", - owner: "AccountId32" - }, - Transferred: { - collection: "u32", - item: "u32", - from: "AccountId32", - to: "AccountId32" - }, - Burned: { - collection: "u32", - item: "u32", - owner: "AccountId32" - }, - ItemTransferLocked: { - collection: "u32", - item: "u32" - }, - ItemTransferUnlocked: { - collection: "u32", - item: "u32" - }, - ItemPropertiesLocked: { - collection: "u32", - item: "u32", - lockMetadata: "bool", - lockAttributes: "bool" - }, - CollectionLocked: { - collection: "u32" - }, - OwnerChanged: { - collection: "u32", - newOwner: "AccountId32" - }, - TeamChanged: { - collection: "u32", - issuer: "Option", - admin: "Option", - freezer: "Option" - }, - TransferApproved: { - collection: "u32", - item: "u32", - owner: "AccountId32", - delegate: "AccountId32", - deadline: "Option" - }, - ApprovalCancelled: { - collection: "u32", - item: "u32", - owner: "AccountId32", - delegate: "AccountId32" - }, - AllApprovalsCancelled: { - collection: "u32", - item: "u32", - owner: "AccountId32" - }, - CollectionConfigChanged: { - collection: "u32" - }, - CollectionMetadataSet: { - collection: "u32", - data: "Bytes" - }, - CollectionMetadataCleared: { - collection: "u32" - }, - ItemMetadataSet: { - collection: "u32", - item: "u32", - data: "Bytes" - }, - ItemMetadataCleared: { - collection: "u32", - item: "u32" - }, - Redeposited: { - collection: "u32", - successfulItems: "Vec" - }, - AttributeSet: { - collection: "u32", - maybeItem: "Option", - key: "Bytes", - value: "Bytes", - namespace: "PalletNftsAttributeNamespace" - }, - AttributeCleared: { - collection: "u32", - maybeItem: "Option", - key: "Bytes", - namespace: "PalletNftsAttributeNamespace" - }, - ItemAttributesApprovalAdded: { - collection: "u32", - item: "u32", - delegate: "AccountId32" - }, - ItemAttributesApprovalRemoved: { - collection: "u32", - item: "u32", - delegate: "AccountId32" - }, - OwnershipAcceptanceChanged: { - who: "AccountId32", - maybeCollection: "Option" - }, - CollectionMaxSupplySet: { - collection: "u32", - maxSupply: "u32" - }, - CollectionMintSettingsUpdated: { - collection: "u32" - }, - NextCollectionIdIncremented: { - nextId: "Option" - }, - ItemPriceSet: { - collection: "u32", - item: "u32", - price: "u128", - whitelistedBuyer: "Option" - }, - ItemPriceRemoved: { - collection: "u32", - item: "u32" - }, - ItemBought: { - collection: "u32", - item: "u32", - price: "u128", - seller: "AccountId32", - buyer: "AccountId32" - }, - TipSent: { - collection: "u32", - item: "u32", - sender: "AccountId32", - receiver: "AccountId32", - amount: "u128" - }, - SwapCreated: { - offeredCollection: "u32", - offeredItem: "u32", - desiredCollection: "u32", - desiredItem: "Option", - price: "Option", - deadline: "u32" - }, - SwapCancelled: { - offeredCollection: "u32", - offeredItem: "u32", - desiredCollection: "u32", - desiredItem: "Option", - price: "Option", - deadline: "u32" - }, - SwapClaimed: { - sentCollection: "u32", - sentItem: "u32", - sentItemOwner: "AccountId32", - receivedCollection: "u32", - receivedItem: "u32", - receivedItemOwner: "AccountId32", - price: "Option", - deadline: "u32" - }, - PreSignedAttributesSet: { - collection: "u32", - item: "u32", - namespace: "PalletNftsAttributeNamespace" - }, - PalletAttributeSet: { - collection: "u32", - item: "Option", - attribute: "PalletNftsPalletAttributes", - value: "Bytes" - } - } - }, - /** - * Lookup176: pallet_nfts::types::AttributeNamespace - **/ - PalletNftsAttributeNamespace: { - _enum: { - Pallet: "Null", - CollectionOwner: "Null", - ItemOwner: "Null", - Account: "AccountId32" - } - }, - /** - * Lookup178: pallet_nfts::types::PriceWithDirection - **/ - PalletNftsPriceWithDirection: { - amount: "u128", - direction: "PalletNftsPriceDirection" - }, - /** - * Lookup179: pallet_nfts::types::PriceDirection - **/ - PalletNftsPriceDirection: { - _enum: ["Send", "Receive"] - }, - /** - * Lookup180: pallet_nfts::types::PalletAttributes - **/ - PalletNftsPalletAttributes: { - _enum: { - UsedToClaim: "u32", - TransferDisabled: "Null" - } - }, - /** - * Lookup181: pallet_parameters::pallet::Event - **/ - PalletParametersEvent: { - _enum: { - Updated: { - key: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey", - oldValue: "Option", - newValue: "Option" - } - } - }, - /** - * Lookup182: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { - _enum: { - RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey" - } - }, - /** - * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { - _enum: [ - "SlashAmountPerMaxFileSize", - "StakeToChallengePeriod", - "CheckpointChallengePeriod", - "MinChallengePeriod" - ] - }, - /** - * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: "Null", - /** - * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: "Null", - /** - * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: "Null", - /** - * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: "Null", - /** - * Lookup189: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { - _enum: { - RuntimeConfig: - "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue" - } - }, - /** - * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { - _enum: { - SlashAmountPerMaxFileSize: "u128", - StakeToChallengePeriod: "u128", - CheckpointChallengePeriod: "u32", - MinChallengePeriod: "u32" - } - }, - /** - * Lookup191: frame_system::Phase - **/ - FrameSystemPhase: { - _enum: { - ApplyExtrinsic: "u32", - Finalization: "Null", - Initialization: "Null" - } - }, - /** - * Lookup194: frame_system::LastRuntimeUpgradeInfo - **/ - FrameSystemLastRuntimeUpgradeInfo: { - specVersion: "Compact", - specName: "Text" - }, - /** - * Lookup196: frame_system::CodeUpgradeAuthorization - **/ - FrameSystemCodeUpgradeAuthorization: { - codeHash: "H256", - checkVersion: "bool" - }, - /** - * Lookup197: frame_system::pallet::Call - **/ - FrameSystemCall: { - _enum: { - remark: { - remark: "Bytes" - }, - set_heap_pages: { - pages: "u64" - }, - set_code: { - code: "Bytes" - }, - set_code_without_checks: { - code: "Bytes" - }, - set_storage: { - items: "Vec<(Bytes,Bytes)>" - }, - kill_storage: { - _alias: { - keys_: "keys" - }, - keys_: "Vec" - }, - kill_prefix: { - prefix: "Bytes", - subkeys: "u32" - }, - remark_with_event: { - remark: "Bytes" - }, - __Unused8: "Null", - authorize_upgrade: { - codeHash: "H256" - }, - authorize_upgrade_without_checks: { - codeHash: "H256" - }, - apply_authorized_upgrade: { - code: "Bytes" - } - } - }, - /** - * Lookup200: frame_system::limits::BlockWeights - **/ - FrameSystemLimitsBlockWeights: { - baseBlock: "SpWeightsWeightV2Weight", - maxBlock: "SpWeightsWeightV2Weight", - perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass" - }, - /** - * Lookup201: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeightsPerClass: { - normal: "FrameSystemLimitsWeightsPerClass", - operational: "FrameSystemLimitsWeightsPerClass", - mandatory: "FrameSystemLimitsWeightsPerClass" - }, - /** - * Lookup202: frame_system::limits::WeightsPerClass - **/ - FrameSystemLimitsWeightsPerClass: { - baseExtrinsic: "SpWeightsWeightV2Weight", - maxExtrinsic: "Option", - maxTotal: "Option", - reserved: "Option" - }, - /** - * Lookup204: frame_system::limits::BlockLength - **/ - FrameSystemLimitsBlockLength: { - max: "FrameSupportDispatchPerDispatchClassU32" - }, - /** - * Lookup205: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassU32: { - normal: "u32", - operational: "u32", - mandatory: "u32" - }, - /** - * Lookup206: sp_weights::RuntimeDbWeight - **/ - SpWeightsRuntimeDbWeight: { - read: "u64", - write: "u64" - }, - /** - * Lookup207: sp_version::RuntimeVersion - **/ - SpVersionRuntimeVersion: { - specName: "Text", - implName: "Text", - authoringVersion: "u32", - specVersion: "u32", - implVersion: "u32", - apis: "Vec<([u8;8],u32)>", - transactionVersion: "u32", - stateVersion: "u8" - }, - /** - * Lookup212: frame_system::pallet::Error - **/ - FrameSystemError: { - _enum: [ - "InvalidSpecName", - "SpecVersionNeedsToIncrease", - "FailedToExtractRuntimeVersion", - "NonDefaultComposite", - "NonZeroRefCount", - "CallFiltered", - "MultiBlockMigrationsOngoing", - "NothingAuthorized", - "Unauthorized" - ] - }, - /** - * Lookup214: cumulus_pallet_parachain_system::unincluded_segment::Ancestor - **/ - CumulusPalletParachainSystemUnincludedSegmentAncestor: { - usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", - paraHeadHash: "Option", - consumedGoAheadSignal: "Option" - }, - /** - * Lookup215: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth - **/ - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { - umpMsgCount: "u32", - umpTotalBytes: "u32", - hrmpOutgoing: "BTreeMap" - }, - /** - * Lookup217: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate - **/ - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { - msgCount: "u32", - totalBytes: "u32" - }, - /** -<<<<<<< HEAD - * Lookup197: polkadot_primitives::v7::UpgradeGoAhead -======= - * Lookup222: polkadot_primitives::v7::UpgradeGoAhead ->>>>>>> main - **/ - PolkadotPrimitivesV7UpgradeGoAhead: { - _enum: ["Abort", "GoAhead"] - }, - /** - * Lookup223: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker - **/ - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { - usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", - hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" - }, - /** -<<<<<<< HEAD - * Lookup199: polkadot_primitives::v7::PersistedValidationData -======= - * Lookup224: polkadot_primitives::v7::PersistedValidationData ->>>>>>> main - **/ - PolkadotPrimitivesV7PersistedValidationData: { - parentHead: "Bytes", - relayParentNumber: "u32", - relayParentStorageRoot: "H256", - maxPovSize: "u32" - }, - /** -<<<<<<< HEAD - * Lookup202: polkadot_primitives::v7::UpgradeRestriction -======= - * Lookup227: polkadot_primitives::v7::UpgradeRestriction ->>>>>>> main - **/ - PolkadotPrimitivesV7UpgradeRestriction: { - _enum: ["Present"] - }, - /** - * Lookup228: sp_trie::storage_proof::StorageProof - **/ - SpTrieStorageProof: { - trieNodes: "BTreeSet" - }, - /** - * Lookup230: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot - **/ - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { - dmqMqcHead: "H256", - relayDispatchQueueRemainingCapacity: - "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" - }, - /** - * Lookup231: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity - **/ - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { - remainingCount: "u32", - remainingSize: "u32" - }, - /** -<<<<<<< HEAD - * Lookup209: polkadot_primitives::v7::AbridgedHrmpChannel -======= - * Lookup234: polkadot_primitives::v7::AbridgedHrmpChannel ->>>>>>> main - **/ - PolkadotPrimitivesV7AbridgedHrmpChannel: { - maxCapacity: "u32", - maxTotalSize: "u32", - maxMessageSize: "u32", - msgCount: "u32", - totalSize: "u32", - mqcHead: "Option" - }, - /** -<<<<<<< HEAD - * Lookup210: polkadot_primitives::v7::AbridgedHostConfiguration -======= - * Lookup235: polkadot_primitives::v7::AbridgedHostConfiguration ->>>>>>> main - **/ - PolkadotPrimitivesV7AbridgedHostConfiguration: { - maxCodeSize: "u32", - maxHeadDataSize: "u32", - maxUpwardQueueCount: "u32", - maxUpwardQueueSize: "u32", - maxUpwardMessageSize: "u32", - maxUpwardMessageNumPerCandidate: "u32", - hrmpMaxMessageNumPerCandidate: "u32", - validationUpgradeCooldown: "u32", - validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" - }, - /** -<<<<<<< HEAD - * Lookup211: polkadot_primitives::v7::async_backing::AsyncBackingParams -======= - * Lookup236: polkadot_primitives::v7::async_backing::AsyncBackingParams ->>>>>>> main - **/ - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { - maxCandidateDepth: "u32", - allowedAncestryLen: "u32" - }, - /** - * Lookup242: polkadot_core_primitives::OutboundHrmpMessage - **/ - PolkadotCorePrimitivesOutboundHrmpMessage: { - recipient: "u32", - data: "Bytes" - }, - /** - * Lookup244: cumulus_pallet_parachain_system::pallet::Call - **/ - CumulusPalletParachainSystemCall: { - _enum: { - set_validation_data: { - data: "CumulusPrimitivesParachainInherentParachainInherentData" - }, - sudo_send_upward_message: { - message: "Bytes" - }, - authorize_upgrade: { - codeHash: "H256", - checkVersion: "bool" - }, - enact_authorized_upgrade: { - code: "Bytes" - } - } - }, - /** - * Lookup245: cumulus_primitives_parachain_inherent::ParachainInherentData - **/ - CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV7PersistedValidationData", - relayChainState: "SpTrieStorageProof", - downwardMessages: "Vec", - horizontalMessages: "BTreeMap>" - }, - /** - * Lookup247: polkadot_core_primitives::InboundDownwardMessage - **/ - PolkadotCorePrimitivesInboundDownwardMessage: { - sentAt: "u32", - msg: "Bytes" - }, - /** - * Lookup250: polkadot_core_primitives::InboundHrmpMessage - **/ - PolkadotCorePrimitivesInboundHrmpMessage: { - sentAt: "u32", - data: "Bytes" - }, - /** - * Lookup253: cumulus_pallet_parachain_system::pallet::Error - **/ - CumulusPalletParachainSystemError: { - _enum: [ - "OverlappingUpgrades", - "ProhibitedByPolkadot", - "TooBig", - "ValidationDataNotAvailable", - "HostConfigurationNotAvailable", - "NotScheduled", - "NothingAuthorized", - "Unauthorized" - ] - }, - /** - * Lookup254: pallet_timestamp::pallet::Call - **/ - PalletTimestampCall: { - _enum: { - set: { - now: "Compact" - } - } - }, - /** - * Lookup255: staging_parachain_info::pallet::Call - **/ - StagingParachainInfoCall: "Null", - /** - * Lookup257: pallet_balances::types::BalanceLock - **/ - PalletBalancesBalanceLock: { - id: "[u8;8]", - amount: "u128", - reasons: "PalletBalancesReasons" - }, - /** - * Lookup258: pallet_balances::types::Reasons - **/ - PalletBalancesReasons: { - _enum: ["Fee", "Misc", "All"] - }, - /** - * Lookup261: pallet_balances::types::ReserveData - **/ - PalletBalancesReserveData: { - id: "[u8;8]", - amount: "u128" - }, - /** - * Lookup265: storage_hub_runtime::RuntimeHoldReason - **/ - StorageHubRuntimeRuntimeHoldReason: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - __Unused3: "Null", - __Unused4: "Null", - __Unused5: "Null", - __Unused6: "Null", - __Unused7: "Null", - __Unused8: "Null", - __Unused9: "Null", - __Unused10: "Null", - __Unused11: "Null", - __Unused12: "Null", - __Unused13: "Null", - __Unused14: "Null", - __Unused15: "Null", - __Unused16: "Null", - __Unused17: "Null", - __Unused18: "Null", - __Unused19: "Null", - __Unused20: "Null", - __Unused21: "Null", - __Unused22: "Null", - __Unused23: "Null", - __Unused24: "Null", - __Unused25: "Null", - __Unused26: "Null", - __Unused27: "Null", - __Unused28: "Null", - __Unused29: "Null", - __Unused30: "Null", - __Unused31: "Null", - __Unused32: "Null", - __Unused33: "Null", - __Unused34: "Null", - __Unused35: "Null", - __Unused36: "Null", - __Unused37: "Null", - __Unused38: "Null", - __Unused39: "Null", - Providers: "PalletStorageProvidersHoldReason", - __Unused41: "Null", - __Unused42: "Null", - __Unused43: "Null", - PaymentStreams: "PalletPaymentStreamsHoldReason" - } - }, - /** - * Lookup266: pallet_storage_providers::pallet::HoldReason - **/ - PalletStorageProvidersHoldReason: { - _enum: ["StorageProviderDeposit", "BucketDeposit"] - }, - /** - * Lookup267: pallet_payment_streams::pallet::HoldReason - **/ - PalletPaymentStreamsHoldReason: { - _enum: ["PaymentStreamDeposit"] - }, - /** - * Lookup270: pallet_balances::types::IdAmount - **/ - PalletBalancesIdAmount: { - id: "Null", - amount: "u128" - }, - /** - * Lookup272: pallet_balances::pallet::Call - **/ - PalletBalancesCall: { - _enum: { - transfer_allow_death: { - dest: "MultiAddress", - value: "Compact" - }, - __Unused1: "Null", - force_transfer: { - source: "MultiAddress", - dest: "MultiAddress", - value: "Compact" - }, - transfer_keep_alive: { - dest: "MultiAddress", - value: "Compact" - }, - transfer_all: { - dest: "MultiAddress", - keepAlive: "bool" - }, - force_unreserve: { - who: "MultiAddress", - amount: "u128" - }, - upgrade_accounts: { - who: "Vec" - }, - __Unused7: "Null", - force_set_balance: { - who: "MultiAddress", - newFree: "Compact" - }, - force_adjust_total_issuance: { - direction: "PalletBalancesAdjustmentDirection", - delta: "Compact" - }, - burn: { - value: "Compact", - keepAlive: "bool" - } - } - }, - /** - * Lookup275: pallet_balances::types::AdjustmentDirection - **/ - PalletBalancesAdjustmentDirection: { - _enum: ["Increase", "Decrease"] - }, - /** - * Lookup276: pallet_balances::pallet::Error - **/ - PalletBalancesError: { - _enum: [ - "VestingBalance", - "LiquidityRestrictions", - "InsufficientBalance", - "ExistentialDeposit", - "Expendability", - "ExistingVestingSchedule", - "DeadAccount", - "TooManyReserves", - "TooManyHolds", - "TooManyFreezes", - "IssuanceDeactivated", - "DeltaZero" - ] - }, - /** - * Lookup277: pallet_transaction_payment::Releases - **/ - PalletTransactionPaymentReleases: { - _enum: ["V1Ancient", "V2"] - }, - /** - * Lookup278: pallet_sudo::pallet::Call - **/ - PalletSudoCall: { - _enum: { - sudo: { - call: "Call" - }, - sudo_unchecked_weight: { - call: "Call", - weight: "SpWeightsWeightV2Weight" - }, - set_key: { - _alias: { - new_: "new" - }, - new_: "MultiAddress" - }, - sudo_as: { - who: "MultiAddress", - call: "Call" - }, - remove_key: "Null" - } - }, - /** - * Lookup280: pallet_collator_selection::pallet::Call - **/ - PalletCollatorSelectionCall: { - _enum: { - set_invulnerables: { - _alias: { - new_: "new" - }, - new_: "Vec" - }, - set_desired_candidates: { - max: "u32" - }, - set_candidacy_bond: { - bond: "u128" - }, - register_as_candidate: "Null", - leave_intent: "Null", - add_invulnerable: { - who: "AccountId32" - }, - remove_invulnerable: { - who: "AccountId32" - }, - update_bond: { - newDeposit: "u128" - }, - take_candidate_slot: { - deposit: "u128", - target: "AccountId32" - } - } - }, - /** - * Lookup281: pallet_session::pallet::Call - **/ - PalletSessionCall: { - _enum: { - set_keys: { - _alias: { - keys_: "keys" - }, - keys_: "StorageHubRuntimeSessionKeys", - proof: "Bytes" - }, - purge_keys: "Null" - } - }, - /** - * Lookup282: storage_hub_runtime::SessionKeys - **/ - StorageHubRuntimeSessionKeys: { - aura: "SpConsensusAuraSr25519AppSr25519Public" - }, - /** - * Lookup283: sp_consensus_aura::sr25519::app_sr25519::Public - **/ - SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", - /** -<<<<<<< HEAD - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call -======= - * Lookup284: cumulus_pallet_xcmp_queue::pallet::Call ->>>>>>> main - **/ - CumulusPalletXcmpQueueCall: { - _enum: { - __Unused0: "Null", - suspend_xcm_execution: "Null", - resume_xcm_execution: "Null", - update_suspend_threshold: { - _alias: { - new_: "new" - }, - new_: "u32" - }, - update_drop_threshold: { - _alias: { - new_: "new" - }, - new_: "u32" - }, - update_resume_threshold: { - _alias: { - new_: "new" - }, - new_: "u32" - } - } - }, - /** -<<<<<<< HEAD - * Lookup260: pallet_xcm::pallet::Call -======= - * Lookup285: pallet_xcm::pallet::Call ->>>>>>> main - **/ - PalletXcmCall: { - _enum: { - send: { - dest: "XcmVersionedLocation", - message: "XcmVersionedXcm" - }, - teleport_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32" - }, - reserve_transfer_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32" - }, - execute: { - message: "XcmVersionedXcm", - maxWeight: "SpWeightsWeightV2Weight" - }, - force_xcm_version: { - location: "StagingXcmV4Location", - version: "u32" - }, - force_default_xcm_version: { - maybeXcmVersion: "Option" - }, - force_subscribe_version_notify: { - location: "XcmVersionedLocation" - }, - force_unsubscribe_version_notify: { - location: "XcmVersionedLocation" - }, - limited_reserve_transfer_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32", - weightLimit: "XcmV3WeightLimit" - }, - limited_teleport_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32", - weightLimit: "XcmV3WeightLimit" - }, - force_suspension: { - suspended: "bool" - }, - transfer_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32", - weightLimit: "XcmV3WeightLimit" - }, - claim_assets: { - assets: "XcmVersionedAssets", - beneficiary: "XcmVersionedLocation" - }, - transfer_assets_using_type_and_then: { - dest: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", - remoteFeesId: "XcmVersionedAssetId", - feesTransferType: "StagingXcmExecutorAssetTransferTransferType", - customXcmOnDest: "XcmVersionedXcm", - weightLimit: "XcmV3WeightLimit" - } - } - }, - /** -<<<<<<< HEAD - * Lookup261: xcm::VersionedXcm -======= - * Lookup286: xcm::VersionedXcm ->>>>>>> main - **/ - XcmVersionedXcm: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - V2: "XcmV2Xcm", - V3: "XcmV3Xcm", - V4: "StagingXcmV4Xcm" - } - }, - /** -<<<<<<< HEAD - * Lookup262: xcm::v2::Xcm - **/ - XcmV2Xcm: "Vec", - /** - * Lookup264: xcm::v2::Instruction -======= - * Lookup287: xcm::v2::Xcm - **/ - XcmV2Xcm: "Vec", - /** - * Lookup289: xcm::v2::Instruction ->>>>>>> main - **/ - XcmV2Instruction: { - _enum: { - WithdrawAsset: "XcmV2MultiassetMultiAssets", - ReserveAssetDeposited: "XcmV2MultiassetMultiAssets", - ReceiveTeleportedAsset: "XcmV2MultiassetMultiAssets", - QueryResponse: { - queryId: "Compact", - response: "XcmV2Response", - maxWeight: "Compact" - }, - TransferAsset: { - assets: "XcmV2MultiassetMultiAssets", - beneficiary: "XcmV2MultiLocation" - }, - TransferReserveAsset: { - assets: "XcmV2MultiassetMultiAssets", - dest: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - Transact: { - originType: "XcmV2OriginKind", - requireWeightAtMost: "Compact", - call: "XcmDoubleEncoded" - }, - HrmpNewChannelOpenRequest: { - sender: "Compact", - maxMessageSize: "Compact", - maxCapacity: "Compact" - }, - HrmpChannelAccepted: { - recipient: "Compact" - }, - HrmpChannelClosing: { - initiator: "Compact", - sender: "Compact", - recipient: "Compact" - }, - ClearOrigin: "Null", - DescendOrigin: "XcmV2MultilocationJunctions", - ReportError: { - queryId: "Compact", - dest: "XcmV2MultiLocation", - maxResponseWeight: "Compact" - }, - DepositAsset: { - assets: "XcmV2MultiassetMultiAssetFilter", - maxAssets: "Compact", - beneficiary: "XcmV2MultiLocation" - }, - DepositReserveAsset: { - assets: "XcmV2MultiassetMultiAssetFilter", - maxAssets: "Compact", - dest: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - ExchangeAsset: { - give: "XcmV2MultiassetMultiAssetFilter", - receive: "XcmV2MultiassetMultiAssets" - }, - InitiateReserveWithdraw: { - assets: "XcmV2MultiassetMultiAssetFilter", - reserve: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - InitiateTeleport: { - assets: "XcmV2MultiassetMultiAssetFilter", - dest: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - QueryHolding: { - queryId: "Compact", - dest: "XcmV2MultiLocation", - assets: "XcmV2MultiassetMultiAssetFilter", - maxResponseWeight: "Compact" - }, - BuyExecution: { - fees: "XcmV2MultiAsset", - weightLimit: "XcmV2WeightLimit" - }, - RefundSurplus: "Null", - SetErrorHandler: "XcmV2Xcm", - SetAppendix: "XcmV2Xcm", - ClearError: "Null", - ClaimAsset: { - assets: "XcmV2MultiassetMultiAssets", - ticket: "XcmV2MultiLocation" - }, - Trap: "Compact", - SubscribeVersion: { - queryId: "Compact", - maxResponseWeight: "Compact" - }, - UnsubscribeVersion: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup265: xcm::v2::Response -======= - * Lookup290: xcm::v2::Response ->>>>>>> main - **/ - XcmV2Response: { - _enum: { - Null: "Null", - Assets: "XcmV2MultiassetMultiAssets", - ExecutionResult: "Option<(u32,XcmV2TraitsError)>", - Version: "u32" - } - }, - /** -<<<<<<< HEAD - * Lookup268: xcm::v2::traits::Error -======= - * Lookup293: xcm::v2::traits::Error ->>>>>>> main - **/ - XcmV2TraitsError: { - _enum: { - Overflow: "Null", - Unimplemented: "Null", - UntrustedReserveLocation: "Null", - UntrustedTeleportLocation: "Null", - MultiLocationFull: "Null", - MultiLocationNotInvertible: "Null", - BadOrigin: "Null", - InvalidLocation: "Null", - AssetNotFound: "Null", - FailedToTransactAsset: "Null", - NotWithdrawable: "Null", - LocationCannotHold: "Null", - ExceedsMaxMessageSize: "Null", - DestinationUnsupported: "Null", - Transport: "Null", - Unroutable: "Null", - UnknownClaim: "Null", - FailedToDecode: "Null", - MaxWeightInvalid: "Null", - NotHoldingFees: "Null", - TooExpensive: "Null", - Trap: "u64", - UnhandledXcmVersion: "Null", - WeightLimitReached: "u64", - Barrier: "Null", - WeightNotComputable: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup269: xcm::v2::OriginKind - **/ - XcmV2OriginKind: { - _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] - }, - /** - * Lookup270: xcm::v2::multiasset::MultiAssetFilter -======= - * Lookup294: xcm::v2::multiasset::MultiAssetFilter ->>>>>>> main - **/ - XcmV2MultiassetMultiAssetFilter: { - _enum: { - Definite: "XcmV2MultiassetMultiAssets", - Wild: "XcmV2MultiassetWildMultiAsset" - } - }, - /** - * Lookup295: xcm::v2::multiasset::WildMultiAsset - **/ - XcmV2MultiassetWildMultiAsset: { - _enum: { - All: "Null", - AllOf: { - id: "XcmV2MultiassetAssetId", - fun: "XcmV2MultiassetWildFungibility" - } - } - }, - /** - * Lookup296: xcm::v2::multiasset::WildFungibility - **/ - XcmV2MultiassetWildFungibility: { - _enum: ["Fungible", "NonFungible"] - }, - /** - * Lookup297: xcm::v2::WeightLimit - **/ - XcmV2WeightLimit: { - _enum: { - Unlimited: "Null", - Limited: "Compact" - } - }, - /** - * Lookup298: xcm::v3::Xcm - **/ - XcmV3Xcm: "Vec", - /** - * Lookup300: xcm::v3::Instruction - **/ - XcmV3Instruction: { - _enum: { - WithdrawAsset: "XcmV3MultiassetMultiAssets", - ReserveAssetDeposited: "XcmV3MultiassetMultiAssets", - ReceiveTeleportedAsset: "XcmV3MultiassetMultiAssets", - QueryResponse: { - queryId: "Compact", - response: "XcmV3Response", - maxWeight: "SpWeightsWeightV2Weight", - querier: "Option" - }, - TransferAsset: { - assets: "XcmV3MultiassetMultiAssets", - beneficiary: "StagingXcmV3MultiLocation" - }, - TransferReserveAsset: { - assets: "XcmV3MultiassetMultiAssets", - dest: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - Transact: { - originKind: "XcmV3OriginKind", - requireWeightAtMost: "SpWeightsWeightV2Weight", - call: "XcmDoubleEncoded" - }, - HrmpNewChannelOpenRequest: { - sender: "Compact", - maxMessageSize: "Compact", - maxCapacity: "Compact" - }, - HrmpChannelAccepted: { - recipient: "Compact" - }, - HrmpChannelClosing: { - initiator: "Compact", - sender: "Compact", - recipient: "Compact" - }, - ClearOrigin: "Null", - DescendOrigin: "XcmV3Junctions", - ReportError: "XcmV3QueryResponseInfo", - DepositAsset: { - assets: "XcmV3MultiassetMultiAssetFilter", - beneficiary: "StagingXcmV3MultiLocation" - }, - DepositReserveAsset: { - assets: "XcmV3MultiassetMultiAssetFilter", - dest: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - ExchangeAsset: { - give: "XcmV3MultiassetMultiAssetFilter", - want: "XcmV3MultiassetMultiAssets", - maximal: "bool" - }, - InitiateReserveWithdraw: { - assets: "XcmV3MultiassetMultiAssetFilter", - reserve: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - InitiateTeleport: { - assets: "XcmV3MultiassetMultiAssetFilter", - dest: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - ReportHolding: { - responseInfo: "XcmV3QueryResponseInfo", - assets: "XcmV3MultiassetMultiAssetFilter" - }, - BuyExecution: { - fees: "XcmV3MultiAsset", - weightLimit: "XcmV3WeightLimit" - }, - RefundSurplus: "Null", - SetErrorHandler: "XcmV3Xcm", - SetAppendix: "XcmV3Xcm", - ClearError: "Null", - ClaimAsset: { - assets: "XcmV3MultiassetMultiAssets", - ticket: "StagingXcmV3MultiLocation" - }, - Trap: "Compact", - SubscribeVersion: { - queryId: "Compact", - maxResponseWeight: "SpWeightsWeightV2Weight" - }, - UnsubscribeVersion: "Null", - BurnAsset: "XcmV3MultiassetMultiAssets", - ExpectAsset: "XcmV3MultiassetMultiAssets", - ExpectOrigin: "Option", - ExpectError: "Option<(u32,XcmV3TraitsError)>", - ExpectTransactStatus: "XcmV3MaybeErrorCode", - QueryPallet: { - moduleName: "Bytes", - responseInfo: "XcmV3QueryResponseInfo" - }, - ExpectPallet: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - crateMajor: "Compact", - minCrateMinor: "Compact" - }, - ReportTransactStatus: "XcmV3QueryResponseInfo", - ClearTransactStatus: "Null", - UniversalOrigin: "XcmV3Junction", - ExportMessage: { - network: "XcmV3JunctionNetworkId", - destination: "XcmV3Junctions", - xcm: "XcmV3Xcm" - }, - LockAsset: { - asset: "XcmV3MultiAsset", - unlocker: "StagingXcmV3MultiLocation" - }, - UnlockAsset: { - asset: "XcmV3MultiAsset", - target: "StagingXcmV3MultiLocation" - }, - NoteUnlockable: { - asset: "XcmV3MultiAsset", - owner: "StagingXcmV3MultiLocation" - }, - RequestUnlock: { - asset: "XcmV3MultiAsset", - locker: "StagingXcmV3MultiLocation" - }, - SetFeesMode: { - jitWithdraw: "bool" - }, - SetTopic: "[u8;32]", - ClearTopic: "Null", - AliasOrigin: "StagingXcmV3MultiLocation", - UnpaidExecution: { - weightLimit: "XcmV3WeightLimit", - checkOrigin: "Option" - } - } - }, - /** - * Lookup301: xcm::v3::Response - **/ - XcmV3Response: { - _enum: { - Null: "Null", - Assets: "XcmV3MultiassetMultiAssets", - ExecutionResult: "Option<(u32,XcmV3TraitsError)>", - Version: "u32", - PalletsInfo: "Vec", - DispatchResult: "XcmV3MaybeErrorCode" - } - }, - /** - * Lookup303: xcm::v3::PalletInfo - **/ - XcmV3PalletInfo: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - major: "Compact", - minor: "Compact", - patch: "Compact" - }, - /** - * Lookup307: xcm::v3::QueryResponseInfo - **/ - XcmV3QueryResponseInfo: { - destination: "StagingXcmV3MultiLocation", - queryId: "Compact", - maxWeight: "SpWeightsWeightV2Weight" - }, - /** - * Lookup308: xcm::v3::multiasset::MultiAssetFilter - **/ - XcmV3MultiassetMultiAssetFilter: { - _enum: { - Definite: "XcmV3MultiassetMultiAssets", - Wild: "XcmV3MultiassetWildMultiAsset" - } - }, - /** - * Lookup309: xcm::v3::multiasset::WildMultiAsset - **/ - XcmV3MultiassetWildMultiAsset: { - _enum: { - All: "Null", - AllOf: { - id: "XcmV3MultiassetAssetId", - fun: "XcmV3MultiassetWildFungibility" - }, - AllCounted: "Compact", - AllOfCounted: { - id: "XcmV3MultiassetAssetId", - fun: "XcmV3MultiassetWildFungibility", - count: "Compact" - } - } - }, - /** - * Lookup310: xcm::v3::multiasset::WildFungibility - **/ - XcmV3MultiassetWildFungibility: { - _enum: ["Fungible", "NonFungible"] - }, - /** -<<<<<<< HEAD - * Lookup298: staging_xcm_executor::traits::asset_transfer::TransferType -======= - * Lookup322: staging_xcm_executor::traits::asset_transfer::TransferType ->>>>>>> main - **/ - StagingXcmExecutorAssetTransferTransferType: { - _enum: { - Teleport: "Null", - LocalReserve: "Null", - DestinationReserve: "Null", - RemoteReserve: "XcmVersionedLocation" - } - }, - /** -<<<<<<< HEAD - * Lookup299: xcm::VersionedAssetId -======= - * Lookup323: xcm::VersionedAssetId ->>>>>>> main - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - V3: "XcmV3MultiassetAssetId", - V4: "StagingXcmV4AssetAssetId" - } - }, - /** -<<<<<<< HEAD - * Lookup300: cumulus_pallet_xcm::pallet::Call - **/ - CumulusPalletXcmCall: "Null", - /** - * Lookup301: pallet_message_queue::pallet::Call -======= - * Lookup324: cumulus_pallet_xcm::pallet::Call - **/ - CumulusPalletXcmCall: "Null", - /** - * Lookup325: pallet_message_queue::pallet::Call ->>>>>>> main - **/ - PalletMessageQueueCall: { - _enum: { - reap_page: { - messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", - pageIndex: "u32" - }, - execute_overweight: { - messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", - page: "u32", - index: "u32", - weightLimit: "SpWeightsWeightV2Weight" - } - } - }, - /** -<<<<<<< HEAD - * Lookup302: pallet_storage_providers::pallet::Call -======= - * Lookup326: pallet_storage_providers::pallet::Call ->>>>>>> main - **/ - PalletStorageProvidersCall: { - _enum: { - request_msp_sign_up: { - capacity: "u64", - multiaddresses: "Vec", - valueProp: "PalletStorageProvidersValueProposition", - paymentAccount: "AccountId32" - }, - request_bsp_sign_up: { - capacity: "u64", - multiaddresses: "Vec", - paymentAccount: "AccountId32" - }, - confirm_sign_up: { - providerAccount: "Option" - }, - cancel_sign_up: "Null", - msp_sign_off: "Null", - bsp_sign_off: "Null", - change_capacity: { - newCapacity: "u64" - }, - add_value_prop: { - newValueProp: "PalletStorageProvidersValueProposition" - }, - force_msp_sign_up: { - who: "AccountId32", - mspId: "H256", - capacity: "u64", - multiaddresses: "Vec", - valueProp: "PalletStorageProvidersValueProposition", - paymentAccount: "AccountId32" - }, - force_bsp_sign_up: { - who: "AccountId32", - bspId: "H256", - capacity: "u64", - multiaddresses: "Vec", - paymentAccount: "AccountId32", - weight: "Option" - }, - slash: { - providerId: "H256" - } - } - }, - /** -<<<<<<< HEAD - * Lookup303: pallet_file_system::pallet::Call -======= - * Lookup327: pallet_file_system::pallet::Call ->>>>>>> main - **/ - PalletFileSystemCall: { - _enum: { - create_bucket: { - mspId: "H256", - name: "Bytes", - private: "bool" - }, - request_move_bucket: { - bucketId: "H256", - newMspId: "H256" - }, - msp_respond_move_bucket_request: { - bucketId: "H256", - response: "PalletFileSystemBucketMoveRequestResponse" - }, - update_bucket_privacy: { - bucketId: "H256", - private: "bool" - }, - create_and_associate_collection_with_bucket: { - bucketId: "H256" - }, - issue_storage_request: { - _alias: { - size_: "size" - }, - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - size_: "u64", - mspId: "H256", - peerIds: "Vec" - }, - revoke_storage_request: { - fileKey: "H256" - }, - bsp_add_data_server_for_move_bucket_request: { - bucketId: "H256" - }, - msp_respond_storage_requests_multiple_buckets: { - fileKeyResponsesInput: "Vec<(H256,PalletFileSystemMspStorageRequestResponse)>" - }, - bsp_volunteer: { - fileKey: "H256" - }, - bsp_confirm_storing: { - nonInclusionForestProof: "SpTrieStorageProofCompactProof", - fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>" - }, - bsp_request_stop_storing: { - _alias: { - size_: "size" - }, - fileKey: "H256", - bucketId: "H256", - location: "Bytes", - owner: "AccountId32", - fingerprint: "H256", - size_: "u64", - canServe: "bool", - inclusionForestProof: "SpTrieStorageProofCompactProof" - }, - bsp_confirm_stop_storing: { - fileKey: "H256", - inclusionForestProof: "SpTrieStorageProofCompactProof" - }, - stop_storing_for_insolvent_user: { - _alias: { - size_: "size" - }, - fileKey: "H256", - bucketId: "H256", - location: "Bytes", - owner: "AccountId32", - fingerprint: "H256", - size_: "u64", - inclusionForestProof: "SpTrieStorageProofCompactProof" - }, - delete_file: { - _alias: { - size_: "size" - }, - bucketId: "H256", - fileKey: "H256", - location: "Bytes", - size_: "u64", - fingerprint: "H256", - maybeInclusionForestProof: "Option" - }, - pending_file_deletion_request_submit_proof: { - user: "AccountId32", - fileKey: "H256", - bucketId: "H256", - forestProof: "SpTrieStorageProofCompactProof" - }, - set_global_parameters: { - replicationTarget: "Option", - tickRangeToMaximumThreshold: "Option" - } - } - }, - /** -<<<<<<< HEAD - * Lookup304: pallet_file_system::types::BucketMoveRequestResponse -======= - * Lookup328: pallet_file_system::types::BucketMoveRequestResponse ->>>>>>> main - **/ - PalletFileSystemBucketMoveRequestResponse: { - _enum: ["Accepted", "Rejected"] - }, - /** -<<<<<<< HEAD - * Lookup309: pallet_proofs_dealer::pallet::Call -======= - * Lookup331: pallet_file_system::types::MspStorageRequestResponse - **/ - PalletFileSystemMspStorageRequestResponse: { - accept: "Option", - reject: "Option>" - }, - /** - * Lookup333: pallet_file_system::types::AcceptedStorageRequestParameters - **/ - PalletFileSystemAcceptedStorageRequestParameters: { - fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>", - nonInclusionForestProof: "SpTrieStorageProofCompactProof" - }, - /** - * Lookup340: pallet_proofs_dealer::pallet::Call ->>>>>>> main - **/ - PalletProofsDealerCall: { - _enum: { - challenge: { - key: "H256" - }, - submit_proof: { - proof: "PalletProofsDealerProof", - provider: "Option" - }, - force_initialise_challenge_cycle: { - provider: "H256" - }, - set_paused: { - paused: "bool" - } - } - }, - /** -<<<<<<< HEAD - * Lookup310: pallet_randomness::pallet::Call -======= - * Lookup341: pallet_randomness::pallet::Call ->>>>>>> main - **/ - PalletRandomnessCall: { - _enum: ["set_babe_randomness"] - }, - /** -<<<<<<< HEAD - * Lookup311: pallet_payment_streams::pallet::Call -======= - * Lookup342: pallet_payment_streams::pallet::Call ->>>>>>> main - **/ - PalletPaymentStreamsCall: { - _enum: { - create_fixed_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - rate: "u128" - }, - update_fixed_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - newRate: "u128" - }, - delete_fixed_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32" - }, - create_dynamic_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - amountProvided: "u64" - }, - update_dynamic_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - newAmountProvided: "u64" - }, - delete_dynamic_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32" - }, - charge_payment_streams: { - userAccount: "AccountId32" - }, - pay_outstanding_debt: "Null", - clear_insolvent_flag: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup312: pallet_bucket_nfts::pallet::Call -======= - * Lookup343: pallet_bucket_nfts::pallet::Call ->>>>>>> main - **/ - PalletBucketNftsCall: { - _enum: { - share_access: { - recipient: "MultiAddress", - bucket: "H256", - itemId: "u32", - readAccessRegex: "Option" - }, - update_read_access: { - bucket: "H256", - itemId: "u32", - readAccessRegex: "Option" - } - } - }, - /** -<<<<<<< HEAD - * Lookup314: pallet_nfts::pallet::Call -======= - * Lookup345: pallet_nfts::pallet::Call ->>>>>>> main - **/ - PalletNftsCall: { - _enum: { - create: { - admin: "MultiAddress", - config: "PalletNftsCollectionConfig" - }, - force_create: { - owner: "MultiAddress", - config: "PalletNftsCollectionConfig" - }, - destroy: { - collection: "u32", - witness: "PalletNftsDestroyWitness" - }, - mint: { - collection: "u32", - item: "u32", - mintTo: "MultiAddress", - witnessData: "Option" - }, - force_mint: { - collection: "u32", - item: "u32", - mintTo: "MultiAddress", - itemConfig: "PalletNftsItemConfig" - }, - burn: { - collection: "u32", - item: "u32" - }, - transfer: { - collection: "u32", - item: "u32", - dest: "MultiAddress" - }, - redeposit: { - collection: "u32", - items: "Vec" - }, - lock_item_transfer: { - collection: "u32", - item: "u32" - }, - unlock_item_transfer: { - collection: "u32", - item: "u32" - }, - lock_collection: { - collection: "u32", - lockSettings: "u64" - }, - transfer_ownership: { - collection: "u32", - newOwner: "MultiAddress" - }, - set_team: { - collection: "u32", - issuer: "Option", - admin: "Option", - freezer: "Option" - }, - force_collection_owner: { - collection: "u32", - owner: "MultiAddress" - }, - force_collection_config: { - collection: "u32", - config: "PalletNftsCollectionConfig" - }, - approve_transfer: { - collection: "u32", - item: "u32", - delegate: "MultiAddress", - maybeDeadline: "Option" - }, - cancel_approval: { - collection: "u32", - item: "u32", - delegate: "MultiAddress" - }, - clear_all_transfer_approvals: { - collection: "u32", - item: "u32" - }, - lock_item_properties: { - collection: "u32", - item: "u32", - lockMetadata: "bool", - lockAttributes: "bool" - }, - set_attribute: { - collection: "u32", - maybeItem: "Option", - namespace: "PalletNftsAttributeNamespace", - key: "Bytes", - value: "Bytes" - }, - force_set_attribute: { - setAs: "Option", - collection: "u32", - maybeItem: "Option", - namespace: "PalletNftsAttributeNamespace", - key: "Bytes", - value: "Bytes" - }, - clear_attribute: { - collection: "u32", - maybeItem: "Option", - namespace: "PalletNftsAttributeNamespace", - key: "Bytes" - }, - approve_item_attributes: { - collection: "u32", - item: "u32", - delegate: "MultiAddress" - }, - cancel_item_attributes_approval: { - collection: "u32", - item: "u32", - delegate: "MultiAddress", - witness: "PalletNftsCancelAttributesApprovalWitness" - }, - set_metadata: { - collection: "u32", - item: "u32", - data: "Bytes" - }, - clear_metadata: { - collection: "u32", - item: "u32" - }, - set_collection_metadata: { - collection: "u32", - data: "Bytes" - }, - clear_collection_metadata: { - collection: "u32" - }, - set_accept_ownership: { - maybeCollection: "Option" - }, - set_collection_max_supply: { - collection: "u32", - maxSupply: "u32" - }, - update_mint_settings: { - collection: "u32", - mintSettings: "PalletNftsMintSettings" - }, - set_price: { - collection: "u32", - item: "u32", - price: "Option", - whitelistedBuyer: "Option" - }, - buy_item: { - collection: "u32", - item: "u32", - bidPrice: "u128" - }, - pay_tips: { - tips: "Vec" - }, - create_swap: { - offeredCollection: "u32", - offeredItem: "u32", - desiredCollection: "u32", - maybeDesiredItem: "Option", - maybePrice: "Option", - duration: "u32" - }, - cancel_swap: { - offeredCollection: "u32", - offeredItem: "u32" - }, - claim_swap: { - sendCollection: "u32", - sendItem: "u32", - receiveCollection: "u32", - receiveItem: "u32", - witnessPrice: "Option" - }, - mint_pre_signed: { - mintData: "PalletNftsPreSignedMint", - signature: "SpRuntimeMultiSignature", - signer: "AccountId32" - }, - set_attributes_pre_signed: { - data: "PalletNftsPreSignedAttributes", - signature: "SpRuntimeMultiSignature", - signer: "AccountId32" - } - } - }, - /** -<<<<<<< HEAD - * Lookup315: pallet_nfts::types::CollectionConfig -======= - * Lookup346: pallet_nfts::types::CollectionConfig ->>>>>>> main - **/ - PalletNftsCollectionConfig: { - settings: "u64", - maxSupply: "Option", - mintSettings: "PalletNftsMintSettings" - }, - /** -<<<<<<< HEAD - * Lookup317: pallet_nfts::types::CollectionSetting -======= - * Lookup348: pallet_nfts::types::CollectionSetting ->>>>>>> main - **/ - PalletNftsCollectionSetting: { - _enum: [ - "__Unused0", - "TransferableItems", - "UnlockedMetadata", - "__Unused3", - "UnlockedAttributes", - "__Unused5", - "__Unused6", - "__Unused7", - "UnlockedMaxSupply", - "__Unused9", - "__Unused10", - "__Unused11", - "__Unused12", - "__Unused13", - "__Unused14", - "__Unused15", - "DepositRequired" - ] - }, - /** -<<<<<<< HEAD - * Lookup318: pallet_nfts::types::MintSettings -======= - * Lookup349: pallet_nfts::types::MintSettings ->>>>>>> main - **/ - PalletNftsMintSettings: { - mintType: "PalletNftsMintType", - price: "Option", - startBlock: "Option", - endBlock: "Option", - defaultItemSettings: "u64" - }, - /** -<<<<<<< HEAD - * Lookup319: pallet_nfts::types::MintType -======= - * Lookup350: pallet_nfts::types::MintType ->>>>>>> main - **/ - PalletNftsMintType: { - _enum: { - Issuer: "Null", - Public: "Null", - HolderOf: "u32" - } - }, - /** -<<<<<<< HEAD - * Lookup322: pallet_nfts::types::ItemSetting -======= - * Lookup353: pallet_nfts::types::ItemSetting ->>>>>>> main - **/ - PalletNftsItemSetting: { - _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] - }, - /** -<<<<<<< HEAD - * Lookup323: pallet_nfts::types::DestroyWitness -======= - * Lookup354: pallet_nfts::types::DestroyWitness ->>>>>>> main - **/ - PalletNftsDestroyWitness: { - itemMetadatas: "Compact", - itemConfigs: "Compact", - attributes: "Compact" - }, - /** -<<<<<<< HEAD - * Lookup325: pallet_nfts::types::MintWitness -======= - * Lookup356: pallet_nfts::types::MintWitness ->>>>>>> main - **/ - PalletNftsMintWitness: { - ownedItem: "Option", - mintPrice: "Option" - }, - /** -<<<<<<< HEAD - * Lookup326: pallet_nfts::types::ItemConfig -======= - * Lookup357: pallet_nfts::types::ItemConfig ->>>>>>> main - **/ - PalletNftsItemConfig: { - settings: "u64" - }, - /** -<<<<<<< HEAD - * Lookup328: pallet_nfts::types::CancelAttributesApprovalWitness -======= - * Lookup359: pallet_nfts::types::CancelAttributesApprovalWitness ->>>>>>> main - **/ - PalletNftsCancelAttributesApprovalWitness: { - accountAttributes: "u32" - }, - /** -<<<<<<< HEAD - * Lookup330: pallet_nfts::types::ItemTip -======= - * Lookup361: pallet_nfts::types::ItemTip ->>>>>>> main - **/ - PalletNftsItemTip: { - collection: "u32", - item: "u32", - receiver: "AccountId32", - amount: "u128" - }, - /** -<<<<<<< HEAD - * Lookup332: pallet_nfts::types::PreSignedMint -======= - * Lookup363: pallet_nfts::types::PreSignedMint ->>>>>>> main - **/ - PalletNftsPreSignedMint: { - collection: "u32", - item: "u32", - attributes: "Vec<(Bytes,Bytes)>", - metadata: "Bytes", - onlyAccount: "Option", - deadline: "u32", - mintPrice: "Option" - }, - /** -<<<<<<< HEAD - * Lookup333: sp_runtime::MultiSignature -======= - * Lookup364: sp_runtime::MultiSignature ->>>>>>> main - **/ - SpRuntimeMultiSignature: { - _enum: { - Ed25519: "[u8;64]", - Sr25519: "[u8;64]", - Ecdsa: "[u8;65]" - } - }, - /** -<<<<<<< HEAD - * Lookup336: pallet_nfts::types::PreSignedAttributes -======= - * Lookup367: pallet_nfts::types::PreSignedAttributes ->>>>>>> main - **/ - PalletNftsPreSignedAttributes: { - collection: "u32", - item: "u32", - attributes: "Vec<(Bytes,Bytes)>", - namespace: "PalletNftsAttributeNamespace", - deadline: "u32" - }, - /** -<<<<<<< HEAD - * Lookup337: pallet_sudo::pallet::Error -======= - * Lookup368: pallet_parameters::pallet::Call - **/ - PalletParametersCall: { - _enum: { - set_parameter: { - keyValue: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters" - } - } - }, - /** - * Lookup369: storage_hub_runtime::configs::runtime_params::RuntimeParameters - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { - _enum: { - RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters" - } - }, - /** - * Lookup370: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { - _enum: { - SlashAmountPerMaxFileSize: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize,Option)", - StakeToChallengePeriod: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod,Option)", - CheckpointChallengePeriod: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod,Option)", - MinChallengePeriod: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod,Option)" - } - }, - /** - * Lookup371: pallet_sudo::pallet::Error ->>>>>>> main - **/ - PalletSudoError: { - _enum: ["RequireSudo"] - }, - /** -<<<<<<< HEAD - * Lookup340: pallet_collator_selection::pallet::CandidateInfo -======= - * Lookup374: pallet_collator_selection::pallet::CandidateInfo ->>>>>>> main - **/ - PalletCollatorSelectionCandidateInfo: { - who: "AccountId32", - deposit: "u128" - }, - /** -<<<<<<< HEAD - * Lookup342: pallet_collator_selection::pallet::Error -======= - * Lookup376: pallet_collator_selection::pallet::Error ->>>>>>> main - **/ - PalletCollatorSelectionError: { - _enum: [ - "TooManyCandidates", - "TooFewEligibleCollators", - "AlreadyCandidate", - "NotCandidate", - "TooManyInvulnerables", - "AlreadyInvulnerable", - "NotInvulnerable", - "NoAssociatedValidatorId", - "ValidatorNotRegistered", - "InsertToCandidateListFailed", - "RemoveFromCandidateListFailed", - "DepositTooLow", - "UpdateCandidateListFailed", - "InsufficientBond", - "TargetIsNotCandidate", - "IdenticalDeposit", - "InvalidUnreserve" - ] - }, - /** -<<<<<<< HEAD - * Lookup346: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: "[u8;4]", - /** - * Lookup347: pallet_session::pallet::Error -======= - * Lookup380: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: "[u8;4]", - /** - * Lookup381: pallet_session::pallet::Error ->>>>>>> main - **/ - PalletSessionError: { - _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] - }, - /** -<<<<<<< HEAD - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails -======= - * Lookup390: cumulus_pallet_xcmp_queue::OutboundChannelDetails ->>>>>>> main - **/ - CumulusPalletXcmpQueueOutboundChannelDetails: { - recipient: "u32", - state: "CumulusPalletXcmpQueueOutboundState", - signalsExist: "bool", - firstIndex: "u16", - lastIndex: "u16" - }, - /** -<<<<<<< HEAD - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState -======= - * Lookup391: cumulus_pallet_xcmp_queue::OutboundState ->>>>>>> main - **/ - CumulusPalletXcmpQueueOutboundState: { - _enum: ["Ok", "Suspended"] - }, - /** -<<<<<<< HEAD - * Lookup361: cumulus_pallet_xcmp_queue::QueueConfigData -======= - * Lookup393: cumulus_pallet_xcmp_queue::QueueConfigData ->>>>>>> main - **/ - CumulusPalletXcmpQueueQueueConfigData: { - suspendThreshold: "u32", - dropThreshold: "u32", - resumeThreshold: "u32" - }, - /** -<<<<<<< HEAD - * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error -======= - * Lookup394: cumulus_pallet_xcmp_queue::pallet::Error ->>>>>>> main - **/ - CumulusPalletXcmpQueueError: { - _enum: [ - "BadQueueConfig", - "AlreadySuspended", - "AlreadyResumed", - "TooManyActiveOutboundChannels", - "TooBig" - ] - }, - /** -<<<<<<< HEAD - * Lookup363: pallet_xcm::pallet::QueryStatus -======= - * Lookup395: pallet_xcm::pallet::QueryStatus ->>>>>>> main - **/ - PalletXcmQueryStatus: { - _enum: { - Pending: { - responder: "XcmVersionedLocation", - maybeMatchQuerier: "Option", - maybeNotify: "Option<(u8,u8)>", - timeout: "u32" - }, - VersionNotifier: { - origin: "XcmVersionedLocation", - isActive: "bool" - }, - Ready: { - response: "XcmVersionedResponse", - at: "u32" - } - } - }, - /** -<<<<<<< HEAD - * Lookup367: xcm::VersionedResponse -======= - * Lookup399: xcm::VersionedResponse ->>>>>>> main - **/ - XcmVersionedResponse: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - V2: "XcmV2Response", - V3: "XcmV3Response", - V4: "StagingXcmV4Response" - } - }, - /** -<<<<<<< HEAD - * Lookup373: pallet_xcm::pallet::VersionMigrationStage -======= - * Lookup405: pallet_xcm::pallet::VersionMigrationStage ->>>>>>> main - **/ - PalletXcmVersionMigrationStage: { - _enum: { - MigrateSupportedVersion: "Null", - MigrateVersionNotifiers: "Null", - NotifyCurrentTargets: "Option", - MigrateAndNotifyOldTargets: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord -======= - * Lookup408: pallet_xcm::pallet::RemoteLockedFungibleRecord ->>>>>>> main - **/ - PalletXcmRemoteLockedFungibleRecord: { - amount: "u128", - owner: "XcmVersionedLocation", - locker: "XcmVersionedLocation", - consumers: "Vec<(Null,u128)>" - }, - /** - * Lookup415: pallet_xcm::pallet::Error - **/ - PalletXcmError: { - _enum: [ - "Unreachable", - "SendFailure", - "Filtered", - "UnweighableMessage", - "DestinationNotInvertible", - "Empty", - "CannotReanchor", - "TooManyAssets", - "InvalidOrigin", - "BadVersion", - "BadLocation", - "NoSubscription", - "AlreadySubscribed", - "CannotCheckOutTeleport", - "LowBalance", - "TooManyLocks", - "AccountNotSovereign", - "FeesNotMet", - "LockNotFound", - "InUse", - "__Unused20", - "InvalidAssetUnknownReserve", - "InvalidAssetUnsupportedReserve", - "TooManyReserves", - "LocalExecutionIncomplete" - ] - }, - /** - * Lookup416: pallet_message_queue::BookState - **/ - PalletMessageQueueBookState: { - _alias: { - size_: "size" - }, - begin: "u32", - end: "u32", - count: "u32", - readyNeighbours: "Option", - messageCount: "u64", - size_: "u64" - }, - /** - * Lookup418: pallet_message_queue::Neighbours - **/ - PalletMessageQueueNeighbours: { - prev: "CumulusPrimitivesCoreAggregateMessageOrigin", - next: "CumulusPrimitivesCoreAggregateMessageOrigin" - }, - /** - * Lookup420: pallet_message_queue::Page - **/ - PalletMessageQueuePage: { - remaining: "u32", - remainingSize: "u32", - firstIndex: "u32", - first: "u32", - last: "u32", - heap: "Bytes" - }, - /** - * Lookup422: pallet_message_queue::pallet::Error - **/ - PalletMessageQueueError: { - _enum: [ - "NotReapable", - "NoPage", - "NoMessage", - "AlreadyProcessed", - "Queued", - "InsufficientWeight", - "TemporarilyUnprocessable", - "QueuePaused", - "RecursiveDisallowed" - ] - }, - /** - * Lookup424: pallet_storage_providers::types::StorageProvider - **/ - PalletStorageProvidersStorageProvider: { - _enum: { - BackupStorageProvider: "PalletStorageProvidersBackupStorageProvider", - MainStorageProvider: "PalletStorageProvidersMainStorageProvider" - } - }, - /** - * Lookup425: pallet_storage_providers::types::BackupStorageProvider - **/ - PalletStorageProvidersBackupStorageProvider: { - capacity: "u64", - capacityUsed: "u64", - multiaddresses: "Vec", - root: "H256", - lastCapacityChange: "u32", - ownerAccount: "AccountId32", - paymentAccount: "AccountId32", - reputationWeight: "u32" - }, - /** - * Lookup426: pallet_storage_providers::types::MainStorageProvider - **/ - PalletStorageProvidersMainStorageProvider: { - buckets: "Vec", - capacity: "u64", - capacityUsed: "u64", - multiaddresses: "Vec", - valueProp: "PalletStorageProvidersValueProposition", - lastCapacityChange: "u32", - ownerAccount: "AccountId32", - paymentAccount: "AccountId32" - }, - /** - * Lookup428: pallet_storage_providers::types::Bucket - **/ - PalletStorageProvidersBucket: { - _alias: { - size_: "size" - }, - root: "H256", - userId: "AccountId32", - mspId: "H256", - private: "bool", - readAccessGroupId: "Option", - size_: "u64" - }, - /** - * Lookup431: pallet_storage_providers::pallet::Error - **/ - PalletStorageProvidersError: { - _enum: [ - "AlreadyRegistered", - "SignUpNotRequested", - "SignUpRequestPending", - "NoMultiAddress", - "InvalidMultiAddress", - "StorageTooLow", - "NotEnoughBalance", - "CannotHoldDeposit", - "StorageStillInUse", - "RandomnessNotValidYet", - "SignUpRequestExpired", - "NewCapacityLessThanUsedStorage", - "NewCapacityEqualsCurrentCapacity", - "NewCapacityCantBeZero", - "NotEnoughTimePassed", - "NewUsedCapacityExceedsStorageCapacity", - "NotRegistered", - "NoUserId", - "NoBucketId", - "SpRegisteredButDataNotFound", - "BucketNotFound", - "BucketAlreadyExists", - "AppendBucketToMspFailed", - "ProviderNotSlashable", - "InvalidEncodedFileMetadata", - "InvalidEncodedAccountId", - "PaymentStreamNotFound" - ] - }, - /** - * Lookup432: pallet_file_system::types::StorageRequestMetadata - **/ - PalletFileSystemStorageRequestMetadata: { - _alias: { - size_: "size" - }, - requestedAt: "u32", - owner: "AccountId32", - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - size_: "u64", - msp: "Option<(H256,bool)>", - userPeerIds: "Vec", - dataServerSps: "Vec", - bspsRequired: "u32", - bspsConfirmed: "u32", - bspsVolunteered: "u32" - }, - /** - * Lookup437: pallet_file_system::types::StorageRequestBspsMetadata - **/ - PalletFileSystemStorageRequestBspsMetadata: { - confirmed: "bool" - }, - /** - * Lookup446: pallet_file_system::types::MoveBucketRequestMetadata - **/ - PalletFileSystemMoveBucketRequestMetadata: { - requester: "AccountId32" - }, - /** - * Lookup447: pallet_file_system::pallet::Error - **/ - PalletFileSystemError: { - _enum: [ - "StorageRequestAlreadyRegistered", - "StorageRequestNotFound", - "StorageRequestNotRevoked", - "StorageRequestExists", - "ReplicationTargetCannotBeZero", - "BspsRequiredExceedsTarget", - "NotABsp", - "NotAMsp", - "NotASp", - "BspNotVolunteered", - "BspNotConfirmed", - "BspAlreadyConfirmed", - "StorageRequestBspsRequiredFulfilled", - "BspAlreadyVolunteered", - "InsufficientAvailableCapacity", - "UnexpectedNumberOfRemovedVolunteeredBsps", - "StorageRequestExpiredNoSlotAvailable", - "StorageRequestNotAuthorized", - "MaxBlockNumberReached", - "FailedToEncodeBsp", - "FailedToEncodeFingerprint", - "FailedToDecodeThreshold", - "AboveThreshold", - "ThresholdArithmeticError", - "FailedTypeConversion", - "DividedByZero", - "ImpossibleFailedToGetValue", - "BucketIsNotPrivate", - "BucketNotFound", - "NotBucketOwner", - "ProviderRootNotFound", - "ExpectedNonInclusionProof", - "ExpectedInclusionProof", - "InvalidFileKeyMetadata", - "ThresholdBelowAsymptote", - "NotFileOwner", - "FileKeyAlreadyPendingDeletion", - "MaxUserPendingDeletionRequestsReached", - "MspNotStoringBucket", - "FileKeyNotPendingDeletion", - "FileSizeCannotBeZero", - "NoGlobalReputationWeightSet", - "MaximumThresholdCannotBeZero", - "TickRangeToMaximumThresholdCannotBeZero", - "PendingStopStoringRequestNotFound", - "MinWaitForStopStoringNotReached", - "PendingStopStoringRequestAlreadyExists", - "UserNotInsolvent", - "NotSelectedMsp", - "MspAlreadyConfirmed", - "RequestWithoutMsp", - "MspAlreadyStoringBucket", - "MoveBucketRequestNotFound", - "BucketIsBeingMoved", - "BspAlreadyDataServer", - "BspDataServersExceeded", - "FileMetadataProcessingQueueFull", - "TooManyBatchResponses", - "TooManyStorageRequestResponses", - "InvalidBucketIdFileKeyPair", - "InconsistentStateKeyAlreadyExists" - ] - }, - /** - * Lookup454: pallet_proofs_dealer::pallet::Error - **/ - PalletProofsDealerError: { - _enum: [ - "NotProvider", - "ChallengesQueueOverflow", - "PriorityChallengesQueueOverflow", - "FeeChargeFailed", - "EmptyKeyProofs", - "ProviderRootNotFound", - "ZeroRoot", - "NoRecordOfLastSubmittedProof", - "ProviderStakeNotFound", - "ZeroStake", - "StakeCouldNotBeConverted", - "ChallengesTickNotReached", - "ChallengesTickTooOld", - "ChallengesTickTooLate", - "SeedNotFound", - "CheckpointChallengesNotFound", - "ForestProofVerificationFailed", - "KeyProofNotFound", - "KeyProofVerificationFailed", - "FailedToApplyDelta", - "FailedToUpdateProviderAfterKeyRemoval", - "TooManyValidProofSubmitters" - ] - }, - /** - * Lookup457: pallet_payment_streams::types::FixedRatePaymentStream - **/ - PalletPaymentStreamsFixedRatePaymentStream: { - rate: "u128", - lastChargedTick: "u32", - userDeposit: "u128", - outOfFundsTick: "Option" - }, - /** - * Lookup458: pallet_payment_streams::types::DynamicRatePaymentStream - **/ - PalletPaymentStreamsDynamicRatePaymentStream: { - amountProvided: "u64", - priceIndexWhenLastCharged: "u128", - userDeposit: "u128", - outOfFundsTick: "Option" - }, - /** - * Lookup459: pallet_payment_streams::types::ProviderLastChargeableInfo - **/ - PalletPaymentStreamsProviderLastChargeableInfo: { - lastChargeableTick: "u32", - priceIndex: "u128" - }, - /** - * Lookup460: pallet_payment_streams::pallet::Error - **/ - PalletPaymentStreamsError: { - _enum: [ - "PaymentStreamAlreadyExists", - "PaymentStreamNotFound", - "NotAProvider", - "ProviderInconsistencyError", - "CannotHoldDeposit", - "UpdateRateToSameRate", - "UpdateAmountToSameAmount", - "RateCantBeZero", - "AmountProvidedCantBeZero", - "LastChargedGreaterThanLastChargeable", - "InvalidLastChargeableBlockNumber", - "InvalidLastChargeablePriceIndex", - "ChargeOverflow", - "UserWithoutFunds", - "UserNotFlaggedAsWithoutFunds", - "CooldownPeriodNotPassed" - ] - }, - /** - * Lookup461: pallet_bucket_nfts::pallet::Error - **/ - PalletBucketNftsError: { - _enum: [ - "BucketIsNotPrivate", - "NotBucketOwner", - "NoCorrespondingCollection", - "ConvertBytesToBoundedVec" - ] - }, - /** - * Lookup462: pallet_nfts::types::CollectionDetails - **/ - PalletNftsCollectionDetails: { - owner: "AccountId32", - ownerDeposit: "u128", - items: "u32", - itemMetadatas: "u32", - itemConfigs: "u32", - attributes: "u32" - }, - /** - * Lookup467: pallet_nfts::types::CollectionRole - **/ - PalletNftsCollectionRole: { - _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] - }, - /** - * Lookup468: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> - **/ - PalletNftsItemDetails: { - owner: "AccountId32", - approvals: "BTreeMap>", - deposit: "PalletNftsItemDeposit" - }, - /** - * Lookup469: pallet_nfts::types::ItemDeposit - **/ - PalletNftsItemDeposit: { - account: "AccountId32", - amount: "u128" - }, - /** - * Lookup474: pallet_nfts::types::CollectionMetadata - **/ - PalletNftsCollectionMetadata: { - deposit: "u128", - data: "Bytes" - }, - /** - * Lookup475: pallet_nfts::types::ItemMetadata, StringLimit> - **/ - PalletNftsItemMetadata: { - deposit: "PalletNftsItemMetadataDeposit", - data: "Bytes" - }, - /** - * Lookup476: pallet_nfts::types::ItemMetadataDeposit - **/ - PalletNftsItemMetadataDeposit: { - account: "Option", - amount: "u128" - }, - /** - * Lookup479: pallet_nfts::types::AttributeDeposit - **/ - PalletNftsAttributeDeposit: { - account: "Option", - amount: "u128" - }, - /** - * Lookup483: pallet_nfts::types::PendingSwap, Deadline> - **/ - PalletNftsPendingSwap: { - desiredCollection: "u32", - desiredItem: "Option", - price: "Option", - deadline: "u32" - }, - /** - * Lookup485: pallet_nfts::types::PalletFeature - **/ - PalletNftsPalletFeature: { - _enum: [ - "__Unused0", - "Trading", - "Attributes", - "__Unused3", - "Approvals", - "__Unused5", - "__Unused6", - "__Unused7", - "Swaps" - ] - }, - /** - * Lookup486: pallet_nfts::pallet::Error - **/ - PalletNftsError: { - _enum: [ - "NoPermission", - "UnknownCollection", - "AlreadyExists", - "ApprovalExpired", - "WrongOwner", - "BadWitness", - "CollectionIdInUse", - "ItemsNonTransferable", - "NotDelegate", - "WrongDelegate", - "Unapproved", - "Unaccepted", - "ItemLocked", - "LockedItemAttributes", - "LockedCollectionAttributes", - "LockedItemMetadata", - "LockedCollectionMetadata", - "MaxSupplyReached", - "MaxSupplyLocked", - "MaxSupplyTooSmall", - "UnknownItem", - "UnknownSwap", - "MetadataNotFound", - "AttributeNotFound", - "NotForSale", - "BidTooLow", - "ReachedApprovalLimit", - "DeadlineExpired", - "WrongDuration", - "MethodDisabled", - "WrongSetting", - "InconsistentItemConfig", - "NoConfig", - "RolesNotCleared", - "MintNotStarted", - "MintEnded", - "AlreadyClaimed", - "IncorrectData", - "WrongOrigin", - "WrongSignature", - "IncorrectMetadata", - "MaxAttributesLimitReached", - "WrongNamespace", - "CollectionNotEmpty", - "WitnessRequired" - ] - }, - /** - * Lookup489: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender - **/ - FrameSystemExtensionsCheckNonZeroSender: "Null", - /** - * Lookup490: frame_system::extensions::check_spec_version::CheckSpecVersion - **/ - FrameSystemExtensionsCheckSpecVersion: "Null", - /** - * Lookup491: frame_system::extensions::check_tx_version::CheckTxVersion - **/ - FrameSystemExtensionsCheckTxVersion: "Null", - /** - * Lookup492: frame_system::extensions::check_genesis::CheckGenesis - **/ - FrameSystemExtensionsCheckGenesis: "Null", - /** - * Lookup495: frame_system::extensions::check_nonce::CheckNonce - **/ - FrameSystemExtensionsCheckNonce: "Compact", - /** - * Lookup496: frame_system::extensions::check_weight::CheckWeight - **/ - FrameSystemExtensionsCheckWeight: "Null", - /** - * Lookup497: pallet_transaction_payment::ChargeTransactionPayment - **/ - PalletTransactionPaymentChargeTransactionPayment: "Compact", - /** - * Lookup498: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim - **/ - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", - /** -<<<<<<< HEAD - * Lookup467: frame_metadata_hash_extension::CheckMetadataHash -======= - * Lookup499: frame_metadata_hash_extension::CheckMetadataHash ->>>>>>> main - **/ - FrameMetadataHashExtensionCheckMetadataHash: { - mode: "FrameMetadataHashExtensionMode" - }, - /** -<<<<<<< HEAD - * Lookup468: frame_metadata_hash_extension::Mode -======= - * Lookup500: frame_metadata_hash_extension::Mode ->>>>>>> main - **/ - FrameMetadataHashExtensionMode: { - _enum: ["Disabled", "Enabled"] - }, - /** -<<<<<<< HEAD - * Lookup469: storage_hub_runtime::Runtime -======= - * Lookup501: storage_hub_runtime::Runtime ->>>>>>> main - **/ - StorageHubRuntimeRuntime: "Null" -}; -//# sourceMappingURL=lookup.js.map +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ +/* eslint-disable sort-keys */ +export default { + /** + * Lookup3: frame_system::AccountInfo> + **/ + FrameSystemAccountInfo: { + nonce: "u32", + consumers: "u32", + providers: "u32", + sufficients: "u32", + data: "PalletBalancesAccountData" + }, + /** + * Lookup5: pallet_balances::types::AccountData + **/ + PalletBalancesAccountData: { + free: "u128", + reserved: "u128", + frozen: "u128", + flags: "u128" + }, + /** + * Lookup9: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeight: { + normal: "SpWeightsWeightV2Weight", + operational: "SpWeightsWeightV2Weight", + mandatory: "SpWeightsWeightV2Weight" + }, + /** + * Lookup10: sp_weights::weight_v2::Weight + **/ + SpWeightsWeightV2Weight: { + refTime: "Compact", + proofSize: "Compact" + }, + /** + * Lookup15: sp_runtime::generic::digest::Digest + **/ + SpRuntimeDigest: { + logs: "Vec" + }, + /** + * Lookup17: sp_runtime::generic::digest::DigestItem + **/ + SpRuntimeDigestDigestItem: { + _enum: { + Other: "Bytes", + __Unused1: "Null", + __Unused2: "Null", + __Unused3: "Null", + Consensus: "([u8;4],Bytes)", + Seal: "([u8;4],Bytes)", + PreRuntime: "([u8;4],Bytes)", + __Unused7: "Null", + RuntimeEnvironmentUpdated: "Null" + } + }, + /** + * Lookup20: frame_system::EventRecord + **/ + FrameSystemEventRecord: { + phase: "FrameSystemPhase", + event: "Event", + topics: "Vec" + }, + /** + * Lookup22: frame_system::pallet::Event + **/ + FrameSystemEvent: { + _enum: { + ExtrinsicSuccess: { + dispatchInfo: "FrameSupportDispatchDispatchInfo" + }, + ExtrinsicFailed: { + dispatchError: "SpRuntimeDispatchError", + dispatchInfo: "FrameSupportDispatchDispatchInfo" + }, + CodeUpdated: "Null", + NewAccount: { + account: "AccountId32" + }, + KilledAccount: { + account: "AccountId32" + }, + Remarked: { + _alias: { + hash_: "hash" + }, + sender: "AccountId32", + hash_: "H256" + }, + UpgradeAuthorized: { + codeHash: "H256", + checkVersion: "bool" + } + } + }, + /** + * Lookup23: frame_support::dispatch::DispatchInfo + **/ + FrameSupportDispatchDispatchInfo: { + weight: "SpWeightsWeightV2Weight", + class: "FrameSupportDispatchDispatchClass", + paysFee: "FrameSupportDispatchPays" + }, + /** + * Lookup24: frame_support::dispatch::DispatchClass + **/ + FrameSupportDispatchDispatchClass: { + _enum: ["Normal", "Operational", "Mandatory"] + }, + /** + * Lookup25: frame_support::dispatch::Pays + **/ + FrameSupportDispatchPays: { + _enum: ["Yes", "No"] + }, + /** + * Lookup26: sp_runtime::DispatchError + **/ + SpRuntimeDispatchError: { + _enum: { + Other: "Null", + CannotLookup: "Null", + BadOrigin: "Null", + Module: "SpRuntimeModuleError", + ConsumerRemaining: "Null", + NoProviders: "Null", + TooManyConsumers: "Null", + Token: "SpRuntimeTokenError", + Arithmetic: "SpArithmeticArithmeticError", + Transactional: "SpRuntimeTransactionalError", + Exhausted: "Null", + Corruption: "Null", + Unavailable: "Null", + RootNotAllowed: "Null" + } + }, + /** + * Lookup27: sp_runtime::ModuleError + **/ + SpRuntimeModuleError: { + index: "u8", + error: "[u8;4]" + }, + /** + * Lookup28: sp_runtime::TokenError + **/ + SpRuntimeTokenError: { + _enum: [ + "FundsUnavailable", + "OnlyProvider", + "BelowMinimum", + "CannotCreate", + "UnknownAsset", + "Frozen", + "Unsupported", + "CannotCreateHold", + "NotExpendable", + "Blocked" + ] + }, + /** + * Lookup29: sp_arithmetic::ArithmeticError + **/ + SpArithmeticArithmeticError: { + _enum: ["Underflow", "Overflow", "DivisionByZero"] + }, + /** + * Lookup30: sp_runtime::TransactionalError + **/ + SpRuntimeTransactionalError: { + _enum: ["LimitReached", "NoLayer"] + }, + /** + * Lookup31: cumulus_pallet_parachain_system::pallet::Event + **/ + CumulusPalletParachainSystemEvent: { + _enum: { + ValidationFunctionStored: "Null", + ValidationFunctionApplied: { + relayChainBlockNum: "u32" + }, + ValidationFunctionDiscarded: "Null", + DownwardMessagesReceived: { + count: "u32" + }, + DownwardMessagesProcessed: { + weightUsed: "SpWeightsWeightV2Weight", + dmqHead: "H256" + }, + UpwardMessageSent: { + messageHash: "Option<[u8;32]>" + } + } + }, + /** + * Lookup33: pallet_balances::pallet::Event + **/ + PalletBalancesEvent: { + _enum: { + Endowed: { + account: "AccountId32", + freeBalance: "u128" + }, + DustLost: { + account: "AccountId32", + amount: "u128" + }, + Transfer: { + from: "AccountId32", + to: "AccountId32", + amount: "u128" + }, + BalanceSet: { + who: "AccountId32", + free: "u128" + }, + Reserved: { + who: "AccountId32", + amount: "u128" + }, + Unreserved: { + who: "AccountId32", + amount: "u128" + }, + ReserveRepatriated: { + from: "AccountId32", + to: "AccountId32", + amount: "u128", + destinationStatus: "FrameSupportTokensMiscBalanceStatus" + }, + Deposit: { + who: "AccountId32", + amount: "u128" + }, + Withdraw: { + who: "AccountId32", + amount: "u128" + }, + Slashed: { + who: "AccountId32", + amount: "u128" + }, + Minted: { + who: "AccountId32", + amount: "u128" + }, + Burned: { + who: "AccountId32", + amount: "u128" + }, + Suspended: { + who: "AccountId32", + amount: "u128" + }, + Restored: { + who: "AccountId32", + amount: "u128" + }, + Upgraded: { + who: "AccountId32" + }, + Issued: { + amount: "u128" + }, + Rescinded: { + amount: "u128" + }, + Locked: { + who: "AccountId32", + amount: "u128" + }, + Unlocked: { + who: "AccountId32", + amount: "u128" + }, + Frozen: { + who: "AccountId32", + amount: "u128" + }, + Thawed: { + who: "AccountId32", + amount: "u128" + }, + TotalIssuanceForced: { + _alias: { + new_: "new" + }, + old: "u128", + new_: "u128" + } + } + }, + /** + * Lookup34: frame_support::traits::tokens::misc::BalanceStatus + **/ + FrameSupportTokensMiscBalanceStatus: { + _enum: ["Free", "Reserved"] + }, + /** + * Lookup35: pallet_transaction_payment::pallet::Event + **/ + PalletTransactionPaymentEvent: { + _enum: { + TransactionFeePaid: { + who: "AccountId32", + actualFee: "u128", + tip: "u128" + } + } + }, + /** + * Lookup36: pallet_sudo::pallet::Event + **/ + PalletSudoEvent: { + _enum: { + Sudid: { + sudoResult: "Result" + }, + KeyChanged: { + _alias: { + new_: "new" + }, + old: "Option", + new_: "AccountId32" + }, + KeyRemoved: "Null", + SudoAsDone: { + sudoResult: "Result" + } + } + }, + /** + * Lookup40: pallet_collator_selection::pallet::Event + **/ + PalletCollatorSelectionEvent: { + _enum: { + NewInvulnerables: { + invulnerables: "Vec" + }, + InvulnerableAdded: { + accountId: "AccountId32" + }, + InvulnerableRemoved: { + accountId: "AccountId32" + }, + NewDesiredCandidates: { + desiredCandidates: "u32" + }, + NewCandidacyBond: { + bondAmount: "u128" + }, + CandidateAdded: { + accountId: "AccountId32", + deposit: "u128" + }, + CandidateBondUpdated: { + accountId: "AccountId32", + deposit: "u128" + }, + CandidateRemoved: { + accountId: "AccountId32" + }, + CandidateReplaced: { + _alias: { + new_: "new" + }, + old: "AccountId32", + new_: "AccountId32", + deposit: "u128" + }, + InvalidInvulnerableSkipped: { + accountId: "AccountId32" + } + } + }, + /** + * Lookup42: pallet_session::pallet::Event + **/ + PalletSessionEvent: { + _enum: { + NewSession: { + sessionIndex: "u32" + } + } + }, + /** + * Lookup43: cumulus_pallet_xcmp_queue::pallet::Event + **/ + CumulusPalletXcmpQueueEvent: { + _enum: { + XcmpMessageSent: { + messageHash: "[u8;32]" + } + } + }, + /** + * Lookup44: pallet_xcm::pallet::Event + **/ + PalletXcmEvent: { + _enum: { + Attempted: { + outcome: "StagingXcmV4TraitsOutcome" + }, + Sent: { + origin: "StagingXcmV4Location", + destination: "StagingXcmV4Location", + message: "StagingXcmV4Xcm", + messageId: "[u8;32]" + }, + UnexpectedResponse: { + origin: "StagingXcmV4Location", + queryId: "u64" + }, + ResponseReady: { + queryId: "u64", + response: "StagingXcmV4Response" + }, + Notified: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8" + }, + NotifyOverweight: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8", + actualWeight: "SpWeightsWeightV2Weight", + maxBudgetedWeight: "SpWeightsWeightV2Weight" + }, + NotifyDispatchError: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8" + }, + NotifyDecodeFailed: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8" + }, + InvalidResponder: { + origin: "StagingXcmV4Location", + queryId: "u64", + expectedLocation: "Option" + }, + InvalidResponderVersion: { + origin: "StagingXcmV4Location", + queryId: "u64" + }, + ResponseTaken: { + queryId: "u64" + }, + AssetsTrapped: { + _alias: { + hash_: "hash" + }, + hash_: "H256", + origin: "StagingXcmV4Location", + assets: "XcmVersionedAssets" + }, + VersionChangeNotified: { + destination: "StagingXcmV4Location", + result: "u32", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + SupportedVersionChanged: { + location: "StagingXcmV4Location", + version: "u32" + }, + NotifyTargetSendFail: { + location: "StagingXcmV4Location", + queryId: "u64", + error: "XcmV3TraitsError" + }, + NotifyTargetMigrationFail: { + location: "XcmVersionedLocation", + queryId: "u64" + }, + InvalidQuerierVersion: { + origin: "StagingXcmV4Location", + queryId: "u64" + }, + InvalidQuerier: { + origin: "StagingXcmV4Location", + queryId: "u64", + expectedQuerier: "StagingXcmV4Location", + maybeActualQuerier: "Option" + }, + VersionNotifyStarted: { + destination: "StagingXcmV4Location", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + VersionNotifyRequested: { + destination: "StagingXcmV4Location", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + VersionNotifyUnrequested: { + destination: "StagingXcmV4Location", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + FeesPaid: { + paying: "StagingXcmV4Location", + fees: "StagingXcmV4AssetAssets" + }, + AssetsClaimed: { + _alias: { + hash_: "hash" + }, + hash_: "H256", + origin: "StagingXcmV4Location", + assets: "XcmVersionedAssets" + }, + VersionMigrationFinished: { + version: "u32" + } + } + }, + /** + * Lookup45: staging_xcm::v4::traits::Outcome + **/ + StagingXcmV4TraitsOutcome: { + _enum: { + Complete: { + used: "SpWeightsWeightV2Weight" + }, + Incomplete: { + used: "SpWeightsWeightV2Weight", + error: "XcmV3TraitsError" + }, + Error: { + error: "XcmV3TraitsError" + } + } + }, + /** + * Lookup46: xcm::v3::traits::Error + **/ + XcmV3TraitsError: { + _enum: { + Overflow: "Null", + Unimplemented: "Null", + UntrustedReserveLocation: "Null", + UntrustedTeleportLocation: "Null", + LocationFull: "Null", + LocationNotInvertible: "Null", + BadOrigin: "Null", + InvalidLocation: "Null", + AssetNotFound: "Null", + FailedToTransactAsset: "Null", + NotWithdrawable: "Null", + LocationCannotHold: "Null", + ExceedsMaxMessageSize: "Null", + DestinationUnsupported: "Null", + Transport: "Null", + Unroutable: "Null", + UnknownClaim: "Null", + FailedToDecode: "Null", + MaxWeightInvalid: "Null", + NotHoldingFees: "Null", + TooExpensive: "Null", + Trap: "u64", + ExpectationFalse: "Null", + PalletNotFound: "Null", + NameMismatch: "Null", + VersionIncompatible: "Null", + HoldingWouldOverflow: "Null", + ExportError: "Null", + ReanchorFailed: "Null", + NoDeal: "Null", + FeesNotMet: "Null", + LockError: "Null", + NoPermission: "Null", + Unanchored: "Null", + NotDepositable: "Null", + UnhandledXcmVersion: "Null", + WeightLimitReached: "SpWeightsWeightV2Weight", + Barrier: "Null", + WeightNotComputable: "Null", + ExceedsStackLimit: "Null" + } + }, + /** + * Lookup47: staging_xcm::v4::location::Location + **/ + StagingXcmV4Location: { + parents: "u8", + interior: "StagingXcmV4Junctions" + }, + /** + * Lookup48: staging_xcm::v4::junctions::Junctions + **/ + StagingXcmV4Junctions: { + _enum: { + Here: "Null", + X1: "[Lookup50;1]", + X2: "[Lookup50;2]", + X3: "[Lookup50;3]", + X4: "[Lookup50;4]", + X5: "[Lookup50;5]", + X6: "[Lookup50;6]", + X7: "[Lookup50;7]", + X8: "[Lookup50;8]" + } + }, + /** + * Lookup50: staging_xcm::v4::junction::Junction + **/ + StagingXcmV4Junction: { + _enum: { + Parachain: "Compact", + AccountId32: { + network: "Option", + id: "[u8;32]" + }, + AccountIndex64: { + network: "Option", + index: "Compact" + }, + AccountKey20: { + network: "Option", + key: "[u8;20]" + }, + PalletInstance: "u8", + GeneralIndex: "Compact", + GeneralKey: { + length: "u8", + data: "[u8;32]" + }, + OnlyChild: "Null", + Plurality: { + id: "XcmV3JunctionBodyId", + part: "XcmV3JunctionBodyPart" + }, + GlobalConsensus: "StagingXcmV4JunctionNetworkId" + } + }, + /** + * Lookup53: staging_xcm::v4::junction::NetworkId + **/ + StagingXcmV4JunctionNetworkId: { + _enum: { + ByGenesis: "[u8;32]", + ByFork: { + blockNumber: "u64", + blockHash: "[u8;32]" + }, + Polkadot: "Null", + Kusama: "Null", + Westend: "Null", + Rococo: "Null", + Wococo: "Null", + Ethereum: { + chainId: "Compact" + }, + BitcoinCore: "Null", + BitcoinCash: "Null", + PolkadotBulletin: "Null" + } + }, + /** + * Lookup56: xcm::v3::junction::BodyId + **/ + XcmV3JunctionBodyId: { + _enum: { + Unit: "Null", + Moniker: "[u8;4]", + Index: "Compact", + Executive: "Null", + Technical: "Null", + Legislative: "Null", + Judicial: "Null", + Defense: "Null", + Administration: "Null", + Treasury: "Null" + } + }, + /** + * Lookup57: xcm::v3::junction::BodyPart + **/ + XcmV3JunctionBodyPart: { + _enum: { + Voice: "Null", + Members: { + count: "Compact" + }, + Fraction: { + nom: "Compact", + denom: "Compact" + }, + AtLeastProportion: { + nom: "Compact", + denom: "Compact" + }, + MoreThanProportion: { + nom: "Compact", + denom: "Compact" + } + } + }, + /** + * Lookup65: staging_xcm::v4::Xcm + **/ + StagingXcmV4Xcm: "Vec", + /** + * Lookup67: staging_xcm::v4::Instruction + **/ + StagingXcmV4Instruction: { + _enum: { + WithdrawAsset: "StagingXcmV4AssetAssets", + ReserveAssetDeposited: "StagingXcmV4AssetAssets", + ReceiveTeleportedAsset: "StagingXcmV4AssetAssets", + QueryResponse: { + queryId: "Compact", + response: "StagingXcmV4Response", + maxWeight: "SpWeightsWeightV2Weight", + querier: "Option" + }, + TransferAsset: { + assets: "StagingXcmV4AssetAssets", + beneficiary: "StagingXcmV4Location" + }, + TransferReserveAsset: { + assets: "StagingXcmV4AssetAssets", + dest: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + Transact: { + originKind: "XcmV3OriginKind", + requireWeightAtMost: "SpWeightsWeightV2Weight", + call: "XcmDoubleEncoded" + }, + HrmpNewChannelOpenRequest: { + sender: "Compact", + maxMessageSize: "Compact", + maxCapacity: "Compact" + }, + HrmpChannelAccepted: { + recipient: "Compact" + }, + HrmpChannelClosing: { + initiator: "Compact", + sender: "Compact", + recipient: "Compact" + }, + ClearOrigin: "Null", + DescendOrigin: "StagingXcmV4Junctions", + ReportError: "StagingXcmV4QueryResponseInfo", + DepositAsset: { + assets: "StagingXcmV4AssetAssetFilter", + beneficiary: "StagingXcmV4Location" + }, + DepositReserveAsset: { + assets: "StagingXcmV4AssetAssetFilter", + dest: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + ExchangeAsset: { + give: "StagingXcmV4AssetAssetFilter", + want: "StagingXcmV4AssetAssets", + maximal: "bool" + }, + InitiateReserveWithdraw: { + assets: "StagingXcmV4AssetAssetFilter", + reserve: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + InitiateTeleport: { + assets: "StagingXcmV4AssetAssetFilter", + dest: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + ReportHolding: { + responseInfo: "StagingXcmV4QueryResponseInfo", + assets: "StagingXcmV4AssetAssetFilter" + }, + BuyExecution: { + fees: "StagingXcmV4Asset", + weightLimit: "XcmV3WeightLimit" + }, + RefundSurplus: "Null", + SetErrorHandler: "StagingXcmV4Xcm", + SetAppendix: "StagingXcmV4Xcm", + ClearError: "Null", + ClaimAsset: { + assets: "StagingXcmV4AssetAssets", + ticket: "StagingXcmV4Location" + }, + Trap: "Compact", + SubscribeVersion: { + queryId: "Compact", + maxResponseWeight: "SpWeightsWeightV2Weight" + }, + UnsubscribeVersion: "Null", + BurnAsset: "StagingXcmV4AssetAssets", + ExpectAsset: "StagingXcmV4AssetAssets", + ExpectOrigin: "Option", + ExpectError: "Option<(u32,XcmV3TraitsError)>", + ExpectTransactStatus: "XcmV3MaybeErrorCode", + QueryPallet: { + moduleName: "Bytes", + responseInfo: "StagingXcmV4QueryResponseInfo" + }, + ExpectPallet: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + crateMajor: "Compact", + minCrateMinor: "Compact" + }, + ReportTransactStatus: "StagingXcmV4QueryResponseInfo", + ClearTransactStatus: "Null", + UniversalOrigin: "StagingXcmV4Junction", + ExportMessage: { + network: "StagingXcmV4JunctionNetworkId", + destination: "StagingXcmV4Junctions", + xcm: "StagingXcmV4Xcm" + }, + LockAsset: { + asset: "StagingXcmV4Asset", + unlocker: "StagingXcmV4Location" + }, + UnlockAsset: { + asset: "StagingXcmV4Asset", + target: "StagingXcmV4Location" + }, + NoteUnlockable: { + asset: "StagingXcmV4Asset", + owner: "StagingXcmV4Location" + }, + RequestUnlock: { + asset: "StagingXcmV4Asset", + locker: "StagingXcmV4Location" + }, + SetFeesMode: { + jitWithdraw: "bool" + }, + SetTopic: "[u8;32]", + ClearTopic: "Null", + AliasOrigin: "StagingXcmV4Location", + UnpaidExecution: { + weightLimit: "XcmV3WeightLimit", + checkOrigin: "Option" + } + } + }, + /** + * Lookup68: staging_xcm::v4::asset::Assets + **/ + StagingXcmV4AssetAssets: "Vec", + /** + * Lookup70: staging_xcm::v4::asset::Asset + **/ + StagingXcmV4Asset: { + id: "StagingXcmV4AssetAssetId", + fun: "StagingXcmV4AssetFungibility" + }, + /** + * Lookup71: staging_xcm::v4::asset::AssetId + **/ + StagingXcmV4AssetAssetId: "StagingXcmV4Location", + /** + * Lookup72: staging_xcm::v4::asset::Fungibility + **/ + StagingXcmV4AssetFungibility: { + _enum: { + Fungible: "Compact", + NonFungible: "StagingXcmV4AssetAssetInstance" + } + }, + /** + * Lookup73: staging_xcm::v4::asset::AssetInstance + **/ + StagingXcmV4AssetAssetInstance: { + _enum: { + Undefined: "Null", + Index: "Compact", + Array4: "[u8;4]", + Array8: "[u8;8]", + Array16: "[u8;16]", + Array32: "[u8;32]" + } + }, + /** + * Lookup76: staging_xcm::v4::Response + **/ + StagingXcmV4Response: { + _enum: { + Null: "Null", + Assets: "StagingXcmV4AssetAssets", + ExecutionResult: "Option<(u32,XcmV3TraitsError)>", + Version: "u32", + PalletsInfo: "Vec", + DispatchResult: "XcmV3MaybeErrorCode" + } + }, + /** + * Lookup80: staging_xcm::v4::PalletInfo + **/ + StagingXcmV4PalletInfo: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + major: "Compact", + minor: "Compact", + patch: "Compact" + }, + /** + * Lookup83: xcm::v3::MaybeErrorCode + **/ + XcmV3MaybeErrorCode: { + _enum: { + Success: "Null", + Error: "Bytes", + TruncatedError: "Bytes" + } + }, + /** + * Lookup86: xcm::v3::OriginKind + **/ + XcmV3OriginKind: { + _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] + }, + /** + * Lookup87: xcm::double_encoded::DoubleEncoded + **/ + XcmDoubleEncoded: { + encoded: "Bytes" + }, + /** + * Lookup88: staging_xcm::v4::QueryResponseInfo + **/ + StagingXcmV4QueryResponseInfo: { + destination: "StagingXcmV4Location", + queryId: "Compact", + maxWeight: "SpWeightsWeightV2Weight" + }, + /** + * Lookup89: staging_xcm::v4::asset::AssetFilter + **/ + StagingXcmV4AssetAssetFilter: { + _enum: { + Definite: "StagingXcmV4AssetAssets", + Wild: "StagingXcmV4AssetWildAsset" + } + }, + /** + * Lookup90: staging_xcm::v4::asset::WildAsset + **/ + StagingXcmV4AssetWildAsset: { + _enum: { + All: "Null", + AllOf: { + id: "StagingXcmV4AssetAssetId", + fun: "StagingXcmV4AssetWildFungibility" + }, + AllCounted: "Compact", + AllOfCounted: { + id: "StagingXcmV4AssetAssetId", + fun: "StagingXcmV4AssetWildFungibility", + count: "Compact" + } + } + }, + /** + * Lookup91: staging_xcm::v4::asset::WildFungibility + **/ + StagingXcmV4AssetWildFungibility: { + _enum: ["Fungible", "NonFungible"] + }, + /** + * Lookup92: xcm::v3::WeightLimit + **/ + XcmV3WeightLimit: { + _enum: { + Unlimited: "Null", + Limited: "SpWeightsWeightV2Weight" + } + }, + /** + * Lookup93: xcm::VersionedAssets + **/ + XcmVersionedAssets: { + _enum: { + __Unused0: "Null", + V2: "XcmV2MultiassetMultiAssets", + __Unused2: "Null", + V3: "XcmV3MultiassetMultiAssets", + V4: "StagingXcmV4AssetAssets" + } + }, + /** + * Lookup94: xcm::v2::multiasset::MultiAssets + **/ + XcmV2MultiassetMultiAssets: "Vec", + /** + * Lookup96: xcm::v2::multiasset::MultiAsset + **/ + XcmV2MultiAsset: { + id: "XcmV2MultiassetAssetId", + fun: "XcmV2MultiassetFungibility" + }, + /** + * Lookup97: xcm::v2::multiasset::AssetId + **/ + XcmV2MultiassetAssetId: { + _enum: { + Concrete: "XcmV2MultiLocation", + Abstract: "Bytes" + } + }, + /** + * Lookup98: xcm::v2::multilocation::MultiLocation + **/ + XcmV2MultiLocation: { + parents: "u8", + interior: "XcmV2MultilocationJunctions" + }, + /** + * Lookup99: xcm::v2::multilocation::Junctions + **/ + XcmV2MultilocationJunctions: { + _enum: { + Here: "Null", + X1: "XcmV2Junction", + X2: "(XcmV2Junction,XcmV2Junction)", + X3: "(XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X4: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X5: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X6: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X7: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X8: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)" + } + }, + /** + * Lookup100: xcm::v2::junction::Junction + **/ + XcmV2Junction: { + _enum: { + Parachain: "Compact", + AccountId32: { + network: "XcmV2NetworkId", + id: "[u8;32]" + }, + AccountIndex64: { + network: "XcmV2NetworkId", + index: "Compact" + }, + AccountKey20: { + network: "XcmV2NetworkId", + key: "[u8;20]" + }, + PalletInstance: "u8", + GeneralIndex: "Compact", + GeneralKey: "Bytes", + OnlyChild: "Null", + Plurality: { + id: "XcmV2BodyId", + part: "XcmV2BodyPart" + } + } + }, + /** + * Lookup101: xcm::v2::NetworkId + **/ + XcmV2NetworkId: { + _enum: { + Any: "Null", + Named: "Bytes", + Polkadot: "Null", + Kusama: "Null" + } + }, + /** + * Lookup103: xcm::v2::BodyId + **/ + XcmV2BodyId: { + _enum: { + Unit: "Null", + Named: "Bytes", + Index: "Compact", + Executive: "Null", + Technical: "Null", + Legislative: "Null", + Judicial: "Null", + Defense: "Null", + Administration: "Null", + Treasury: "Null" + } + }, + /** + * Lookup104: xcm::v2::BodyPart + **/ + XcmV2BodyPart: { + _enum: { + Voice: "Null", + Members: { + count: "Compact" + }, + Fraction: { + nom: "Compact", + denom: "Compact" + }, + AtLeastProportion: { + nom: "Compact", + denom: "Compact" + }, + MoreThanProportion: { + nom: "Compact", + denom: "Compact" + } + } + }, + /** + * Lookup105: xcm::v2::multiasset::Fungibility + **/ + XcmV2MultiassetFungibility: { + _enum: { + Fungible: "Compact", + NonFungible: "XcmV2MultiassetAssetInstance" + } + }, + /** + * Lookup106: xcm::v2::multiasset::AssetInstance + **/ + XcmV2MultiassetAssetInstance: { + _enum: { + Undefined: "Null", + Index: "Compact", + Array4: "[u8;4]", + Array8: "[u8;8]", + Array16: "[u8;16]", + Array32: "[u8;32]", + Blob: "Bytes" + } + }, + /** + * Lookup107: xcm::v3::multiasset::MultiAssets + **/ + XcmV3MultiassetMultiAssets: "Vec", + /** + * Lookup109: xcm::v3::multiasset::MultiAsset + **/ + XcmV3MultiAsset: { + id: "XcmV3MultiassetAssetId", + fun: "XcmV3MultiassetFungibility" + }, + /** + * Lookup110: xcm::v3::multiasset::AssetId + **/ + XcmV3MultiassetAssetId: { + _enum: { + Concrete: "StagingXcmV3MultiLocation", + Abstract: "[u8;32]" + } + }, + /** + * Lookup111: staging_xcm::v3::multilocation::MultiLocation + **/ + StagingXcmV3MultiLocation: { + parents: "u8", + interior: "XcmV3Junctions" + }, + /** + * Lookup112: xcm::v3::junctions::Junctions + **/ + XcmV3Junctions: { + _enum: { + Here: "Null", + X1: "XcmV3Junction", + X2: "(XcmV3Junction,XcmV3Junction)", + X3: "(XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X4: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X5: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X6: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X7: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X8: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)" + } + }, + /** + * Lookup113: xcm::v3::junction::Junction + **/ + XcmV3Junction: { + _enum: { + Parachain: "Compact", + AccountId32: { + network: "Option", + id: "[u8;32]" + }, + AccountIndex64: { + network: "Option", + index: "Compact" + }, + AccountKey20: { + network: "Option", + key: "[u8;20]" + }, + PalletInstance: "u8", + GeneralIndex: "Compact", + GeneralKey: { + length: "u8", + data: "[u8;32]" + }, + OnlyChild: "Null", + Plurality: { + id: "XcmV3JunctionBodyId", + part: "XcmV3JunctionBodyPart" + }, + GlobalConsensus: "XcmV3JunctionNetworkId" + } + }, + /** + * Lookup115: xcm::v3::junction::NetworkId + **/ + XcmV3JunctionNetworkId: { + _enum: { + ByGenesis: "[u8;32]", + ByFork: { + blockNumber: "u64", + blockHash: "[u8;32]" + }, + Polkadot: "Null", + Kusama: "Null", + Westend: "Null", + Rococo: "Null", + Wococo: "Null", + Ethereum: { + chainId: "Compact" + }, + BitcoinCore: "Null", + BitcoinCash: "Null", + PolkadotBulletin: "Null" + } + }, + /** + * Lookup116: xcm::v3::multiasset::Fungibility + **/ + XcmV3MultiassetFungibility: { + _enum: { + Fungible: "Compact", + NonFungible: "XcmV3MultiassetAssetInstance" + } + }, + /** + * Lookup117: xcm::v3::multiasset::AssetInstance + **/ + XcmV3MultiassetAssetInstance: { + _enum: { + Undefined: "Null", + Index: "Compact", + Array4: "[u8;4]", + Array8: "[u8;8]", + Array16: "[u8;16]", + Array32: "[u8;32]" + } + }, + /** + * Lookup118: xcm::VersionedLocation + **/ + XcmVersionedLocation: { + _enum: { + __Unused0: "Null", + V2: "XcmV2MultiLocation", + __Unused2: "Null", + V3: "StagingXcmV3MultiLocation", + V4: "StagingXcmV4Location" + } + }, + /** + * Lookup119: cumulus_pallet_xcm::pallet::Event + **/ + CumulusPalletXcmEvent: { + _enum: { + InvalidFormat: "[u8;32]", + UnsupportedVersion: "[u8;32]", + ExecutedDownward: "([u8;32],StagingXcmV4TraitsOutcome)" + } + }, + /** + * Lookup120: pallet_message_queue::pallet::Event + **/ + PalletMessageQueueEvent: { + _enum: { + ProcessingFailed: { + id: "H256", + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + error: "FrameSupportMessagesProcessMessageError" + }, + Processed: { + id: "H256", + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + weightUsed: "SpWeightsWeightV2Weight", + success: "bool" + }, + OverweightEnqueued: { + id: "[u8;32]", + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + pageIndex: "u32", + messageIndex: "u32" + }, + PageReaped: { + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + index: "u32" + } + } + }, + /** + * Lookup121: cumulus_primitives_core::AggregateMessageOrigin + **/ + CumulusPrimitivesCoreAggregateMessageOrigin: { + _enum: { + Here: "Null", + Parent: "Null", + Sibling: "u32" + } + }, + /** + * Lookup123: frame_support::traits::messages::ProcessMessageError + **/ + FrameSupportMessagesProcessMessageError: { + _enum: { + BadFormat: "Null", + Corrupt: "Null", + Unsupported: "Null", + Overweight: "SpWeightsWeightV2Weight", + Yield: "Null", + StackLimitReached: "Null" + } + }, + /** + * Lookup124: pallet_storage_providers::pallet::Event + **/ + PalletStorageProvidersEvent: { + _enum: { + MspRequestSignUpSuccess: { + who: "AccountId32", + multiaddresses: "Vec", + capacity: "u64", + valueProp: "PalletStorageProvidersValueProposition" + }, + MspSignUpSuccess: { + who: "AccountId32", + mspId: "H256", + multiaddresses: "Vec", + capacity: "u64", + valueProp: "PalletStorageProvidersValueProposition" + }, + BspRequestSignUpSuccess: { + who: "AccountId32", + multiaddresses: "Vec", + capacity: "u64" + }, + BspSignUpSuccess: { + who: "AccountId32", + bspId: "H256", + multiaddresses: "Vec", + capacity: "u64" + }, + SignUpRequestCanceled: { + who: "AccountId32" + }, + MspSignOffSuccess: { + who: "AccountId32", + mspId: "H256" + }, + BspSignOffSuccess: { + who: "AccountId32", + bspId: "H256" + }, + CapacityChanged: { + who: "AccountId32", + providerId: "PalletStorageProvidersStorageProviderId", + oldCapacity: "u64", + newCapacity: "u64", + nextBlockWhenChangeAllowed: "u32" + }, + Slashed: { + providerId: "H256", + amountSlashed: "u128" + } + } + }, + /** + * Lookup128: pallet_storage_providers::types::ValueProposition + **/ + PalletStorageProvidersValueProposition: { + identifier: "H256", + dataLimit: "u64", + protocols: "Vec" + }, + /** + * Lookup130: pallet_storage_providers::types::StorageProviderId + **/ + PalletStorageProvidersStorageProviderId: { + _enum: { + BackupStorageProvider: "H256", + MainStorageProvider: "H256" + } + }, + /** + * Lookup131: pallet_file_system::pallet::Event + **/ + PalletFileSystemEvent: { + _enum: { + NewBucket: { + who: "AccountId32", + mspId: "H256", + bucketId: "H256", + name: "Bytes", + collectionId: "Option", + private: "bool" + }, + MoveBucketRequested: { + who: "AccountId32", + bucketId: "H256", + newMspId: "H256" + }, + BucketPrivacyUpdated: { + who: "AccountId32", + bucketId: "H256", + collectionId: "Option", + private: "bool" + }, + NewCollectionAndAssociation: { + who: "AccountId32", + bucketId: "H256", + collectionId: "u32" + }, + NewStorageRequest: { + _alias: { + size_: "size" + }, + who: "AccountId32", + fileKey: "H256", + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + size_: "u64", + peerIds: "Vec" + }, + MspRespondedToStorageRequests: { + results: "PalletFileSystemMspRespondStorageRequestsResult" + }, + AcceptedBspVolunteer: { + _alias: { + size_: "size" + }, + bspId: "H256", + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + multiaddresses: "Vec", + owner: "AccountId32", + size_: "u64" + }, + BspConfirmedStoring: { + who: "AccountId32", + bspId: "H256", + fileKeys: "Vec", + newRoot: "H256" + }, + StorageRequestFulfilled: { + fileKey: "H256" + }, + StorageRequestExpired: { + fileKey: "H256" + }, + StorageRequestRevoked: { + fileKey: "H256" + }, + BspRequestedToStopStoring: { + bspId: "H256", + fileKey: "H256", + owner: "AccountId32", + location: "Bytes" + }, + BspConfirmStoppedStoring: { + bspId: "H256", + fileKey: "H256", + newRoot: "H256" + }, + PriorityChallengeForFileDeletionQueued: { + issuer: "PalletFileSystemEitherAccountIdOrMspId", + fileKey: "H256" + }, + SpStopStoringInsolventUser: { + spId: "H256", + fileKey: "H256", + owner: "AccountId32", + location: "Bytes", + newRoot: "H256" + }, + FailedToQueuePriorityChallenge: { + user: "AccountId32", + fileKey: "H256" + }, + FileDeletionRequest: { + user: "AccountId32", + fileKey: "H256", + bucketId: "H256", + mspId: "H256", + proofOfInclusion: "bool" + }, + ProofSubmittedForPendingFileDeletionRequest: { + mspId: "H256", + user: "AccountId32", + fileKey: "H256", + bucketId: "H256", + proofOfInclusion: "bool" + }, + BspChallengeCycleInitialised: { + who: "AccountId32", + bspId: "H256" + }, + MoveBucketRequestExpired: { + mspId: "H256", + bucketId: "H256" + }, + MoveBucketAccepted: { + bucketId: "H256", + mspId: "H256" + }, + MoveBucketRejected: { + bucketId: "H256", + mspId: "H256" + }, + DataServerRegisteredForMoveBucket: { + bspId: "H256", + bucketId: "H256" + } + } + }, + /** + * Lookup134: pallet_file_system::types::MspRespondStorageRequestsResult + **/ + PalletFileSystemMspRespondStorageRequestsResult: { + mspId: "H256", + responses: "Vec" + }, + /** + * Lookup136: pallet_file_system::types::BatchResponses + **/ + PalletFileSystemBatchResponses: { + _enum: { + Accepted: "PalletFileSystemMspAcceptedBatchStorageRequests", + Rejected: "PalletFileSystemMspRejectedBatchStorageRequests", + Failed: "PalletFileSystemMspFailedBatchStorageRequests" + } + }, + /** + * Lookup137: pallet_file_system::types::MspAcceptedBatchStorageRequests + **/ + PalletFileSystemMspAcceptedBatchStorageRequests: { + fileKeys: "Vec", + bucketId: "H256", + newBucketRoot: "H256", + owner: "AccountId32" + }, + /** + * Lookup140: pallet_file_system::types::MspRejectedBatchStorageRequests + **/ + PalletFileSystemMspRejectedBatchStorageRequests: { + fileKeys: "Vec<(H256,PalletFileSystemRejectedStorageRequestReason)>", + bucketId: "H256", + owner: "AccountId32" + }, + /** + * Lookup143: pallet_file_system::types::RejectedStorageRequestReason + **/ + PalletFileSystemRejectedStorageRequestReason: { + _enum: ["ReachedMaximumCapacity", "ReceivedInvalidProof", "InternalError"] + }, + /** + * Lookup145: pallet_file_system::types::MspFailedBatchStorageRequests + **/ + PalletFileSystemMspFailedBatchStorageRequests: { + fileKeys: "Vec<(H256,SpRuntimeDispatchError)>", + bucketId: "H256", + owner: "AccountId32" + }, + /** + * Lookup150: pallet_file_system::types::EitherAccountIdOrMspId + **/ + PalletFileSystemEitherAccountIdOrMspId: { + _enum: { + AccountId: "AccountId32", + MspId: "H256" + } + }, + /** + * Lookup151: pallet_proofs_dealer::pallet::Event + **/ + PalletProofsDealerEvent: { + _enum: { + NewChallenge: { + who: "AccountId32", + keyChallenged: "H256" + }, + ProofAccepted: { + provider: "H256", + proof: "PalletProofsDealerProof" + }, + NewChallengeSeed: { + challengesTicker: "u32", + seed: "H256" + }, + NewCheckpointChallenge: { + challengesTicker: "u32", + challenges: "Vec<(H256,Option)>" + }, + SlashableProvider: { + provider: "H256", + nextChallengeDeadline: "u32" + }, + NoRecordOfLastSubmittedProof: { + provider: "H256" + }, + NewChallengeCycleInitialised: { + currentTick: "u32", + nextChallengeDeadline: "u32", + provider: "H256", + maybeProviderAccount: "Option" + }, + MutationsApplied: { + provider: "H256", + mutations: "Vec<(H256,ShpTraitsTrieRemoveMutation)>", + newRoot: "H256" + }, + ChallengesTickerSet: { + paused: "bool" + } + } + }, + /** + * Lookup152: pallet_proofs_dealer::types::Proof + **/ + PalletProofsDealerProof: { + forestProof: "SpTrieStorageProofCompactProof", + keyProofs: "BTreeMap" + }, + /** + * Lookup153: sp_trie::storage_proof::CompactProof + **/ + SpTrieStorageProofCompactProof: { + encodedNodes: "Vec" + }, + /** + * Lookup156: pallet_proofs_dealer::types::KeyProof + **/ + PalletProofsDealerKeyProof: { + proof: "ShpFileKeyVerifierFileKeyProof", + challengeCount: "u32" + }, + /** + * Lookup157: shp_file_key_verifier::types::FileKeyProof + **/ + ShpFileKeyVerifierFileKeyProof: { + fileMetadata: "ShpFileMetadataFileMetadata", + proof: "SpTrieStorageProofCompactProof" + }, + /** + * Lookup158: shp_file_metadata::FileMetadata + **/ + ShpFileMetadataFileMetadata: { + owner: "Bytes", + bucketId: "Bytes", + location: "Bytes", + fileSize: "Compact", + fingerprint: "ShpFileMetadataFingerprint" + }, + /** + * Lookup159: shp_file_metadata::Fingerprint + **/ + ShpFileMetadataFingerprint: "[u8;32]", + /** + * Lookup165: shp_traits::TrieRemoveMutation + **/ + ShpTraitsTrieRemoveMutation: "Null", + /** + * Lookup169: pallet_randomness::pallet::Event + **/ + PalletRandomnessEvent: { + _enum: { + NewOneEpochAgoRandomnessAvailable: { + randomnessSeed: "H256", + fromEpoch: "u64", + validUntilBlock: "u32" + } + } + }, + /** + * Lookup170: pallet_payment_streams::pallet::Event + **/ + PalletPaymentStreamsEvent: { + _enum: { + FixedRatePaymentStreamCreated: { + userAccount: "AccountId32", + providerId: "H256", + rate: "u128" + }, + FixedRatePaymentStreamUpdated: { + userAccount: "AccountId32", + providerId: "H256", + newRate: "u128" + }, + FixedRatePaymentStreamDeleted: { + userAccount: "AccountId32", + providerId: "H256" + }, + DynamicRatePaymentStreamCreated: { + userAccount: "AccountId32", + providerId: "H256", + amountProvided: "u64" + }, + DynamicRatePaymentStreamUpdated: { + userAccount: "AccountId32", + providerId: "H256", + newAmountProvided: "u64" + }, + DynamicRatePaymentStreamDeleted: { + userAccount: "AccountId32", + providerId: "H256" + }, + PaymentStreamCharged: { + userAccount: "AccountId32", + providerId: "H256", + amount: "u128" + }, + LastChargeableInfoUpdated: { + providerId: "H256", + lastChargeableTick: "u32", + lastChargeablePriceIndex: "u128" + }, + UserWithoutFunds: { + who: "AccountId32" + }, + UserPaidDebts: { + who: "AccountId32" + }, + UserSolvent: { + who: "AccountId32" + } + } + }, + /** + * Lookup171: pallet_bucket_nfts::pallet::Event + **/ + PalletBucketNftsEvent: { + _enum: { + AccessShared: { + issuer: "AccountId32", + recipient: "AccountId32" + }, + ItemReadAccessUpdated: { + admin: "AccountId32", + bucket: "H256", + itemId: "u32" + }, + ItemBurned: { + account: "AccountId32", + bucket: "H256", + itemId: "u32" + } + } + }, + /** + * Lookup172: pallet_nfts::pallet::Event + **/ + PalletNftsEvent: { + _enum: { + Created: { + collection: "u32", + creator: "AccountId32", + owner: "AccountId32" + }, + ForceCreated: { + collection: "u32", + owner: "AccountId32" + }, + Destroyed: { + collection: "u32" + }, + Issued: { + collection: "u32", + item: "u32", + owner: "AccountId32" + }, + Transferred: { + collection: "u32", + item: "u32", + from: "AccountId32", + to: "AccountId32" + }, + Burned: { + collection: "u32", + item: "u32", + owner: "AccountId32" + }, + ItemTransferLocked: { + collection: "u32", + item: "u32" + }, + ItemTransferUnlocked: { + collection: "u32", + item: "u32" + }, + ItemPropertiesLocked: { + collection: "u32", + item: "u32", + lockMetadata: "bool", + lockAttributes: "bool" + }, + CollectionLocked: { + collection: "u32" + }, + OwnerChanged: { + collection: "u32", + newOwner: "AccountId32" + }, + TeamChanged: { + collection: "u32", + issuer: "Option", + admin: "Option", + freezer: "Option" + }, + TransferApproved: { + collection: "u32", + item: "u32", + owner: "AccountId32", + delegate: "AccountId32", + deadline: "Option" + }, + ApprovalCancelled: { + collection: "u32", + item: "u32", + owner: "AccountId32", + delegate: "AccountId32" + }, + AllApprovalsCancelled: { + collection: "u32", + item: "u32", + owner: "AccountId32" + }, + CollectionConfigChanged: { + collection: "u32" + }, + CollectionMetadataSet: { + collection: "u32", + data: "Bytes" + }, + CollectionMetadataCleared: { + collection: "u32" + }, + ItemMetadataSet: { + collection: "u32", + item: "u32", + data: "Bytes" + }, + ItemMetadataCleared: { + collection: "u32", + item: "u32" + }, + Redeposited: { + collection: "u32", + successfulItems: "Vec" + }, + AttributeSet: { + collection: "u32", + maybeItem: "Option", + key: "Bytes", + value: "Bytes", + namespace: "PalletNftsAttributeNamespace" + }, + AttributeCleared: { + collection: "u32", + maybeItem: "Option", + key: "Bytes", + namespace: "PalletNftsAttributeNamespace" + }, + ItemAttributesApprovalAdded: { + collection: "u32", + item: "u32", + delegate: "AccountId32" + }, + ItemAttributesApprovalRemoved: { + collection: "u32", + item: "u32", + delegate: "AccountId32" + }, + OwnershipAcceptanceChanged: { + who: "AccountId32", + maybeCollection: "Option" + }, + CollectionMaxSupplySet: { + collection: "u32", + maxSupply: "u32" + }, + CollectionMintSettingsUpdated: { + collection: "u32" + }, + NextCollectionIdIncremented: { + nextId: "Option" + }, + ItemPriceSet: { + collection: "u32", + item: "u32", + price: "u128", + whitelistedBuyer: "Option" + }, + ItemPriceRemoved: { + collection: "u32", + item: "u32" + }, + ItemBought: { + collection: "u32", + item: "u32", + price: "u128", + seller: "AccountId32", + buyer: "AccountId32" + }, + TipSent: { + collection: "u32", + item: "u32", + sender: "AccountId32", + receiver: "AccountId32", + amount: "u128" + }, + SwapCreated: { + offeredCollection: "u32", + offeredItem: "u32", + desiredCollection: "u32", + desiredItem: "Option", + price: "Option", + deadline: "u32" + }, + SwapCancelled: { + offeredCollection: "u32", + offeredItem: "u32", + desiredCollection: "u32", + desiredItem: "Option", + price: "Option", + deadline: "u32" + }, + SwapClaimed: { + sentCollection: "u32", + sentItem: "u32", + sentItemOwner: "AccountId32", + receivedCollection: "u32", + receivedItem: "u32", + receivedItemOwner: "AccountId32", + price: "Option", + deadline: "u32" + }, + PreSignedAttributesSet: { + collection: "u32", + item: "u32", + namespace: "PalletNftsAttributeNamespace" + }, + PalletAttributeSet: { + collection: "u32", + item: "Option", + attribute: "PalletNftsPalletAttributes", + value: "Bytes" + } + } + }, + /** + * Lookup176: pallet_nfts::types::AttributeNamespace + **/ + PalletNftsAttributeNamespace: { + _enum: { + Pallet: "Null", + CollectionOwner: "Null", + ItemOwner: "Null", + Account: "AccountId32" + } + }, + /** + * Lookup178: pallet_nfts::types::PriceWithDirection + **/ + PalletNftsPriceWithDirection: { + amount: "u128", + direction: "PalletNftsPriceDirection" + }, + /** + * Lookup179: pallet_nfts::types::PriceDirection + **/ + PalletNftsPriceDirection: { + _enum: ["Send", "Receive"] + }, + /** + * Lookup180: pallet_nfts::types::PalletAttributes + **/ + PalletNftsPalletAttributes: { + _enum: { + UsedToClaim: "u32", + TransferDisabled: "Null" + } + }, + /** + * Lookup181: pallet_parameters::pallet::Event + **/ + PalletParametersEvent: { + _enum: { + Updated: { + key: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey", + oldValue: "Option", + newValue: "Option" + } + } + }, + /** + * Lookup182: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { + _enum: { + RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey" + } + }, + /** + * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { + _enum: [ + "SlashAmountPerMaxFileSize", + "StakeToChallengePeriod", + "CheckpointChallengePeriod", + "MinChallengePeriod" + ] + }, + /** + * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: "Null", + /** + * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: "Null", + /** + * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: "Null", + /** + * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: "Null", + /** + * Lookup189: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { + _enum: { + RuntimeConfig: + "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue" + } + }, + /** + * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { + _enum: { + SlashAmountPerMaxFileSize: "u128", + StakeToChallengePeriod: "u128", + CheckpointChallengePeriod: "u32", + MinChallengePeriod: "u32" + } + }, + /** + * Lookup191: frame_system::Phase + **/ + FrameSystemPhase: { + _enum: { + ApplyExtrinsic: "u32", + Finalization: "Null", + Initialization: "Null" + } + }, + /** + * Lookup194: frame_system::LastRuntimeUpgradeInfo + **/ + FrameSystemLastRuntimeUpgradeInfo: { + specVersion: "Compact", + specName: "Text" + }, + /** + * Lookup196: frame_system::CodeUpgradeAuthorization + **/ + FrameSystemCodeUpgradeAuthorization: { + codeHash: "H256", + checkVersion: "bool" + }, + /** + * Lookup197: frame_system::pallet::Call + **/ + FrameSystemCall: { + _enum: { + remark: { + remark: "Bytes" + }, + set_heap_pages: { + pages: "u64" + }, + set_code: { + code: "Bytes" + }, + set_code_without_checks: { + code: "Bytes" + }, + set_storage: { + items: "Vec<(Bytes,Bytes)>" + }, + kill_storage: { + _alias: { + keys_: "keys" + }, + keys_: "Vec" + }, + kill_prefix: { + prefix: "Bytes", + subkeys: "u32" + }, + remark_with_event: { + remark: "Bytes" + }, + __Unused8: "Null", + authorize_upgrade: { + codeHash: "H256" + }, + authorize_upgrade_without_checks: { + codeHash: "H256" + }, + apply_authorized_upgrade: { + code: "Bytes" + } + } + }, + /** + * Lookup200: frame_system::limits::BlockWeights + **/ + FrameSystemLimitsBlockWeights: { + baseBlock: "SpWeightsWeightV2Weight", + maxBlock: "SpWeightsWeightV2Weight", + perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass" + }, + /** + * Lookup201: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeightsPerClass: { + normal: "FrameSystemLimitsWeightsPerClass", + operational: "FrameSystemLimitsWeightsPerClass", + mandatory: "FrameSystemLimitsWeightsPerClass" + }, + /** + * Lookup202: frame_system::limits::WeightsPerClass + **/ + FrameSystemLimitsWeightsPerClass: { + baseExtrinsic: "SpWeightsWeightV2Weight", + maxExtrinsic: "Option", + maxTotal: "Option", + reserved: "Option" + }, + /** + * Lookup204: frame_system::limits::BlockLength + **/ + FrameSystemLimitsBlockLength: { + max: "FrameSupportDispatchPerDispatchClassU32" + }, + /** + * Lookup205: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassU32: { + normal: "u32", + operational: "u32", + mandatory: "u32" + }, + /** + * Lookup206: sp_weights::RuntimeDbWeight + **/ + SpWeightsRuntimeDbWeight: { + read: "u64", + write: "u64" + }, + /** + * Lookup207: sp_version::RuntimeVersion + **/ + SpVersionRuntimeVersion: { + specName: "Text", + implName: "Text", + authoringVersion: "u32", + specVersion: "u32", + implVersion: "u32", + apis: "Vec<([u8;8],u32)>", + transactionVersion: "u32", + stateVersion: "u8" + }, + /** + * Lookup212: frame_system::pallet::Error + **/ + FrameSystemError: { + _enum: [ + "InvalidSpecName", + "SpecVersionNeedsToIncrease", + "FailedToExtractRuntimeVersion", + "NonDefaultComposite", + "NonZeroRefCount", + "CallFiltered", + "MultiBlockMigrationsOngoing", + "NothingAuthorized", + "Unauthorized" + ] + }, + /** + * Lookup214: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + **/ + CumulusPalletParachainSystemUnincludedSegmentAncestor: { + usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", + paraHeadHash: "Option", + consumedGoAheadSignal: "Option" + }, + /** + * Lookup215: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + **/ + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { + umpMsgCount: "u32", + umpTotalBytes: "u32", + hrmpOutgoing: "BTreeMap" + }, + /** + * Lookup217: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + **/ + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { + msgCount: "u32", + totalBytes: "u32" + }, + /** + * Lookup222: polkadot_primitives::v7::UpgradeGoAhead + **/ + PolkadotPrimitivesV7UpgradeGoAhead: { + _enum: ["Abort", "GoAhead"] + }, + /** + * Lookup223: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + **/ + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { + usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", + hrmpWatermark: "Option", + consumedGoAheadSignal: "Option" + }, + /** + * Lookup224: polkadot_primitives::v7::PersistedValidationData + **/ + PolkadotPrimitivesV7PersistedValidationData: { + parentHead: "Bytes", + relayParentNumber: "u32", + relayParentStorageRoot: "H256", + maxPovSize: "u32" + }, + /** + * Lookup227: polkadot_primitives::v7::UpgradeRestriction + **/ + PolkadotPrimitivesV7UpgradeRestriction: { + _enum: ["Present"] + }, + /** + * Lookup228: sp_trie::storage_proof::StorageProof + **/ + SpTrieStorageProof: { + trieNodes: "BTreeSet" + }, + /** + * Lookup230: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + **/ + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { + dmqMqcHead: "H256", + relayDispatchQueueRemainingCapacity: + "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" + }, + /** + * Lookup231: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + **/ + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { + remainingCount: "u32", + remainingSize: "u32" + }, + /** + * Lookup234: polkadot_primitives::v7::AbridgedHrmpChannel + **/ + PolkadotPrimitivesV7AbridgedHrmpChannel: { + maxCapacity: "u32", + maxTotalSize: "u32", + maxMessageSize: "u32", + msgCount: "u32", + totalSize: "u32", + mqcHead: "Option" + }, + /** + * Lookup235: polkadot_primitives::v7::AbridgedHostConfiguration + **/ + PolkadotPrimitivesV7AbridgedHostConfiguration: { + maxCodeSize: "u32", + maxHeadDataSize: "u32", + maxUpwardQueueCount: "u32", + maxUpwardQueueSize: "u32", + maxUpwardMessageSize: "u32", + maxUpwardMessageNumPerCandidate: "u32", + hrmpMaxMessageNumPerCandidate: "u32", + validationUpgradeCooldown: "u32", + validationUpgradeDelay: "u32", + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" + }, + /** + * Lookup236: polkadot_primitives::v7::async_backing::AsyncBackingParams + **/ + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { + maxCandidateDepth: "u32", + allowedAncestryLen: "u32" + }, + /** + * Lookup242: polkadot_core_primitives::OutboundHrmpMessage + **/ + PolkadotCorePrimitivesOutboundHrmpMessage: { + recipient: "u32", + data: "Bytes" + }, + /** + * Lookup244: cumulus_pallet_parachain_system::pallet::Call + **/ + CumulusPalletParachainSystemCall: { + _enum: { + set_validation_data: { + data: "CumulusPrimitivesParachainInherentParachainInherentData" + }, + sudo_send_upward_message: { + message: "Bytes" + }, + authorize_upgrade: { + codeHash: "H256", + checkVersion: "bool" + }, + enact_authorized_upgrade: { + code: "Bytes" + } + } + }, + /** + * Lookup245: cumulus_primitives_parachain_inherent::ParachainInherentData + **/ + CumulusPrimitivesParachainInherentParachainInherentData: { + validationData: "PolkadotPrimitivesV7PersistedValidationData", + relayChainState: "SpTrieStorageProof", + downwardMessages: "Vec", + horizontalMessages: "BTreeMap>" + }, + /** + * Lookup247: polkadot_core_primitives::InboundDownwardMessage + **/ + PolkadotCorePrimitivesInboundDownwardMessage: { + sentAt: "u32", + msg: "Bytes" + }, + /** + * Lookup250: polkadot_core_primitives::InboundHrmpMessage + **/ + PolkadotCorePrimitivesInboundHrmpMessage: { + sentAt: "u32", + data: "Bytes" + }, + /** + * Lookup253: cumulus_pallet_parachain_system::pallet::Error + **/ + CumulusPalletParachainSystemError: { + _enum: [ + "OverlappingUpgrades", + "ProhibitedByPolkadot", + "TooBig", + "ValidationDataNotAvailable", + "HostConfigurationNotAvailable", + "NotScheduled", + "NothingAuthorized", + "Unauthorized" + ] + }, + /** + * Lookup254: pallet_timestamp::pallet::Call + **/ + PalletTimestampCall: { + _enum: { + set: { + now: "Compact" + } + } + }, + /** + * Lookup255: staging_parachain_info::pallet::Call + **/ + StagingParachainInfoCall: "Null", + /** + * Lookup257: pallet_balances::types::BalanceLock + **/ + PalletBalancesBalanceLock: { + id: "[u8;8]", + amount: "u128", + reasons: "PalletBalancesReasons" + }, + /** + * Lookup258: pallet_balances::types::Reasons + **/ + PalletBalancesReasons: { + _enum: ["Fee", "Misc", "All"] + }, + /** + * Lookup261: pallet_balances::types::ReserveData + **/ + PalletBalancesReserveData: { + id: "[u8;8]", + amount: "u128" + }, + /** + * Lookup265: storage_hub_runtime::RuntimeHoldReason + **/ + StorageHubRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + __Unused3: "Null", + __Unused4: "Null", + __Unused5: "Null", + __Unused6: "Null", + __Unused7: "Null", + __Unused8: "Null", + __Unused9: "Null", + __Unused10: "Null", + __Unused11: "Null", + __Unused12: "Null", + __Unused13: "Null", + __Unused14: "Null", + __Unused15: "Null", + __Unused16: "Null", + __Unused17: "Null", + __Unused18: "Null", + __Unused19: "Null", + __Unused20: "Null", + __Unused21: "Null", + __Unused22: "Null", + __Unused23: "Null", + __Unused24: "Null", + __Unused25: "Null", + __Unused26: "Null", + __Unused27: "Null", + __Unused28: "Null", + __Unused29: "Null", + __Unused30: "Null", + __Unused31: "Null", + __Unused32: "Null", + __Unused33: "Null", + __Unused34: "Null", + __Unused35: "Null", + __Unused36: "Null", + __Unused37: "Null", + __Unused38: "Null", + __Unused39: "Null", + Providers: "PalletStorageProvidersHoldReason", + __Unused41: "Null", + __Unused42: "Null", + __Unused43: "Null", + PaymentStreams: "PalletPaymentStreamsHoldReason" + } + }, + /** + * Lookup266: pallet_storage_providers::pallet::HoldReason + **/ + PalletStorageProvidersHoldReason: { + _enum: ["StorageProviderDeposit", "BucketDeposit"] + }, + /** + * Lookup267: pallet_payment_streams::pallet::HoldReason + **/ + PalletPaymentStreamsHoldReason: { + _enum: ["PaymentStreamDeposit"] + }, + /** + * Lookup270: pallet_balances::types::IdAmount + **/ + PalletBalancesIdAmount: { + id: "Null", + amount: "u128" + }, + /** + * Lookup272: pallet_balances::pallet::Call + **/ + PalletBalancesCall: { + _enum: { + transfer_allow_death: { + dest: "MultiAddress", + value: "Compact" + }, + __Unused1: "Null", + force_transfer: { + source: "MultiAddress", + dest: "MultiAddress", + value: "Compact" + }, + transfer_keep_alive: { + dest: "MultiAddress", + value: "Compact" + }, + transfer_all: { + dest: "MultiAddress", + keepAlive: "bool" + }, + force_unreserve: { + who: "MultiAddress", + amount: "u128" + }, + upgrade_accounts: { + who: "Vec" + }, + __Unused7: "Null", + force_set_balance: { + who: "MultiAddress", + newFree: "Compact" + }, + force_adjust_total_issuance: { + direction: "PalletBalancesAdjustmentDirection", + delta: "Compact" + }, + burn: { + value: "Compact", + keepAlive: "bool" + } + } + }, + /** + * Lookup275: pallet_balances::types::AdjustmentDirection + **/ + PalletBalancesAdjustmentDirection: { + _enum: ["Increase", "Decrease"] + }, + /** + * Lookup276: pallet_balances::pallet::Error + **/ + PalletBalancesError: { + _enum: [ + "VestingBalance", + "LiquidityRestrictions", + "InsufficientBalance", + "ExistentialDeposit", + "Expendability", + "ExistingVestingSchedule", + "DeadAccount", + "TooManyReserves", + "TooManyHolds", + "TooManyFreezes", + "IssuanceDeactivated", + "DeltaZero" + ] + }, + /** + * Lookup277: pallet_transaction_payment::Releases + **/ + PalletTransactionPaymentReleases: { + _enum: ["V1Ancient", "V2"] + }, + /** + * Lookup278: pallet_sudo::pallet::Call + **/ + PalletSudoCall: { + _enum: { + sudo: { + call: "Call" + }, + sudo_unchecked_weight: { + call: "Call", + weight: "SpWeightsWeightV2Weight" + }, + set_key: { + _alias: { + new_: "new" + }, + new_: "MultiAddress" + }, + sudo_as: { + who: "MultiAddress", + call: "Call" + }, + remove_key: "Null" + } + }, + /** + * Lookup280: pallet_collator_selection::pallet::Call + **/ + PalletCollatorSelectionCall: { + _enum: { + set_invulnerables: { + _alias: { + new_: "new" + }, + new_: "Vec" + }, + set_desired_candidates: { + max: "u32" + }, + set_candidacy_bond: { + bond: "u128" + }, + register_as_candidate: "Null", + leave_intent: "Null", + add_invulnerable: { + who: "AccountId32" + }, + remove_invulnerable: { + who: "AccountId32" + }, + update_bond: { + newDeposit: "u128" + }, + take_candidate_slot: { + deposit: "u128", + target: "AccountId32" + } + } + }, + /** + * Lookup281: pallet_session::pallet::Call + **/ + PalletSessionCall: { + _enum: { + set_keys: { + _alias: { + keys_: "keys" + }, + keys_: "StorageHubRuntimeSessionKeys", + proof: "Bytes" + }, + purge_keys: "Null" + } + }, + /** + * Lookup282: storage_hub_runtime::SessionKeys + **/ + StorageHubRuntimeSessionKeys: { + aura: "SpConsensusAuraSr25519AppSr25519Public" + }, + /** + * Lookup283: sp_consensus_aura::sr25519::app_sr25519::Public + **/ + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", + /** + * Lookup284: cumulus_pallet_xcmp_queue::pallet::Call + **/ + CumulusPalletXcmpQueueCall: { + _enum: { + __Unused0: "Null", + suspend_xcm_execution: "Null", + resume_xcm_execution: "Null", + update_suspend_threshold: { + _alias: { + new_: "new" + }, + new_: "u32" + }, + update_drop_threshold: { + _alias: { + new_: "new" + }, + new_: "u32" + }, + update_resume_threshold: { + _alias: { + new_: "new" + }, + new_: "u32" + } + } + }, + /** + * Lookup285: pallet_xcm::pallet::Call + **/ + PalletXcmCall: { + _enum: { + send: { + dest: "XcmVersionedLocation", + message: "XcmVersionedXcm" + }, + teleport_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32" + }, + reserve_transfer_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32" + }, + execute: { + message: "XcmVersionedXcm", + maxWeight: "SpWeightsWeightV2Weight" + }, + force_xcm_version: { + location: "StagingXcmV4Location", + version: "u32" + }, + force_default_xcm_version: { + maybeXcmVersion: "Option" + }, + force_subscribe_version_notify: { + location: "XcmVersionedLocation" + }, + force_unsubscribe_version_notify: { + location: "XcmVersionedLocation" + }, + limited_reserve_transfer_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32", + weightLimit: "XcmV3WeightLimit" + }, + limited_teleport_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32", + weightLimit: "XcmV3WeightLimit" + }, + force_suspension: { + suspended: "bool" + }, + transfer_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32", + weightLimit: "XcmV3WeightLimit" + }, + claim_assets: { + assets: "XcmVersionedAssets", + beneficiary: "XcmVersionedLocation" + }, + transfer_assets_using_type_and_then: { + dest: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", + remoteFeesId: "XcmVersionedAssetId", + feesTransferType: "StagingXcmExecutorAssetTransferTransferType", + customXcmOnDest: "XcmVersionedXcm", + weightLimit: "XcmV3WeightLimit" + } + } + }, + /** + * Lookup286: xcm::VersionedXcm + **/ + XcmVersionedXcm: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + V2: "XcmV2Xcm", + V3: "XcmV3Xcm", + V4: "StagingXcmV4Xcm" + } + }, + /** + * Lookup287: xcm::v2::Xcm + **/ + XcmV2Xcm: "Vec", + /** + * Lookup289: xcm::v2::Instruction + **/ + XcmV2Instruction: { + _enum: { + WithdrawAsset: "XcmV2MultiassetMultiAssets", + ReserveAssetDeposited: "XcmV2MultiassetMultiAssets", + ReceiveTeleportedAsset: "XcmV2MultiassetMultiAssets", + QueryResponse: { + queryId: "Compact", + response: "XcmV2Response", + maxWeight: "Compact" + }, + TransferAsset: { + assets: "XcmV2MultiassetMultiAssets", + beneficiary: "XcmV2MultiLocation" + }, + TransferReserveAsset: { + assets: "XcmV2MultiassetMultiAssets", + dest: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + Transact: { + originType: "XcmV2OriginKind", + requireWeightAtMost: "Compact", + call: "XcmDoubleEncoded" + }, + HrmpNewChannelOpenRequest: { + sender: "Compact", + maxMessageSize: "Compact", + maxCapacity: "Compact" + }, + HrmpChannelAccepted: { + recipient: "Compact" + }, + HrmpChannelClosing: { + initiator: "Compact", + sender: "Compact", + recipient: "Compact" + }, + ClearOrigin: "Null", + DescendOrigin: "XcmV2MultilocationJunctions", + ReportError: { + queryId: "Compact", + dest: "XcmV2MultiLocation", + maxResponseWeight: "Compact" + }, + DepositAsset: { + assets: "XcmV2MultiassetMultiAssetFilter", + maxAssets: "Compact", + beneficiary: "XcmV2MultiLocation" + }, + DepositReserveAsset: { + assets: "XcmV2MultiassetMultiAssetFilter", + maxAssets: "Compact", + dest: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + ExchangeAsset: { + give: "XcmV2MultiassetMultiAssetFilter", + receive: "XcmV2MultiassetMultiAssets" + }, + InitiateReserveWithdraw: { + assets: "XcmV2MultiassetMultiAssetFilter", + reserve: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + InitiateTeleport: { + assets: "XcmV2MultiassetMultiAssetFilter", + dest: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + QueryHolding: { + queryId: "Compact", + dest: "XcmV2MultiLocation", + assets: "XcmV2MultiassetMultiAssetFilter", + maxResponseWeight: "Compact" + }, + BuyExecution: { + fees: "XcmV2MultiAsset", + weightLimit: "XcmV2WeightLimit" + }, + RefundSurplus: "Null", + SetErrorHandler: "XcmV2Xcm", + SetAppendix: "XcmV2Xcm", + ClearError: "Null", + ClaimAsset: { + assets: "XcmV2MultiassetMultiAssets", + ticket: "XcmV2MultiLocation" + }, + Trap: "Compact", + SubscribeVersion: { + queryId: "Compact", + maxResponseWeight: "Compact" + }, + UnsubscribeVersion: "Null" + } + }, + /** + * Lookup290: xcm::v2::Response + **/ + XcmV2Response: { + _enum: { + Null: "Null", + Assets: "XcmV2MultiassetMultiAssets", + ExecutionResult: "Option<(u32,XcmV2TraitsError)>", + Version: "u32" + } + }, + /** + * Lookup293: xcm::v2::traits::Error + **/ + XcmV2TraitsError: { + _enum: { + Overflow: "Null", + Unimplemented: "Null", + UntrustedReserveLocation: "Null", + UntrustedTeleportLocation: "Null", + MultiLocationFull: "Null", + MultiLocationNotInvertible: "Null", + BadOrigin: "Null", + InvalidLocation: "Null", + AssetNotFound: "Null", + FailedToTransactAsset: "Null", + NotWithdrawable: "Null", + LocationCannotHold: "Null", + ExceedsMaxMessageSize: "Null", + DestinationUnsupported: "Null", + Transport: "Null", + Unroutable: "Null", + UnknownClaim: "Null", + FailedToDecode: "Null", + MaxWeightInvalid: "Null", + NotHoldingFees: "Null", + TooExpensive: "Null", + Trap: "u64", + UnhandledXcmVersion: "Null", + WeightLimitReached: "u64", + Barrier: "Null", + WeightNotComputable: "Null" + } + }, + /** + * Lookup294: xcm::v2::OriginKind + **/ + XcmV2OriginKind: { + _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] + }, + /** + * Lookup295: xcm::v2::multiasset::MultiAssetFilter + **/ + XcmV2MultiassetMultiAssetFilter: { + _enum: { + Definite: "XcmV2MultiassetMultiAssets", + Wild: "XcmV2MultiassetWildMultiAsset" + } + }, + /** + * Lookup296: xcm::v2::multiasset::WildMultiAsset + **/ + XcmV2MultiassetWildMultiAsset: { + _enum: { + All: "Null", + AllOf: { + id: "XcmV2MultiassetAssetId", + fun: "XcmV2MultiassetWildFungibility" + } + } + }, + /** + * Lookup297: xcm::v2::multiasset::WildFungibility + **/ + XcmV2MultiassetWildFungibility: { + _enum: ["Fungible", "NonFungible"] + }, + /** + * Lookup298: xcm::v2::WeightLimit + **/ + XcmV2WeightLimit: { + _enum: { + Unlimited: "Null", + Limited: "Compact" + } + }, + /** + * Lookup299: xcm::v3::Xcm + **/ + XcmV3Xcm: "Vec", + /** + * Lookup301: xcm::v3::Instruction + **/ + XcmV3Instruction: { + _enum: { + WithdrawAsset: "XcmV3MultiassetMultiAssets", + ReserveAssetDeposited: "XcmV3MultiassetMultiAssets", + ReceiveTeleportedAsset: "XcmV3MultiassetMultiAssets", + QueryResponse: { + queryId: "Compact", + response: "XcmV3Response", + maxWeight: "SpWeightsWeightV2Weight", + querier: "Option" + }, + TransferAsset: { + assets: "XcmV3MultiassetMultiAssets", + beneficiary: "StagingXcmV3MultiLocation" + }, + TransferReserveAsset: { + assets: "XcmV3MultiassetMultiAssets", + dest: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + Transact: { + originKind: "XcmV3OriginKind", + requireWeightAtMost: "SpWeightsWeightV2Weight", + call: "XcmDoubleEncoded" + }, + HrmpNewChannelOpenRequest: { + sender: "Compact", + maxMessageSize: "Compact", + maxCapacity: "Compact" + }, + HrmpChannelAccepted: { + recipient: "Compact" + }, + HrmpChannelClosing: { + initiator: "Compact", + sender: "Compact", + recipient: "Compact" + }, + ClearOrigin: "Null", + DescendOrigin: "XcmV3Junctions", + ReportError: "XcmV3QueryResponseInfo", + DepositAsset: { + assets: "XcmV3MultiassetMultiAssetFilter", + beneficiary: "StagingXcmV3MultiLocation" + }, + DepositReserveAsset: { + assets: "XcmV3MultiassetMultiAssetFilter", + dest: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + ExchangeAsset: { + give: "XcmV3MultiassetMultiAssetFilter", + want: "XcmV3MultiassetMultiAssets", + maximal: "bool" + }, + InitiateReserveWithdraw: { + assets: "XcmV3MultiassetMultiAssetFilter", + reserve: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + InitiateTeleport: { + assets: "XcmV3MultiassetMultiAssetFilter", + dest: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + ReportHolding: { + responseInfo: "XcmV3QueryResponseInfo", + assets: "XcmV3MultiassetMultiAssetFilter" + }, + BuyExecution: { + fees: "XcmV3MultiAsset", + weightLimit: "XcmV3WeightLimit" + }, + RefundSurplus: "Null", + SetErrorHandler: "XcmV3Xcm", + SetAppendix: "XcmV3Xcm", + ClearError: "Null", + ClaimAsset: { + assets: "XcmV3MultiassetMultiAssets", + ticket: "StagingXcmV3MultiLocation" + }, + Trap: "Compact", + SubscribeVersion: { + queryId: "Compact", + maxResponseWeight: "SpWeightsWeightV2Weight" + }, + UnsubscribeVersion: "Null", + BurnAsset: "XcmV3MultiassetMultiAssets", + ExpectAsset: "XcmV3MultiassetMultiAssets", + ExpectOrigin: "Option", + ExpectError: "Option<(u32,XcmV3TraitsError)>", + ExpectTransactStatus: "XcmV3MaybeErrorCode", + QueryPallet: { + moduleName: "Bytes", + responseInfo: "XcmV3QueryResponseInfo" + }, + ExpectPallet: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + crateMajor: "Compact", + minCrateMinor: "Compact" + }, + ReportTransactStatus: "XcmV3QueryResponseInfo", + ClearTransactStatus: "Null", + UniversalOrigin: "XcmV3Junction", + ExportMessage: { + network: "XcmV3JunctionNetworkId", + destination: "XcmV3Junctions", + xcm: "XcmV3Xcm" + }, + LockAsset: { + asset: "XcmV3MultiAsset", + unlocker: "StagingXcmV3MultiLocation" + }, + UnlockAsset: { + asset: "XcmV3MultiAsset", + target: "StagingXcmV3MultiLocation" + }, + NoteUnlockable: { + asset: "XcmV3MultiAsset", + owner: "StagingXcmV3MultiLocation" + }, + RequestUnlock: { + asset: "XcmV3MultiAsset", + locker: "StagingXcmV3MultiLocation" + }, + SetFeesMode: { + jitWithdraw: "bool" + }, + SetTopic: "[u8;32]", + ClearTopic: "Null", + AliasOrigin: "StagingXcmV3MultiLocation", + UnpaidExecution: { + weightLimit: "XcmV3WeightLimit", + checkOrigin: "Option" + } + } + }, + /** + * Lookup302: xcm::v3::Response + **/ + XcmV3Response: { + _enum: { + Null: "Null", + Assets: "XcmV3MultiassetMultiAssets", + ExecutionResult: "Option<(u32,XcmV3TraitsError)>", + Version: "u32", + PalletsInfo: "Vec", + DispatchResult: "XcmV3MaybeErrorCode" + } + }, + /** + * Lookup304: xcm::v3::PalletInfo + **/ + XcmV3PalletInfo: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + major: "Compact", + minor: "Compact", + patch: "Compact" + }, + /** + * Lookup308: xcm::v3::QueryResponseInfo + **/ + XcmV3QueryResponseInfo: { + destination: "StagingXcmV3MultiLocation", + queryId: "Compact", + maxWeight: "SpWeightsWeightV2Weight" + }, + /** + * Lookup309: xcm::v3::multiasset::MultiAssetFilter + **/ + XcmV3MultiassetMultiAssetFilter: { + _enum: { + Definite: "XcmV3MultiassetMultiAssets", + Wild: "XcmV3MultiassetWildMultiAsset" + } + }, + /** + * Lookup310: xcm::v3::multiasset::WildMultiAsset + **/ + XcmV3MultiassetWildMultiAsset: { + _enum: { + All: "Null", + AllOf: { + id: "XcmV3MultiassetAssetId", + fun: "XcmV3MultiassetWildFungibility" + }, + AllCounted: "Compact", + AllOfCounted: { + id: "XcmV3MultiassetAssetId", + fun: "XcmV3MultiassetWildFungibility", + count: "Compact" + } + } + }, + /** + * Lookup311: xcm::v3::multiasset::WildFungibility + **/ + XcmV3MultiassetWildFungibility: { + _enum: ["Fungible", "NonFungible"] + }, + /** + * Lookup323: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: "Null", + LocalReserve: "Null", + DestinationReserve: "Null", + RemoteReserve: "XcmVersionedLocation" + } + }, + /** + * Lookup324: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + V3: "XcmV3MultiassetAssetId", + V4: "StagingXcmV4AssetAssetId" + } + }, + /** + * Lookup325: cumulus_pallet_xcm::pallet::Call + **/ + CumulusPalletXcmCall: "Null", + /** + * Lookup326: pallet_message_queue::pallet::Call + **/ + PalletMessageQueueCall: { + _enum: { + reap_page: { + messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", + pageIndex: "u32" + }, + execute_overweight: { + messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", + page: "u32", + index: "u32", + weightLimit: "SpWeightsWeightV2Weight" + } + } + }, + /** + * Lookup327: pallet_storage_providers::pallet::Call + **/ + PalletStorageProvidersCall: { + _enum: { + request_msp_sign_up: { + capacity: "u64", + multiaddresses: "Vec", + valueProp: "PalletStorageProvidersValueProposition", + paymentAccount: "AccountId32" + }, + request_bsp_sign_up: { + capacity: "u64", + multiaddresses: "Vec", + paymentAccount: "AccountId32" + }, + confirm_sign_up: { + providerAccount: "Option" + }, + cancel_sign_up: "Null", + msp_sign_off: "Null", + bsp_sign_off: "Null", + change_capacity: { + newCapacity: "u64" + }, + add_value_prop: { + newValueProp: "PalletStorageProvidersValueProposition" + }, + force_msp_sign_up: { + who: "AccountId32", + mspId: "H256", + capacity: "u64", + multiaddresses: "Vec", + valueProp: "PalletStorageProvidersValueProposition", + paymentAccount: "AccountId32" + }, + force_bsp_sign_up: { + who: "AccountId32", + bspId: "H256", + capacity: "u64", + multiaddresses: "Vec", + paymentAccount: "AccountId32", + weight: "Option" + }, + slash: { + providerId: "H256" + } + } + }, + /** + * Lookup328: pallet_file_system::pallet::Call + **/ + PalletFileSystemCall: { + _enum: { + create_bucket: { + mspId: "H256", + name: "Bytes", + private: "bool" + }, + request_move_bucket: { + bucketId: "H256", + newMspId: "H256" + }, + msp_respond_move_bucket_request: { + bucketId: "H256", + response: "PalletFileSystemBucketMoveRequestResponse" + }, + update_bucket_privacy: { + bucketId: "H256", + private: "bool" + }, + create_and_associate_collection_with_bucket: { + bucketId: "H256" + }, + issue_storage_request: { + _alias: { + size_: "size" + }, + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + size_: "u64", + mspId: "H256", + peerIds: "Vec" + }, + revoke_storage_request: { + fileKey: "H256" + }, + bsp_add_data_server_for_move_bucket_request: { + bucketId: "H256" + }, + msp_respond_storage_requests_multiple_buckets: { + fileKeyResponsesInput: "Vec<(H256,PalletFileSystemMspStorageRequestResponse)>" + }, + bsp_volunteer: { + fileKey: "H256" + }, + bsp_confirm_storing: { + nonInclusionForestProof: "SpTrieStorageProofCompactProof", + fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>" + }, + bsp_request_stop_storing: { + _alias: { + size_: "size" + }, + fileKey: "H256", + bucketId: "H256", + location: "Bytes", + owner: "AccountId32", + fingerprint: "H256", + size_: "u64", + canServe: "bool", + inclusionForestProof: "SpTrieStorageProofCompactProof" + }, + bsp_confirm_stop_storing: { + fileKey: "H256", + inclusionForestProof: "SpTrieStorageProofCompactProof" + }, + stop_storing_for_insolvent_user: { + _alias: { + size_: "size" + }, + fileKey: "H256", + bucketId: "H256", + location: "Bytes", + owner: "AccountId32", + fingerprint: "H256", + size_: "u64", + inclusionForestProof: "SpTrieStorageProofCompactProof" + }, + delete_file: { + _alias: { + size_: "size" + }, + bucketId: "H256", + fileKey: "H256", + location: "Bytes", + size_: "u64", + fingerprint: "H256", + maybeInclusionForestProof: "Option" + }, + pending_file_deletion_request_submit_proof: { + user: "AccountId32", + fileKey: "H256", + bucketId: "H256", + forestProof: "SpTrieStorageProofCompactProof" + }, + set_global_parameters: { + replicationTarget: "Option", + tickRangeToMaximumThreshold: "Option" + } + } + }, + /** + * Lookup329: pallet_file_system::types::BucketMoveRequestResponse + **/ + PalletFileSystemBucketMoveRequestResponse: { + _enum: ["Accepted", "Rejected"] + }, + /** + * Lookup332: pallet_file_system::types::MspStorageRequestResponse + **/ + PalletFileSystemMspStorageRequestResponse: { + accept: "Option", + reject: "Option>" + }, + /** + * Lookup334: pallet_file_system::types::AcceptedStorageRequestParameters + **/ + PalletFileSystemAcceptedStorageRequestParameters: { + fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>", + nonInclusionForestProof: "SpTrieStorageProofCompactProof" + }, + /** + * Lookup341: pallet_proofs_dealer::pallet::Call + **/ + PalletProofsDealerCall: { + _enum: { + challenge: { + key: "H256" + }, + submit_proof: { + proof: "PalletProofsDealerProof", + provider: "Option" + }, + force_initialise_challenge_cycle: { + provider: "H256" + }, + set_paused: { + paused: "bool" + } + } + }, + /** + * Lookup342: pallet_randomness::pallet::Call + **/ + PalletRandomnessCall: { + _enum: ["set_babe_randomness"] + }, + /** + * Lookup343: pallet_payment_streams::pallet::Call + **/ + PalletPaymentStreamsCall: { + _enum: { + create_fixed_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + rate: "u128" + }, + update_fixed_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + newRate: "u128" + }, + delete_fixed_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32" + }, + create_dynamic_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + amountProvided: "u64" + }, + update_dynamic_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + newAmountProvided: "u64" + }, + delete_dynamic_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32" + }, + charge_payment_streams: { + userAccount: "AccountId32" + }, + pay_outstanding_debt: "Null", + clear_insolvent_flag: "Null" + } + }, + /** + * Lookup344: pallet_bucket_nfts::pallet::Call + **/ + PalletBucketNftsCall: { + _enum: { + share_access: { + recipient: "MultiAddress", + bucket: "H256", + itemId: "u32", + readAccessRegex: "Option" + }, + update_read_access: { + bucket: "H256", + itemId: "u32", + readAccessRegex: "Option" + } + } + }, + /** + * Lookup346: pallet_nfts::pallet::Call + **/ + PalletNftsCall: { + _enum: { + create: { + admin: "MultiAddress", + config: "PalletNftsCollectionConfig" + }, + force_create: { + owner: "MultiAddress", + config: "PalletNftsCollectionConfig" + }, + destroy: { + collection: "u32", + witness: "PalletNftsDestroyWitness" + }, + mint: { + collection: "u32", + item: "u32", + mintTo: "MultiAddress", + witnessData: "Option" + }, + force_mint: { + collection: "u32", + item: "u32", + mintTo: "MultiAddress", + itemConfig: "PalletNftsItemConfig" + }, + burn: { + collection: "u32", + item: "u32" + }, + transfer: { + collection: "u32", + item: "u32", + dest: "MultiAddress" + }, + redeposit: { + collection: "u32", + items: "Vec" + }, + lock_item_transfer: { + collection: "u32", + item: "u32" + }, + unlock_item_transfer: { + collection: "u32", + item: "u32" + }, + lock_collection: { + collection: "u32", + lockSettings: "u64" + }, + transfer_ownership: { + collection: "u32", + newOwner: "MultiAddress" + }, + set_team: { + collection: "u32", + issuer: "Option", + admin: "Option", + freezer: "Option" + }, + force_collection_owner: { + collection: "u32", + owner: "MultiAddress" + }, + force_collection_config: { + collection: "u32", + config: "PalletNftsCollectionConfig" + }, + approve_transfer: { + collection: "u32", + item: "u32", + delegate: "MultiAddress", + maybeDeadline: "Option" + }, + cancel_approval: { + collection: "u32", + item: "u32", + delegate: "MultiAddress" + }, + clear_all_transfer_approvals: { + collection: "u32", + item: "u32" + }, + lock_item_properties: { + collection: "u32", + item: "u32", + lockMetadata: "bool", + lockAttributes: "bool" + }, + set_attribute: { + collection: "u32", + maybeItem: "Option", + namespace: "PalletNftsAttributeNamespace", + key: "Bytes", + value: "Bytes" + }, + force_set_attribute: { + setAs: "Option", + collection: "u32", + maybeItem: "Option", + namespace: "PalletNftsAttributeNamespace", + key: "Bytes", + value: "Bytes" + }, + clear_attribute: { + collection: "u32", + maybeItem: "Option", + namespace: "PalletNftsAttributeNamespace", + key: "Bytes" + }, + approve_item_attributes: { + collection: "u32", + item: "u32", + delegate: "MultiAddress" + }, + cancel_item_attributes_approval: { + collection: "u32", + item: "u32", + delegate: "MultiAddress", + witness: "PalletNftsCancelAttributesApprovalWitness" + }, + set_metadata: { + collection: "u32", + item: "u32", + data: "Bytes" + }, + clear_metadata: { + collection: "u32", + item: "u32" + }, + set_collection_metadata: { + collection: "u32", + data: "Bytes" + }, + clear_collection_metadata: { + collection: "u32" + }, + set_accept_ownership: { + maybeCollection: "Option" + }, + set_collection_max_supply: { + collection: "u32", + maxSupply: "u32" + }, + update_mint_settings: { + collection: "u32", + mintSettings: "PalletNftsMintSettings" + }, + set_price: { + collection: "u32", + item: "u32", + price: "Option", + whitelistedBuyer: "Option" + }, + buy_item: { + collection: "u32", + item: "u32", + bidPrice: "u128" + }, + pay_tips: { + tips: "Vec" + }, + create_swap: { + offeredCollection: "u32", + offeredItem: "u32", + desiredCollection: "u32", + maybeDesiredItem: "Option", + maybePrice: "Option", + duration: "u32" + }, + cancel_swap: { + offeredCollection: "u32", + offeredItem: "u32" + }, + claim_swap: { + sendCollection: "u32", + sendItem: "u32", + receiveCollection: "u32", + receiveItem: "u32", + witnessPrice: "Option" + }, + mint_pre_signed: { + mintData: "PalletNftsPreSignedMint", + signature: "SpRuntimeMultiSignature", + signer: "AccountId32" + }, + set_attributes_pre_signed: { + data: "PalletNftsPreSignedAttributes", + signature: "SpRuntimeMultiSignature", + signer: "AccountId32" + } + } + }, + /** + * Lookup347: pallet_nfts::types::CollectionConfig + **/ + PalletNftsCollectionConfig: { + settings: "u64", + maxSupply: "Option", + mintSettings: "PalletNftsMintSettings" + }, + /** + * Lookup349: pallet_nfts::types::CollectionSetting + **/ + PalletNftsCollectionSetting: { + _enum: [ + "__Unused0", + "TransferableItems", + "UnlockedMetadata", + "__Unused3", + "UnlockedAttributes", + "__Unused5", + "__Unused6", + "__Unused7", + "UnlockedMaxSupply", + "__Unused9", + "__Unused10", + "__Unused11", + "__Unused12", + "__Unused13", + "__Unused14", + "__Unused15", + "DepositRequired" + ] + }, + /** + * Lookup350: pallet_nfts::types::MintSettings + **/ + PalletNftsMintSettings: { + mintType: "PalletNftsMintType", + price: "Option", + startBlock: "Option", + endBlock: "Option", + defaultItemSettings: "u64" + }, + /** + * Lookup351: pallet_nfts::types::MintType + **/ + PalletNftsMintType: { + _enum: { + Issuer: "Null", + Public: "Null", + HolderOf: "u32" + } + }, + /** + * Lookup354: pallet_nfts::types::ItemSetting + **/ + PalletNftsItemSetting: { + _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] + }, + /** + * Lookup355: pallet_nfts::types::DestroyWitness + **/ + PalletNftsDestroyWitness: { + itemMetadatas: "Compact", + itemConfigs: "Compact", + attributes: "Compact" + }, + /** + * Lookup357: pallet_nfts::types::MintWitness + **/ + PalletNftsMintWitness: { + ownedItem: "Option", + mintPrice: "Option" + }, + /** + * Lookup358: pallet_nfts::types::ItemConfig + **/ + PalletNftsItemConfig: { + settings: "u64" + }, + /** + * Lookup360: pallet_nfts::types::CancelAttributesApprovalWitness + **/ + PalletNftsCancelAttributesApprovalWitness: { + accountAttributes: "u32" + }, + /** + * Lookup362: pallet_nfts::types::ItemTip + **/ + PalletNftsItemTip: { + collection: "u32", + item: "u32", + receiver: "AccountId32", + amount: "u128" + }, + /** + * Lookup364: pallet_nfts::types::PreSignedMint + **/ + PalletNftsPreSignedMint: { + collection: "u32", + item: "u32", + attributes: "Vec<(Bytes,Bytes)>", + metadata: "Bytes", + onlyAccount: "Option", + deadline: "u32", + mintPrice: "Option" + }, + /** + * Lookup365: sp_runtime::MultiSignature + **/ + SpRuntimeMultiSignature: { + _enum: { + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" + } + }, + /** + * Lookup368: pallet_nfts::types::PreSignedAttributes + **/ + PalletNftsPreSignedAttributes: { + collection: "u32", + item: "u32", + attributes: "Vec<(Bytes,Bytes)>", + namespace: "PalletNftsAttributeNamespace", + deadline: "u32" + }, + /** + * Lookup369: pallet_parameters::pallet::Call + **/ + PalletParametersCall: { + _enum: { + set_parameter: { + keyValue: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters" + } + } + }, + /** + * Lookup370: storage_hub_runtime::configs::runtime_params::RuntimeParameters + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { + _enum: { + RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters" + } + }, + /** + * Lookup371: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { + _enum: { + SlashAmountPerMaxFileSize: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize,Option)", + StakeToChallengePeriod: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod,Option)", + CheckpointChallengePeriod: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod,Option)", + MinChallengePeriod: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod,Option)" + } + }, + /** + * Lookup372: pallet_sudo::pallet::Error + **/ + PalletSudoError: { + _enum: ["RequireSudo"] + }, + /** + * Lookup375: pallet_collator_selection::pallet::CandidateInfo + **/ + PalletCollatorSelectionCandidateInfo: { + who: "AccountId32", + deposit: "u128" + }, + /** + * Lookup377: pallet_collator_selection::pallet::Error + **/ + PalletCollatorSelectionError: { + _enum: [ + "TooManyCandidates", + "TooFewEligibleCollators", + "AlreadyCandidate", + "NotCandidate", + "TooManyInvulnerables", + "AlreadyInvulnerable", + "NotInvulnerable", + "NoAssociatedValidatorId", + "ValidatorNotRegistered", + "InsertToCandidateListFailed", + "RemoveFromCandidateListFailed", + "DepositTooLow", + "UpdateCandidateListFailed", + "InsufficientBond", + "TargetIsNotCandidate", + "IdenticalDeposit", + "InvalidUnreserve" + ] + }, + /** + * Lookup381: sp_core::crypto::KeyTypeId + **/ + SpCoreCryptoKeyTypeId: "[u8;4]", + /** + * Lookup382: pallet_session::pallet::Error + **/ + PalletSessionError: { + _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] + }, + /** + * Lookup391: cumulus_pallet_xcmp_queue::OutboundChannelDetails + **/ + CumulusPalletXcmpQueueOutboundChannelDetails: { + recipient: "u32", + state: "CumulusPalletXcmpQueueOutboundState", + signalsExist: "bool", + firstIndex: "u16", + lastIndex: "u16" + }, + /** + * Lookup392: cumulus_pallet_xcmp_queue::OutboundState + **/ + CumulusPalletXcmpQueueOutboundState: { + _enum: ["Ok", "Suspended"] + }, + /** + * Lookup396: cumulus_pallet_xcmp_queue::QueueConfigData + **/ + CumulusPalletXcmpQueueQueueConfigData: { + suspendThreshold: "u32", + dropThreshold: "u32", + resumeThreshold: "u32" + }, + /** + * Lookup397: cumulus_pallet_xcmp_queue::pallet::Error + **/ + CumulusPalletXcmpQueueError: { + _enum: [ + "BadQueueConfig", + "AlreadySuspended", + "AlreadyResumed", + "TooManyActiveOutboundChannels", + "TooBig" + ] + }, + /** + * Lookup398: pallet_xcm::pallet::QueryStatus + **/ + PalletXcmQueryStatus: { + _enum: { + Pending: { + responder: "XcmVersionedLocation", + maybeMatchQuerier: "Option", + maybeNotify: "Option<(u8,u8)>", + timeout: "u32" + }, + VersionNotifier: { + origin: "XcmVersionedLocation", + isActive: "bool" + }, + Ready: { + response: "XcmVersionedResponse", + at: "u32" + } + } + }, + /** + * Lookup402: xcm::VersionedResponse + **/ + XcmVersionedResponse: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + V2: "XcmV2Response", + V3: "XcmV3Response", + V4: "StagingXcmV4Response" + } + }, + /** + * Lookup408: pallet_xcm::pallet::VersionMigrationStage + **/ + PalletXcmVersionMigrationStage: { + _enum: { + MigrateSupportedVersion: "Null", + MigrateVersionNotifiers: "Null", + NotifyCurrentTargets: "Option", + MigrateAndNotifyOldTargets: "Null" + } + }, + /** + * Lookup411: pallet_xcm::pallet::RemoteLockedFungibleRecord + **/ + PalletXcmRemoteLockedFungibleRecord: { + amount: "u128", + owner: "XcmVersionedLocation", + locker: "XcmVersionedLocation", + consumers: "Vec<(Null,u128)>" + }, + /** + * Lookup418: pallet_xcm::pallet::Error + **/ + PalletXcmError: { + _enum: [ + "Unreachable", + "SendFailure", + "Filtered", + "UnweighableMessage", + "DestinationNotInvertible", + "Empty", + "CannotReanchor", + "TooManyAssets", + "InvalidOrigin", + "BadVersion", + "BadLocation", + "NoSubscription", + "AlreadySubscribed", + "CannotCheckOutTeleport", + "LowBalance", + "TooManyLocks", + "AccountNotSovereign", + "FeesNotMet", + "LockNotFound", + "InUse", + "__Unused20", + "InvalidAssetUnknownReserve", + "InvalidAssetUnsupportedReserve", + "TooManyReserves", + "LocalExecutionIncomplete" + ] + }, + /** + * Lookup419: pallet_message_queue::BookState + **/ + PalletMessageQueueBookState: { + _alias: { + size_: "size" + }, + begin: "u32", + end: "u32", + count: "u32", + readyNeighbours: "Option", + messageCount: "u64", + size_: "u64" + }, + /** + * Lookup421: pallet_message_queue::Neighbours + **/ + PalletMessageQueueNeighbours: { + prev: "CumulusPrimitivesCoreAggregateMessageOrigin", + next: "CumulusPrimitivesCoreAggregateMessageOrigin" + }, + /** + * Lookup423: pallet_message_queue::Page + **/ + PalletMessageQueuePage: { + remaining: "u32", + remainingSize: "u32", + firstIndex: "u32", + first: "u32", + last: "u32", + heap: "Bytes" + }, + /** + * Lookup425: pallet_message_queue::pallet::Error + **/ + PalletMessageQueueError: { + _enum: [ + "NotReapable", + "NoPage", + "NoMessage", + "AlreadyProcessed", + "Queued", + "InsufficientWeight", + "TemporarilyUnprocessable", + "QueuePaused", + "RecursiveDisallowed" + ] + }, + /** + * Lookup427: pallet_storage_providers::types::StorageProvider + **/ + PalletStorageProvidersStorageProvider: { + _enum: { + BackupStorageProvider: "PalletStorageProvidersBackupStorageProvider", + MainStorageProvider: "PalletStorageProvidersMainStorageProvider" + } + }, + /** + * Lookup428: pallet_storage_providers::types::BackupStorageProvider + **/ + PalletStorageProvidersBackupStorageProvider: { + capacity: "u64", + capacityUsed: "u64", + multiaddresses: "Vec", + root: "H256", + lastCapacityChange: "u32", + ownerAccount: "AccountId32", + paymentAccount: "AccountId32", + reputationWeight: "u32" + }, + /** + * Lookup429: pallet_storage_providers::types::MainStorageProvider + **/ + PalletStorageProvidersMainStorageProvider: { + buckets: "Vec", + capacity: "u64", + capacityUsed: "u64", + multiaddresses: "Vec", + valueProp: "PalletStorageProvidersValueProposition", + lastCapacityChange: "u32", + ownerAccount: "AccountId32", + paymentAccount: "AccountId32" + }, + /** + * Lookup431: pallet_storage_providers::types::Bucket + **/ + PalletStorageProvidersBucket: { + _alias: { + size_: "size" + }, + root: "H256", + userId: "AccountId32", + mspId: "H256", + private: "bool", + readAccessGroupId: "Option", + size_: "u64" + }, + /** + * Lookup434: pallet_storage_providers::pallet::Error + **/ + PalletStorageProvidersError: { + _enum: [ + "AlreadyRegistered", + "SignUpNotRequested", + "SignUpRequestPending", + "NoMultiAddress", + "InvalidMultiAddress", + "StorageTooLow", + "NotEnoughBalance", + "CannotHoldDeposit", + "StorageStillInUse", + "RandomnessNotValidYet", + "SignUpRequestExpired", + "NewCapacityLessThanUsedStorage", + "NewCapacityEqualsCurrentCapacity", + "NewCapacityCantBeZero", + "NotEnoughTimePassed", + "NewUsedCapacityExceedsStorageCapacity", + "NotRegistered", + "NoUserId", + "NoBucketId", + "SpRegisteredButDataNotFound", + "BucketNotFound", + "BucketAlreadyExists", + "AppendBucketToMspFailed", + "ProviderNotSlashable", + "InvalidEncodedFileMetadata", + "InvalidEncodedAccountId", + "PaymentStreamNotFound" + ] + }, + /** + * Lookup435: pallet_file_system::types::StorageRequestMetadata + **/ + PalletFileSystemStorageRequestMetadata: { + _alias: { + size_: "size" + }, + requestedAt: "u32", + owner: "AccountId32", + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + size_: "u64", + msp: "Option<(H256,bool)>", + userPeerIds: "Vec", + dataServerSps: "Vec", + bspsRequired: "u32", + bspsConfirmed: "u32", + bspsVolunteered: "u32" + }, + /** + * Lookup440: pallet_file_system::types::StorageRequestBspsMetadata + **/ + PalletFileSystemStorageRequestBspsMetadata: { + confirmed: "bool" + }, + /** + * Lookup449: pallet_file_system::types::MoveBucketRequestMetadata + **/ + PalletFileSystemMoveBucketRequestMetadata: { + requester: "AccountId32" + }, + /** + * Lookup450: pallet_file_system::pallet::Error + **/ + PalletFileSystemError: { + _enum: [ + "StorageRequestAlreadyRegistered", + "StorageRequestNotFound", + "StorageRequestNotRevoked", + "StorageRequestExists", + "ReplicationTargetCannotBeZero", + "BspsRequiredExceedsTarget", + "NotABsp", + "NotAMsp", + "NotASp", + "BspNotVolunteered", + "BspNotConfirmed", + "BspAlreadyConfirmed", + "StorageRequestBspsRequiredFulfilled", + "BspAlreadyVolunteered", + "InsufficientAvailableCapacity", + "UnexpectedNumberOfRemovedVolunteeredBsps", + "StorageRequestExpiredNoSlotAvailable", + "StorageRequestNotAuthorized", + "MaxBlockNumberReached", + "FailedToEncodeBsp", + "FailedToEncodeFingerprint", + "FailedToDecodeThreshold", + "AboveThreshold", + "ThresholdArithmeticError", + "FailedTypeConversion", + "DividedByZero", + "ImpossibleFailedToGetValue", + "BucketIsNotPrivate", + "BucketNotFound", + "NotBucketOwner", + "ProviderRootNotFound", + "ExpectedNonInclusionProof", + "ExpectedInclusionProof", + "InvalidFileKeyMetadata", + "ThresholdBelowAsymptote", + "NotFileOwner", + "FileKeyAlreadyPendingDeletion", + "MaxUserPendingDeletionRequestsReached", + "MspNotStoringBucket", + "FileKeyNotPendingDeletion", + "FileSizeCannotBeZero", + "NoGlobalReputationWeightSet", + "MaximumThresholdCannotBeZero", + "TickRangeToMaximumThresholdCannotBeZero", + "PendingStopStoringRequestNotFound", + "MinWaitForStopStoringNotReached", + "PendingStopStoringRequestAlreadyExists", + "UserNotInsolvent", + "NotSelectedMsp", + "MspAlreadyConfirmed", + "RequestWithoutMsp", + "MspAlreadyStoringBucket", + "MoveBucketRequestNotFound", + "BucketIsBeingMoved", + "BspAlreadyDataServer", + "BspDataServersExceeded", + "FileMetadataProcessingQueueFull", + "TooManyBatchResponses", + "TooManyStorageRequestResponses", + "InvalidBucketIdFileKeyPair", + "InconsistentStateKeyAlreadyExists" + ] + }, + /** + * Lookup457: pallet_proofs_dealer::pallet::Error + **/ + PalletProofsDealerError: { + _enum: [ + "NotProvider", + "ChallengesQueueOverflow", + "PriorityChallengesQueueOverflow", + "FeeChargeFailed", + "EmptyKeyProofs", + "ProviderRootNotFound", + "ZeroRoot", + "NoRecordOfLastSubmittedProof", + "ProviderStakeNotFound", + "ZeroStake", + "StakeCouldNotBeConverted", + "ChallengesTickNotReached", + "ChallengesTickTooOld", + "ChallengesTickTooLate", + "SeedNotFound", + "CheckpointChallengesNotFound", + "ForestProofVerificationFailed", + "KeyProofNotFound", + "KeyProofVerificationFailed", + "FailedToApplyDelta", + "FailedToUpdateProviderAfterKeyRemoval", + "TooManyValidProofSubmitters" + ] + }, + /** + * Lookup460: pallet_payment_streams::types::FixedRatePaymentStream + **/ + PalletPaymentStreamsFixedRatePaymentStream: { + rate: "u128", + lastChargedTick: "u32", + userDeposit: "u128", + outOfFundsTick: "Option" + }, + /** + * Lookup461: pallet_payment_streams::types::DynamicRatePaymentStream + **/ + PalletPaymentStreamsDynamicRatePaymentStream: { + amountProvided: "u64", + priceIndexWhenLastCharged: "u128", + userDeposit: "u128", + outOfFundsTick: "Option" + }, + /** + * Lookup462: pallet_payment_streams::types::ProviderLastChargeableInfo + **/ + PalletPaymentStreamsProviderLastChargeableInfo: { + lastChargeableTick: "u32", + priceIndex: "u128" + }, + /** + * Lookup463: pallet_payment_streams::pallet::Error + **/ + PalletPaymentStreamsError: { + _enum: [ + "PaymentStreamAlreadyExists", + "PaymentStreamNotFound", + "NotAProvider", + "ProviderInconsistencyError", + "CannotHoldDeposit", + "UpdateRateToSameRate", + "UpdateAmountToSameAmount", + "RateCantBeZero", + "AmountProvidedCantBeZero", + "LastChargedGreaterThanLastChargeable", + "InvalidLastChargeableBlockNumber", + "InvalidLastChargeablePriceIndex", + "ChargeOverflow", + "UserWithoutFunds", + "UserNotFlaggedAsWithoutFunds", + "CooldownPeriodNotPassed" + ] + }, + /** + * Lookup464: pallet_bucket_nfts::pallet::Error + **/ + PalletBucketNftsError: { + _enum: [ + "BucketIsNotPrivate", + "NotBucketOwner", + "NoCorrespondingCollection", + "ConvertBytesToBoundedVec" + ] + }, + /** + * Lookup465: pallet_nfts::types::CollectionDetails + **/ + PalletNftsCollectionDetails: { + owner: "AccountId32", + ownerDeposit: "u128", + items: "u32", + itemMetadatas: "u32", + itemConfigs: "u32", + attributes: "u32" + }, + /** + * Lookup470: pallet_nfts::types::CollectionRole + **/ + PalletNftsCollectionRole: { + _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] + }, + /** + * Lookup471: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + **/ + PalletNftsItemDetails: { + owner: "AccountId32", + approvals: "BTreeMap>", + deposit: "PalletNftsItemDeposit" + }, + /** + * Lookup472: pallet_nfts::types::ItemDeposit + **/ + PalletNftsItemDeposit: { + account: "AccountId32", + amount: "u128" + }, + /** + * Lookup477: pallet_nfts::types::CollectionMetadata + **/ + PalletNftsCollectionMetadata: { + deposit: "u128", + data: "Bytes" + }, + /** + * Lookup478: pallet_nfts::types::ItemMetadata, StringLimit> + **/ + PalletNftsItemMetadata: { + deposit: "PalletNftsItemMetadataDeposit", + data: "Bytes" + }, + /** + * Lookup479: pallet_nfts::types::ItemMetadataDeposit + **/ + PalletNftsItemMetadataDeposit: { + account: "Option", + amount: "u128" + }, + /** + * Lookup482: pallet_nfts::types::AttributeDeposit + **/ + PalletNftsAttributeDeposit: { + account: "Option", + amount: "u128" + }, + /** + * Lookup486: pallet_nfts::types::PendingSwap, Deadline> + **/ + PalletNftsPendingSwap: { + desiredCollection: "u32", + desiredItem: "Option", + price: "Option", + deadline: "u32" + }, + /** + * Lookup488: pallet_nfts::types::PalletFeature + **/ + PalletNftsPalletFeature: { + _enum: [ + "__Unused0", + "Trading", + "Attributes", + "__Unused3", + "Approvals", + "__Unused5", + "__Unused6", + "__Unused7", + "Swaps" + ] + }, + /** + * Lookup489: pallet_nfts::pallet::Error + **/ + PalletNftsError: { + _enum: [ + "NoPermission", + "UnknownCollection", + "AlreadyExists", + "ApprovalExpired", + "WrongOwner", + "BadWitness", + "CollectionIdInUse", + "ItemsNonTransferable", + "NotDelegate", + "WrongDelegate", + "Unapproved", + "Unaccepted", + "ItemLocked", + "LockedItemAttributes", + "LockedCollectionAttributes", + "LockedItemMetadata", + "LockedCollectionMetadata", + "MaxSupplyReached", + "MaxSupplyLocked", + "MaxSupplyTooSmall", + "UnknownItem", + "UnknownSwap", + "MetadataNotFound", + "AttributeNotFound", + "NotForSale", + "BidTooLow", + "ReachedApprovalLimit", + "DeadlineExpired", + "WrongDuration", + "MethodDisabled", + "WrongSetting", + "InconsistentItemConfig", + "NoConfig", + "RolesNotCleared", + "MintNotStarted", + "MintEnded", + "AlreadyClaimed", + "IncorrectData", + "WrongOrigin", + "WrongSignature", + "IncorrectMetadata", + "MaxAttributesLimitReached", + "WrongNamespace", + "CollectionNotEmpty", + "WitnessRequired" + ] + }, + /** + * Lookup492: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + **/ + FrameSystemExtensionsCheckNonZeroSender: "Null", + /** + * Lookup493: frame_system::extensions::check_spec_version::CheckSpecVersion + **/ + FrameSystemExtensionsCheckSpecVersion: "Null", + /** + * Lookup494: frame_system::extensions::check_tx_version::CheckTxVersion + **/ + FrameSystemExtensionsCheckTxVersion: "Null", + /** + * Lookup495: frame_system::extensions::check_genesis::CheckGenesis + **/ + FrameSystemExtensionsCheckGenesis: "Null", + /** + * Lookup498: frame_system::extensions::check_nonce::CheckNonce + **/ + FrameSystemExtensionsCheckNonce: "Compact", + /** + * Lookup499: frame_system::extensions::check_weight::CheckWeight + **/ + FrameSystemExtensionsCheckWeight: "Null", + /** + * Lookup500: pallet_transaction_payment::ChargeTransactionPayment + **/ + PalletTransactionPaymentChargeTransactionPayment: "Compact", + /** + * Lookup501: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + **/ + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", + /** + * Lookup502: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: "FrameMetadataHashExtensionMode" + }, + /** + * Lookup503: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: ["Disabled", "Enabled"] + }, + /** + * Lookup504: storage_hub_runtime::Runtime + **/ + StorageHubRuntimeRuntime: "Null" +}; +//# sourceMappingURL=lookup.js.map diff --git a/api-augment/dist/interfaces/lookup.js.map b/api-augment/dist/interfaces/lookup.js.map index 0c922e8ef..6ca51228e 100644 --- a/api-augment/dist/interfaces/lookup.js.map +++ b/api-augment/dist/interfaces/lookup.js.map @@ -1,5 +1 @@ -<<<<<<< HEAD -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} -======= -{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} ->>>>>>> main +{"version":3,"file":"lookup.js","sourceRoot":"","sources":["../../src/interfaces/lookup.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/api-augment/dist/types/interfaces/augment-api-consts.d.ts b/api-augment/dist/types/interfaces/augment-api-consts.d.ts index 3dd1125e8..41d982816 100644 --- a/api-augment/dist/types/interfaces/augment-api-consts.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-consts.d.ts @@ -1,562 +1,562 @@ -import "@polkadot/api-base/types/consts"; -import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; -import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; -import type { Codec } from "@polkadot/types-codec/types"; -import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; -import type { - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight -} from "@polkadot/types/lookup"; -export type __AugmentedConst = AugmentedConst; -declare module "@polkadot/api-base/types/consts" { - interface AugmentedConsts { - aura: { - /** - * The slot duration Aura should run with, expressed in milliseconds. - * The effective value of this type should not change while the chain is running. - * - * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. - **/ - slotDuration: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - balances: { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - **/ - existentialDeposit: u128 & AugmentedConst; - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - **/ - maxFreezes: u32 & AugmentedConst; - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - * - * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxLocks: u32 & AugmentedConst; - /** - * The maximum number of named reserves that can exist on an account. - * - * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxReserves: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - fileSystem: { - /** - * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. - **/ - maxBatchConfirmStorageRequests: u32 & AugmentedConst; - /** - * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. - **/ - maxBatchMspRespondStorageRequests: u32 & AugmentedConst; - /** - * Maximum number of SPs (MSP + BSPs) that can store a file. - * - * This is used to limit the number of BSPs storing a file and claiming rewards for it. - * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. - **/ - maxBspsPerStorageRequest: u32 & AugmentedConst; - /** - * Maximum number of multiaddresses for a storage request. - **/ - maxDataServerMultiAddresses: u32 & AugmentedConst; - /** - * Maximum number of expired items (per type) to clean up in a single block. - **/ - maxExpiredItemsInBlock: u32 & AugmentedConst; - /** - * Maximum byte size of a file path. - **/ - maxFilePathSize: u32 & AugmentedConst; - /** - * Maximum number of peer ids for a storage request. - **/ - maxNumberOfPeerIds: u32 & AugmentedConst; - /** - * Maximum byte size of a peer id. - **/ - maxPeerIdSize: u32 & AugmentedConst; - /** - * Maximum number of file deletion requests a user can have pending. - **/ - maxUserPendingDeletionRequests: u32 & AugmentedConst; - /** - * Maximum number of move bucket requests a user can have pending. - **/ - maxUserPendingMoveBucketRequests: u32 & AugmentedConst; - /** - * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. - **/ - minWaitForStopStoring: u32 & AugmentedConst; - /** - * Time-to-live for a move bucket request, after which the request is considered expired. - **/ - moveBucketRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. - **/ - pendingFileDeletionRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a storage request. - **/ - storageRequestTtl: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - messageQueue: { - /** - * The size of the page; this implies the maximum message size which can be sent. - * - * A good value depends on the expected message sizes, their weights, the weight that is - * available for processing them and the maximal needed message size. The maximal message - * size is slightly lower than this as defined by [`MaxMessageLenOf`]. - **/ - heapSize: u32 & AugmentedConst; - /** - * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which - * should be provided to the message queue for servicing enqueued items `on_idle`. - * Useful for parachains to process messages at the same block they are received. - * - * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. - **/ - idleMaxServiceWeight: Option & AugmentedConst; - /** - * The maximum number of stale pages (i.e. of overweight messages) allowed before culling - * can happen. Once there are more stale pages than this, then historical pages may be - * dropped, even if they contain unprocessed overweight messages. - **/ - maxStale: u32 & AugmentedConst; - /** - * The amount of weight (if any) which should be provided to the message queue for - * servicing enqueued items `on_initialize`. - * - * This may be legitimately `None` in the case that you will call - * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have - * it run in `on_idle`. - **/ - serviceWeight: Option & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - nfts: { - /** - * The maximum approvals an item could have. - **/ - approvalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding an attribute to an item. - **/ - attributeDepositBase: u128 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for collection. - **/ - collectionDeposit: u128 & AugmentedConst; - /** - * The additional funds that must be reserved for the number of bytes store in metadata, - * either "normal" metadata or attribute metadata. - **/ - depositPerByte: u128 & AugmentedConst; - /** - * Disables some of pallet's features. - **/ - features: u64 & AugmentedConst; - /** - * The maximum attributes approvals an item could have. - **/ - itemAttributesApprovalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for an item. - **/ - itemDeposit: u128 & AugmentedConst; - /** - * The maximum length of an attribute key. - **/ - keyLimit: u32 & AugmentedConst; - /** - * The max number of attributes a user could set per call. - **/ - maxAttributesPerCall: u32 & AugmentedConst; - /** - * The max duration in blocks for deadlines. - **/ - maxDeadlineDuration: u32 & AugmentedConst; - /** - * The max number of tips a user could send. - **/ - maxTips: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding metadata to your item. - **/ - metadataDepositBase: u128 & AugmentedConst; - /** - * The maximum length of data stored on-chain. - **/ - stringLimit: u32 & AugmentedConst; - /** - * The maximum length of an attribute value. - **/ - valueLimit: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - parachainSystem: { - /** - * Returns the parachain ID we are running with. - **/ - selfParaId: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - paymentStreams: { - /** - * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. - * This means that, from the balance of the User for which the payment stream is being created, the amount - * `NewStreamDeposit * rate` will be held as a deposit. - * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has - * to be provided by the pallet using the `PaymentStreamsInterface` interface. - **/ - newStreamDeposit: u32 & AugmentedConst; - /** - * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag - * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. - **/ - userWithoutFundsCooldown: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - proofsDealer: { - /** - * The minimum unused weight that a block must have to be considered _not_ full. - * - * This is used as part of the criteria for checking if the network is presumably under a spam attack. - * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would - * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. - **/ - blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; - /** - * The period of blocks for which the block fullness is checked. - * - * This is the amount of blocks from the past, for which the block fullness has been checked - * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are - * cleared from storage. - * - * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, - * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting - * their proofs in time. - **/ - blockFullnessPeriod: u32 & AugmentedConst; - /** - * The number of ticks that challenges history is kept for. - * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. - * A "tick" is usually one block, but some blocks may be skipped due to migrations. - **/ - challengeHistoryLength: u32 & AugmentedConst; - /** - * The fee charged for submitting a challenge. - * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are - * exempt from this fee. - **/ - challengesFee: u128 & AugmentedConst; - /** - * The length of the `ChallengesQueue` StorageValue. - * This is to limit the size of the queue, and therefore the number of - * manual challenges that can be made. - **/ - challengesQueueLength: u32 & AugmentedConst; - /** - * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that - * a Provider has to submit a proof, counting from the tick the challenge is emitted for - * that Provider. - * - * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance - * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before - * `n + t`. - **/ - challengeTicksTolerance: u32 & AugmentedConst; - /** - * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). - * This is used to determine when to include the challenges from the `ChallengesQueue` and - * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge - * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` - * extrinsic. - * - * WARNING: This period needs to be equal or larger than the challenge period of the smallest - * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), - * then the checkpoint challenge period needs to be at least 10 ticks. - **/ - checkpointChallengePeriod: u32 & AugmentedConst; - /** - * The maximum number of custom challenges that can be made in a single checkpoint block. - **/ - maxCustomChallengesPerBlock: u32 & AugmentedConst; - /** - * The maximum amount of Providers that can submit a proof in a single block. - * Although this can be seen as an arbitrary limit, if set to the already existing - * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of - * a block, this wouldn't add any additional artificial limit. - **/ - maxSubmittersPerTick: u32 & AugmentedConst; - /** - * The minimum period in which a Provider can be challenged, regardless of their stake. - **/ - minChallengePeriod: u32 & AugmentedConst; - /** - * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, - * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. - * - * If less than this percentage of blocks are not full, the networks is considered to be presumably - * under a spam attack. - * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, - * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` - * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning - * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. - **/ - minNotFullBlocksRatio: Perbill & AugmentedConst; - /** - * The number of random challenges that are generated per block, using the random seed - * generated for that block. - **/ - randomChallengesPerBlock: u32 & AugmentedConst; - /** - * The ratio to convert staked balance to block period. - * This is used to determine the period in which a Provider should submit a proof, based on - * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. - **/ - stakeToChallengePeriod: u128 & AugmentedConst; - /** - * The target number of ticks for which to store the submitters that submitted valid proofs in them, - * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number - * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. - **/ - targetTicksStorageOfSubmitters: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - providers: { - /** - * The amount that an account has to deposit to create a bucket. - **/ - bucketDeposit: u128 & AugmentedConst; - /** - * Type that represents the byte limit of a bucket name. - **/ - bucketNameLimit: u32 & AugmentedConst; - /** - * The default value of the root of the Merkle Patricia Trie of the runtime - **/ - defaultMerkleRoot: H256 & AugmentedConst; - /** - * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. - **/ - depositPerData: u128 & AugmentedConst; - /** - * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen - **/ - maxBlocksForRandomness: u32 & AugmentedConst; - /** - * The maximum amount of Buckets that a MSP can have. - **/ - maxBuckets: u32 & AugmentedConst; - /** - * The estimated maximum size of an unknown file. - * - * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. - **/ - maxFileSize: u64 & AugmentedConst; - /** - * The maximum amount of multiaddresses that a Storage Provider can have. - **/ - maxMultiAddressAmount: u32 & AugmentedConst; - /** - * The maximum size of a multiaddress. - **/ - maxMultiAddressSize: u32 & AugmentedConst; - /** - * The maximum number of protocols the MSP can support (at least within the runtime). - **/ - maxProtocols: u32 & AugmentedConst; - /** - * The minimum amount of blocks between capacity changes for a SP - **/ - minBlocksBetweenCapacityChanges: u32 & AugmentedConst; - /** - * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. - **/ - slashAmountPerMaxFileSize: u128 & AugmentedConst; - /** - * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. - **/ - spMinCapacity: u64 & AugmentedConst; - /** - * The minimum amount that an account has to deposit to become a storage provider. - **/ - spMinDeposit: u128 & AugmentedConst; - /** - * Starting reputation weight for a newly registered BSP. - **/ - startingReputationWeight: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - system: { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - **/ - blockHashCount: u32 & AugmentedConst; - /** - * The maximum length of a block (in bytes). - **/ - blockLength: FrameSystemLimitsBlockLength & AugmentedConst; - /** - * Block & extrinsics weights: base values and limits. - **/ - blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; - /** - * The weight of runtime database operations the runtime can invoke. - **/ - dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - **/ - ss58Prefix: u16 & AugmentedConst; - /** - * Get the chain's in-code version. - **/ - version: SpVersionRuntimeVersion & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - timestamp: { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - **/ - minimumPeriod: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - transactionPayment: { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - **/ - operationalFeeMultiplier: u8 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - xcmpQueue: { - /** - * Maximal number of outbound XCMP channels that can have messages queued at the same time. - * - * If this is reached, then no further messages can be sent to channels that do not yet - * have a message queued. This should be set to the expected maximum of outbound channels - * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, - * since otherwise the congestion control protocol will not work as intended and messages - * may be dropped. This value increases the PoV and should therefore not be picked too - * high. Governance needs to pay attention to not open more channels than this value. - **/ - maxActiveOutboundChannels: u32 & AugmentedConst; - /** - * The maximum number of inbound XCMP channels that can be suspended simultaneously. - * - * Any further channel suspensions will fail and messages may get dropped without further - * notice. Choosing a high value (1000) is okay; the trade-off that is described in - * [`InboundXcmpSuspended`] still applies at that scale. - **/ - maxInboundSuspended: u32 & AugmentedConst; - /** - * The maximal page size for HRMP message pages. - * - * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case - * benchmarking. The limit for the size of a message is slightly below this, since some - * overhead is incurred for encoding the format. - **/ - maxPageSize: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - } -} +import "@polkadot/api-base/types/consts"; +import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; +import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; +import type { Codec } from "@polkadot/types-codec/types"; +import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; +import type { + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight +} from "@polkadot/types/lookup"; +export type __AugmentedConst = AugmentedConst; +declare module "@polkadot/api-base/types/consts" { + interface AugmentedConsts { + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fileSystem: { + /** + * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. + **/ + maxBatchConfirmStorageRequests: u32 & AugmentedConst; + /** + * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. + **/ + maxBatchMspRespondStorageRequests: u32 & AugmentedConst; + /** + * Maximum number of SPs (MSP + BSPs) that can store a file. + * + * This is used to limit the number of BSPs storing a file and claiming rewards for it. + * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. + **/ + maxBspsPerStorageRequest: u32 & AugmentedConst; + /** + * Maximum number of multiaddresses for a storage request. + **/ + maxDataServerMultiAddresses: u32 & AugmentedConst; + /** + * Maximum number of expired items (per type) to clean up in a single block. + **/ + maxExpiredItemsInBlock: u32 & AugmentedConst; + /** + * Maximum byte size of a file path. + **/ + maxFilePathSize: u32 & AugmentedConst; + /** + * Maximum number of peer ids for a storage request. + **/ + maxNumberOfPeerIds: u32 & AugmentedConst; + /** + * Maximum byte size of a peer id. + **/ + maxPeerIdSize: u32 & AugmentedConst; + /** + * Maximum number of file deletion requests a user can have pending. + **/ + maxUserPendingDeletionRequests: u32 & AugmentedConst; + /** + * Maximum number of move bucket requests a user can have pending. + **/ + maxUserPendingMoveBucketRequests: u32 & AugmentedConst; + /** + * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. + **/ + minWaitForStopStoring: u32 & AugmentedConst; + /** + * Time-to-live for a move bucket request, after which the request is considered expired. + **/ + moveBucketRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. + **/ + pendingFileDeletionRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a storage request. + **/ + storageRequestTtl: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + parachainSystem: { + /** + * Returns the parachain ID we are running with. + **/ + selfParaId: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + paymentStreams: { + /** + * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. + * This means that, from the balance of the User for which the payment stream is being created, the amount + * `NewStreamDeposit * rate` will be held as a deposit. + * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has + * to be provided by the pallet using the `PaymentStreamsInterface` interface. + **/ + newStreamDeposit: u32 & AugmentedConst; + /** + * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag + * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. + **/ + userWithoutFundsCooldown: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proofsDealer: { + /** + * The minimum unused weight that a block must have to be considered _not_ full. + * + * This is used as part of the criteria for checking if the network is presumably under a spam attack. + * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would + * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. + **/ + blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; + /** + * The period of blocks for which the block fullness is checked. + * + * This is the amount of blocks from the past, for which the block fullness has been checked + * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are + * cleared from storage. + * + * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, + * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting + * their proofs in time. + **/ + blockFullnessPeriod: u32 & AugmentedConst; + /** + * The number of ticks that challenges history is kept for. + * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. + * A "tick" is usually one block, but some blocks may be skipped due to migrations. + **/ + challengeHistoryLength: u32 & AugmentedConst; + /** + * The fee charged for submitting a challenge. + * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are + * exempt from this fee. + **/ + challengesFee: u128 & AugmentedConst; + /** + * The length of the `ChallengesQueue` StorageValue. + * This is to limit the size of the queue, and therefore the number of + * manual challenges that can be made. + **/ + challengesQueueLength: u32 & AugmentedConst; + /** + * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that + * a Provider has to submit a proof, counting from the tick the challenge is emitted for + * that Provider. + * + * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance + * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before + * `n + t`. + **/ + challengeTicksTolerance: u32 & AugmentedConst; + /** + * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). + * This is used to determine when to include the challenges from the `ChallengesQueue` and + * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge + * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` + * extrinsic. + * + * WARNING: This period needs to be equal or larger than the challenge period of the smallest + * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), + * then the checkpoint challenge period needs to be at least 10 ticks. + **/ + checkpointChallengePeriod: u32 & AugmentedConst; + /** + * The maximum number of custom challenges that can be made in a single checkpoint block. + **/ + maxCustomChallengesPerBlock: u32 & AugmentedConst; + /** + * The maximum amount of Providers that can submit a proof in a single block. + * Although this can be seen as an arbitrary limit, if set to the already existing + * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of + * a block, this wouldn't add any additional artificial limit. + **/ + maxSubmittersPerTick: u32 & AugmentedConst; + /** + * The minimum period in which a Provider can be challenged, regardless of their stake. + **/ + minChallengePeriod: u32 & AugmentedConst; + /** + * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, + * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. + * + * If less than this percentage of blocks are not full, the networks is considered to be presumably + * under a spam attack. + * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, + * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` + * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning + * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. + **/ + minNotFullBlocksRatio: Perbill & AugmentedConst; + /** + * The number of random challenges that are generated per block, using the random seed + * generated for that block. + **/ + randomChallengesPerBlock: u32 & AugmentedConst; + /** + * The ratio to convert staked balance to block period. + * This is used to determine the period in which a Provider should submit a proof, based on + * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. + **/ + stakeToChallengePeriod: u128 & AugmentedConst; + /** + * The target number of ticks for which to store the submitters that submitted valid proofs in them, + * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number + * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. + **/ + targetTicksStorageOfSubmitters: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + providers: { + /** + * The amount that an account has to deposit to create a bucket. + **/ + bucketDeposit: u128 & AugmentedConst; + /** + * Type that represents the byte limit of a bucket name. + **/ + bucketNameLimit: u32 & AugmentedConst; + /** + * The default value of the root of the Merkle Patricia Trie of the runtime + **/ + defaultMerkleRoot: H256 & AugmentedConst; + /** + * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. + **/ + depositPerData: u128 & AugmentedConst; + /** + * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen + **/ + maxBlocksForRandomness: u32 & AugmentedConst; + /** + * The maximum amount of Buckets that a MSP can have. + **/ + maxBuckets: u32 & AugmentedConst; + /** + * The estimated maximum size of an unknown file. + * + * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. + **/ + maxFileSize: u64 & AugmentedConst; + /** + * The maximum amount of multiaddresses that a Storage Provider can have. + **/ + maxMultiAddressAmount: u32 & AugmentedConst; + /** + * The maximum size of a multiaddress. + **/ + maxMultiAddressSize: u32 & AugmentedConst; + /** + * The maximum number of protocols the MSP can support (at least within the runtime). + **/ + maxProtocols: u32 & AugmentedConst; + /** + * The minimum amount of blocks between capacity changes for a SP + **/ + minBlocksBetweenCapacityChanges: u32 & AugmentedConst; + /** + * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. + **/ + slashAmountPerMaxFileSize: u128 & AugmentedConst; + /** + * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. + **/ + spMinCapacity: u64 & AugmentedConst; + /** + * The minimum amount that an account has to deposit to become a storage provider. + **/ + spMinDeposit: u128 & AugmentedConst; + /** + * Starting reputation weight for a newly registered BSP. + **/ + startingReputationWeight: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: FrameSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: SpVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; + /** + * The maximum number of inbound XCMP channels that can be suspended simultaneously. + * + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ + maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-errors.d.ts b/api-augment/dist/types/interfaces/augment-api-errors.d.ts index 3786e0eaf..152d60dc6 100644 --- a/api-augment/dist/types/interfaces/augment-api-errors.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-errors.d.ts @@ -1,1195 +1,1195 @@ -import "@polkadot/api-base/types/errors"; -import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; -export type __AugmentedError = AugmentedError; -declare module "@polkadot/api-base/types/errors" { - interface AugmentedErrors { - balances: { - /** - * Beneficiary account must pre-exist. - **/ - DeadAccount: AugmentedError; - /** - * The delta cannot be zero. - **/ - DeltaZero: AugmentedError; - /** - * Value too low to create account due to existential deposit. - **/ - ExistentialDeposit: AugmentedError; - /** - * A vesting schedule already exists for this account. - **/ - ExistingVestingSchedule: AugmentedError; - /** - * Transfer/payment would kill account. - **/ - Expendability: AugmentedError; - /** - * Balance too low to send value. - **/ - InsufficientBalance: AugmentedError; - /** - * The issuance cannot be modified since it is already deactivated. - **/ - IssuanceDeactivated: AugmentedError; - /** - * Account liquidity restrictions prevent withdrawal. - **/ - LiquidityRestrictions: AugmentedError; - /** - * Number of freezes exceed `MaxFreezes`. - **/ - TooManyFreezes: AugmentedError; - /** - * Number of holds exceed `VariantCountOf`. - **/ - TooManyHolds: AugmentedError; - /** - * Number of named reserves exceed `MaxReserves`. - **/ - TooManyReserves: AugmentedError; - /** - * Vesting balance too high to send value. - **/ - VestingBalance: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - bucketNfts: { - /** - * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Failed to convert bytes to `BoundedVec` - **/ - ConvertBytesToBoundedVec: AugmentedError; - /** - * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - NoCorrespondingCollection: AugmentedError; - /** - * Account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - collatorSelection: { - /** - * Account is already a candidate. - **/ - AlreadyCandidate: AugmentedError; - /** - * Account is already an Invulnerable. - **/ - AlreadyInvulnerable: AugmentedError; - /** - * New deposit amount would be below the minimum candidacy bond. - **/ - DepositTooLow: AugmentedError; - /** - * The updated deposit amount is equal to the amount already reserved. - **/ - IdenticalDeposit: AugmentedError; - /** - * Could not insert in the candidate list. - **/ - InsertToCandidateListFailed: AugmentedError; - /** - * Deposit amount is too low to take the target's slot in the candidate list. - **/ - InsufficientBond: AugmentedError; - /** - * Cannot lower candidacy bond while occupying a future collator slot in the list. - **/ - InvalidUnreserve: AugmentedError; - /** - * Account has no associated validator ID. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * Account is not a candidate. - **/ - NotCandidate: AugmentedError; - /** - * Account is not an Invulnerable. - **/ - NotInvulnerable: AugmentedError; - /** - * Could not remove from the candidate list. - **/ - RemoveFromCandidateListFailed: AugmentedError; - /** - * The target account to be replaced in the candidate list is not a candidate. - **/ - TargetIsNotCandidate: AugmentedError; - /** - * Leaving would result in too few candidates. - **/ - TooFewEligibleCollators: AugmentedError; - /** - * The pallet has too many candidates. - **/ - TooManyCandidates: AugmentedError; - /** - * There are too many Invulnerables. - **/ - TooManyInvulnerables: AugmentedError; - /** - * Could not update the candidate list. - **/ - UpdateCandidateListFailed: AugmentedError; - /** - * Validator ID is not yet registered. - **/ - ValidatorNotRegistered: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - fileSystem: { - /** - * BSP did not succeed threshold check. - **/ - AboveThreshold: AugmentedError; - /** - * BSP has already confirmed storing the given file. - **/ - BspAlreadyConfirmed: AugmentedError; - /** - * BSP is already a data server for the move bucket request. - **/ - BspAlreadyDataServer: AugmentedError; - /** - * BSP already volunteered to store the given file. - **/ - BspAlreadyVolunteered: AugmentedError; - /** - * Too many registered data servers for the move bucket request. - **/ - BspDataServersExceeded: AugmentedError; - /** - * BSP has not confirmed storing the given file. - **/ - BspNotConfirmed: AugmentedError; - /** - * BSP has not volunteered to store the given file. - **/ - BspNotVolunteered: AugmentedError; - /** - * BSPs required for storage request cannot exceed the maximum allowed. - **/ - BspsRequiredExceedsTarget: AugmentedError; - /** - * Action not allowed while the bucket is being moved. - **/ - BucketIsBeingMoved: AugmentedError; - /** - * Bucket is not private. Call `update_bucket_privacy` to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Bucket does not exist - **/ - BucketNotFound: AugmentedError; - /** - * Divided by 0 - **/ - DividedByZero: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of inclusion. - **/ - ExpectedInclusionProof: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of non-inclusion. - **/ - ExpectedNonInclusionProof: AugmentedError; - /** - * Failed to decode threshold. - **/ - FailedToDecodeThreshold: AugmentedError; - /** - * Failed to encode BSP id as slice. - **/ - FailedToEncodeBsp: AugmentedError; - /** - * Failed to encode fingerprint as slice. - **/ - FailedToEncodeFingerprint: AugmentedError; - /** - * Failed to convert to primitive type. - **/ - FailedTypeConversion: AugmentedError; - /** - * File key already pending deletion. - **/ - FileKeyAlreadyPendingDeletion: AugmentedError; - /** - * File key not found in pending deletion requests. - **/ - FileKeyNotPendingDeletion: AugmentedError; - /** - * The bounded vector that holds file metadata to process it is full but there's still more to process. - **/ - FileMetadataProcessingQueueFull: AugmentedError; - /** - * File size cannot be zero. - **/ - FileSizeCannotBeZero: AugmentedError; - /** - * Failed to get value when just checked it existed. - **/ - ImpossibleFailedToGetValue: AugmentedError; - /** - * Key already exists in mapping when it should not. - **/ - InconsistentStateKeyAlreadyExists: AugmentedError; - /** - * SP does not have enough storage capacity to store the file. - **/ - InsufficientAvailableCapacity: AugmentedError; - /** - * Bucket id and file key pair is invalid. - **/ - InvalidBucketIdFileKeyPair: AugmentedError; - /** - * Metadata does not correspond to expected file key. - **/ - InvalidFileKeyMetadata: AugmentedError; - /** - * Error created in 2024. If you see this, you are well beyond the singularity and should - * probably stop using this pallet. - **/ - MaxBlockNumberReached: AugmentedError; - /** - * Maximum threshold cannot be zero. - **/ - MaximumThresholdCannotBeZero: AugmentedError; - /** - * Max number of user pending deletion requests reached. - **/ - MaxUserPendingDeletionRequestsReached: AugmentedError; - /** - * Minimum amount of blocks between the request opening and being able to confirm it not reached. - **/ - MinWaitForStopStoringNotReached: AugmentedError; - /** - * Move bucket request not found in storage. - **/ - MoveBucketRequestNotFound: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. - **/ - MspAlreadyConfirmed: AugmentedError; - /** - * The MSP is already storing the bucket. - **/ - MspAlreadyStoringBucket: AugmentedError; - /** - * Unauthorized operation, signer is not an MSP of the bucket id. - **/ - MspNotStoringBucket: AugmentedError; - /** - * No global reputation weight set. - **/ - NoGlobalReputationWeightSet: AugmentedError; - /** - * Account is not a BSP. - **/ - NotABsp: AugmentedError; - /** - * Account is not a MSP. - **/ - NotAMsp: AugmentedError; - /** - * Account is not a SP. - **/ - NotASp: AugmentedError; - /** - * Operation failed because the account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Unauthorized operation, signer does not own the file. - **/ - NotFileOwner: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. - **/ - NotSelectedMsp: AugmentedError; - /** - * Pending stop storing request already exists. - **/ - PendingStopStoringRequestAlreadyExists: AugmentedError; - /** - * Pending stop storing request not found. - **/ - PendingStopStoringRequestNotFound: AugmentedError; - /** - * Root of the provider not found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * Replication target cannot be zero. - **/ - ReplicationTargetCannotBeZero: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. - **/ - RequestWithoutMsp: AugmentedError; - /** - * Storage request already registered for the given file. - **/ - StorageRequestAlreadyRegistered: AugmentedError; - /** - * Number of BSPs required for storage request has been reached. - **/ - StorageRequestBspsRequiredFulfilled: AugmentedError; - /** - * Operation not allowed while the storage request exists. - **/ - StorageRequestExists: AugmentedError; - /** - * No slot available found in blocks to insert storage request expiration time. - **/ - StorageRequestExpiredNoSlotAvailable: AugmentedError; - /** - * Not authorized to delete the storage request. - **/ - StorageRequestNotAuthorized: AugmentedError; - /** - * Storage request not registered for the given file. - **/ - StorageRequestNotFound: AugmentedError; - /** - * Operation not allowed while the storage request is not being revoked. - **/ - StorageRequestNotRevoked: AugmentedError; - /** - * Arithmetic error in threshold calculation. - **/ - ThresholdArithmeticError: AugmentedError; - /** - * BSPs assignment threshold cannot be below asymptote. - **/ - ThresholdBelowAsymptote: AugmentedError; - /** - * Tick range to maximum threshold cannot be zero. - **/ - TickRangeToMaximumThresholdCannotBeZero: AugmentedError; - /** - * Too many batch responses to process. - **/ - TooManyBatchResponses: AugmentedError; - /** - * Too many storage request responses. - **/ - TooManyStorageRequestResponses: AugmentedError; - /** - * Number of removed BSPs volunteered from storage request prefix did not match the expected number. - **/ - UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; - /** - * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. - **/ - UserNotInsolvent: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - messageQueue: { - /** - * The message was already processed and cannot be processed again. - **/ - AlreadyProcessed: AugmentedError; - /** - * There is temporarily not enough weight to continue servicing messages. - **/ - InsufficientWeight: AugmentedError; - /** - * The referenced message could not be found. - **/ - NoMessage: AugmentedError; - /** - * Page to be reaped does not exist. - **/ - NoPage: AugmentedError; - /** - * Page is not reapable because it has items remaining to be processed and is not old - * enough. - **/ - NotReapable: AugmentedError; - /** - * The message is queued for future execution. - **/ - Queued: AugmentedError; - /** - * The queue is paused and no message can be executed from it. - * - * This can change at any time and may resolve in the future by re-trying. - **/ - QueuePaused: AugmentedError; - /** - * Another call is in progress and needs to finish before this call can happen. - **/ - RecursiveDisallowed: AugmentedError; - /** - * This message is temporarily unprocessable. - * - * Such errors are expected, but not guaranteed, to resolve themselves eventually through - * retrying. - **/ - TemporarilyUnprocessable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - nfts: { - /** - * The provided Item was already used for claiming. - **/ - AlreadyClaimed: AugmentedError; - /** - * The item ID has already been used for an item. - **/ - AlreadyExists: AugmentedError; - /** - * The approval had a deadline that expired, so the approval isn't valid anymore. - **/ - ApprovalExpired: AugmentedError; - /** - * The provided attribute can't be found. - **/ - AttributeNotFound: AugmentedError; - /** - * The witness data given does not match the current state of the chain. - **/ - BadWitness: AugmentedError; - /** - * The provided bid is too low. - **/ - BidTooLow: AugmentedError; - /** - * Collection ID is already taken. - **/ - CollectionIdInUse: AugmentedError; - /** - * Can't delete non-empty collections. - **/ - CollectionNotEmpty: AugmentedError; - /** - * The deadline has already expired. - **/ - DeadlineExpired: AugmentedError; - /** - * Item's config already exists and should be equal to the provided one. - **/ - InconsistentItemConfig: AugmentedError; - /** - * The provided data is incorrect. - **/ - IncorrectData: AugmentedError; - /** - * The provided metadata might be too long. - **/ - IncorrectMetadata: AugmentedError; - /** - * The item is locked (non-transferable). - **/ - ItemLocked: AugmentedError; - /** - * Items within that collection are non-transferable. - **/ - ItemsNonTransferable: AugmentedError; - /** - * Collection's attributes are locked. - **/ - LockedCollectionAttributes: AugmentedError; - /** - * Collection's metadata is locked. - **/ - LockedCollectionMetadata: AugmentedError; - /** - * Item's attributes are locked. - **/ - LockedItemAttributes: AugmentedError; - /** - * Item's metadata is locked. - **/ - LockedItemMetadata: AugmentedError; - /** - * Can't set more attributes per one call. - **/ - MaxAttributesLimitReached: AugmentedError; - /** - * The max supply is locked and can't be changed. - **/ - MaxSupplyLocked: AugmentedError; - /** - * All items have been minted. - **/ - MaxSupplyReached: AugmentedError; - /** - * The provided max supply is less than the number of items a collection already has. - **/ - MaxSupplyTooSmall: AugmentedError; - /** - * The given item has no metadata set. - **/ - MetadataNotFound: AugmentedError; - /** - * The method is disabled by system settings. - **/ - MethodDisabled: AugmentedError; - /** - * Mint has already ended. - **/ - MintEnded: AugmentedError; - /** - * Mint has not started yet. - **/ - MintNotStarted: AugmentedError; - /** - * Config for a collection or an item can't be found. - **/ - NoConfig: AugmentedError; - /** - * The signing account has no permission to do the operation. - **/ - NoPermission: AugmentedError; - /** - * The provided account is not a delegate. - **/ - NotDelegate: AugmentedError; - /** - * Item is not for sale. - **/ - NotForSale: AugmentedError; - /** - * The item has reached its approval limit. - **/ - ReachedApprovalLimit: AugmentedError; - /** - * Some roles were not cleared. - **/ - RolesNotCleared: AugmentedError; - /** - * The named owner has not signed ownership acceptance of the collection. - **/ - Unaccepted: AugmentedError; - /** - * No approval exists that would allow the transfer. - **/ - Unapproved: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownCollection: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownItem: AugmentedError; - /** - * Swap doesn't exist. - **/ - UnknownSwap: AugmentedError; - /** - * The witness data should be provided. - **/ - WitnessRequired: AugmentedError; - /** - * The delegate turned out to be different to what was expected. - **/ - WrongDelegate: AugmentedError; - /** - * The duration provided should be less than or equal to `MaxDeadlineDuration`. - **/ - WrongDuration: AugmentedError; - /** - * The provided namespace isn't supported in this call. - **/ - WrongNamespace: AugmentedError; - /** - * The extrinsic was sent by the wrong origin. - **/ - WrongOrigin: AugmentedError; - /** - * The owner turned out to be different to what was expected. - **/ - WrongOwner: AugmentedError; - /** - * The provided setting can't be set. - **/ - WrongSetting: AugmentedError; - /** - * The provided signature is incorrect. - **/ - WrongSignature: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - parachainSystem: { - /** - * The inherent which supplies the host configuration did not run this block. - **/ - HostConfigurationNotAvailable: AugmentedError; - /** - * No code upgrade has been authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * No validation function upgrade is currently scheduled. - **/ - NotScheduled: AugmentedError; - /** - * Attempt to upgrade validation function while existing upgrade pending. - **/ - OverlappingUpgrades: AugmentedError; - /** - * Polkadot currently prohibits this parachain from upgrading its validation function. - **/ - ProhibitedByPolkadot: AugmentedError; - /** - * The supplied validation function has compiled into a blob larger than Polkadot is - * willing to run. - **/ - TooBig: AugmentedError; - /** - * The given code upgrade has not been authorized. - **/ - Unauthorized: AugmentedError; - /** - * The inherent which supplies the validation data did not run this block. - **/ - ValidationDataNotAvailable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - paymentStreams: { - /** - * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) - **/ - AmountProvidedCantBeZero: AugmentedError; - /** - * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when charging a payment stream would result in an overflow of the balance type - **/ - ChargeOverflow: AugmentedError; - /** - * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed - **/ - CooldownPeriodNotPassed: AugmentedError; - /** - * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number - **/ - InvalidLastChargeableBlockNumber: AugmentedError; - /** - * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index - **/ - InvalidLastChargeablePriceIndex: AugmentedError; - /** - * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick - **/ - LastChargedGreaterThanLastChargeable: AugmentedError; - /** - * Error thrown when a user tries to charge a payment stream and it's not a registered Provider - **/ - NotAProvider: AugmentedError; - /** - * Error thrown when a user of this pallet tries to add a payment stream that already exists. - **/ - PaymentStreamAlreadyExists: AugmentedError; - /** - * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when failing to get the payment account of a registered Provider - **/ - ProviderInconsistencyError: AugmentedError; - /** - * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) - **/ - RateCantBeZero: AugmentedError; - /** - * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before - **/ - UpdateAmountToSameAmount: AugmentedError; - /** - * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before - **/ - UpdateRateToSameRate: AugmentedError; - /** - * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt - **/ - UserNotFlaggedAsWithoutFunds: AugmentedError; - /** - * Error thrown when trying to operate when the User has been flagged for not having enough funds. - **/ - UserWithoutFunds: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - polkadotXcm: { - /** - * The given account is not an identifiable sovereign account for any location. - **/ - AccountNotSovereign: AugmentedError; - /** - * The location is invalid since it already has a subscription from us. - **/ - AlreadySubscribed: AugmentedError; - /** - * The given location could not be used (e.g. because it cannot be expressed in the - * desired version of XCM). - **/ - BadLocation: AugmentedError; - /** - * The version of the `Versioned` value used is not able to be interpreted. - **/ - BadVersion: AugmentedError; - /** - * Could not check-out the assets for teleportation to the destination chain. - **/ - CannotCheckOutTeleport: AugmentedError; - /** - * Could not re-anchor the assets to declare the fees for the destination chain. - **/ - CannotReanchor: AugmentedError; - /** - * The destination `Location` provided cannot be inverted. - **/ - DestinationNotInvertible: AugmentedError; - /** - * The assets to be sent are empty. - **/ - Empty: AugmentedError; - /** - * The operation required fees to be paid which the initiator could not meet. - **/ - FeesNotMet: AugmentedError; - /** - * The message execution fails the filter. - **/ - Filtered: AugmentedError; - /** - * The unlock operation cannot succeed because there are still consumers of the lock. - **/ - InUse: AugmentedError; - /** - * Invalid asset, reserve chain could not be determined for it. - **/ - InvalidAssetUnknownReserve: AugmentedError; - /** - * Invalid asset, do not support remote asset reserves with different fees reserves. - **/ - InvalidAssetUnsupportedReserve: AugmentedError; - /** - * Origin is invalid for sending. - **/ - InvalidOrigin: AugmentedError; - /** - * Local XCM execution incomplete. - **/ - LocalExecutionIncomplete: AugmentedError; - /** - * A remote lock with the corresponding data could not be found. - **/ - LockNotFound: AugmentedError; - /** - * The owner does not own (all) of the asset that they wish to do the operation on. - **/ - LowBalance: AugmentedError; - /** - * The referenced subscription could not be found. - **/ - NoSubscription: AugmentedError; - /** - * There was some other issue (i.e. not to do with routing) in sending the message. - * Perhaps a lack of space for buffering the message. - **/ - SendFailure: AugmentedError; - /** - * Too many assets have been attempted for transfer. - **/ - TooManyAssets: AugmentedError; - /** - * The asset owner has too many locks on the asset. - **/ - TooManyLocks: AugmentedError; - /** - * Too many assets with different reserve locations have been attempted for transfer. - **/ - TooManyReserves: AugmentedError; - /** - * The desired destination was unreachable, generally because there is a no way of routing - * to it. - **/ - Unreachable: AugmentedError; - /** - * The message's weight could not be determined. - **/ - UnweighableMessage: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - proofsDealer: { - /** - * `challenge` extrinsic errors - * The ChallengesQueue is full. No more manual challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - ChallengesQueueOverflow: AugmentedError; - /** - * Provider is submitting a proof for a tick in the future. - **/ - ChallengesTickNotReached: AugmentedError; - /** - * Provider is submitting a proof for a tick too late, i.e. that the challenges tick - * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. - **/ - ChallengesTickTooLate: AugmentedError; - /** - * Provider is submitting a proof for a tick before the last tick this pallet registers - * challenges for. - **/ - ChallengesTickTooOld: AugmentedError; - /** - * Checkpoint challenges not found in block. - * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick - * that is not a checkpoint tick. - **/ - CheckpointChallengesNotFound: AugmentedError; - /** - * `submit_proof` extrinsic errors - * There are no key proofs submitted. - **/ - EmptyKeyProofs: AugmentedError; - /** - * Failed to apply delta to the forest proof partial trie. - **/ - FailedToApplyDelta: AugmentedError; - /** - * Failed to update the provider after a key removal mutation. - **/ - FailedToUpdateProviderAfterKeyRemoval: AugmentedError; - /** - * The fee for submitting a challenge could not be charged. - **/ - FeeChargeFailed: AugmentedError; - /** - * The forest proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root, or because the proof is - * not sufficient for the challenges made. - **/ - ForestProofVerificationFailed: AugmentedError; - /** - * There is at least one key proven in the forest proof, that does not have a corresponding - * key proof. - **/ - KeyProofNotFound: AugmentedError; - /** - * A key proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root of that key, or because the proof - * is not sufficient for the challenges made. - **/ - KeyProofVerificationFailed: AugmentedError; - /** - * Provider is submitting a proof but there is no record of the last tick they - * submitted a proof for. - * Providers who are required to submit proofs should always have a record of the - * last tick they submitted a proof for, otherwise it means they haven't started - * providing service for any user yet. - **/ - NoRecordOfLastSubmittedProof: AugmentedError; - /** - * General errors - * The proof submitter is not a registered Provider. - **/ - NotProvider: AugmentedError; - /** - * The PriorityChallengesQueue is full. No more priority challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - PriorityChallengesQueueOverflow: AugmentedError; - /** - * The root for the Provider could not be found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * The provider stake could not be found. - **/ - ProviderStakeNotFound: AugmentedError; - /** - * The seed for the tick could not be found. - * This should not be possible for a tick within the `ChallengeHistoryLength` range, as - * seeds are generated for all ticks, and stored within this range. - **/ - SeedNotFound: AugmentedError; - /** - * The staked balance of the Provider could not be converted to `u128`. - * This should not be possible, as the `Balance` type should be an unsigned integer type. - **/ - StakeCouldNotBeConverted: AugmentedError; - /** - * The limit of Providers that can submit a proof in a single tick has been reached. - **/ - TooManyValidProofSubmitters: AugmentedError; - /** - * Provider is submitting a proof when they have a zero root. - * Providers with zero roots are not providing any service, so they should not be - * submitting proofs. - **/ - ZeroRoot: AugmentedError; - /** - * Provider is submitting a proof but their stake is zero. - **/ - ZeroStake: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - providers: { - /** - * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. - **/ - AlreadyRegistered: AugmentedError; - /** - * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. - **/ - AppendBucketToMspFailed: AugmentedError; - /** - * Error thrown when a bucket ID already exists in storage. - **/ - BucketAlreadyExists: AugmentedError; - /** - * Error thrown when a bucket ID is not found in storage. - **/ - BucketNotFound: AugmentedError; - /** - * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when failing to decode the owner Account ID from the received metadata. - **/ - InvalidEncodedAccountId: AugmentedError; - /** - * Error thrown when failing to decode the metadata from a received trie value that was removed. - **/ - InvalidEncodedFileMetadata: AugmentedError; - /** - * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. - **/ - InvalidMultiAddress: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). - **/ - NewCapacityCantBeZero: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to the same value it already has. - **/ - NewCapacityEqualsCurrentCapacity: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to less than its used storage. - **/ - NewCapacityLessThanUsedStorage: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. - **/ - NewUsedCapacityExceedsStorageCapacity: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a Bucket ID. - **/ - NoBucketId: AugmentedError; - /** - * Error thrown when a user tries to sign up without any multiaddress. - **/ - NoMultiAddress: AugmentedError; - /** - * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. - **/ - NotEnoughBalance: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. - **/ - NotEnoughTimePassed: AugmentedError; - /** - * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. - **/ - NotRegistered: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a User ID. - **/ - NoUserId: AugmentedError; - /** - * Error thrown when trying to update a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when an attempt was made to slash an unslashable Storage Provider. - **/ - ProviderNotSlashable: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. - **/ - RandomnessNotValidYet: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up that was not requested previously. - **/ - SignUpNotRequested: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. - **/ - SignUpRequestExpired: AugmentedError; - /** - * Error thrown when a user tries to request to sign up when it already has a sign up request pending. - **/ - SignUpRequestPending: AugmentedError; - /** - * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). - **/ - SpRegisteredButDataNotFound: AugmentedError; - /** - * Error thrown when a user tries to sign off as a SP but still has used storage. - **/ - StorageStillInUse: AugmentedError; - /** - * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. - **/ - StorageTooLow: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - session: { - /** - * Registered duplicate key. - **/ - DuplicatedKey: AugmentedError; - /** - * Invalid ownership proof. - **/ - InvalidProof: AugmentedError; - /** - * Key setting account is not live, so it's impossible to associate keys. - **/ - NoAccount: AugmentedError; - /** - * No associated validator ID for account. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * No keys are associated with this account. - **/ - NoKeys: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - sudo: { - /** - * Sender must be the Sudo account. - **/ - RequireSudo: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - system: { - /** - * The origin filter prevent the call to be dispatched. - **/ - CallFiltered: AugmentedError; - /** - * Failed to extract the runtime version from the new runtime. - * - * Either calling `Core_version` or decoding `RuntimeVersion` failed. - **/ - FailedToExtractRuntimeVersion: AugmentedError; - /** - * The name of specification does not match between the current runtime - * and the new runtime. - **/ - InvalidSpecName: AugmentedError; - /** - * A multi-block migration is ongoing and prevents the current code from being replaced. - **/ - MultiBlockMigrationsOngoing: AugmentedError; - /** - * Suicide called when the account has non-default composite data. - **/ - NonDefaultComposite: AugmentedError; - /** - * There is a non-zero reference count preventing the account from being purged. - **/ - NonZeroRefCount: AugmentedError; - /** - * No upgrade authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * The specification version is not allowed to decrease between the current runtime - * and the new runtime. - **/ - SpecVersionNeedsToIncrease: AugmentedError; - /** - * The submitted code is not authorized. - **/ - Unauthorized: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - xcmpQueue: { - /** - * The execution is already resumed. - **/ - AlreadyResumed: AugmentedError; - /** - * The execution is already suspended. - **/ - AlreadySuspended: AugmentedError; - /** - * Setting the queue config failed since one of its values was invalid. - **/ - BadQueueConfig: AugmentedError; - /** - * The message is too big. - **/ - TooBig: AugmentedError; - /** - * There are too many active outbound channels. - **/ - TooManyActiveOutboundChannels: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - } -} +import "@polkadot/api-base/types/errors"; +import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; +export type __AugmentedError = AugmentedError; +declare module "@polkadot/api-base/types/errors" { + interface AugmentedErrors { + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bucketNfts: { + /** + * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Failed to convert bytes to `BoundedVec` + **/ + ConvertBytesToBoundedVec: AugmentedError; + /** + * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + NoCorrespondingCollection: AugmentedError; + /** + * Account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + collatorSelection: { + /** + * Account is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * Account is already an Invulnerable. + **/ + AlreadyInvulnerable: AugmentedError; + /** + * New deposit amount would be below the minimum candidacy bond. + **/ + DepositTooLow: AugmentedError; + /** + * The updated deposit amount is equal to the amount already reserved. + **/ + IdenticalDeposit: AugmentedError; + /** + * Could not insert in the candidate list. + **/ + InsertToCandidateListFailed: AugmentedError; + /** + * Deposit amount is too low to take the target's slot in the candidate list. + **/ + InsufficientBond: AugmentedError; + /** + * Cannot lower candidacy bond while occupying a future collator slot in the list. + **/ + InvalidUnreserve: AugmentedError; + /** + * Account has no associated validator ID. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * Account is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * Account is not an Invulnerable. + **/ + NotInvulnerable: AugmentedError; + /** + * Could not remove from the candidate list. + **/ + RemoveFromCandidateListFailed: AugmentedError; + /** + * The target account to be replaced in the candidate list is not a candidate. + **/ + TargetIsNotCandidate: AugmentedError; + /** + * Leaving would result in too few candidates. + **/ + TooFewEligibleCollators: AugmentedError; + /** + * The pallet has too many candidates. + **/ + TooManyCandidates: AugmentedError; + /** + * There are too many Invulnerables. + **/ + TooManyInvulnerables: AugmentedError; + /** + * Could not update the candidate list. + **/ + UpdateCandidateListFailed: AugmentedError; + /** + * Validator ID is not yet registered. + **/ + ValidatorNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fileSystem: { + /** + * BSP did not succeed threshold check. + **/ + AboveThreshold: AugmentedError; + /** + * BSP has already confirmed storing the given file. + **/ + BspAlreadyConfirmed: AugmentedError; + /** + * BSP is already a data server for the move bucket request. + **/ + BspAlreadyDataServer: AugmentedError; + /** + * BSP already volunteered to store the given file. + **/ + BspAlreadyVolunteered: AugmentedError; + /** + * Too many registered data servers for the move bucket request. + **/ + BspDataServersExceeded: AugmentedError; + /** + * BSP has not confirmed storing the given file. + **/ + BspNotConfirmed: AugmentedError; + /** + * BSP has not volunteered to store the given file. + **/ + BspNotVolunteered: AugmentedError; + /** + * BSPs required for storage request cannot exceed the maximum allowed. + **/ + BspsRequiredExceedsTarget: AugmentedError; + /** + * Action not allowed while the bucket is being moved. + **/ + BucketIsBeingMoved: AugmentedError; + /** + * Bucket is not private. Call `update_bucket_privacy` to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Bucket does not exist + **/ + BucketNotFound: AugmentedError; + /** + * Divided by 0 + **/ + DividedByZero: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of inclusion. + **/ + ExpectedInclusionProof: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of non-inclusion. + **/ + ExpectedNonInclusionProof: AugmentedError; + /** + * Failed to decode threshold. + **/ + FailedToDecodeThreshold: AugmentedError; + /** + * Failed to encode BSP id as slice. + **/ + FailedToEncodeBsp: AugmentedError; + /** + * Failed to encode fingerprint as slice. + **/ + FailedToEncodeFingerprint: AugmentedError; + /** + * Failed to convert to primitive type. + **/ + FailedTypeConversion: AugmentedError; + /** + * File key already pending deletion. + **/ + FileKeyAlreadyPendingDeletion: AugmentedError; + /** + * File key not found in pending deletion requests. + **/ + FileKeyNotPendingDeletion: AugmentedError; + /** + * The bounded vector that holds file metadata to process it is full but there's still more to process. + **/ + FileMetadataProcessingQueueFull: AugmentedError; + /** + * File size cannot be zero. + **/ + FileSizeCannotBeZero: AugmentedError; + /** + * Failed to get value when just checked it existed. + **/ + ImpossibleFailedToGetValue: AugmentedError; + /** + * Key already exists in mapping when it should not. + **/ + InconsistentStateKeyAlreadyExists: AugmentedError; + /** + * SP does not have enough storage capacity to store the file. + **/ + InsufficientAvailableCapacity: AugmentedError; + /** + * Bucket id and file key pair is invalid. + **/ + InvalidBucketIdFileKeyPair: AugmentedError; + /** + * Metadata does not correspond to expected file key. + **/ + InvalidFileKeyMetadata: AugmentedError; + /** + * Error created in 2024. If you see this, you are well beyond the singularity and should + * probably stop using this pallet. + **/ + MaxBlockNumberReached: AugmentedError; + /** + * Maximum threshold cannot be zero. + **/ + MaximumThresholdCannotBeZero: AugmentedError; + /** + * Max number of user pending deletion requests reached. + **/ + MaxUserPendingDeletionRequestsReached: AugmentedError; + /** + * Minimum amount of blocks between the request opening and being able to confirm it not reached. + **/ + MinWaitForStopStoringNotReached: AugmentedError; + /** + * Move bucket request not found in storage. + **/ + MoveBucketRequestNotFound: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. + **/ + MspAlreadyConfirmed: AugmentedError; + /** + * The MSP is already storing the bucket. + **/ + MspAlreadyStoringBucket: AugmentedError; + /** + * Unauthorized operation, signer is not an MSP of the bucket id. + **/ + MspNotStoringBucket: AugmentedError; + /** + * No global reputation weight set. + **/ + NoGlobalReputationWeightSet: AugmentedError; + /** + * Account is not a BSP. + **/ + NotABsp: AugmentedError; + /** + * Account is not a MSP. + **/ + NotAMsp: AugmentedError; + /** + * Account is not a SP. + **/ + NotASp: AugmentedError; + /** + * Operation failed because the account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Unauthorized operation, signer does not own the file. + **/ + NotFileOwner: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. + **/ + NotSelectedMsp: AugmentedError; + /** + * Pending stop storing request already exists. + **/ + PendingStopStoringRequestAlreadyExists: AugmentedError; + /** + * Pending stop storing request not found. + **/ + PendingStopStoringRequestNotFound: AugmentedError; + /** + * Root of the provider not found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * Replication target cannot be zero. + **/ + ReplicationTargetCannotBeZero: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. + **/ + RequestWithoutMsp: AugmentedError; + /** + * Storage request already registered for the given file. + **/ + StorageRequestAlreadyRegistered: AugmentedError; + /** + * Number of BSPs required for storage request has been reached. + **/ + StorageRequestBspsRequiredFulfilled: AugmentedError; + /** + * Operation not allowed while the storage request exists. + **/ + StorageRequestExists: AugmentedError; + /** + * No slot available found in blocks to insert storage request expiration time. + **/ + StorageRequestExpiredNoSlotAvailable: AugmentedError; + /** + * Not authorized to delete the storage request. + **/ + StorageRequestNotAuthorized: AugmentedError; + /** + * Storage request not registered for the given file. + **/ + StorageRequestNotFound: AugmentedError; + /** + * Operation not allowed while the storage request is not being revoked. + **/ + StorageRequestNotRevoked: AugmentedError; + /** + * Arithmetic error in threshold calculation. + **/ + ThresholdArithmeticError: AugmentedError; + /** + * BSPs assignment threshold cannot be below asymptote. + **/ + ThresholdBelowAsymptote: AugmentedError; + /** + * Tick range to maximum threshold cannot be zero. + **/ + TickRangeToMaximumThresholdCannotBeZero: AugmentedError; + /** + * Too many batch responses to process. + **/ + TooManyBatchResponses: AugmentedError; + /** + * Too many storage request responses. + **/ + TooManyStorageRequestResponses: AugmentedError; + /** + * Number of removed BSPs volunteered from storage request prefix did not match the expected number. + **/ + UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; + /** + * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. + **/ + UserNotInsolvent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parachainSystem: { + /** + * The inherent which supplies the host configuration did not run this block. + **/ + HostConfigurationNotAvailable: AugmentedError; + /** + * No code upgrade has been authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * No validation function upgrade is currently scheduled. + **/ + NotScheduled: AugmentedError; + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ + OverlappingUpgrades: AugmentedError; + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ + ProhibitedByPolkadot: AugmentedError; + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ + TooBig: AugmentedError; + /** + * The given code upgrade has not been authorized. + **/ + Unauthorized: AugmentedError; + /** + * The inherent which supplies the validation data did not run this block. + **/ + ValidationDataNotAvailable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paymentStreams: { + /** + * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) + **/ + AmountProvidedCantBeZero: AugmentedError; + /** + * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when charging a payment stream would result in an overflow of the balance type + **/ + ChargeOverflow: AugmentedError; + /** + * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed + **/ + CooldownPeriodNotPassed: AugmentedError; + /** + * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number + **/ + InvalidLastChargeableBlockNumber: AugmentedError; + /** + * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index + **/ + InvalidLastChargeablePriceIndex: AugmentedError; + /** + * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick + **/ + LastChargedGreaterThanLastChargeable: AugmentedError; + /** + * Error thrown when a user tries to charge a payment stream and it's not a registered Provider + **/ + NotAProvider: AugmentedError; + /** + * Error thrown when a user of this pallet tries to add a payment stream that already exists. + **/ + PaymentStreamAlreadyExists: AugmentedError; + /** + * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when failing to get the payment account of a registered Provider + **/ + ProviderInconsistencyError: AugmentedError; + /** + * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) + **/ + RateCantBeZero: AugmentedError; + /** + * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before + **/ + UpdateAmountToSameAmount: AugmentedError; + /** + * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before + **/ + UpdateRateToSameRate: AugmentedError; + /** + * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt + **/ + UserNotFlaggedAsWithoutFunds: AugmentedError; + /** + * Error thrown when trying to operate when the User has been flagged for not having enough funds. + **/ + UserWithoutFunds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + polkadotXcm: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proofsDealer: { + /** + * `challenge` extrinsic errors + * The ChallengesQueue is full. No more manual challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + ChallengesQueueOverflow: AugmentedError; + /** + * Provider is submitting a proof for a tick in the future. + **/ + ChallengesTickNotReached: AugmentedError; + /** + * Provider is submitting a proof for a tick too late, i.e. that the challenges tick + * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. + **/ + ChallengesTickTooLate: AugmentedError; + /** + * Provider is submitting a proof for a tick before the last tick this pallet registers + * challenges for. + **/ + ChallengesTickTooOld: AugmentedError; + /** + * Checkpoint challenges not found in block. + * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick + * that is not a checkpoint tick. + **/ + CheckpointChallengesNotFound: AugmentedError; + /** + * `submit_proof` extrinsic errors + * There are no key proofs submitted. + **/ + EmptyKeyProofs: AugmentedError; + /** + * Failed to apply delta to the forest proof partial trie. + **/ + FailedToApplyDelta: AugmentedError; + /** + * Failed to update the provider after a key removal mutation. + **/ + FailedToUpdateProviderAfterKeyRemoval: AugmentedError; + /** + * The fee for submitting a challenge could not be charged. + **/ + FeeChargeFailed: AugmentedError; + /** + * The forest proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root, or because the proof is + * not sufficient for the challenges made. + **/ + ForestProofVerificationFailed: AugmentedError; + /** + * There is at least one key proven in the forest proof, that does not have a corresponding + * key proof. + **/ + KeyProofNotFound: AugmentedError; + /** + * A key proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root of that key, or because the proof + * is not sufficient for the challenges made. + **/ + KeyProofVerificationFailed: AugmentedError; + /** + * Provider is submitting a proof but there is no record of the last tick they + * submitted a proof for. + * Providers who are required to submit proofs should always have a record of the + * last tick they submitted a proof for, otherwise it means they haven't started + * providing service for any user yet. + **/ + NoRecordOfLastSubmittedProof: AugmentedError; + /** + * General errors + * The proof submitter is not a registered Provider. + **/ + NotProvider: AugmentedError; + /** + * The PriorityChallengesQueue is full. No more priority challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + PriorityChallengesQueueOverflow: AugmentedError; + /** + * The root for the Provider could not be found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * The provider stake could not be found. + **/ + ProviderStakeNotFound: AugmentedError; + /** + * The seed for the tick could not be found. + * This should not be possible for a tick within the `ChallengeHistoryLength` range, as + * seeds are generated for all ticks, and stored within this range. + **/ + SeedNotFound: AugmentedError; + /** + * The staked balance of the Provider could not be converted to `u128`. + * This should not be possible, as the `Balance` type should be an unsigned integer type. + **/ + StakeCouldNotBeConverted: AugmentedError; + /** + * The limit of Providers that can submit a proof in a single tick has been reached. + **/ + TooManyValidProofSubmitters: AugmentedError; + /** + * Provider is submitting a proof when they have a zero root. + * Providers with zero roots are not providing any service, so they should not be + * submitting proofs. + **/ + ZeroRoot: AugmentedError; + /** + * Provider is submitting a proof but their stake is zero. + **/ + ZeroStake: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + providers: { + /** + * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. + **/ + AlreadyRegistered: AugmentedError; + /** + * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. + **/ + AppendBucketToMspFailed: AugmentedError; + /** + * Error thrown when a bucket ID already exists in storage. + **/ + BucketAlreadyExists: AugmentedError; + /** + * Error thrown when a bucket ID is not found in storage. + **/ + BucketNotFound: AugmentedError; + /** + * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when failing to decode the owner Account ID from the received metadata. + **/ + InvalidEncodedAccountId: AugmentedError; + /** + * Error thrown when failing to decode the metadata from a received trie value that was removed. + **/ + InvalidEncodedFileMetadata: AugmentedError; + /** + * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. + **/ + InvalidMultiAddress: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). + **/ + NewCapacityCantBeZero: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to the same value it already has. + **/ + NewCapacityEqualsCurrentCapacity: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to less than its used storage. + **/ + NewCapacityLessThanUsedStorage: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. + **/ + NewUsedCapacityExceedsStorageCapacity: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a Bucket ID. + **/ + NoBucketId: AugmentedError; + /** + * Error thrown when a user tries to sign up without any multiaddress. + **/ + NoMultiAddress: AugmentedError; + /** + * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. + **/ + NotEnoughBalance: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. + **/ + NotEnoughTimePassed: AugmentedError; + /** + * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. + **/ + NotRegistered: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a User ID. + **/ + NoUserId: AugmentedError; + /** + * Error thrown when trying to update a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when an attempt was made to slash an unslashable Storage Provider. + **/ + ProviderNotSlashable: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. + **/ + RandomnessNotValidYet: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up that was not requested previously. + **/ + SignUpNotRequested: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. + **/ + SignUpRequestExpired: AugmentedError; + /** + * Error thrown when a user tries to request to sign up when it already has a sign up request pending. + **/ + SignUpRequestPending: AugmentedError; + /** + * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). + **/ + SpRegisteredButDataNotFound: AugmentedError; + /** + * Error thrown when a user tries to sign off as a SP but still has used storage. + **/ + StorageStillInUse: AugmentedError; + /** + * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. + **/ + StorageTooLow: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + sudo: { + /** + * Sender must be the Sudo account. + **/ + RequireSudo: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmpQueue: { + /** + * The execution is already resumed. + **/ + AlreadyResumed: AugmentedError; + /** + * The execution is already suspended. + **/ + AlreadySuspended: AugmentedError; + /** + * Setting the queue config failed since one of its values was invalid. + **/ + BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-events.d.ts b/api-augment/dist/types/interfaces/augment-api-events.d.ts index d6754a5cb..5921d4b0f 100644 --- a/api-augment/dist/types/interfaces/augment-api-events.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-events.d.ts @@ -1,2374 +1,2374 @@ -import "@polkadot/api-base/types/events"; -import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; -import type { - Bytes, - Null, - Option, - Result, - U8aFixed, - Vec, - bool, - u128, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - FrameSupportDispatchDispatchInfo, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemMspRespondStorageRequestsResult, - PalletNftsAttributeNamespace, - PalletNftsPalletAttributes, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - ShpTraitsTrieRemoveMutation, - SpRuntimeDispatchError, - SpWeightsWeightV2Weight, - StagingXcmV4AssetAssets, - StagingXcmV4Location, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - XcmV3TraitsError, - XcmVersionedAssets, - XcmVersionedLocation -} from "@polkadot/types/lookup"; -export type __AugmentedEvent = AugmentedEvent; -declare module "@polkadot/api-base/types/events" { - interface AugmentedEvents { - balances: { - /** - * A balance was set by root. - **/ - BalanceSet: AugmentedEvent< - ApiType, - [who: AccountId32, free: u128], - { - who: AccountId32; - free: u128; - } - >; - /** - * Some amount was burned from an account. - **/ - Burned: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was deposited (e.g. for transaction fees). - **/ - Deposit: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - **/ - DustLost: AugmentedEvent< - ApiType, - [account: AccountId32, amount: u128], - { - account: AccountId32; - amount: u128; - } - >; - /** - * An account was created with some free balance. - **/ - Endowed: AugmentedEvent< - ApiType, - [account: AccountId32, freeBalance: u128], - { - account: AccountId32; - freeBalance: u128; - } - >; - /** - * Some balance was frozen. - **/ - Frozen: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - **/ - Issued: AugmentedEvent< - ApiType, - [amount: u128], - { - amount: u128; - } - >; - /** - * Some balance was locked. - **/ - Locked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was minted into an account. - **/ - Minted: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - **/ - Rescinded: AugmentedEvent< - ApiType, - [amount: u128], - { - amount: u128; - } - >; - /** - * Some balance was reserved (moved from free to reserved). - **/ - Reserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - **/ - ReserveRepatriated: AugmentedEvent< - ApiType, - [ - from: AccountId32, - to: AccountId32, - amount: u128, - destinationStatus: FrameSupportTokensMiscBalanceStatus - ], - { - from: AccountId32; - to: AccountId32; - amount: u128; - destinationStatus: FrameSupportTokensMiscBalanceStatus; - } - >; - /** - * Some amount was restored into an account. - **/ - Restored: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was removed from the account (e.g. for misbehavior). - **/ - Slashed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some amount was suspended from an account (it can be restored later). - **/ - Suspended: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some balance was thawed. - **/ - Thawed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * The `TotalIssuance` was forcefully changed. - **/ - TotalIssuanceForced: AugmentedEvent< - ApiType, - [old: u128, new_: u128], - { - old: u128; - new_: u128; - } - >; - /** - * Transfer succeeded. - **/ - Transfer: AugmentedEvent< - ApiType, - [from: AccountId32, to: AccountId32, amount: u128], - { - from: AccountId32; - to: AccountId32; - amount: u128; - } - >; - /** - * Some balance was unlocked. - **/ - Unlocked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Some balance was unreserved (moved from reserved to free). - **/ - Unreserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * An account was upgraded. - **/ - Upgraded: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - **/ - Withdraw: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { - who: AccountId32; - amount: u128; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - bucketNfts: { - /** - * Notifies that access to a bucket has been shared with another account. - **/ - AccessShared: AugmentedEvent< - ApiType, - [issuer: AccountId32, recipient: AccountId32], - { - issuer: AccountId32; - recipient: AccountId32; - } - >; - /** - * Notifies that an item has been burned. - **/ - ItemBurned: AugmentedEvent< - ApiType, - [account: AccountId32, bucket: H256, itemId: u32], - { - account: AccountId32; - bucket: H256; - itemId: u32; - } - >; - /** - * Notifies that the read access for an item has been updated. - **/ - ItemReadAccessUpdated: AugmentedEvent< - ApiType, - [admin: AccountId32, bucket: H256, itemId: u32], - { - admin: AccountId32; - bucket: H256; - itemId: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - collatorSelection: { - /** - * A new candidate joined. - **/ - CandidateAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { - accountId: AccountId32; - deposit: u128; - } - >; - /** - * Bond of a candidate updated. - **/ - CandidateBondUpdated: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { - accountId: AccountId32; - deposit: u128; - } - >; - /** - * A candidate was removed. - **/ - CandidateRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * An account was replaced in the candidate list by another one. - **/ - CandidateReplaced: AugmentedEvent< - ApiType, - [old: AccountId32, new_: AccountId32, deposit: u128], - { - old: AccountId32; - new_: AccountId32; - deposit: u128; - } - >; - /** - * An account was unable to be added to the Invulnerables because they did not have keys - * registered. Other Invulnerables may have been set. - **/ - InvalidInvulnerableSkipped: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * A new Invulnerable was added. - **/ - InvulnerableAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * An Invulnerable was removed. - **/ - InvulnerableRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { - accountId: AccountId32; - } - >; - /** - * The candidacy bond was set. - **/ - NewCandidacyBond: AugmentedEvent< - ApiType, - [bondAmount: u128], - { - bondAmount: u128; - } - >; - /** - * The number of desired candidates was set. - **/ - NewDesiredCandidates: AugmentedEvent< - ApiType, - [desiredCandidates: u32], - { - desiredCandidates: u32; - } - >; - /** - * New Invulnerables were set. - **/ - NewInvulnerables: AugmentedEvent< - ApiType, - [invulnerables: Vec], - { - invulnerables: Vec; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - cumulusXcm: { - /** - * Downward message executed with the given outcome. - * \[ id, outcome \] - **/ - ExecutedDownward: AugmentedEvent; - /** - * Downward message is invalid XCM. - * \[ id \] - **/ - InvalidFormat: AugmentedEvent; - /** - * Downward message is unsupported version of XCM. - * \[ id \] - **/ - UnsupportedVersion: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - fileSystem: { - /** - * Notifies that a BSP has been accepted to store a given file. - **/ - AcceptedBspVolunteer: AugmentedEvent< - ApiType, - [ - bspId: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - multiaddresses: Vec, - owner: AccountId32, - size_: u64 - ], - { - bspId: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - multiaddresses: Vec; - owner: AccountId32; - size_: u64; - } - >; - /** - * Notifies that a BSP's challenge cycle has been initialised, adding the first file - * key(s) to the BSP's Merkle Patricia Forest. - **/ - BspChallengeCycleInitialised: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { - who: AccountId32; - bspId: H256; - } - >; - /** - * Notifies that a BSP confirmed storing a file(s). - **/ - BspConfirmedStoring: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], - { - who: AccountId32; - bspId: H256; - fileKeys: Vec; - newRoot: H256; - } - >; - /** - * Notifies that a BSP has stopped storing a file. - **/ - BspConfirmStoppedStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, newRoot: H256], - { - bspId: H256; - fileKey: H256; - newRoot: H256; - } - >; - /** - * Notifies that a BSP has opened a request to stop storing a file. - **/ - BspRequestedToStopStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], - { - bspId: H256; - fileKey: H256; - owner: AccountId32; - location: Bytes; - } - >; - /** - * Notifies that a bucket's privacy has been updated. - **/ - BucketPrivacyUpdated: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], - { - who: AccountId32; - bucketId: H256; - collectionId: Option; - private: bool; - } - >; - /** - * Notifies that a data server has been registered for a move bucket request. - **/ - DataServerRegisteredForMoveBucket: AugmentedEvent< - ApiType, - [bspId: H256, bucketId: H256], - { - bspId: H256; - bucketId: H256; - } - >; - /** - * Notifies that a priority challenge failed to be queued for pending file deletion. - **/ - FailedToQueuePriorityChallenge: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256], - { - user: AccountId32; - fileKey: H256; - } - >; - /** - * Notifies that a file will be deleted. - **/ - FileDeletionRequest: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], - { - user: AccountId32; - fileKey: H256; - bucketId: H256; - mspId: H256; - proofOfInclusion: bool; - } - >; - /** - * Notifies that a bucket has been moved to a new MSP. - **/ - MoveBucketAccepted: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { - bucketId: H256; - mspId: H256; - } - >; - /** - * Notifies that a bucket move request has been rejected by the MSP. - **/ - MoveBucketRejected: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { - bucketId: H256; - mspId: H256; - } - >; - /** - * Notifies that a bucket is being moved to a new MSP. - **/ - MoveBucketRequested: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, newMspId: H256], - { - who: AccountId32; - bucketId: H256; - newMspId: H256; - } - >; - /** - * Notifies that a move bucket request has expired. - **/ - MoveBucketRequestExpired: AugmentedEvent< - ApiType, - [mspId: H256, bucketId: H256], - { - mspId: H256; - bucketId: H256; - } - >; - /** - * Notifies that a MSP has responded to storage request(s). - **/ - MspRespondedToStorageRequests: AugmentedEvent< - ApiType, - [results: PalletFileSystemMspRespondStorageRequestsResult], - { - results: PalletFileSystemMspRespondStorageRequestsResult; - } - >; - /** - * Notifies that a new bucket has been created. - **/ - NewBucket: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - bucketId: H256, - name: Bytes, - collectionId: Option, - private: bool - ], - { - who: AccountId32; - mspId: H256; - bucketId: H256; - name: Bytes; - collectionId: Option; - private: bool; - } - >; - /** - * Notifies that a new collection has been created and associated with a bucket. - **/ - NewCollectionAndAssociation: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: u32], - { - who: AccountId32; - bucketId: H256; - collectionId: u32; - } - >; - /** - * Notifies that a new file has been requested to be stored. - **/ - NewStorageRequest: AugmentedEvent< - ApiType, - [ - who: AccountId32, - fileKey: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - size_: u64, - peerIds: Vec - ], - { - who: AccountId32; - fileKey: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - size_: u64; - peerIds: Vec; - } - >; - /** - * Notifies that a file key has been queued for a priority challenge for file deletion. - **/ - PriorityChallengeForFileDeletionQueued: AugmentedEvent< - ApiType, - [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], - { - issuer: PalletFileSystemEitherAccountIdOrMspId; - fileKey: H256; - } - >; - /** - * Notifies that a proof has been submitted for a pending file deletion request. - **/ - ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< - ApiType, - [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], - { - mspId: H256; - user: AccountId32; - fileKey: H256; - bucketId: H256; - proofOfInclusion: bool; - } - >; - /** - * Notifies that a SP has stopped storing a file because its owner has become insolvent. - **/ - SpStopStoringInsolventUser: AugmentedEvent< - ApiType, - [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], - { - spId: H256; - fileKey: H256; - owner: AccountId32; - location: Bytes; - newRoot: H256; - } - >; - /** - * Notifies the expiration of a storage request. - **/ - StorageRequestExpired: AugmentedEvent< - ApiType, - [fileKey: H256], - { - fileKey: H256; - } - >; - /** - * Notifies that a storage request for a file key has been fulfilled. - **/ - StorageRequestFulfilled: AugmentedEvent< - ApiType, - [fileKey: H256], - { - fileKey: H256; - } - >; - /** - * Notifies that a storage request has been revoked by the user who initiated it. - **/ - StorageRequestRevoked: AugmentedEvent< - ApiType, - [fileKey: H256], - { - fileKey: H256; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - messageQueue: { - /** - * Message placed in overweight queue. - **/ - OverweightEnqueued: AugmentedEvent< - ApiType, - [ - id: U8aFixed, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - pageIndex: u32, - messageIndex: u32 - ], - { - id: U8aFixed; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - pageIndex: u32; - messageIndex: u32; - } - >; - /** - * This page was reaped. - **/ - PageReaped: AugmentedEvent< - ApiType, - [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], - { - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - index: u32; - } - >; - /** - * Message is processed. - **/ - Processed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - weightUsed: SpWeightsWeightV2Weight, - success: bool - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - weightUsed: SpWeightsWeightV2Weight; - success: bool; - } - >; - /** - * Message discarded due to an error in the `MessageProcessor` (usually a format error). - **/ - ProcessingFailed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - error: FrameSupportMessagesProcessMessageError - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - error: FrameSupportMessagesProcessMessageError; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - nfts: { - /** - * All approvals of an item got cancelled. - **/ - AllApprovalsCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - } - >; - /** - * An approval for a `delegate` account to transfer the `item` of an item - * `collection` was cancelled by its `owner`. - **/ - ApprovalCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - delegate: AccountId32; - } - >; - /** - * Attribute metadata has been cleared for a `collection` or `item`. - **/ - AttributeCleared: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * New attribute metadata has been set for a `collection` or `item`. - **/ - AttributeSet: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - value: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - value: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * An `item` was destroyed. - **/ - Burned: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - } - >; - /** - * A `collection` has had its config changed by the `Force` origin. - **/ - CollectionConfigChanged: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * Some `collection` was locked. - **/ - CollectionLocked: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * Max supply has been set for a collection. - **/ - CollectionMaxSupplySet: AugmentedEvent< - ApiType, - [collection: u32, maxSupply: u32], - { - collection: u32; - maxSupply: u32; - } - >; - /** - * Metadata has been cleared for a `collection`. - **/ - CollectionMetadataCleared: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * New metadata has been set for a `collection`. - **/ - CollectionMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, data: Bytes], - { - collection: u32; - data: Bytes; - } - >; - /** - * Mint settings for a collection had changed. - **/ - CollectionMintSettingsUpdated: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * A `collection` was created. - **/ - Created: AugmentedEvent< - ApiType, - [collection: u32, creator: AccountId32, owner: AccountId32], - { - collection: u32; - creator: AccountId32; - owner: AccountId32; - } - >; - /** - * A `collection` was destroyed. - **/ - Destroyed: AugmentedEvent< - ApiType, - [collection: u32], - { - collection: u32; - } - >; - /** - * A `collection` was force-created. - **/ - ForceCreated: AugmentedEvent< - ApiType, - [collection: u32, owner: AccountId32], - { - collection: u32; - owner: AccountId32; - } - >; - /** - * An `item` was issued. - **/ - Issued: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { - collection: u32; - item: u32; - owner: AccountId32; - } - >; - /** - * A new approval to modify item attributes was added. - **/ - ItemAttributesApprovalAdded: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { - collection: u32; - item: u32; - delegate: AccountId32; - } - >; - /** - * A new approval to modify item attributes was removed. - **/ - ItemAttributesApprovalRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { - collection: u32; - item: u32; - delegate: AccountId32; - } - >; - /** - * An item was bought. - **/ - ItemBought: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], - { - collection: u32; - item: u32; - price: u128; - seller: AccountId32; - buyer: AccountId32; - } - >; - /** - * Metadata has been cleared for an item. - **/ - ItemMetadataCleared: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * New metadata has been set for an item. - **/ - ItemMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, data: Bytes], - { - collection: u32; - item: u32; - data: Bytes; - } - >; - /** - * The price for the item was removed. - **/ - ItemPriceRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * The price was set for the item. - **/ - ItemPriceSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], - { - collection: u32; - item: u32; - price: u128; - whitelistedBuyer: Option; - } - >; - /** - * `item` metadata or attributes were locked. - **/ - ItemPropertiesLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], - { - collection: u32; - item: u32; - lockMetadata: bool; - lockAttributes: bool; - } - >; - /** - * An `item` became non-transferable. - **/ - ItemTransferLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * An `item` became transferable. - **/ - ItemTransferUnlocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { - collection: u32; - item: u32; - } - >; - /** - * Event gets emitted when the `NextCollectionId` gets incremented. - **/ - NextCollectionIdIncremented: AugmentedEvent< - ApiType, - [nextId: Option], - { - nextId: Option; - } - >; - /** - * The owner changed. - **/ - OwnerChanged: AugmentedEvent< - ApiType, - [collection: u32, newOwner: AccountId32], - { - collection: u32; - newOwner: AccountId32; - } - >; - /** - * Ownership acceptance has changed for an account. - **/ - OwnershipAcceptanceChanged: AugmentedEvent< - ApiType, - [who: AccountId32, maybeCollection: Option], - { - who: AccountId32; - maybeCollection: Option; - } - >; - /** - * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` - * within that `collection`. - **/ - PalletAttributeSet: AugmentedEvent< - ApiType, - [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], - { - collection: u32; - item: Option; - attribute: PalletNftsPalletAttributes; - value: Bytes; - } - >; - /** - * New attributes have been set for an `item` of the `collection`. - **/ - PreSignedAttributesSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], - { - collection: u32; - item: u32; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * The deposit for a set of `item`s within a `collection` has been updated. - **/ - Redeposited: AugmentedEvent< - ApiType, - [collection: u32, successfulItems: Vec], - { - collection: u32; - successfulItems: Vec; - } - >; - /** - * The swap was cancelled. - **/ - SwapCancelled: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The swap has been claimed. - **/ - SwapClaimed: AugmentedEvent< - ApiType, - [ - sentCollection: u32, - sentItem: u32, - sentItemOwner: AccountId32, - receivedCollection: u32, - receivedItem: u32, - receivedItemOwner: AccountId32, - price: Option, - deadline: u32 - ], - { - sentCollection: u32; - sentItem: u32; - sentItemOwner: AccountId32; - receivedCollection: u32; - receivedItem: u32; - receivedItemOwner: AccountId32; - price: Option; - deadline: u32; - } - >; - /** - * An `item` swap intent was created. - **/ - SwapCreated: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The management team changed. - **/ - TeamChanged: AugmentedEvent< - ApiType, - [ - collection: u32, - issuer: Option, - admin: Option, - freezer: Option - ], - { - collection: u32; - issuer: Option; - admin: Option; - freezer: Option; - } - >; - /** - * A tip was sent. - **/ - TipSent: AugmentedEvent< - ApiType, - [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], - { - collection: u32; - item: u32; - sender: AccountId32; - receiver: AccountId32; - amount: u128; - } - >; - /** - * An `item` of a `collection` has been approved by the `owner` for transfer by - * a `delegate`. - **/ - TransferApproved: AugmentedEvent< - ApiType, - [ - collection: u32, - item: u32, - owner: AccountId32, - delegate: AccountId32, - deadline: Option - ], - { - collection: u32; - item: u32; - owner: AccountId32; - delegate: AccountId32; - deadline: Option; - } - >; - /** - * An `item` was transferred. - **/ - Transferred: AugmentedEvent< - ApiType, - [collection: u32, item: u32, from: AccountId32, to: AccountId32], - { - collection: u32; - item: u32; - from: AccountId32; - to: AccountId32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parachainSystem: { - /** - * Downward messages were processed using the given weight. - **/ - DownwardMessagesProcessed: AugmentedEvent< - ApiType, - [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], - { - weightUsed: SpWeightsWeightV2Weight; - dmqHead: H256; - } - >; - /** - * Some downward messages have been received and will be processed. - **/ - DownwardMessagesReceived: AugmentedEvent< - ApiType, - [count: u32], - { - count: u32; - } - >; - /** - * An upward message was sent to the relay chain. - **/ - UpwardMessageSent: AugmentedEvent< - ApiType, - [messageHash: Option], - { - messageHash: Option; - } - >; - /** - * The validation function was applied as of the contained relay chain block number. - **/ - ValidationFunctionApplied: AugmentedEvent< - ApiType, - [relayChainBlockNum: u32], - { - relayChainBlockNum: u32; - } - >; - /** - * The relay-chain aborted the upgrade process. - **/ - ValidationFunctionDiscarded: AugmentedEvent; - /** - * The validation function has been scheduled to apply. - **/ - ValidationFunctionStored: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parameters: { - /** - * A Parameter was set. - * - * Is also emitted when the value was not changed. - **/ - Updated: AugmentedEvent< - ApiType, - [ - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - oldValue: Option, - newValue: Option - ], - { - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - oldValue: Option; - newValue: Option; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - paymentStreams: { - /** - * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream - * and the initial amount provided. - **/ - DynamicRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amountProvided: u64], - { - userAccount: AccountId32; - providerId: H256; - amountProvided: u64; - } - >; - /** - * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - DynamicRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { - userAccount: AccountId32; - providerId: H256; - } - >; - /** - * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new amount provided. - **/ - DynamicRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], - { - userAccount: AccountId32; - providerId: H256; - newAmountProvided: u64; - } - >; - /** - * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream - * and its initial rate. - **/ - FixedRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, rate: u128], - { - userAccount: AccountId32; - providerId: H256; - rate: u128; - } - >; - /** - * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - FixedRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { - userAccount: AccountId32; - providerId: H256; - } - >; - /** - * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new rate of the stream. - **/ - FixedRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newRate: u128], - { - userAccount: AccountId32; - providerId: H256; - newRate: u128; - } - >; - /** - * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, - * the tick number of the last chargeable tick and the price index at that tick. - **/ - LastChargeableInfoUpdated: AugmentedEvent< - ApiType, - [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], - { - providerId: H256; - lastChargeableTick: u32; - lastChargeablePriceIndex: u128; - } - >; - /** - * Event emitted when a payment is charged. Provides information about the user that was charged, - * the Provider that received the funds, and the amount that was charged. - **/ - PaymentStreamCharged: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amount: u128], - { - userAccount: AccountId32; - providerId: H256; - amount: u128; - } - >; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. - **/ - UserPaidDebts: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, - * correctly paid all their outstanding debt and can now contract new services again. - **/ - UserSolvent: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. - * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can - * stop providing services to that user. - **/ - UserWithoutFunds: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - polkadotXcm: { - /** - * Some assets have been claimed from an asset trap - **/ - AssetsClaimed: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { - hash_: H256; - origin: StagingXcmV4Location; - assets: XcmVersionedAssets; - } - >; - /** - * Some assets have been placed in an asset trap. - **/ - AssetsTrapped: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { - hash_: H256; - origin: StagingXcmV4Location; - assets: XcmVersionedAssets; - } - >; - /** - * Execution of an XCM message was attempted. - **/ - Attempted: AugmentedEvent< - ApiType, - [outcome: StagingXcmV4TraitsOutcome], - { - outcome: StagingXcmV4TraitsOutcome; - } - >; - /** - * Fees were paid from a location for an operation (often for using `SendXcm`). - **/ - FeesPaid: AugmentedEvent< - ApiType, - [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], - { - paying: StagingXcmV4Location; - fees: StagingXcmV4AssetAssets; - } - >; - /** - * Expected query response has been received but the querier location of the response does - * not match the expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidQuerier: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedQuerier: StagingXcmV4Location, - maybeActualQuerier: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedQuerier: StagingXcmV4Location; - maybeActualQuerier: Option; - } - >; - /** - * Expected query response has been received but the expected querier location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidQuerierVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { - origin: StagingXcmV4Location; - queryId: u64; - } - >; - /** - * Expected query response has been received but the origin location of the response does - * not match that expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidResponder: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedLocation: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedLocation: Option; - } - >; - /** - * Expected query response has been received but the expected origin location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidResponderVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { - origin: StagingXcmV4Location; - queryId: u64; - } - >; - /** - * Query response has been received and query is removed. The registered notification has - * been dispatched and executed successfully. - **/ - Notified: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - } - >; - /** - * Query response has been received and query is removed. The dispatch was unable to be - * decoded into a `Call`; this might be due to dispatch function having a signature which - * is not `(origin, QueryId, Response)`. - **/ - NotifyDecodeFailed: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - } - >; - /** - * Query response has been received and query is removed. There was a general error with - * dispatching the notification call. - **/ - NotifyDispatchError: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - } - >; - /** - * Query response has been received and query is removed. The registered notification - * could not be dispatched because the dispatch weight is greater than the maximum weight - * originally budgeted by this runtime for the query result. - **/ - NotifyOverweight: AugmentedEvent< - ApiType, - [ - queryId: u64, - palletIndex: u8, - callIndex: u8, - actualWeight: SpWeightsWeightV2Weight, - maxBudgetedWeight: SpWeightsWeightV2Weight - ], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - actualWeight: SpWeightsWeightV2Weight; - maxBudgetedWeight: SpWeightsWeightV2Weight; - } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * migrating the location to our new XCM format. - **/ - NotifyTargetMigrationFail: AugmentedEvent< - ApiType, - [location: XcmVersionedLocation, queryId: u64], - { - location: XcmVersionedLocation; - queryId: u64; - } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * sending the notification to it. - **/ - NotifyTargetSendFail: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], - { - location: StagingXcmV4Location; - queryId: u64; - error: XcmV3TraitsError; - } - >; - /** - * Query response has been received and is ready for taking with `take_response`. There is - * no registered notification call. - **/ - ResponseReady: AugmentedEvent< - ApiType, - [queryId: u64, response: StagingXcmV4Response], - { - queryId: u64; - response: StagingXcmV4Response; - } - >; - /** - * Received query response has been read and removed. - **/ - ResponseTaken: AugmentedEvent< - ApiType, - [queryId: u64], - { - queryId: u64; - } - >; - /** - * A XCM message was sent. - **/ - Sent: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - destination: StagingXcmV4Location, - message: StagingXcmV4Xcm, - messageId: U8aFixed - ], - { - origin: StagingXcmV4Location; - destination: StagingXcmV4Location; - message: StagingXcmV4Xcm; - messageId: U8aFixed; - } - >; - /** - * The supported version of a location has been changed. This might be through an - * automatic notification or a manual intervention. - **/ - SupportedVersionChanged: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, version: u32], - { - location: StagingXcmV4Location; - version: u32; - } - >; - /** - * Query response received which does not match a registered query. This may be because a - * matching query was never registered, it may be because it is a duplicate response, or - * because the query timed out. - **/ - UnexpectedResponse: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { - origin: StagingXcmV4Location; - queryId: u64; - } - >; - /** - * An XCM version change notification message has been attempted to be sent. - * - * The cost of sending it (borne by the chain) is included. - **/ - VersionChangeNotified: AugmentedEvent< - ApiType, - [ - destination: StagingXcmV4Location, - result: u32, - cost: StagingXcmV4AssetAssets, - messageId: U8aFixed - ], - { - destination: StagingXcmV4Location; - result: u32; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * A XCM version migration finished. - **/ - VersionMigrationFinished: AugmentedEvent< - ApiType, - [version: u32], - { - version: u32; - } - >; - /** - * We have requested that a remote chain send us XCM version change notifications. - **/ - VersionNotifyRequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { - destination: StagingXcmV4Location; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * A remote has requested XCM version change notification from us and we have honored it. - * A version information message is sent to them and its cost is included. - **/ - VersionNotifyStarted: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { - destination: StagingXcmV4Location; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * We have requested that a remote chain stops sending us XCM version change - * notifications. - **/ - VersionNotifyUnrequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { - destination: StagingXcmV4Location; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - proofsDealer: { - /** - * The [`ChallengesTicker`] has been paused or unpaused. - **/ - ChallengesTickerSet: AugmentedEvent< - ApiType, - [paused: bool], - { - paused: bool; - } - >; - /** - * A set of mutations has been applied to the Forest. - **/ - MutationsApplied: AugmentedEvent< - ApiType, - [ - provider: H256, - mutations: Vec>, - newRoot: H256 - ], - { - provider: H256; - mutations: Vec>; - newRoot: H256; - } - >; - /** - * A manual challenge was submitted. - **/ - NewChallenge: AugmentedEvent< - ApiType, - [who: AccountId32, keyChallenged: H256], - { - who: AccountId32; - keyChallenged: H256; - } - >; - /** - * A provider's challenge cycle was initialised. - **/ - NewChallengeCycleInitialised: AugmentedEvent< - ApiType, - [ - currentTick: u32, - nextChallengeDeadline: u32, - provider: H256, - maybeProviderAccount: Option - ], - { - currentTick: u32; - nextChallengeDeadline: u32; - provider: H256; - maybeProviderAccount: Option; - } - >; - /** - * A new challenge seed was generated. - **/ - NewChallengeSeed: AugmentedEvent< - ApiType, - [challengesTicker: u32, seed: H256], - { - challengesTicker: u32; - seed: H256; - } - >; - /** - * A new checkpoint challenge was generated. - **/ - NewCheckpointChallenge: AugmentedEvent< - ApiType, - [ - challengesTicker: u32, - challenges: Vec]>> - ], - { - challengesTicker: u32; - challenges: Vec]>>; - } - >; - /** - * No record of the last tick the Provider submitted a proof for. - **/ - NoRecordOfLastSubmittedProof: AugmentedEvent< - ApiType, - [provider: H256], - { - provider: H256; - } - >; - /** - * A proof was accepted. - **/ - ProofAccepted: AugmentedEvent< - ApiType, - [provider: H256, proof: PalletProofsDealerProof], - { - provider: H256; - proof: PalletProofsDealerProof; - } - >; - /** - * A provider was marked as slashable and their challenge deadline was forcefully pushed. - **/ - SlashableProvider: AugmentedEvent< - ApiType, - [provider: H256, nextChallengeDeadline: u32], - { - provider: H256; - nextChallengeDeadline: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - providers: { - /** - * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about - * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. - **/ - BspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, multiaddresses: Vec, capacity: u64], - { - who: AccountId32; - multiaddresses: Vec; - capacity: u64; - } - >; - /** - * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about - * that BSP's account id. - **/ - BspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { - who: AccountId32; - bspId: H256; - } - >; - /** - * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about - * that BSP's account id, the total data it can store according to its stake, and its multiaddress. - **/ - BspSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], - { - who: AccountId32; - bspId: H256; - multiaddresses: Vec; - capacity: u64; - } - >; - /** - * Event emitted when a SP has changed its capacity successfully. Provides information about - * that SP's account id, its old total data that could store, and the new total data. - **/ - CapacityChanged: AugmentedEvent< - ApiType, - [ - who: AccountId32, - providerId: PalletStorageProvidersStorageProviderId, - oldCapacity: u64, - newCapacity: u64, - nextBlockWhenChangeAllowed: u32 - ], - { - who: AccountId32; - providerId: PalletStorageProvidersStorageProviderId; - oldCapacity: u64; - newCapacity: u64; - nextBlockWhenChangeAllowed: u32; - } - >; - /** - * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about - * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. - **/ - MspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a Main Storage Provider has signed off successfully. Provides information about - * that MSP's account id. - **/ - MspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, mspId: H256], - { - who: AccountId32; - mspId: H256; - } - >; - /** - * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about - * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. - **/ - MspSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - mspId: H256; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a sign up request has been canceled successfully. Provides information about - * the account id of the user that canceled the request. - **/ - SignUpRequestCanceled: AugmentedEvent< - ApiType, - [who: AccountId32], - { - who: AccountId32; - } - >; - /** - * Event emitted when an SP has been slashed. - **/ - Slashed: AugmentedEvent< - ApiType, - [providerId: H256, amountSlashed: u128], - { - providerId: H256; - amountSlashed: u128; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - randomness: { - /** - * Event emitted when a new random seed is available from the relay chain - **/ - NewOneEpochAgoRandomnessAvailable: AugmentedEvent< - ApiType, - [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], - { - randomnessSeed: H256; - fromEpoch: u64; - validUntilBlock: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - session: { - /** - * New session has happened. Note that the argument is the session index, not the - * block number as the type might suggest. - **/ - NewSession: AugmentedEvent< - ApiType, - [sessionIndex: u32], - { - sessionIndex: u32; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - sudo: { - /** - * The sudo key has been updated. - **/ - KeyChanged: AugmentedEvent< - ApiType, - [old: Option, new_: AccountId32], - { - old: Option; - new_: AccountId32; - } - >; - /** - * The key was permanently removed. - **/ - KeyRemoved: AugmentedEvent; - /** - * A sudo call just took place. - **/ - Sudid: AugmentedEvent< - ApiType, - [sudoResult: Result], - { - sudoResult: Result; - } - >; - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - **/ - SudoAsDone: AugmentedEvent< - ApiType, - [sudoResult: Result], - { - sudoResult: Result; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - system: { - /** - * `:code` was updated. - **/ - CodeUpdated: AugmentedEvent; - /** - * An extrinsic failed. - **/ - ExtrinsicFailed: AugmentedEvent< - ApiType, - [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], - { - dispatchError: SpRuntimeDispatchError; - dispatchInfo: FrameSupportDispatchDispatchInfo; - } - >; - /** - * An extrinsic completed successfully. - **/ - ExtrinsicSuccess: AugmentedEvent< - ApiType, - [dispatchInfo: FrameSupportDispatchDispatchInfo], - { - dispatchInfo: FrameSupportDispatchDispatchInfo; - } - >; - /** - * An account was reaped. - **/ - KilledAccount: AugmentedEvent< - ApiType, - [account: AccountId32], - { - account: AccountId32; - } - >; - /** - * A new account was created. - **/ - NewAccount: AugmentedEvent< - ApiType, - [account: AccountId32], - { - account: AccountId32; - } - >; - /** - * On on-chain remark happened. - **/ - Remarked: AugmentedEvent< - ApiType, - [sender: AccountId32, hash_: H256], - { - sender: AccountId32; - hash_: H256; - } - >; - /** - * An upgrade was authorized. - **/ - UpgradeAuthorized: AugmentedEvent< - ApiType, - [codeHash: H256, checkVersion: bool], - { - codeHash: H256; - checkVersion: bool; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - transactionPayment: { - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - **/ - TransactionFeePaid: AugmentedEvent< - ApiType, - [who: AccountId32, actualFee: u128, tip: u128], - { - who: AccountId32; - actualFee: u128; - tip: u128; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - xcmpQueue: { - /** - * An HRMP message was sent to a sibling parachain. - **/ - XcmpMessageSent: AugmentedEvent< - ApiType, - [messageHash: U8aFixed], - { - messageHash: U8aFixed; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - } -} +import "@polkadot/api-base/types/events"; +import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; +import type { + Bytes, + Null, + Option, + Result, + U8aFixed, + Vec, + bool, + u128, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + FrameSupportDispatchDispatchInfo, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemMspRespondStorageRequestsResult, + PalletNftsAttributeNamespace, + PalletNftsPalletAttributes, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + ShpTraitsTrieRemoveMutation, + SpRuntimeDispatchError, + SpWeightsWeightV2Weight, + StagingXcmV4AssetAssets, + StagingXcmV4Location, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + XcmV3TraitsError, + XcmVersionedAssets, + XcmVersionedLocation +} from "@polkadot/types/lookup"; +export type __AugmentedEvent = AugmentedEvent; +declare module "@polkadot/api-base/types/events" { + interface AugmentedEvents { + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent< + ApiType, + [who: AccountId32, free: u128], + { + who: AccountId32; + free: u128; + } + >; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent< + ApiType, + [account: AccountId32, amount: u128], + { + account: AccountId32; + amount: u128; + } + >; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent< + ApiType, + [account: AccountId32, freeBalance: u128], + { + account: AccountId32; + freeBalance: u128; + } + >; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent< + ApiType, + [amount: u128], + { + amount: u128; + } + >; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent< + ApiType, + [amount: u128], + { + amount: u128; + } + >; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent< + ApiType, + [ + from: AccountId32, + to: AccountId32, + amount: u128, + destinationStatus: FrameSupportTokensMiscBalanceStatus + ], + { + from: AccountId32; + to: AccountId32; + amount: u128; + destinationStatus: FrameSupportTokensMiscBalanceStatus; + } + >; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent< + ApiType, + [old: u128, new_: u128], + { + old: u128; + new_: u128; + } + >; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent< + ApiType, + [from: AccountId32, to: AccountId32, amount: u128], + { + from: AccountId32; + to: AccountId32; + amount: u128; + } + >; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { + who: AccountId32; + amount: u128; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bucketNfts: { + /** + * Notifies that access to a bucket has been shared with another account. + **/ + AccessShared: AugmentedEvent< + ApiType, + [issuer: AccountId32, recipient: AccountId32], + { + issuer: AccountId32; + recipient: AccountId32; + } + >; + /** + * Notifies that an item has been burned. + **/ + ItemBurned: AugmentedEvent< + ApiType, + [account: AccountId32, bucket: H256, itemId: u32], + { + account: AccountId32; + bucket: H256; + itemId: u32; + } + >; + /** + * Notifies that the read access for an item has been updated. + **/ + ItemReadAccessUpdated: AugmentedEvent< + ApiType, + [admin: AccountId32, bucket: H256, itemId: u32], + { + admin: AccountId32; + bucket: H256; + itemId: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + collatorSelection: { + /** + * A new candidate joined. + **/ + CandidateAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { + accountId: AccountId32; + deposit: u128; + } + >; + /** + * Bond of a candidate updated. + **/ + CandidateBondUpdated: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { + accountId: AccountId32; + deposit: u128; + } + >; + /** + * A candidate was removed. + **/ + CandidateRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * An account was replaced in the candidate list by another one. + **/ + CandidateReplaced: AugmentedEvent< + ApiType, + [old: AccountId32, new_: AccountId32, deposit: u128], + { + old: AccountId32; + new_: AccountId32; + deposit: u128; + } + >; + /** + * An account was unable to be added to the Invulnerables because they did not have keys + * registered. Other Invulnerables may have been set. + **/ + InvalidInvulnerableSkipped: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * A new Invulnerable was added. + **/ + InvulnerableAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * An Invulnerable was removed. + **/ + InvulnerableRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { + accountId: AccountId32; + } + >; + /** + * The candidacy bond was set. + **/ + NewCandidacyBond: AugmentedEvent< + ApiType, + [bondAmount: u128], + { + bondAmount: u128; + } + >; + /** + * The number of desired candidates was set. + **/ + NewDesiredCandidates: AugmentedEvent< + ApiType, + [desiredCandidates: u32], + { + desiredCandidates: u32; + } + >; + /** + * New Invulnerables were set. + **/ + NewInvulnerables: AugmentedEvent< + ApiType, + [invulnerables: Vec], + { + invulnerables: Vec; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + cumulusXcm: { + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ + ExecutedDownward: AugmentedEvent; + /** + * Downward message is invalid XCM. + * \[ id \] + **/ + InvalidFormat: AugmentedEvent; + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ + UnsupportedVersion: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fileSystem: { + /** + * Notifies that a BSP has been accepted to store a given file. + **/ + AcceptedBspVolunteer: AugmentedEvent< + ApiType, + [ + bspId: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + multiaddresses: Vec, + owner: AccountId32, + size_: u64 + ], + { + bspId: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + multiaddresses: Vec; + owner: AccountId32; + size_: u64; + } + >; + /** + * Notifies that a BSP's challenge cycle has been initialised, adding the first file + * key(s) to the BSP's Merkle Patricia Forest. + **/ + BspChallengeCycleInitialised: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { + who: AccountId32; + bspId: H256; + } + >; + /** + * Notifies that a BSP confirmed storing a file(s). + **/ + BspConfirmedStoring: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], + { + who: AccountId32; + bspId: H256; + fileKeys: Vec; + newRoot: H256; + } + >; + /** + * Notifies that a BSP has stopped storing a file. + **/ + BspConfirmStoppedStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, newRoot: H256], + { + bspId: H256; + fileKey: H256; + newRoot: H256; + } + >; + /** + * Notifies that a BSP has opened a request to stop storing a file. + **/ + BspRequestedToStopStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], + { + bspId: H256; + fileKey: H256; + owner: AccountId32; + location: Bytes; + } + >; + /** + * Notifies that a bucket's privacy has been updated. + **/ + BucketPrivacyUpdated: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], + { + who: AccountId32; + bucketId: H256; + collectionId: Option; + private: bool; + } + >; + /** + * Notifies that a data server has been registered for a move bucket request. + **/ + DataServerRegisteredForMoveBucket: AugmentedEvent< + ApiType, + [bspId: H256, bucketId: H256], + { + bspId: H256; + bucketId: H256; + } + >; + /** + * Notifies that a priority challenge failed to be queued for pending file deletion. + **/ + FailedToQueuePriorityChallenge: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256], + { + user: AccountId32; + fileKey: H256; + } + >; + /** + * Notifies that a file will be deleted. + **/ + FileDeletionRequest: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], + { + user: AccountId32; + fileKey: H256; + bucketId: H256; + mspId: H256; + proofOfInclusion: bool; + } + >; + /** + * Notifies that a bucket has been moved to a new MSP. + **/ + MoveBucketAccepted: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { + bucketId: H256; + mspId: H256; + } + >; + /** + * Notifies that a bucket move request has been rejected by the MSP. + **/ + MoveBucketRejected: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { + bucketId: H256; + mspId: H256; + } + >; + /** + * Notifies that a bucket is being moved to a new MSP. + **/ + MoveBucketRequested: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, newMspId: H256], + { + who: AccountId32; + bucketId: H256; + newMspId: H256; + } + >; + /** + * Notifies that a move bucket request has expired. + **/ + MoveBucketRequestExpired: AugmentedEvent< + ApiType, + [mspId: H256, bucketId: H256], + { + mspId: H256; + bucketId: H256; + } + >; + /** + * Notifies that a MSP has responded to storage request(s). + **/ + MspRespondedToStorageRequests: AugmentedEvent< + ApiType, + [results: PalletFileSystemMspRespondStorageRequestsResult], + { + results: PalletFileSystemMspRespondStorageRequestsResult; + } + >; + /** + * Notifies that a new bucket has been created. + **/ + NewBucket: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + bucketId: H256, + name: Bytes, + collectionId: Option, + private: bool + ], + { + who: AccountId32; + mspId: H256; + bucketId: H256; + name: Bytes; + collectionId: Option; + private: bool; + } + >; + /** + * Notifies that a new collection has been created and associated with a bucket. + **/ + NewCollectionAndAssociation: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: u32], + { + who: AccountId32; + bucketId: H256; + collectionId: u32; + } + >; + /** + * Notifies that a new file has been requested to be stored. + **/ + NewStorageRequest: AugmentedEvent< + ApiType, + [ + who: AccountId32, + fileKey: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + size_: u64, + peerIds: Vec + ], + { + who: AccountId32; + fileKey: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + size_: u64; + peerIds: Vec; + } + >; + /** + * Notifies that a file key has been queued for a priority challenge for file deletion. + **/ + PriorityChallengeForFileDeletionQueued: AugmentedEvent< + ApiType, + [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], + { + issuer: PalletFileSystemEitherAccountIdOrMspId; + fileKey: H256; + } + >; + /** + * Notifies that a proof has been submitted for a pending file deletion request. + **/ + ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< + ApiType, + [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], + { + mspId: H256; + user: AccountId32; + fileKey: H256; + bucketId: H256; + proofOfInclusion: bool; + } + >; + /** + * Notifies that a SP has stopped storing a file because its owner has become insolvent. + **/ + SpStopStoringInsolventUser: AugmentedEvent< + ApiType, + [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], + { + spId: H256; + fileKey: H256; + owner: AccountId32; + location: Bytes; + newRoot: H256; + } + >; + /** + * Notifies the expiration of a storage request. + **/ + StorageRequestExpired: AugmentedEvent< + ApiType, + [fileKey: H256], + { + fileKey: H256; + } + >; + /** + * Notifies that a storage request for a file key has been fulfilled. + **/ + StorageRequestFulfilled: AugmentedEvent< + ApiType, + [fileKey: H256], + { + fileKey: H256; + } + >; + /** + * Notifies that a storage request has been revoked by the user who initiated it. + **/ + StorageRequestRevoked: AugmentedEvent< + ApiType, + [fileKey: H256], + { + fileKey: H256; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent< + ApiType, + [ + id: U8aFixed, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + pageIndex: u32, + messageIndex: u32 + ], + { + id: U8aFixed; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + pageIndex: u32; + messageIndex: u32; + } + >; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent< + ApiType, + [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], + { + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + index: u32; + } + >; + /** + * Message is processed. + **/ + Processed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + weightUsed: SpWeightsWeightV2Weight, + success: bool + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + weightUsed: SpWeightsWeightV2Weight; + success: bool; + } + >; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + error: FrameSupportMessagesProcessMessageError + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + error: FrameSupportMessagesProcessMessageError; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + } + >; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + delegate: AccountId32; + } + >; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + value: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + value: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + } + >; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent< + ApiType, + [collection: u32, maxSupply: u32], + { + collection: u32; + maxSupply: u32; + } + >; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, data: Bytes], + { + collection: u32; + data: Bytes; + } + >; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent< + ApiType, + [collection: u32, creator: AccountId32, owner: AccountId32], + { + collection: u32; + creator: AccountId32; + owner: AccountId32; + } + >; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent< + ApiType, + [collection: u32], + { + collection: u32; + } + >; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent< + ApiType, + [collection: u32, owner: AccountId32], + { + collection: u32; + owner: AccountId32; + } + >; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { + collection: u32; + item: u32; + owner: AccountId32; + } + >; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { + collection: u32; + item: u32; + delegate: AccountId32; + } + >; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { + collection: u32; + item: u32; + delegate: AccountId32; + } + >; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], + { + collection: u32; + item: u32; + price: u128; + seller: AccountId32; + buyer: AccountId32; + } + >; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, data: Bytes], + { + collection: u32; + item: u32; + data: Bytes; + } + >; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], + { + collection: u32; + item: u32; + price: u128; + whitelistedBuyer: Option; + } + >; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], + { + collection: u32; + item: u32; + lockMetadata: bool; + lockAttributes: bool; + } + >; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { + collection: u32; + item: u32; + } + >; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent< + ApiType, + [nextId: Option], + { + nextId: Option; + } + >; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent< + ApiType, + [collection: u32, newOwner: AccountId32], + { + collection: u32; + newOwner: AccountId32; + } + >; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent< + ApiType, + [who: AccountId32, maybeCollection: Option], + { + who: AccountId32; + maybeCollection: Option; + } + >; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent< + ApiType, + [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], + { + collection: u32; + item: Option; + attribute: PalletNftsPalletAttributes; + value: Bytes; + } + >; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], + { + collection: u32; + item: u32; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent< + ApiType, + [collection: u32, successfulItems: Vec], + { + collection: u32; + successfulItems: Vec; + } + >; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent< + ApiType, + [ + sentCollection: u32, + sentItem: u32, + sentItemOwner: AccountId32, + receivedCollection: u32, + receivedItem: u32, + receivedItemOwner: AccountId32, + price: Option, + deadline: u32 + ], + { + sentCollection: u32; + sentItem: u32; + sentItemOwner: AccountId32; + receivedCollection: u32; + receivedItem: u32; + receivedItemOwner: AccountId32; + price: Option; + deadline: u32; + } + >; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent< + ApiType, + [ + collection: u32, + issuer: Option, + admin: Option, + freezer: Option + ], + { + collection: u32; + issuer: Option; + admin: Option; + freezer: Option; + } + >; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent< + ApiType, + [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], + { + collection: u32; + item: u32; + sender: AccountId32; + receiver: AccountId32; + amount: u128; + } + >; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent< + ApiType, + [ + collection: u32, + item: u32, + owner: AccountId32, + delegate: AccountId32, + deadline: Option + ], + { + collection: u32; + item: u32; + owner: AccountId32; + delegate: AccountId32; + deadline: Option; + } + >; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent< + ApiType, + [collection: u32, item: u32, from: AccountId32, to: AccountId32], + { + collection: u32; + item: u32; + from: AccountId32; + to: AccountId32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parachainSystem: { + /** + * Downward messages were processed using the given weight. + **/ + DownwardMessagesProcessed: AugmentedEvent< + ApiType, + [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], + { + weightUsed: SpWeightsWeightV2Weight; + dmqHead: H256; + } + >; + /** + * Some downward messages have been received and will be processed. + **/ + DownwardMessagesReceived: AugmentedEvent< + ApiType, + [count: u32], + { + count: u32; + } + >; + /** + * An upward message was sent to the relay chain. + **/ + UpwardMessageSent: AugmentedEvent< + ApiType, + [messageHash: Option], + { + messageHash: Option; + } + >; + /** + * The validation function was applied as of the contained relay chain block number. + **/ + ValidationFunctionApplied: AugmentedEvent< + ApiType, + [relayChainBlockNum: u32], + { + relayChainBlockNum: u32; + } + >; + /** + * The relay-chain aborted the upgrade process. + **/ + ValidationFunctionDiscarded: AugmentedEvent; + /** + * The validation function has been scheduled to apply. + **/ + ValidationFunctionStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent< + ApiType, + [ + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + oldValue: Option, + newValue: Option + ], + { + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + oldValue: Option; + newValue: Option; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paymentStreams: { + /** + * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream + * and the initial amount provided. + **/ + DynamicRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amountProvided: u64], + { + userAccount: AccountId32; + providerId: H256; + amountProvided: u64; + } + >; + /** + * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + DynamicRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { + userAccount: AccountId32; + providerId: H256; + } + >; + /** + * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new amount provided. + **/ + DynamicRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], + { + userAccount: AccountId32; + providerId: H256; + newAmountProvided: u64; + } + >; + /** + * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream + * and its initial rate. + **/ + FixedRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, rate: u128], + { + userAccount: AccountId32; + providerId: H256; + rate: u128; + } + >; + /** + * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + FixedRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { + userAccount: AccountId32; + providerId: H256; + } + >; + /** + * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new rate of the stream. + **/ + FixedRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newRate: u128], + { + userAccount: AccountId32; + providerId: H256; + newRate: u128; + } + >; + /** + * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, + * the tick number of the last chargeable tick and the price index at that tick. + **/ + LastChargeableInfoUpdated: AugmentedEvent< + ApiType, + [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], + { + providerId: H256; + lastChargeableTick: u32; + lastChargeablePriceIndex: u128; + } + >; + /** + * Event emitted when a payment is charged. Provides information about the user that was charged, + * the Provider that received the funds, and the amount that was charged. + **/ + PaymentStreamCharged: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amount: u128], + { + userAccount: AccountId32; + providerId: H256; + amount: u128; + } + >; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. + **/ + UserPaidDebts: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, + * correctly paid all their outstanding debt and can now contract new services again. + **/ + UserSolvent: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. + * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can + * stop providing services to that user. + **/ + UserWithoutFunds: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + polkadotXcm: { + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { + hash_: H256; + origin: StagingXcmV4Location; + assets: XcmVersionedAssets; + } + >; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { + hash_: H256; + origin: StagingXcmV4Location; + assets: XcmVersionedAssets; + } + >; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent< + ApiType, + [outcome: StagingXcmV4TraitsOutcome], + { + outcome: StagingXcmV4TraitsOutcome; + } + >; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent< + ApiType, + [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], + { + paying: StagingXcmV4Location; + fees: StagingXcmV4AssetAssets; + } + >; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedQuerier: StagingXcmV4Location, + maybeActualQuerier: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedQuerier: StagingXcmV4Location; + maybeActualQuerier: Option; + } + >; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { + origin: StagingXcmV4Location; + queryId: u64; + } + >; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedLocation: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedLocation: Option; + } + >; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { + origin: StagingXcmV4Location; + queryId: u64; + } + >; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + } + >; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + } + >; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + } + >; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent< + ApiType, + [ + queryId: u64, + palletIndex: u8, + callIndex: u8, + actualWeight: SpWeightsWeightV2Weight, + maxBudgetedWeight: SpWeightsWeightV2Weight + ], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + actualWeight: SpWeightsWeightV2Weight; + maxBudgetedWeight: SpWeightsWeightV2Weight; + } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent< + ApiType, + [location: XcmVersionedLocation, queryId: u64], + { + location: XcmVersionedLocation; + queryId: u64; + } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], + { + location: StagingXcmV4Location; + queryId: u64; + error: XcmV3TraitsError; + } + >; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent< + ApiType, + [queryId: u64, response: StagingXcmV4Response], + { + queryId: u64; + response: StagingXcmV4Response; + } + >; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent< + ApiType, + [queryId: u64], + { + queryId: u64; + } + >; + /** + * A XCM message was sent. + **/ + Sent: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + destination: StagingXcmV4Location, + message: StagingXcmV4Xcm, + messageId: U8aFixed + ], + { + origin: StagingXcmV4Location; + destination: StagingXcmV4Location; + message: StagingXcmV4Xcm; + messageId: U8aFixed; + } + >; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, version: u32], + { + location: StagingXcmV4Location; + version: u32; + } + >; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { + origin: StagingXcmV4Location; + queryId: u64; + } + >; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent< + ApiType, + [ + destination: StagingXcmV4Location, + result: u32, + cost: StagingXcmV4AssetAssets, + messageId: U8aFixed + ], + { + destination: StagingXcmV4Location; + result: u32; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent< + ApiType, + [version: u32], + { + version: u32; + } + >; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { + destination: StagingXcmV4Location; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { + destination: StagingXcmV4Location; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { + destination: StagingXcmV4Location; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proofsDealer: { + /** + * The [`ChallengesTicker`] has been paused or unpaused. + **/ + ChallengesTickerSet: AugmentedEvent< + ApiType, + [paused: bool], + { + paused: bool; + } + >; + /** + * A set of mutations has been applied to the Forest. + **/ + MutationsApplied: AugmentedEvent< + ApiType, + [ + provider: H256, + mutations: Vec>, + newRoot: H256 + ], + { + provider: H256; + mutations: Vec>; + newRoot: H256; + } + >; + /** + * A manual challenge was submitted. + **/ + NewChallenge: AugmentedEvent< + ApiType, + [who: AccountId32, keyChallenged: H256], + { + who: AccountId32; + keyChallenged: H256; + } + >; + /** + * A provider's challenge cycle was initialised. + **/ + NewChallengeCycleInitialised: AugmentedEvent< + ApiType, + [ + currentTick: u32, + nextChallengeDeadline: u32, + provider: H256, + maybeProviderAccount: Option + ], + { + currentTick: u32; + nextChallengeDeadline: u32; + provider: H256; + maybeProviderAccount: Option; + } + >; + /** + * A new challenge seed was generated. + **/ + NewChallengeSeed: AugmentedEvent< + ApiType, + [challengesTicker: u32, seed: H256], + { + challengesTicker: u32; + seed: H256; + } + >; + /** + * A new checkpoint challenge was generated. + **/ + NewCheckpointChallenge: AugmentedEvent< + ApiType, + [ + challengesTicker: u32, + challenges: Vec]>> + ], + { + challengesTicker: u32; + challenges: Vec]>>; + } + >; + /** + * No record of the last tick the Provider submitted a proof for. + **/ + NoRecordOfLastSubmittedProof: AugmentedEvent< + ApiType, + [provider: H256], + { + provider: H256; + } + >; + /** + * A proof was accepted. + **/ + ProofAccepted: AugmentedEvent< + ApiType, + [provider: H256, proof: PalletProofsDealerProof], + { + provider: H256; + proof: PalletProofsDealerProof; + } + >; + /** + * A provider was marked as slashable and their challenge deadline was forcefully pushed. + **/ + SlashableProvider: AugmentedEvent< + ApiType, + [provider: H256, nextChallengeDeadline: u32], + { + provider: H256; + nextChallengeDeadline: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + providers: { + /** + * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about + * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. + **/ + BspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, multiaddresses: Vec, capacity: u64], + { + who: AccountId32; + multiaddresses: Vec; + capacity: u64; + } + >; + /** + * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about + * that BSP's account id. + **/ + BspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { + who: AccountId32; + bspId: H256; + } + >; + /** + * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about + * that BSP's account id, the total data it can store according to its stake, and its multiaddress. + **/ + BspSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], + { + who: AccountId32; + bspId: H256; + multiaddresses: Vec; + capacity: u64; + } + >; + /** + * Event emitted when a SP has changed its capacity successfully. Provides information about + * that SP's account id, its old total data that could store, and the new total data. + **/ + CapacityChanged: AugmentedEvent< + ApiType, + [ + who: AccountId32, + providerId: PalletStorageProvidersStorageProviderId, + oldCapacity: u64, + newCapacity: u64, + nextBlockWhenChangeAllowed: u32 + ], + { + who: AccountId32; + providerId: PalletStorageProvidersStorageProviderId; + oldCapacity: u64; + newCapacity: u64; + nextBlockWhenChangeAllowed: u32; + } + >; + /** + * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about + * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. + **/ + MspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a Main Storage Provider has signed off successfully. Provides information about + * that MSP's account id. + **/ + MspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, mspId: H256], + { + who: AccountId32; + mspId: H256; + } + >; + /** + * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about + * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. + **/ + MspSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + mspId: H256; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a sign up request has been canceled successfully. Provides information about + * the account id of the user that canceled the request. + **/ + SignUpRequestCanceled: AugmentedEvent< + ApiType, + [who: AccountId32], + { + who: AccountId32; + } + >; + /** + * Event emitted when an SP has been slashed. + **/ + Slashed: AugmentedEvent< + ApiType, + [providerId: H256, amountSlashed: u128], + { + providerId: H256; + amountSlashed: u128; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + randomness: { + /** + * Event emitted when a new random seed is available from the relay chain + **/ + NewOneEpochAgoRandomnessAvailable: AugmentedEvent< + ApiType, + [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], + { + randomnessSeed: H256; + fromEpoch: u64; + validUntilBlock: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent< + ApiType, + [sessionIndex: u32], + { + sessionIndex: u32; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + sudo: { + /** + * The sudo key has been updated. + **/ + KeyChanged: AugmentedEvent< + ApiType, + [old: Option, new_: AccountId32], + { + old: Option; + new_: AccountId32; + } + >; + /** + * The key was permanently removed. + **/ + KeyRemoved: AugmentedEvent; + /** + * A sudo call just took place. + **/ + Sudid: AugmentedEvent< + ApiType, + [sudoResult: Result], + { + sudoResult: Result; + } + >; + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + **/ + SudoAsDone: AugmentedEvent< + ApiType, + [sudoResult: Result], + { + sudoResult: Result; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent< + ApiType, + [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], + { + dispatchError: SpRuntimeDispatchError; + dispatchInfo: FrameSupportDispatchDispatchInfo; + } + >; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent< + ApiType, + [dispatchInfo: FrameSupportDispatchDispatchInfo], + { + dispatchInfo: FrameSupportDispatchDispatchInfo; + } + >; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent< + ApiType, + [account: AccountId32], + { + account: AccountId32; + } + >; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent< + ApiType, + [account: AccountId32], + { + account: AccountId32; + } + >; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent< + ApiType, + [sender: AccountId32, hash_: H256], + { + sender: AccountId32; + hash_: H256; + } + >; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent< + ApiType, + [codeHash: H256, checkVersion: bool], + { + codeHash: H256; + checkVersion: bool; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent< + ApiType, + [who: AccountId32, actualFee: u128, tip: u128], + { + who: AccountId32; + actualFee: u128; + tip: u128; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmpQueue: { + /** + * An HRMP message was sent to a sibling parachain. + **/ + XcmpMessageSent: AugmentedEvent< + ApiType, + [messageHash: U8aFixed], + { + messageHash: U8aFixed; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-query.d.ts b/api-augment/dist/types/interfaces/augment-api-query.d.ts index 37f9065e1..d2450f141 100644 --- a/api-augment/dist/types/interfaces/augment-api-query.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-query.d.ts @@ -1,2027 +1,2024 @@ -import "@polkadot/api-base/types/storage"; -import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from "@polkadot/api-base/types"; -import type { - BTreeMap, - BTreeSet, - Bytes, - Null, - Option, - Struct, - Vec, - bool, - u128, - u16, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { AnyNumber, ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, - CumulusPalletParachainSystemUnincludedSegmentAncestor, - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, - CumulusPalletXcmpQueueOutboundChannelDetails, - CumulusPalletXcmpQueueQueueConfigData, - CumulusPrimitivesCoreAggregateMessageOrigin, - FrameSupportDispatchPerDispatchClassWeight, - FrameSystemAccountInfo, - FrameSystemCodeUpgradeAuthorization, - FrameSystemEventRecord, - FrameSystemLastRuntimeUpgradeInfo, - FrameSystemPhase, - PalletBalancesAccountData, - PalletBalancesBalanceLock, - PalletBalancesIdAmount, - PalletBalancesReserveData, - PalletCollatorSelectionCandidateInfo, - PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemStorageRequestBspsMetadata, - PalletFileSystemStorageRequestMetadata, - PalletMessageQueueBookState, - PalletMessageQueuePage, - PalletNftsAttributeDeposit, - PalletNftsAttributeNamespace, - PalletNftsCollectionConfig, - PalletNftsCollectionDetails, - PalletNftsCollectionMetadata, - PalletNftsItemConfig, - PalletNftsItemDetails, - PalletNftsItemMetadata, - PalletNftsPendingSwap, - PalletPaymentStreamsDynamicRatePaymentStream, - PalletPaymentStreamsFixedRatePaymentStream, - PalletPaymentStreamsProviderLastChargeableInfo, - PalletStorageProvidersBackupStorageProvider, - PalletStorageProvidersBucket, - PalletStorageProvidersMainStorageProvider, - PalletStorageProvidersStorageProvider, - PalletTransactionPaymentReleases, - PalletXcmQueryStatus, - PalletXcmRemoteLockedFungibleRecord, - PalletXcmVersionMigrationStage, - PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV7AbridgedHostConfiguration, - PolkadotPrimitivesV7PersistedValidationData, - PolkadotPrimitivesV7UpgradeGoAhead, - PolkadotPrimitivesV7UpgradeRestriction, - ShpTraitsTrieRemoveMutation, - SpConsensusAuraSr25519AppSr25519Public, - SpCoreCryptoKeyTypeId, - SpRuntimeDigest, - SpTrieStorageProof, - SpWeightsWeightV2Weight, -<<<<<<< HEAD - StagingXcmV4Instruction, -======= - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, ->>>>>>> main - StorageHubRuntimeRuntimeHoldReason, - StorageHubRuntimeSessionKeys, - XcmVersionedAssetId, - XcmVersionedLocation -} from "@polkadot/types/lookup"; -import type { Observable } from "@polkadot/types/types"; -export type __AugmentedQuery = AugmentedQuery unknown>; -export type __QueryableStorageEntry = QueryableStorageEntry; -declare module "@polkadot/api-base/types/storage" { - interface AugmentedQueries { - aura: { - /** - * The current authority set. - **/ - authorities: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The current slot of this block. - * - * This will be set in `on_initialize`. - **/ - currentSlot: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - auraExt: { - /** - * Serves as cache for the authorities. - * - * The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session, - * but we require the old authorities to verify the seal when validating a PoV. This will - * always be updated to the latest AuRa authorities in `on_finalize`. - **/ - authorities: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Current slot paired with a number of authored blocks. - * - * Updated on each block initialization. - **/ - slotInfo: AugmentedQuery Observable>>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - authorship: { - /** - * Author of current block. - **/ - author: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - balances: { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - **/ - account: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Freeze locks on account balances. - **/ - freezes: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Holds on account balances. - **/ - holds: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable< - Vec< - { - readonly id: StorageHubRuntimeRuntimeHoldReason; - readonly amount: u128; - } & Struct - > - >, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The total units of outstanding deactivated balance in the system. - **/ - inactiveIssuance: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - * - * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - locks: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Named reserves on some account balances. - * - * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - reserves: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The total units issued in the system. - **/ - totalIssuance: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - collatorSelection: { - /** - * Fixed amount to deposit to become a collator. - * - * When a collator calls `leave_intent` they immediately receive the deposit back. - **/ - candidacyBond: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be - * mutually exclusive. - * - * This list is sorted in ascending order by deposit and when the deposits are equal, the least - * recently updated is considered greater. - **/ - candidateList: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Desired number of candidates. - * - * This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct. - **/ - desiredCandidates: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The invulnerable, permissioned collators. This list must be sorted. - **/ - invulnerables: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Last block authored by collator. - **/ - lastAuthoredBlock: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - fileSystem: { - /** - * Bookkeeping of the buckets containing open storage requests. - **/ - bucketsWithStorageRequests: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * BSP data servers for move bucket requests. - **/ - dataServersForMoveBucket: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * A map of blocks to expired file deletion requests. - **/ - fileDeletionRequestExpirations: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>>, - [u32] - > & - QueryableStorageEntry; - /** - * A map of blocks to expired move bucket requests. - **/ - moveBucketRequestExpirations: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>>, - [u32] - > & - QueryableStorageEntry; - /** - * A pointer to the earliest available block to insert a new file deletion request expiration. - * - * This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. - **/ - nextAvailableFileDeletionRequestExpirationBlock: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * A pointer to the earliest available block to insert a new move bucket request expiration. - * - * This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. - **/ - nextAvailableMoveBucketRequestExpirationBlock: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * A pointer to the earliest available block to insert a new storage request expiration. - * - * This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. - **/ - nextAvailableStorageRequestExpirationBlock: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * A pointer to the starting block to clean up expired storage requests. - * - * If this block is behind the current block number, the cleanup algorithm in `on_idle` will - * attempt to accelerate this block pointer as close to or up to the current block number. This - * will execute provided that there is enough remaining weight to do so. - **/ - nextStartingBlockToCleanUp: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Bookkeeping of buckets that are pending to be moved to a new MSP. - **/ - pendingBucketsToMove: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable, - [H256] - > & - QueryableStorageEntry; - /** - * Pending file deletion requests. - * - * A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. - **/ - pendingFileDeletionRequests: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Pending move bucket requests. - * - * A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. - * The value is the user who requested the move. - **/ - pendingMoveBucketRequests: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * Pending file stop storing requests. - * - * A double mapping from BSP IDs to a list of file keys pending stop storing requests to the block in which those requests were opened - * and the proven size of the file. - * The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges - * of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. - **/ - pendingStopStoringRequests: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * Number of BSPs required to fulfill a storage request - * - * This is also used as a default value if the BSPs required are not specified when creating a storage request. - **/ - replicationTarget: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A double map from storage request to BSP `AccountId`s that volunteered to store the file. - * - * Any BSP under a storage request prefix is considered to be a volunteer and can be removed at any time. - * Once a BSP submits a valid proof to the via the `bsp_confirm_storing` extrinsic, the `confirmed` field in [`StorageRequestBspsMetadata`] will be set to `true`. - * - * When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. - **/ - storageRequestBsps: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * A map of blocks to expired storage requests. - **/ - storageRequestExpirations: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - storageRequests: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * Number of ticks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. - **/ - tickRangeToMaximumThreshold: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - messageQueue: { - /** - * The index of the first and last (non-empty) pages. - **/ - bookStateFor: AugmentedQuery< - ApiType, - ( - arg: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { - Here: any; - } - | { - Parent: any; - } - | { - Sibling: any; - } - | string - | Uint8Array - ) => Observable, - [CumulusPrimitivesCoreAggregateMessageOrigin] - > & - QueryableStorageEntry; - /** - * The map of page indices to pages. - **/ - pages: AugmentedQuery< - ApiType, - ( - arg1: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { - Here: any; - } - | { - Parent: any; - } - | { - Sibling: any; - } - | string - | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32] - > & - QueryableStorageEntry; - /** - * The origin at which we should begin servicing. - **/ - serviceHead: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - nfts: { - /** - * The items held by any given account; set out this way so that items owned by a single - * account can be enumerated. - **/ - account: AugmentedQuery< - ApiType, - ( - arg1: AccountId32 | string | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array, - arg3: u32 | AnyNumber | Uint8Array - ) => Observable>, - [AccountId32, u32, u32] - > & - QueryableStorageEntry; - /** - * Attributes of a collection. - **/ - attribute: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: Option | null | Uint8Array | u32 | AnyNumber, - arg3: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - arg4: Bytes | string | Uint8Array - ) => Observable>>, - [u32, Option, PalletNftsAttributeNamespace, Bytes] - > & - QueryableStorageEntry, PalletNftsAttributeNamespace, Bytes]>; - /** - * Details of a collection. - **/ - collection: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * The collections owned by any given account; set out this way so that collections owned by - * a single account can be enumerated. - **/ - collectionAccount: AugmentedQuery< - ApiType, - ( - arg1: AccountId32 | string | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [AccountId32, u32] - > & - QueryableStorageEntry; - /** - * Config of a collection. - **/ - collectionConfigOf: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * Metadata of a collection. - **/ - collectionMetadataOf: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * The items in existence and their ownership details. - * Stores collection roles as per account. - **/ - collectionRoleOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: AccountId32 | string | Uint8Array - ) => Observable>, - [u32, AccountId32] - > & - QueryableStorageEntry; - /** - * The items in existence and their ownership details. - **/ - item: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Item attribute approvals. - **/ - itemAttributesApprovalsOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Config of an item. - **/ - itemConfigOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Metadata of an item. - **/ - itemMetadataOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * A price of an item. - **/ - itemPriceOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable]>>>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Stores the `CollectionId` that is going to be used for the next collection. - * This gets incremented whenever a new collection is created. - **/ - nextCollectionId: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The collection, if any, of which an account is willing to take ownership. - **/ - ownershipAcceptance: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Handles all the pending swaps. - **/ - pendingSwapOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - parachainInfo: { - parachainId: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - parachainSystem: { - /** - * Storage field that keeps track of bandwidth used by the unincluded segment along with the - * latest HRMP watermark. Used for limiting the acceptance of new blocks with - * respect to relay chain constraints. - **/ - aggregatedUnincludedSegment: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The number of HRMP messages we observed in `on_initialize` and thus used that number for - * announcing the weight of `on_initialize` and `on_finalize`. - **/ - announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A custom head data that should be returned as result of `validate_block`. - * - * See `Pallet::set_custom_validation_head_data` for more information. - **/ - customValidationHeadData: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Were the validation data set to notify the relay chain? - **/ - didSetValidationCode: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The parachain host configuration that was obtained from the relay parent. - * - * This field is meant to be updated each block with the validation data inherent. Therefore, - * before processing of the inherent, e.g. in `on_initialize` this data may be stale. - * - * This data is also absent from the genesis. - **/ - hostConfiguration: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * HRMP messages that were sent in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - hrmpOutboundMessages: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * HRMP watermark that was set in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - hrmpWatermark: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The last downward message queue chain head we have observed. - * - * This value is loaded before and saved after processing inbound downward messages carried - * by the system inherent. - **/ - lastDmqMqcHead: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The message queue chain heads we have observed per each channel incoming channel. - * - * This value is loaded before and saved after processing inbound downward messages carried - * by the system inherent. - **/ - lastHrmpMqcHeads: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The relay chain block number associated with the last parachain block. - * - * This is updated in `on_finalize`. - **/ - lastRelayChainBlockNumber: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Validation code that is set by the parachain and is to be communicated to collator and - * consequently the relay-chain. - * - * This will be cleared in `on_initialize` of each new block if no other pallet already set - * the value. - **/ - newValidationCode: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Upward messages that are still pending and not yet send to the relay chain. - **/ - pendingUpwardMessages: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * In case of a scheduled upgrade, this storage field contains the validation code to be - * applied. - * - * As soon as the relay chain gives us the go-ahead signal, we will overwrite the - * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process - * with the new validation code. This concludes the upgrade process. - **/ - pendingValidationCode: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Number of downward messages processed in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - processedDownwardMessages: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The state proof for the last relay parent block. - * - * This field is meant to be updated each block with the validation data inherent. Therefore, - * before processing of the inherent, e.g. in `on_initialize` this data may be stale. - * - * This data is also absent from the genesis. - **/ - relayStateProof: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The snapshot of some state related to messaging relevant to the current parachain as per - * the relay parent. - * - * This field is meant to be updated each block with the validation data inherent. Therefore, - * before processing of the inherent, e.g. in `on_initialize` this data may be stale. - * - * This data is also absent from the genesis. - **/ - relevantMessagingState: AugmentedQuery< - ApiType, - () => Observable< - Option - >, - [] - > & - QueryableStorageEntry; - /** - * The weight we reserve at the beginning of the block for processing DMP messages. This - * overrides the amount set in the Config trait. - **/ - reservedDmpWeightOverride: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The weight we reserve at the beginning of the block for processing XCMP messages. This - * overrides the amount set in the Config trait. - **/ - reservedXcmpWeightOverride: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Latest included block descendants the runtime accepted. In other words, these are - * ancestors of the currently executing block which have not been included in the observed - * relay-chain state. - * - * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured - * in the pallet. - **/ - unincludedSegment: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Optional upgrade go-ahead signal from the relay-chain. - * - * This storage item is a mirror of the corresponding value for the current parachain from the - * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is - * set after the inherent. - **/ - upgradeGoAhead: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * An option which indicates if the relay-chain restricts signalling a validation code upgrade. - * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced - * candidate will be invalid. - * - * This storage item is a mirror of the corresponding value for the current parachain from the - * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is - * set after the inherent. - **/ - upgradeRestrictionSignal: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The factor to multiply the base delivery fee by for UMP. - **/ - upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Upward messages that were sent in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - upwardMessages: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The [`PersistedValidationData`] set for this block. - * This value is expected to be set only once per block and it's never stored - * in the trie. - **/ - validationData: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - parameters: { - /** - * Stored parameters. - **/ - parameters: AugmentedQuery< - ApiType, - ( - arg: - | StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey - | { - RuntimeConfig: any; - } - | string - | Uint8Array - ) => Observable>, - [StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - paymentStreams: { - /** - * The accumulated price index since genesis, used to calculate the amount to charge for dynamic-rate payment streams. - * - * This is equivalent to what it would have cost to store one unit of the provided service since the beginning of the network. - * We use this to calculate the amount to charge for dynamic-rate payment streams, by checking out the difference between the index - * when the payment stream was last charged, and the index at the last chargeable tick. - * - * This storage is updated in: - * - [do_update_price_index](crate::utils::do_update_price_index), which updates the accumulated price index, adding to it the current price. - **/ - accumulatedPriceIndex: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The current price per unit per tick of the provided service, used to calculate the amount to charge for dynamic-rate payment streams. - * - * This is updated each tick using the formula that considers current system capacity (total storage of the system) and system availability (total storage available). - * - * This storage is updated in: - * - [do_update_current_price_per_unit_per_tick](crate::utils::do_update_current_price_per_unit_per_tick), which updates the current price per unit per tick. - **/ - currentPricePerUnitPerTick: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The double mapping from a Provider, to its provided Users, to their dynamic-rate payment streams. - * - * This is used to store and manage dynamic-rate payment streams between Users and Providers. - * - * This storage is updated in: - * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which adds a new entry to the map. - * - [delete_dynamic_rate_payment_stream](crate::dispatchables::delete_dynamic_rate_payment_stream), which removes the corresponding entry from the map. - * - [update_dynamic_rate_payment_stream](crate::dispatchables::update_dynamic_rate_payment_stream), which updates the entry's `amount_provided`. - * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `price_index_when_last_charged`. - **/ - dynamicRatePaymentStreams: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: AccountId32 | string | Uint8Array - ) => Observable>, - [H256, AccountId32] - > & - QueryableStorageEntry; - /** - * The double mapping from a Provider, to its provided Users, to their fixed-rate payment streams. - * - * This is used to store and manage fixed-rate payment streams between Users and Providers. - * - * This storage is updated in: - * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which adds a new entry to the map. - * - [delete_fixed_rate_payment_stream](crate::dispatchables::delete_fixed_rate_payment_stream), which removes the corresponding entry from the map. - * - [update_fixed_rate_payment_stream](crate::dispatchables::update_fixed_rate_payment_stream), which updates the entry's `rate`. - * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `last_charged_tick`. - **/ - fixedRatePaymentStreams: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: AccountId32 | string | Uint8Array - ) => Observable>, - [H256, AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from a Provider to its last chargeable price index (for dynamic-rate payment streams) and last chargeable tick (for fixed-rate payment streams). - * - * This is used to keep track of the last chargeable price index and tick number for each Provider, so this pallet can charge the payment streams correctly. - * - * This storage is updated in: - * - [update_last_chargeable_info](crate::PaymentManager::update_last_chargeable_info), which updates the entry's `last_chargeable_tick` and `price_index`. - **/ - lastChargeableInfo: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable, - [H256] - > & - QueryableStorageEntry; - /** - * A counter of blocks for which Providers can charge their streams. - * - * This counter is not necessarily the same as the block number, as the last chargeable info of Providers - * (and the global price index) are updated in the `on_poll` hook, which happens at the beginning of every block, - * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). - * During MBMs, the block number increases, but `OnPollTicker` does not. - **/ - onPollTicker: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from a user to if it has been registered to the network and the amount of payment streams it has. - * - * Since users have to provide a deposit to be able to open each payment stream, this is used to keep track of the amount of payment streams - * that a user has and it is also useful to check if a user has registered to the network. - * - * This storage is updated in: - * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which holds the deposit of the user and adds one to this storage. - * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which holds the deposit of the user and adds one to this storage. - * - [remove_fixed_rate_payment_stream](crate::dispatchables::remove_fixed_rate_payment_stream), which removes one from this storage and releases the deposit. - * - [remove_dynamic_rate_payment_stream](crate::dispatchables::remove_dynamic_rate_payment_stream), which removes one from this storage and releases the deposit. - **/ - registeredUsers: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from a user to if it has been flagged for not having enough funds to pay for its requested services. - * - * This is used to flag users that do not have enough funds to pay for their requested services, so other Providers - * can stop providing services to them. - * - * This storage is updated in: - * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which emits a `UserWithoutFunds` event and sets the user's entry in this map if it does not - * have enough funds, and clears the entry if it was set and the user has enough funds. - **/ - usersWithoutFunds: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - polkadotXcm: { - /** - * The existing asset traps. - * - * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of - * times this pair has been trapped (usually just 1 if it exists at all). - **/ - assetTraps: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable, - [H256] - > & - QueryableStorageEntry; - /** - * The current migration's stage, if any. - **/ - currentMigration: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Fungible assets which we know are locked on this chain. - **/ - lockedFungibles: AugmentedQuery< - ApiType, - ( - arg: AccountId32 | string | Uint8Array - ) => Observable>>>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The ongoing queries. - **/ - queries: AugmentedQuery< - ApiType, - (arg: u64 | AnyNumber | Uint8Array) => Observable>, - [u64] - > & - QueryableStorageEntry; - /** - * The latest available query index. - **/ - queryCounter: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally - * will be stored here. - * Runtime APIs can fetch the XCM that was executed by accessing this value. - * - * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] - * implementation in the XCM executor configuration. - **/ - recordedXcm: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * Fungible assets which we know are locked on a remote chain. - **/ - remoteLockedFungibles: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: AccountId32 | string | Uint8Array, - arg3: - | XcmVersionedAssetId - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable>, - [u32, AccountId32, XcmVersionedAssetId] - > & - QueryableStorageEntry; - /** - * Default version to encode XCM when latest version of destination is unknown. If `None`, - * then the destinations whose XCM version is unknown are considered unreachable. - **/ - safeXcmVersion: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Whether or not incoming XCMs (both executed locally and received) should be recorded. - * Only one XCM program will be recorded at a time. - * This is meant to be used in runtime APIs, and it's advised it stays false - * for all other use cases, so as to not degrade regular performance. - * - * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] - * implementation in the XCM executor configuration. - **/ - shouldRecordXcm: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The Latest versions that we know various locations support. - **/ - supportedVersion: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable>, - [u32, XcmVersionedLocation] - > & - QueryableStorageEntry; - /** - * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and - * the `u32` counter is the number of times that a send to the destination has been attempted, - * which is used as a prioritization. - **/ - versionDiscoveryQueue: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * All locations that we have requested version notifications from. - **/ - versionNotifiers: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable>, - [u32, XcmVersionedLocation] - > & - QueryableStorageEntry; - /** - * The target locations that are subscribed to our version changes, as well as the most recent - * of our versions we informed them of. - **/ - versionNotifyTargets: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable>>, - [u32, XcmVersionedLocation] - > & - QueryableStorageEntry; - /** - * Global suspension state of the XCM executor. - **/ - xcmExecutionSuspended: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - proofsDealer: { - /** - * A queue of keys that have been challenged manually. - * - * The elements in this queue will be challenged in the coming blocks, - * always ensuring that the maximum number of challenges per block is not exceeded. - * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait - * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. - **/ - challengesQueue: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * A counter of blocks in which challenges were distributed. - * - * This counter is not necessarily the same as the block number, as challenges are - * distributed in the `on_poll` hook, which happens at the beginning of every block, - * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). - * During MBMsm, the block number increases, but [`ChallengesTicker`] does not. - **/ - challengesTicker: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A boolean that represents whether the [`ChallengesTicker`] is paused. - * - * By default, this is `false`, meaning that the [`ChallengesTicker`] is incremented every time `on_poll` is called. - * This can be set to `true` which would pause the [`ChallengesTicker`], preventing `do_new_challenges_round` from - * being executed. Therefore: - * - No new random challenges would be emitted and added to [`TickToChallengesSeed`]. - * - No new checkpoint challenges would be emitted and added to [`TickToCheckpointChallenges`]. - * - Deadlines for proof submissions are indefinitely postponed. - **/ - challengesTickerPaused: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The challenge tick of the last checkpoint challenge round. - * - * This is used to determine when to include the challenges from the [`ChallengesQueue`] and - * [`PriorityChallengesQueue`] in the [`TickToCheckpointChallenges`] StorageMap. These checkpoint - * challenge rounds have to be answered by ALL Providers, and this is enforced by the - * `submit_proof` extrinsic. - **/ - lastCheckpointTick: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A value that represents the last tick that was deleted from the [`ValidProofSubmittersLastTicks`] StorageMap. - * - * This is used to know which tick to delete from the [`ValidProofSubmittersLastTicks`] StorageMap when the - * `on_idle` hook is called. - **/ - lastDeletedTick: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A mapping from a Provider to the last tick for which they SHOULD have submitted a proof. - * If for a Provider `p`, `LastTickProviderSubmittedAProofFor[p]` is `n`, then the - * Provider should submit a proof for tick `n + stake_to_challenge_period(p)`. - * - * This gets updated when a Provider submits a proof successfully and is used to determine the - * next tick for which the Provider should submit a proof, and it's deadline. - * - * If the Provider fails to submit a proof in time and is slashed, this will still get updated - * to the tick it should have submitted a proof for. - **/ - lastTickProviderSubmittedAProofFor: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The number of blocks that have been considered _not_ full in the last [`Config::BlockFullnessPeriod`]. - * - * This is used to check if the network is presumably under a spam attack. - **/ - notFullBlocksCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A mapping from block number to the weight used in that block. - * - * This is used to check if the network is presumably under a spam attack. - * It is cleared for blocks older than `current_block` - ([`Config::BlockFullnessPeriod`] + 1). - **/ - pastBlocksWeight: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * A priority queue of keys that have been challenged manually. - * - * The difference between this and `ChallengesQueue` is that the challenges - * in this queue are given priority over the others. So this queue should be - * emptied before any of the challenges in the `ChallengesQueue` are dispatched. - * This queue should not be accessible to the public. - * The elements in this queue will be challenged in the coming blocks, - * always ensuring that the maximum number of challenges per block is not exceeded. - * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait - * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. - **/ - priorityChallengesQueue: AugmentedQuery< - ApiType, - () => Observable]>>>, - [] - > & - QueryableStorageEntry; - slashableProviders: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * A mapping from challenges tick to a random seed used for generating the challenges in that tick. - * - * This is used to keep track of the challenges' seed in the past. - * This mapping goes back only [`ChallengeHistoryLengthFor`] blocks. Previous challenges are removed. - **/ - tickToChallengesSeed: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * A mapping from challenges tick to a vector of custom challenged keys for that tick. - * - * This is used to keep track of the challenges that have been made in the past, specifically - * in the checkpoint challenge rounds. - * The vector is bounded by [`MaxCustomChallengesPerBlockFor`]. - * This mapping goes back only [`ChallengeHistoryLengthFor`] ticks. Previous challenges are removed. - **/ - tickToCheckpointChallenges: AugmentedQuery< - ApiType, - ( - arg: u32 | AnyNumber | Uint8Array - ) => Observable]>>>>, - [u32] - > & - QueryableStorageEntry; - /** - * A mapping from challenge tick to a vector of challenged Providers for that tick. - * - * This is used to keep track of the Providers that have been challenged, and should - * submit a proof by the time of the [`ChallengesTicker`] reaches the number used as - * key in the mapping. Providers who do submit a proof are removed from their respective - * entry and pushed forward to the next tick in which they should submit a proof. - * Those who are still in the entry by the time the tick is reached are considered to - * have failed to submit a proof and subject to slashing. - **/ - tickToProvidersDeadlines: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [u32, H256] - > & - QueryableStorageEntry; - /** - * A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. - * - * This is used to keep track of the Providers that have submitted proofs in the last few - * ticks, where availability only up to the last [`Config::TargetTicksStorageOfSubmitters`] ticks is guaranteed. - * This storage is then made available for other pallets to use through the `ProofSubmittersInterface`. - **/ - validProofSubmittersLastTicks: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>>, - [u32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - providers: { - /** - * The mapping from an AccountId to a BackupStorageProviderId. - * - * This is used to get a Backup Storage Provider's unique identifier needed to access its metadata. - * - * This storage is updated in: - * - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. - **/ - accountIdToBackupStorageProviderId: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from an AccountId to a MainStorageProviderId. - * - * This is used to get a Main Storage Provider's unique identifier needed to access its metadata. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. - * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. - **/ - accountIdToMainStorageProviderId: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from a BackupStorageProviderId to a BackupStorageProvider. - * - * This is used to get a Backup Storage Provider's metadata. - * It returns `None` if the Backup Storage Provider ID does not correspond to any registered Backup Storage Provider. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. - * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. - **/ - backupStorageProviders: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The amount of Backup Storage Providers that are currently registered in the runtime. - * - * This is used to keep track of the total amount of BSPs in the system. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts one from this storage. - **/ - bspCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from a BucketId to that bucket's metadata. - * - * This is used to get a bucket's metadata, such as root, user ID, and MSP ID. - * It returns `None` if the Bucket ID does not correspond to any registered bucket. - * - * This storage is updated in: - * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket), which adds a new entry to the map. - * - [change_root_bucket](shp_traits::MutateProvidersInterface::change_root_bucket), which changes the corresponding bucket's root. - * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket), which removes the entry of the corresponding bucket. - **/ - buckets: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The total global reputation weight of all BSPs. - **/ - globalBspsReputationWeight: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from a MainStorageProviderId to a vector of BucketIds. - * - * This is used to efficiently retrieve the list of buckets that a Main Storage Provider is currently storing. - * - * This storage is updated in: - * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket) - * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket) - **/ - mainStorageProviderIdsToBuckets: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>>, - [H256] - > & - QueryableStorageEntry; - /** - * The mapping from a MainStorageProviderId to a MainStorageProvider. - * - * This is used to get a Main Storage Provider's metadata. - * It returns `None` if the Main Storage Provider ID does not correspond to any registered Main Storage Provider. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. - * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. - * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. - * - [add_value_prop](crate::dispatchables::add_value_prop), which appends a new value proposition to the entry's existing `value_prop` bounded vector. - **/ - mainStorageProviders: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The amount of Main Storage Providers that are currently registered in the runtime. - * - * This is used to keep track of the total amount of MSPs in the system. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Main Storage Provider. - * - [msp_sign_off](crate::dispatchables::msp_sign_off), which subtracts one from this storage. - **/ - mspCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from an AccountId that requested to sign up to a tuple of the metadata with type of the request, and the block - * number when the request was made. - * - * This is used for the two-step process of registering: when a user requests to register as a SP (either MSP or BSP), - * that request with the metadata and the deposit held is stored here. When the user confirms the sign up, the - * request is removed from this storage and the user is registered as a SP. - * - * This storage is updated in: - * - [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) and [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up), which add a new entry to the map. - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up) and [cancel_sign_up](crate::dispatchables::cancel_sign_up), which remove an existing entry from the map. - **/ - signUpRequests: AugmentedQuery< - ApiType, - ( - arg: AccountId32 | string | Uint8Array - ) => Observable>>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The total amount of storage capacity all BSPs have. - * - * This is used to keep track of the total amount of storage capacity all BSPs have in the system, which is also the - * total amount of storage capacity that can be used by users if we factor in the replication factor. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds the capacity of the registered Storage Provider to this storage if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts the capacity of the Backup Storage Provider to sign off from this storage. - **/ - totalBspsCapacity: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The total amount of storage capacity of BSPs that is currently in use. - * - * This is used to keep track of the total amount of storage capacity that is currently in use by users, which is useful for - * system metrics and also to calculate the current price of storage. - **/ - usedBspsCapacity: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - randomness: { - /** - * Ensures the mandatory inherent was included in the block - **/ - inherentIncluded: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Latest random seed obtained from the one epoch ago randomness from BABE, and the latest block that it can process randomness requests from - **/ - latestOneEpochAgoRandomness: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * Latest random seed obtained from the parent block randomness from BABE, and the latest block that it can process randomness requests from - **/ - latestParentBlockRandomness: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * Current relay epoch - **/ - relayEpoch: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - session: { - /** - * Current index of the session. - **/ - currentIndex: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Indices of disabled validators. - * - * The vec is always kept sorted so that we can find whether a given validator is - * disabled using binary search. It gets cleared when `on_session_ending` returns - * a new set of identities. - **/ - disabledValidators: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The owner of a key. The key is the `KeyTypeId` + the encoded key. - **/ - keyOwner: AugmentedQuery< - ApiType, - ( - arg: - | ITuple<[SpCoreCryptoKeyTypeId, Bytes]> - | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array] - ) => Observable>, - [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>] - > & - QueryableStorageEntry]>; - /** - * The next session keys for a validator. - **/ - nextKeys: AugmentedQuery< - ApiType, - ( - arg: AccountId32 | string | Uint8Array - ) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * True if the underlying economic identities or weighting behind the validators - * has changed in the queued validator set. - **/ - queuedChanged: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The queued keys for the next session. When the next session begins, these keys - * will be used to determine the validator's session keys. - **/ - queuedKeys: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * The current set of validators. - **/ - validators: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - sudo: { - /** - * The `AccountId` of the sudo key. - **/ - key: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - system: { - /** - * The full account information for a particular account ID. - **/ - account: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - **/ - allExtrinsicsLen: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * `Some` if a code upgrade has been authorized. - **/ - authorizedUpgrade: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Map of block numbers to block hashes. - **/ - blockHash: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * The current weight for the block. - **/ - blockWeight: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * Digest of the current block, also part of the block header. - **/ - digest: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The number of events in the `Events` list. - **/ - eventCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - **/ - events: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - **/ - eventTopics: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>>, - [H256] - > & - QueryableStorageEntry; - /** - * The execution phase of the block. - **/ - executionPhase: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Total extrinsics count for the current block. - **/ - extrinsicCount: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - **/ - extrinsicData: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * Whether all inherents have been applied. - **/ - inherentsApplied: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - **/ - lastRuntimeUpgrade: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The current block number being processed. Set by `execute_block`. - **/ - number: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Hash of the previous block. - **/ - parentHash: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - **/ - upgradedToTripleRefCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - **/ - upgradedToU32RefCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - timestamp: { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - **/ - didUpdate: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The current time for the current block. - **/ - now: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - transactionPayment: { - nextFeeMultiplier: AugmentedQuery Observable, []> & - QueryableStorageEntry; - storageVersion: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - xcmpQueue: { - /** - * The factor to multiply the base delivery fee by. - **/ - deliveryFeeFactor: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * The suspended inbound XCMP channels. All others are not suspended. - * - * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block - * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached - * within the block and therefore only included once in the proof size. - * - * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof - * will be smaller. - **/ - inboundXcmpSuspended: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The messages outbound in a given XCMP channel. - **/ - outboundXcmpMessages: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u16 | AnyNumber | Uint8Array - ) => Observable, - [u32, u16] - > & - QueryableStorageEntry; - /** - * The non-empty XCMP channels in order of becoming non-empty, and the index of the first - * and last outbound message. If the two indices are equal, then it indicates an empty - * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater - * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in - * case of the need to send a high-priority signal message this block. - * The bool is true if there is a signal message waiting to be sent. - **/ - outboundXcmpStatus: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The configuration which controls the dynamics of the outbound queue. - **/ - queueConfig: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. - **/ - queueSuspended: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Any signal messages waiting to be sent. - **/ - signalMessages: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - } -} +import "@polkadot/api-base/types/storage"; +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from "@polkadot/api-base/types"; +import type { + BTreeMap, + BTreeSet, + Bytes, + Null, + Option, + Struct, + Vec, + bool, + u128, + u16, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { AnyNumber, ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, + CumulusPalletParachainSystemUnincludedSegmentAncestor, + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, + CumulusPalletXcmpQueueOutboundChannelDetails, + CumulusPalletXcmpQueueQueueConfigData, + CumulusPrimitivesCoreAggregateMessageOrigin, + FrameSupportDispatchPerDispatchClassWeight, + FrameSystemAccountInfo, + FrameSystemCodeUpgradeAuthorization, + FrameSystemEventRecord, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemPhase, + PalletBalancesAccountData, + PalletBalancesBalanceLock, + PalletBalancesIdAmount, + PalletBalancesReserveData, + PalletCollatorSelectionCandidateInfo, + PalletFileSystemMoveBucketRequestMetadata, + PalletFileSystemStorageRequestBspsMetadata, + PalletFileSystemStorageRequestMetadata, + PalletMessageQueueBookState, + PalletMessageQueuePage, + PalletNftsAttributeDeposit, + PalletNftsAttributeNamespace, + PalletNftsCollectionConfig, + PalletNftsCollectionDetails, + PalletNftsCollectionMetadata, + PalletNftsItemConfig, + PalletNftsItemDetails, + PalletNftsItemMetadata, + PalletNftsPendingSwap, + PalletPaymentStreamsDynamicRatePaymentStream, + PalletPaymentStreamsFixedRatePaymentStream, + PalletPaymentStreamsProviderLastChargeableInfo, + PalletStorageProvidersBackupStorageProvider, + PalletStorageProvidersBucket, + PalletStorageProvidersMainStorageProvider, + PalletStorageProvidersStorageProvider, + PalletTransactionPaymentReleases, + PalletXcmQueryStatus, + PalletXcmRemoteLockedFungibleRecord, + PalletXcmVersionMigrationStage, + PolkadotCorePrimitivesOutboundHrmpMessage, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, + ShpTraitsTrieRemoveMutation, + SpConsensusAuraSr25519AppSr25519Public, + SpCoreCryptoKeyTypeId, + SpRuntimeDigest, + SpTrieStorageProof, + SpWeightsWeightV2Weight, + StagingXcmV4Instruction, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + StorageHubRuntimeRuntimeHoldReason, + StorageHubRuntimeSessionKeys, + XcmVersionedAssetId, + XcmVersionedLocation +} from "@polkadot/types/lookup"; +import type { Observable } from "@polkadot/types/types"; +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; +declare module "@polkadot/api-base/types/storage" { + interface AugmentedQueries { + aura: { + /** + * The current authority set. + **/ + authorities: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The current slot of this block. + * + * This will be set in `on_initialize`. + **/ + currentSlot: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + auraExt: { + /** + * Serves as cache for the authorities. + * + * The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session, + * but we require the old authorities to verify the seal when validating a PoV. This will + * always be updated to the latest AuRa authorities in `on_finalize`. + **/ + authorities: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Current slot paired with a number of authored blocks. + * + * Updated on each block initialization. + **/ + slotInfo: AugmentedQuery Observable>>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable< + Vec< + { + readonly id: StorageHubRuntimeRuntimeHoldReason; + readonly amount: u128; + } & Struct + > + >, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + collatorSelection: { + /** + * Fixed amount to deposit to become a collator. + * + * When a collator calls `leave_intent` they immediately receive the deposit back. + **/ + candidacyBond: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be + * mutually exclusive. + * + * This list is sorted in ascending order by deposit and when the deposits are equal, the least + * recently updated is considered greater. + **/ + candidateList: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Desired number of candidates. + * + * This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct. + **/ + desiredCandidates: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The invulnerable, permissioned collators. This list must be sorted. + **/ + invulnerables: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Last block authored by collator. + **/ + lastAuthoredBlock: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fileSystem: { + /** + * Bookkeeping of the buckets containing open storage requests. + **/ + bucketsWithStorageRequests: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * BSP data servers for move bucket requests. + **/ + dataServersForMoveBucket: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * A map of blocks to expired file deletion requests. + **/ + fileDeletionRequestExpirations: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>>, + [u32] + > & + QueryableStorageEntry; + /** + * A map of blocks to expired move bucket requests. + **/ + moveBucketRequestExpirations: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>>, + [u32] + > & + QueryableStorageEntry; + /** + * A pointer to the earliest available block to insert a new file deletion request expiration. + * + * This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. + **/ + nextAvailableFileDeletionRequestExpirationBlock: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * A pointer to the earliest available block to insert a new move bucket request expiration. + * + * This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. + **/ + nextAvailableMoveBucketRequestExpirationBlock: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * A pointer to the earliest available block to insert a new storage request expiration. + * + * This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. + **/ + nextAvailableStorageRequestExpirationBlock: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * A pointer to the starting block to clean up expired storage requests. + * + * If this block is behind the current block number, the cleanup algorithm in `on_idle` will + * attempt to accelerate this block pointer as close to or up to the current block number. This + * will execute provided that there is enough remaining weight to do so. + **/ + nextStartingBlockToCleanUp: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Bookkeeping of buckets that are pending to be moved to a new MSP. + **/ + pendingBucketsToMove: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable, + [H256] + > & + QueryableStorageEntry; + /** + * Pending file deletion requests. + * + * A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. + **/ + pendingFileDeletionRequests: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Pending move bucket requests. + * + * A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. + * The value is the user who requested the move. + **/ + pendingMoveBucketRequests: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * Pending file stop storing requests. + * + * A double mapping from BSP IDs to a list of file keys pending stop storing requests to the block in which those requests were opened + * and the proven size of the file. + * The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges + * of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. + **/ + pendingStopStoringRequests: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * Number of BSPs required to fulfill a storage request + * + * This is also used as a default value if the BSPs required are not specified when creating a storage request. + **/ + replicationTarget: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A double map from storage request to BSP `AccountId`s that volunteered to store the file. + * + * Any BSP under a storage request prefix is considered to be a volunteer and can be removed at any time. + * Once a BSP submits a valid proof to the via the `bsp_confirm_storing` extrinsic, the `confirmed` field in [`StorageRequestBspsMetadata`] will be set to `true`. + * + * When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. + **/ + storageRequestBsps: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * A map of blocks to expired storage requests. + **/ + storageRequestExpirations: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + storageRequests: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * Number of ticks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. + **/ + tickRangeToMaximumThreshold: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery< + ApiType, + ( + arg: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { + Here: any; + } + | { + Parent: any; + } + | { + Sibling: any; + } + | string + | Uint8Array + ) => Observable, + [CumulusPrimitivesCoreAggregateMessageOrigin] + > & + QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery< + ApiType, + ( + arg1: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { + Here: any; + } + | { + Parent: any; + } + | { + Sibling: any; + } + | string + | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32] + > & + QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nfts: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery< + ApiType, + ( + arg1: AccountId32 | string | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array, + arg3: u32 | AnyNumber | Uint8Array + ) => Observable>, + [AccountId32, u32, u32] + > & + QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: Option | null | Uint8Array | u32 | AnyNumber, + arg3: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + arg4: Bytes | string | Uint8Array + ) => Observable>>, + [u32, Option, PalletNftsAttributeNamespace, Bytes] + > & + QueryableStorageEntry, PalletNftsAttributeNamespace, Bytes]>; + /** + * Details of a collection. + **/ + collection: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + collectionAccount: AugmentedQuery< + ApiType, + ( + arg1: AccountId32 | string | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [AccountId32, u32] + > & + QueryableStorageEntry; + /** + * Config of a collection. + **/ + collectionConfigOf: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + collectionMetadataOf: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * The items in existence and their ownership details. + * Stores collection roles as per account. + **/ + collectionRoleOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: AccountId32 | string | Uint8Array + ) => Observable>, + [u32, AccountId32] + > & + QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + item: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Item attribute approvals. + **/ + itemAttributesApprovalsOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Config of an item. + **/ + itemConfigOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Metadata of an item. + **/ + itemMetadataOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * A price of an item. + **/ + itemPriceOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable]>>>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Stores the `CollectionId` that is going to be used for the next collection. + * This gets incremented whenever a new collection is created. + **/ + nextCollectionId: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Handles all the pending swaps. + **/ + pendingSwapOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainInfo: { + parachainId: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainSystem: { + /** + * Storage field that keeps track of bandwidth used by the unincluded segment along with the + * latest HRMP watermark. Used for limiting the acceptance of new blocks with + * respect to relay chain constraints. + **/ + aggregatedUnincludedSegment: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The number of HRMP messages we observed in `on_initialize` and thus used that number for + * announcing the weight of `on_initialize` and `on_finalize`. + **/ + announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A custom head data that should be returned as result of `validate_block`. + * + * See `Pallet::set_custom_validation_head_data` for more information. + **/ + customValidationHeadData: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Were the validation data set to notify the relay chain? + **/ + didSetValidationCode: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The parachain host configuration that was obtained from the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + hostConfiguration: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * HRMP messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + hrmpOutboundMessages: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * HRMP watermark that was set in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + hrmpWatermark: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The last downward message queue chain head we have observed. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastDmqMqcHead: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The message queue chain heads we have observed per each channel incoming channel. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastHrmpMqcHeads: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The relay chain block number associated with the last parachain block. + * + * This is updated in `on_finalize`. + **/ + lastRelayChainBlockNumber: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Validation code that is set by the parachain and is to be communicated to collator and + * consequently the relay-chain. + * + * This will be cleared in `on_initialize` of each new block if no other pallet already set + * the value. + **/ + newValidationCode: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Upward messages that are still pending and not yet send to the relay chain. + **/ + pendingUpwardMessages: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * In case of a scheduled upgrade, this storage field contains the validation code to be + * applied. + * + * As soon as the relay chain gives us the go-ahead signal, we will overwrite the + * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process + * with the new validation code. This concludes the upgrade process. + **/ + pendingValidationCode: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Number of downward messages processed in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + processedDownwardMessages: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The state proof for the last relay parent block. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relayStateProof: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The snapshot of some state related to messaging relevant to the current parachain as per + * the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relevantMessagingState: AugmentedQuery< + ApiType, + () => Observable< + Option + >, + [] + > & + QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing DMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedDmpWeightOverride: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing XCMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedXcmpWeightOverride: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Latest included block descendants the runtime accepted. In other words, these are + * ancestors of the currently executing block which have not been included in the observed + * relay-chain state. + * + * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured + * in the pallet. + **/ + unincludedSegment: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Optional upgrade go-ahead signal from the relay-chain. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeGoAhead: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * An option which indicates if the relay-chain restricts signalling a validation code upgrade. + * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced + * candidate will be invalid. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeRestrictionSignal: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The factor to multiply the base delivery fee by for UMP. + **/ + upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Upward messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + upwardMessages: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The [`PersistedValidationData`] set for this block. + * This value is expected to be set only once per block and it's never stored + * in the trie. + **/ + validationData: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parameters: { + /** + * Stored parameters. + **/ + parameters: AugmentedQuery< + ApiType, + ( + arg: + | StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey + | { + RuntimeConfig: any; + } + | string + | Uint8Array + ) => Observable>, + [StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paymentStreams: { + /** + * The accumulated price index since genesis, used to calculate the amount to charge for dynamic-rate payment streams. + * + * This is equivalent to what it would have cost to store one unit of the provided service since the beginning of the network. + * We use this to calculate the amount to charge for dynamic-rate payment streams, by checking out the difference between the index + * when the payment stream was last charged, and the index at the last chargeable tick. + * + * This storage is updated in: + * - [do_update_price_index](crate::utils::do_update_price_index), which updates the accumulated price index, adding to it the current price. + **/ + accumulatedPriceIndex: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The current price per unit per tick of the provided service, used to calculate the amount to charge for dynamic-rate payment streams. + * + * This is updated each tick using the formula that considers current system capacity (total storage of the system) and system availability (total storage available). + * + * This storage is updated in: + * - [do_update_current_price_per_unit_per_tick](crate::utils::do_update_current_price_per_unit_per_tick), which updates the current price per unit per tick. + **/ + currentPricePerUnitPerTick: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The double mapping from a Provider, to its provided Users, to their dynamic-rate payment streams. + * + * This is used to store and manage dynamic-rate payment streams between Users and Providers. + * + * This storage is updated in: + * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which adds a new entry to the map. + * - [delete_dynamic_rate_payment_stream](crate::dispatchables::delete_dynamic_rate_payment_stream), which removes the corresponding entry from the map. + * - [update_dynamic_rate_payment_stream](crate::dispatchables::update_dynamic_rate_payment_stream), which updates the entry's `amount_provided`. + * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `price_index_when_last_charged`. + **/ + dynamicRatePaymentStreams: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: AccountId32 | string | Uint8Array + ) => Observable>, + [H256, AccountId32] + > & + QueryableStorageEntry; + /** + * The double mapping from a Provider, to its provided Users, to their fixed-rate payment streams. + * + * This is used to store and manage fixed-rate payment streams between Users and Providers. + * + * This storage is updated in: + * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which adds a new entry to the map. + * - [delete_fixed_rate_payment_stream](crate::dispatchables::delete_fixed_rate_payment_stream), which removes the corresponding entry from the map. + * - [update_fixed_rate_payment_stream](crate::dispatchables::update_fixed_rate_payment_stream), which updates the entry's `rate`. + * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `last_charged_tick`. + **/ + fixedRatePaymentStreams: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: AccountId32 | string | Uint8Array + ) => Observable>, + [H256, AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from a Provider to its last chargeable price index (for dynamic-rate payment streams) and last chargeable tick (for fixed-rate payment streams). + * + * This is used to keep track of the last chargeable price index and tick number for each Provider, so this pallet can charge the payment streams correctly. + * + * This storage is updated in: + * - [update_last_chargeable_info](crate::PaymentManager::update_last_chargeable_info), which updates the entry's `last_chargeable_tick` and `price_index`. + **/ + lastChargeableInfo: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable, + [H256] + > & + QueryableStorageEntry; + /** + * A counter of blocks for which Providers can charge their streams. + * + * This counter is not necessarily the same as the block number, as the last chargeable info of Providers + * (and the global price index) are updated in the `on_poll` hook, which happens at the beginning of every block, + * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). + * During MBMs, the block number increases, but `OnPollTicker` does not. + **/ + onPollTicker: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from a user to if it has been registered to the network and the amount of payment streams it has. + * + * Since users have to provide a deposit to be able to open each payment stream, this is used to keep track of the amount of payment streams + * that a user has and it is also useful to check if a user has registered to the network. + * + * This storage is updated in: + * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which holds the deposit of the user and adds one to this storage. + * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which holds the deposit of the user and adds one to this storage. + * - [remove_fixed_rate_payment_stream](crate::dispatchables::remove_fixed_rate_payment_stream), which removes one from this storage and releases the deposit. + * - [remove_dynamic_rate_payment_stream](crate::dispatchables::remove_dynamic_rate_payment_stream), which removes one from this storage and releases the deposit. + **/ + registeredUsers: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from a user to if it has been flagged for not having enough funds to pay for its requested services. + * + * This is used to flag users that do not have enough funds to pay for their requested services, so other Providers + * can stop providing services to them. + * + * This storage is updated in: + * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which emits a `UserWithoutFunds` event and sets the user's entry in this map if it does not + * have enough funds, and clears the entry if it was set and the user has enough funds. + **/ + usersWithoutFunds: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + polkadotXcm: { + /** + * The existing asset traps. + * + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ + assetTraps: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable, + [H256] + > & + QueryableStorageEntry; + /** + * The current migration's stage, if any. + **/ + currentMigration: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Fungible assets which we know are locked on this chain. + **/ + lockedFungibles: AugmentedQuery< + ApiType, + ( + arg: AccountId32 | string | Uint8Array + ) => Observable>>>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The ongoing queries. + **/ + queries: AugmentedQuery< + ApiType, + (arg: u64 | AnyNumber | Uint8Array) => Observable>, + [u64] + > & + QueryableStorageEntry; + /** + * The latest available query index. + **/ + queryCounter: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * Fungible assets which we know are locked on a remote chain. + **/ + remoteLockedFungibles: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: AccountId32 | string | Uint8Array, + arg3: + | XcmVersionedAssetId + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable>, + [u32, AccountId32, XcmVersionedAssetId] + > & + QueryableStorageEntry; + /** + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ + safeXcmVersion: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The Latest versions that we know various locations support. + **/ + supportedVersion: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable>, + [u32, XcmVersionedLocation] + > & + QueryableStorageEntry; + /** + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ + versionDiscoveryQueue: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * All locations that we have requested version notifications from. + **/ + versionNotifiers: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable>, + [u32, XcmVersionedLocation] + > & + QueryableStorageEntry; + /** + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ + versionNotifyTargets: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => Observable>>, + [u32, XcmVersionedLocation] + > & + QueryableStorageEntry; + /** + * Global suspension state of the XCM executor. + **/ + xcmExecutionSuspended: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proofsDealer: { + /** + * A queue of keys that have been challenged manually. + * + * The elements in this queue will be challenged in the coming blocks, + * always ensuring that the maximum number of challenges per block is not exceeded. + * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait + * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. + **/ + challengesQueue: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * A counter of blocks in which challenges were distributed. + * + * This counter is not necessarily the same as the block number, as challenges are + * distributed in the `on_poll` hook, which happens at the beginning of every block, + * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). + * During MBMsm, the block number increases, but [`ChallengesTicker`] does not. + **/ + challengesTicker: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A boolean that represents whether the [`ChallengesTicker`] is paused. + * + * By default, this is `false`, meaning that the [`ChallengesTicker`] is incremented every time `on_poll` is called. + * This can be set to `true` which would pause the [`ChallengesTicker`], preventing `do_new_challenges_round` from + * being executed. Therefore: + * - No new random challenges would be emitted and added to [`TickToChallengesSeed`]. + * - No new checkpoint challenges would be emitted and added to [`TickToCheckpointChallenges`]. + * - Deadlines for proof submissions are indefinitely postponed. + **/ + challengesTickerPaused: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The challenge tick of the last checkpoint challenge round. + * + * This is used to determine when to include the challenges from the [`ChallengesQueue`] and + * [`PriorityChallengesQueue`] in the [`TickToCheckpointChallenges`] StorageMap. These checkpoint + * challenge rounds have to be answered by ALL Providers, and this is enforced by the + * `submit_proof` extrinsic. + **/ + lastCheckpointTick: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A value that represents the last tick that was deleted from the [`ValidProofSubmittersLastTicks`] StorageMap. + * + * This is used to know which tick to delete from the [`ValidProofSubmittersLastTicks`] StorageMap when the + * `on_idle` hook is called. + **/ + lastDeletedTick: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A mapping from a Provider to the last tick for which they SHOULD have submitted a proof. + * If for a Provider `p`, `LastTickProviderSubmittedAProofFor[p]` is `n`, then the + * Provider should submit a proof for tick `n + stake_to_challenge_period(p)`. + * + * This gets updated when a Provider submits a proof successfully and is used to determine the + * next tick for which the Provider should submit a proof, and it's deadline. + * + * If the Provider fails to submit a proof in time and is slashed, this will still get updated + * to the tick it should have submitted a proof for. + **/ + lastTickProviderSubmittedAProofFor: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The number of blocks that have been considered _not_ full in the last [`Config::BlockFullnessPeriod`]. + * + * This is used to check if the network is presumably under a spam attack. + **/ + notFullBlocksCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A mapping from block number to the weight used in that block. + * + * This is used to check if the network is presumably under a spam attack. + * It is cleared for blocks older than `current_block` - ([`Config::BlockFullnessPeriod`] + 1). + **/ + pastBlocksWeight: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * A priority queue of keys that have been challenged manually. + * + * The difference between this and `ChallengesQueue` is that the challenges + * in this queue are given priority over the others. So this queue should be + * emptied before any of the challenges in the `ChallengesQueue` are dispatched. + * This queue should not be accessible to the public. + * The elements in this queue will be challenged in the coming blocks, + * always ensuring that the maximum number of challenges per block is not exceeded. + * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait + * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. + **/ + priorityChallengesQueue: AugmentedQuery< + ApiType, + () => Observable]>>>, + [] + > & + QueryableStorageEntry; + slashableProviders: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * A mapping from challenges tick to a random seed used for generating the challenges in that tick. + * + * This is used to keep track of the challenges' seed in the past. + * This mapping goes back only [`ChallengeHistoryLengthFor`] blocks. Previous challenges are removed. + **/ + tickToChallengesSeed: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * A mapping from challenges tick to a vector of custom challenged keys for that tick. + * + * This is used to keep track of the challenges that have been made in the past, specifically + * in the checkpoint challenge rounds. + * The vector is bounded by [`MaxCustomChallengesPerBlockFor`]. + * This mapping goes back only [`ChallengeHistoryLengthFor`] ticks. Previous challenges are removed. + **/ + tickToCheckpointChallenges: AugmentedQuery< + ApiType, + ( + arg: u32 | AnyNumber | Uint8Array + ) => Observable]>>>>, + [u32] + > & + QueryableStorageEntry; + /** + * A mapping from challenge tick to a vector of challenged Providers for that tick. + * + * This is used to keep track of the Providers that have been challenged, and should + * submit a proof by the time of the [`ChallengesTicker`] reaches the number used as + * key in the mapping. Providers who do submit a proof are removed from their respective + * entry and pushed forward to the next tick in which they should submit a proof. + * Those who are still in the entry by the time the tick is reached are considered to + * have failed to submit a proof and subject to slashing. + **/ + tickToProvidersDeadlines: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [u32, H256] + > & + QueryableStorageEntry; + /** + * A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. + * + * This is used to keep track of the Providers that have submitted proofs in the last few + * ticks, where availability only up to the last [`Config::TargetTicksStorageOfSubmitters`] ticks is guaranteed. + * This storage is then made available for other pallets to use through the `ProofSubmittersInterface`. + **/ + validProofSubmittersLastTicks: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>>, + [u32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + providers: { + /** + * The mapping from an AccountId to a BackupStorageProviderId. + * + * This is used to get a Backup Storage Provider's unique identifier needed to access its metadata. + * + * This storage is updated in: + * + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. + **/ + accountIdToBackupStorageProviderId: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from an AccountId to a MainStorageProviderId. + * + * This is used to get a Main Storage Provider's unique identifier needed to access its metadata. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. + * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. + **/ + accountIdToMainStorageProviderId: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from a BackupStorageProviderId to a BackupStorageProvider. + * + * This is used to get a Backup Storage Provider's metadata. + * It returns `None` if the Backup Storage Provider ID does not correspond to any registered Backup Storage Provider. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. + * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. + **/ + backupStorageProviders: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The amount of Backup Storage Providers that are currently registered in the runtime. + * + * This is used to keep track of the total amount of BSPs in the system. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts one from this storage. + **/ + bspCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from a BucketId to that bucket's metadata. + * + * This is used to get a bucket's metadata, such as root, user ID, and MSP ID. + * It returns `None` if the Bucket ID does not correspond to any registered bucket. + * + * This storage is updated in: + * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket), which adds a new entry to the map. + * - [change_root_bucket](shp_traits::MutateProvidersInterface::change_root_bucket), which changes the corresponding bucket's root. + * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket), which removes the entry of the corresponding bucket. + **/ + buckets: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The total global reputation weight of all BSPs. + **/ + globalBspsReputationWeight: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from a MainStorageProviderId to a vector of BucketIds. + * + * This is used to efficiently retrieve the list of buckets that a Main Storage Provider is currently storing. + * + * This storage is updated in: + * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket) + * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket) + **/ + mainStorageProviderIdsToBuckets: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>>, + [H256] + > & + QueryableStorageEntry; + /** + * The mapping from a MainStorageProviderId to a MainStorageProvider. + * + * This is used to get a Main Storage Provider's metadata. + * It returns `None` if the Main Storage Provider ID does not correspond to any registered Main Storage Provider. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. + * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. + * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. + * - [add_value_prop](crate::dispatchables::add_value_prop), which appends a new value proposition to the entry's existing `value_prop` bounded vector. + **/ + mainStorageProviders: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The amount of Main Storage Providers that are currently registered in the runtime. + * + * This is used to keep track of the total amount of MSPs in the system. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Main Storage Provider. + * - [msp_sign_off](crate::dispatchables::msp_sign_off), which subtracts one from this storage. + **/ + mspCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from an AccountId that requested to sign up to a tuple of the metadata with type of the request, and the block + * number when the request was made. + * + * This is used for the two-step process of registering: when a user requests to register as a SP (either MSP or BSP), + * that request with the metadata and the deposit held is stored here. When the user confirms the sign up, the + * request is removed from this storage and the user is registered as a SP. + * + * This storage is updated in: + * - [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) and [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up), which add a new entry to the map. + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up) and [cancel_sign_up](crate::dispatchables::cancel_sign_up), which remove an existing entry from the map. + **/ + signUpRequests: AugmentedQuery< + ApiType, + ( + arg: AccountId32 | string | Uint8Array + ) => Observable>>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The total amount of storage capacity all BSPs have. + * + * This is used to keep track of the total amount of storage capacity all BSPs have in the system, which is also the + * total amount of storage capacity that can be used by users if we factor in the replication factor. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds the capacity of the registered Storage Provider to this storage if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts the capacity of the Backup Storage Provider to sign off from this storage. + **/ + totalBspsCapacity: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The total amount of storage capacity of BSPs that is currently in use. + * + * This is used to keep track of the total amount of storage capacity that is currently in use by users, which is useful for + * system metrics and also to calculate the current price of storage. + **/ + usedBspsCapacity: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + randomness: { + /** + * Ensures the mandatory inherent was included in the block + **/ + inherentIncluded: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Latest random seed obtained from the one epoch ago randomness from BABE, and the latest block that it can process randomness requests from + **/ + latestOneEpochAgoRandomness: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * Latest random seed obtained from the parent block randomness from BABE, and the latest block that it can process randomness requests from + **/ + latestParentBlockRandomness: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * Current relay epoch + **/ + relayEpoch: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery< + ApiType, + ( + arg: + | ITuple<[SpCoreCryptoKeyTypeId, Bytes]> + | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array] + ) => Observable>, + [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>] + > & + QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery< + ApiType, + ( + arg: AccountId32 | string | Uint8Array + ) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + sudo: { + /** + * The `AccountId` of the sudo key. + **/ + key: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>>, + [H256] + > & + QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & + QueryableStorageEntry; + storageVersion: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + xcmpQueue: { + /** + * The factor to multiply the base delivery fee by. + **/ + deliveryFeeFactor: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * The suspended inbound XCMP channels. All others are not suspended. + * + * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block + * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached + * within the block and therefore only included once in the proof size. + * + * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof + * will be smaller. + **/ + inboundXcmpSuspended: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The messages outbound in a given XCMP channel. + **/ + outboundXcmpMessages: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u16 | AnyNumber | Uint8Array + ) => Observable, + [u32, u16] + > & + QueryableStorageEntry; + /** + * The non-empty XCMP channels in order of becoming non-empty, and the index of the first + * and last outbound message. If the two indices are equal, then it indicates an empty + * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater + * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in + * case of the need to send a high-priority signal message this block. + * The bool is true if there is a signal message waiting to be sent. + **/ + outboundXcmpStatus: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The configuration which controls the dynamics of the outbound queue. + **/ + queueConfig: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. + **/ + queueSuspended: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Any signal messages waiting to be sent. + **/ + signalMessages: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-runtime.d.ts b/api-augment/dist/types/interfaces/augment-api-runtime.d.ts index 852421745..66904c38d 100644 --- a/api-augment/dist/types/interfaces/augment-api-runtime.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-runtime.d.ts @@ -1,806 +1,663 @@ -import "@polkadot/api-base/types/calls"; -import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; -import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; -import type { BlockHash } from "@polkadot/types/interfaces/chain"; -import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; -import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; -import type { - CallDryRunEffects, - XcmDryRunApiError, - XcmDryRunEffects -} from "@polkadot/types/interfaces/dryRunApi"; -import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; -import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; -import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; -import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; -import type { - AccountId, - Balance, - Block, - BlockNumber, - Call, - ExtrinsicInclusionMode, - H256, - Header, - Index, - KeyTypeId, - OriginCaller, - RuntimeCall, - Slot, - SlotDuration, - Weight, - WeightV2 -} from "@polkadot/types/interfaces/runtime"; -import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; -import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; -import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; -import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; -import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; -import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; -import type { IExtrinsic, Observable } from "@polkadot/types/types"; -import type { - BackupStorageProvider, - BackupStorageProviderId, - ChunkId, - GetBspInfoError, - GetChallengePeriodError, - GetChallengeSeedError, - GetCheckpointChallengesError, - GetLastTickProviderSubmittedProofError, - GetNextDeadlineTickError, - GetUsersWithDebtOverThresholdError, - MainStorageProviderId, - ProviderId, - QueryAvailableStorageCapacityError, - QueryBspConfirmChunksToProveForFileError, - QueryEarliestChangeCapacityBlockError, - QueryFileEarliestVolunteerBlockError, - QueryMspConfirmChunksToProveForFileError, - QueryMspIdOfBucketIdError, - QueryStorageProviderCapacityError, - RandomnessOutput, - StorageDataUnit, - StorageProviderId, - TrieRemoveMutation -} from "@storagehub/api-augment/interfaces/storagehubclient"; -export type __AugmentedCall = AugmentedCall; -export type __DecoratedCallBase = DecoratedCallBase; -declare module "@polkadot/api-base/types/calls" { - interface AugmentedCalls { - /** 0xbc9d89904f5b923f/1 */ - accountNonceApi: { - /** - * The API to query account nonce (aka transaction index) - **/ - accountNonce: AugmentedCall< - ApiType, - (accountId: AccountId | string | Uint8Array) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdd718d5cc53262d4/1 */ - auraApi: { - /** - * Return the current set of authorities. - **/ - authorities: AugmentedCall Observable>>; - /** - * Returns the slot duration for Aura. - **/ - slotDuration: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd7bdd8a272ca0d65/1 */ - auraUnincludedSegmentApi: { - /** - * Whether it is legal to extend the chain - **/ - canBuildUpon: AugmentedCall< - ApiType, - ( - includedHash: BlockHash | string | Uint8Array, - slot: Slot | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x40fe3ad401f8959a/6 */ - blockBuilder: { - /** - * Apply the given extrinsic. - **/ - applyExtrinsic: AugmentedCall< - ApiType, - ( - extrinsic: Extrinsic | IExtrinsic | string | Uint8Array - ) => Observable - >; - /** - * Check that the inherents are valid. - **/ - checkInherents: AugmentedCall< - ApiType, - ( - block: - | Block - | { - header?: any; - extrinsics?: any; - } - | string - | Uint8Array, - data: - | InherentData - | { - data?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Finish the current block. - **/ - finalizeBlock: AugmentedCall Observable
>; - /** - * Generate inherent extrinsics. - **/ - inherentExtrinsics: AugmentedCall< - ApiType, - ( - inherent: - | InherentData - | { - data?: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xea93e3f16f3d6962/2 */ - collectCollationInfo: { - /** - * Collect information about a collation. - **/ - collectCollationInfo: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdf6acb689907609b/5 */ - core: { - /** - * Execute the given block. - **/ - executeBlock: AugmentedCall< - ApiType, - ( - block: - | Block - | { - header?: any; - extrinsics?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Initialize a block with the given header. - **/ - initializeBlock: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Returns the version of the runtime. - **/ - version: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x91b1c8b16328eb92/1 */ - dryRunApi: { - /** - * Dry run call - **/ - dryRunCall: AugmentedCall< - ApiType, - ( - origin: - | OriginCaller - | { - System: any; - } - | string - | Uint8Array, - call: RuntimeCall | IMethod | string | Uint8Array - ) => Observable> - >; - /** - * Dry run XCM program - **/ - dryRunXcm: AugmentedCall< - ApiType, - ( - originLocation: - | VersionedMultiLocation - | { - V0: any; - } - | { - V1: any; - } - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - xcm: - | VersionedXcm - | { - V0: any; - } - | { - V1: any; - } - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xb9e7717ace5b45cd/1 */ - fileSystemApi: { - /** - * Query the chunks that a BSP needs to prove to confirm that it is storing a file. - **/ - queryBspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryBspConfirmChunksToProveForFileError>> - >; - /** - * Query the earliest tick number that a BSP can volunteer for a file. - **/ - queryEarliestFileVolunteerTick: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the chunks that a MSP needs to prove to confirm that it is storing a file. - **/ - queryMspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - mspId: MainStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryMspConfirmChunksToProveForFileError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xfbc577b9d747efd6/1 */ - genesisBuilder: { - /** - * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. - **/ - buildConfig: AugmentedCall< - ApiType, - (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> - >; - /** - * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. - **/ - createDefaultConfig: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37e397fc7c91f5e4/2 */ - metadata: { - /** - * Returns the metadata of a runtime - **/ - metadata: AugmentedCall Observable>; - /** - * Returns the metadata at a given version. - **/ - metadataAtVersion: AugmentedCall< - ApiType, - (version: u32 | AnyNumber | Uint8Array) => Observable> - >; - /** - * Returns the supported metadata versions. - **/ - metadataVersions: AugmentedCall Observable>>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf78b278be53f454c/2 */ - offchainWorkerApi: { - /** - * Starts the off-chain task for given block header. - **/ - offchainWorker: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x1078d7ac24a07b0e/1 */ - paymentStreamsApi: { - /** - * Get the payment streams of a provider. - **/ - getUsersOfPaymentStreamsOfProvider: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Get the users that have a debt to the provider greater than the threshold. - **/ - getUsersWithDebtOverThreshold: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array, - threshold: Balance | AnyNumber | Uint8Array - ) => Observable, GetUsersWithDebtOverThresholdError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x0be7208954c7c6c9/1 */ - proofsDealerApi: { - /** - * Get the challenge period for a given Provider. - **/ - getChallengePeriod: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the seed for a given challenge tick. - **/ - getChallengeSeed: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get challenges from a seed. - **/ - getChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array, - count: u32 | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get the checkpoint challenge period. - **/ - getCheckpointChallengePeriod: AugmentedCall Observable>; - /** - * Get checkpoint challenges for a given block. - **/ - getCheckpointChallenges: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable< - Result]>>, GetCheckpointChallengesError> - > - >; - /** - * Get the current tick. - **/ - getCurrentTick: AugmentedCall Observable>; - /** - * Get forest challenges from a seed. - **/ - getForestChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the last checkpoint challenge tick. - **/ - getLastCheckpointChallengeTick: AugmentedCall Observable>; - /** - * Get the last tick for which the submitter submitted a proof. - **/ - getLastTickProviderSubmittedProof: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the next deadline tick. - **/ - getNextDeadlineTick: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xab3c0572291feb8b/1 */ - sessionKeys: { - /** - * Decode the given public session keys. - **/ - decodeSessionKeys: AugmentedCall< - ApiType, - ( - encoded: Bytes | string | Uint8Array - ) => Observable>>> - >; - /** - * Generate a set of session keys with optionally using the given seed. - **/ - generateSessionKeys: AugmentedCall< - ApiType, - (seed: Option | null | Uint8Array | Bytes | string) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x966604ffe78eb092/1 */ - storageProvidersApi: { - /** - * Get the BSP info for a given BSP ID. - **/ - getBspInfo: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the slashable amount corresponding to the configured max file size. - **/ - getSlashAmountPerMaxFileSize: AugmentedCall Observable>; - /** - * Get the Storage Provider ID for a given Account ID. - **/ - getStorageProviderId: AugmentedCall< - ApiType, - (who: AccountId | string | Uint8Array) => Observable> - >; - /** - * Get the worst case scenario slashable amount for a provider. - **/ - getWorstCaseScenarioSlashableAmount: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Query the available storage capacity. - **/ - queryAvailableStorageCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the earliest block number that a BSP can change its capacity. - **/ - queryEarliestChangeCapacityBlock: AugmentedCall< - ApiType, - ( - providerId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the MSP ID of a bucket ID. - **/ - queryMspIdOfBucketId: AugmentedCall< - ApiType, - ( - bucketId: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the storage provider capacity. - **/ - queryStorageProviderCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd2bc9897eed08f15/3 */ - taggedTransactionQueue: { - /** - * Validate the transaction. - **/ - validateTransaction: AugmentedCall< - ApiType, - ( - source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, - tx: Extrinsic | IExtrinsic | string | Uint8Array, - blockHash: BlockHash | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37c8bb1350a9a2a8/4 */ - transactionPaymentApi: { - /** - * The transaction fee details - **/ - queryFeeDetails: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The transaction info - **/ - queryInfo: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: - | Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf3ff14d5ab527059/3 */ - transactionPaymentCallApi: { - /** - * The call fee details - **/ - queryCallFeeDetails: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The call info - **/ - queryCallInfo: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: - | Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x6ff52ee858e6c5bd/1 */ - xcmPaymentApi: { - /** - * The API to query acceptable payment assets - **/ - queryAcceptablePaymentAssets: AugmentedCall< - ApiType, - ( - version: u32 | AnyNumber | Uint8Array - ) => Observable, XcmPaymentApiError>> - >; - /** - * - **/ - queryWeightToAssetFee: AugmentedCall< - ApiType, - ( - weight: - | WeightV2 - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array, - asset: - | XcmVersionedAssetId - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * - **/ - queryXcmWeight: AugmentedCall< - ApiType, - ( - message: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - } -} +import "@polkadot/api-base/types/calls"; +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; +import type { Bytes, Null, Option, Result, Vec, bool, u32 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; +import type { BlockHash } from "@polkadot/types/interfaces/chain"; +import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; +import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; +import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; +import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; +import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; +import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; +import type { + AccountId, + Balance, + Block, + BlockNumber, + Call, + ExtrinsicInclusionMode, + H256, + Header, + Index, + KeyTypeId, + Slot, + SlotDuration, + Weight +} from "@polkadot/types/interfaces/runtime"; +import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; +import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; +import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; +import type { IExtrinsic, Observable } from "@polkadot/types/types"; +import type { + BackupStorageProvider, + BackupStorageProviderId, + ChunkId, + GetBspInfoError, + GetChallengePeriodError, + GetChallengeSeedError, + GetCheckpointChallengesError, + GetLastTickProviderSubmittedProofError, + GetNextDeadlineTickError, + GetUsersWithDebtOverThresholdError, + MainStorageProviderId, + ProviderId, + QueryAvailableStorageCapacityError, + QueryBspConfirmChunksToProveForFileError, + QueryEarliestChangeCapacityBlockError, + QueryFileEarliestVolunteerBlockError, + QueryMspConfirmChunksToProveForFileError, + QueryMspIdOfBucketIdError, + QueryStorageProviderCapacityError, + RandomnessOutput, + StorageDataUnit, + StorageProviderId, + TrieRemoveMutation +} from "@storagehub/api-augment/interfaces/storagehubclient"; +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; +declare module "@polkadot/api-base/types/calls" { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/1 */ + accountNonceApi: { + /** + * The API to query account nonce (aka transaction index) + **/ + accountNonce: AugmentedCall< + ApiType, + (accountId: AccountId | string | Uint8Array) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdd718d5cc53262d4/1 */ + auraApi: { + /** + * Return the current set of authorities. + **/ + authorities: AugmentedCall Observable>>; + /** + * Returns the slot duration for Aura. + **/ + slotDuration: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd7bdd8a272ca0d65/1 */ + auraUnincludedSegmentApi: { + /** + * Whether it is legal to extend the chain + **/ + canBuildUpon: AugmentedCall< + ApiType, + ( + includedHash: BlockHash | string | Uint8Array, + slot: Slot | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/6 */ + blockBuilder: { + /** + * Apply the given extrinsic. + **/ + applyExtrinsic: AugmentedCall< + ApiType, + ( + extrinsic: Extrinsic | IExtrinsic | string | Uint8Array + ) => Observable + >; + /** + * Check that the inherents are valid. + **/ + checkInherents: AugmentedCall< + ApiType, + ( + block: + | Block + | { + header?: any; + extrinsics?: any; + } + | string + | Uint8Array, + data: + | InherentData + | { + data?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable
>; + /** + * Generate inherent extrinsics. + **/ + inherentExtrinsics: AugmentedCall< + ApiType, + ( + inherent: + | InherentData + | { + data?: any; + } + | string + | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xea93e3f16f3d6962/2 */ + collectCollationInfo: { + /** + * Collect information about a collation. + **/ + collectCollationInfo: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/5 */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall< + ApiType, + ( + block: + | Block + | { + header?: any; + extrinsics?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Initialize a block with the given header. + **/ + initializeBlock: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xb9e7717ace5b45cd/1 */ + fileSystemApi: { + /** + * Query the chunks that a BSP needs to prove to confirm that it is storing a file. + **/ + queryBspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryBspConfirmChunksToProveForFileError>> + >; + /** + * Query the earliest tick number that a BSP can volunteer for a file. + **/ + queryEarliestFileVolunteerTick: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the chunks that a MSP needs to prove to confirm that it is storing a file. + **/ + queryMspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + mspId: MainStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryMspConfirmChunksToProveForFileError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/1 */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. + **/ + buildConfig: AugmentedCall< + ApiType, + (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> + >; + /** + * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. + **/ + createDefaultConfig: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/2 */ + metadata: { + /** + * Returns the metadata of a runtime + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version. + **/ + metadataAtVersion: AugmentedCall< + ApiType, + (version: u32 | AnyNumber | Uint8Array) => Observable> + >; + /** + * Returns the supported metadata versions. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/2 */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x1078d7ac24a07b0e/1 */ + paymentStreamsApi: { + /** + * Get the payment streams of a provider. + **/ + getUsersOfPaymentStreamsOfProvider: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Get the users that have a debt to the provider greater than the threshold. + **/ + getUsersWithDebtOverThreshold: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array, + threshold: Balance | AnyNumber | Uint8Array + ) => Observable, GetUsersWithDebtOverThresholdError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x0be7208954c7c6c9/1 */ + proofsDealerApi: { + /** + * Get the challenge period for a given Provider. + **/ + getChallengePeriod: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the seed for a given challenge tick. + **/ + getChallengeSeed: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get challenges from a seed. + **/ + getChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array, + count: u32 | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get the checkpoint challenge period. + **/ + getCheckpointChallengePeriod: AugmentedCall Observable>; + /** + * Get checkpoint challenges for a given block. + **/ + getCheckpointChallenges: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable< + Result]>>, GetCheckpointChallengesError> + > + >; + /** + * Get the current tick. + **/ + getCurrentTick: AugmentedCall Observable>; + /** + * Get forest challenges from a seed. + **/ + getForestChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the last checkpoint challenge tick. + **/ + getLastCheckpointChallengeTick: AugmentedCall Observable>; + /** + * Get the last tick for which the submitter submitted a proof. + **/ + getLastTickProviderSubmittedProof: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the next deadline tick. + **/ + getNextDeadlineTick: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/1 */ + sessionKeys: { + /** + * Decode the given public session keys. + **/ + decodeSessionKeys: AugmentedCall< + ApiType, + ( + encoded: Bytes | string | Uint8Array + ) => Observable>>> + >; + /** + * Generate a set of session keys with optionally using the given seed. + **/ + generateSessionKeys: AugmentedCall< + ApiType, + (seed: Option | null | Uint8Array | Bytes | string) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x966604ffe78eb092/1 */ + storageProvidersApi: { + /** + * Get the BSP info for a given BSP ID. + **/ + getBspInfo: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the slashable amount corresponding to the configured max file size. + **/ + getSlashAmountPerMaxFileSize: AugmentedCall Observable>; + /** + * Get the Storage Provider ID for a given Account ID. + **/ + getStorageProviderId: AugmentedCall< + ApiType, + (who: AccountId | string | Uint8Array) => Observable> + >; + /** + * Get the worst case scenario slashable amount for a provider. + **/ + getWorstCaseScenarioSlashableAmount: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Query the available storage capacity. + **/ + queryAvailableStorageCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the earliest block number that a BSP can change its capacity. + **/ + queryEarliestChangeCapacityBlock: AugmentedCall< + ApiType, + ( + providerId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the MSP ID of a bucket ID. + **/ + queryMspIdOfBucketId: AugmentedCall< + ApiType, + ( + bucketId: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the storage provider capacity. + **/ + queryStorageProviderCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/3 */ + taggedTransactionQueue: { + /** + * Validate the transaction. + **/ + validateTransaction: AugmentedCall< + ApiType, + ( + source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, + tx: Extrinsic | IExtrinsic | string | Uint8Array, + blockHash: BlockHash | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/4 */ + transactionPaymentApi: { + /** + * The transaction fee details + **/ + queryFeeDetails: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The transaction info + **/ + queryInfo: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: + | Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/3 */ + transactionPaymentCallApi: { + /** + * The call fee details + **/ + queryCallFeeDetails: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The call info + **/ + queryCallInfo: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: + | Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-api-tx.d.ts b/api-augment/dist/types/interfaces/augment-api-tx.d.ts index 2a7f8fd83..5cc67b51f 100644 --- a/api-augment/dist/types/interfaces/augment-api-tx.d.ts +++ b/api-augment/dist/types/interfaces/augment-api-tx.d.ts @@ -1,4020 +1,4020 @@ -import "@polkadot/api-base/types/submittable"; -import type { - ApiTypes, - AugmentedSubmittable, - SubmittableExtrinsic, - SubmittableExtrinsicFunction -} from "@polkadot/api-base/types"; -import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - PalletBalancesAdjustmentDirection, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemMspStorageRequestResponse, - PalletNftsAttributeNamespace, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsDestroyWitness, - PalletNftsItemConfig, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintWitness, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersValueProposition, - ShpFileKeyVerifierFileKeyProof, - SpRuntimeMultiSignature, - SpTrieStorageProofCompactProof, - SpWeightsWeightV2Weight, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV4Location, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeSessionKeys, - XcmV3WeightLimit, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedXcm -} from "@polkadot/types/lookup"; -export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; -export type __SubmittableExtrinsic = SubmittableExtrinsic; -export type __SubmittableExtrinsicFunction = - SubmittableExtrinsicFunction; -declare module "@polkadot/api-base/types/submittable" { - interface AugmentedSubmittables { - balances: { - /** - * Burn the specified liquid free balance from the origin account. - * - * If the origin's account ends up below the existential deposit as a result - * of the burn and `keep_alive` is false, the account will be reaped. - * - * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, - * this `burn` operation will reduce total issuance by the amount _burned_. - **/ - burn: AugmentedSubmittable< - ( - value: Compact | AnyNumber | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [Compact, bool] - >; - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - **/ - forceAdjustTotalIssuance: AugmentedSubmittable< - ( - direction: - | PalletBalancesAdjustmentDirection - | "Increase" - | "Decrease" - | number - | Uint8Array, - delta: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [PalletBalancesAdjustmentDirection, Compact] - >; - /** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - **/ - forceSetBalance: AugmentedSubmittable< - ( - who: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - newFree: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - **/ - forceTransfer: AugmentedSubmittable< - ( - source: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, MultiAddress, Compact] - >; - /** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - **/ - forceUnreserve: AugmentedSubmittable< - ( - who: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - amount: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, u128] - >; - /** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - **/ - transferAll: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, bool] - >; - /** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - **/ - transferAllowDeath: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - **/ - transferKeepAlive: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - **/ - upgradeAccounts: AugmentedSubmittable< - ( - who: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - bucketNfts: { - /** - * Share access to files within a bucket with another account. - * - * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. - **/ - shareAccess: AugmentedSubmittable< - ( - recipient: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [MultiAddress, H256, u32, Option] - >; - /** - * Update read access for an item. - **/ - updateReadAccess: AugmentedSubmittable< - ( - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [H256, u32, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - collatorSelection: { - /** - * Add a new account `who` to the list of `Invulnerables` collators. `who` must have - * registered session keys. If `who` is a candidate, they will be removed. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - addInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Deregister `origin` as a collator candidate. Note that the collator can only leave on - * session change. The `CandidacyBond` will be unreserved immediately. - * - * This call will fail if the total number of candidates would drop below - * `MinEligibleCollators`. - **/ - leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Register this account as a collator candidate. The account must (a) already have - * registered session keys and (b) be able to reserve the `CandidacyBond`. - * - * This call is not available to `Invulnerable` collators. - **/ - registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must - * be sorted. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - removeInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Set the candidacy bond amount. - * - * If the candidacy bond is increased by this call, all current candidates which have a - * deposit lower than the new bond will be kicked from the list and get their deposits - * back. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setCandidacyBond: AugmentedSubmittable< - (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Set the ideal number of non-invulnerable collators. If lowering this number, then the - * number of running collators could be higher than this figure. Aside from that edge case, - * there should be no other way to have more candidates than the desired number. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setDesiredCandidates: AugmentedSubmittable< - (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Set the list of invulnerable (fixed) collators. These collators must do some - * preparation, namely to have registered session keys. - * - * The call will remove any accounts that have not registered keys from the set. That is, - * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as - * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. - * - * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It - * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A - * `batch_all` can also be used to enforce atomicity. If any candidates are included in - * `new`, they should be removed with `remove_invulnerable_candidate` after execution. - * - * Must be called by the `UpdateOrigin`. - **/ - setInvulnerables: AugmentedSubmittable< - ( - updated: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * The caller `origin` replaces a candidate `target` in the collator candidate list by - * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than - * the existing bond of the target it is trying to replace. - * - * This call will fail if the caller is already a collator candidate or invulnerable, the - * caller does not have registered session keys, the target is not a collator candidate, - * and/or the `deposit` amount cannot be reserved. - **/ - takeCandidateSlot: AugmentedSubmittable< - ( - deposit: u128 | AnyNumber | Uint8Array, - target: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u128, AccountId32] - >; - /** - * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. - * - * Setting a `new_deposit` that is lower than the current deposit while `origin` is - * occupying a top-`DesiredCandidates` slot is not allowed. - * - * This call will fail if `origin` is not a collator candidate, the updated bond is lower - * than the minimum candidacy bond, and/or the amount cannot be reserved. - **/ - updateBond: AugmentedSubmittable< - (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - cumulusXcm: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - fileSystem: { - /** - * Add yourself as a data server for providing the files of the bucket requested to be moved. - **/ - bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Executed by a BSP to confirm to stop storing a file. - * - * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. - * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the - * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. - **/ - bspConfirmStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to confirm they are storing data of a storage request. - **/ - bspConfirmStoring: AugmentedSubmittable< - ( - nonInclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array, - fileKeysAndProofs: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | ShpFileKeyVerifierFileKeyProof - | { - fileMetadata?: any; - proof?: any; - } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [SpTrieStorageProofCompactProof, Vec>] - >; - /** - * Executed by a BSP to request to stop storing a file. - * - * In the event when a storage request no longer exists for the data the BSP no longer stores, - * it is required that the BSP still has access to the metadata of the initial storage request. - * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever - * the BSP gets that data is up to it. One example could be from the assigned MSP. - * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage - * provider's Merkle Forest. - **/ - bspRequestStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - canServe: bool | boolean | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to volunteer for storing a file. - * - * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, - * so a BSP is strongly advised to check beforehand. Another reason for failure is - * if the maximum number of BSPs has been reached. A successful assignment as BSP means - * that some of the collateral tokens of that MSP are frozen. - **/ - bspVolunteer: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Create and associate a collection with a bucket. - **/ - createAndAssociateCollectionWithBucket: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - createBucket: AugmentedSubmittable< - ( - mspId: H256 | string | Uint8Array, - name: Bytes | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, Bytes, bool] - >; - deleteFile: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - fingerprint: H256 | string | Uint8Array, - maybeInclusionForestProof: - | Option - | null - | Uint8Array - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - ) => SubmittableExtrinsic, - [H256, H256, Bytes, u64, H256, Option] - >; - /** - * Issue a new storage request for a file - **/ - issueStorageRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - mspId: H256 | string | Uint8Array, - peerIds: Vec | (Bytes | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [H256, Bytes, H256, u64, H256, Vec] - >; - mspRespondMoveBucketRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - response: - | PalletFileSystemBucketMoveRequestResponse - | "Accepted" - | "Rejected" - | number - | Uint8Array - ) => SubmittableExtrinsic, - [H256, PalletFileSystemBucketMoveRequestResponse] - >; - /** - * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. - * - * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be - * accepted, rejected or have failed to be processed in the results of the event emitted. - * - * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys - * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that - * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP - * wasn't storing it before. - **/ - mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< - ( - fileKeyResponsesInput: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | PalletFileSystemMspStorageRequestResponse - | { - accept?: any; - reject?: any; - } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [Vec>] - >; - pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< - ( - user: AccountId32 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - forestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, H256, SpTrieStorageProofCompactProof] - >; - requestMoveBucket: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - newMspId: H256 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256] - >; - /** - * Revoke storage request - **/ - revokeStorageRequest: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - setGlobalParameters: AugmentedSubmittable< - ( - replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, - tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option, Option] - >; - /** - * Executed by a SP to stop storing a file from an insolvent user. - * - * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since - * it won't be getting paid for it anymore. - * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to - * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. - **/ - stopStoringForInsolventUser: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { - encodedNodes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] - >; - updateBucketPrivacy: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - messageQueue: { - /** - * Execute an overweight message. - * - * Temporary processing errors will be propagated whereas permanent errors are treated - * as success condition. - * - * - `origin`: Must be `Signed`. - * - `message_origin`: The origin from which the message to be executed arrived. - * - `page`: The page in the queue in which the message to be executed is sitting. - * - `index`: The index into the queue of the message to be executed. - * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution - * of the message. - * - * Benchmark complexity considerations: O(index + weight_limit). - **/ - executeOverweight: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { - Here: any; - } - | { - Parent: any; - } - | { - Sibling: any; - } - | string - | Uint8Array, - page: u32 | AnyNumber | Uint8Array, - index: u32 | AnyNumber | Uint8Array, - weightLimit: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] - >; - /** - * Remove a page which has no more messages remaining to be processed or is stale. - **/ - reapPage: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { - Here: any; - } - | { - Parent: any; - } - | { - Sibling: any; - } - | string - | Uint8Array, - pageIndex: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - nfts: { - /** - * Approve item's attributes to be changed by a delegated third-party account. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: A collection of the item. - * - `item`: The item that holds attributes. - * - `delegate`: The account to delegate permission to change attributes of the item. - * - * Emits `ItemAttributesApprovalAdded` on success. - **/ - approveItemAttributes: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Approve an item to be transferred by a delegated third-party account. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `item`. - * - * - `collection`: The collection of the item to be approved for delegated transfer. - * - `item`: The item to be approved for delegated transfer. - * - `delegate`: The account to delegate permission to transfer the item. - * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the - * number of blocks after which the approval will expire - * - * Emits `TransferApproved` on success. - * - * Weight: `O(1)` - **/ - approveTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Destroy a single item. - * - * The origin must conform to `ForceOrigin` or must be Signed and the signing account must - * be the owner of the `item`. - * - * - `collection`: The collection of the item to be burned. - * - `item`: The item to be burned. - * - * Emits `Burned`. - * - * Weight: `O(1)` - **/ - burn: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Allows to buy an item if it's up for sale. - * - * Origin must be Signed and must not be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item the sender wants to buy. - * - `bid_price`: The price the sender is willing to pay. - * - * Emits `ItemBought` on success. - **/ - buyItem: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - bidPrice: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u128] - >; - /** - * Cancel one of the transfer approvals for a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approval will be cancelled. - * - `item`: The item of the collection of whose approval will be cancelled. - * - `delegate`: The account that is going to loose their approval. - * - * Emits `ApprovalCancelled` on success. - * - * Weight: `O(1)` - **/ - cancelApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Cancel the previously provided approval to change item's attributes. - * All the previously set attributes by the `delegate` will be removed. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: Collection that the item is contained within. - * - `item`: The item that holds attributes. - * - `delegate`: The previously approved account to remove. - * - * Emits `ItemAttributesApprovalRemoved` on success. - **/ - cancelItemAttributesApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - witness: - | PalletNftsCancelAttributesApprovalWitness - | { - accountAttributes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] - >; - /** - * Cancel an atomic swap. - * - * Origin must be Signed. - * Origin must be an owner of the `item` if the deadline hasn't expired. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - * Emits `SwapCancelled` on success. - **/ - cancelSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Claim an atomic swap. - * This method executes a pending swap, that was created by a counterpart before. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `send_collection`: The collection of the item to be sent. - * - `send_item`: The item to be sent. - * - `receive_collection`: The collection of the item to be received. - * - `receive_item`: The item to be received. - * - `witness_price`: A price that was previously agreed on. - * - * Emits `SwapClaimed` on success. - **/ - claimSwap: AugmentedSubmittable< - ( - sendCollection: u32 | AnyNumber | Uint8Array, - sendItem: u32 | AnyNumber | Uint8Array, - receiveCollection: u32 | AnyNumber | Uint8Array, - receiveItem: u32 | AnyNumber | Uint8Array, - witnessPrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { - amount?: any; - direction?: any; - } - | string - ) => SubmittableExtrinsic, - [u32, u32, u32, u32, Option] - >; - /** - * Cancel all the approvals of a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approvals will be cleared. - * - `item`: The item of the collection of whose approvals will be cleared. - * - * Emits `AllApprovalsCancelled` on success. - * - * Weight: `O(1)` - **/ - clearAllTransferApprovals: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Clear an attribute for a collection or item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * attribute. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `maybe_item`: The identifier of the item whose metadata to clear. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - * Emits `AttributeCleared`. - * - * Weight: `O(1)` - **/ - clearAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - key: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes] - >; - /** - * Clear the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose metadata to clear. - * - * Emits `CollectionMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearCollectionMetadata: AugmentedSubmittable< - (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Clear the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `item`: The identifier of the item whose metadata to clear. - * - * Emits `ItemMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Issue a new collection of non-fungible items from a public origin. - * - * This new collection has no items initially and its owner is the origin. - * - * The origin must be Signed and the sender must have sufficient funds free. - * - * `CollectionDeposit` funds of sender are reserved. - * - * Parameters: - * - `admin`: The admin of this collection. The admin is the initial address of each - * member of the collection's admin team. - * - * Emits `Created` event when successful. - * - * Weight: `O(1)` - **/ - create: AugmentedSubmittable< - ( - admin: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { - settings?: any; - maxSupply?: any; - mintSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Register a new atomic swap, declaring an intention to send an `item` in exchange for - * `desired_item` from origin to target on the current blockchain. - * The target can execute the swap during the specified `duration` of blocks (if set). - * Additionally, the price could be set for the desired `item`. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - `desired_collection`: The collection of the desired item. - * - `desired_item`: The desired item an owner wants to receive. - * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. - * - `duration`: A deadline for the swap. Specified by providing the number of blocks - * after which the swap will expire. - * - * Emits `SwapCreated` on success. - **/ - createSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array, - desiredCollection: u32 | AnyNumber | Uint8Array, - maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, - maybePrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { - amount?: any; - direction?: any; - } - | string, - duration: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u32, Option, Option, u32] - >; - /** - * Destroy a collection of fungible items. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * owner of the `collection`. - * - * NOTE: The collection must have 0 items to be destroyed. - * - * - `collection`: The identifier of the collection to be destroyed. - * - `witness`: Information on the items minted in the collection. This must be - * correct. - * - * Emits `Destroyed` event when successful. - * - * Weight: `O(m + c + a)` where: - * - `m = witness.item_metadatas` - * - `c = witness.item_configs` - * - `a = witness.attributes` - **/ - destroy: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - witness: - | PalletNftsDestroyWitness - | { - itemMetadatas?: any; - itemConfigs?: any; - attributes?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsDestroyWitness] - >; - /** - * Change the config of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `config`: The new config of this collection. - * - * Emits `CollectionConfigChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionConfig: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - config: - | PalletNftsCollectionConfig - | { - settings?: any; - maxSupply?: any; - mintSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsCollectionConfig] - >; - /** - * Change the Owner of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `owner`: The new Owner of this collection. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionOwner: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - owner: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Issue a new collection of non-fungible items from a privileged origin. - * - * This new collection has no items initially. - * - * The origin must conform to `ForceOrigin`. - * - * Unlike `create`, no funds are reserved. - * - * - `owner`: The owner of this collection of items. The owner has full superuser - * permissions over this item, but may later change and configure the permissions using - * `transfer_ownership` and `set_team`. - * - * Emits `ForceCreated` event when successful. - * - * Weight: `O(1)` - **/ - forceCreate: AugmentedSubmittable< - ( - owner: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { - settings?: any; - maxSupply?: any; - mintSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Mint an item of a particular collection from a privileged origin. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * Issuer of the `collection`. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `item_config`: A config of the new item. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - forceMint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - itemConfig: - | PalletNftsItemConfig - | { - settings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsItemConfig] - >; - /** - * Force-set an attribute for a collection or item. - * - * Origin must be `ForceOrigin`. - * - * If the attribute already exists and it was set by another account, the deposit - * will be returned to the previous owner. - * - * - `set_as`: An optional owner of the attribute. - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - forceSetAttribute: AugmentedSubmittable< - ( - setAs: Option | null | Uint8Array | AccountId32 | string, - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Disallows specified settings for the whole collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection to be locked. - * - `lock_settings`: The settings to be locked. - * - * Note: it's possible to only lock(set) the setting, but not to unset it. - * - * Emits `CollectionLocked`. - * - * Weight: `O(1)` - **/ - lockCollection: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - lockSettings: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u64] - >; - /** - * Disallows changing the metadata or attributes of the item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin - * of the `collection`. - * - * - `collection`: The collection if the `item`. - * - `item`: An item to be locked. - * - `lock_metadata`: Specifies whether the metadata should be locked. - * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace - * should be locked. - * - * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. - * When the metadata or attributes are locked, it won't be possible the unlock them. - * - * Emits `ItemPropertiesLocked`. - * - * Weight: `O(1)` - **/ - lockItemProperties: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - lockMetadata: bool | boolean | Uint8Array, - lockAttributes: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, bool, bool] - >; - /** - * Disallow further unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become non-transferable. - * - * Emits `ItemTransferLocked`. - * - * Weight: `O(1)` - **/ - lockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Mint an item of a particular collection. - * - * The origin must be Signed and the sender must comply with the `mint_settings` rules. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned - * item_id from that collection needs to be provided within the witness data object. If - * the mint price is set, then it should be additionally confirmed in the `witness_data`. - * - * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - mint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - witnessData: - | Option - | null - | Uint8Array - | PalletNftsMintWitness - | { - ownedItem?: any; - mintPrice?: any; - } - | string - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Mint an item by providing the pre-signed approval. - * - * Origin must be Signed. - * - * - `mint_data`: The pre-signed approval that consists of the information about the item, - * its metadata, attributes, who can mint it (`None` for anyone) and until what block - * number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Issuer of the collection. - * - * Emits `Issued` on success. - * Emits `AttributeSet` if the attributes were provided. - * Emits `ItemMetadataSet` if the metadata was not empty. - **/ - mintPreSigned: AugmentedSubmittable< - ( - mintData: - | PalletNftsPreSignedMint - | { - collection?: any; - item?: any; - attributes?: any; - metadata?: any; - onlyAccount?: any; - deadline?: any; - mintPrice?: any; - } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { - Ed25519: any; - } - | { - Sr25519: any; - } - | { - Ecdsa: any; - } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Allows to pay the tips. - * - * Origin must be Signed. - * - * - `tips`: Tips array. - * - * Emits `TipSent` on every tip transfer. - **/ - payTips: AugmentedSubmittable< - ( - tips: - | Vec - | ( - | PalletNftsItemTip - | { - collection?: any; - item?: any; - receiver?: any; - amount?: any; - } - | string - | Uint8Array - )[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Re-evaluate the deposits on some items. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection of the items to be reevaluated. - * - `items`: The items of the collection whose deposits will be reevaluated. - * - * NOTE: This exists as a best-effort function. Any items which are unknown or - * in the case that the owner account does not have reservable funds to pay for a - * deposit increase are ignored. Generally the owner isn't going to call this on items - * whose existing deposit is less than the refreshed deposit as it would only cost them, - * so it's of little consequence. - * - * It will still return an error in the case that the collection is unknown or the signer - * is not permitted to call it. - * - * Weight: `O(items.len())` - **/ - redeposit: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - items: Vec | (u32 | AnyNumber | Uint8Array)[] - ) => SubmittableExtrinsic, - [u32, Vec] - >; - /** - * Set (or reset) the acceptance of ownership for a particular account. - * - * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a - * provider reference. - * - * - `maybe_collection`: The identifier of the collection whose ownership the signer is - * willing to accept, or if `None`, an indication that the signer is willing to accept no - * ownership transferal. - * - * Emits `OwnershipAcceptanceChanged`. - **/ - setAcceptOwnership: AugmentedSubmittable< - ( - maybeCollection: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Set an attribute for a collection or item. - * - * Origin must be Signed and must conform to the namespace ruleset: - * - `CollectionOwner` namespace could be modified by the `collection` Admin only; - * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` - * should be set in that case; - * - `Account(AccountId)` namespace could be modified only when the `origin` was given a - * permission to do so; - * - * The funds of `origin` are reserved according to the formula: - * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - setAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { - Pallet: any; - } - | { - CollectionOwner: any; - } - | { - ItemOwner: any; - } - | { - Account: any; - } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Set attributes for an item by providing the pre-signed approval. - * - * Origin must be Signed and must be an owner of the `data.item`. - * - * - `data`: The pre-signed approval that consists of the information about the item, - * attributes to update and until what block number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Admin of the collection for the - * `CollectionOwner` namespace. - * - * Emits `AttributeSet` for each provided attribute. - * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. - * Emits `PreSignedAttributesSet` on success. - **/ - setAttributesPreSigned: AugmentedSubmittable< - ( - data: - | PalletNftsPreSignedAttributes - | { - collection?: any; - item?: any; - attributes?: any; - namespace?: any; - deadline?: any; - } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { - Ed25519: any; - } - | { - Sr25519: any; - } - | { - Ecdsa: any; - } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Set the maximum number of items a collection could have. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of - * the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `max_supply`: The maximum number of items a collection could have. - * - * Emits `CollectionMaxSupplySet` event when successful. - **/ - setCollectionMaxSupply: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maxSupply: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Set the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * If the origin is `Signed`, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the item whose metadata to update. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `CollectionMetadataSet`. - * - * Weight: `O(1)` - **/ - setCollectionMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Bytes] - >; - /** - * Set the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * If the origin is Signed, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `item`: The identifier of the item whose metadata to set. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `ItemMetadataSet`. - * - * Weight: `O(1)` - **/ - setMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, Bytes] - >; - /** - * Set (or reset) the price for an item. - * - * Origin must be Signed and must be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item to set the price for. - * - `price`: The price for the item. Pass `None`, to reset the price. - * - `buyer`: Restricts the buy operation to a specific account. - * - * Emits `ItemPriceSet` on success if the price is not `None`. - * Emits `ItemPriceRemoved` on success if the price is `None`. - **/ - setPrice: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - price: Option | null | Uint8Array | u128 | AnyNumber, - whitelistedBuyer: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - ) => SubmittableExtrinsic, - [u32, u32, Option, Option] - >; - /** - * Change the Issuer, Admin and Freezer of a collection. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `collection`. - * - * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it - * after to `Some(account)`. - * - * - `collection`: The collection whose team should be changed. - * - `issuer`: The new Issuer of this collection. - * - `admin`: The new Admin of this collection. - * - `freezer`: The new Freezer of this collection. - * - * Emits `TeamChanged`. - * - * Weight: `O(1)` - **/ - setTeam: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - issuer: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string, - admin: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string, - freezer: - | Option - | null - | Uint8Array - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - ) => SubmittableExtrinsic, - [u32, Option, Option, Option] - >; - /** - * Move an item from the sender account to another. - * - * Origin must be Signed and the signing account must be either: - * - the Owner of the `item`; - * - the approved delegate for the `item` (in this case, the approval is reset). - * - * Arguments: - * - `collection`: The collection of the item to be transferred. - * - `item`: The item to be transferred. - * - `dest`: The account to receive ownership of the item. - * - * Emits `Transferred`. - * - * Weight: `O(1)` - **/ - transfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - dest: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Change the Owner of a collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection whose owner should be changed. - * - `owner`: The new Owner of this collection. They must have called - * `set_accept_ownership` with `collection` in order for this operation to succeed. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - transferOwnership: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - newOwner: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Re-allow unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become transferable. - * - * Emits `ItemTransferUnlocked`. - * - * Weight: `O(1)` - **/ - unlockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Update mint settings. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer - * of the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `mint_settings`: The new mint settings. - * - * Emits `CollectionMintSettingsUpdated` event when successful. - **/ - updateMintSettings: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - mintSettings: - | PalletNftsMintSettings - | { - mintType?: any; - price?: any; - startBlock?: any; - endBlock?: any; - defaultItemSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsMintSettings] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainInfo: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainSystem: { - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec - * version and name should be verified on upgrade. Since the authorization only has a hash, - * it cannot actually perform the verification. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - ( - codeHash: H256 | string | Uint8Array, - checkVersion: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Note that this function will not apply the new `code`, but only attempt to schedule the - * upgrade with the Relay Chain. - * - * All origins are allowed. - **/ - enactAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the current validation data. - * - * This should be invoked exactly once per block. It will panic at the finalization - * phase if the call was not invoked. - * - * The dispatch origin for this call must be `Inherent` - * - * As a side effect, this function upgrades the current validation function - * if the appropriate time has come. - **/ - setValidationData: AugmentedSubmittable< - ( - data: - | CumulusPrimitivesParachainInherentParachainInherentData - | { - validationData?: any; - relayChainState?: any; - downwardMessages?: any; - horizontalMessages?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesParachainInherentParachainInherentData] - >; - sudoSendUpwardMessage: AugmentedSubmittable< - (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parameters: { - /** - * Set the value of a parameter. - * - * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be - * deleted by setting them to `None`. - **/ - setParameter: AugmentedSubmittable< - ( - keyValue: - | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters - | { - RuntimeConfig: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - paymentStreams: { - /** - * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. - * - * The dispatch origin for this call must be Signed. - * The origin must be the Provider that has at least one type of payment stream with the User. - * - * Parameters: - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that a payment stream between the signer (Provider) and the User exists - * 3. If there is a fixed-rate payment stream: - * 1. Get the rate of the payment stream - * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream - * 3. Calculate the amount to charge doing `rate * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the last charged tick number of the payment stream - * 4. If there is a dynamic-rate payment stream: - * 1. Get the amount provided by the Provider - * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick - * 3. Calculate the amount to charge doing `amount_provided * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the price index when the stream was last charged of the payment stream - * - * Emits a `PaymentStreamCharged` event when successful. - * - * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic - * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. - **/ - chargePaymentStreams: AugmentedSubmittable< - (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, - * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Check that the cooldown period has passed since the user was flagged as without funds. - * 4. Check if there's any outstanding debt and charge it. This is done by: - * a. Releasing any remaining funds held as a deposit for each payment stream. - * b. Getting all payment streams of the user and charging them, paying the Providers for the services. - * c. Returning the User any remaining funds. - * d. Deleting all payment streams of the user. - * 5. Unflag the user as without funds. - * - * Emits a 'UserSolvent' event when successful. - * - * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `amount_provided`: The initial amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `DynamicRatePaymentStreamCreated` event when successful. - **/ - createDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - amountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `rate`: The initial rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `FixedRatePaymentStreamCreated` event when successful. - **/ - createFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - rate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `DynamicRatePaymentStreamDeleted` event when successful. - **/ - deleteDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `FixedRatePaymentStreamDeleted` event when successful. - **/ - deleteFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover - * its deposits. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Release the user's funds that were held as a deposit for each payment stream. - * 4. Get all payment streams of the user and charge them, paying the Providers for the services. - * 5. Delete all payment streams of the user. - * - * Emits a 'UserPaidDebts' event when successful. - * - * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_amount_provided`: The new amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `DynamicRatePaymentStreamUpdated` event when successful. - **/ - updateDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newAmountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_rate`: The new rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `FixedRatePaymentStreamUpdated` event when successful. - **/ - updateFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newRate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - polkadotXcm: { - /** - * Claims assets trapped on this pallet because of leftover assets during XCM execution. - * - * - `origin`: Anyone can call this extrinsic. - * - `assets`: The exact assets that were trapped. Use the version to specify what version - * was the latest when they were trapped. - * - `beneficiary`: The location/account where the claimed assets will be deposited. - **/ - claimAssets: AugmentedSubmittable< - ( - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedAssets, XcmVersionedLocation] - >; - /** - * Execute an XCM message from a local, signed, origin. - * - * An event is deposited indicating whether `msg` could be executed completely or only - * partially. - * - * No more than `max_weight` will be used in its attempted execution. If this is less than - * the maximum amount of weight that the message could take to be executed, then no - * execution attempt will be made. - **/ - execute: AugmentedSubmittable< - ( - message: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - maxWeight: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedXcm, SpWeightsWeightV2Weight] - >; - /** - * Set a safe XCM version (the version that XCM should be encoded with if the most recent - * version a destination can accept is unknown). - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. - **/ - forceDefaultXcmVersion: AugmentedSubmittable< - ( - maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Ask a location to notify us regarding their XCM version and any changes to it. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we should subscribe for XCM version notifications. - **/ - forceSubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Set or unset the global suspension state of the XCM executor. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `suspended`: `true` to suspend, `false` to resume. - **/ - forceSuspension: AugmentedSubmittable< - (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * Require that a particular destination should no longer notify us regarding any XCM - * version changes. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we are currently subscribed for XCM version - * notifications which we no longer desire. - **/ - forceUnsubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Extoll that a particular destination can be communicated with through a particular - * version of XCM. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The destination that is being described. - * - `xcm_version`: The latest version of XCM that `location` supports. - **/ - forceXcmVersion: AugmentedSubmittable< - ( - location: - | StagingXcmV4Location - | { - parents?: any; - interior?: any; - } - | string - | Uint8Array, - version: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [StagingXcmV4Location, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedReserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedTeleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - reserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - send: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - message: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedXcm] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * **This function is deprecated: Use `limited_teleport_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - teleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve, or through teleports. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for - * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the - * operation will fail and the sent assets may be at risk. - * - * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable - * to `dest`, no limitations imposed on `fees`. - * - for local reserve: transfer assets to sovereign account of destination chain and - * forward a notification XCM to `dest` to mint and deposit reserve-based assets to - * `beneficiary`. - * - for destination reserve: burn local assets and forward a notification to `dest` chain - * to withdraw the reserve assets from this chain's sovereign account and deposit them - * to `beneficiary`. - * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves - * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint - * and deposit reserve-based assets to `beneficiary`. - * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport - * assets and deposit them to `beneficiary`. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `X2(Parent, - * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send - * from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer assets from the local chain to the destination chain using explicit transfer - * types for assets and fees. - * - * `assets` must have same reserve location or may be teleportable to `dest`. Caller must - * provide the `assets_transfer_type` to be used for `assets`: - * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `TransferType::DestinationReserve`: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` - * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another - * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically - * the remote `reserve` is Asset Hub. - * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to - * mint/teleport assets and deposit them to `beneficiary`. - * - * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to - * buy execution using transferred `assets` identified by `remote_fees_id`. - * Make sure enough of the specified `remote_fees_id` asset is included in the given list - * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * `remote_fees_id` may use different transfer type than rest of `assets` and can be - * specified through `fees_transfer_type`. - * - * The caller needs to specify what should happen to the transferred assets once they reach - * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which - * contains the instructions to execute on `dest` as a final step. - * This is usually as simple as: - * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, - * but could be something more exotic like sending the `assets` even further. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from - * parachain across a bridge to another ecosystem destination. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. - * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. - * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. - * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the - * transfer, which also determines what happens to the assets on the destination chain. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssetsUsingTypeAndThen: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - assetsTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { - Teleport: any; - } - | { - LocalReserve: any; - } - | { - DestinationReserve: any; - } - | { - RemoteReserve: any; - } - | string - | Uint8Array, - remoteFeesId: - | XcmVersionedAssetId - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - feesTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { - Teleport: any; - } - | { - LocalReserve: any; - } - | { - DestinationReserve: any; - } - | { - RemoteReserve: any; - } - | string - | Uint8Array, - customXcmOnDest: - | XcmVersionedXcm - | { - V2: any; - } - | { - V3: any; - } - | { - V4: any; - } - | string - | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { - Unlimited: any; - } - | { - Limited: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [ - XcmVersionedLocation, - XcmVersionedAssets, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedAssetId, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedXcm, - XcmV3WeightLimit - ] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - proofsDealer: { - /** - * Introduce a new challenge. - * - * This function allows anyone to add a new challenge to the `ChallengesQueue`. - * The challenge will be dispatched in the coming blocks. - * Users are charged a small fee for submitting a challenge, which - * goes to the Treasury. - **/ - challenge: AugmentedSubmittable< - (key: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Initialise a Provider's challenge cycle. - * - * Only callable by sudo. - * - * Sets the last tick the Provider submitted a proof for to the current tick, and sets the - * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. - **/ - forceInitialiseChallengeCycle: AugmentedSubmittable< - (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Set the [`ChallengesTickerPaused`] to `true` or `false`. - * - * Only callable by sudo. - **/ - setPaused: AugmentedSubmittable< - (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * For a Provider to submit a proof. - * - * Checks that `provider` is a registered Provider. If none - * is provided, the proof submitter is considered to be the Provider. - * Relies on a Providers pallet to get the root for the Provider. - * Validates that the proof corresponds to a challenge that was made in the past, - * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the - * Provider should have submitted a proof is calculated based on the last tick they - * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for - * that Provider, which is a function of their stake. - * This extrinsic also checks that there hasn't been a checkpoint challenge round - * in between the last time the Provider submitted a proof for and the tick - * for which the proof is being submitted. If there has been, the Provider is - * subject to slashing. - * - * If valid: - * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number - * of ticks corresponding to the stake of the Provider. - * - Registers this tick as the last tick in which the Provider submitted a proof. - * - * Execution of this extrinsic should be refunded if the proof is valid. - **/ - submitProof: AugmentedSubmittable< - ( - proof: - | PalletProofsDealerProof - | { - forestProof?: any; - keyProofs?: any; - } - | string - | Uint8Array, - provider: Option | null | Uint8Array | H256 | string - ) => SubmittableExtrinsic, - [PalletProofsDealerProof, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - providers: { - /** - * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to add a value proposition. - * - * Parameters: - * - `new_value_prop`: The value proposition that the MSP wants to add to its service. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has not reached the maximum amount of value propositions - * 4. Check that the value proposition is valid (size and any other relevant checks) - * 5. Update the MSPs storage to add the value proposition (with its identifier) - * - * Emits `ValuePropAdded` event when successful. - **/ - addValueProp: AugmentedSubmittable< - ( - newValueProp: - | PalletStorageProvidersValueProposition - | { - identifier?: any; - dataLimit?: any; - protocols?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [PalletStorageProvidersValueProposition] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Backup Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a BSP - * 3. Check that the BSP has no storage assigned to it - * 4. Update the BSPs storage, removing the signer as an BSP - * 5. Update the total capacity of all BSPs, removing the capacity of the signer - * 6. Return the deposit to the signer - * 7. Decrement the storage that holds total amount of BSPs currently in the system - * - * Emits `BspSignOffSuccess` event when successful. - **/ - bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer has requested to sign up as a SP - * 3. Delete the request from the Sign Up Requests storage - * 4. Return the deposit to the signer - * - * Emits `SignUpRequestCanceled` event when successful. - **/ - cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to change their amount of stored data - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to change its capacity. - * - * Parameters: - * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a SP - * 3. Check that enough time has passed since the last time the SP changed its capacity - * 4. Check that the new capacity is greater than the minimum required by the runtime - * 5. Check that the new capacity is greater than the data used by this SP - * 6. Calculate the new deposit needed for this new capacity - * 7. Check to see if the new deposit needed is greater or less than the current deposit - * a. If the new deposit is greater than the current deposit: - * i. Check that the signer has enough funds to pay this extra deposit - * ii. Hold the extra deposit from the signer - * b. If the new deposit is less than the current deposit, return the held difference to the signer - * 7. Update the SPs storage to change the total data - * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) - * - * Emits `CapacityChanged` event when successful. - **/ - changeCapacity: AugmentedSubmittable< - (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider, except when providing a - * `provider_account` parameter, in which case the origin can be any account. - * - * Parameters: - * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer - * will be considered the account that requested to sign up. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed - * 2. Check that the account received has requested to register as a SP - * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request - * 4. Check that the request has not expired - * 5. Register the signer as a MSP or BSP with the data provided in the request - * - * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. - * - * Notes: - * - This extrinsic could be called by the user itself or by a third party - * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP - * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating - **/ - confirmSignUp: AugmentedSubmittable< - ( - providerAccount: Option | null | Uint8Array | AccountId32 | string - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Backup Storage Provider. - * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the steps of: - * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. - **/ - forceBspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - bspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array, - weight: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, AccountId32, Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Main Storage Provider. - * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the steps of: - * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. - **/ - forceMspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - mspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { - identifier?: any; - dataLimit?: any; - protocols?: any; - } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Main Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) - * 4. Update the MSPs storage, removing the signer as an MSP - * 5. Return the deposit to the signer - * 6. Decrement the storage that holds total amount of MSPs currently in the system - * - * Emits `MspSignOffSuccess` event when successful. - **/ - mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP - * - * Emits `BspRequestSignUpSuccess` event when successful. - **/ - requestBspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime. - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP - * - * Emits `MspRequestSignUpSuccess` event when successful. - **/ - requestMspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { - identifier?: any; - dataLimit?: any; - protocols?: any; - } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic to slash a _slashable_ Storage Provider. - * - * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. - * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. - **/ - slash: AugmentedSubmittable< - (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - randomness: { - /** - * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the - * relay chain into a variable that can then be used as a seed for commitments that happened during - * the previous relay chain epoch - **/ - setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - session: { - /** - * Removes any session key(s) of the function caller. - * - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be Signed and the account must be either be - * convertible to a validator ID using the chain's typical addressing system (this usually - * means being a controller account) or directly convertible into a validator ID (which - * usually means being a stash account). - * - * ## Complexity - * - `O(1)` in number of key types. Actual cost depends on the number of length of - * `T::Keys::key_ids()` which is fixed. - **/ - purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Sets the session key(s) of the function caller to `keys`. - * Allows an account to set its session key prior to becoming a validator. - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be signed. - * - * ## Complexity - * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is - * fixed. - **/ - setKeys: AugmentedSubmittable< - ( - keys: - | StorageHubRuntimeSessionKeys - | { - aura?: any; - } - | string - | Uint8Array, - proof: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeSessionKeys, Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - sudo: { - /** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - **/ - removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - **/ - setKey: AugmentedSubmittable< - ( - updated: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - **/ - sudo: AugmentedSubmittable< - (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, - [Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoAs: AugmentedSubmittable< - ( - who: - | MultiAddress - | { - Id: any; - } - | { - Index: any; - } - | { - Raw: any; - } - | { - Address32: any; - } - | { - Address20: any; - } - | string - | Uint8Array, - call: Call | IMethod | string | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoUncheckedWeight: AugmentedSubmittable< - ( - call: Call | IMethod | string | Uint8Array, - weight: - | SpWeightsWeightV2Weight - | { - refTime?: any; - proofSize?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [Call, SpWeightsWeightV2Weight] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - system: { - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - **/ - applyAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - **/ - authorizeUpgradeWithoutChecks: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - **/ - killPrefix: AugmentedSubmittable< - ( - prefix: Bytes | string | Uint8Array, - subkeys: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [Bytes, u32] - >; - /** - * Kill some items from storage. - **/ - killStorage: AugmentedSubmittable< - (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, - [Vec] - >; - /** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - **/ - remark: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Make some on-chain remark and emit event. - **/ - remarkWithEvent: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code. - **/ - setCode: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - **/ - setCodeWithoutChecks: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the number of pages in the WebAssembly environment's heap. - **/ - setHeapPages: AugmentedSubmittable< - (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Set some items of storage. - **/ - setStorage: AugmentedSubmittable< - ( - items: - | Vec> - | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] - ) => SubmittableExtrinsic, - [Vec>] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - timestamp: { - /** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - **/ - set: AugmentedSubmittable< - (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [Compact] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - xcmpQueue: { - /** - * Resumes all XCM executions for the XCMP queue. - * - * Note that this function doesn't change the status of the in/out bound channels. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Overwrites the number of pages which must be in the queue after which we drop any - * further messages from the channel. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.drop_threshold` - **/ - updateDropThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which the queue must be reduced to before it signals - * that message sending may recommence after it has been suspended. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.resume_threshold` - **/ - updateResumeThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which must be in the queue for the other side to be - * told to suspend their sending. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.suspend_value` - **/ - updateSuspendThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - } -} +import "@polkadot/api-base/types/submittable"; +import type { + ApiTypes, + AugmentedSubmittable, + SubmittableExtrinsic, + SubmittableExtrinsicFunction +} from "@polkadot/api-base/types"; +import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + PalletBalancesAdjustmentDirection, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemMspStorageRequestResponse, + PalletNftsAttributeNamespace, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsDestroyWitness, + PalletNftsItemConfig, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintWitness, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersValueProposition, + ShpFileKeyVerifierFileKeyProof, + SpRuntimeMultiSignature, + SpTrieStorageProofCompactProof, + SpWeightsWeightV2Weight, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV4Location, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeSessionKeys, + XcmV3WeightLimit, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedXcm +} from "@polkadot/types/lookup"; +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = + SubmittableExtrinsicFunction; +declare module "@polkadot/api-base/types/submittable" { + interface AugmentedSubmittables { + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable< + ( + value: Compact | AnyNumber | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [Compact, bool] + >; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable< + ( + direction: + | PalletBalancesAdjustmentDirection + | "Increase" + | "Decrease" + | number + | Uint8Array, + delta: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [PalletBalancesAdjustmentDirection, Compact] + >; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable< + ( + who: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + newFree: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable< + ( + source: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, MultiAddress, Compact] + >; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable< + ( + who: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + amount: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, u128] + >; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, bool] + >; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable< + ( + who: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bucketNfts: { + /** + * Share access to files within a bucket with another account. + * + * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. + **/ + shareAccess: AugmentedSubmittable< + ( + recipient: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [MultiAddress, H256, u32, Option] + >; + /** + * Update read access for an item. + **/ + updateReadAccess: AugmentedSubmittable< + ( + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [H256, u32, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + collatorSelection: { + /** + * Add a new account `who` to the list of `Invulnerables` collators. `who` must have + * registered session keys. If `who` is a candidate, they will be removed. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + addInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Deregister `origin` as a collator candidate. Note that the collator can only leave on + * session change. The `CandidacyBond` will be unreserved immediately. + * + * This call will fail if the total number of candidates would drop below + * `MinEligibleCollators`. + **/ + leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register this account as a collator candidate. The account must (a) already have + * registered session keys and (b) be able to reserve the `CandidacyBond`. + * + * This call is not available to `Invulnerable` collators. + **/ + registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must + * be sorted. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + removeInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Set the candidacy bond amount. + * + * If the candidacy bond is increased by this call, all current candidates which have a + * deposit lower than the new bond will be kicked from the list and get their deposits + * back. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setCandidacyBond: AugmentedSubmittable< + (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Set the ideal number of non-invulnerable collators. If lowering this number, then the + * number of running collators could be higher than this figure. Aside from that edge case, + * there should be no other way to have more candidates than the desired number. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setDesiredCandidates: AugmentedSubmittable< + (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Set the list of invulnerable (fixed) collators. These collators must do some + * preparation, namely to have registered session keys. + * + * The call will remove any accounts that have not registered keys from the set. That is, + * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as + * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. + * + * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It + * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A + * `batch_all` can also be used to enforce atomicity. If any candidates are included in + * `new`, they should be removed with `remove_invulnerable_candidate` after execution. + * + * Must be called by the `UpdateOrigin`. + **/ + setInvulnerables: AugmentedSubmittable< + ( + updated: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * The caller `origin` replaces a candidate `target` in the collator candidate list by + * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than + * the existing bond of the target it is trying to replace. + * + * This call will fail if the caller is already a collator candidate or invulnerable, the + * caller does not have registered session keys, the target is not a collator candidate, + * and/or the `deposit` amount cannot be reserved. + **/ + takeCandidateSlot: AugmentedSubmittable< + ( + deposit: u128 | AnyNumber | Uint8Array, + target: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u128, AccountId32] + >; + /** + * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. + * + * Setting a `new_deposit` that is lower than the current deposit while `origin` is + * occupying a top-`DesiredCandidates` slot is not allowed. + * + * This call will fail if `origin` is not a collator candidate, the updated bond is lower + * than the minimum candidacy bond, and/or the amount cannot be reserved. + **/ + updateBond: AugmentedSubmittable< + (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + cumulusXcm: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fileSystem: { + /** + * Add yourself as a data server for providing the files of the bucket requested to be moved. + **/ + bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Executed by a BSP to confirm to stop storing a file. + * + * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. + * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the + * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. + **/ + bspConfirmStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to confirm they are storing data of a storage request. + **/ + bspConfirmStoring: AugmentedSubmittable< + ( + nonInclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array, + fileKeysAndProofs: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | ShpFileKeyVerifierFileKeyProof + | { + fileMetadata?: any; + proof?: any; + } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [SpTrieStorageProofCompactProof, Vec>] + >; + /** + * Executed by a BSP to request to stop storing a file. + * + * In the event when a storage request no longer exists for the data the BSP no longer stores, + * it is required that the BSP still has access to the metadata of the initial storage request. + * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever + * the BSP gets that data is up to it. One example could be from the assigned MSP. + * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage + * provider's Merkle Forest. + **/ + bspRequestStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + canServe: bool | boolean | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to volunteer for storing a file. + * + * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, + * so a BSP is strongly advised to check beforehand. Another reason for failure is + * if the maximum number of BSPs has been reached. A successful assignment as BSP means + * that some of the collateral tokens of that MSP are frozen. + **/ + bspVolunteer: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Create and associate a collection with a bucket. + **/ + createAndAssociateCollectionWithBucket: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + createBucket: AugmentedSubmittable< + ( + mspId: H256 | string | Uint8Array, + name: Bytes | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, Bytes, bool] + >; + deleteFile: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + fingerprint: H256 | string | Uint8Array, + maybeInclusionForestProof: + | Option + | null + | Uint8Array + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + ) => SubmittableExtrinsic, + [H256, H256, Bytes, u64, H256, Option] + >; + /** + * Issue a new storage request for a file + **/ + issueStorageRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + mspId: H256 | string | Uint8Array, + peerIds: Vec | (Bytes | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [H256, Bytes, H256, u64, H256, Vec] + >; + mspRespondMoveBucketRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + response: + | PalletFileSystemBucketMoveRequestResponse + | "Accepted" + | "Rejected" + | number + | Uint8Array + ) => SubmittableExtrinsic, + [H256, PalletFileSystemBucketMoveRequestResponse] + >; + /** + * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. + * + * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be + * accepted, rejected or have failed to be processed in the results of the event emitted. + * + * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys + * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that + * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP + * wasn't storing it before. + **/ + mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< + ( + fileKeyResponsesInput: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | PalletFileSystemMspStorageRequestResponse + | { + accept?: any; + reject?: any; + } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [Vec>] + >; + pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< + ( + user: AccountId32 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + forestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, H256, SpTrieStorageProofCompactProof] + >; + requestMoveBucket: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + newMspId: H256 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256] + >; + /** + * Revoke storage request + **/ + revokeStorageRequest: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + setGlobalParameters: AugmentedSubmittable< + ( + replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, + tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option, Option] + >; + /** + * Executed by a SP to stop storing a file from an insolvent user. + * + * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since + * it won't be getting paid for it anymore. + * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to + * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. + **/ + stopStoringForInsolventUser: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { + encodedNodes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] + >; + updateBucketPrivacy: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { + Here: any; + } + | { + Parent: any; + } + | { + Sibling: any; + } + | string + | Uint8Array, + page: u32 | AnyNumber | Uint8Array, + index: u32 | AnyNumber | Uint8Array, + weightLimit: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] + >; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { + Here: any; + } + | { + Parent: any; + } + | { + Sibling: any; + } + | string + | Uint8Array, + pageIndex: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + bidPrice: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u128] + >; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + witness: + | PalletNftsCancelAttributesApprovalWitness + | { + accountAttributes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] + >; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable< + ( + sendCollection: u32 | AnyNumber | Uint8Array, + sendItem: u32 | AnyNumber | Uint8Array, + receiveCollection: u32 | AnyNumber | Uint8Array, + receiveItem: u32 | AnyNumber | Uint8Array, + witnessPrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { + amount?: any; + direction?: any; + } + | string + ) => SubmittableExtrinsic, + [u32, u32, u32, u32, Option] + >; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + key: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes] + >; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable< + (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable< + ( + admin: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { + settings?: any; + maxSupply?: any; + mintSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array, + desiredCollection: u32 | AnyNumber | Uint8Array, + maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, + maybePrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { + amount?: any; + direction?: any; + } + | string, + duration: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u32, Option, Option, u32] + >; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + witness: + | PalletNftsDestroyWitness + | { + itemMetadatas?: any; + itemConfigs?: any; + attributes?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsDestroyWitness] + >; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + config: + | PalletNftsCollectionConfig + | { + settings?: any; + maxSupply?: any; + mintSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsCollectionConfig] + >; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + owner: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable< + ( + owner: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { + settings?: any; + maxSupply?: any; + mintSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + itemConfig: + | PalletNftsItemConfig + | { + settings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsItemConfig] + >; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable< + ( + setAs: Option | null | Uint8Array | AccountId32 | string, + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + lockSettings: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u64] + >; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + lockMetadata: bool | boolean | Uint8Array, + lockAttributes: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, bool, bool] + >; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + witnessData: + | Option + | null + | Uint8Array + | PalletNftsMintWitness + | { + ownedItem?: any; + mintPrice?: any; + } + | string + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable< + ( + mintData: + | PalletNftsPreSignedMint + | { + collection?: any; + item?: any; + attributes?: any; + metadata?: any; + onlyAccount?: any; + deadline?: any; + mintPrice?: any; + } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { + Ed25519: any; + } + | { + Sr25519: any; + } + | { + Ecdsa: any; + } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable< + ( + tips: + | Vec + | ( + | PalletNftsItemTip + | { + collection?: any; + item?: any; + receiver?: any; + amount?: any; + } + | string + | Uint8Array + )[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + items: Vec | (u32 | AnyNumber | Uint8Array)[] + ) => SubmittableExtrinsic, + [u32, Vec] + >; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable< + ( + maybeCollection: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { + Pallet: any; + } + | { + CollectionOwner: any; + } + | { + ItemOwner: any; + } + | { + Account: any; + } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable< + ( + data: + | PalletNftsPreSignedAttributes + | { + collection?: any; + item?: any; + attributes?: any; + namespace?: any; + deadline?: any; + } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { + Ed25519: any; + } + | { + Sr25519: any; + } + | { + Ecdsa: any; + } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maxSupply: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Bytes] + >; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, Bytes] + >; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + price: Option | null | Uint8Array | u128 | AnyNumber, + whitelistedBuyer: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + ) => SubmittableExtrinsic, + [u32, u32, Option, Option] + >; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + issuer: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string, + admin: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string, + freezer: + | Option + | null + | Uint8Array + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + ) => SubmittableExtrinsic, + [u32, Option, Option, Option] + >; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + dest: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + newOwner: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + mintSettings: + | PalletNftsMintSettings + | { + mintType?: any; + price?: any; + startBlock?: any; + endBlock?: any; + defaultItemSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsMintSettings] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainInfo: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainSystem: { + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec + * version and name should be verified on upgrade. Since the authorization only has a hash, + * it cannot actually perform the verification. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + ( + codeHash: H256 | string | Uint8Array, + checkVersion: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Note that this function will not apply the new `code`, but only attempt to schedule the + * upgrade with the Relay Chain. + * + * All origins are allowed. + **/ + enactAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the current validation data. + * + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. + * + * The dispatch origin for this call must be `Inherent` + * + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ + setValidationData: AugmentedSubmittable< + ( + data: + | CumulusPrimitivesParachainInherentParachainInherentData + | { + validationData?: any; + relayChainState?: any; + downwardMessages?: any; + horizontalMessages?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesParachainInherentParachainInherentData] + >; + sudoSendUpwardMessage: AugmentedSubmittable< + (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable< + ( + keyValue: + | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters + | { + RuntimeConfig: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paymentStreams: { + /** + * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. + * + * The dispatch origin for this call must be Signed. + * The origin must be the Provider that has at least one type of payment stream with the User. + * + * Parameters: + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that a payment stream between the signer (Provider) and the User exists + * 3. If there is a fixed-rate payment stream: + * 1. Get the rate of the payment stream + * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream + * 3. Calculate the amount to charge doing `rate * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the last charged tick number of the payment stream + * 4. If there is a dynamic-rate payment stream: + * 1. Get the amount provided by the Provider + * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick + * 3. Calculate the amount to charge doing `amount_provided * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the price index when the stream was last charged of the payment stream + * + * Emits a `PaymentStreamCharged` event when successful. + * + * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic + * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. + **/ + chargePaymentStreams: AugmentedSubmittable< + (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, + * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Check that the cooldown period has passed since the user was flagged as without funds. + * 4. Check if there's any outstanding debt and charge it. This is done by: + * a. Releasing any remaining funds held as a deposit for each payment stream. + * b. Getting all payment streams of the user and charging them, paying the Providers for the services. + * c. Returning the User any remaining funds. + * d. Deleting all payment streams of the user. + * 5. Unflag the user as without funds. + * + * Emits a 'UserSolvent' event when successful. + * + * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `amount_provided`: The initial amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `DynamicRatePaymentStreamCreated` event when successful. + **/ + createDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + amountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `rate`: The initial rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `FixedRatePaymentStreamCreated` event when successful. + **/ + createFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + rate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `DynamicRatePaymentStreamDeleted` event when successful. + **/ + deleteDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `FixedRatePaymentStreamDeleted` event when successful. + **/ + deleteFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover + * its deposits. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Release the user's funds that were held as a deposit for each payment stream. + * 4. Get all payment streams of the user and charge them, paying the Providers for the services. + * 5. Delete all payment streams of the user. + * + * Emits a 'UserPaidDebts' event when successful. + * + * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_amount_provided`: The new amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `DynamicRatePaymentStreamUpdated` event when successful. + **/ + updateDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newAmountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_rate`: The new rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `FixedRatePaymentStreamUpdated` event when successful. + **/ + updateFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newRate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + polkadotXcm: { + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable< + ( + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedAssets, XcmVersionedLocation] + >; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable< + ( + message: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + maxWeight: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedXcm, SpWeightsWeightV2Weight] + >; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable< + ( + maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable< + (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable< + ( + location: + | StagingXcmV4Location + | { + parents?: any; + interior?: any; + } + | string + | Uint8Array, + version: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [StagingXcmV4Location, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + send: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + message: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedXcm] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + assetsTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { + Teleport: any; + } + | { + LocalReserve: any; + } + | { + DestinationReserve: any; + } + | { + RemoteReserve: any; + } + | string + | Uint8Array, + remoteFeesId: + | XcmVersionedAssetId + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + feesTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { + Teleport: any; + } + | { + LocalReserve: any; + } + | { + DestinationReserve: any; + } + | { + RemoteReserve: any; + } + | string + | Uint8Array, + customXcmOnDest: + | XcmVersionedXcm + | { + V2: any; + } + | { + V3: any; + } + | { + V4: any; + } + | string + | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { + Unlimited: any; + } + | { + Limited: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [ + XcmVersionedLocation, + XcmVersionedAssets, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedAssetId, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedXcm, + XcmV3WeightLimit + ] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proofsDealer: { + /** + * Introduce a new challenge. + * + * This function allows anyone to add a new challenge to the `ChallengesQueue`. + * The challenge will be dispatched in the coming blocks. + * Users are charged a small fee for submitting a challenge, which + * goes to the Treasury. + **/ + challenge: AugmentedSubmittable< + (key: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Initialise a Provider's challenge cycle. + * + * Only callable by sudo. + * + * Sets the last tick the Provider submitted a proof for to the current tick, and sets the + * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. + **/ + forceInitialiseChallengeCycle: AugmentedSubmittable< + (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Set the [`ChallengesTickerPaused`] to `true` or `false`. + * + * Only callable by sudo. + **/ + setPaused: AugmentedSubmittable< + (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * For a Provider to submit a proof. + * + * Checks that `provider` is a registered Provider. If none + * is provided, the proof submitter is considered to be the Provider. + * Relies on a Providers pallet to get the root for the Provider. + * Validates that the proof corresponds to a challenge that was made in the past, + * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the + * Provider should have submitted a proof is calculated based on the last tick they + * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for + * that Provider, which is a function of their stake. + * This extrinsic also checks that there hasn't been a checkpoint challenge round + * in between the last time the Provider submitted a proof for and the tick + * for which the proof is being submitted. If there has been, the Provider is + * subject to slashing. + * + * If valid: + * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number + * of ticks corresponding to the stake of the Provider. + * - Registers this tick as the last tick in which the Provider submitted a proof. + * + * Execution of this extrinsic should be refunded if the proof is valid. + **/ + submitProof: AugmentedSubmittable< + ( + proof: + | PalletProofsDealerProof + | { + forestProof?: any; + keyProofs?: any; + } + | string + | Uint8Array, + provider: Option | null | Uint8Array | H256 | string + ) => SubmittableExtrinsic, + [PalletProofsDealerProof, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + providers: { + /** + * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to add a value proposition. + * + * Parameters: + * - `new_value_prop`: The value proposition that the MSP wants to add to its service. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has not reached the maximum amount of value propositions + * 4. Check that the value proposition is valid (size and any other relevant checks) + * 5. Update the MSPs storage to add the value proposition (with its identifier) + * + * Emits `ValuePropAdded` event when successful. + **/ + addValueProp: AugmentedSubmittable< + ( + newValueProp: + | PalletStorageProvidersValueProposition + | { + identifier?: any; + dataLimit?: any; + protocols?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [PalletStorageProvidersValueProposition] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Backup Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a BSP + * 3. Check that the BSP has no storage assigned to it + * 4. Update the BSPs storage, removing the signer as an BSP + * 5. Update the total capacity of all BSPs, removing the capacity of the signer + * 6. Return the deposit to the signer + * 7. Decrement the storage that holds total amount of BSPs currently in the system + * + * Emits `BspSignOffSuccess` event when successful. + **/ + bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer has requested to sign up as a SP + * 3. Delete the request from the Sign Up Requests storage + * 4. Return the deposit to the signer + * + * Emits `SignUpRequestCanceled` event when successful. + **/ + cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to change their amount of stored data + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to change its capacity. + * + * Parameters: + * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a SP + * 3. Check that enough time has passed since the last time the SP changed its capacity + * 4. Check that the new capacity is greater than the minimum required by the runtime + * 5. Check that the new capacity is greater than the data used by this SP + * 6. Calculate the new deposit needed for this new capacity + * 7. Check to see if the new deposit needed is greater or less than the current deposit + * a. If the new deposit is greater than the current deposit: + * i. Check that the signer has enough funds to pay this extra deposit + * ii. Hold the extra deposit from the signer + * b. If the new deposit is less than the current deposit, return the held difference to the signer + * 7. Update the SPs storage to change the total data + * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) + * + * Emits `CapacityChanged` event when successful. + **/ + changeCapacity: AugmentedSubmittable< + (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider, except when providing a + * `provider_account` parameter, in which case the origin can be any account. + * + * Parameters: + * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer + * will be considered the account that requested to sign up. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed + * 2. Check that the account received has requested to register as a SP + * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request + * 4. Check that the request has not expired + * 5. Register the signer as a MSP or BSP with the data provided in the request + * + * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. + * + * Notes: + * - This extrinsic could be called by the user itself or by a third party + * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP + * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating + **/ + confirmSignUp: AugmentedSubmittable< + ( + providerAccount: Option | null | Uint8Array | AccountId32 | string + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Backup Storage Provider. + * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the steps of: + * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. + **/ + forceBspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + bspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array, + weight: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, AccountId32, Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Main Storage Provider. + * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the steps of: + * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. + **/ + forceMspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + mspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { + identifier?: any; + dataLimit?: any; + protocols?: any; + } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Main Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) + * 4. Update the MSPs storage, removing the signer as an MSP + * 5. Return the deposit to the signer + * 6. Decrement the storage that holds total amount of MSPs currently in the system + * + * Emits `MspSignOffSuccess` event when successful. + **/ + mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP + * + * Emits `BspRequestSignUpSuccess` event when successful. + **/ + requestBspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime. + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP + * + * Emits `MspRequestSignUpSuccess` event when successful. + **/ + requestMspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { + identifier?: any; + dataLimit?: any; + protocols?: any; + } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic to slash a _slashable_ Storage Provider. + * + * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. + * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. + **/ + slash: AugmentedSubmittable< + (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + randomness: { + /** + * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the + * relay chain into a variable that can then be used as a seed for commitments that happened during + * the previous relay chain epoch + **/ + setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable< + ( + keys: + | StorageHubRuntimeSessionKeys + | { + aura?: any; + } + | string + | Uint8Array, + proof: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeSessionKeys, Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + sudo: { + /** + * Permanently removes the sudo key. + * + * **This cannot be un-done.** + **/ + removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + **/ + setKey: AugmentedSubmittable< + ( + updated: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + **/ + sudo: AugmentedSubmittable< + (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, + [Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoAs: AugmentedSubmittable< + ( + who: + | MultiAddress + | { + Id: any; + } + | { + Index: any; + } + | { + Raw: any; + } + | { + Address32: any; + } + | { + Address20: any; + } + | string + | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoUncheckedWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: + | SpWeightsWeightV2Weight + | { + refTime?: any; + proofSize?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [Call, SpWeightsWeightV2Weight] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable< + ( + prefix: Bytes | string | Uint8Array, + subkeys: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [Bytes, u32] + >; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable< + (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, + [Vec] + >; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable< + (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable< + ( + items: + | Vec> + | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] + ) => SubmittableExtrinsic, + [Vec>] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable< + (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [Compact] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmpQueue: { + /** + * Resumes all XCM executions for the XCMP queue. + * + * Note that this function doesn't change the status of the in/out bound channels. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.drop_threshold` + **/ + updateDropThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.resume_threshold` + **/ + updateResumeThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.suspend_value` + **/ + updateSuspendThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } +} diff --git a/api-augment/dist/types/interfaces/augment-types.d.ts b/api-augment/dist/types/interfaces/augment-types.d.ts index bf140ae05..98ad6232c 100644 --- a/api-augment/dist/types/interfaces/augment-types.d.ts +++ b/api-augment/dist/types/interfaces/augment-types.d.ts @@ -1,2624 +1,2621 @@ -import "@polkadot/types/types/registry"; -import type { Data, StorageKey } from "@polkadot/types"; -import type { - BitVec, - Bool, - Bytes, - F32, - F64, - I128, - I16, - I256, - I32, - I64, - I8, - ISize, - Json, - Null, - OptionBool, - Raw, - Text, - Type, - U128, - U16, - U256, - U32, - U64, - U8, - USize, - bool, - f32, - f64, - i128, - i16, - i256, - i32, - i64, - i8, - isize, - u128, - u16, - u256, - u32, - u64, - u8, - usize -} from "@polkadot/types-codec"; -import type { TAssetConversion } from "@polkadot/types/interfaces/assetConversion"; -import type { - AssetApproval, - AssetApprovalKey, - AssetBalance, - AssetDestroyWitness, - AssetDetails, - AssetMetadata, - TAssetBalance, - TAssetDepositBalance -} from "@polkadot/types/interfaces/assets"; -import type { - BlockAttestations, - IncludedBlocks, - MoreAttestations -} from "@polkadot/types/interfaces/attestations"; -import type { RawAuraPreDigest } from "@polkadot/types/interfaces/aura"; -import type { ExtrinsicOrHash, ExtrinsicStatus } from "@polkadot/types/interfaces/author"; -import type { UncleEntryItem } from "@polkadot/types/interfaces/authorship"; -import type { - AllowedSlots, - BabeAuthorityWeight, - BabeBlockWeight, - BabeEpochConfiguration, - BabeEquivocationProof, - BabeGenesisConfiguration, - BabeGenesisConfigurationV1, - BabeWeight, - Epoch, - EpochAuthorship, - MaybeRandomness, - MaybeVrf, - NextConfigDescriptor, - NextConfigDescriptorV1, - OpaqueKeyOwnershipProof, - Randomness, - RawBabePreDigest, - RawBabePreDigestCompat, - RawBabePreDigestPrimary, - RawBabePreDigestPrimaryTo159, - RawBabePreDigestSecondaryPlain, - RawBabePreDigestSecondaryTo159, - RawBabePreDigestSecondaryVRF, - RawBabePreDigestTo159, - SlotNumber, - VrfData, - VrfOutput, - VrfProof -} from "@polkadot/types/interfaces/babe"; -import type { - AccountData, - BalanceLock, - BalanceLockTo212, - BalanceStatus, - Reasons, - ReserveData, - ReserveIdentifier, - VestingSchedule, - WithdrawReasons -} from "@polkadot/types/interfaces/balances"; -import type { - BeefyAuthoritySet, - BeefyCommitment, - BeefyCompactSignedCommitment, - BeefyEquivocationProof, - BeefyId, - BeefyNextAuthoritySet, - BeefyPayload, - BeefyPayloadId, - BeefySignedCommitment, - BeefyVersionedFinalityProof, - BeefyVoteMessage, - MmrRootHash, - ValidatorSet, - ValidatorSetId -} from "@polkadot/types/interfaces/beefy"; -import type { - BenchmarkBatch, - BenchmarkConfig, - BenchmarkList, - BenchmarkMetadata, - BenchmarkParameter, - BenchmarkResult -} from "@polkadot/types/interfaces/benchmark"; -import type { - CheckInherentsResult, - InherentData, - InherentIdentifier -} from "@polkadot/types/interfaces/blockbuilder"; -import type { - BridgeMessageId, - BridgedBlockHash, - BridgedBlockNumber, - BridgedHeader, - CallOrigin, - ChainId, - DeliveredMessages, - DispatchFeePayment, - InboundLaneData, - InboundRelayer, - InitializationData, - LaneId, - MessageData, - MessageKey, - MessageNonce, - MessagesDeliveryProofOf, - MessagesProofOf, - OperatingMode, - OutboundLaneData, - OutboundMessageFee, - OutboundPayload, - Parameter, - RelayerId, - UnrewardedRelayer, - UnrewardedRelayersState -} from "@polkadot/types/interfaces/bridges"; -import type { BlockHash } from "@polkadot/types/interfaces/chain"; -import type { PrefixedStorageKey } from "@polkadot/types/interfaces/childstate"; -import type { StatementKind } from "@polkadot/types/interfaces/claims"; -import type { - CollectiveOrigin, - MemberCount, - ProposalIndex, - Votes, - VotesTo230 -} from "@polkadot/types/interfaces/collective"; -import type { AuthorityId, RawVRFOutput } from "@polkadot/types/interfaces/consensus"; -import type { - AliveContractInfo, - CodeHash, - CodeSource, - CodeUploadRequest, - CodeUploadResult, - CodeUploadResultValue, - ContractCallFlags, - ContractCallRequest, - ContractExecResult, - ContractExecResultOk, - ContractExecResultResult, - ContractExecResultSuccessTo255, - ContractExecResultSuccessTo260, - ContractExecResultTo255, - ContractExecResultTo260, - ContractExecResultTo267, - ContractExecResultU64, - ContractInfo, - ContractInstantiateResult, - ContractInstantiateResultTo267, - ContractInstantiateResultTo299, - ContractInstantiateResultU64, - ContractReturnFlags, - ContractStorageKey, - DeletedContract, - ExecReturnValue, - Gas, - HostFnWeights, - HostFnWeightsTo264, - InstantiateRequest, - InstantiateRequestV1, - InstantiateRequestV2, - InstantiateReturnValue, - InstantiateReturnValueOk, - InstantiateReturnValueTo267, - InstructionWeights, - Limits, - LimitsTo264, - PrefabWasmModule, - RentProjection, - Schedule, - ScheduleTo212, - ScheduleTo258, - ScheduleTo264, - SeedOf, - StorageDeposit, - TombstoneContractInfo, - TrieId -} from "@polkadot/types/interfaces/contracts"; -import type { - ContractConstructorSpecLatest, - ContractConstructorSpecV0, - ContractConstructorSpecV1, - ContractConstructorSpecV2, - ContractConstructorSpecV3, - ContractConstructorSpecV4, - ContractContractSpecV0, - ContractContractSpecV1, - ContractContractSpecV2, - ContractContractSpecV3, - ContractContractSpecV4, - ContractContractSpecV5, - ContractCryptoHasher, - ContractDiscriminant, - ContractDisplayName, - ContractEnvironmentV4, - ContractEventParamSpecLatest, - ContractEventParamSpecV0, - ContractEventParamSpecV2, - ContractEventSpecLatest, - ContractEventSpecV0, - ContractEventSpecV1, - ContractEventSpecV2, - ContractEventSpecV3, - ContractLayoutArray, - ContractLayoutCell, - ContractLayoutEnum, - ContractLayoutHash, - ContractLayoutHashingStrategy, - ContractLayoutKey, - ContractLayoutStruct, - ContractLayoutStructField, - ContractMessageParamSpecLatest, - ContractMessageParamSpecV0, - ContractMessageParamSpecV2, - ContractMessageSpecLatest, - ContractMessageSpecV0, - ContractMessageSpecV1, - ContractMessageSpecV2, - ContractMessageSpecV3, - ContractMetadata, - ContractMetadataLatest, - ContractMetadataV0, - ContractMetadataV1, - ContractMetadataV2, - ContractMetadataV3, - ContractMetadataV4, - ContractMetadataV5, - ContractProject, - ContractProjectContract, - ContractProjectInfo, - ContractProjectSource, - ContractProjectV0, - ContractSelector, - ContractStorageLayout, - ContractTypeSpec -} from "@polkadot/types/interfaces/contractsAbi"; -import type { - FundIndex, - FundInfo, - LastContribution, - TrieIndex -} from "@polkadot/types/interfaces/crowdloan"; -import type { - CollationInfo, - CollationInfoV1, - ConfigData, - MessageId, - OverweightIndex, - PageCounter, - PageIndexData -} from "@polkadot/types/interfaces/cumulus"; -import type { - AccountVote, - AccountVoteSplit, - AccountVoteStandard, - Conviction, - Delegations, - PreimageStatus, - PreimageStatusAvailable, - PriorLock, - PropIndex, - Proposal, - ProxyState, - ReferendumIndex, - ReferendumInfo, - ReferendumInfoFinished, - ReferendumInfoTo239, - ReferendumStatus, - Tally, - Voting, - VotingDelegating, - VotingDirect, - VotingDirectVote -} from "@polkadot/types/interfaces/democracy"; -import type { BlockStats } from "@polkadot/types/interfaces/dev"; -import type { - CallDryRunEffects, - DispatchResultWithPostInfo, - PostDispatchInfo, - XcmDryRunApiError, - XcmDryRunEffects -} from "@polkadot/types/interfaces/dryRunApi"; -import type { - ApprovalFlag, - DefunctVoter, - Renouncing, - SetIndex, - Vote, - VoteIndex, - VoteThreshold, - VoterInfo -} from "@polkadot/types/interfaces/elections"; -import type { CreatedBlock, ImportedAux } from "@polkadot/types/interfaces/engine"; -import type { - BlockV0, - BlockV1, - BlockV2, - EIP1559Transaction, - EIP2930Transaction, - EthAccessList, - EthAccessListItem, - EthAccount, - EthAddress, - EthBlock, - EthBloom, - EthCallRequest, - EthFeeHistory, - EthFilter, - EthFilterAddress, - EthFilterChanges, - EthFilterTopic, - EthFilterTopicEntry, - EthFilterTopicInner, - EthHeader, - EthLog, - EthReceipt, - EthReceiptV0, - EthReceiptV3, - EthRichBlock, - EthRichHeader, - EthStorageProof, - EthSubKind, - EthSubParams, - EthSubResult, - EthSyncInfo, - EthSyncStatus, - EthTransaction, - EthTransactionAction, - EthTransactionCondition, - EthTransactionRequest, - EthTransactionSignature, - EthTransactionStatus, - EthWork, - EthereumAccountId, - EthereumAddress, - EthereumLookupSource, - EthereumSignature, - LegacyTransaction, - TransactionV0, - TransactionV1, - TransactionV2 -} from "@polkadot/types/interfaces/eth"; -import type { - EvmAccount, - EvmCallInfo, - EvmCallInfoV2, - EvmCreateInfo, - EvmCreateInfoV2, - EvmLog, - EvmVicinity, - EvmWeightInfo, - ExitError, - ExitFatal, - ExitReason, - ExitRevert, - ExitSucceed -} from "@polkadot/types/interfaces/evm"; -import type { - AnySignature, - EcdsaSignature, - Ed25519Signature, - Era, - Extrinsic, - ExtrinsicEra, - ExtrinsicPayload, - ExtrinsicPayloadUnknown, - ExtrinsicPayloadV4, - ExtrinsicPayloadV5, - ExtrinsicSignature, - ExtrinsicSignatureV4, - ExtrinsicSignatureV5, - ExtrinsicUnknown, - ExtrinsicV4, - ExtrinsicV5, - ImmortalEra, - MortalEra, - MultiSignature, - Signature, - SignerPayload, - Sr25519Signature -} from "@polkadot/types/interfaces/extrinsics"; -import type { FungiblesAccessError } from "@polkadot/types/interfaces/fungibles"; -import type { - AssetOptions, - Owner, - PermissionLatest, - PermissionVersions, - PermissionsV1 -} from "@polkadot/types/interfaces/genericAsset"; -import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; -import type { - ActiveGilt, - ActiveGiltsTotal, - ActiveIndex, - GiltBid -} from "@polkadot/types/interfaces/gilt"; -import type { - AuthorityIndex, - AuthorityList, - AuthoritySet, - AuthoritySetChange, - AuthoritySetChanges, - AuthorityWeight, - DelayKind, - DelayKindBest, - EncodedFinalityProofs, - ForkTreePendingChange, - ForkTreePendingChangeNode, - GrandpaCommit, - GrandpaEquivocation, - GrandpaEquivocationProof, - GrandpaEquivocationValue, - GrandpaJustification, - GrandpaPrecommit, - GrandpaPrevote, - GrandpaSignedPrecommit, - JustificationNotification, - KeyOwnerProof, - NextAuthority, - PendingChange, - PendingPause, - PendingResume, - Precommits, - Prevotes, - ReportedRoundStates, - RoundState, - SetId, - StoredPendingChange, - StoredState -} from "@polkadot/types/interfaces/grandpa"; -import type { - IdentityFields, - IdentityInfo, - IdentityInfoAdditional, - IdentityInfoTo198, - IdentityJudgement, - RegistrarIndex, - RegistrarInfo, - Registration, - RegistrationJudgement, - RegistrationTo198 -} from "@polkadot/types/interfaces/identity"; -import type { - AuthIndex, - AuthoritySignature, - Heartbeat, - HeartbeatTo244, - OpaqueMultiaddr, - OpaqueNetworkState, - OpaquePeerId -} from "@polkadot/types/interfaces/imOnline"; -import type { CallIndex, LotteryConfig } from "@polkadot/types/interfaces/lottery"; -import type { - CustomMetadata15, - CustomValueMetadata15, - ErrorMetadataLatest, - ErrorMetadataV10, - ErrorMetadataV11, - ErrorMetadataV12, - ErrorMetadataV13, - ErrorMetadataV14, - ErrorMetadataV9, - EventMetadataLatest, - EventMetadataV10, - EventMetadataV11, - EventMetadataV12, - EventMetadataV13, - EventMetadataV14, - EventMetadataV9, - ExtrinsicMetadataLatest, - ExtrinsicMetadataV11, - ExtrinsicMetadataV12, - ExtrinsicMetadataV13, - ExtrinsicMetadataV14, - ExtrinsicMetadataV15, - FunctionArgumentMetadataLatest, - FunctionArgumentMetadataV10, - FunctionArgumentMetadataV11, - FunctionArgumentMetadataV12, - FunctionArgumentMetadataV13, - FunctionArgumentMetadataV14, - FunctionArgumentMetadataV9, - FunctionMetadataLatest, - FunctionMetadataV10, - FunctionMetadataV11, - FunctionMetadataV12, - FunctionMetadataV13, - FunctionMetadataV14, - FunctionMetadataV9, - MetadataAll, - MetadataLatest, - MetadataV10, - MetadataV11, - MetadataV12, - MetadataV13, - MetadataV14, - MetadataV15, - MetadataV9, - ModuleConstantMetadataV10, - ModuleConstantMetadataV11, - ModuleConstantMetadataV12, - ModuleConstantMetadataV13, - ModuleConstantMetadataV9, - ModuleMetadataV10, - ModuleMetadataV11, - ModuleMetadataV12, - ModuleMetadataV13, - ModuleMetadataV9, - OpaqueMetadata, - OuterEnums15, - PalletCallMetadataLatest, - PalletCallMetadataV14, - PalletConstantMetadataLatest, - PalletConstantMetadataV14, - PalletErrorMetadataLatest, - PalletErrorMetadataV14, - PalletEventMetadataLatest, - PalletEventMetadataV14, - PalletMetadataLatest, - PalletMetadataV14, - PalletMetadataV15, - PalletStorageMetadataLatest, - PalletStorageMetadataV14, - PortableType, - PortableTypeV14, - RuntimeApiMetadataLatest, - RuntimeApiMetadataV15, - RuntimeApiMethodMetadataV15, - RuntimeApiMethodParamMetadataV15, - SignedExtensionMetadataLatest, - SignedExtensionMetadataV14, - StorageEntryMetadataLatest, - StorageEntryMetadataV10, - StorageEntryMetadataV11, - StorageEntryMetadataV12, - StorageEntryMetadataV13, - StorageEntryMetadataV14, - StorageEntryMetadataV9, - StorageEntryModifierLatest, - StorageEntryModifierV10, - StorageEntryModifierV11, - StorageEntryModifierV12, - StorageEntryModifierV13, - StorageEntryModifierV14, - StorageEntryModifierV9, - StorageEntryTypeLatest, - StorageEntryTypeV10, - StorageEntryTypeV11, - StorageEntryTypeV12, - StorageEntryTypeV13, - StorageEntryTypeV14, - StorageEntryTypeV9, - StorageHasher, - StorageHasherV10, - StorageHasherV11, - StorageHasherV12, - StorageHasherV13, - StorageHasherV14, - StorageHasherV9, - StorageMetadataV10, - StorageMetadataV11, - StorageMetadataV12, - StorageMetadataV13, - StorageMetadataV9 -} from "@polkadot/types/interfaces/metadata"; -import type { - Mixnode, - MixnodesErr, - SessionPhase, - SessionStatus -} from "@polkadot/types/interfaces/mixnet"; -import type { - MmrBatchProof, - MmrEncodableOpaqueLeaf, - MmrError, - MmrHash, - MmrLeafBatchProof, - MmrLeafIndex, - MmrLeafProof, - MmrNodeIndex, - MmrProof -} from "@polkadot/types/interfaces/mmr"; -import type { NftCollectionId, NftItemId } from "@polkadot/types/interfaces/nfts"; -import type { NpApiError, NpPoolId } from "@polkadot/types/interfaces/nompools"; -import type { StorageKind } from "@polkadot/types/interfaces/offchain"; -import type { - DeferredOffenceOf, - Kind, - OffenceDetails, - Offender, - OpaqueTimeSlot, - ReportIdOf, - Reporter -} from "@polkadot/types/interfaces/offences"; -import type { - AbridgedCandidateReceipt, - AbridgedHostConfiguration, - AbridgedHrmpChannel, - ApprovalVotingParams, - AssignmentId, - AssignmentKind, - AsyncBackingParams, - AttestedCandidate, - AuctionIndex, - AuthorityDiscoveryId, - AvailabilityBitfield, - AvailabilityBitfieldRecord, - BackedCandidate, - BackingState, - Bidder, - BufferedSessionChange, - CandidateCommitments, - CandidateDescriptor, - CandidateEvent, - CandidateHash, - CandidateInfo, - CandidatePendingAvailability, - CandidateReceipt, - CollatorId, - CollatorSignature, - CommittedCandidateReceipt, - Constraints, - CoreAssignment, - CoreIndex, - CoreOccupied, - CoreState, - DisputeLocation, - DisputeProof, - DisputeResult, - DisputeState, - DisputeStatement, - DisputeStatementSet, - DisputesTimeSlot, - DoubleVoteReport, - DownwardMessage, - ExecutorParam, - ExecutorParams, - ExecutorParamsHash, - ExplicitDisputeStatement, - GlobalValidationData, - GlobalValidationSchedule, - GroupIndex, - GroupRotationInfo, - HeadData, - HostConfiguration, - HrmpChannel, - HrmpChannelId, - HrmpOpenChannelRequest, - InboundDownwardMessage, - InboundHrmpLimitations, - InboundHrmpMessage, - InboundHrmpMessages, - IncomingParachain, - IncomingParachainDeploy, - IncomingParachainFixed, - InvalidDisputeStatementKind, - LeasePeriod, - LeasePeriodOf, - LocalValidationData, - MessageIngestionType, - MessageQueueChain, - MessagingStateSnapshot, - MessagingStateSnapshotEgressEntry, - MultiDisputeStatementSet, - NewBidder, - NodeFeatures, - OccupiedCore, - OccupiedCoreAssumption, - OldV1SessionInfo, - OutboundHrmpChannelLimitations, - OutboundHrmpMessage, - ParaGenesisArgs, - ParaId, - ParaInfo, - ParaLifecycle, - ParaPastCodeMeta, - ParaScheduling, - ParaValidatorIndex, - ParachainDispatchOrigin, - ParachainInherentData, - ParachainProposal, - ParachainsInherentData, - ParathreadClaim, - ParathreadClaimQueue, - ParathreadEntry, - PendingSlashes, - PersistedValidationData, - PvfCheckStatement, - PvfExecTimeoutKind, - PvfPrepTimeoutKind, - QueuedParathread, - RegisteredParachainInfo, - RelayBlockNumber, - RelayChainBlockNumber, - RelayChainHash, - RelayHash, - Remark, - ReplacementTimes, - Retriable, - ScheduledCore, - Scheduling, - ScrapedOnChainVotes, - ServiceQuality, - SessionInfo, - SessionInfoValidatorGroup, - SignedAvailabilityBitfield, - SignedAvailabilityBitfields, - SigningContext, - SlashingOffenceKind, - SlotRange, - SlotRange10, - Statement, - SubId, - SystemInherentData, - TransientValidationData, - UpgradeGoAhead, - UpgradeRestriction, - UpwardMessage, - ValidDisputeStatementKind, - ValidationCode, - ValidationCodeHash, - ValidationData, - ValidationDataType, - ValidationFunctionParams, - ValidatorSignature, - ValidityAttestation, - VecInboundHrmpMessage, - WinnersData, - WinnersData10, - WinnersDataTuple, - WinnersDataTuple10, - WinningData, - WinningData10, - WinningDataEntry -} from "@polkadot/types/interfaces/parachains"; -import type { - FeeDetails, - InclusionFee, - RuntimeDispatchInfo, - RuntimeDispatchInfoV1, - RuntimeDispatchInfoV2 -} from "@polkadot/types/interfaces/payment"; -import type { Approvals } from "@polkadot/types/interfaces/poll"; -import type { - ProxyAnnouncement, - ProxyDefinition, - ProxyType -} from "@polkadot/types/interfaces/proxy"; -import type { AccountStatus, AccountValidity } from "@polkadot/types/interfaces/purchase"; -import type { ActiveRecovery, RecoveryConfig } from "@polkadot/types/interfaces/recovery"; -import type { RpcMethods } from "@polkadot/types/interfaces/rpc"; -import type { - AccountId, - AccountId20, - AccountId32, - AccountId33, - AccountIdOf, - AccountIndex, - Address, - AssetId, - Balance, - BalanceOf, - Block, - BlockNumber, - BlockNumberFor, - BlockNumberOf, - Call, - CallHash, - CallHashOf, - ChangesTrieConfiguration, - ChangesTrieSignal, - CodecHash, - Consensus, - ConsensusEngineId, - CrateVersion, - Digest, - DigestItem, - EncodedJustification, - ExtrinsicInclusionMode, - ExtrinsicsWeight, - Fixed128, - Fixed64, - FixedI128, - FixedI64, - FixedU128, - FixedU64, - H1024, - H128, - H160, - H2048, - H256, - H32, - H512, - H64, - Hash, - Header, - HeaderPartial, - I32F32, - Index, - IndicesLookupSource, - Justification, - Justifications, - KeyTypeId, - KeyValue, - LockIdentifier, - LookupSource, - LookupTarget, - ModuleId, - Moment, - MultiAddress, - MultiSigner, - OpaqueCall, - Origin, - OriginCaller, - PalletId, - PalletVersion, - PalletsOrigin, - Pays, - PerU16, - Perbill, - Percent, - Permill, - Perquintill, - Phantom, - PhantomData, - PreRuntime, - Releases, - RuntimeCall, - RuntimeDbWeight, - RuntimeEvent, - Seal, - SealV0, - SignedBlock, - SignedBlockWithJustification, - SignedBlockWithJustifications, - Slot, - SlotDuration, - StorageData, - StorageInfo, - StorageProof, - TransactionInfo, - TransactionLongevity, - TransactionPriority, - TransactionStorageProof, - TransactionTag, - U32F32, - ValidatorId, - ValidatorIdOf, - Weight, - WeightMultiplier, - WeightV0, - WeightV1, - WeightV2 -} from "@polkadot/types/interfaces/runtime"; -import type { - Si0Field, - Si0LookupTypeId, - Si0Path, - Si0Type, - Si0TypeDef, - Si0TypeDefArray, - Si0TypeDefBitSequence, - Si0TypeDefCompact, - Si0TypeDefComposite, - Si0TypeDefPhantom, - Si0TypeDefPrimitive, - Si0TypeDefSequence, - Si0TypeDefTuple, - Si0TypeDefVariant, - Si0TypeParameter, - Si0Variant, - Si1Field, - Si1LookupTypeId, - Si1Path, - Si1Type, - Si1TypeDef, - Si1TypeDefArray, - Si1TypeDefBitSequence, - Si1TypeDefCompact, - Si1TypeDefComposite, - Si1TypeDefPrimitive, - Si1TypeDefSequence, - Si1TypeDefTuple, - Si1TypeDefVariant, - Si1TypeParameter, - Si1Variant, - SiField, - SiLookupTypeId, - SiPath, - SiType, - SiTypeDef, - SiTypeDefArray, - SiTypeDefBitSequence, - SiTypeDefCompact, - SiTypeDefComposite, - SiTypeDefPrimitive, - SiTypeDefSequence, - SiTypeDefTuple, - SiTypeDefVariant, - SiTypeParameter, - SiVariant -} from "@polkadot/types/interfaces/scaleInfo"; -import type { - Period, - Priority, - SchedulePeriod, - SchedulePriority, - Scheduled, - ScheduledTo254, - TaskAddress -} from "@polkadot/types/interfaces/scheduler"; -import type { - BeefyKey, - FullIdentification, - IdentificationTuple, - Keys, - MembershipProof, - SessionIndex, - SessionKeys1, - SessionKeys10, - SessionKeys10B, - SessionKeys2, - SessionKeys3, - SessionKeys4, - SessionKeys5, - SessionKeys6, - SessionKeys6B, - SessionKeys7, - SessionKeys7B, - SessionKeys8, - SessionKeys8B, - SessionKeys9, - SessionKeys9B, - ValidatorCount -} from "@polkadot/types/interfaces/session"; -import type { - Bid, - BidKind, - SocietyJudgement, - SocietyVote, - StrikeCount, - VouchingStatus -} from "@polkadot/types/interfaces/society"; -import type { - ActiveEraInfo, - CompactAssignments, - CompactAssignmentsTo257, - CompactAssignmentsTo265, - CompactAssignmentsWith16, - CompactAssignmentsWith24, - CompactScore, - CompactScoreCompact, - ElectionCompute, - ElectionPhase, - ElectionResult, - ElectionScore, - ElectionSize, - ElectionStatus, - EraIndex, - EraPoints, - EraRewardPoints, - EraRewards, - Exposure, - ExtendedBalance, - Forcing, - IndividualExposure, - KeyType, - MomentOf, - Nominations, - NominatorIndex, - NominatorIndexCompact, - OffchainAccuracy, - OffchainAccuracyCompact, - PhragmenScore, - Points, - RawSolution, - RawSolutionTo265, - RawSolutionWith16, - RawSolutionWith24, - ReadySolution, - RewardDestination, - RewardPoint, - RoundSnapshot, - SeatHolder, - SignedSubmission, - SignedSubmissionOf, - SignedSubmissionTo276, - SlashJournalEntry, - SlashingSpans, - SlashingSpansTo204, - SolutionOrSnapshotSize, - SolutionSupport, - SolutionSupports, - SpanIndex, - SpanRecord, - StakingLedger, - StakingLedgerTo223, - StakingLedgerTo240, - SubmissionIndicesOf, - Supports, - UnappliedSlash, - UnappliedSlashOther, - UnlockChunk, - ValidatorIndex, - ValidatorIndexCompact, - ValidatorPrefs, - ValidatorPrefsTo145, - ValidatorPrefsTo196, - ValidatorPrefsWithBlocked, - ValidatorPrefsWithCommission, - VoteWeight, - Voter -} from "@polkadot/types/interfaces/staking"; -import type { - ApiId, - BlockTrace, - BlockTraceEvent, - BlockTraceEventData, - BlockTraceSpan, - KeyValueOption, - MigrationStatusResult, - ReadProof, - RuntimeVersion, - RuntimeVersionApi, - RuntimeVersionPartial, - RuntimeVersionPre3, - RuntimeVersionPre4, - SpecVersion, - StorageChangeSet, - TraceBlockResponse, - TraceError -} from "@polkadot/types/interfaces/state"; -import type { - StatementStoreInvalidStatement, - StatementStoreStatementSource, - StatementStoreValidStatement -} from "@polkadot/types/interfaces/statement"; -import type { WeightToFeeCoefficient } from "@polkadot/types/interfaces/support"; -import type { - AccountInfo, - AccountInfoWithDualRefCount, - AccountInfoWithProviders, - AccountInfoWithRefCount, - AccountInfoWithRefCountU8, - AccountInfoWithTripleRefCount, - ApplyExtrinsicResult, - ApplyExtrinsicResultPre6, - ArithmeticError, - BlockLength, - BlockWeights, - ChainProperties, - ChainType, - ConsumedWeight, - DigestOf, - DispatchClass, - DispatchError, - DispatchErrorModule, - DispatchErrorModulePre6, - DispatchErrorModuleU8, - DispatchErrorModuleU8a, - DispatchErrorPre6, - DispatchErrorPre6First, - DispatchErrorTo198, - DispatchInfo, - DispatchInfoTo190, - DispatchInfoTo244, - DispatchOutcome, - DispatchOutcomePre6, - DispatchResult, - DispatchResultOf, - DispatchResultTo198, - Event, - EventId, - EventIndex, - EventRecord, - Health, - InvalidTransaction, - Key, - LastRuntimeUpgradeInfo, - NetworkState, - NetworkStatePeerset, - NetworkStatePeersetInfo, - NodeRole, - NotConnectedPeer, - Peer, - PeerEndpoint, - PeerEndpointAddr, - PeerInfo, - PeerPing, - PerDispatchClassU32, - PerDispatchClassWeight, - PerDispatchClassWeightsPerClass, - Phase, - RawOrigin, - RefCount, - RefCountTo259, - SyncState, - SystemOrigin, - TokenError, - TransactionValidityError, - TransactionalError, - UnknownTransaction, - WeightPerClass -} from "@polkadot/types/interfaces/system"; -import type { - Bounty, - BountyIndex, - BountyStatus, - BountyStatusActive, - BountyStatusCuratorProposed, - BountyStatusPendingPayout, - OpenTip, - OpenTipFinderTo225, - OpenTipTip, - OpenTipTo225, - TreasuryProposal -} from "@polkadot/types/interfaces/treasury"; -import type { Multiplier } from "@polkadot/types/interfaces/txpayment"; -import type { - TransactionSource, - TransactionValidity, - ValidTransaction -} from "@polkadot/types/interfaces/txqueue"; -import type { - ClassDetails, - ClassId, - ClassMetadata, - DepositBalance, - DepositBalanceOf, - DestroyWitness, - InstanceDetails, - InstanceId, - InstanceMetadata -} from "@polkadot/types/interfaces/uniques"; -import type { Multisig, Timepoint } from "@polkadot/types/interfaces/utility"; -import type { VestingInfo } from "@polkadot/types/interfaces/vesting"; -import type { - AssetIdV2, - AssetIdV3, - AssetIdV4, - AssetInstance, - AssetInstanceV0, - AssetInstanceV1, - AssetInstanceV2, - AssetInstanceV3, - AssetInstanceV4, - BodyId, - BodyIdV2, - BodyIdV3, - BodyPart, - BodyPartV2, - BodyPartV3, - DoubleEncodedCall, - Fungibility, - FungibilityV0, - FungibilityV1, - FungibilityV2, - FungibilityV3, - FungibilityV4, - InboundStatus, - InstructionV2, - InstructionV3, - InstructionV4, - InteriorMultiLocation, - InteriorMultiLocationV2, - InteriorMultiLocationV3, - Junction, - JunctionV0, - JunctionV1, - JunctionV2, - JunctionV3, - JunctionV4, - Junctions, - JunctionsV1, - JunctionsV2, - JunctionsV3, - JunctionsV4, - MaxPalletNameLen, - MaxPalletsInfo, - MaybeErrorCodeV3, - MultiAsset, - MultiAssetFilter, - MultiAssetFilterV1, - MultiAssetFilterV2, - MultiAssetFilterV3, - MultiAssetFilterV4, - MultiAssetV0, - MultiAssetV1, - MultiAssetV2, - MultiAssetV3, - MultiAssetV4, - MultiAssets, - MultiAssetsV1, - MultiAssetsV2, - MultiAssetsV3, - MultiAssetsV4, - MultiLocation, - MultiLocationV0, - MultiLocationV1, - MultiLocationV2, - MultiLocationV3, - MultiLocationV4, - NetworkId, - NetworkIdV2, - NetworkIdV3, - NetworkIdV4, - OriginKindV0, - OriginKindV1, - OriginKindV2, - OriginKindV3, - OriginKindV4, - OutboundStatus, - Outcome, - OutcomeV4, - PalletInfoV3, - PalletInfoV4, - QueryId, - QueryResponseInfoV3, - QueryResponseInfoV4, - QueryStatus, - QueueConfigData, - Response, - ResponseV0, - ResponseV1, - ResponseV2, - ResponseV2Error, - ResponseV3, - ResponseV3Error, - ResponseV3Result, - ResponseV4, - UncheckedFungibilityV4, - VersionMigrationStage, - VersionV3, - VersionV4, - VersionedMultiAsset, - VersionedMultiAssets, - VersionedMultiLocation, - VersionedResponse, - VersionedXcm, - WeightLimitV2, - WeightLimitV3, - WildFungibility, - WildFungibilityV0, - WildFungibilityV1, - WildFungibilityV2, - WildFungibilityV3, - WildFungibilityV4, - WildMultiAsset, - WildMultiAssetV1, - WildMultiAssetV2, - WildMultiAssetV3, - WildMultiAssetV4, - Xcm, - XcmAssetId, - XcmError, - XcmErrorV0, - XcmErrorV1, - XcmErrorV2, - XcmErrorV3, - XcmErrorV4, - XcmOrderV0, - XcmOrderV1, - XcmOrigin, - XcmOriginKind, - XcmV0, - XcmV1, - XcmV2, - XcmV3, - XcmV4, - XcmVersion, - XcmpMessageFormat -} from "@polkadot/types/interfaces/xcm"; -import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; -import type { Error } from "@polkadot/types/interfaces/xcmRuntimeApi"; -import type { - BackupStorageProvider, - BackupStorageProviderId, - ChunkId, - FileMetadata, - GetBspInfoError, - GetChallengePeriodError, - GetChallengeSeedError, - GetCheckpointChallengesError, - GetFileFromFileStorageResult, - GetLastTickProviderSubmittedProofError, - GetNextDeadlineTickError, - GetUsersWithDebtOverThresholdError, - IncompleteFileStatus, - MainStorageProviderId, - MerklePatriciaRoot, - ProviderId, - QueryAvailableStorageCapacityError, - QueryBspConfirmChunksToProveForFileError, - QueryConfirmChunksToProveForFileError, - QueryEarliestChangeCapacityBlockError, - QueryFileEarliestVolunteerBlockError, - QueryMspConfirmChunksToProveForFileError, - QueryMspIdOfBucketIdError, - QueryStorageProviderCapacityError, - RandomnessOutput, - SaveFileToDisk, - StorageDataUnit, - StorageProviderId, - TrieRemoveMutation -} from "@storagehub/api-augment/interfaces/storagehubclient"; -declare module "@polkadot/types/types/registry" { - interface InterfaceTypes { - AbridgedCandidateReceipt: AbridgedCandidateReceipt; - AbridgedHostConfiguration: AbridgedHostConfiguration; - AbridgedHrmpChannel: AbridgedHrmpChannel; - AccountData: AccountData; - AccountId: AccountId; - AccountId20: AccountId20; - AccountId32: AccountId32; - AccountId33: AccountId33; - AccountIdOf: AccountIdOf; - AccountIndex: AccountIndex; - AccountInfo: AccountInfo; - AccountInfoWithDualRefCount: AccountInfoWithDualRefCount; - AccountInfoWithProviders: AccountInfoWithProviders; - AccountInfoWithRefCount: AccountInfoWithRefCount; - AccountInfoWithRefCountU8: AccountInfoWithRefCountU8; - AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount; - AccountStatus: AccountStatus; - AccountValidity: AccountValidity; - AccountVote: AccountVote; - AccountVoteSplit: AccountVoteSplit; - AccountVoteStandard: AccountVoteStandard; - ActiveEraInfo: ActiveEraInfo; - ActiveGilt: ActiveGilt; - ActiveGiltsTotal: ActiveGiltsTotal; - ActiveIndex: ActiveIndex; - ActiveRecovery: ActiveRecovery; - Address: Address; - AliveContractInfo: AliveContractInfo; - AllowedSlots: AllowedSlots; - AnySignature: AnySignature; - ApiId: ApiId; - ApplyExtrinsicResult: ApplyExtrinsicResult; - ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6; - ApprovalFlag: ApprovalFlag; - Approvals: Approvals; - ApprovalVotingParams: ApprovalVotingParams; - ArithmeticError: ArithmeticError; - AssetApproval: AssetApproval; - AssetApprovalKey: AssetApprovalKey; - AssetBalance: AssetBalance; - AssetDestroyWitness: AssetDestroyWitness; - AssetDetails: AssetDetails; - AssetId: AssetId; - AssetIdV2: AssetIdV2; - AssetIdV3: AssetIdV3; - AssetIdV4: AssetIdV4; - AssetInstance: AssetInstance; - AssetInstanceV0: AssetInstanceV0; - AssetInstanceV1: AssetInstanceV1; - AssetInstanceV2: AssetInstanceV2; - AssetInstanceV3: AssetInstanceV3; - AssetInstanceV4: AssetInstanceV4; - AssetMetadata: AssetMetadata; - AssetOptions: AssetOptions; - AssignmentId: AssignmentId; - AssignmentKind: AssignmentKind; - AsyncBackingParams: AsyncBackingParams; - AttestedCandidate: AttestedCandidate; - AuctionIndex: AuctionIndex; - AuthIndex: AuthIndex; - AuthorityDiscoveryId: AuthorityDiscoveryId; - AuthorityId: AuthorityId; - AuthorityIndex: AuthorityIndex; - AuthorityList: AuthorityList; - AuthoritySet: AuthoritySet; - AuthoritySetChange: AuthoritySetChange; - AuthoritySetChanges: AuthoritySetChanges; - AuthoritySignature: AuthoritySignature; - AuthorityWeight: AuthorityWeight; - AvailabilityBitfield: AvailabilityBitfield; - AvailabilityBitfieldRecord: AvailabilityBitfieldRecord; - BabeAuthorityWeight: BabeAuthorityWeight; - BabeBlockWeight: BabeBlockWeight; - BabeEpochConfiguration: BabeEpochConfiguration; - BabeEquivocationProof: BabeEquivocationProof; - BabeGenesisConfiguration: BabeGenesisConfiguration; - BabeGenesisConfigurationV1: BabeGenesisConfigurationV1; - BabeWeight: BabeWeight; - BackedCandidate: BackedCandidate; - BackingState: BackingState; - BackupStorageProvider: BackupStorageProvider; - BackupStorageProviderId: BackupStorageProviderId; - Balance: Balance; - BalanceLock: BalanceLock; - BalanceLockTo212: BalanceLockTo212; - BalanceOf: BalanceOf; - BalanceStatus: BalanceStatus; - BeefyAuthoritySet: BeefyAuthoritySet; - BeefyCommitment: BeefyCommitment; - BeefyCompactSignedCommitment: BeefyCompactSignedCommitment; - BeefyEquivocationProof: BeefyEquivocationProof; - BeefyId: BeefyId; - BeefyKey: BeefyKey; - BeefyNextAuthoritySet: BeefyNextAuthoritySet; - BeefyPayload: BeefyPayload; - BeefyPayloadId: BeefyPayloadId; - BeefySignedCommitment: BeefySignedCommitment; - BeefyVersionedFinalityProof: BeefyVersionedFinalityProof; - BeefyVoteMessage: BeefyVoteMessage; - BenchmarkBatch: BenchmarkBatch; - BenchmarkConfig: BenchmarkConfig; - BenchmarkList: BenchmarkList; - BenchmarkMetadata: BenchmarkMetadata; - BenchmarkParameter: BenchmarkParameter; - BenchmarkResult: BenchmarkResult; - Bid: Bid; - Bidder: Bidder; - BidKind: BidKind; - BitVec: BitVec; - Block: Block; - BlockAttestations: BlockAttestations; - BlockHash: BlockHash; - BlockLength: BlockLength; - BlockNumber: BlockNumber; - BlockNumberFor: BlockNumberFor; - BlockNumberOf: BlockNumberOf; - BlockStats: BlockStats; - BlockTrace: BlockTrace; - BlockTraceEvent: BlockTraceEvent; - BlockTraceEventData: BlockTraceEventData; - BlockTraceSpan: BlockTraceSpan; - BlockV0: BlockV0; - BlockV1: BlockV1; - BlockV2: BlockV2; - BlockWeights: BlockWeights; - BodyId: BodyId; - BodyIdV2: BodyIdV2; - BodyIdV3: BodyIdV3; - BodyPart: BodyPart; - BodyPartV2: BodyPartV2; - BodyPartV3: BodyPartV3; - bool: bool; - Bool: Bool; - Bounty: Bounty; - BountyIndex: BountyIndex; - BountyStatus: BountyStatus; - BountyStatusActive: BountyStatusActive; - BountyStatusCuratorProposed: BountyStatusCuratorProposed; - BountyStatusPendingPayout: BountyStatusPendingPayout; - BridgedBlockHash: BridgedBlockHash; - BridgedBlockNumber: BridgedBlockNumber; - BridgedHeader: BridgedHeader; - BridgeMessageId: BridgeMessageId; - BufferedSessionChange: BufferedSessionChange; - Bytes: Bytes; - Call: Call; - CallDryRunEffects: CallDryRunEffects; - CallHash: CallHash; - CallHashOf: CallHashOf; - CallIndex: CallIndex; - CallOrigin: CallOrigin; - CandidateCommitments: CandidateCommitments; - CandidateDescriptor: CandidateDescriptor; - CandidateEvent: CandidateEvent; - CandidateHash: CandidateHash; - CandidateInfo: CandidateInfo; - CandidatePendingAvailability: CandidatePendingAvailability; - CandidateReceipt: CandidateReceipt; - ChainId: ChainId; - ChainProperties: ChainProperties; - ChainType: ChainType; - ChangesTrieConfiguration: ChangesTrieConfiguration; - ChangesTrieSignal: ChangesTrieSignal; - CheckInherentsResult: CheckInherentsResult; - ChunkId: ChunkId; - ClassDetails: ClassDetails; - ClassId: ClassId; - ClassMetadata: ClassMetadata; - CodecHash: CodecHash; - CodeHash: CodeHash; - CodeSource: CodeSource; - CodeUploadRequest: CodeUploadRequest; - CodeUploadResult: CodeUploadResult; - CodeUploadResultValue: CodeUploadResultValue; - CollationInfo: CollationInfo; - CollationInfoV1: CollationInfoV1; - CollatorId: CollatorId; - CollatorSignature: CollatorSignature; - CollectiveOrigin: CollectiveOrigin; - CommittedCandidateReceipt: CommittedCandidateReceipt; - CompactAssignments: CompactAssignments; - CompactAssignmentsTo257: CompactAssignmentsTo257; - CompactAssignmentsTo265: CompactAssignmentsTo265; - CompactAssignmentsWith16: CompactAssignmentsWith16; - CompactAssignmentsWith24: CompactAssignmentsWith24; - CompactScore: CompactScore; - CompactScoreCompact: CompactScoreCompact; - ConfigData: ConfigData; - Consensus: Consensus; - ConsensusEngineId: ConsensusEngineId; - Constraints: Constraints; - ConsumedWeight: ConsumedWeight; - ContractCallFlags: ContractCallFlags; - ContractCallRequest: ContractCallRequest; - ContractConstructorSpecLatest: ContractConstructorSpecLatest; - ContractConstructorSpecV0: ContractConstructorSpecV0; - ContractConstructorSpecV1: ContractConstructorSpecV1; - ContractConstructorSpecV2: ContractConstructorSpecV2; - ContractConstructorSpecV3: ContractConstructorSpecV3; - ContractConstructorSpecV4: ContractConstructorSpecV4; - ContractContractSpecV0: ContractContractSpecV0; - ContractContractSpecV1: ContractContractSpecV1; - ContractContractSpecV2: ContractContractSpecV2; - ContractContractSpecV3: ContractContractSpecV3; - ContractContractSpecV4: ContractContractSpecV4; - ContractContractSpecV5: ContractContractSpecV5; - ContractCryptoHasher: ContractCryptoHasher; - ContractDiscriminant: ContractDiscriminant; - ContractDisplayName: ContractDisplayName; - ContractEnvironmentV4: ContractEnvironmentV4; - ContractEventParamSpecLatest: ContractEventParamSpecLatest; - ContractEventParamSpecV0: ContractEventParamSpecV0; - ContractEventParamSpecV2: ContractEventParamSpecV2; - ContractEventSpecLatest: ContractEventSpecLatest; - ContractEventSpecV0: ContractEventSpecV0; - ContractEventSpecV1: ContractEventSpecV1; - ContractEventSpecV2: ContractEventSpecV2; - ContractEventSpecV3: ContractEventSpecV3; - ContractExecResult: ContractExecResult; - ContractExecResultOk: ContractExecResultOk; - ContractExecResultResult: ContractExecResultResult; - ContractExecResultSuccessTo255: ContractExecResultSuccessTo255; - ContractExecResultSuccessTo260: ContractExecResultSuccessTo260; - ContractExecResultTo255: ContractExecResultTo255; - ContractExecResultTo260: ContractExecResultTo260; - ContractExecResultTo267: ContractExecResultTo267; - ContractExecResultU64: ContractExecResultU64; - ContractInfo: ContractInfo; - ContractInstantiateResult: ContractInstantiateResult; - ContractInstantiateResultTo267: ContractInstantiateResultTo267; - ContractInstantiateResultTo299: ContractInstantiateResultTo299; - ContractInstantiateResultU64: ContractInstantiateResultU64; - ContractLayoutArray: ContractLayoutArray; - ContractLayoutCell: ContractLayoutCell; - ContractLayoutEnum: ContractLayoutEnum; - ContractLayoutHash: ContractLayoutHash; - ContractLayoutHashingStrategy: ContractLayoutHashingStrategy; - ContractLayoutKey: ContractLayoutKey; - ContractLayoutStruct: ContractLayoutStruct; - ContractLayoutStructField: ContractLayoutStructField; - ContractMessageParamSpecLatest: ContractMessageParamSpecLatest; - ContractMessageParamSpecV0: ContractMessageParamSpecV0; - ContractMessageParamSpecV2: ContractMessageParamSpecV2; - ContractMessageSpecLatest: ContractMessageSpecLatest; - ContractMessageSpecV0: ContractMessageSpecV0; - ContractMessageSpecV1: ContractMessageSpecV1; - ContractMessageSpecV2: ContractMessageSpecV2; - ContractMessageSpecV3: ContractMessageSpecV3; - ContractMetadata: ContractMetadata; - ContractMetadataLatest: ContractMetadataLatest; - ContractMetadataV0: ContractMetadataV0; - ContractMetadataV1: ContractMetadataV1; - ContractMetadataV2: ContractMetadataV2; - ContractMetadataV3: ContractMetadataV3; - ContractMetadataV4: ContractMetadataV4; - ContractMetadataV5: ContractMetadataV5; - ContractProject: ContractProject; - ContractProjectContract: ContractProjectContract; - ContractProjectInfo: ContractProjectInfo; - ContractProjectSource: ContractProjectSource; - ContractProjectV0: ContractProjectV0; - ContractReturnFlags: ContractReturnFlags; - ContractSelector: ContractSelector; - ContractStorageKey: ContractStorageKey; - ContractStorageLayout: ContractStorageLayout; - ContractTypeSpec: ContractTypeSpec; - Conviction: Conviction; - CoreAssignment: CoreAssignment; - CoreIndex: CoreIndex; - CoreOccupied: CoreOccupied; - CoreState: CoreState; - CrateVersion: CrateVersion; - CreatedBlock: CreatedBlock; - CustomMetadata15: CustomMetadata15; - CustomValueMetadata15: CustomValueMetadata15; - Data: Data; - DeferredOffenceOf: DeferredOffenceOf; - DefunctVoter: DefunctVoter; - DelayKind: DelayKind; - DelayKindBest: DelayKindBest; - Delegations: Delegations; - DeletedContract: DeletedContract; - DeliveredMessages: DeliveredMessages; - DepositBalance: DepositBalance; - DepositBalanceOf: DepositBalanceOf; - DestroyWitness: DestroyWitness; - Digest: Digest; - DigestItem: DigestItem; - DigestOf: DigestOf; - DispatchClass: DispatchClass; - DispatchError: DispatchError; - DispatchErrorModule: DispatchErrorModule; - DispatchErrorModulePre6: DispatchErrorModulePre6; - DispatchErrorModuleU8: DispatchErrorModuleU8; - DispatchErrorModuleU8a: DispatchErrorModuleU8a; - DispatchErrorPre6: DispatchErrorPre6; - DispatchErrorPre6First: DispatchErrorPre6First; - DispatchErrorTo198: DispatchErrorTo198; - DispatchFeePayment: DispatchFeePayment; - DispatchInfo: DispatchInfo; - DispatchInfoTo190: DispatchInfoTo190; - DispatchInfoTo244: DispatchInfoTo244; - DispatchOutcome: DispatchOutcome; - DispatchOutcomePre6: DispatchOutcomePre6; - DispatchResult: DispatchResult; - DispatchResultOf: DispatchResultOf; - DispatchResultTo198: DispatchResultTo198; - DispatchResultWithPostInfo: DispatchResultWithPostInfo; - DisputeLocation: DisputeLocation; - DisputeProof: DisputeProof; - DisputeResult: DisputeResult; - DisputeState: DisputeState; - DisputeStatement: DisputeStatement; - DisputeStatementSet: DisputeStatementSet; - DisputesTimeSlot: DisputesTimeSlot; - DoubleEncodedCall: DoubleEncodedCall; - DoubleVoteReport: DoubleVoteReport; - DownwardMessage: DownwardMessage; - EcdsaSignature: EcdsaSignature; - Ed25519Signature: Ed25519Signature; - EIP1559Transaction: EIP1559Transaction; - EIP2930Transaction: EIP2930Transaction; - ElectionCompute: ElectionCompute; - ElectionPhase: ElectionPhase; - ElectionResult: ElectionResult; - ElectionScore: ElectionScore; - ElectionSize: ElectionSize; - ElectionStatus: ElectionStatus; - EncodedFinalityProofs: EncodedFinalityProofs; - EncodedJustification: EncodedJustification; - Epoch: Epoch; - EpochAuthorship: EpochAuthorship; - Era: Era; - EraIndex: EraIndex; - EraPoints: EraPoints; - EraRewardPoints: EraRewardPoints; - EraRewards: EraRewards; - Error: Error; - ErrorMetadataLatest: ErrorMetadataLatest; - ErrorMetadataV10: ErrorMetadataV10; - ErrorMetadataV11: ErrorMetadataV11; - ErrorMetadataV12: ErrorMetadataV12; - ErrorMetadataV13: ErrorMetadataV13; - ErrorMetadataV14: ErrorMetadataV14; - ErrorMetadataV9: ErrorMetadataV9; - EthAccessList: EthAccessList; - EthAccessListItem: EthAccessListItem; - EthAccount: EthAccount; - EthAddress: EthAddress; - EthBlock: EthBlock; - EthBloom: EthBloom; - EthCallRequest: EthCallRequest; - EthereumAccountId: EthereumAccountId; - EthereumAddress: EthereumAddress; - EthereumLookupSource: EthereumLookupSource; - EthereumSignature: EthereumSignature; - EthFeeHistory: EthFeeHistory; - EthFilter: EthFilter; - EthFilterAddress: EthFilterAddress; - EthFilterChanges: EthFilterChanges; - EthFilterTopic: EthFilterTopic; - EthFilterTopicEntry: EthFilterTopicEntry; - EthFilterTopicInner: EthFilterTopicInner; - EthHeader: EthHeader; - EthLog: EthLog; - EthReceipt: EthReceipt; - EthReceiptV0: EthReceiptV0; - EthReceiptV3: EthReceiptV3; - EthRichBlock: EthRichBlock; - EthRichHeader: EthRichHeader; - EthStorageProof: EthStorageProof; - EthSubKind: EthSubKind; - EthSubParams: EthSubParams; - EthSubResult: EthSubResult; - EthSyncInfo: EthSyncInfo; - EthSyncStatus: EthSyncStatus; - EthTransaction: EthTransaction; - EthTransactionAction: EthTransactionAction; - EthTransactionCondition: EthTransactionCondition; - EthTransactionRequest: EthTransactionRequest; - EthTransactionSignature: EthTransactionSignature; - EthTransactionStatus: EthTransactionStatus; - EthWork: EthWork; - Event: Event; - EventId: EventId; - EventIndex: EventIndex; - EventMetadataLatest: EventMetadataLatest; - EventMetadataV10: EventMetadataV10; - EventMetadataV11: EventMetadataV11; - EventMetadataV12: EventMetadataV12; - EventMetadataV13: EventMetadataV13; - EventMetadataV14: EventMetadataV14; - EventMetadataV9: EventMetadataV9; - EventRecord: EventRecord; - EvmAccount: EvmAccount; - EvmCallInfo: EvmCallInfo; - EvmCallInfoV2: EvmCallInfoV2; - EvmCreateInfo: EvmCreateInfo; - EvmCreateInfoV2: EvmCreateInfoV2; - EvmLog: EvmLog; - EvmVicinity: EvmVicinity; - EvmWeightInfo: EvmWeightInfo; - ExecReturnValue: ExecReturnValue; - ExecutorParam: ExecutorParam; - ExecutorParams: ExecutorParams; - ExecutorParamsHash: ExecutorParamsHash; - ExitError: ExitError; - ExitFatal: ExitFatal; - ExitReason: ExitReason; - ExitRevert: ExitRevert; - ExitSucceed: ExitSucceed; - ExplicitDisputeStatement: ExplicitDisputeStatement; - Exposure: Exposure; - ExtendedBalance: ExtendedBalance; - Extrinsic: Extrinsic; - ExtrinsicEra: ExtrinsicEra; - ExtrinsicInclusionMode: ExtrinsicInclusionMode; - ExtrinsicMetadataLatest: ExtrinsicMetadataLatest; - ExtrinsicMetadataV11: ExtrinsicMetadataV11; - ExtrinsicMetadataV12: ExtrinsicMetadataV12; - ExtrinsicMetadataV13: ExtrinsicMetadataV13; - ExtrinsicMetadataV14: ExtrinsicMetadataV14; - ExtrinsicMetadataV15: ExtrinsicMetadataV15; - ExtrinsicOrHash: ExtrinsicOrHash; - ExtrinsicPayload: ExtrinsicPayload; - ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; - ExtrinsicPayloadV4: ExtrinsicPayloadV4; - ExtrinsicPayloadV5: ExtrinsicPayloadV5; - ExtrinsicSignature: ExtrinsicSignature; - ExtrinsicSignatureV4: ExtrinsicSignatureV4; - ExtrinsicSignatureV5: ExtrinsicSignatureV5; - ExtrinsicStatus: ExtrinsicStatus; - ExtrinsicsWeight: ExtrinsicsWeight; - ExtrinsicUnknown: ExtrinsicUnknown; - ExtrinsicV4: ExtrinsicV4; - ExtrinsicV5: ExtrinsicV5; - f32: f32; - F32: F32; - f64: f64; - F64: F64; - FeeDetails: FeeDetails; - FileMetadata: FileMetadata; - Fixed128: Fixed128; - Fixed64: Fixed64; - FixedI128: FixedI128; - FixedI64: FixedI64; - FixedU128: FixedU128; - FixedU64: FixedU64; - Forcing: Forcing; - ForkTreePendingChange: ForkTreePendingChange; - ForkTreePendingChangeNode: ForkTreePendingChangeNode; - FullIdentification: FullIdentification; - FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest; - FunctionArgumentMetadataV10: FunctionArgumentMetadataV10; - FunctionArgumentMetadataV11: FunctionArgumentMetadataV11; - FunctionArgumentMetadataV12: FunctionArgumentMetadataV12; - FunctionArgumentMetadataV13: FunctionArgumentMetadataV13; - FunctionArgumentMetadataV14: FunctionArgumentMetadataV14; - FunctionArgumentMetadataV9: FunctionArgumentMetadataV9; - FunctionMetadataLatest: FunctionMetadataLatest; - FunctionMetadataV10: FunctionMetadataV10; - FunctionMetadataV11: FunctionMetadataV11; - FunctionMetadataV12: FunctionMetadataV12; - FunctionMetadataV13: FunctionMetadataV13; - FunctionMetadataV14: FunctionMetadataV14; - FunctionMetadataV9: FunctionMetadataV9; - FundIndex: FundIndex; - FundInfo: FundInfo; - Fungibility: Fungibility; - FungibilityV0: FungibilityV0; - FungibilityV1: FungibilityV1; - FungibilityV2: FungibilityV2; - FungibilityV3: FungibilityV3; - FungibilityV4: FungibilityV4; - FungiblesAccessError: FungiblesAccessError; - Gas: Gas; - GenesisBuildErr: GenesisBuildErr; - GetBspInfoError: GetBspInfoError; - GetChallengePeriodError: GetChallengePeriodError; - GetChallengeSeedError: GetChallengeSeedError; - GetCheckpointChallengesError: GetCheckpointChallengesError; - GetFileFromFileStorageResult: GetFileFromFileStorageResult; - GetLastTickProviderSubmittedProofError: GetLastTickProviderSubmittedProofError; - GetNextDeadlineTickError: GetNextDeadlineTickError; - GetUsersWithDebtOverThresholdError: GetUsersWithDebtOverThresholdError; - GiltBid: GiltBid; - GlobalValidationData: GlobalValidationData; - GlobalValidationSchedule: GlobalValidationSchedule; - GrandpaCommit: GrandpaCommit; - GrandpaEquivocation: GrandpaEquivocation; - GrandpaEquivocationProof: GrandpaEquivocationProof; - GrandpaEquivocationValue: GrandpaEquivocationValue; - GrandpaJustification: GrandpaJustification; - GrandpaPrecommit: GrandpaPrecommit; - GrandpaPrevote: GrandpaPrevote; - GrandpaSignedPrecommit: GrandpaSignedPrecommit; - GroupIndex: GroupIndex; - GroupRotationInfo: GroupRotationInfo; - H1024: H1024; - H128: H128; - H160: H160; - H2048: H2048; - H256: H256; - H32: H32; - H512: H512; - H64: H64; - Hash: Hash; - HeadData: HeadData; - Header: Header; - HeaderPartial: HeaderPartial; - Health: Health; - Heartbeat: Heartbeat; - HeartbeatTo244: HeartbeatTo244; - HostConfiguration: HostConfiguration; - HostFnWeights: HostFnWeights; - HostFnWeightsTo264: HostFnWeightsTo264; - HrmpChannel: HrmpChannel; - HrmpChannelId: HrmpChannelId; - HrmpOpenChannelRequest: HrmpOpenChannelRequest; - i128: i128; - I128: I128; - i16: i16; - I16: I16; - i256: i256; - I256: I256; - i32: i32; - I32: I32; - I32F32: I32F32; - i64: i64; - I64: I64; - i8: i8; - I8: I8; - IdentificationTuple: IdentificationTuple; - IdentityFields: IdentityFields; - IdentityInfo: IdentityInfo; - IdentityInfoAdditional: IdentityInfoAdditional; - IdentityInfoTo198: IdentityInfoTo198; - IdentityJudgement: IdentityJudgement; - ImmortalEra: ImmortalEra; - ImportedAux: ImportedAux; - InboundDownwardMessage: InboundDownwardMessage; - InboundHrmpLimitations: InboundHrmpLimitations; - InboundHrmpMessage: InboundHrmpMessage; - InboundHrmpMessages: InboundHrmpMessages; - InboundLaneData: InboundLaneData; - InboundRelayer: InboundRelayer; - InboundStatus: InboundStatus; - IncludedBlocks: IncludedBlocks; - InclusionFee: InclusionFee; - IncomingParachain: IncomingParachain; - IncomingParachainDeploy: IncomingParachainDeploy; - IncomingParachainFixed: IncomingParachainFixed; - IncompleteFileStatus: IncompleteFileStatus; - Index: Index; - IndicesLookupSource: IndicesLookupSource; - IndividualExposure: IndividualExposure; - InherentData: InherentData; - InherentIdentifier: InherentIdentifier; - InitializationData: InitializationData; - InstanceDetails: InstanceDetails; - InstanceId: InstanceId; - InstanceMetadata: InstanceMetadata; - InstantiateRequest: InstantiateRequest; - InstantiateRequestV1: InstantiateRequestV1; - InstantiateRequestV2: InstantiateRequestV2; - InstantiateReturnValue: InstantiateReturnValue; - InstantiateReturnValueOk: InstantiateReturnValueOk; - InstantiateReturnValueTo267: InstantiateReturnValueTo267; - InstructionV2: InstructionV2; - InstructionV3: InstructionV3; - InstructionV4: InstructionV4; - InstructionWeights: InstructionWeights; - InteriorMultiLocation: InteriorMultiLocation; - InteriorMultiLocationV2: InteriorMultiLocationV2; - InteriorMultiLocationV3: InteriorMultiLocationV3; - InvalidDisputeStatementKind: InvalidDisputeStatementKind; - InvalidTransaction: InvalidTransaction; - isize: isize; - ISize: ISize; - Json: Json; - Junction: Junction; - Junctions: Junctions; - JunctionsV1: JunctionsV1; - JunctionsV2: JunctionsV2; - JunctionsV3: JunctionsV3; - JunctionsV4: JunctionsV4; - JunctionV0: JunctionV0; - JunctionV1: JunctionV1; - JunctionV2: JunctionV2; - JunctionV3: JunctionV3; - JunctionV4: JunctionV4; - Justification: Justification; - JustificationNotification: JustificationNotification; - Justifications: Justifications; - Key: Key; - KeyOwnerProof: KeyOwnerProof; - Keys: Keys; - KeyType: KeyType; - KeyTypeId: KeyTypeId; - KeyValue: KeyValue; - KeyValueOption: KeyValueOption; - Kind: Kind; - LaneId: LaneId; - LastContribution: LastContribution; - LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo; - LeasePeriod: LeasePeriod; - LeasePeriodOf: LeasePeriodOf; - LegacyTransaction: LegacyTransaction; - Limits: Limits; - LimitsTo264: LimitsTo264; - LocalValidationData: LocalValidationData; - LockIdentifier: LockIdentifier; - LookupSource: LookupSource; - LookupTarget: LookupTarget; - LotteryConfig: LotteryConfig; - MainStorageProviderId: MainStorageProviderId; - MaxPalletNameLen: MaxPalletNameLen; - MaxPalletsInfo: MaxPalletsInfo; - MaybeErrorCodeV3: MaybeErrorCodeV3; - MaybeRandomness: MaybeRandomness; - MaybeVrf: MaybeVrf; - MemberCount: MemberCount; - MembershipProof: MembershipProof; - MerklePatriciaRoot: MerklePatriciaRoot; - MessageData: MessageData; - MessageId: MessageId; - MessageIngestionType: MessageIngestionType; - MessageKey: MessageKey; - MessageNonce: MessageNonce; - MessageQueueChain: MessageQueueChain; - MessagesDeliveryProofOf: MessagesDeliveryProofOf; - MessagesProofOf: MessagesProofOf; - MessagingStateSnapshot: MessagingStateSnapshot; - MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry; - MetadataAll: MetadataAll; - MetadataLatest: MetadataLatest; - MetadataV10: MetadataV10; - MetadataV11: MetadataV11; - MetadataV12: MetadataV12; - MetadataV13: MetadataV13; - MetadataV14: MetadataV14; - MetadataV15: MetadataV15; - MetadataV9: MetadataV9; - MigrationStatusResult: MigrationStatusResult; - Mixnode: Mixnode; - MixnodesErr: MixnodesErr; - MmrBatchProof: MmrBatchProof; - MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf; - MmrError: MmrError; - MmrHash: MmrHash; - MmrLeafBatchProof: MmrLeafBatchProof; - MmrLeafIndex: MmrLeafIndex; - MmrLeafProof: MmrLeafProof; - MmrNodeIndex: MmrNodeIndex; - MmrProof: MmrProof; - MmrRootHash: MmrRootHash; - ModuleConstantMetadataV10: ModuleConstantMetadataV10; - ModuleConstantMetadataV11: ModuleConstantMetadataV11; - ModuleConstantMetadataV12: ModuleConstantMetadataV12; - ModuleConstantMetadataV13: ModuleConstantMetadataV13; - ModuleConstantMetadataV9: ModuleConstantMetadataV9; - ModuleId: ModuleId; - ModuleMetadataV10: ModuleMetadataV10; - ModuleMetadataV11: ModuleMetadataV11; - ModuleMetadataV12: ModuleMetadataV12; - ModuleMetadataV13: ModuleMetadataV13; - ModuleMetadataV9: ModuleMetadataV9; - Moment: Moment; - MomentOf: MomentOf; - MoreAttestations: MoreAttestations; - MortalEra: MortalEra; - MultiAddress: MultiAddress; - MultiAsset: MultiAsset; - MultiAssetFilter: MultiAssetFilter; - MultiAssetFilterV1: MultiAssetFilterV1; - MultiAssetFilterV2: MultiAssetFilterV2; - MultiAssetFilterV3: MultiAssetFilterV3; - MultiAssetFilterV4: MultiAssetFilterV4; - MultiAssets: MultiAssets; - MultiAssetsV1: MultiAssetsV1; - MultiAssetsV2: MultiAssetsV2; - MultiAssetsV3: MultiAssetsV3; - MultiAssetsV4: MultiAssetsV4; - MultiAssetV0: MultiAssetV0; - MultiAssetV1: MultiAssetV1; - MultiAssetV2: MultiAssetV2; - MultiAssetV3: MultiAssetV3; - MultiAssetV4: MultiAssetV4; - MultiDisputeStatementSet: MultiDisputeStatementSet; - MultiLocation: MultiLocation; - MultiLocationV0: MultiLocationV0; - MultiLocationV1: MultiLocationV1; - MultiLocationV2: MultiLocationV2; - MultiLocationV3: MultiLocationV3; - MultiLocationV4: MultiLocationV4; - Multiplier: Multiplier; - Multisig: Multisig; - MultiSignature: MultiSignature; - MultiSigner: MultiSigner; - NetworkId: NetworkId; - NetworkIdV2: NetworkIdV2; - NetworkIdV3: NetworkIdV3; - NetworkIdV4: NetworkIdV4; - NetworkState: NetworkState; - NetworkStatePeerset: NetworkStatePeerset; - NetworkStatePeersetInfo: NetworkStatePeersetInfo; - NewBidder: NewBidder; - NextAuthority: NextAuthority; - NextConfigDescriptor: NextConfigDescriptor; - NextConfigDescriptorV1: NextConfigDescriptorV1; - NftCollectionId: NftCollectionId; - NftItemId: NftItemId; - NodeFeatures: NodeFeatures; - NodeRole: NodeRole; - Nominations: Nominations; - NominatorIndex: NominatorIndex; - NominatorIndexCompact: NominatorIndexCompact; - NotConnectedPeer: NotConnectedPeer; - NpApiError: NpApiError; - NpPoolId: NpPoolId; - Null: Null; - OccupiedCore: OccupiedCore; - OccupiedCoreAssumption: OccupiedCoreAssumption; - OffchainAccuracy: OffchainAccuracy; - OffchainAccuracyCompact: OffchainAccuracyCompact; - OffenceDetails: OffenceDetails; - Offender: Offender; - OldV1SessionInfo: OldV1SessionInfo; - OpaqueCall: OpaqueCall; - OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof; - OpaqueMetadata: OpaqueMetadata; - OpaqueMultiaddr: OpaqueMultiaddr; - OpaqueNetworkState: OpaqueNetworkState; - OpaquePeerId: OpaquePeerId; - OpaqueTimeSlot: OpaqueTimeSlot; - OpenTip: OpenTip; - OpenTipFinderTo225: OpenTipFinderTo225; - OpenTipTip: OpenTipTip; - OpenTipTo225: OpenTipTo225; - OperatingMode: OperatingMode; - OptionBool: OptionBool; - Origin: Origin; - OriginCaller: OriginCaller; - OriginKindV0: OriginKindV0; - OriginKindV1: OriginKindV1; - OriginKindV2: OriginKindV2; - OriginKindV3: OriginKindV3; - OriginKindV4: OriginKindV4; - OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; - OutboundHrmpMessage: OutboundHrmpMessage; - OutboundLaneData: OutboundLaneData; - OutboundMessageFee: OutboundMessageFee; - OutboundPayload: OutboundPayload; - OutboundStatus: OutboundStatus; - Outcome: Outcome; - OutcomeV4: OutcomeV4; - OuterEnums15: OuterEnums15; - OverweightIndex: OverweightIndex; - Owner: Owner; - PageCounter: PageCounter; - PageIndexData: PageIndexData; - PalletCallMetadataLatest: PalletCallMetadataLatest; - PalletCallMetadataV14: PalletCallMetadataV14; - PalletConstantMetadataLatest: PalletConstantMetadataLatest; - PalletConstantMetadataV14: PalletConstantMetadataV14; - PalletErrorMetadataLatest: PalletErrorMetadataLatest; - PalletErrorMetadataV14: PalletErrorMetadataV14; - PalletEventMetadataLatest: PalletEventMetadataLatest; - PalletEventMetadataV14: PalletEventMetadataV14; - PalletId: PalletId; - PalletInfoV3: PalletInfoV3; - PalletInfoV4: PalletInfoV4; - PalletMetadataLatest: PalletMetadataLatest; - PalletMetadataV14: PalletMetadataV14; - PalletMetadataV15: PalletMetadataV15; - PalletsOrigin: PalletsOrigin; - PalletStorageMetadataLatest: PalletStorageMetadataLatest; - PalletStorageMetadataV14: PalletStorageMetadataV14; - PalletVersion: PalletVersion; - ParachainDispatchOrigin: ParachainDispatchOrigin; - ParachainInherentData: ParachainInherentData; - ParachainProposal: ParachainProposal; - ParachainsInherentData: ParachainsInherentData; - ParaGenesisArgs: ParaGenesisArgs; - ParaId: ParaId; - ParaInfo: ParaInfo; - ParaLifecycle: ParaLifecycle; - Parameter: Parameter; - ParaPastCodeMeta: ParaPastCodeMeta; - ParaScheduling: ParaScheduling; - ParathreadClaim: ParathreadClaim; - ParathreadClaimQueue: ParathreadClaimQueue; - ParathreadEntry: ParathreadEntry; - ParaValidatorIndex: ParaValidatorIndex; - Pays: Pays; - Peer: Peer; - PeerEndpoint: PeerEndpoint; - PeerEndpointAddr: PeerEndpointAddr; - PeerInfo: PeerInfo; - PeerPing: PeerPing; - PendingChange: PendingChange; - PendingPause: PendingPause; - PendingResume: PendingResume; - PendingSlashes: PendingSlashes; - Perbill: Perbill; - Percent: Percent; - PerDispatchClassU32: PerDispatchClassU32; - PerDispatchClassWeight: PerDispatchClassWeight; - PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass; - Period: Period; - Permill: Permill; - PermissionLatest: PermissionLatest; - PermissionsV1: PermissionsV1; - PermissionVersions: PermissionVersions; - Perquintill: Perquintill; - PersistedValidationData: PersistedValidationData; - PerU16: PerU16; - Phantom: Phantom; - PhantomData: PhantomData; - Phase: Phase; - PhragmenScore: PhragmenScore; - Points: Points; - PortableType: PortableType; - PortableTypeV14: PortableTypeV14; - PostDispatchInfo: PostDispatchInfo; - Precommits: Precommits; - PrefabWasmModule: PrefabWasmModule; - PrefixedStorageKey: PrefixedStorageKey; - PreimageStatus: PreimageStatus; - PreimageStatusAvailable: PreimageStatusAvailable; - PreRuntime: PreRuntime; - Prevotes: Prevotes; - Priority: Priority; - PriorLock: PriorLock; - PropIndex: PropIndex; - Proposal: Proposal; - ProposalIndex: ProposalIndex; - ProviderId: ProviderId; - ProxyAnnouncement: ProxyAnnouncement; - ProxyDefinition: ProxyDefinition; - ProxyState: ProxyState; - ProxyType: ProxyType; - PvfCheckStatement: PvfCheckStatement; - PvfExecTimeoutKind: PvfExecTimeoutKind; - PvfPrepTimeoutKind: PvfPrepTimeoutKind; - QueryAvailableStorageCapacityError: QueryAvailableStorageCapacityError; - QueryBspConfirmChunksToProveForFileError: QueryBspConfirmChunksToProveForFileError; - QueryConfirmChunksToProveForFileError: QueryConfirmChunksToProveForFileError; - QueryEarliestChangeCapacityBlockError: QueryEarliestChangeCapacityBlockError; - QueryFileEarliestVolunteerBlockError: QueryFileEarliestVolunteerBlockError; - QueryId: QueryId; -<<<<<<< HEAD - QueryResponseInfoV3: QueryResponseInfoV3; - QueryResponseInfoV4: QueryResponseInfoV4; -======= - QueryMspConfirmChunksToProveForFileError: QueryMspConfirmChunksToProveForFileError; - QueryMspIdOfBucketIdError: QueryMspIdOfBucketIdError; ->>>>>>> main - QueryStatus: QueryStatus; - QueryStorageProviderCapacityError: QueryStorageProviderCapacityError; - QueueConfigData: QueueConfigData; - QueuedParathread: QueuedParathread; - Randomness: Randomness; - RandomnessOutput: RandomnessOutput; - Raw: Raw; - RawAuraPreDigest: RawAuraPreDigest; - RawBabePreDigest: RawBabePreDigest; - RawBabePreDigestCompat: RawBabePreDigestCompat; - RawBabePreDigestPrimary: RawBabePreDigestPrimary; - RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159; - RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain; - RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159; - RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF; - RawBabePreDigestTo159: RawBabePreDigestTo159; - RawOrigin: RawOrigin; - RawSolution: RawSolution; - RawSolutionTo265: RawSolutionTo265; - RawSolutionWith16: RawSolutionWith16; - RawSolutionWith24: RawSolutionWith24; - RawVRFOutput: RawVRFOutput; - ReadProof: ReadProof; - ReadySolution: ReadySolution; - Reasons: Reasons; - RecoveryConfig: RecoveryConfig; - RefCount: RefCount; - RefCountTo259: RefCountTo259; - ReferendumIndex: ReferendumIndex; - ReferendumInfo: ReferendumInfo; - ReferendumInfoFinished: ReferendumInfoFinished; - ReferendumInfoTo239: ReferendumInfoTo239; - ReferendumStatus: ReferendumStatus; - RegisteredParachainInfo: RegisteredParachainInfo; - RegistrarIndex: RegistrarIndex; - RegistrarInfo: RegistrarInfo; - Registration: Registration; - RegistrationJudgement: RegistrationJudgement; - RegistrationTo198: RegistrationTo198; - RelayBlockNumber: RelayBlockNumber; - RelayChainBlockNumber: RelayChainBlockNumber; - RelayChainHash: RelayChainHash; - RelayerId: RelayerId; - RelayHash: RelayHash; - Releases: Releases; - Remark: Remark; - Renouncing: Renouncing; - RentProjection: RentProjection; - ReplacementTimes: ReplacementTimes; - ReportedRoundStates: ReportedRoundStates; - Reporter: Reporter; - ReportIdOf: ReportIdOf; - ReserveData: ReserveData; - ReserveIdentifier: ReserveIdentifier; - Response: Response; - ResponseV0: ResponseV0; - ResponseV1: ResponseV1; - ResponseV2: ResponseV2; - ResponseV2Error: ResponseV2Error; - ResponseV3: ResponseV3; - ResponseV3Error: ResponseV3Error; - ResponseV3Result: ResponseV3Result; - ResponseV4: ResponseV4; - Retriable: Retriable; - RewardDestination: RewardDestination; - RewardPoint: RewardPoint; - RoundSnapshot: RoundSnapshot; - RoundState: RoundState; - RpcMethods: RpcMethods; - RuntimeApiMetadataLatest: RuntimeApiMetadataLatest; - RuntimeApiMetadataV15: RuntimeApiMetadataV15; - RuntimeApiMethodMetadataV15: RuntimeApiMethodMetadataV15; - RuntimeApiMethodParamMetadataV15: RuntimeApiMethodParamMetadataV15; - RuntimeCall: RuntimeCall; - RuntimeDbWeight: RuntimeDbWeight; - RuntimeDispatchInfo: RuntimeDispatchInfo; - RuntimeDispatchInfoV1: RuntimeDispatchInfoV1; - RuntimeDispatchInfoV2: RuntimeDispatchInfoV2; - RuntimeEvent: RuntimeEvent; - RuntimeVersion: RuntimeVersion; - RuntimeVersionApi: RuntimeVersionApi; - RuntimeVersionPartial: RuntimeVersionPartial; - RuntimeVersionPre3: RuntimeVersionPre3; - RuntimeVersionPre4: RuntimeVersionPre4; - SaveFileToDisk: SaveFileToDisk; - Schedule: Schedule; - Scheduled: Scheduled; - ScheduledCore: ScheduledCore; - ScheduledTo254: ScheduledTo254; - SchedulePeriod: SchedulePeriod; - SchedulePriority: SchedulePriority; - ScheduleTo212: ScheduleTo212; - ScheduleTo258: ScheduleTo258; - ScheduleTo264: ScheduleTo264; - Scheduling: Scheduling; - ScrapedOnChainVotes: ScrapedOnChainVotes; - Seal: Seal; - SealV0: SealV0; - SeatHolder: SeatHolder; - SeedOf: SeedOf; - ServiceQuality: ServiceQuality; - SessionIndex: SessionIndex; - SessionInfo: SessionInfo; - SessionInfoValidatorGroup: SessionInfoValidatorGroup; - SessionKeys1: SessionKeys1; - SessionKeys10: SessionKeys10; - SessionKeys10B: SessionKeys10B; - SessionKeys2: SessionKeys2; - SessionKeys3: SessionKeys3; - SessionKeys4: SessionKeys4; - SessionKeys5: SessionKeys5; - SessionKeys6: SessionKeys6; - SessionKeys6B: SessionKeys6B; - SessionKeys7: SessionKeys7; - SessionKeys7B: SessionKeys7B; - SessionKeys8: SessionKeys8; - SessionKeys8B: SessionKeys8B; - SessionKeys9: SessionKeys9; - SessionKeys9B: SessionKeys9B; - SessionPhase: SessionPhase; - SessionStatus: SessionStatus; - SetId: SetId; - SetIndex: SetIndex; - Si0Field: Si0Field; - Si0LookupTypeId: Si0LookupTypeId; - Si0Path: Si0Path; - Si0Type: Si0Type; - Si0TypeDef: Si0TypeDef; - Si0TypeDefArray: Si0TypeDefArray; - Si0TypeDefBitSequence: Si0TypeDefBitSequence; - Si0TypeDefCompact: Si0TypeDefCompact; - Si0TypeDefComposite: Si0TypeDefComposite; - Si0TypeDefPhantom: Si0TypeDefPhantom; - Si0TypeDefPrimitive: Si0TypeDefPrimitive; - Si0TypeDefSequence: Si0TypeDefSequence; - Si0TypeDefTuple: Si0TypeDefTuple; - Si0TypeDefVariant: Si0TypeDefVariant; - Si0TypeParameter: Si0TypeParameter; - Si0Variant: Si0Variant; - Si1Field: Si1Field; - Si1LookupTypeId: Si1LookupTypeId; - Si1Path: Si1Path; - Si1Type: Si1Type; - Si1TypeDef: Si1TypeDef; - Si1TypeDefArray: Si1TypeDefArray; - Si1TypeDefBitSequence: Si1TypeDefBitSequence; - Si1TypeDefCompact: Si1TypeDefCompact; - Si1TypeDefComposite: Si1TypeDefComposite; - Si1TypeDefPrimitive: Si1TypeDefPrimitive; - Si1TypeDefSequence: Si1TypeDefSequence; - Si1TypeDefTuple: Si1TypeDefTuple; - Si1TypeDefVariant: Si1TypeDefVariant; - Si1TypeParameter: Si1TypeParameter; - Si1Variant: Si1Variant; - SiField: SiField; - Signature: Signature; - SignedAvailabilityBitfield: SignedAvailabilityBitfield; - SignedAvailabilityBitfields: SignedAvailabilityBitfields; - SignedBlock: SignedBlock; - SignedBlockWithJustification: SignedBlockWithJustification; - SignedBlockWithJustifications: SignedBlockWithJustifications; - SignedExtensionMetadataLatest: SignedExtensionMetadataLatest; - SignedExtensionMetadataV14: SignedExtensionMetadataV14; - SignedSubmission: SignedSubmission; - SignedSubmissionOf: SignedSubmissionOf; - SignedSubmissionTo276: SignedSubmissionTo276; - SignerPayload: SignerPayload; - SigningContext: SigningContext; - SiLookupTypeId: SiLookupTypeId; - SiPath: SiPath; - SiType: SiType; - SiTypeDef: SiTypeDef; - SiTypeDefArray: SiTypeDefArray; - SiTypeDefBitSequence: SiTypeDefBitSequence; - SiTypeDefCompact: SiTypeDefCompact; - SiTypeDefComposite: SiTypeDefComposite; - SiTypeDefPrimitive: SiTypeDefPrimitive; - SiTypeDefSequence: SiTypeDefSequence; - SiTypeDefTuple: SiTypeDefTuple; - SiTypeDefVariant: SiTypeDefVariant; - SiTypeParameter: SiTypeParameter; - SiVariant: SiVariant; - SlashingOffenceKind: SlashingOffenceKind; - SlashingSpans: SlashingSpans; - SlashingSpansTo204: SlashingSpansTo204; - SlashJournalEntry: SlashJournalEntry; - Slot: Slot; - SlotDuration: SlotDuration; - SlotNumber: SlotNumber; - SlotRange: SlotRange; - SlotRange10: SlotRange10; - SocietyJudgement: SocietyJudgement; - SocietyVote: SocietyVote; - SolutionOrSnapshotSize: SolutionOrSnapshotSize; - SolutionSupport: SolutionSupport; - SolutionSupports: SolutionSupports; - SpanIndex: SpanIndex; - SpanRecord: SpanRecord; - SpecVersion: SpecVersion; - Sr25519Signature: Sr25519Signature; - StakingLedger: StakingLedger; - StakingLedgerTo223: StakingLedgerTo223; - StakingLedgerTo240: StakingLedgerTo240; - Statement: Statement; - StatementKind: StatementKind; - StatementStoreInvalidStatement: StatementStoreInvalidStatement; - StatementStoreStatementSource: StatementStoreStatementSource; - StatementStoreValidStatement: StatementStoreValidStatement; - StorageChangeSet: StorageChangeSet; - StorageData: StorageData; - StorageDataUnit: StorageDataUnit; - StorageDeposit: StorageDeposit; - StorageEntryMetadataLatest: StorageEntryMetadataLatest; - StorageEntryMetadataV10: StorageEntryMetadataV10; - StorageEntryMetadataV11: StorageEntryMetadataV11; - StorageEntryMetadataV12: StorageEntryMetadataV12; - StorageEntryMetadataV13: StorageEntryMetadataV13; - StorageEntryMetadataV14: StorageEntryMetadataV14; - StorageEntryMetadataV9: StorageEntryMetadataV9; - StorageEntryModifierLatest: StorageEntryModifierLatest; - StorageEntryModifierV10: StorageEntryModifierV10; - StorageEntryModifierV11: StorageEntryModifierV11; - StorageEntryModifierV12: StorageEntryModifierV12; - StorageEntryModifierV13: StorageEntryModifierV13; - StorageEntryModifierV14: StorageEntryModifierV14; - StorageEntryModifierV9: StorageEntryModifierV9; - StorageEntryTypeLatest: StorageEntryTypeLatest; - StorageEntryTypeV10: StorageEntryTypeV10; - StorageEntryTypeV11: StorageEntryTypeV11; - StorageEntryTypeV12: StorageEntryTypeV12; - StorageEntryTypeV13: StorageEntryTypeV13; - StorageEntryTypeV14: StorageEntryTypeV14; - StorageEntryTypeV9: StorageEntryTypeV9; - StorageHasher: StorageHasher; - StorageHasherV10: StorageHasherV10; - StorageHasherV11: StorageHasherV11; - StorageHasherV12: StorageHasherV12; - StorageHasherV13: StorageHasherV13; - StorageHasherV14: StorageHasherV14; - StorageHasherV9: StorageHasherV9; - StorageInfo: StorageInfo; - StorageKey: StorageKey; - StorageKind: StorageKind; - StorageMetadataV10: StorageMetadataV10; - StorageMetadataV11: StorageMetadataV11; - StorageMetadataV12: StorageMetadataV12; - StorageMetadataV13: StorageMetadataV13; - StorageMetadataV9: StorageMetadataV9; - StorageProof: StorageProof; - StorageProviderId: StorageProviderId; - StoredPendingChange: StoredPendingChange; - StoredState: StoredState; - StrikeCount: StrikeCount; - SubId: SubId; - SubmissionIndicesOf: SubmissionIndicesOf; - Supports: Supports; - SyncState: SyncState; - SystemInherentData: SystemInherentData; - SystemOrigin: SystemOrigin; - Tally: Tally; - TaskAddress: TaskAddress; - TAssetBalance: TAssetBalance; - TAssetConversion: TAssetConversion; - TAssetDepositBalance: TAssetDepositBalance; - Text: Text; - Timepoint: Timepoint; - TokenError: TokenError; - TombstoneContractInfo: TombstoneContractInfo; - TraceBlockResponse: TraceBlockResponse; - TraceError: TraceError; - TransactionalError: TransactionalError; - TransactionInfo: TransactionInfo; - TransactionLongevity: TransactionLongevity; - TransactionPriority: TransactionPriority; - TransactionSource: TransactionSource; - TransactionStorageProof: TransactionStorageProof; - TransactionTag: TransactionTag; - TransactionV0: TransactionV0; - TransactionV1: TransactionV1; - TransactionV2: TransactionV2; - TransactionValidity: TransactionValidity; - TransactionValidityError: TransactionValidityError; - TransientValidationData: TransientValidationData; - TreasuryProposal: TreasuryProposal; - TrieId: TrieId; - TrieIndex: TrieIndex; - TrieRemoveMutation: TrieRemoveMutation; - Type: Type; - u128: u128; - U128: U128; - u16: u16; - U16: U16; - u256: u256; - U256: U256; - u32: u32; - U32: U32; - U32F32: U32F32; - u64: u64; - U64: U64; - u8: u8; - U8: U8; - UnappliedSlash: UnappliedSlash; - UnappliedSlashOther: UnappliedSlashOther; - UncheckedFungibilityV4: UncheckedFungibilityV4; - UncleEntryItem: UncleEntryItem; - UnknownTransaction: UnknownTransaction; - UnlockChunk: UnlockChunk; - UnrewardedRelayer: UnrewardedRelayer; - UnrewardedRelayersState: UnrewardedRelayersState; - UpgradeGoAhead: UpgradeGoAhead; - UpgradeRestriction: UpgradeRestriction; - UpwardMessage: UpwardMessage; - usize: usize; - USize: USize; - ValidationCode: ValidationCode; - ValidationCodeHash: ValidationCodeHash; - ValidationData: ValidationData; - ValidationDataType: ValidationDataType; - ValidationFunctionParams: ValidationFunctionParams; - ValidatorCount: ValidatorCount; - ValidatorId: ValidatorId; - ValidatorIdOf: ValidatorIdOf; - ValidatorIndex: ValidatorIndex; - ValidatorIndexCompact: ValidatorIndexCompact; - ValidatorPrefs: ValidatorPrefs; - ValidatorPrefsTo145: ValidatorPrefsTo145; - ValidatorPrefsTo196: ValidatorPrefsTo196; - ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked; - ValidatorPrefsWithCommission: ValidatorPrefsWithCommission; - ValidatorSet: ValidatorSet; - ValidatorSetId: ValidatorSetId; - ValidatorSignature: ValidatorSignature; - ValidDisputeStatementKind: ValidDisputeStatementKind; - ValidityAttestation: ValidityAttestation; - ValidTransaction: ValidTransaction; - VecInboundHrmpMessage: VecInboundHrmpMessage; - VersionedMultiAsset: VersionedMultiAsset; - VersionedMultiAssets: VersionedMultiAssets; - VersionedMultiLocation: VersionedMultiLocation; - VersionedResponse: VersionedResponse; - VersionedXcm: VersionedXcm; - VersionMigrationStage: VersionMigrationStage; - VersionV3: VersionV3; - VersionV4: VersionV4; - VestingInfo: VestingInfo; - VestingSchedule: VestingSchedule; - Vote: Vote; - VoteIndex: VoteIndex; - Voter: Voter; - VoterInfo: VoterInfo; - Votes: Votes; - VotesTo230: VotesTo230; - VoteThreshold: VoteThreshold; - VoteWeight: VoteWeight; - Voting: Voting; - VotingDelegating: VotingDelegating; - VotingDirect: VotingDirect; - VotingDirectVote: VotingDirectVote; - VouchingStatus: VouchingStatus; - VrfData: VrfData; - VrfOutput: VrfOutput; - VrfProof: VrfProof; - Weight: Weight; - WeightLimitV2: WeightLimitV2; - WeightLimitV3: WeightLimitV3; - WeightMultiplier: WeightMultiplier; - WeightPerClass: WeightPerClass; - WeightToFeeCoefficient: WeightToFeeCoefficient; - WeightV0: WeightV0; - WeightV1: WeightV1; - WeightV2: WeightV2; - WildFungibility: WildFungibility; - WildFungibilityV0: WildFungibilityV0; - WildFungibilityV1: WildFungibilityV1; - WildFungibilityV2: WildFungibilityV2; - WildFungibilityV3: WildFungibilityV3; - WildFungibilityV4: WildFungibilityV4; - WildMultiAsset: WildMultiAsset; - WildMultiAssetV1: WildMultiAssetV1; - WildMultiAssetV2: WildMultiAssetV2; - WildMultiAssetV3: WildMultiAssetV3; - WildMultiAssetV4: WildMultiAssetV4; - WinnersData: WinnersData; - WinnersData10: WinnersData10; - WinnersDataTuple: WinnersDataTuple; - WinnersDataTuple10: WinnersDataTuple10; - WinningData: WinningData; - WinningData10: WinningData10; - WinningDataEntry: WinningDataEntry; - WithdrawReasons: WithdrawReasons; - Xcm: Xcm; - XcmAssetId: XcmAssetId; - XcmDryRunApiError: XcmDryRunApiError; - XcmDryRunEffects: XcmDryRunEffects; - XcmError: XcmError; - XcmErrorV0: XcmErrorV0; - XcmErrorV1: XcmErrorV1; - XcmErrorV2: XcmErrorV2; - XcmErrorV3: XcmErrorV3; - XcmErrorV4: XcmErrorV4; - XcmOrderV0: XcmOrderV0; - XcmOrderV1: XcmOrderV1; - XcmOrigin: XcmOrigin; - XcmOriginKind: XcmOriginKind; - XcmPaymentApiError: XcmPaymentApiError; - XcmpMessageFormat: XcmpMessageFormat; - XcmV0: XcmV0; - XcmV1: XcmV1; - XcmV2: XcmV2; - XcmV3: XcmV3; - XcmV4: XcmV4; - XcmVersion: XcmVersion; - } -} +import "@polkadot/types/types/registry"; +import type { Data, StorageKey } from "@polkadot/types"; +import type { + BitVec, + Bool, + Bytes, + F32, + F64, + I128, + I16, + I256, + I32, + I64, + I8, + ISize, + Json, + Null, + OptionBool, + Raw, + Text, + Type, + U128, + U16, + U256, + U32, + U64, + U8, + USize, + bool, + f32, + f64, + i128, + i16, + i256, + i32, + i64, + i8, + isize, + u128, + u16, + u256, + u32, + u64, + u8, + usize +} from "@polkadot/types-codec"; +import type { TAssetConversion } from "@polkadot/types/interfaces/assetConversion"; +import type { + AssetApproval, + AssetApprovalKey, + AssetBalance, + AssetDestroyWitness, + AssetDetails, + AssetMetadata, + TAssetBalance, + TAssetDepositBalance +} from "@polkadot/types/interfaces/assets"; +import type { + BlockAttestations, + IncludedBlocks, + MoreAttestations +} from "@polkadot/types/interfaces/attestations"; +import type { RawAuraPreDigest } from "@polkadot/types/interfaces/aura"; +import type { ExtrinsicOrHash, ExtrinsicStatus } from "@polkadot/types/interfaces/author"; +import type { UncleEntryItem } from "@polkadot/types/interfaces/authorship"; +import type { + AllowedSlots, + BabeAuthorityWeight, + BabeBlockWeight, + BabeEpochConfiguration, + BabeEquivocationProof, + BabeGenesisConfiguration, + BabeGenesisConfigurationV1, + BabeWeight, + Epoch, + EpochAuthorship, + MaybeRandomness, + MaybeVrf, + NextConfigDescriptor, + NextConfigDescriptorV1, + OpaqueKeyOwnershipProof, + Randomness, + RawBabePreDigest, + RawBabePreDigestCompat, + RawBabePreDigestPrimary, + RawBabePreDigestPrimaryTo159, + RawBabePreDigestSecondaryPlain, + RawBabePreDigestSecondaryTo159, + RawBabePreDigestSecondaryVRF, + RawBabePreDigestTo159, + SlotNumber, + VrfData, + VrfOutput, + VrfProof +} from "@polkadot/types/interfaces/babe"; +import type { + AccountData, + BalanceLock, + BalanceLockTo212, + BalanceStatus, + Reasons, + ReserveData, + ReserveIdentifier, + VestingSchedule, + WithdrawReasons +} from "@polkadot/types/interfaces/balances"; +import type { + BeefyAuthoritySet, + BeefyCommitment, + BeefyCompactSignedCommitment, + BeefyEquivocationProof, + BeefyId, + BeefyNextAuthoritySet, + BeefyPayload, + BeefyPayloadId, + BeefySignedCommitment, + BeefyVersionedFinalityProof, + BeefyVoteMessage, + MmrRootHash, + ValidatorSet, + ValidatorSetId +} from "@polkadot/types/interfaces/beefy"; +import type { + BenchmarkBatch, + BenchmarkConfig, + BenchmarkList, + BenchmarkMetadata, + BenchmarkParameter, + BenchmarkResult +} from "@polkadot/types/interfaces/benchmark"; +import type { + CheckInherentsResult, + InherentData, + InherentIdentifier +} from "@polkadot/types/interfaces/blockbuilder"; +import type { + BridgeMessageId, + BridgedBlockHash, + BridgedBlockNumber, + BridgedHeader, + CallOrigin, + ChainId, + DeliveredMessages, + DispatchFeePayment, + InboundLaneData, + InboundRelayer, + InitializationData, + LaneId, + MessageData, + MessageKey, + MessageNonce, + MessagesDeliveryProofOf, + MessagesProofOf, + OperatingMode, + OutboundLaneData, + OutboundMessageFee, + OutboundPayload, + Parameter, + RelayerId, + UnrewardedRelayer, + UnrewardedRelayersState +} from "@polkadot/types/interfaces/bridges"; +import type { BlockHash } from "@polkadot/types/interfaces/chain"; +import type { PrefixedStorageKey } from "@polkadot/types/interfaces/childstate"; +import type { StatementKind } from "@polkadot/types/interfaces/claims"; +import type { + CollectiveOrigin, + MemberCount, + ProposalIndex, + Votes, + VotesTo230 +} from "@polkadot/types/interfaces/collective"; +import type { AuthorityId, RawVRFOutput } from "@polkadot/types/interfaces/consensus"; +import type { + AliveContractInfo, + CodeHash, + CodeSource, + CodeUploadRequest, + CodeUploadResult, + CodeUploadResultValue, + ContractCallFlags, + ContractCallRequest, + ContractExecResult, + ContractExecResultOk, + ContractExecResultResult, + ContractExecResultSuccessTo255, + ContractExecResultSuccessTo260, + ContractExecResultTo255, + ContractExecResultTo260, + ContractExecResultTo267, + ContractExecResultU64, + ContractInfo, + ContractInstantiateResult, + ContractInstantiateResultTo267, + ContractInstantiateResultTo299, + ContractInstantiateResultU64, + ContractReturnFlags, + ContractStorageKey, + DeletedContract, + ExecReturnValue, + Gas, + HostFnWeights, + HostFnWeightsTo264, + InstantiateRequest, + InstantiateRequestV1, + InstantiateRequestV2, + InstantiateReturnValue, + InstantiateReturnValueOk, + InstantiateReturnValueTo267, + InstructionWeights, + Limits, + LimitsTo264, + PrefabWasmModule, + RentProjection, + Schedule, + ScheduleTo212, + ScheduleTo258, + ScheduleTo264, + SeedOf, + StorageDeposit, + TombstoneContractInfo, + TrieId +} from "@polkadot/types/interfaces/contracts"; +import type { + ContractConstructorSpecLatest, + ContractConstructorSpecV0, + ContractConstructorSpecV1, + ContractConstructorSpecV2, + ContractConstructorSpecV3, + ContractConstructorSpecV4, + ContractContractSpecV0, + ContractContractSpecV1, + ContractContractSpecV2, + ContractContractSpecV3, + ContractContractSpecV4, + ContractContractSpecV5, + ContractCryptoHasher, + ContractDiscriminant, + ContractDisplayName, + ContractEnvironmentV4, + ContractEventParamSpecLatest, + ContractEventParamSpecV0, + ContractEventParamSpecV2, + ContractEventSpecLatest, + ContractEventSpecV0, + ContractEventSpecV1, + ContractEventSpecV2, + ContractEventSpecV3, + ContractLayoutArray, + ContractLayoutCell, + ContractLayoutEnum, + ContractLayoutHash, + ContractLayoutHashingStrategy, + ContractLayoutKey, + ContractLayoutStruct, + ContractLayoutStructField, + ContractMessageParamSpecLatest, + ContractMessageParamSpecV0, + ContractMessageParamSpecV2, + ContractMessageSpecLatest, + ContractMessageSpecV0, + ContractMessageSpecV1, + ContractMessageSpecV2, + ContractMessageSpecV3, + ContractMetadata, + ContractMetadataLatest, + ContractMetadataV0, + ContractMetadataV1, + ContractMetadataV2, + ContractMetadataV3, + ContractMetadataV4, + ContractMetadataV5, + ContractProject, + ContractProjectContract, + ContractProjectInfo, + ContractProjectSource, + ContractProjectV0, + ContractSelector, + ContractStorageLayout, + ContractTypeSpec +} from "@polkadot/types/interfaces/contractsAbi"; +import type { + FundIndex, + FundInfo, + LastContribution, + TrieIndex +} from "@polkadot/types/interfaces/crowdloan"; +import type { + CollationInfo, + CollationInfoV1, + ConfigData, + MessageId, + OverweightIndex, + PageCounter, + PageIndexData +} from "@polkadot/types/interfaces/cumulus"; +import type { + AccountVote, + AccountVoteSplit, + AccountVoteStandard, + Conviction, + Delegations, + PreimageStatus, + PreimageStatusAvailable, + PriorLock, + PropIndex, + Proposal, + ProxyState, + ReferendumIndex, + ReferendumInfo, + ReferendumInfoFinished, + ReferendumInfoTo239, + ReferendumStatus, + Tally, + Voting, + VotingDelegating, + VotingDirect, + VotingDirectVote +} from "@polkadot/types/interfaces/democracy"; +import type { BlockStats } from "@polkadot/types/interfaces/dev"; +import type { + CallDryRunEffects, + DispatchResultWithPostInfo, + PostDispatchInfo, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; +import type { + ApprovalFlag, + DefunctVoter, + Renouncing, + SetIndex, + Vote, + VoteIndex, + VoteThreshold, + VoterInfo +} from "@polkadot/types/interfaces/elections"; +import type { CreatedBlock, ImportedAux } from "@polkadot/types/interfaces/engine"; +import type { + BlockV0, + BlockV1, + BlockV2, + EIP1559Transaction, + EIP2930Transaction, + EthAccessList, + EthAccessListItem, + EthAccount, + EthAddress, + EthBlock, + EthBloom, + EthCallRequest, + EthFeeHistory, + EthFilter, + EthFilterAddress, + EthFilterChanges, + EthFilterTopic, + EthFilterTopicEntry, + EthFilterTopicInner, + EthHeader, + EthLog, + EthReceipt, + EthReceiptV0, + EthReceiptV3, + EthRichBlock, + EthRichHeader, + EthStorageProof, + EthSubKind, + EthSubParams, + EthSubResult, + EthSyncInfo, + EthSyncStatus, + EthTransaction, + EthTransactionAction, + EthTransactionCondition, + EthTransactionRequest, + EthTransactionSignature, + EthTransactionStatus, + EthWork, + EthereumAccountId, + EthereumAddress, + EthereumLookupSource, + EthereumSignature, + LegacyTransaction, + TransactionV0, + TransactionV1, + TransactionV2 +} from "@polkadot/types/interfaces/eth"; +import type { + EvmAccount, + EvmCallInfo, + EvmCallInfoV2, + EvmCreateInfo, + EvmCreateInfoV2, + EvmLog, + EvmVicinity, + EvmWeightInfo, + ExitError, + ExitFatal, + ExitReason, + ExitRevert, + ExitSucceed +} from "@polkadot/types/interfaces/evm"; +import type { + AnySignature, + EcdsaSignature, + Ed25519Signature, + Era, + Extrinsic, + ExtrinsicEra, + ExtrinsicPayload, + ExtrinsicPayloadUnknown, + ExtrinsicPayloadV4, + ExtrinsicPayloadV5, + ExtrinsicSignature, + ExtrinsicSignatureV4, + ExtrinsicSignatureV5, + ExtrinsicUnknown, + ExtrinsicV4, + ExtrinsicV5, + ImmortalEra, + MortalEra, + MultiSignature, + Signature, + SignerPayload, + Sr25519Signature +} from "@polkadot/types/interfaces/extrinsics"; +import type { FungiblesAccessError } from "@polkadot/types/interfaces/fungibles"; +import type { + AssetOptions, + Owner, + PermissionLatest, + PermissionVersions, + PermissionsV1 +} from "@polkadot/types/interfaces/genericAsset"; +import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; +import type { + ActiveGilt, + ActiveGiltsTotal, + ActiveIndex, + GiltBid +} from "@polkadot/types/interfaces/gilt"; +import type { + AuthorityIndex, + AuthorityList, + AuthoritySet, + AuthoritySetChange, + AuthoritySetChanges, + AuthorityWeight, + DelayKind, + DelayKindBest, + EncodedFinalityProofs, + ForkTreePendingChange, + ForkTreePendingChangeNode, + GrandpaCommit, + GrandpaEquivocation, + GrandpaEquivocationProof, + GrandpaEquivocationValue, + GrandpaJustification, + GrandpaPrecommit, + GrandpaPrevote, + GrandpaSignedPrecommit, + JustificationNotification, + KeyOwnerProof, + NextAuthority, + PendingChange, + PendingPause, + PendingResume, + Precommits, + Prevotes, + ReportedRoundStates, + RoundState, + SetId, + StoredPendingChange, + StoredState +} from "@polkadot/types/interfaces/grandpa"; +import type { + IdentityFields, + IdentityInfo, + IdentityInfoAdditional, + IdentityInfoTo198, + IdentityJudgement, + RegistrarIndex, + RegistrarInfo, + Registration, + RegistrationJudgement, + RegistrationTo198 +} from "@polkadot/types/interfaces/identity"; +import type { + AuthIndex, + AuthoritySignature, + Heartbeat, + HeartbeatTo244, + OpaqueMultiaddr, + OpaqueNetworkState, + OpaquePeerId +} from "@polkadot/types/interfaces/imOnline"; +import type { CallIndex, LotteryConfig } from "@polkadot/types/interfaces/lottery"; +import type { + CustomMetadata15, + CustomValueMetadata15, + ErrorMetadataLatest, + ErrorMetadataV10, + ErrorMetadataV11, + ErrorMetadataV12, + ErrorMetadataV13, + ErrorMetadataV14, + ErrorMetadataV9, + EventMetadataLatest, + EventMetadataV10, + EventMetadataV11, + EventMetadataV12, + EventMetadataV13, + EventMetadataV14, + EventMetadataV9, + ExtrinsicMetadataLatest, + ExtrinsicMetadataV11, + ExtrinsicMetadataV12, + ExtrinsicMetadataV13, + ExtrinsicMetadataV14, + ExtrinsicMetadataV15, + FunctionArgumentMetadataLatest, + FunctionArgumentMetadataV10, + FunctionArgumentMetadataV11, + FunctionArgumentMetadataV12, + FunctionArgumentMetadataV13, + FunctionArgumentMetadataV14, + FunctionArgumentMetadataV9, + FunctionMetadataLatest, + FunctionMetadataV10, + FunctionMetadataV11, + FunctionMetadataV12, + FunctionMetadataV13, + FunctionMetadataV14, + FunctionMetadataV9, + MetadataAll, + MetadataLatest, + MetadataV10, + MetadataV11, + MetadataV12, + MetadataV13, + MetadataV14, + MetadataV15, + MetadataV9, + ModuleConstantMetadataV10, + ModuleConstantMetadataV11, + ModuleConstantMetadataV12, + ModuleConstantMetadataV13, + ModuleConstantMetadataV9, + ModuleMetadataV10, + ModuleMetadataV11, + ModuleMetadataV12, + ModuleMetadataV13, + ModuleMetadataV9, + OpaqueMetadata, + OuterEnums15, + PalletCallMetadataLatest, + PalletCallMetadataV14, + PalletConstantMetadataLatest, + PalletConstantMetadataV14, + PalletErrorMetadataLatest, + PalletErrorMetadataV14, + PalletEventMetadataLatest, + PalletEventMetadataV14, + PalletMetadataLatest, + PalletMetadataV14, + PalletMetadataV15, + PalletStorageMetadataLatest, + PalletStorageMetadataV14, + PortableType, + PortableTypeV14, + RuntimeApiMetadataLatest, + RuntimeApiMetadataV15, + RuntimeApiMethodMetadataV15, + RuntimeApiMethodParamMetadataV15, + SignedExtensionMetadataLatest, + SignedExtensionMetadataV14, + StorageEntryMetadataLatest, + StorageEntryMetadataV10, + StorageEntryMetadataV11, + StorageEntryMetadataV12, + StorageEntryMetadataV13, + StorageEntryMetadataV14, + StorageEntryMetadataV9, + StorageEntryModifierLatest, + StorageEntryModifierV10, + StorageEntryModifierV11, + StorageEntryModifierV12, + StorageEntryModifierV13, + StorageEntryModifierV14, + StorageEntryModifierV9, + StorageEntryTypeLatest, + StorageEntryTypeV10, + StorageEntryTypeV11, + StorageEntryTypeV12, + StorageEntryTypeV13, + StorageEntryTypeV14, + StorageEntryTypeV9, + StorageHasher, + StorageHasherV10, + StorageHasherV11, + StorageHasherV12, + StorageHasherV13, + StorageHasherV14, + StorageHasherV9, + StorageMetadataV10, + StorageMetadataV11, + StorageMetadataV12, + StorageMetadataV13, + StorageMetadataV9 +} from "@polkadot/types/interfaces/metadata"; +import type { + Mixnode, + MixnodesErr, + SessionPhase, + SessionStatus +} from "@polkadot/types/interfaces/mixnet"; +import type { + MmrBatchProof, + MmrEncodableOpaqueLeaf, + MmrError, + MmrHash, + MmrLeafBatchProof, + MmrLeafIndex, + MmrLeafProof, + MmrNodeIndex, + MmrProof +} from "@polkadot/types/interfaces/mmr"; +import type { NftCollectionId, NftItemId } from "@polkadot/types/interfaces/nfts"; +import type { NpApiError, NpPoolId } from "@polkadot/types/interfaces/nompools"; +import type { StorageKind } from "@polkadot/types/interfaces/offchain"; +import type { + DeferredOffenceOf, + Kind, + OffenceDetails, + Offender, + OpaqueTimeSlot, + ReportIdOf, + Reporter +} from "@polkadot/types/interfaces/offences"; +import type { + AbridgedCandidateReceipt, + AbridgedHostConfiguration, + AbridgedHrmpChannel, + ApprovalVotingParams, + AssignmentId, + AssignmentKind, + AsyncBackingParams, + AttestedCandidate, + AuctionIndex, + AuthorityDiscoveryId, + AvailabilityBitfield, + AvailabilityBitfieldRecord, + BackedCandidate, + BackingState, + Bidder, + BufferedSessionChange, + CandidateCommitments, + CandidateDescriptor, + CandidateEvent, + CandidateHash, + CandidateInfo, + CandidatePendingAvailability, + CandidateReceipt, + CollatorId, + CollatorSignature, + CommittedCandidateReceipt, + Constraints, + CoreAssignment, + CoreIndex, + CoreOccupied, + CoreState, + DisputeLocation, + DisputeProof, + DisputeResult, + DisputeState, + DisputeStatement, + DisputeStatementSet, + DisputesTimeSlot, + DoubleVoteReport, + DownwardMessage, + ExecutorParam, + ExecutorParams, + ExecutorParamsHash, + ExplicitDisputeStatement, + GlobalValidationData, + GlobalValidationSchedule, + GroupIndex, + GroupRotationInfo, + HeadData, + HostConfiguration, + HrmpChannel, + HrmpChannelId, + HrmpOpenChannelRequest, + InboundDownwardMessage, + InboundHrmpLimitations, + InboundHrmpMessage, + InboundHrmpMessages, + IncomingParachain, + IncomingParachainDeploy, + IncomingParachainFixed, + InvalidDisputeStatementKind, + LeasePeriod, + LeasePeriodOf, + LocalValidationData, + MessageIngestionType, + MessageQueueChain, + MessagingStateSnapshot, + MessagingStateSnapshotEgressEntry, + MultiDisputeStatementSet, + NewBidder, + NodeFeatures, + OccupiedCore, + OccupiedCoreAssumption, + OldV1SessionInfo, + OutboundHrmpChannelLimitations, + OutboundHrmpMessage, + ParaGenesisArgs, + ParaId, + ParaInfo, + ParaLifecycle, + ParaPastCodeMeta, + ParaScheduling, + ParaValidatorIndex, + ParachainDispatchOrigin, + ParachainInherentData, + ParachainProposal, + ParachainsInherentData, + ParathreadClaim, + ParathreadClaimQueue, + ParathreadEntry, + PendingSlashes, + PersistedValidationData, + PvfCheckStatement, + PvfExecTimeoutKind, + PvfPrepTimeoutKind, + QueuedParathread, + RegisteredParachainInfo, + RelayBlockNumber, + RelayChainBlockNumber, + RelayChainHash, + RelayHash, + Remark, + ReplacementTimes, + Retriable, + ScheduledCore, + Scheduling, + ScrapedOnChainVotes, + ServiceQuality, + SessionInfo, + SessionInfoValidatorGroup, + SignedAvailabilityBitfield, + SignedAvailabilityBitfields, + SigningContext, + SlashingOffenceKind, + SlotRange, + SlotRange10, + Statement, + SubId, + SystemInherentData, + TransientValidationData, + UpgradeGoAhead, + UpgradeRestriction, + UpwardMessage, + ValidDisputeStatementKind, + ValidationCode, + ValidationCodeHash, + ValidationData, + ValidationDataType, + ValidationFunctionParams, + ValidatorSignature, + ValidityAttestation, + VecInboundHrmpMessage, + WinnersData, + WinnersData10, + WinnersDataTuple, + WinnersDataTuple10, + WinningData, + WinningData10, + WinningDataEntry +} from "@polkadot/types/interfaces/parachains"; +import type { + FeeDetails, + InclusionFee, + RuntimeDispatchInfo, + RuntimeDispatchInfoV1, + RuntimeDispatchInfoV2 +} from "@polkadot/types/interfaces/payment"; +import type { Approvals } from "@polkadot/types/interfaces/poll"; +import type { + ProxyAnnouncement, + ProxyDefinition, + ProxyType +} from "@polkadot/types/interfaces/proxy"; +import type { AccountStatus, AccountValidity } from "@polkadot/types/interfaces/purchase"; +import type { ActiveRecovery, RecoveryConfig } from "@polkadot/types/interfaces/recovery"; +import type { RpcMethods } from "@polkadot/types/interfaces/rpc"; +import type { + AccountId, + AccountId20, + AccountId32, + AccountId33, + AccountIdOf, + AccountIndex, + Address, + AssetId, + Balance, + BalanceOf, + Block, + BlockNumber, + BlockNumberFor, + BlockNumberOf, + Call, + CallHash, + CallHashOf, + ChangesTrieConfiguration, + ChangesTrieSignal, + CodecHash, + Consensus, + ConsensusEngineId, + CrateVersion, + Digest, + DigestItem, + EncodedJustification, + ExtrinsicInclusionMode, + ExtrinsicsWeight, + Fixed128, + Fixed64, + FixedI128, + FixedI64, + FixedU128, + FixedU64, + H1024, + H128, + H160, + H2048, + H256, + H32, + H512, + H64, + Hash, + Header, + HeaderPartial, + I32F32, + Index, + IndicesLookupSource, + Justification, + Justifications, + KeyTypeId, + KeyValue, + LockIdentifier, + LookupSource, + LookupTarget, + ModuleId, + Moment, + MultiAddress, + MultiSigner, + OpaqueCall, + Origin, + OriginCaller, + PalletId, + PalletVersion, + PalletsOrigin, + Pays, + PerU16, + Perbill, + Percent, + Permill, + Perquintill, + Phantom, + PhantomData, + PreRuntime, + Releases, + RuntimeCall, + RuntimeDbWeight, + RuntimeEvent, + Seal, + SealV0, + SignedBlock, + SignedBlockWithJustification, + SignedBlockWithJustifications, + Slot, + SlotDuration, + StorageData, + StorageInfo, + StorageProof, + TransactionInfo, + TransactionLongevity, + TransactionPriority, + TransactionStorageProof, + TransactionTag, + U32F32, + ValidatorId, + ValidatorIdOf, + Weight, + WeightMultiplier, + WeightV0, + WeightV1, + WeightV2 +} from "@polkadot/types/interfaces/runtime"; +import type { + Si0Field, + Si0LookupTypeId, + Si0Path, + Si0Type, + Si0TypeDef, + Si0TypeDefArray, + Si0TypeDefBitSequence, + Si0TypeDefCompact, + Si0TypeDefComposite, + Si0TypeDefPhantom, + Si0TypeDefPrimitive, + Si0TypeDefSequence, + Si0TypeDefTuple, + Si0TypeDefVariant, + Si0TypeParameter, + Si0Variant, + Si1Field, + Si1LookupTypeId, + Si1Path, + Si1Type, + Si1TypeDef, + Si1TypeDefArray, + Si1TypeDefBitSequence, + Si1TypeDefCompact, + Si1TypeDefComposite, + Si1TypeDefPrimitive, + Si1TypeDefSequence, + Si1TypeDefTuple, + Si1TypeDefVariant, + Si1TypeParameter, + Si1Variant, + SiField, + SiLookupTypeId, + SiPath, + SiType, + SiTypeDef, + SiTypeDefArray, + SiTypeDefBitSequence, + SiTypeDefCompact, + SiTypeDefComposite, + SiTypeDefPrimitive, + SiTypeDefSequence, + SiTypeDefTuple, + SiTypeDefVariant, + SiTypeParameter, + SiVariant +} from "@polkadot/types/interfaces/scaleInfo"; +import type { + Period, + Priority, + SchedulePeriod, + SchedulePriority, + Scheduled, + ScheduledTo254, + TaskAddress +} from "@polkadot/types/interfaces/scheduler"; +import type { + BeefyKey, + FullIdentification, + IdentificationTuple, + Keys, + MembershipProof, + SessionIndex, + SessionKeys1, + SessionKeys10, + SessionKeys10B, + SessionKeys2, + SessionKeys3, + SessionKeys4, + SessionKeys5, + SessionKeys6, + SessionKeys6B, + SessionKeys7, + SessionKeys7B, + SessionKeys8, + SessionKeys8B, + SessionKeys9, + SessionKeys9B, + ValidatorCount +} from "@polkadot/types/interfaces/session"; +import type { + Bid, + BidKind, + SocietyJudgement, + SocietyVote, + StrikeCount, + VouchingStatus +} from "@polkadot/types/interfaces/society"; +import type { + ActiveEraInfo, + CompactAssignments, + CompactAssignmentsTo257, + CompactAssignmentsTo265, + CompactAssignmentsWith16, + CompactAssignmentsWith24, + CompactScore, + CompactScoreCompact, + ElectionCompute, + ElectionPhase, + ElectionResult, + ElectionScore, + ElectionSize, + ElectionStatus, + EraIndex, + EraPoints, + EraRewardPoints, + EraRewards, + Exposure, + ExtendedBalance, + Forcing, + IndividualExposure, + KeyType, + MomentOf, + Nominations, + NominatorIndex, + NominatorIndexCompact, + OffchainAccuracy, + OffchainAccuracyCompact, + PhragmenScore, + Points, + RawSolution, + RawSolutionTo265, + RawSolutionWith16, + RawSolutionWith24, + ReadySolution, + RewardDestination, + RewardPoint, + RoundSnapshot, + SeatHolder, + SignedSubmission, + SignedSubmissionOf, + SignedSubmissionTo276, + SlashJournalEntry, + SlashingSpans, + SlashingSpansTo204, + SolutionOrSnapshotSize, + SolutionSupport, + SolutionSupports, + SpanIndex, + SpanRecord, + StakingLedger, + StakingLedgerTo223, + StakingLedgerTo240, + SubmissionIndicesOf, + Supports, + UnappliedSlash, + UnappliedSlashOther, + UnlockChunk, + ValidatorIndex, + ValidatorIndexCompact, + ValidatorPrefs, + ValidatorPrefsTo145, + ValidatorPrefsTo196, + ValidatorPrefsWithBlocked, + ValidatorPrefsWithCommission, + VoteWeight, + Voter +} from "@polkadot/types/interfaces/staking"; +import type { + ApiId, + BlockTrace, + BlockTraceEvent, + BlockTraceEventData, + BlockTraceSpan, + KeyValueOption, + MigrationStatusResult, + ReadProof, + RuntimeVersion, + RuntimeVersionApi, + RuntimeVersionPartial, + RuntimeVersionPre3, + RuntimeVersionPre4, + SpecVersion, + StorageChangeSet, + TraceBlockResponse, + TraceError +} from "@polkadot/types/interfaces/state"; +import type { + StatementStoreInvalidStatement, + StatementStoreStatementSource, + StatementStoreValidStatement +} from "@polkadot/types/interfaces/statement"; +import type { WeightToFeeCoefficient } from "@polkadot/types/interfaces/support"; +import type { + AccountInfo, + AccountInfoWithDualRefCount, + AccountInfoWithProviders, + AccountInfoWithRefCount, + AccountInfoWithRefCountU8, + AccountInfoWithTripleRefCount, + ApplyExtrinsicResult, + ApplyExtrinsicResultPre6, + ArithmeticError, + BlockLength, + BlockWeights, + ChainProperties, + ChainType, + ConsumedWeight, + DigestOf, + DispatchClass, + DispatchError, + DispatchErrorModule, + DispatchErrorModulePre6, + DispatchErrorModuleU8, + DispatchErrorModuleU8a, + DispatchErrorPre6, + DispatchErrorPre6First, + DispatchErrorTo198, + DispatchInfo, + DispatchInfoTo190, + DispatchInfoTo244, + DispatchOutcome, + DispatchOutcomePre6, + DispatchResult, + DispatchResultOf, + DispatchResultTo198, + Event, + EventId, + EventIndex, + EventRecord, + Health, + InvalidTransaction, + Key, + LastRuntimeUpgradeInfo, + NetworkState, + NetworkStatePeerset, + NetworkStatePeersetInfo, + NodeRole, + NotConnectedPeer, + Peer, + PeerEndpoint, + PeerEndpointAddr, + PeerInfo, + PeerPing, + PerDispatchClassU32, + PerDispatchClassWeight, + PerDispatchClassWeightsPerClass, + Phase, + RawOrigin, + RefCount, + RefCountTo259, + SyncState, + SystemOrigin, + TokenError, + TransactionValidityError, + TransactionalError, + UnknownTransaction, + WeightPerClass +} from "@polkadot/types/interfaces/system"; +import type { + Bounty, + BountyIndex, + BountyStatus, + BountyStatusActive, + BountyStatusCuratorProposed, + BountyStatusPendingPayout, + OpenTip, + OpenTipFinderTo225, + OpenTipTip, + OpenTipTo225, + TreasuryProposal +} from "@polkadot/types/interfaces/treasury"; +import type { Multiplier } from "@polkadot/types/interfaces/txpayment"; +import type { + TransactionSource, + TransactionValidity, + ValidTransaction +} from "@polkadot/types/interfaces/txqueue"; +import type { + ClassDetails, + ClassId, + ClassMetadata, + DepositBalance, + DepositBalanceOf, + DestroyWitness, + InstanceDetails, + InstanceId, + InstanceMetadata +} from "@polkadot/types/interfaces/uniques"; +import type { Multisig, Timepoint } from "@polkadot/types/interfaces/utility"; +import type { VestingInfo } from "@polkadot/types/interfaces/vesting"; +import type { + AssetIdV2, + AssetIdV3, + AssetIdV4, + AssetInstance, + AssetInstanceV0, + AssetInstanceV1, + AssetInstanceV2, + AssetInstanceV3, + AssetInstanceV4, + BodyId, + BodyIdV2, + BodyIdV3, + BodyPart, + BodyPartV2, + BodyPartV3, + DoubleEncodedCall, + Fungibility, + FungibilityV0, + FungibilityV1, + FungibilityV2, + FungibilityV3, + FungibilityV4, + InboundStatus, + InstructionV2, + InstructionV3, + InstructionV4, + InteriorMultiLocation, + InteriorMultiLocationV2, + InteriorMultiLocationV3, + Junction, + JunctionV0, + JunctionV1, + JunctionV2, + JunctionV3, + JunctionV4, + Junctions, + JunctionsV1, + JunctionsV2, + JunctionsV3, + JunctionsV4, + MaxPalletNameLen, + MaxPalletsInfo, + MaybeErrorCodeV3, + MultiAsset, + MultiAssetFilter, + MultiAssetFilterV1, + MultiAssetFilterV2, + MultiAssetFilterV3, + MultiAssetFilterV4, + MultiAssetV0, + MultiAssetV1, + MultiAssetV2, + MultiAssetV3, + MultiAssetV4, + MultiAssets, + MultiAssetsV1, + MultiAssetsV2, + MultiAssetsV3, + MultiAssetsV4, + MultiLocation, + MultiLocationV0, + MultiLocationV1, + MultiLocationV2, + MultiLocationV3, + MultiLocationV4, + NetworkId, + NetworkIdV2, + NetworkIdV3, + NetworkIdV4, + OriginKindV0, + OriginKindV1, + OriginKindV2, + OriginKindV3, + OriginKindV4, + OutboundStatus, + Outcome, + OutcomeV4, + PalletInfoV3, + PalletInfoV4, + QueryId, + QueryResponseInfoV3, + QueryResponseInfoV4, + QueryStatus, + QueueConfigData, + Response, + ResponseV0, + ResponseV1, + ResponseV2, + ResponseV2Error, + ResponseV3, + ResponseV3Error, + ResponseV3Result, + ResponseV4, + UncheckedFungibilityV4, + VersionMigrationStage, + VersionV3, + VersionV4, + VersionedMultiAsset, + VersionedMultiAssets, + VersionedMultiLocation, + VersionedResponse, + VersionedXcm, + WeightLimitV2, + WeightLimitV3, + WildFungibility, + WildFungibilityV0, + WildFungibilityV1, + WildFungibilityV2, + WildFungibilityV3, + WildFungibilityV4, + WildMultiAsset, + WildMultiAssetV1, + WildMultiAssetV2, + WildMultiAssetV3, + WildMultiAssetV4, + Xcm, + XcmAssetId, + XcmError, + XcmErrorV0, + XcmErrorV1, + XcmErrorV2, + XcmErrorV3, + XcmErrorV4, + XcmOrderV0, + XcmOrderV1, + XcmOrigin, + XcmOriginKind, + XcmV0, + XcmV1, + XcmV2, + XcmV3, + XcmV4, + XcmVersion, + XcmpMessageFormat +} from "@polkadot/types/interfaces/xcm"; +import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; +import type { Error } from "@polkadot/types/interfaces/xcmRuntimeApi"; +import type { + BackupStorageProvider, + BackupStorageProviderId, + ChunkId, + FileMetadata, + GetBspInfoError, + GetChallengePeriodError, + GetChallengeSeedError, + GetCheckpointChallengesError, + GetFileFromFileStorageResult, + GetLastTickProviderSubmittedProofError, + GetNextDeadlineTickError, + GetUsersWithDebtOverThresholdError, + IncompleteFileStatus, + MainStorageProviderId, + MerklePatriciaRoot, + ProviderId, + QueryAvailableStorageCapacityError, + QueryBspConfirmChunksToProveForFileError, + QueryConfirmChunksToProveForFileError, + QueryEarliestChangeCapacityBlockError, + QueryFileEarliestVolunteerBlockError, + QueryMspConfirmChunksToProveForFileError, + QueryMspIdOfBucketIdError, + QueryStorageProviderCapacityError, + RandomnessOutput, + SaveFileToDisk, + StorageDataUnit, + StorageProviderId, + TrieRemoveMutation +} from "@storagehub/api-augment/interfaces/storagehubclient"; +declare module "@polkadot/types/types/registry" { + interface InterfaceTypes { + AbridgedCandidateReceipt: AbridgedCandidateReceipt; + AbridgedHostConfiguration: AbridgedHostConfiguration; + AbridgedHrmpChannel: AbridgedHrmpChannel; + AccountData: AccountData; + AccountId: AccountId; + AccountId20: AccountId20; + AccountId32: AccountId32; + AccountId33: AccountId33; + AccountIdOf: AccountIdOf; + AccountIndex: AccountIndex; + AccountInfo: AccountInfo; + AccountInfoWithDualRefCount: AccountInfoWithDualRefCount; + AccountInfoWithProviders: AccountInfoWithProviders; + AccountInfoWithRefCount: AccountInfoWithRefCount; + AccountInfoWithRefCountU8: AccountInfoWithRefCountU8; + AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount; + AccountStatus: AccountStatus; + AccountValidity: AccountValidity; + AccountVote: AccountVote; + AccountVoteSplit: AccountVoteSplit; + AccountVoteStandard: AccountVoteStandard; + ActiveEraInfo: ActiveEraInfo; + ActiveGilt: ActiveGilt; + ActiveGiltsTotal: ActiveGiltsTotal; + ActiveIndex: ActiveIndex; + ActiveRecovery: ActiveRecovery; + Address: Address; + AliveContractInfo: AliveContractInfo; + AllowedSlots: AllowedSlots; + AnySignature: AnySignature; + ApiId: ApiId; + ApplyExtrinsicResult: ApplyExtrinsicResult; + ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6; + ApprovalFlag: ApprovalFlag; + Approvals: Approvals; + ApprovalVotingParams: ApprovalVotingParams; + ArithmeticError: ArithmeticError; + AssetApproval: AssetApproval; + AssetApprovalKey: AssetApprovalKey; + AssetBalance: AssetBalance; + AssetDestroyWitness: AssetDestroyWitness; + AssetDetails: AssetDetails; + AssetId: AssetId; + AssetIdV2: AssetIdV2; + AssetIdV3: AssetIdV3; + AssetIdV4: AssetIdV4; + AssetInstance: AssetInstance; + AssetInstanceV0: AssetInstanceV0; + AssetInstanceV1: AssetInstanceV1; + AssetInstanceV2: AssetInstanceV2; + AssetInstanceV3: AssetInstanceV3; + AssetInstanceV4: AssetInstanceV4; + AssetMetadata: AssetMetadata; + AssetOptions: AssetOptions; + AssignmentId: AssignmentId; + AssignmentKind: AssignmentKind; + AsyncBackingParams: AsyncBackingParams; + AttestedCandidate: AttestedCandidate; + AuctionIndex: AuctionIndex; + AuthIndex: AuthIndex; + AuthorityDiscoveryId: AuthorityDiscoveryId; + AuthorityId: AuthorityId; + AuthorityIndex: AuthorityIndex; + AuthorityList: AuthorityList; + AuthoritySet: AuthoritySet; + AuthoritySetChange: AuthoritySetChange; + AuthoritySetChanges: AuthoritySetChanges; + AuthoritySignature: AuthoritySignature; + AuthorityWeight: AuthorityWeight; + AvailabilityBitfield: AvailabilityBitfield; + AvailabilityBitfieldRecord: AvailabilityBitfieldRecord; + BabeAuthorityWeight: BabeAuthorityWeight; + BabeBlockWeight: BabeBlockWeight; + BabeEpochConfiguration: BabeEpochConfiguration; + BabeEquivocationProof: BabeEquivocationProof; + BabeGenesisConfiguration: BabeGenesisConfiguration; + BabeGenesisConfigurationV1: BabeGenesisConfigurationV1; + BabeWeight: BabeWeight; + BackedCandidate: BackedCandidate; + BackingState: BackingState; + BackupStorageProvider: BackupStorageProvider; + BackupStorageProviderId: BackupStorageProviderId; + Balance: Balance; + BalanceLock: BalanceLock; + BalanceLockTo212: BalanceLockTo212; + BalanceOf: BalanceOf; + BalanceStatus: BalanceStatus; + BeefyAuthoritySet: BeefyAuthoritySet; + BeefyCommitment: BeefyCommitment; + BeefyCompactSignedCommitment: BeefyCompactSignedCommitment; + BeefyEquivocationProof: BeefyEquivocationProof; + BeefyId: BeefyId; + BeefyKey: BeefyKey; + BeefyNextAuthoritySet: BeefyNextAuthoritySet; + BeefyPayload: BeefyPayload; + BeefyPayloadId: BeefyPayloadId; + BeefySignedCommitment: BeefySignedCommitment; + BeefyVersionedFinalityProof: BeefyVersionedFinalityProof; + BeefyVoteMessage: BeefyVoteMessage; + BenchmarkBatch: BenchmarkBatch; + BenchmarkConfig: BenchmarkConfig; + BenchmarkList: BenchmarkList; + BenchmarkMetadata: BenchmarkMetadata; + BenchmarkParameter: BenchmarkParameter; + BenchmarkResult: BenchmarkResult; + Bid: Bid; + Bidder: Bidder; + BidKind: BidKind; + BitVec: BitVec; + Block: Block; + BlockAttestations: BlockAttestations; + BlockHash: BlockHash; + BlockLength: BlockLength; + BlockNumber: BlockNumber; + BlockNumberFor: BlockNumberFor; + BlockNumberOf: BlockNumberOf; + BlockStats: BlockStats; + BlockTrace: BlockTrace; + BlockTraceEvent: BlockTraceEvent; + BlockTraceEventData: BlockTraceEventData; + BlockTraceSpan: BlockTraceSpan; + BlockV0: BlockV0; + BlockV1: BlockV1; + BlockV2: BlockV2; + BlockWeights: BlockWeights; + BodyId: BodyId; + BodyIdV2: BodyIdV2; + BodyIdV3: BodyIdV3; + BodyPart: BodyPart; + BodyPartV2: BodyPartV2; + BodyPartV3: BodyPartV3; + bool: bool; + Bool: Bool; + Bounty: Bounty; + BountyIndex: BountyIndex; + BountyStatus: BountyStatus; + BountyStatusActive: BountyStatusActive; + BountyStatusCuratorProposed: BountyStatusCuratorProposed; + BountyStatusPendingPayout: BountyStatusPendingPayout; + BridgedBlockHash: BridgedBlockHash; + BridgedBlockNumber: BridgedBlockNumber; + BridgedHeader: BridgedHeader; + BridgeMessageId: BridgeMessageId; + BufferedSessionChange: BufferedSessionChange; + Bytes: Bytes; + Call: Call; + CallDryRunEffects: CallDryRunEffects; + CallHash: CallHash; + CallHashOf: CallHashOf; + CallIndex: CallIndex; + CallOrigin: CallOrigin; + CandidateCommitments: CandidateCommitments; + CandidateDescriptor: CandidateDescriptor; + CandidateEvent: CandidateEvent; + CandidateHash: CandidateHash; + CandidateInfo: CandidateInfo; + CandidatePendingAvailability: CandidatePendingAvailability; + CandidateReceipt: CandidateReceipt; + ChainId: ChainId; + ChainProperties: ChainProperties; + ChainType: ChainType; + ChangesTrieConfiguration: ChangesTrieConfiguration; + ChangesTrieSignal: ChangesTrieSignal; + CheckInherentsResult: CheckInherentsResult; + ChunkId: ChunkId; + ClassDetails: ClassDetails; + ClassId: ClassId; + ClassMetadata: ClassMetadata; + CodecHash: CodecHash; + CodeHash: CodeHash; + CodeSource: CodeSource; + CodeUploadRequest: CodeUploadRequest; + CodeUploadResult: CodeUploadResult; + CodeUploadResultValue: CodeUploadResultValue; + CollationInfo: CollationInfo; + CollationInfoV1: CollationInfoV1; + CollatorId: CollatorId; + CollatorSignature: CollatorSignature; + CollectiveOrigin: CollectiveOrigin; + CommittedCandidateReceipt: CommittedCandidateReceipt; + CompactAssignments: CompactAssignments; + CompactAssignmentsTo257: CompactAssignmentsTo257; + CompactAssignmentsTo265: CompactAssignmentsTo265; + CompactAssignmentsWith16: CompactAssignmentsWith16; + CompactAssignmentsWith24: CompactAssignmentsWith24; + CompactScore: CompactScore; + CompactScoreCompact: CompactScoreCompact; + ConfigData: ConfigData; + Consensus: Consensus; + ConsensusEngineId: ConsensusEngineId; + Constraints: Constraints; + ConsumedWeight: ConsumedWeight; + ContractCallFlags: ContractCallFlags; + ContractCallRequest: ContractCallRequest; + ContractConstructorSpecLatest: ContractConstructorSpecLatest; + ContractConstructorSpecV0: ContractConstructorSpecV0; + ContractConstructorSpecV1: ContractConstructorSpecV1; + ContractConstructorSpecV2: ContractConstructorSpecV2; + ContractConstructorSpecV3: ContractConstructorSpecV3; + ContractConstructorSpecV4: ContractConstructorSpecV4; + ContractContractSpecV0: ContractContractSpecV0; + ContractContractSpecV1: ContractContractSpecV1; + ContractContractSpecV2: ContractContractSpecV2; + ContractContractSpecV3: ContractContractSpecV3; + ContractContractSpecV4: ContractContractSpecV4; + ContractContractSpecV5: ContractContractSpecV5; + ContractCryptoHasher: ContractCryptoHasher; + ContractDiscriminant: ContractDiscriminant; + ContractDisplayName: ContractDisplayName; + ContractEnvironmentV4: ContractEnvironmentV4; + ContractEventParamSpecLatest: ContractEventParamSpecLatest; + ContractEventParamSpecV0: ContractEventParamSpecV0; + ContractEventParamSpecV2: ContractEventParamSpecV2; + ContractEventSpecLatest: ContractEventSpecLatest; + ContractEventSpecV0: ContractEventSpecV0; + ContractEventSpecV1: ContractEventSpecV1; + ContractEventSpecV2: ContractEventSpecV2; + ContractEventSpecV3: ContractEventSpecV3; + ContractExecResult: ContractExecResult; + ContractExecResultOk: ContractExecResultOk; + ContractExecResultResult: ContractExecResultResult; + ContractExecResultSuccessTo255: ContractExecResultSuccessTo255; + ContractExecResultSuccessTo260: ContractExecResultSuccessTo260; + ContractExecResultTo255: ContractExecResultTo255; + ContractExecResultTo260: ContractExecResultTo260; + ContractExecResultTo267: ContractExecResultTo267; + ContractExecResultU64: ContractExecResultU64; + ContractInfo: ContractInfo; + ContractInstantiateResult: ContractInstantiateResult; + ContractInstantiateResultTo267: ContractInstantiateResultTo267; + ContractInstantiateResultTo299: ContractInstantiateResultTo299; + ContractInstantiateResultU64: ContractInstantiateResultU64; + ContractLayoutArray: ContractLayoutArray; + ContractLayoutCell: ContractLayoutCell; + ContractLayoutEnum: ContractLayoutEnum; + ContractLayoutHash: ContractLayoutHash; + ContractLayoutHashingStrategy: ContractLayoutHashingStrategy; + ContractLayoutKey: ContractLayoutKey; + ContractLayoutStruct: ContractLayoutStruct; + ContractLayoutStructField: ContractLayoutStructField; + ContractMessageParamSpecLatest: ContractMessageParamSpecLatest; + ContractMessageParamSpecV0: ContractMessageParamSpecV0; + ContractMessageParamSpecV2: ContractMessageParamSpecV2; + ContractMessageSpecLatest: ContractMessageSpecLatest; + ContractMessageSpecV0: ContractMessageSpecV0; + ContractMessageSpecV1: ContractMessageSpecV1; + ContractMessageSpecV2: ContractMessageSpecV2; + ContractMessageSpecV3: ContractMessageSpecV3; + ContractMetadata: ContractMetadata; + ContractMetadataLatest: ContractMetadataLatest; + ContractMetadataV0: ContractMetadataV0; + ContractMetadataV1: ContractMetadataV1; + ContractMetadataV2: ContractMetadataV2; + ContractMetadataV3: ContractMetadataV3; + ContractMetadataV4: ContractMetadataV4; + ContractMetadataV5: ContractMetadataV5; + ContractProject: ContractProject; + ContractProjectContract: ContractProjectContract; + ContractProjectInfo: ContractProjectInfo; + ContractProjectSource: ContractProjectSource; + ContractProjectV0: ContractProjectV0; + ContractReturnFlags: ContractReturnFlags; + ContractSelector: ContractSelector; + ContractStorageKey: ContractStorageKey; + ContractStorageLayout: ContractStorageLayout; + ContractTypeSpec: ContractTypeSpec; + Conviction: Conviction; + CoreAssignment: CoreAssignment; + CoreIndex: CoreIndex; + CoreOccupied: CoreOccupied; + CoreState: CoreState; + CrateVersion: CrateVersion; + CreatedBlock: CreatedBlock; + CustomMetadata15: CustomMetadata15; + CustomValueMetadata15: CustomValueMetadata15; + Data: Data; + DeferredOffenceOf: DeferredOffenceOf; + DefunctVoter: DefunctVoter; + DelayKind: DelayKind; + DelayKindBest: DelayKindBest; + Delegations: Delegations; + DeletedContract: DeletedContract; + DeliveredMessages: DeliveredMessages; + DepositBalance: DepositBalance; + DepositBalanceOf: DepositBalanceOf; + DestroyWitness: DestroyWitness; + Digest: Digest; + DigestItem: DigestItem; + DigestOf: DigestOf; + DispatchClass: DispatchClass; + DispatchError: DispatchError; + DispatchErrorModule: DispatchErrorModule; + DispatchErrorModulePre6: DispatchErrorModulePre6; + DispatchErrorModuleU8: DispatchErrorModuleU8; + DispatchErrorModuleU8a: DispatchErrorModuleU8a; + DispatchErrorPre6: DispatchErrorPre6; + DispatchErrorPre6First: DispatchErrorPre6First; + DispatchErrorTo198: DispatchErrorTo198; + DispatchFeePayment: DispatchFeePayment; + DispatchInfo: DispatchInfo; + DispatchInfoTo190: DispatchInfoTo190; + DispatchInfoTo244: DispatchInfoTo244; + DispatchOutcome: DispatchOutcome; + DispatchOutcomePre6: DispatchOutcomePre6; + DispatchResult: DispatchResult; + DispatchResultOf: DispatchResultOf; + DispatchResultTo198: DispatchResultTo198; + DispatchResultWithPostInfo: DispatchResultWithPostInfo; + DisputeLocation: DisputeLocation; + DisputeProof: DisputeProof; + DisputeResult: DisputeResult; + DisputeState: DisputeState; + DisputeStatement: DisputeStatement; + DisputeStatementSet: DisputeStatementSet; + DisputesTimeSlot: DisputesTimeSlot; + DoubleEncodedCall: DoubleEncodedCall; + DoubleVoteReport: DoubleVoteReport; + DownwardMessage: DownwardMessage; + EcdsaSignature: EcdsaSignature; + Ed25519Signature: Ed25519Signature; + EIP1559Transaction: EIP1559Transaction; + EIP2930Transaction: EIP2930Transaction; + ElectionCompute: ElectionCompute; + ElectionPhase: ElectionPhase; + ElectionResult: ElectionResult; + ElectionScore: ElectionScore; + ElectionSize: ElectionSize; + ElectionStatus: ElectionStatus; + EncodedFinalityProofs: EncodedFinalityProofs; + EncodedJustification: EncodedJustification; + Epoch: Epoch; + EpochAuthorship: EpochAuthorship; + Era: Era; + EraIndex: EraIndex; + EraPoints: EraPoints; + EraRewardPoints: EraRewardPoints; + EraRewards: EraRewards; + Error: Error; + ErrorMetadataLatest: ErrorMetadataLatest; + ErrorMetadataV10: ErrorMetadataV10; + ErrorMetadataV11: ErrorMetadataV11; + ErrorMetadataV12: ErrorMetadataV12; + ErrorMetadataV13: ErrorMetadataV13; + ErrorMetadataV14: ErrorMetadataV14; + ErrorMetadataV9: ErrorMetadataV9; + EthAccessList: EthAccessList; + EthAccessListItem: EthAccessListItem; + EthAccount: EthAccount; + EthAddress: EthAddress; + EthBlock: EthBlock; + EthBloom: EthBloom; + EthCallRequest: EthCallRequest; + EthereumAccountId: EthereumAccountId; + EthereumAddress: EthereumAddress; + EthereumLookupSource: EthereumLookupSource; + EthereumSignature: EthereumSignature; + EthFeeHistory: EthFeeHistory; + EthFilter: EthFilter; + EthFilterAddress: EthFilterAddress; + EthFilterChanges: EthFilterChanges; + EthFilterTopic: EthFilterTopic; + EthFilterTopicEntry: EthFilterTopicEntry; + EthFilterTopicInner: EthFilterTopicInner; + EthHeader: EthHeader; + EthLog: EthLog; + EthReceipt: EthReceipt; + EthReceiptV0: EthReceiptV0; + EthReceiptV3: EthReceiptV3; + EthRichBlock: EthRichBlock; + EthRichHeader: EthRichHeader; + EthStorageProof: EthStorageProof; + EthSubKind: EthSubKind; + EthSubParams: EthSubParams; + EthSubResult: EthSubResult; + EthSyncInfo: EthSyncInfo; + EthSyncStatus: EthSyncStatus; + EthTransaction: EthTransaction; + EthTransactionAction: EthTransactionAction; + EthTransactionCondition: EthTransactionCondition; + EthTransactionRequest: EthTransactionRequest; + EthTransactionSignature: EthTransactionSignature; + EthTransactionStatus: EthTransactionStatus; + EthWork: EthWork; + Event: Event; + EventId: EventId; + EventIndex: EventIndex; + EventMetadataLatest: EventMetadataLatest; + EventMetadataV10: EventMetadataV10; + EventMetadataV11: EventMetadataV11; + EventMetadataV12: EventMetadataV12; + EventMetadataV13: EventMetadataV13; + EventMetadataV14: EventMetadataV14; + EventMetadataV9: EventMetadataV9; + EventRecord: EventRecord; + EvmAccount: EvmAccount; + EvmCallInfo: EvmCallInfo; + EvmCallInfoV2: EvmCallInfoV2; + EvmCreateInfo: EvmCreateInfo; + EvmCreateInfoV2: EvmCreateInfoV2; + EvmLog: EvmLog; + EvmVicinity: EvmVicinity; + EvmWeightInfo: EvmWeightInfo; + ExecReturnValue: ExecReturnValue; + ExecutorParam: ExecutorParam; + ExecutorParams: ExecutorParams; + ExecutorParamsHash: ExecutorParamsHash; + ExitError: ExitError; + ExitFatal: ExitFatal; + ExitReason: ExitReason; + ExitRevert: ExitRevert; + ExitSucceed: ExitSucceed; + ExplicitDisputeStatement: ExplicitDisputeStatement; + Exposure: Exposure; + ExtendedBalance: ExtendedBalance; + Extrinsic: Extrinsic; + ExtrinsicEra: ExtrinsicEra; + ExtrinsicInclusionMode: ExtrinsicInclusionMode; + ExtrinsicMetadataLatest: ExtrinsicMetadataLatest; + ExtrinsicMetadataV11: ExtrinsicMetadataV11; + ExtrinsicMetadataV12: ExtrinsicMetadataV12; + ExtrinsicMetadataV13: ExtrinsicMetadataV13; + ExtrinsicMetadataV14: ExtrinsicMetadataV14; + ExtrinsicMetadataV15: ExtrinsicMetadataV15; + ExtrinsicOrHash: ExtrinsicOrHash; + ExtrinsicPayload: ExtrinsicPayload; + ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; + ExtrinsicPayloadV4: ExtrinsicPayloadV4; + ExtrinsicPayloadV5: ExtrinsicPayloadV5; + ExtrinsicSignature: ExtrinsicSignature; + ExtrinsicSignatureV4: ExtrinsicSignatureV4; + ExtrinsicSignatureV5: ExtrinsicSignatureV5; + ExtrinsicStatus: ExtrinsicStatus; + ExtrinsicsWeight: ExtrinsicsWeight; + ExtrinsicUnknown: ExtrinsicUnknown; + ExtrinsicV4: ExtrinsicV4; + ExtrinsicV5: ExtrinsicV5; + f32: f32; + F32: F32; + f64: f64; + F64: F64; + FeeDetails: FeeDetails; + FileMetadata: FileMetadata; + Fixed128: Fixed128; + Fixed64: Fixed64; + FixedI128: FixedI128; + FixedI64: FixedI64; + FixedU128: FixedU128; + FixedU64: FixedU64; + Forcing: Forcing; + ForkTreePendingChange: ForkTreePendingChange; + ForkTreePendingChangeNode: ForkTreePendingChangeNode; + FullIdentification: FullIdentification; + FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest; + FunctionArgumentMetadataV10: FunctionArgumentMetadataV10; + FunctionArgumentMetadataV11: FunctionArgumentMetadataV11; + FunctionArgumentMetadataV12: FunctionArgumentMetadataV12; + FunctionArgumentMetadataV13: FunctionArgumentMetadataV13; + FunctionArgumentMetadataV14: FunctionArgumentMetadataV14; + FunctionArgumentMetadataV9: FunctionArgumentMetadataV9; + FunctionMetadataLatest: FunctionMetadataLatest; + FunctionMetadataV10: FunctionMetadataV10; + FunctionMetadataV11: FunctionMetadataV11; + FunctionMetadataV12: FunctionMetadataV12; + FunctionMetadataV13: FunctionMetadataV13; + FunctionMetadataV14: FunctionMetadataV14; + FunctionMetadataV9: FunctionMetadataV9; + FundIndex: FundIndex; + FundInfo: FundInfo; + Fungibility: Fungibility; + FungibilityV0: FungibilityV0; + FungibilityV1: FungibilityV1; + FungibilityV2: FungibilityV2; + FungibilityV3: FungibilityV3; + FungibilityV4: FungibilityV4; + FungiblesAccessError: FungiblesAccessError; + Gas: Gas; + GenesisBuildErr: GenesisBuildErr; + GetBspInfoError: GetBspInfoError; + GetChallengePeriodError: GetChallengePeriodError; + GetChallengeSeedError: GetChallengeSeedError; + GetCheckpointChallengesError: GetCheckpointChallengesError; + GetFileFromFileStorageResult: GetFileFromFileStorageResult; + GetLastTickProviderSubmittedProofError: GetLastTickProviderSubmittedProofError; + GetNextDeadlineTickError: GetNextDeadlineTickError; + GetUsersWithDebtOverThresholdError: GetUsersWithDebtOverThresholdError; + GiltBid: GiltBid; + GlobalValidationData: GlobalValidationData; + GlobalValidationSchedule: GlobalValidationSchedule; + GrandpaCommit: GrandpaCommit; + GrandpaEquivocation: GrandpaEquivocation; + GrandpaEquivocationProof: GrandpaEquivocationProof; + GrandpaEquivocationValue: GrandpaEquivocationValue; + GrandpaJustification: GrandpaJustification; + GrandpaPrecommit: GrandpaPrecommit; + GrandpaPrevote: GrandpaPrevote; + GrandpaSignedPrecommit: GrandpaSignedPrecommit; + GroupIndex: GroupIndex; + GroupRotationInfo: GroupRotationInfo; + H1024: H1024; + H128: H128; + H160: H160; + H2048: H2048; + H256: H256; + H32: H32; + H512: H512; + H64: H64; + Hash: Hash; + HeadData: HeadData; + Header: Header; + HeaderPartial: HeaderPartial; + Health: Health; + Heartbeat: Heartbeat; + HeartbeatTo244: HeartbeatTo244; + HostConfiguration: HostConfiguration; + HostFnWeights: HostFnWeights; + HostFnWeightsTo264: HostFnWeightsTo264; + HrmpChannel: HrmpChannel; + HrmpChannelId: HrmpChannelId; + HrmpOpenChannelRequest: HrmpOpenChannelRequest; + i128: i128; + I128: I128; + i16: i16; + I16: I16; + i256: i256; + I256: I256; + i32: i32; + I32: I32; + I32F32: I32F32; + i64: i64; + I64: I64; + i8: i8; + I8: I8; + IdentificationTuple: IdentificationTuple; + IdentityFields: IdentityFields; + IdentityInfo: IdentityInfo; + IdentityInfoAdditional: IdentityInfoAdditional; + IdentityInfoTo198: IdentityInfoTo198; + IdentityJudgement: IdentityJudgement; + ImmortalEra: ImmortalEra; + ImportedAux: ImportedAux; + InboundDownwardMessage: InboundDownwardMessage; + InboundHrmpLimitations: InboundHrmpLimitations; + InboundHrmpMessage: InboundHrmpMessage; + InboundHrmpMessages: InboundHrmpMessages; + InboundLaneData: InboundLaneData; + InboundRelayer: InboundRelayer; + InboundStatus: InboundStatus; + IncludedBlocks: IncludedBlocks; + InclusionFee: InclusionFee; + IncomingParachain: IncomingParachain; + IncomingParachainDeploy: IncomingParachainDeploy; + IncomingParachainFixed: IncomingParachainFixed; + IncompleteFileStatus: IncompleteFileStatus; + Index: Index; + IndicesLookupSource: IndicesLookupSource; + IndividualExposure: IndividualExposure; + InherentData: InherentData; + InherentIdentifier: InherentIdentifier; + InitializationData: InitializationData; + InstanceDetails: InstanceDetails; + InstanceId: InstanceId; + InstanceMetadata: InstanceMetadata; + InstantiateRequest: InstantiateRequest; + InstantiateRequestV1: InstantiateRequestV1; + InstantiateRequestV2: InstantiateRequestV2; + InstantiateReturnValue: InstantiateReturnValue; + InstantiateReturnValueOk: InstantiateReturnValueOk; + InstantiateReturnValueTo267: InstantiateReturnValueTo267; + InstructionV2: InstructionV2; + InstructionV3: InstructionV3; + InstructionV4: InstructionV4; + InstructionWeights: InstructionWeights; + InteriorMultiLocation: InteriorMultiLocation; + InteriorMultiLocationV2: InteriorMultiLocationV2; + InteriorMultiLocationV3: InteriorMultiLocationV3; + InvalidDisputeStatementKind: InvalidDisputeStatementKind; + InvalidTransaction: InvalidTransaction; + isize: isize; + ISize: ISize; + Json: Json; + Junction: Junction; + Junctions: Junctions; + JunctionsV1: JunctionsV1; + JunctionsV2: JunctionsV2; + JunctionsV3: JunctionsV3; + JunctionsV4: JunctionsV4; + JunctionV0: JunctionV0; + JunctionV1: JunctionV1; + JunctionV2: JunctionV2; + JunctionV3: JunctionV3; + JunctionV4: JunctionV4; + Justification: Justification; + JustificationNotification: JustificationNotification; + Justifications: Justifications; + Key: Key; + KeyOwnerProof: KeyOwnerProof; + Keys: Keys; + KeyType: KeyType; + KeyTypeId: KeyTypeId; + KeyValue: KeyValue; + KeyValueOption: KeyValueOption; + Kind: Kind; + LaneId: LaneId; + LastContribution: LastContribution; + LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo; + LeasePeriod: LeasePeriod; + LeasePeriodOf: LeasePeriodOf; + LegacyTransaction: LegacyTransaction; + Limits: Limits; + LimitsTo264: LimitsTo264; + LocalValidationData: LocalValidationData; + LockIdentifier: LockIdentifier; + LookupSource: LookupSource; + LookupTarget: LookupTarget; + LotteryConfig: LotteryConfig; + MainStorageProviderId: MainStorageProviderId; + MaxPalletNameLen: MaxPalletNameLen; + MaxPalletsInfo: MaxPalletsInfo; + MaybeErrorCodeV3: MaybeErrorCodeV3; + MaybeRandomness: MaybeRandomness; + MaybeVrf: MaybeVrf; + MemberCount: MemberCount; + MembershipProof: MembershipProof; + MerklePatriciaRoot: MerklePatriciaRoot; + MessageData: MessageData; + MessageId: MessageId; + MessageIngestionType: MessageIngestionType; + MessageKey: MessageKey; + MessageNonce: MessageNonce; + MessageQueueChain: MessageQueueChain; + MessagesDeliveryProofOf: MessagesDeliveryProofOf; + MessagesProofOf: MessagesProofOf; + MessagingStateSnapshot: MessagingStateSnapshot; + MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry; + MetadataAll: MetadataAll; + MetadataLatest: MetadataLatest; + MetadataV10: MetadataV10; + MetadataV11: MetadataV11; + MetadataV12: MetadataV12; + MetadataV13: MetadataV13; + MetadataV14: MetadataV14; + MetadataV15: MetadataV15; + MetadataV9: MetadataV9; + MigrationStatusResult: MigrationStatusResult; + Mixnode: Mixnode; + MixnodesErr: MixnodesErr; + MmrBatchProof: MmrBatchProof; + MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf; + MmrError: MmrError; + MmrHash: MmrHash; + MmrLeafBatchProof: MmrLeafBatchProof; + MmrLeafIndex: MmrLeafIndex; + MmrLeafProof: MmrLeafProof; + MmrNodeIndex: MmrNodeIndex; + MmrProof: MmrProof; + MmrRootHash: MmrRootHash; + ModuleConstantMetadataV10: ModuleConstantMetadataV10; + ModuleConstantMetadataV11: ModuleConstantMetadataV11; + ModuleConstantMetadataV12: ModuleConstantMetadataV12; + ModuleConstantMetadataV13: ModuleConstantMetadataV13; + ModuleConstantMetadataV9: ModuleConstantMetadataV9; + ModuleId: ModuleId; + ModuleMetadataV10: ModuleMetadataV10; + ModuleMetadataV11: ModuleMetadataV11; + ModuleMetadataV12: ModuleMetadataV12; + ModuleMetadataV13: ModuleMetadataV13; + ModuleMetadataV9: ModuleMetadataV9; + Moment: Moment; + MomentOf: MomentOf; + MoreAttestations: MoreAttestations; + MortalEra: MortalEra; + MultiAddress: MultiAddress; + MultiAsset: MultiAsset; + MultiAssetFilter: MultiAssetFilter; + MultiAssetFilterV1: MultiAssetFilterV1; + MultiAssetFilterV2: MultiAssetFilterV2; + MultiAssetFilterV3: MultiAssetFilterV3; + MultiAssetFilterV4: MultiAssetFilterV4; + MultiAssets: MultiAssets; + MultiAssetsV1: MultiAssetsV1; + MultiAssetsV2: MultiAssetsV2; + MultiAssetsV3: MultiAssetsV3; + MultiAssetsV4: MultiAssetsV4; + MultiAssetV0: MultiAssetV0; + MultiAssetV1: MultiAssetV1; + MultiAssetV2: MultiAssetV2; + MultiAssetV3: MultiAssetV3; + MultiAssetV4: MultiAssetV4; + MultiDisputeStatementSet: MultiDisputeStatementSet; + MultiLocation: MultiLocation; + MultiLocationV0: MultiLocationV0; + MultiLocationV1: MultiLocationV1; + MultiLocationV2: MultiLocationV2; + MultiLocationV3: MultiLocationV3; + MultiLocationV4: MultiLocationV4; + Multiplier: Multiplier; + Multisig: Multisig; + MultiSignature: MultiSignature; + MultiSigner: MultiSigner; + NetworkId: NetworkId; + NetworkIdV2: NetworkIdV2; + NetworkIdV3: NetworkIdV3; + NetworkIdV4: NetworkIdV4; + NetworkState: NetworkState; + NetworkStatePeerset: NetworkStatePeerset; + NetworkStatePeersetInfo: NetworkStatePeersetInfo; + NewBidder: NewBidder; + NextAuthority: NextAuthority; + NextConfigDescriptor: NextConfigDescriptor; + NextConfigDescriptorV1: NextConfigDescriptorV1; + NftCollectionId: NftCollectionId; + NftItemId: NftItemId; + NodeFeatures: NodeFeatures; + NodeRole: NodeRole; + Nominations: Nominations; + NominatorIndex: NominatorIndex; + NominatorIndexCompact: NominatorIndexCompact; + NotConnectedPeer: NotConnectedPeer; + NpApiError: NpApiError; + NpPoolId: NpPoolId; + Null: Null; + OccupiedCore: OccupiedCore; + OccupiedCoreAssumption: OccupiedCoreAssumption; + OffchainAccuracy: OffchainAccuracy; + OffchainAccuracyCompact: OffchainAccuracyCompact; + OffenceDetails: OffenceDetails; + Offender: Offender; + OldV1SessionInfo: OldV1SessionInfo; + OpaqueCall: OpaqueCall; + OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof; + OpaqueMetadata: OpaqueMetadata; + OpaqueMultiaddr: OpaqueMultiaddr; + OpaqueNetworkState: OpaqueNetworkState; + OpaquePeerId: OpaquePeerId; + OpaqueTimeSlot: OpaqueTimeSlot; + OpenTip: OpenTip; + OpenTipFinderTo225: OpenTipFinderTo225; + OpenTipTip: OpenTipTip; + OpenTipTo225: OpenTipTo225; + OperatingMode: OperatingMode; + OptionBool: OptionBool; + Origin: Origin; + OriginCaller: OriginCaller; + OriginKindV0: OriginKindV0; + OriginKindV1: OriginKindV1; + OriginKindV2: OriginKindV2; + OriginKindV3: OriginKindV3; + OriginKindV4: OriginKindV4; + OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; + OutboundHrmpMessage: OutboundHrmpMessage; + OutboundLaneData: OutboundLaneData; + OutboundMessageFee: OutboundMessageFee; + OutboundPayload: OutboundPayload; + OutboundStatus: OutboundStatus; + Outcome: Outcome; + OutcomeV4: OutcomeV4; + OuterEnums15: OuterEnums15; + OverweightIndex: OverweightIndex; + Owner: Owner; + PageCounter: PageCounter; + PageIndexData: PageIndexData; + PalletCallMetadataLatest: PalletCallMetadataLatest; + PalletCallMetadataV14: PalletCallMetadataV14; + PalletConstantMetadataLatest: PalletConstantMetadataLatest; + PalletConstantMetadataV14: PalletConstantMetadataV14; + PalletErrorMetadataLatest: PalletErrorMetadataLatest; + PalletErrorMetadataV14: PalletErrorMetadataV14; + PalletEventMetadataLatest: PalletEventMetadataLatest; + PalletEventMetadataV14: PalletEventMetadataV14; + PalletId: PalletId; + PalletInfoV3: PalletInfoV3; + PalletInfoV4: PalletInfoV4; + PalletMetadataLatest: PalletMetadataLatest; + PalletMetadataV14: PalletMetadataV14; + PalletMetadataV15: PalletMetadataV15; + PalletsOrigin: PalletsOrigin; + PalletStorageMetadataLatest: PalletStorageMetadataLatest; + PalletStorageMetadataV14: PalletStorageMetadataV14; + PalletVersion: PalletVersion; + ParachainDispatchOrigin: ParachainDispatchOrigin; + ParachainInherentData: ParachainInherentData; + ParachainProposal: ParachainProposal; + ParachainsInherentData: ParachainsInherentData; + ParaGenesisArgs: ParaGenesisArgs; + ParaId: ParaId; + ParaInfo: ParaInfo; + ParaLifecycle: ParaLifecycle; + Parameter: Parameter; + ParaPastCodeMeta: ParaPastCodeMeta; + ParaScheduling: ParaScheduling; + ParathreadClaim: ParathreadClaim; + ParathreadClaimQueue: ParathreadClaimQueue; + ParathreadEntry: ParathreadEntry; + ParaValidatorIndex: ParaValidatorIndex; + Pays: Pays; + Peer: Peer; + PeerEndpoint: PeerEndpoint; + PeerEndpointAddr: PeerEndpointAddr; + PeerInfo: PeerInfo; + PeerPing: PeerPing; + PendingChange: PendingChange; + PendingPause: PendingPause; + PendingResume: PendingResume; + PendingSlashes: PendingSlashes; + Perbill: Perbill; + Percent: Percent; + PerDispatchClassU32: PerDispatchClassU32; + PerDispatchClassWeight: PerDispatchClassWeight; + PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass; + Period: Period; + Permill: Permill; + PermissionLatest: PermissionLatest; + PermissionsV1: PermissionsV1; + PermissionVersions: PermissionVersions; + Perquintill: Perquintill; + PersistedValidationData: PersistedValidationData; + PerU16: PerU16; + Phantom: Phantom; + PhantomData: PhantomData; + Phase: Phase; + PhragmenScore: PhragmenScore; + Points: Points; + PortableType: PortableType; + PortableTypeV14: PortableTypeV14; + PostDispatchInfo: PostDispatchInfo; + Precommits: Precommits; + PrefabWasmModule: PrefabWasmModule; + PrefixedStorageKey: PrefixedStorageKey; + PreimageStatus: PreimageStatus; + PreimageStatusAvailable: PreimageStatusAvailable; + PreRuntime: PreRuntime; + Prevotes: Prevotes; + Priority: Priority; + PriorLock: PriorLock; + PropIndex: PropIndex; + Proposal: Proposal; + ProposalIndex: ProposalIndex; + ProviderId: ProviderId; + ProxyAnnouncement: ProxyAnnouncement; + ProxyDefinition: ProxyDefinition; + ProxyState: ProxyState; + ProxyType: ProxyType; + PvfCheckStatement: PvfCheckStatement; + PvfExecTimeoutKind: PvfExecTimeoutKind; + PvfPrepTimeoutKind: PvfPrepTimeoutKind; + QueryAvailableStorageCapacityError: QueryAvailableStorageCapacityError; + QueryBspConfirmChunksToProveForFileError: QueryBspConfirmChunksToProveForFileError; + QueryConfirmChunksToProveForFileError: QueryConfirmChunksToProveForFileError; + QueryEarliestChangeCapacityBlockError: QueryEarliestChangeCapacityBlockError; + QueryFileEarliestVolunteerBlockError: QueryFileEarliestVolunteerBlockError; + QueryId: QueryId; + QueryMspConfirmChunksToProveForFileError: QueryMspConfirmChunksToProveForFileError; + QueryMspIdOfBucketIdError: QueryMspIdOfBucketIdError; + QueryResponseInfoV3: QueryResponseInfoV3; + QueryResponseInfoV4: QueryResponseInfoV4; + QueryStatus: QueryStatus; + QueryStorageProviderCapacityError: QueryStorageProviderCapacityError; + QueueConfigData: QueueConfigData; + QueuedParathread: QueuedParathread; + Randomness: Randomness; + RandomnessOutput: RandomnessOutput; + Raw: Raw; + RawAuraPreDigest: RawAuraPreDigest; + RawBabePreDigest: RawBabePreDigest; + RawBabePreDigestCompat: RawBabePreDigestCompat; + RawBabePreDigestPrimary: RawBabePreDigestPrimary; + RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159; + RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain; + RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159; + RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF; + RawBabePreDigestTo159: RawBabePreDigestTo159; + RawOrigin: RawOrigin; + RawSolution: RawSolution; + RawSolutionTo265: RawSolutionTo265; + RawSolutionWith16: RawSolutionWith16; + RawSolutionWith24: RawSolutionWith24; + RawVRFOutput: RawVRFOutput; + ReadProof: ReadProof; + ReadySolution: ReadySolution; + Reasons: Reasons; + RecoveryConfig: RecoveryConfig; + RefCount: RefCount; + RefCountTo259: RefCountTo259; + ReferendumIndex: ReferendumIndex; + ReferendumInfo: ReferendumInfo; + ReferendumInfoFinished: ReferendumInfoFinished; + ReferendumInfoTo239: ReferendumInfoTo239; + ReferendumStatus: ReferendumStatus; + RegisteredParachainInfo: RegisteredParachainInfo; + RegistrarIndex: RegistrarIndex; + RegistrarInfo: RegistrarInfo; + Registration: Registration; + RegistrationJudgement: RegistrationJudgement; + RegistrationTo198: RegistrationTo198; + RelayBlockNumber: RelayBlockNumber; + RelayChainBlockNumber: RelayChainBlockNumber; + RelayChainHash: RelayChainHash; + RelayerId: RelayerId; + RelayHash: RelayHash; + Releases: Releases; + Remark: Remark; + Renouncing: Renouncing; + RentProjection: RentProjection; + ReplacementTimes: ReplacementTimes; + ReportedRoundStates: ReportedRoundStates; + Reporter: Reporter; + ReportIdOf: ReportIdOf; + ReserveData: ReserveData; + ReserveIdentifier: ReserveIdentifier; + Response: Response; + ResponseV0: ResponseV0; + ResponseV1: ResponseV1; + ResponseV2: ResponseV2; + ResponseV2Error: ResponseV2Error; + ResponseV3: ResponseV3; + ResponseV3Error: ResponseV3Error; + ResponseV3Result: ResponseV3Result; + ResponseV4: ResponseV4; + Retriable: Retriable; + RewardDestination: RewardDestination; + RewardPoint: RewardPoint; + RoundSnapshot: RoundSnapshot; + RoundState: RoundState; + RpcMethods: RpcMethods; + RuntimeApiMetadataLatest: RuntimeApiMetadataLatest; + RuntimeApiMetadataV15: RuntimeApiMetadataV15; + RuntimeApiMethodMetadataV15: RuntimeApiMethodMetadataV15; + RuntimeApiMethodParamMetadataV15: RuntimeApiMethodParamMetadataV15; + RuntimeCall: RuntimeCall; + RuntimeDbWeight: RuntimeDbWeight; + RuntimeDispatchInfo: RuntimeDispatchInfo; + RuntimeDispatchInfoV1: RuntimeDispatchInfoV1; + RuntimeDispatchInfoV2: RuntimeDispatchInfoV2; + RuntimeEvent: RuntimeEvent; + RuntimeVersion: RuntimeVersion; + RuntimeVersionApi: RuntimeVersionApi; + RuntimeVersionPartial: RuntimeVersionPartial; + RuntimeVersionPre3: RuntimeVersionPre3; + RuntimeVersionPre4: RuntimeVersionPre4; + SaveFileToDisk: SaveFileToDisk; + Schedule: Schedule; + Scheduled: Scheduled; + ScheduledCore: ScheduledCore; + ScheduledTo254: ScheduledTo254; + SchedulePeriod: SchedulePeriod; + SchedulePriority: SchedulePriority; + ScheduleTo212: ScheduleTo212; + ScheduleTo258: ScheduleTo258; + ScheduleTo264: ScheduleTo264; + Scheduling: Scheduling; + ScrapedOnChainVotes: ScrapedOnChainVotes; + Seal: Seal; + SealV0: SealV0; + SeatHolder: SeatHolder; + SeedOf: SeedOf; + ServiceQuality: ServiceQuality; + SessionIndex: SessionIndex; + SessionInfo: SessionInfo; + SessionInfoValidatorGroup: SessionInfoValidatorGroup; + SessionKeys1: SessionKeys1; + SessionKeys10: SessionKeys10; + SessionKeys10B: SessionKeys10B; + SessionKeys2: SessionKeys2; + SessionKeys3: SessionKeys3; + SessionKeys4: SessionKeys4; + SessionKeys5: SessionKeys5; + SessionKeys6: SessionKeys6; + SessionKeys6B: SessionKeys6B; + SessionKeys7: SessionKeys7; + SessionKeys7B: SessionKeys7B; + SessionKeys8: SessionKeys8; + SessionKeys8B: SessionKeys8B; + SessionKeys9: SessionKeys9; + SessionKeys9B: SessionKeys9B; + SessionPhase: SessionPhase; + SessionStatus: SessionStatus; + SetId: SetId; + SetIndex: SetIndex; + Si0Field: Si0Field; + Si0LookupTypeId: Si0LookupTypeId; + Si0Path: Si0Path; + Si0Type: Si0Type; + Si0TypeDef: Si0TypeDef; + Si0TypeDefArray: Si0TypeDefArray; + Si0TypeDefBitSequence: Si0TypeDefBitSequence; + Si0TypeDefCompact: Si0TypeDefCompact; + Si0TypeDefComposite: Si0TypeDefComposite; + Si0TypeDefPhantom: Si0TypeDefPhantom; + Si0TypeDefPrimitive: Si0TypeDefPrimitive; + Si0TypeDefSequence: Si0TypeDefSequence; + Si0TypeDefTuple: Si0TypeDefTuple; + Si0TypeDefVariant: Si0TypeDefVariant; + Si0TypeParameter: Si0TypeParameter; + Si0Variant: Si0Variant; + Si1Field: Si1Field; + Si1LookupTypeId: Si1LookupTypeId; + Si1Path: Si1Path; + Si1Type: Si1Type; + Si1TypeDef: Si1TypeDef; + Si1TypeDefArray: Si1TypeDefArray; + Si1TypeDefBitSequence: Si1TypeDefBitSequence; + Si1TypeDefCompact: Si1TypeDefCompact; + Si1TypeDefComposite: Si1TypeDefComposite; + Si1TypeDefPrimitive: Si1TypeDefPrimitive; + Si1TypeDefSequence: Si1TypeDefSequence; + Si1TypeDefTuple: Si1TypeDefTuple; + Si1TypeDefVariant: Si1TypeDefVariant; + Si1TypeParameter: Si1TypeParameter; + Si1Variant: Si1Variant; + SiField: SiField; + Signature: Signature; + SignedAvailabilityBitfield: SignedAvailabilityBitfield; + SignedAvailabilityBitfields: SignedAvailabilityBitfields; + SignedBlock: SignedBlock; + SignedBlockWithJustification: SignedBlockWithJustification; + SignedBlockWithJustifications: SignedBlockWithJustifications; + SignedExtensionMetadataLatest: SignedExtensionMetadataLatest; + SignedExtensionMetadataV14: SignedExtensionMetadataV14; + SignedSubmission: SignedSubmission; + SignedSubmissionOf: SignedSubmissionOf; + SignedSubmissionTo276: SignedSubmissionTo276; + SignerPayload: SignerPayload; + SigningContext: SigningContext; + SiLookupTypeId: SiLookupTypeId; + SiPath: SiPath; + SiType: SiType; + SiTypeDef: SiTypeDef; + SiTypeDefArray: SiTypeDefArray; + SiTypeDefBitSequence: SiTypeDefBitSequence; + SiTypeDefCompact: SiTypeDefCompact; + SiTypeDefComposite: SiTypeDefComposite; + SiTypeDefPrimitive: SiTypeDefPrimitive; + SiTypeDefSequence: SiTypeDefSequence; + SiTypeDefTuple: SiTypeDefTuple; + SiTypeDefVariant: SiTypeDefVariant; + SiTypeParameter: SiTypeParameter; + SiVariant: SiVariant; + SlashingOffenceKind: SlashingOffenceKind; + SlashingSpans: SlashingSpans; + SlashingSpansTo204: SlashingSpansTo204; + SlashJournalEntry: SlashJournalEntry; + Slot: Slot; + SlotDuration: SlotDuration; + SlotNumber: SlotNumber; + SlotRange: SlotRange; + SlotRange10: SlotRange10; + SocietyJudgement: SocietyJudgement; + SocietyVote: SocietyVote; + SolutionOrSnapshotSize: SolutionOrSnapshotSize; + SolutionSupport: SolutionSupport; + SolutionSupports: SolutionSupports; + SpanIndex: SpanIndex; + SpanRecord: SpanRecord; + SpecVersion: SpecVersion; + Sr25519Signature: Sr25519Signature; + StakingLedger: StakingLedger; + StakingLedgerTo223: StakingLedgerTo223; + StakingLedgerTo240: StakingLedgerTo240; + Statement: Statement; + StatementKind: StatementKind; + StatementStoreInvalidStatement: StatementStoreInvalidStatement; + StatementStoreStatementSource: StatementStoreStatementSource; + StatementStoreValidStatement: StatementStoreValidStatement; + StorageChangeSet: StorageChangeSet; + StorageData: StorageData; + StorageDataUnit: StorageDataUnit; + StorageDeposit: StorageDeposit; + StorageEntryMetadataLatest: StorageEntryMetadataLatest; + StorageEntryMetadataV10: StorageEntryMetadataV10; + StorageEntryMetadataV11: StorageEntryMetadataV11; + StorageEntryMetadataV12: StorageEntryMetadataV12; + StorageEntryMetadataV13: StorageEntryMetadataV13; + StorageEntryMetadataV14: StorageEntryMetadataV14; + StorageEntryMetadataV9: StorageEntryMetadataV9; + StorageEntryModifierLatest: StorageEntryModifierLatest; + StorageEntryModifierV10: StorageEntryModifierV10; + StorageEntryModifierV11: StorageEntryModifierV11; + StorageEntryModifierV12: StorageEntryModifierV12; + StorageEntryModifierV13: StorageEntryModifierV13; + StorageEntryModifierV14: StorageEntryModifierV14; + StorageEntryModifierV9: StorageEntryModifierV9; + StorageEntryTypeLatest: StorageEntryTypeLatest; + StorageEntryTypeV10: StorageEntryTypeV10; + StorageEntryTypeV11: StorageEntryTypeV11; + StorageEntryTypeV12: StorageEntryTypeV12; + StorageEntryTypeV13: StorageEntryTypeV13; + StorageEntryTypeV14: StorageEntryTypeV14; + StorageEntryTypeV9: StorageEntryTypeV9; + StorageHasher: StorageHasher; + StorageHasherV10: StorageHasherV10; + StorageHasherV11: StorageHasherV11; + StorageHasherV12: StorageHasherV12; + StorageHasherV13: StorageHasherV13; + StorageHasherV14: StorageHasherV14; + StorageHasherV9: StorageHasherV9; + StorageInfo: StorageInfo; + StorageKey: StorageKey; + StorageKind: StorageKind; + StorageMetadataV10: StorageMetadataV10; + StorageMetadataV11: StorageMetadataV11; + StorageMetadataV12: StorageMetadataV12; + StorageMetadataV13: StorageMetadataV13; + StorageMetadataV9: StorageMetadataV9; + StorageProof: StorageProof; + StorageProviderId: StorageProviderId; + StoredPendingChange: StoredPendingChange; + StoredState: StoredState; + StrikeCount: StrikeCount; + SubId: SubId; + SubmissionIndicesOf: SubmissionIndicesOf; + Supports: Supports; + SyncState: SyncState; + SystemInherentData: SystemInherentData; + SystemOrigin: SystemOrigin; + Tally: Tally; + TaskAddress: TaskAddress; + TAssetBalance: TAssetBalance; + TAssetConversion: TAssetConversion; + TAssetDepositBalance: TAssetDepositBalance; + Text: Text; + Timepoint: Timepoint; + TokenError: TokenError; + TombstoneContractInfo: TombstoneContractInfo; + TraceBlockResponse: TraceBlockResponse; + TraceError: TraceError; + TransactionalError: TransactionalError; + TransactionInfo: TransactionInfo; + TransactionLongevity: TransactionLongevity; + TransactionPriority: TransactionPriority; + TransactionSource: TransactionSource; + TransactionStorageProof: TransactionStorageProof; + TransactionTag: TransactionTag; + TransactionV0: TransactionV0; + TransactionV1: TransactionV1; + TransactionV2: TransactionV2; + TransactionValidity: TransactionValidity; + TransactionValidityError: TransactionValidityError; + TransientValidationData: TransientValidationData; + TreasuryProposal: TreasuryProposal; + TrieId: TrieId; + TrieIndex: TrieIndex; + TrieRemoveMutation: TrieRemoveMutation; + Type: Type; + u128: u128; + U128: U128; + u16: u16; + U16: U16; + u256: u256; + U256: U256; + u32: u32; + U32: U32; + U32F32: U32F32; + u64: u64; + U64: U64; + u8: u8; + U8: U8; + UnappliedSlash: UnappliedSlash; + UnappliedSlashOther: UnappliedSlashOther; + UncheckedFungibilityV4: UncheckedFungibilityV4; + UncleEntryItem: UncleEntryItem; + UnknownTransaction: UnknownTransaction; + UnlockChunk: UnlockChunk; + UnrewardedRelayer: UnrewardedRelayer; + UnrewardedRelayersState: UnrewardedRelayersState; + UpgradeGoAhead: UpgradeGoAhead; + UpgradeRestriction: UpgradeRestriction; + UpwardMessage: UpwardMessage; + usize: usize; + USize: USize; + ValidationCode: ValidationCode; + ValidationCodeHash: ValidationCodeHash; + ValidationData: ValidationData; + ValidationDataType: ValidationDataType; + ValidationFunctionParams: ValidationFunctionParams; + ValidatorCount: ValidatorCount; + ValidatorId: ValidatorId; + ValidatorIdOf: ValidatorIdOf; + ValidatorIndex: ValidatorIndex; + ValidatorIndexCompact: ValidatorIndexCompact; + ValidatorPrefs: ValidatorPrefs; + ValidatorPrefsTo145: ValidatorPrefsTo145; + ValidatorPrefsTo196: ValidatorPrefsTo196; + ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked; + ValidatorPrefsWithCommission: ValidatorPrefsWithCommission; + ValidatorSet: ValidatorSet; + ValidatorSetId: ValidatorSetId; + ValidatorSignature: ValidatorSignature; + ValidDisputeStatementKind: ValidDisputeStatementKind; + ValidityAttestation: ValidityAttestation; + ValidTransaction: ValidTransaction; + VecInboundHrmpMessage: VecInboundHrmpMessage; + VersionedMultiAsset: VersionedMultiAsset; + VersionedMultiAssets: VersionedMultiAssets; + VersionedMultiLocation: VersionedMultiLocation; + VersionedResponse: VersionedResponse; + VersionedXcm: VersionedXcm; + VersionMigrationStage: VersionMigrationStage; + VersionV3: VersionV3; + VersionV4: VersionV4; + VestingInfo: VestingInfo; + VestingSchedule: VestingSchedule; + Vote: Vote; + VoteIndex: VoteIndex; + Voter: Voter; + VoterInfo: VoterInfo; + Votes: Votes; + VotesTo230: VotesTo230; + VoteThreshold: VoteThreshold; + VoteWeight: VoteWeight; + Voting: Voting; + VotingDelegating: VotingDelegating; + VotingDirect: VotingDirect; + VotingDirectVote: VotingDirectVote; + VouchingStatus: VouchingStatus; + VrfData: VrfData; + VrfOutput: VrfOutput; + VrfProof: VrfProof; + Weight: Weight; + WeightLimitV2: WeightLimitV2; + WeightLimitV3: WeightLimitV3; + WeightMultiplier: WeightMultiplier; + WeightPerClass: WeightPerClass; + WeightToFeeCoefficient: WeightToFeeCoefficient; + WeightV0: WeightV0; + WeightV1: WeightV1; + WeightV2: WeightV2; + WildFungibility: WildFungibility; + WildFungibilityV0: WildFungibilityV0; + WildFungibilityV1: WildFungibilityV1; + WildFungibilityV2: WildFungibilityV2; + WildFungibilityV3: WildFungibilityV3; + WildFungibilityV4: WildFungibilityV4; + WildMultiAsset: WildMultiAsset; + WildMultiAssetV1: WildMultiAssetV1; + WildMultiAssetV2: WildMultiAssetV2; + WildMultiAssetV3: WildMultiAssetV3; + WildMultiAssetV4: WildMultiAssetV4; + WinnersData: WinnersData; + WinnersData10: WinnersData10; + WinnersDataTuple: WinnersDataTuple; + WinnersDataTuple10: WinnersDataTuple10; + WinningData: WinningData; + WinningData10: WinningData10; + WinningDataEntry: WinningDataEntry; + WithdrawReasons: WithdrawReasons; + Xcm: Xcm; + XcmAssetId: XcmAssetId; + XcmDryRunApiError: XcmDryRunApiError; + XcmDryRunEffects: XcmDryRunEffects; + XcmError: XcmError; + XcmErrorV0: XcmErrorV0; + XcmErrorV1: XcmErrorV1; + XcmErrorV2: XcmErrorV2; + XcmErrorV3: XcmErrorV3; + XcmErrorV4: XcmErrorV4; + XcmOrderV0: XcmOrderV0; + XcmOrderV1: XcmOrderV1; + XcmOrigin: XcmOrigin; + XcmOriginKind: XcmOriginKind; + XcmPaymentApiError: XcmPaymentApiError; + XcmpMessageFormat: XcmpMessageFormat; + XcmV0: XcmV0; + XcmV1: XcmV1; + XcmV2: XcmV2; + XcmV3: XcmV3; + XcmV4: XcmV4; + XcmVersion: XcmVersion; + } +} diff --git a/api-augment/dist/types/interfaces/lookup.d.ts b/api-augment/dist/types/interfaces/lookup.d.ts index 889bb7333..83a48ece6 100644 --- a/api-augment/dist/types/interfaces/lookup.d.ts +++ b/api-augment/dist/types/interfaces/lookup.d.ts @@ -1,4397 +1,4177 @@ -declare const _default: { - /** - * Lookup3: frame_system::AccountInfo> - **/ - FrameSystemAccountInfo: { - nonce: string; - consumers: string; - providers: string; - sufficients: string; - data: string; - }; - /** - * Lookup5: pallet_balances::types::AccountData - **/ - PalletBalancesAccountData: { - free: string; - reserved: string; - frozen: string; - flags: string; - }; - /** - * Lookup9: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeight: { - normal: string; - operational: string; - mandatory: string; - }; - /** - * Lookup10: sp_weights::weight_v2::Weight - **/ - SpWeightsWeightV2Weight: { - refTime: string; - proofSize: string; - }; - /** - * Lookup15: sp_runtime::generic::digest::Digest - **/ - SpRuntimeDigest: { - logs: string; - }; - /** - * Lookup17: sp_runtime::generic::digest::DigestItem - **/ - SpRuntimeDigestDigestItem: { - _enum: { - Other: string; - __Unused1: string; - __Unused2: string; - __Unused3: string; - Consensus: string; - Seal: string; - PreRuntime: string; - __Unused7: string; - RuntimeEnvironmentUpdated: string; - }; - }; - /** - * Lookup20: frame_system::EventRecord - **/ - FrameSystemEventRecord: { - phase: string; - event: string; - topics: string; - }; - /** - * Lookup22: frame_system::pallet::Event - **/ - FrameSystemEvent: { - _enum: { - ExtrinsicSuccess: { - dispatchInfo: string; - }; - ExtrinsicFailed: { - dispatchError: string; - dispatchInfo: string; - }; - CodeUpdated: string; - NewAccount: { - account: string; - }; - KilledAccount: { - account: string; - }; - Remarked: { - _alias: { - hash_: string; - }; - sender: string; - hash_: string; - }; - UpgradeAuthorized: { - codeHash: string; - checkVersion: string; - }; - }; - }; - /** - * Lookup23: frame_support::dispatch::DispatchInfo - **/ - FrameSupportDispatchDispatchInfo: { - weight: string; - class: string; - paysFee: string; - }; - /** - * Lookup24: frame_support::dispatch::DispatchClass - **/ - FrameSupportDispatchDispatchClass: { - _enum: string[]; - }; - /** - * Lookup25: frame_support::dispatch::Pays - **/ - FrameSupportDispatchPays: { - _enum: string[]; - }; - /** - * Lookup26: sp_runtime::DispatchError - **/ - SpRuntimeDispatchError: { - _enum: { - Other: string; - CannotLookup: string; - BadOrigin: string; - Module: string; - ConsumerRemaining: string; - NoProviders: string; - TooManyConsumers: string; - Token: string; - Arithmetic: string; - Transactional: string; - Exhausted: string; - Corruption: string; - Unavailable: string; - RootNotAllowed: string; - }; - }; - /** - * Lookup27: sp_runtime::ModuleError - **/ - SpRuntimeModuleError: { - index: string; - error: string; - }; - /** - * Lookup28: sp_runtime::TokenError - **/ - SpRuntimeTokenError: { - _enum: string[]; - }; - /** - * Lookup29: sp_arithmetic::ArithmeticError - **/ - SpArithmeticArithmeticError: { - _enum: string[]; - }; - /** - * Lookup30: sp_runtime::TransactionalError - **/ - SpRuntimeTransactionalError: { - _enum: string[]; - }; - /** - * Lookup31: cumulus_pallet_parachain_system::pallet::Event - **/ - CumulusPalletParachainSystemEvent: { - _enum: { - ValidationFunctionStored: string; - ValidationFunctionApplied: { - relayChainBlockNum: string; - }; - ValidationFunctionDiscarded: string; - DownwardMessagesReceived: { - count: string; - }; - DownwardMessagesProcessed: { - weightUsed: string; - dmqHead: string; - }; - UpwardMessageSent: { - messageHash: string; - }; - }; - }; - /** - * Lookup33: pallet_balances::pallet::Event - **/ - PalletBalancesEvent: { - _enum: { - Endowed: { - account: string; - freeBalance: string; - }; - DustLost: { - account: string; - amount: string; - }; - Transfer: { - from: string; - to: string; - amount: string; - }; - BalanceSet: { - who: string; - free: string; - }; - Reserved: { - who: string; - amount: string; - }; - Unreserved: { - who: string; - amount: string; - }; - ReserveRepatriated: { - from: string; - to: string; - amount: string; - destinationStatus: string; - }; - Deposit: { - who: string; - amount: string; - }; - Withdraw: { - who: string; - amount: string; - }; - Slashed: { - who: string; - amount: string; - }; - Minted: { - who: string; - amount: string; - }; - Burned: { - who: string; - amount: string; - }; - Suspended: { - who: string; - amount: string; - }; - Restored: { - who: string; - amount: string; - }; - Upgraded: { - who: string; - }; - Issued: { - amount: string; - }; - Rescinded: { - amount: string; - }; - Locked: { - who: string; - amount: string; - }; - Unlocked: { - who: string; - amount: string; - }; - Frozen: { - who: string; - amount: string; - }; - Thawed: { - who: string; - amount: string; - }; - TotalIssuanceForced: { - _alias: { - new_: string; - }; - old: string; - new_: string; - }; - }; - }; - /** - * Lookup34: frame_support::traits::tokens::misc::BalanceStatus - **/ - FrameSupportTokensMiscBalanceStatus: { - _enum: string[]; - }; - /** - * Lookup35: pallet_transaction_payment::pallet::Event - **/ - PalletTransactionPaymentEvent: { - _enum: { - TransactionFeePaid: { - who: string; - actualFee: string; - tip: string; - }; - }; - }; - /** - * Lookup36: pallet_sudo::pallet::Event - **/ - PalletSudoEvent: { - _enum: { - Sudid: { - sudoResult: string; - }; - KeyChanged: { - _alias: { - new_: string; - }; - old: string; - new_: string; - }; - KeyRemoved: string; - SudoAsDone: { - sudoResult: string; - }; - }; - }; - /** - * Lookup40: pallet_collator_selection::pallet::Event - **/ - PalletCollatorSelectionEvent: { - _enum: { - NewInvulnerables: { - invulnerables: string; - }; - InvulnerableAdded: { - accountId: string; - }; - InvulnerableRemoved: { - accountId: string; - }; - NewDesiredCandidates: { - desiredCandidates: string; - }; - NewCandidacyBond: { - bondAmount: string; - }; - CandidateAdded: { - accountId: string; - deposit: string; - }; - CandidateBondUpdated: { - accountId: string; - deposit: string; - }; - CandidateRemoved: { - accountId: string; - }; - CandidateReplaced: { - _alias: { - new_: string; - }; - old: string; - new_: string; - deposit: string; - }; - InvalidInvulnerableSkipped: { - accountId: string; - }; - }; - }; - /** - * Lookup42: pallet_session::pallet::Event - **/ - PalletSessionEvent: { - _enum: { - NewSession: { - sessionIndex: string; - }; - }; - }; - /** - * Lookup43: cumulus_pallet_xcmp_queue::pallet::Event - **/ - CumulusPalletXcmpQueueEvent: { - _enum: { - XcmpMessageSent: { - messageHash: string; - }; - }; - }; - /** - * Lookup44: pallet_xcm::pallet::Event - **/ - PalletXcmEvent: { - _enum: { - Attempted: { - outcome: string; - }; - Sent: { - origin: string; - destination: string; - message: string; - messageId: string; - }; - UnexpectedResponse: { - origin: string; - queryId: string; - }; - ResponseReady: { - queryId: string; - response: string; - }; - Notified: { - queryId: string; - palletIndex: string; - callIndex: string; - }; - NotifyOverweight: { - queryId: string; - palletIndex: string; - callIndex: string; - actualWeight: string; - maxBudgetedWeight: string; - }; - NotifyDispatchError: { - queryId: string; - palletIndex: string; - callIndex: string; - }; - NotifyDecodeFailed: { - queryId: string; - palletIndex: string; - callIndex: string; - }; - InvalidResponder: { - origin: string; - queryId: string; - expectedLocation: string; - }; - InvalidResponderVersion: { - origin: string; - queryId: string; - }; - ResponseTaken: { - queryId: string; - }; - AssetsTrapped: { - _alias: { - hash_: string; - }; - hash_: string; - origin: string; - assets: string; - }; - VersionChangeNotified: { - destination: string; - result: string; - cost: string; - messageId: string; - }; - SupportedVersionChanged: { - location: string; - version: string; - }; - NotifyTargetSendFail: { - location: string; - queryId: string; - error: string; - }; - NotifyTargetMigrationFail: { - location: string; - queryId: string; - }; - InvalidQuerierVersion: { - origin: string; - queryId: string; - }; - InvalidQuerier: { - origin: string; - queryId: string; - expectedQuerier: string; - maybeActualQuerier: string; - }; - VersionNotifyStarted: { - destination: string; - cost: string; - messageId: string; - }; - VersionNotifyRequested: { - destination: string; - cost: string; - messageId: string; - }; - VersionNotifyUnrequested: { - destination: string; - cost: string; - messageId: string; - }; - FeesPaid: { - paying: string; - fees: string; - }; - AssetsClaimed: { - _alias: { - hash_: string; - }; - hash_: string; - origin: string; - assets: string; - }; - VersionMigrationFinished: { - version: string; - }; - }; - }; - /** - * Lookup45: staging_xcm::v4::traits::Outcome - **/ - StagingXcmV4TraitsOutcome: { - _enum: { - Complete: { - used: string; - }; - Incomplete: { - used: string; - error: string; - }; - Error: { - error: string; - }; - }; - }; - /** - * Lookup46: xcm::v3::traits::Error - **/ - XcmV3TraitsError: { - _enum: { - Overflow: string; - Unimplemented: string; - UntrustedReserveLocation: string; - UntrustedTeleportLocation: string; - LocationFull: string; - LocationNotInvertible: string; - BadOrigin: string; - InvalidLocation: string; - AssetNotFound: string; - FailedToTransactAsset: string; - NotWithdrawable: string; - LocationCannotHold: string; - ExceedsMaxMessageSize: string; - DestinationUnsupported: string; - Transport: string; - Unroutable: string; - UnknownClaim: string; - FailedToDecode: string; - MaxWeightInvalid: string; - NotHoldingFees: string; - TooExpensive: string; - Trap: string; - ExpectationFalse: string; - PalletNotFound: string; - NameMismatch: string; - VersionIncompatible: string; - HoldingWouldOverflow: string; - ExportError: string; - ReanchorFailed: string; - NoDeal: string; - FeesNotMet: string; - LockError: string; - NoPermission: string; - Unanchored: string; - NotDepositable: string; - UnhandledXcmVersion: string; - WeightLimitReached: string; - Barrier: string; - WeightNotComputable: string; - ExceedsStackLimit: string; - }; - }; - /** - * Lookup47: staging_xcm::v4::location::Location - **/ - StagingXcmV4Location: { - parents: string; - interior: string; - }; - /** - * Lookup48: staging_xcm::v4::junctions::Junctions - **/ - StagingXcmV4Junctions: { - _enum: { - Here: string; - X1: string; - X2: string; - X3: string; - X4: string; - X5: string; - X6: string; - X7: string; - X8: string; - }; - }; - /** - * Lookup50: staging_xcm::v4::junction::Junction - **/ - StagingXcmV4Junction: { - _enum: { - Parachain: string; - AccountId32: { - network: string; - id: string; - }; - AccountIndex64: { - network: string; - index: string; - }; - AccountKey20: { - network: string; - key: string; - }; - PalletInstance: string; - GeneralIndex: string; - GeneralKey: { - length: string; - data: string; - }; - OnlyChild: string; - Plurality: { - id: string; - part: string; - }; - GlobalConsensus: string; - }; - }; - /** - * Lookup53: staging_xcm::v4::junction::NetworkId - **/ - StagingXcmV4JunctionNetworkId: { - _enum: { - ByGenesis: string; - ByFork: { - blockNumber: string; - blockHash: string; - }; - Polkadot: string; - Kusama: string; - Westend: string; - Rococo: string; - Wococo: string; - Ethereum: { - chainId: string; - }; - BitcoinCore: string; - BitcoinCash: string; - PolkadotBulletin: string; - }; - }; - /** - * Lookup56: xcm::v3::junction::BodyId - **/ - XcmV3JunctionBodyId: { - _enum: { - Unit: string; - Moniker: string; - Index: string; - Executive: string; - Technical: string; - Legislative: string; - Judicial: string; - Defense: string; - Administration: string; - Treasury: string; - }; - }; - /** - * Lookup57: xcm::v3::junction::BodyPart - **/ - XcmV3JunctionBodyPart: { - _enum: { - Voice: string; - Members: { - count: string; - }; - Fraction: { - nom: string; - denom: string; - }; - AtLeastProportion: { - nom: string; - denom: string; - }; - MoreThanProportion: { - nom: string; - denom: string; - }; - }; - }; - /** - * Lookup65: staging_xcm::v4::Xcm - **/ - StagingXcmV4Xcm: string; - /** - * Lookup67: staging_xcm::v4::Instruction - **/ - StagingXcmV4Instruction: { - _enum: { - WithdrawAsset: string; - ReserveAssetDeposited: string; - ReceiveTeleportedAsset: string; - QueryResponse: { - queryId: string; - response: string; - maxWeight: string; - querier: string; - }; - TransferAsset: { - assets: string; - beneficiary: string; - }; - TransferReserveAsset: { - assets: string; - dest: string; - xcm: string; - }; - Transact: { - originKind: string; - requireWeightAtMost: string; - call: string; - }; - HrmpNewChannelOpenRequest: { - sender: string; - maxMessageSize: string; - maxCapacity: string; - }; - HrmpChannelAccepted: { - recipient: string; - }; - HrmpChannelClosing: { - initiator: string; - sender: string; - recipient: string; - }; - ClearOrigin: string; - DescendOrigin: string; - ReportError: string; - DepositAsset: { - assets: string; - beneficiary: string; - }; - DepositReserveAsset: { - assets: string; - dest: string; - xcm: string; - }; - ExchangeAsset: { - give: string; - want: string; - maximal: string; - }; - InitiateReserveWithdraw: { - assets: string; - reserve: string; - xcm: string; - }; - InitiateTeleport: { - assets: string; - dest: string; - xcm: string; - }; - ReportHolding: { - responseInfo: string; - assets: string; - }; - BuyExecution: { - fees: string; - weightLimit: string; - }; - RefundSurplus: string; - SetErrorHandler: string; - SetAppendix: string; - ClearError: string; - ClaimAsset: { - assets: string; - ticket: string; - }; - Trap: string; - SubscribeVersion: { - queryId: string; - maxResponseWeight: string; - }; - UnsubscribeVersion: string; - BurnAsset: string; - ExpectAsset: string; - ExpectOrigin: string; - ExpectError: string; - ExpectTransactStatus: string; - QueryPallet: { - moduleName: string; - responseInfo: string; - }; - ExpectPallet: { - index: string; - name: string; - moduleName: string; - crateMajor: string; - minCrateMinor: string; - }; - ReportTransactStatus: string; - ClearTransactStatus: string; - UniversalOrigin: string; - ExportMessage: { - network: string; - destination: string; - xcm: string; - }; - LockAsset: { - asset: string; - unlocker: string; - }; - UnlockAsset: { - asset: string; - target: string; - }; - NoteUnlockable: { - asset: string; - owner: string; - }; - RequestUnlock: { - asset: string; - locker: string; - }; - SetFeesMode: { - jitWithdraw: string; - }; - SetTopic: string; - ClearTopic: string; - AliasOrigin: string; - UnpaidExecution: { - weightLimit: string; - checkOrigin: string; - }; - }; - }; - /** - * Lookup68: staging_xcm::v4::asset::Assets - **/ - StagingXcmV4AssetAssets: string; - /** - * Lookup70: staging_xcm::v4::asset::Asset - **/ - StagingXcmV4Asset: { - id: string; - fun: string; - }; - /** - * Lookup71: staging_xcm::v4::asset::AssetId - **/ - StagingXcmV4AssetAssetId: string; - /** - * Lookup72: staging_xcm::v4::asset::Fungibility - **/ - StagingXcmV4AssetFungibility: { - _enum: { - Fungible: string; - NonFungible: string; - }; - }; - /** - * Lookup73: staging_xcm::v4::asset::AssetInstance - **/ - StagingXcmV4AssetAssetInstance: { - _enum: { - Undefined: string; - Index: string; - Array4: string; - Array8: string; - Array16: string; - Array32: string; - }; - }; - /** - * Lookup76: staging_xcm::v4::Response - **/ - StagingXcmV4Response: { - _enum: { - Null: string; - Assets: string; - ExecutionResult: string; - Version: string; - PalletsInfo: string; - DispatchResult: string; - }; - }; - /** - * Lookup80: staging_xcm::v4::PalletInfo - **/ - StagingXcmV4PalletInfo: { - index: string; - name: string; - moduleName: string; - major: string; - minor: string; - patch: string; - }; - /** - * Lookup83: xcm::v3::MaybeErrorCode - **/ - XcmV3MaybeErrorCode: { - _enum: { - Success: string; - Error: string; - TruncatedError: string; - }; - }; - /** - * Lookup86: xcm::v3::OriginKind - **/ - XcmV3OriginKind: { - _enum: string[]; - }; - /** - * Lookup87: xcm::double_encoded::DoubleEncoded - **/ - XcmDoubleEncoded: { - encoded: string; - }; - /** - * Lookup88: staging_xcm::v4::QueryResponseInfo - **/ - StagingXcmV4QueryResponseInfo: { - destination: string; - queryId: string; - maxWeight: string; - }; - /** - * Lookup89: staging_xcm::v4::asset::AssetFilter - **/ - StagingXcmV4AssetAssetFilter: { - _enum: { - Definite: string; - Wild: string; - }; - }; - /** - * Lookup90: staging_xcm::v4::asset::WildAsset - **/ - StagingXcmV4AssetWildAsset: { - _enum: { - All: string; - AllOf: { - id: string; - fun: string; - }; - AllCounted: string; - AllOfCounted: { - id: string; - fun: string; - count: string; - }; - }; - }; - /** - * Lookup91: staging_xcm::v4::asset::WildFungibility - **/ - StagingXcmV4AssetWildFungibility: { - _enum: string[]; - }; - /** - * Lookup92: xcm::v3::WeightLimit - **/ - XcmV3WeightLimit: { - _enum: { - Unlimited: string; - Limited: string; - }; - }; - /** - * Lookup93: xcm::VersionedAssets - **/ - XcmVersionedAssets: { - _enum: { - __Unused0: string; - V2: string; - __Unused2: string; - V3: string; - V4: string; - }; - }; - /** - * Lookup94: xcm::v2::multiasset::MultiAssets - **/ - XcmV2MultiassetMultiAssets: string; - /** - * Lookup96: xcm::v2::multiasset::MultiAsset - **/ - XcmV2MultiAsset: { - id: string; - fun: string; - }; - /** - * Lookup97: xcm::v2::multiasset::AssetId - **/ - XcmV2MultiassetAssetId: { - _enum: { - Concrete: string; - Abstract: string; - }; - }; - /** - * Lookup98: xcm::v2::multilocation::MultiLocation - **/ - XcmV2MultiLocation: { - parents: string; - interior: string; - }; - /** - * Lookup99: xcm::v2::multilocation::Junctions - **/ - XcmV2MultilocationJunctions: { - _enum: { - Here: string; - X1: string; - X2: string; - X3: string; - X4: string; - X5: string; - X6: string; - X7: string; - X8: string; - }; - }; - /** - * Lookup100: xcm::v2::junction::Junction - **/ - XcmV2Junction: { - _enum: { - Parachain: string; - AccountId32: { - network: string; - id: string; - }; - AccountIndex64: { - network: string; - index: string; - }; - AccountKey20: { - network: string; - key: string; - }; - PalletInstance: string; - GeneralIndex: string; - GeneralKey: string; - OnlyChild: string; - Plurality: { - id: string; - part: string; - }; - }; - }; - /** - * Lookup101: xcm::v2::NetworkId - **/ - XcmV2NetworkId: { - _enum: { - Any: string; - Named: string; - Polkadot: string; - Kusama: string; - }; - }; - /** - * Lookup103: xcm::v2::BodyId - **/ - XcmV2BodyId: { - _enum: { - Unit: string; - Named: string; - Index: string; - Executive: string; - Technical: string; - Legislative: string; - Judicial: string; - Defense: string; - Administration: string; - Treasury: string; - }; - }; - /** - * Lookup104: xcm::v2::BodyPart - **/ - XcmV2BodyPart: { - _enum: { - Voice: string; - Members: { - count: string; - }; - Fraction: { - nom: string; - denom: string; - }; - AtLeastProportion: { - nom: string; - denom: string; - }; - MoreThanProportion: { - nom: string; - denom: string; - }; - }; - }; - /** - * Lookup105: xcm::v2::multiasset::Fungibility - **/ - XcmV2MultiassetFungibility: { - _enum: { - Fungible: string; - NonFungible: string; - }; - }; - /** - * Lookup106: xcm::v2::multiasset::AssetInstance - **/ - XcmV2MultiassetAssetInstance: { - _enum: { - Undefined: string; - Index: string; - Array4: string; - Array8: string; - Array16: string; - Array32: string; - Blob: string; - }; - }; - /** - * Lookup107: xcm::v3::multiasset::MultiAssets - **/ - XcmV3MultiassetMultiAssets: string; - /** - * Lookup109: xcm::v3::multiasset::MultiAsset - **/ - XcmV3MultiAsset: { - id: string; - fun: string; - }; - /** - * Lookup110: xcm::v3::multiasset::AssetId - **/ - XcmV3MultiassetAssetId: { - _enum: { - Concrete: string; - Abstract: string; - }; - }; - /** - * Lookup111: staging_xcm::v3::multilocation::MultiLocation - **/ - StagingXcmV3MultiLocation: { - parents: string; - interior: string; - }; - /** - * Lookup112: xcm::v3::junctions::Junctions - **/ - XcmV3Junctions: { - _enum: { - Here: string; - X1: string; - X2: string; - X3: string; - X4: string; - X5: string; - X6: string; - X7: string; - X8: string; - }; - }; - /** - * Lookup113: xcm::v3::junction::Junction - **/ - XcmV3Junction: { - _enum: { - Parachain: string; - AccountId32: { - network: string; - id: string; - }; - AccountIndex64: { - network: string; - index: string; - }; - AccountKey20: { - network: string; - key: string; - }; - PalletInstance: string; - GeneralIndex: string; - GeneralKey: { - length: string; - data: string; - }; - OnlyChild: string; - Plurality: { - id: string; - part: string; - }; - GlobalConsensus: string; - }; - }; - /** - * Lookup115: xcm::v3::junction::NetworkId - **/ - XcmV3JunctionNetworkId: { - _enum: { - ByGenesis: string; - ByFork: { - blockNumber: string; - blockHash: string; - }; - Polkadot: string; - Kusama: string; - Westend: string; - Rococo: string; - Wococo: string; - Ethereum: { - chainId: string; - }; - BitcoinCore: string; - BitcoinCash: string; - PolkadotBulletin: string; - }; - }; - /** - * Lookup116: xcm::v3::multiasset::Fungibility - **/ - XcmV3MultiassetFungibility: { - _enum: { - Fungible: string; - NonFungible: string; - }; - }; - /** - * Lookup117: xcm::v3::multiasset::AssetInstance - **/ - XcmV3MultiassetAssetInstance: { - _enum: { - Undefined: string; - Index: string; - Array4: string; - Array8: string; - Array16: string; - Array32: string; - }; - }; - /** - * Lookup118: xcm::VersionedLocation - **/ - XcmVersionedLocation: { - _enum: { - __Unused0: string; - V2: string; - __Unused2: string; - V3: string; - V4: string; - }; - }; - /** - * Lookup119: cumulus_pallet_xcm::pallet::Event - **/ - CumulusPalletXcmEvent: { - _enum: { - InvalidFormat: string; - UnsupportedVersion: string; - ExecutedDownward: string; - }; - }; - /** - * Lookup120: pallet_message_queue::pallet::Event - **/ - PalletMessageQueueEvent: { - _enum: { - ProcessingFailed: { - id: string; - origin: string; - error: string; - }; - Processed: { - id: string; - origin: string; - weightUsed: string; - success: string; - }; - OverweightEnqueued: { - id: string; - origin: string; - pageIndex: string; - messageIndex: string; - }; - PageReaped: { - origin: string; - index: string; - }; - }; - }; - /** - * Lookup121: cumulus_primitives_core::AggregateMessageOrigin - **/ - CumulusPrimitivesCoreAggregateMessageOrigin: { - _enum: { - Here: string; - Parent: string; - Sibling: string; - }; - }; - /** - * Lookup123: frame_support::traits::messages::ProcessMessageError - **/ - FrameSupportMessagesProcessMessageError: { - _enum: { - BadFormat: string; - Corrupt: string; - Unsupported: string; - Overweight: string; - Yield: string; - StackLimitReached: string; - }; - }; - /** - * Lookup124: pallet_storage_providers::pallet::Event - **/ - PalletStorageProvidersEvent: { - _enum: { - MspRequestSignUpSuccess: { - who: string; - multiaddresses: string; - capacity: string; - valueProp: string; - }; - MspSignUpSuccess: { - who: string; - mspId: string; - multiaddresses: string; - capacity: string; - valueProp: string; - }; - BspRequestSignUpSuccess: { - who: string; - multiaddresses: string; - capacity: string; - }; - BspSignUpSuccess: { - who: string; - bspId: string; - multiaddresses: string; - capacity: string; - }; - SignUpRequestCanceled: { - who: string; - }; - MspSignOffSuccess: { - who: string; - mspId: string; - }; - BspSignOffSuccess: { - who: string; - bspId: string; - }; - CapacityChanged: { - who: string; - providerId: string; - oldCapacity: string; - newCapacity: string; - nextBlockWhenChangeAllowed: string; - }; - Slashed: { - providerId: string; - amountSlashed: string; - }; - }; - }; - /** - * Lookup128: pallet_storage_providers::types::ValueProposition - **/ - PalletStorageProvidersValueProposition: { - identifier: string; - dataLimit: string; - protocols: string; - }; - /** - * Lookup130: pallet_storage_providers::types::StorageProviderId - **/ - PalletStorageProvidersStorageProviderId: { - _enum: { - BackupStorageProvider: string; - MainStorageProvider: string; - }; - }; - /** - * Lookup131: pallet_file_system::pallet::Event - **/ - PalletFileSystemEvent: { - _enum: { - NewBucket: { - who: string; - mspId: string; - bucketId: string; - name: string; - collectionId: string; - private: string; - }; - MoveBucketRequested: { - who: string; - bucketId: string; - newMspId: string; - }; - BucketPrivacyUpdated: { - who: string; - bucketId: string; - collectionId: string; - private: string; - }; - NewCollectionAndAssociation: { - who: string; - bucketId: string; - collectionId: string; - }; - NewStorageRequest: { - _alias: { - size_: string; - }; - who: string; - fileKey: string; - bucketId: string; - location: string; - fingerprint: string; - size_: string; - peerIds: string; - }; - MspRespondedToStorageRequests: { - results: string; - }; - AcceptedBspVolunteer: { - _alias: { - size_: string; - }; - bspId: string; - bucketId: string; - location: string; - fingerprint: string; - multiaddresses: string; - owner: string; - size_: string; - }; - BspConfirmedStoring: { - who: string; - bspId: string; - fileKeys: string; - newRoot: string; - }; - StorageRequestFulfilled: { - fileKey: string; - }; - StorageRequestExpired: { - fileKey: string; - }; - StorageRequestRevoked: { - fileKey: string; - }; - BspRequestedToStopStoring: { - bspId: string; - fileKey: string; - owner: string; - location: string; - }; - BspConfirmStoppedStoring: { - bspId: string; - fileKey: string; - newRoot: string; - }; - PriorityChallengeForFileDeletionQueued: { - issuer: string; - fileKey: string; - }; - SpStopStoringInsolventUser: { - spId: string; - fileKey: string; - owner: string; - location: string; - newRoot: string; - }; - FailedToQueuePriorityChallenge: { - user: string; - fileKey: string; - }; - FileDeletionRequest: { - user: string; - fileKey: string; - bucketId: string; - mspId: string; - proofOfInclusion: string; - }; - ProofSubmittedForPendingFileDeletionRequest: { - mspId: string; - user: string; - fileKey: string; - bucketId: string; - proofOfInclusion: string; - }; - BspChallengeCycleInitialised: { - who: string; - bspId: string; - }; - MoveBucketRequestExpired: { - mspId: string; - bucketId: string; - }; - MoveBucketAccepted: { - bucketId: string; - mspId: string; - }; - MoveBucketRejected: { - bucketId: string; - mspId: string; - }; - DataServerRegisteredForMoveBucket: { - bspId: string; - bucketId: string; - }; - }; - }; - /** - * Lookup134: pallet_file_system::types::MspRespondStorageRequestsResult - **/ - PalletFileSystemMspRespondStorageRequestsResult: { - mspId: string; - responses: string; - }; - /** - * Lookup136: pallet_file_system::types::BatchResponses - **/ - PalletFileSystemBatchResponses: { - _enum: { - Accepted: string; - Rejected: string; - Failed: string; - }; - }; - /** - * Lookup137: pallet_file_system::types::MspAcceptedBatchStorageRequests - **/ - PalletFileSystemMspAcceptedBatchStorageRequests: { - fileKeys: string; - bucketId: string; - newBucketRoot: string; - owner: string; - }; - /** - * Lookup140: pallet_file_system::types::MspRejectedBatchStorageRequests - **/ - PalletFileSystemMspRejectedBatchStorageRequests: { - fileKeys: string; - bucketId: string; - owner: string; - }; - /** - * Lookup143: pallet_file_system::types::RejectedStorageRequestReason - **/ - PalletFileSystemRejectedStorageRequestReason: { - _enum: string[]; - }; - /** - * Lookup145: pallet_file_system::types::MspFailedBatchStorageRequests - **/ - PalletFileSystemMspFailedBatchStorageRequests: { - fileKeys: string; - bucketId: string; - owner: string; - }; - /** - * Lookup150: pallet_file_system::types::EitherAccountIdOrMspId - **/ - PalletFileSystemEitherAccountIdOrMspId: { - _enum: { - AccountId: string; - MspId: string; - }; - }; - /** - * Lookup151: pallet_proofs_dealer::pallet::Event - **/ - PalletProofsDealerEvent: { - _enum: { - NewChallenge: { - who: string; - keyChallenged: string; - }; - ProofAccepted: { - provider: string; - proof: string; - }; - NewChallengeSeed: { - challengesTicker: string; - seed: string; - }; - NewCheckpointChallenge: { - challengesTicker: string; - challenges: string; - }; - SlashableProvider: { - provider: string; - nextChallengeDeadline: string; - }; - NoRecordOfLastSubmittedProof: { - provider: string; - }; - NewChallengeCycleInitialised: { - currentTick: string; - nextChallengeDeadline: string; - provider: string; - maybeProviderAccount: string; - }; - MutationsApplied: { - provider: string; - mutations: string; - newRoot: string; - }; - ChallengesTickerSet: { - paused: string; - }; - }; - }; - /** - * Lookup152: pallet_proofs_dealer::types::Proof - **/ - PalletProofsDealerProof: { - forestProof: string; - keyProofs: string; - }; - /** - * Lookup153: sp_trie::storage_proof::CompactProof - **/ - SpTrieStorageProofCompactProof: { - encodedNodes: string; - }; - /** - * Lookup156: pallet_proofs_dealer::types::KeyProof - **/ - PalletProofsDealerKeyProof: { - proof: string; - challengeCount: string; - }; - /** - * Lookup157: shp_file_key_verifier::types::FileKeyProof - **/ - ShpFileKeyVerifierFileKeyProof: { - fileMetadata: string; - proof: string; - }; - /** - * Lookup158: shp_file_metadata::FileMetadata - **/ - ShpFileMetadataFileMetadata: { - owner: string; - bucketId: string; - location: string; - fileSize: string; - fingerprint: string; - }; - /** - * Lookup159: shp_file_metadata::Fingerprint - **/ - ShpFileMetadataFingerprint: string; - /** - * Lookup165: shp_traits::TrieRemoveMutation - **/ - ShpTraitsTrieRemoveMutation: string; - /** - * Lookup169: pallet_randomness::pallet::Event - **/ - PalletRandomnessEvent: { - _enum: { - NewOneEpochAgoRandomnessAvailable: { - randomnessSeed: string; - fromEpoch: string; - validUntilBlock: string; - }; - }; - }; - /** - * Lookup170: pallet_payment_streams::pallet::Event - **/ - PalletPaymentStreamsEvent: { - _enum: { - FixedRatePaymentStreamCreated: { - userAccount: string; - providerId: string; - rate: string; - }; - FixedRatePaymentStreamUpdated: { - userAccount: string; - providerId: string; - newRate: string; - }; - FixedRatePaymentStreamDeleted: { - userAccount: string; - providerId: string; - }; - DynamicRatePaymentStreamCreated: { - userAccount: string; - providerId: string; - amountProvided: string; - }; - DynamicRatePaymentStreamUpdated: { - userAccount: string; - providerId: string; - newAmountProvided: string; - }; - DynamicRatePaymentStreamDeleted: { - userAccount: string; - providerId: string; - }; - PaymentStreamCharged: { - userAccount: string; - providerId: string; - amount: string; - }; - LastChargeableInfoUpdated: { - providerId: string; - lastChargeableTick: string; - lastChargeablePriceIndex: string; - }; - UserWithoutFunds: { - who: string; - }; - UserPaidDebts: { - who: string; - }; - UserSolvent: { - who: string; - }; - }; - }; - /** - * Lookup171: pallet_bucket_nfts::pallet::Event - **/ - PalletBucketNftsEvent: { - _enum: { - AccessShared: { - issuer: string; - recipient: string; - }; - ItemReadAccessUpdated: { - admin: string; - bucket: string; - itemId: string; - }; - ItemBurned: { - account: string; - bucket: string; - itemId: string; - }; - }; - }; - /** - * Lookup172: pallet_nfts::pallet::Event - **/ - PalletNftsEvent: { - _enum: { - Created: { - collection: string; - creator: string; - owner: string; - }; - ForceCreated: { - collection: string; - owner: string; - }; - Destroyed: { - collection: string; - }; - Issued: { - collection: string; - item: string; - owner: string; - }; - Transferred: { - collection: string; - item: string; - from: string; - to: string; - }; - Burned: { - collection: string; - item: string; - owner: string; - }; - ItemTransferLocked: { - collection: string; - item: string; - }; - ItemTransferUnlocked: { - collection: string; - item: string; - }; - ItemPropertiesLocked: { - collection: string; - item: string; - lockMetadata: string; - lockAttributes: string; - }; - CollectionLocked: { - collection: string; - }; - OwnerChanged: { - collection: string; - newOwner: string; - }; - TeamChanged: { - collection: string; - issuer: string; - admin: string; - freezer: string; - }; - TransferApproved: { - collection: string; - item: string; - owner: string; - delegate: string; - deadline: string; - }; - ApprovalCancelled: { - collection: string; - item: string; - owner: string; - delegate: string; - }; - AllApprovalsCancelled: { - collection: string; - item: string; - owner: string; - }; - CollectionConfigChanged: { - collection: string; - }; - CollectionMetadataSet: { - collection: string; - data: string; - }; - CollectionMetadataCleared: { - collection: string; - }; - ItemMetadataSet: { - collection: string; - item: string; - data: string; - }; - ItemMetadataCleared: { - collection: string; - item: string; - }; - Redeposited: { - collection: string; - successfulItems: string; - }; - AttributeSet: { - collection: string; - maybeItem: string; - key: string; - value: string; - namespace: string; - }; - AttributeCleared: { - collection: string; - maybeItem: string; - key: string; - namespace: string; - }; - ItemAttributesApprovalAdded: { - collection: string; - item: string; - delegate: string; - }; - ItemAttributesApprovalRemoved: { - collection: string; - item: string; - delegate: string; - }; - OwnershipAcceptanceChanged: { - who: string; - maybeCollection: string; - }; - CollectionMaxSupplySet: { - collection: string; - maxSupply: string; - }; - CollectionMintSettingsUpdated: { - collection: string; - }; - NextCollectionIdIncremented: { - nextId: string; - }; - ItemPriceSet: { - collection: string; - item: string; - price: string; - whitelistedBuyer: string; - }; - ItemPriceRemoved: { - collection: string; - item: string; - }; - ItemBought: { - collection: string; - item: string; - price: string; - seller: string; - buyer: string; - }; - TipSent: { - collection: string; - item: string; - sender: string; - receiver: string; - amount: string; - }; - SwapCreated: { - offeredCollection: string; - offeredItem: string; - desiredCollection: string; - desiredItem: string; - price: string; - deadline: string; - }; - SwapCancelled: { - offeredCollection: string; - offeredItem: string; - desiredCollection: string; - desiredItem: string; - price: string; - deadline: string; - }; - SwapClaimed: { - sentCollection: string; - sentItem: string; - sentItemOwner: string; - receivedCollection: string; - receivedItem: string; - receivedItemOwner: string; - price: string; - deadline: string; - }; - PreSignedAttributesSet: { - collection: string; - item: string; - namespace: string; - }; - PalletAttributeSet: { - collection: string; - item: string; - attribute: string; - value: string; - }; - }; - }; - /** - * Lookup176: pallet_nfts::types::AttributeNamespace - **/ - PalletNftsAttributeNamespace: { - _enum: { - Pallet: string; - CollectionOwner: string; - ItemOwner: string; - Account: string; - }; - }; - /** - * Lookup178: pallet_nfts::types::PriceWithDirection - **/ - PalletNftsPriceWithDirection: { - amount: string; - direction: string; - }; - /** - * Lookup179: pallet_nfts::types::PriceDirection - **/ - PalletNftsPriceDirection: { - _enum: string[]; - }; - /** - * Lookup180: pallet_nfts::types::PalletAttributes - **/ - PalletNftsPalletAttributes: { - _enum: { - UsedToClaim: string; - TransferDisabled: string; - }; - }; - /** - * Lookup181: pallet_parameters::pallet::Event - **/ - PalletParametersEvent: { - _enum: { - Updated: { - key: string; - oldValue: string; - newValue: string; - }; - }; - }; - /** - * Lookup182: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { - _enum: { - RuntimeConfig: string; - }; - }; - /** - * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { - _enum: string[]; - }; - /** - * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: string; - /** - * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: string; - /** - * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: string; - /** - * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: string; - /** - * Lookup189: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { - _enum: { - RuntimeConfig: string; - }; - }; - /** - * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { - _enum: { - SlashAmountPerMaxFileSize: string; - StakeToChallengePeriod: string; - CheckpointChallengePeriod: string; - MinChallengePeriod: string; - }; - }; - /** - * Lookup191: frame_system::Phase - **/ - FrameSystemPhase: { - _enum: { - ApplyExtrinsic: string; - Finalization: string; - Initialization: string; - }; - }; - /** - * Lookup194: frame_system::LastRuntimeUpgradeInfo - **/ - FrameSystemLastRuntimeUpgradeInfo: { - specVersion: string; - specName: string; - }; - /** - * Lookup196: frame_system::CodeUpgradeAuthorization - **/ - FrameSystemCodeUpgradeAuthorization: { - codeHash: string; - checkVersion: string; - }; - /** - * Lookup197: frame_system::pallet::Call - **/ - FrameSystemCall: { - _enum: { - remark: { - remark: string; - }; - set_heap_pages: { - pages: string; - }; - set_code: { - code: string; - }; - set_code_without_checks: { - code: string; - }; - set_storage: { - items: string; - }; - kill_storage: { - _alias: { - keys_: string; - }; - keys_: string; - }; - kill_prefix: { - prefix: string; - subkeys: string; - }; - remark_with_event: { - remark: string; - }; - __Unused8: string; - authorize_upgrade: { - codeHash: string; - }; - authorize_upgrade_without_checks: { - codeHash: string; - }; - apply_authorized_upgrade: { - code: string; - }; - }; - }; - /** - * Lookup200: frame_system::limits::BlockWeights - **/ - FrameSystemLimitsBlockWeights: { - baseBlock: string; - maxBlock: string; - perClass: string; - }; - /** - * Lookup201: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeightsPerClass: { - normal: string; - operational: string; - mandatory: string; - }; - /** - * Lookup202: frame_system::limits::WeightsPerClass - **/ - FrameSystemLimitsWeightsPerClass: { - baseExtrinsic: string; - maxExtrinsic: string; - maxTotal: string; - reserved: string; - }; - /** - * Lookup204: frame_system::limits::BlockLength - **/ - FrameSystemLimitsBlockLength: { - max: string; - }; - /** - * Lookup205: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassU32: { - normal: string; - operational: string; - mandatory: string; - }; - /** - * Lookup206: sp_weights::RuntimeDbWeight - **/ - SpWeightsRuntimeDbWeight: { - read: string; - write: string; - }; - /** - * Lookup207: sp_version::RuntimeVersion - **/ - SpVersionRuntimeVersion: { - specName: string; - implName: string; - authoringVersion: string; - specVersion: string; - implVersion: string; - apis: string; - transactionVersion: string; - stateVersion: string; - }; - /** - * Lookup212: frame_system::pallet::Error - **/ - FrameSystemError: { - _enum: string[]; - }; - /** - * Lookup214: cumulus_pallet_parachain_system::unincluded_segment::Ancestor - **/ - CumulusPalletParachainSystemUnincludedSegmentAncestor: { - usedBandwidth: string; - paraHeadHash: string; - consumedGoAheadSignal: string; - }; - /** - * Lookup215: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth - **/ - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { - umpMsgCount: string; - umpTotalBytes: string; - hrmpOutgoing: string; - }; - /** - * Lookup217: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate - **/ - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { - msgCount: string; - totalBytes: string; - }; - /** -<<<<<<< HEAD - * Lookup197: polkadot_primitives::v7::UpgradeGoAhead -======= - * Lookup222: polkadot_primitives::v7::UpgradeGoAhead ->>>>>>> main - **/ - PolkadotPrimitivesV7UpgradeGoAhead: { - _enum: string[]; - }; - /** - * Lookup223: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker - **/ - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { - usedBandwidth: string; - hrmpWatermark: string; - consumedGoAheadSignal: string; - }; - /** -<<<<<<< HEAD - * Lookup199: polkadot_primitives::v7::PersistedValidationData -======= - * Lookup224: polkadot_primitives::v7::PersistedValidationData ->>>>>>> main - **/ - PolkadotPrimitivesV7PersistedValidationData: { - parentHead: string; - relayParentNumber: string; - relayParentStorageRoot: string; - maxPovSize: string; - }; - /** -<<<<<<< HEAD - * Lookup202: polkadot_primitives::v7::UpgradeRestriction -======= - * Lookup227: polkadot_primitives::v7::UpgradeRestriction ->>>>>>> main - **/ - PolkadotPrimitivesV7UpgradeRestriction: { - _enum: string[]; - }; - /** - * Lookup228: sp_trie::storage_proof::StorageProof - **/ - SpTrieStorageProof: { - trieNodes: string; - }; - /** - * Lookup230: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot - **/ - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { - dmqMqcHead: string; - relayDispatchQueueRemainingCapacity: string; - ingressChannels: string; - egressChannels: string; - }; - /** - * Lookup231: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity - **/ - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { - remainingCount: string; - remainingSize: string; - }; - /** -<<<<<<< HEAD - * Lookup209: polkadot_primitives::v7::AbridgedHrmpChannel -======= - * Lookup234: polkadot_primitives::v7::AbridgedHrmpChannel ->>>>>>> main - **/ - PolkadotPrimitivesV7AbridgedHrmpChannel: { - maxCapacity: string; - maxTotalSize: string; - maxMessageSize: string; - msgCount: string; - totalSize: string; - mqcHead: string; - }; - /** -<<<<<<< HEAD - * Lookup210: polkadot_primitives::v7::AbridgedHostConfiguration -======= - * Lookup235: polkadot_primitives::v7::AbridgedHostConfiguration ->>>>>>> main - **/ - PolkadotPrimitivesV7AbridgedHostConfiguration: { - maxCodeSize: string; - maxHeadDataSize: string; - maxUpwardQueueCount: string; - maxUpwardQueueSize: string; - maxUpwardMessageSize: string; - maxUpwardMessageNumPerCandidate: string; - hrmpMaxMessageNumPerCandidate: string; - validationUpgradeCooldown: string; - validationUpgradeDelay: string; - asyncBackingParams: string; - }; - /** -<<<<<<< HEAD - * Lookup211: polkadot_primitives::v7::async_backing::AsyncBackingParams -======= - * Lookup236: polkadot_primitives::v7::async_backing::AsyncBackingParams ->>>>>>> main - **/ - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { - maxCandidateDepth: string; - allowedAncestryLen: string; - }; - /** - * Lookup242: polkadot_core_primitives::OutboundHrmpMessage - **/ - PolkadotCorePrimitivesOutboundHrmpMessage: { - recipient: string; - data: string; - }; - /** - * Lookup244: cumulus_pallet_parachain_system::pallet::Call - **/ - CumulusPalletParachainSystemCall: { - _enum: { - set_validation_data: { - data: string; - }; - sudo_send_upward_message: { - message: string; - }; - authorize_upgrade: { - codeHash: string; - checkVersion: string; - }; - enact_authorized_upgrade: { - code: string; - }; - }; - }; - /** - * Lookup245: cumulus_primitives_parachain_inherent::ParachainInherentData - **/ - CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: string; - relayChainState: string; - downwardMessages: string; - horizontalMessages: string; - }; - /** - * Lookup247: polkadot_core_primitives::InboundDownwardMessage - **/ - PolkadotCorePrimitivesInboundDownwardMessage: { - sentAt: string; - msg: string; - }; - /** - * Lookup250: polkadot_core_primitives::InboundHrmpMessage - **/ - PolkadotCorePrimitivesInboundHrmpMessage: { - sentAt: string; - data: string; - }; - /** - * Lookup253: cumulus_pallet_parachain_system::pallet::Error - **/ - CumulusPalletParachainSystemError: { - _enum: string[]; - }; - /** - * Lookup254: pallet_timestamp::pallet::Call - **/ - PalletTimestampCall: { - _enum: { - set: { - now: string; - }; - }; - }; - /** - * Lookup255: staging_parachain_info::pallet::Call - **/ - StagingParachainInfoCall: string; - /** - * Lookup257: pallet_balances::types::BalanceLock - **/ - PalletBalancesBalanceLock: { - id: string; - amount: string; - reasons: string; - }; - /** - * Lookup258: pallet_balances::types::Reasons - **/ - PalletBalancesReasons: { - _enum: string[]; - }; - /** - * Lookup261: pallet_balances::types::ReserveData - **/ - PalletBalancesReserveData: { - id: string; - amount: string; - }; - /** - * Lookup265: storage_hub_runtime::RuntimeHoldReason - **/ - StorageHubRuntimeRuntimeHoldReason: { - _enum: { - __Unused0: string; - __Unused1: string; - __Unused2: string; - __Unused3: string; - __Unused4: string; - __Unused5: string; - __Unused6: string; - __Unused7: string; - __Unused8: string; - __Unused9: string; - __Unused10: string; - __Unused11: string; - __Unused12: string; - __Unused13: string; - __Unused14: string; - __Unused15: string; - __Unused16: string; - __Unused17: string; - __Unused18: string; - __Unused19: string; - __Unused20: string; - __Unused21: string; - __Unused22: string; - __Unused23: string; - __Unused24: string; - __Unused25: string; - __Unused26: string; - __Unused27: string; - __Unused28: string; - __Unused29: string; - __Unused30: string; - __Unused31: string; - __Unused32: string; - __Unused33: string; - __Unused34: string; - __Unused35: string; - __Unused36: string; - __Unused37: string; - __Unused38: string; - __Unused39: string; - Providers: string; - __Unused41: string; - __Unused42: string; - __Unused43: string; - PaymentStreams: string; - }; - }; - /** - * Lookup266: pallet_storage_providers::pallet::HoldReason - **/ - PalletStorageProvidersHoldReason: { - _enum: string[]; - }; - /** - * Lookup267: pallet_payment_streams::pallet::HoldReason - **/ - PalletPaymentStreamsHoldReason: { - _enum: string[]; - }; - /** - * Lookup270: pallet_balances::types::IdAmount - **/ - PalletBalancesIdAmount: { - id: string; - amount: string; - }; - /** - * Lookup272: pallet_balances::pallet::Call - **/ - PalletBalancesCall: { - _enum: { - transfer_allow_death: { - dest: string; - value: string; - }; - __Unused1: string; - force_transfer: { - source: string; - dest: string; - value: string; - }; - transfer_keep_alive: { - dest: string; - value: string; - }; - transfer_all: { - dest: string; - keepAlive: string; - }; - force_unreserve: { - who: string; - amount: string; - }; - upgrade_accounts: { - who: string; - }; - __Unused7: string; - force_set_balance: { - who: string; - newFree: string; - }; - force_adjust_total_issuance: { - direction: string; - delta: string; - }; - burn: { - value: string; - keepAlive: string; - }; - }; - }; - /** - * Lookup275: pallet_balances::types::AdjustmentDirection - **/ - PalletBalancesAdjustmentDirection: { - _enum: string[]; - }; - /** - * Lookup276: pallet_balances::pallet::Error - **/ - PalletBalancesError: { - _enum: string[]; - }; - /** - * Lookup277: pallet_transaction_payment::Releases - **/ - PalletTransactionPaymentReleases: { - _enum: string[]; - }; - /** - * Lookup278: pallet_sudo::pallet::Call - **/ - PalletSudoCall: { - _enum: { - sudo: { - call: string; - }; - sudo_unchecked_weight: { - call: string; - weight: string; - }; - set_key: { - _alias: { - new_: string; - }; - new_: string; - }; - sudo_as: { - who: string; - call: string; - }; - remove_key: string; - }; - }; - /** - * Lookup280: pallet_collator_selection::pallet::Call - **/ - PalletCollatorSelectionCall: { - _enum: { - set_invulnerables: { - _alias: { - new_: string; - }; - new_: string; - }; - set_desired_candidates: { - max: string; - }; - set_candidacy_bond: { - bond: string; - }; - register_as_candidate: string; - leave_intent: string; - add_invulnerable: { - who: string; - }; - remove_invulnerable: { - who: string; - }; - update_bond: { - newDeposit: string; - }; - take_candidate_slot: { - deposit: string; - target: string; - }; - }; - }; - /** - * Lookup281: pallet_session::pallet::Call - **/ - PalletSessionCall: { - _enum: { - set_keys: { - _alias: { - keys_: string; - }; - keys_: string; - proof: string; - }; - purge_keys: string; - }; - }; - /** - * Lookup282: storage_hub_runtime::SessionKeys - **/ - StorageHubRuntimeSessionKeys: { - aura: string; - }; - /** - * Lookup283: sp_consensus_aura::sr25519::app_sr25519::Public - **/ - SpConsensusAuraSr25519AppSr25519Public: string; - /** -<<<<<<< HEAD - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call -======= - * Lookup284: cumulus_pallet_xcmp_queue::pallet::Call ->>>>>>> main - **/ - CumulusPalletXcmpQueueCall: { - _enum: { - __Unused0: string; - suspend_xcm_execution: string; - resume_xcm_execution: string; - update_suspend_threshold: { - _alias: { - new_: string; - }; - new_: string; - }; - update_drop_threshold: { - _alias: { - new_: string; - }; - new_: string; - }; - update_resume_threshold: { - _alias: { - new_: string; - }; - new_: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup260: pallet_xcm::pallet::Call -======= - * Lookup285: pallet_xcm::pallet::Call ->>>>>>> main - **/ - PalletXcmCall: { - _enum: { - send: { - dest: string; - message: string; - }; - teleport_assets: { - dest: string; - beneficiary: string; - assets: string; - feeAssetItem: string; - }; - reserve_transfer_assets: { - dest: string; - beneficiary: string; - assets: string; - feeAssetItem: string; - }; - execute: { - message: string; - maxWeight: string; - }; - force_xcm_version: { - location: string; - version: string; - }; - force_default_xcm_version: { - maybeXcmVersion: string; - }; - force_subscribe_version_notify: { - location: string; - }; - force_unsubscribe_version_notify: { - location: string; - }; - limited_reserve_transfer_assets: { - dest: string; - beneficiary: string; - assets: string; - feeAssetItem: string; - weightLimit: string; - }; - limited_teleport_assets: { - dest: string; - beneficiary: string; - assets: string; - feeAssetItem: string; - weightLimit: string; - }; - force_suspension: { - suspended: string; - }; - transfer_assets: { - dest: string; - beneficiary: string; - assets: string; - feeAssetItem: string; - weightLimit: string; - }; - claim_assets: { - assets: string; - beneficiary: string; - }; - transfer_assets_using_type_and_then: { - dest: string; - assets: string; - assetsTransferType: string; - remoteFeesId: string; - feesTransferType: string; - customXcmOnDest: string; - weightLimit: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup261: xcm::VersionedXcm -======= - * Lookup286: xcm::VersionedXcm ->>>>>>> main - **/ - XcmVersionedXcm: { - _enum: { - __Unused0: string; - __Unused1: string; - V2: string; - V3: string; - V4: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup262: xcm::v2::Xcm - **/ - XcmV2Xcm: string; - /** - * Lookup264: xcm::v2::Instruction -======= - * Lookup287: xcm::v2::Xcm - **/ - XcmV2Xcm: string; - /** - * Lookup289: xcm::v2::Instruction ->>>>>>> main - **/ - XcmV2Instruction: { - _enum: { - WithdrawAsset: string; - ReserveAssetDeposited: string; - ReceiveTeleportedAsset: string; - QueryResponse: { - queryId: string; - response: string; - maxWeight: string; - }; - TransferAsset: { - assets: string; - beneficiary: string; - }; - TransferReserveAsset: { - assets: string; - dest: string; - xcm: string; - }; - Transact: { - originType: string; - requireWeightAtMost: string; - call: string; - }; - HrmpNewChannelOpenRequest: { - sender: string; - maxMessageSize: string; - maxCapacity: string; - }; - HrmpChannelAccepted: { - recipient: string; - }; - HrmpChannelClosing: { - initiator: string; - sender: string; - recipient: string; - }; - ClearOrigin: string; - DescendOrigin: string; - ReportError: { - queryId: string; - dest: string; - maxResponseWeight: string; - }; - DepositAsset: { - assets: string; - maxAssets: string; - beneficiary: string; - }; - DepositReserveAsset: { - assets: string; - maxAssets: string; - dest: string; - xcm: string; - }; - ExchangeAsset: { - give: string; - receive: string; - }; - InitiateReserveWithdraw: { - assets: string; - reserve: string; - xcm: string; - }; - InitiateTeleport: { - assets: string; - dest: string; - xcm: string; - }; - QueryHolding: { - queryId: string; - dest: string; - assets: string; - maxResponseWeight: string; - }; - BuyExecution: { - fees: string; - weightLimit: string; - }; - RefundSurplus: string; - SetErrorHandler: string; - SetAppendix: string; - ClearError: string; - ClaimAsset: { - assets: string; - ticket: string; - }; - Trap: string; - SubscribeVersion: { - queryId: string; - maxResponseWeight: string; - }; - UnsubscribeVersion: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup265: xcm::v2::Response -======= - * Lookup290: xcm::v2::Response ->>>>>>> main - **/ - XcmV2Response: { - _enum: { - Null: string; - Assets: string; - ExecutionResult: string; - Version: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup268: xcm::v2::traits::Error -======= - * Lookup293: xcm::v2::traits::Error ->>>>>>> main - **/ - XcmV2TraitsError: { - _enum: { - Overflow: string; - Unimplemented: string; - UntrustedReserveLocation: string; - UntrustedTeleportLocation: string; - MultiLocationFull: string; - MultiLocationNotInvertible: string; - BadOrigin: string; - InvalidLocation: string; - AssetNotFound: string; - FailedToTransactAsset: string; - NotWithdrawable: string; - LocationCannotHold: string; - ExceedsMaxMessageSize: string; - DestinationUnsupported: string; - Transport: string; - Unroutable: string; - UnknownClaim: string; - FailedToDecode: string; - MaxWeightInvalid: string; - NotHoldingFees: string; - TooExpensive: string; - Trap: string; - UnhandledXcmVersion: string; - WeightLimitReached: string; - Barrier: string; - WeightNotComputable: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup269: xcm::v2::OriginKind - **/ - XcmV2OriginKind: { - _enum: string[]; - }; - /** - * Lookup270: xcm::v2::multiasset::MultiAssetFilter -======= - * Lookup294: xcm::v2::multiasset::MultiAssetFilter ->>>>>>> main - **/ - XcmV2MultiassetMultiAssetFilter: { - _enum: { - Definite: string; - Wild: string; - }; - }; - /** - * Lookup295: xcm::v2::multiasset::WildMultiAsset - **/ - XcmV2MultiassetWildMultiAsset: { - _enum: { - All: string; - AllOf: { - id: string; - fun: string; - }; - }; - }; - /** - * Lookup296: xcm::v2::multiasset::WildFungibility - **/ - XcmV2MultiassetWildFungibility: { - _enum: string[]; - }; - /** - * Lookup297: xcm::v2::WeightLimit - **/ - XcmV2WeightLimit: { - _enum: { - Unlimited: string; - Limited: string; - }; - }; - /** - * Lookup298: xcm::v3::Xcm - **/ - XcmV3Xcm: string; - /** - * Lookup300: xcm::v3::Instruction - **/ - XcmV3Instruction: { - _enum: { - WithdrawAsset: string; - ReserveAssetDeposited: string; - ReceiveTeleportedAsset: string; - QueryResponse: { - queryId: string; - response: string; - maxWeight: string; - querier: string; - }; - TransferAsset: { - assets: string; - beneficiary: string; - }; - TransferReserveAsset: { - assets: string; - dest: string; - xcm: string; - }; - Transact: { - originKind: string; - requireWeightAtMost: string; - call: string; - }; - HrmpNewChannelOpenRequest: { - sender: string; - maxMessageSize: string; - maxCapacity: string; - }; - HrmpChannelAccepted: { - recipient: string; - }; - HrmpChannelClosing: { - initiator: string; - sender: string; - recipient: string; - }; - ClearOrigin: string; - DescendOrigin: string; - ReportError: string; - DepositAsset: { - assets: string; - beneficiary: string; - }; - DepositReserveAsset: { - assets: string; - dest: string; - xcm: string; - }; - ExchangeAsset: { - give: string; - want: string; - maximal: string; - }; - InitiateReserveWithdraw: { - assets: string; - reserve: string; - xcm: string; - }; - InitiateTeleport: { - assets: string; - dest: string; - xcm: string; - }; - ReportHolding: { - responseInfo: string; - assets: string; - }; - BuyExecution: { - fees: string; - weightLimit: string; - }; - RefundSurplus: string; - SetErrorHandler: string; - SetAppendix: string; - ClearError: string; - ClaimAsset: { - assets: string; - ticket: string; - }; - Trap: string; - SubscribeVersion: { - queryId: string; - maxResponseWeight: string; - }; - UnsubscribeVersion: string; - BurnAsset: string; - ExpectAsset: string; - ExpectOrigin: string; - ExpectError: string; - ExpectTransactStatus: string; - QueryPallet: { - moduleName: string; - responseInfo: string; - }; - ExpectPallet: { - index: string; - name: string; - moduleName: string; - crateMajor: string; - minCrateMinor: string; - }; - ReportTransactStatus: string; - ClearTransactStatus: string; - UniversalOrigin: string; - ExportMessage: { - network: string; - destination: string; - xcm: string; - }; - LockAsset: { - asset: string; - unlocker: string; - }; - UnlockAsset: { - asset: string; - target: string; - }; - NoteUnlockable: { - asset: string; - owner: string; - }; - RequestUnlock: { - asset: string; - locker: string; - }; - SetFeesMode: { - jitWithdraw: string; - }; - SetTopic: string; - ClearTopic: string; - AliasOrigin: string; - UnpaidExecution: { - weightLimit: string; - checkOrigin: string; - }; - }; - }; - /** - * Lookup301: xcm::v3::Response - **/ - XcmV3Response: { - _enum: { - Null: string; - Assets: string; - ExecutionResult: string; - Version: string; - PalletsInfo: string; - DispatchResult: string; - }; - }; - /** - * Lookup303: xcm::v3::PalletInfo - **/ - XcmV3PalletInfo: { - index: string; - name: string; - moduleName: string; - major: string; - minor: string; - patch: string; - }; - /** - * Lookup307: xcm::v3::QueryResponseInfo - **/ - XcmV3QueryResponseInfo: { - destination: string; - queryId: string; - maxWeight: string; - }; - /** - * Lookup308: xcm::v3::multiasset::MultiAssetFilter - **/ - XcmV3MultiassetMultiAssetFilter: { - _enum: { - Definite: string; - Wild: string; - }; - }; - /** - * Lookup309: xcm::v3::multiasset::WildMultiAsset - **/ - XcmV3MultiassetWildMultiAsset: { - _enum: { - All: string; - AllOf: { - id: string; - fun: string; - }; - AllCounted: string; - AllOfCounted: { - id: string; - fun: string; - count: string; - }; - }; - }; - /** - * Lookup310: xcm::v3::multiasset::WildFungibility - **/ - XcmV3MultiassetWildFungibility: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup298: staging_xcm_executor::traits::asset_transfer::TransferType -======= - * Lookup322: staging_xcm_executor::traits::asset_transfer::TransferType ->>>>>>> main - **/ - StagingXcmExecutorAssetTransferTransferType: { - _enum: { - Teleport: string; - LocalReserve: string; - DestinationReserve: string; - RemoteReserve: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup299: xcm::VersionedAssetId -======= - * Lookup323: xcm::VersionedAssetId ->>>>>>> main - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: string; - __Unused1: string; - __Unused2: string; - V3: string; - V4: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup300: cumulus_pallet_xcm::pallet::Call - **/ - CumulusPalletXcmCall: string; - /** - * Lookup301: pallet_message_queue::pallet::Call -======= - * Lookup324: cumulus_pallet_xcm::pallet::Call - **/ - CumulusPalletXcmCall: string; - /** - * Lookup325: pallet_message_queue::pallet::Call ->>>>>>> main - **/ - PalletMessageQueueCall: { - _enum: { - reap_page: { - messageOrigin: string; - pageIndex: string; - }; - execute_overweight: { - messageOrigin: string; - page: string; - index: string; - weightLimit: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup302: pallet_storage_providers::pallet::Call -======= - * Lookup326: pallet_storage_providers::pallet::Call ->>>>>>> main - **/ - PalletStorageProvidersCall: { - _enum: { - request_msp_sign_up: { - capacity: string; - multiaddresses: string; - valueProp: string; - paymentAccount: string; - }; - request_bsp_sign_up: { - capacity: string; - multiaddresses: string; - paymentAccount: string; - }; - confirm_sign_up: { - providerAccount: string; - }; - cancel_sign_up: string; - msp_sign_off: string; - bsp_sign_off: string; - change_capacity: { - newCapacity: string; - }; - add_value_prop: { - newValueProp: string; - }; - force_msp_sign_up: { - who: string; - mspId: string; - capacity: string; - multiaddresses: string; - valueProp: string; - paymentAccount: string; - }; - force_bsp_sign_up: { - who: string; - bspId: string; - capacity: string; - multiaddresses: string; - paymentAccount: string; - weight: string; - }; - slash: { - providerId: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup303: pallet_file_system::pallet::Call -======= - * Lookup327: pallet_file_system::pallet::Call ->>>>>>> main - **/ - PalletFileSystemCall: { - _enum: { - create_bucket: { - mspId: string; - name: string; - private: string; - }; - request_move_bucket: { - bucketId: string; - newMspId: string; - }; - msp_respond_move_bucket_request: { - bucketId: string; - response: string; - }; - update_bucket_privacy: { - bucketId: string; - private: string; - }; - create_and_associate_collection_with_bucket: { - bucketId: string; - }; - issue_storage_request: { - _alias: { - size_: string; - }; - bucketId: string; - location: string; - fingerprint: string; - size_: string; - mspId: string; - peerIds: string; - }; - revoke_storage_request: { - fileKey: string; - }; - bsp_add_data_server_for_move_bucket_request: { - bucketId: string; - }; - msp_respond_storage_requests_multiple_buckets: { - fileKeyResponsesInput: string; - }; - bsp_volunteer: { - fileKey: string; - }; - bsp_confirm_storing: { - nonInclusionForestProof: string; - fileKeysAndProofs: string; - }; - bsp_request_stop_storing: { - _alias: { - size_: string; - }; - fileKey: string; - bucketId: string; - location: string; - owner: string; - fingerprint: string; - size_: string; - canServe: string; - inclusionForestProof: string; - }; - bsp_confirm_stop_storing: { - fileKey: string; - inclusionForestProof: string; - }; - stop_storing_for_insolvent_user: { - _alias: { - size_: string; - }; - fileKey: string; - bucketId: string; - location: string; - owner: string; - fingerprint: string; - size_: string; - inclusionForestProof: string; - }; - delete_file: { - _alias: { - size_: string; - }; - bucketId: string; - fileKey: string; - location: string; - size_: string; - fingerprint: string; - maybeInclusionForestProof: string; - }; - pending_file_deletion_request_submit_proof: { - user: string; - fileKey: string; - bucketId: string; - forestProof: string; - }; - set_global_parameters: { - replicationTarget: string; - tickRangeToMaximumThreshold: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup304: pallet_file_system::types::BucketMoveRequestResponse -======= - * Lookup328: pallet_file_system::types::BucketMoveRequestResponse ->>>>>>> main - **/ - PalletFileSystemBucketMoveRequestResponse: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup309: pallet_proofs_dealer::pallet::Call -======= - * Lookup331: pallet_file_system::types::MspStorageRequestResponse - **/ - PalletFileSystemMspStorageRequestResponse: { - accept: string; - reject: string; - }; - /** - * Lookup333: pallet_file_system::types::AcceptedStorageRequestParameters - **/ - PalletFileSystemAcceptedStorageRequestParameters: { - fileKeysAndProofs: string; - nonInclusionForestProof: string; - }; - /** - * Lookup340: pallet_proofs_dealer::pallet::Call ->>>>>>> main - **/ - PalletProofsDealerCall: { - _enum: { - challenge: { - key: string; - }; - submit_proof: { - proof: string; - provider: string; - }; - force_initialise_challenge_cycle: { - provider: string; - }; - set_paused: { - paused: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup310: pallet_randomness::pallet::Call -======= - * Lookup341: pallet_randomness::pallet::Call ->>>>>>> main - **/ - PalletRandomnessCall: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup311: pallet_payment_streams::pallet::Call -======= - * Lookup342: pallet_payment_streams::pallet::Call ->>>>>>> main - **/ - PalletPaymentStreamsCall: { - _enum: { - create_fixed_rate_payment_stream: { - providerId: string; - userAccount: string; - rate: string; - }; - update_fixed_rate_payment_stream: { - providerId: string; - userAccount: string; - newRate: string; - }; - delete_fixed_rate_payment_stream: { - providerId: string; - userAccount: string; - }; - create_dynamic_rate_payment_stream: { - providerId: string; - userAccount: string; - amountProvided: string; - }; - update_dynamic_rate_payment_stream: { - providerId: string; - userAccount: string; - newAmountProvided: string; - }; - delete_dynamic_rate_payment_stream: { - providerId: string; - userAccount: string; - }; - charge_payment_streams: { - userAccount: string; - }; - pay_outstanding_debt: string; - clear_insolvent_flag: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup312: pallet_bucket_nfts::pallet::Call -======= - * Lookup343: pallet_bucket_nfts::pallet::Call ->>>>>>> main - **/ - PalletBucketNftsCall: { - _enum: { - share_access: { - recipient: string; - bucket: string; - itemId: string; - readAccessRegex: string; - }; - update_read_access: { - bucket: string; - itemId: string; - readAccessRegex: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup314: pallet_nfts::pallet::Call -======= - * Lookup345: pallet_nfts::pallet::Call ->>>>>>> main - **/ - PalletNftsCall: { - _enum: { - create: { - admin: string; - config: string; - }; - force_create: { - owner: string; - config: string; - }; - destroy: { - collection: string; - witness: string; - }; - mint: { - collection: string; - item: string; - mintTo: string; - witnessData: string; - }; - force_mint: { - collection: string; - item: string; - mintTo: string; - itemConfig: string; - }; - burn: { - collection: string; - item: string; - }; - transfer: { - collection: string; - item: string; - dest: string; - }; - redeposit: { - collection: string; - items: string; - }; - lock_item_transfer: { - collection: string; - item: string; - }; - unlock_item_transfer: { - collection: string; - item: string; - }; - lock_collection: { - collection: string; - lockSettings: string; - }; - transfer_ownership: { - collection: string; - newOwner: string; - }; - set_team: { - collection: string; - issuer: string; - admin: string; - freezer: string; - }; - force_collection_owner: { - collection: string; - owner: string; - }; - force_collection_config: { - collection: string; - config: string; - }; - approve_transfer: { - collection: string; - item: string; - delegate: string; - maybeDeadline: string; - }; - cancel_approval: { - collection: string; - item: string; - delegate: string; - }; - clear_all_transfer_approvals: { - collection: string; - item: string; - }; - lock_item_properties: { - collection: string; - item: string; - lockMetadata: string; - lockAttributes: string; - }; - set_attribute: { - collection: string; - maybeItem: string; - namespace: string; - key: string; - value: string; - }; - force_set_attribute: { - setAs: string; - collection: string; - maybeItem: string; - namespace: string; - key: string; - value: string; - }; - clear_attribute: { - collection: string; - maybeItem: string; - namespace: string; - key: string; - }; - approve_item_attributes: { - collection: string; - item: string; - delegate: string; - }; - cancel_item_attributes_approval: { - collection: string; - item: string; - delegate: string; - witness: string; - }; - set_metadata: { - collection: string; - item: string; - data: string; - }; - clear_metadata: { - collection: string; - item: string; - }; - set_collection_metadata: { - collection: string; - data: string; - }; - clear_collection_metadata: { - collection: string; - }; - set_accept_ownership: { - maybeCollection: string; - }; - set_collection_max_supply: { - collection: string; - maxSupply: string; - }; - update_mint_settings: { - collection: string; - mintSettings: string; - }; - set_price: { - collection: string; - item: string; - price: string; - whitelistedBuyer: string; - }; - buy_item: { - collection: string; - item: string; - bidPrice: string; - }; - pay_tips: { - tips: string; - }; - create_swap: { - offeredCollection: string; - offeredItem: string; - desiredCollection: string; - maybeDesiredItem: string; - maybePrice: string; - duration: string; - }; - cancel_swap: { - offeredCollection: string; - offeredItem: string; - }; - claim_swap: { - sendCollection: string; - sendItem: string; - receiveCollection: string; - receiveItem: string; - witnessPrice: string; - }; - mint_pre_signed: { - mintData: string; - signature: string; - signer: string; - }; - set_attributes_pre_signed: { - data: string; - signature: string; - signer: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup315: pallet_nfts::types::CollectionConfig -======= - * Lookup346: pallet_nfts::types::CollectionConfig ->>>>>>> main - **/ - PalletNftsCollectionConfig: { - settings: string; - maxSupply: string; - mintSettings: string; - }; - /** -<<<<<<< HEAD - * Lookup317: pallet_nfts::types::CollectionSetting -======= - * Lookup348: pallet_nfts::types::CollectionSetting ->>>>>>> main - **/ - PalletNftsCollectionSetting: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup318: pallet_nfts::types::MintSettings -======= - * Lookup349: pallet_nfts::types::MintSettings ->>>>>>> main - **/ - PalletNftsMintSettings: { - mintType: string; - price: string; - startBlock: string; - endBlock: string; - defaultItemSettings: string; - }; - /** -<<<<<<< HEAD - * Lookup319: pallet_nfts::types::MintType -======= - * Lookup350: pallet_nfts::types::MintType ->>>>>>> main - **/ - PalletNftsMintType: { - _enum: { - Issuer: string; - Public: string; - HolderOf: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup322: pallet_nfts::types::ItemSetting -======= - * Lookup353: pallet_nfts::types::ItemSetting ->>>>>>> main - **/ - PalletNftsItemSetting: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup323: pallet_nfts::types::DestroyWitness -======= - * Lookup354: pallet_nfts::types::DestroyWitness ->>>>>>> main - **/ - PalletNftsDestroyWitness: { - itemMetadatas: string; - itemConfigs: string; - attributes: string; - }; - /** -<<<<<<< HEAD - * Lookup325: pallet_nfts::types::MintWitness -======= - * Lookup356: pallet_nfts::types::MintWitness ->>>>>>> main - **/ - PalletNftsMintWitness: { - ownedItem: string; - mintPrice: string; - }; - /** -<<<<<<< HEAD - * Lookup326: pallet_nfts::types::ItemConfig -======= - * Lookup357: pallet_nfts::types::ItemConfig ->>>>>>> main - **/ - PalletNftsItemConfig: { - settings: string; - }; - /** -<<<<<<< HEAD - * Lookup328: pallet_nfts::types::CancelAttributesApprovalWitness -======= - * Lookup359: pallet_nfts::types::CancelAttributesApprovalWitness ->>>>>>> main - **/ - PalletNftsCancelAttributesApprovalWitness: { - accountAttributes: string; - }; - /** -<<<<<<< HEAD - * Lookup330: pallet_nfts::types::ItemTip -======= - * Lookup361: pallet_nfts::types::ItemTip ->>>>>>> main - **/ - PalletNftsItemTip: { - collection: string; - item: string; - receiver: string; - amount: string; - }; - /** -<<<<<<< HEAD - * Lookup332: pallet_nfts::types::PreSignedMint -======= - * Lookup363: pallet_nfts::types::PreSignedMint ->>>>>>> main - **/ - PalletNftsPreSignedMint: { - collection: string; - item: string; - attributes: string; - metadata: string; - onlyAccount: string; - deadline: string; - mintPrice: string; - }; - /** -<<<<<<< HEAD - * Lookup333: sp_runtime::MultiSignature -======= - * Lookup364: sp_runtime::MultiSignature ->>>>>>> main - **/ - SpRuntimeMultiSignature: { - _enum: { - Ed25519: string; - Sr25519: string; - Ecdsa: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup336: pallet_nfts::types::PreSignedAttributes -======= - * Lookup367: pallet_nfts::types::PreSignedAttributes ->>>>>>> main - **/ - PalletNftsPreSignedAttributes: { - collection: string; - item: string; - attributes: string; - namespace: string; - deadline: string; - }; - /** -<<<<<<< HEAD - * Lookup337: pallet_sudo::pallet::Error -======= - * Lookup368: pallet_parameters::pallet::Call - **/ - PalletParametersCall: { - _enum: { - set_parameter: { - keyValue: string; - }; - }; - }; - /** - * Lookup369: storage_hub_runtime::configs::runtime_params::RuntimeParameters - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { - _enum: { - RuntimeConfig: string; - }; - }; - /** - * Lookup370: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { - _enum: { - SlashAmountPerMaxFileSize: string; - StakeToChallengePeriod: string; - CheckpointChallengePeriod: string; - MinChallengePeriod: string; - }; - }; - /** - * Lookup371: pallet_sudo::pallet::Error ->>>>>>> main - **/ - PalletSudoError: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup340: pallet_collator_selection::pallet::CandidateInfo -======= - * Lookup374: pallet_collator_selection::pallet::CandidateInfo ->>>>>>> main - **/ - PalletCollatorSelectionCandidateInfo: { - who: string; - deposit: string; - }; - /** -<<<<<<< HEAD - * Lookup342: pallet_collator_selection::pallet::Error -======= - * Lookup376: pallet_collator_selection::pallet::Error ->>>>>>> main - **/ - PalletCollatorSelectionError: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup346: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: string; - /** - * Lookup347: pallet_session::pallet::Error -======= - * Lookup380: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: string; - /** - * Lookup381: pallet_session::pallet::Error ->>>>>>> main - **/ - PalletSessionError: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails -======= - * Lookup390: cumulus_pallet_xcmp_queue::OutboundChannelDetails ->>>>>>> main - **/ - CumulusPalletXcmpQueueOutboundChannelDetails: { - recipient: string; - state: string; - signalsExist: string; - firstIndex: string; - lastIndex: string; - }; - /** -<<<<<<< HEAD - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState -======= - * Lookup391: cumulus_pallet_xcmp_queue::OutboundState ->>>>>>> main - **/ - CumulusPalletXcmpQueueOutboundState: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup361: cumulus_pallet_xcmp_queue::QueueConfigData -======= - * Lookup393: cumulus_pallet_xcmp_queue::QueueConfigData ->>>>>>> main - **/ - CumulusPalletXcmpQueueQueueConfigData: { - suspendThreshold: string; - dropThreshold: string; - resumeThreshold: string; - }; - /** -<<<<<<< HEAD - * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error -======= - * Lookup394: cumulus_pallet_xcmp_queue::pallet::Error ->>>>>>> main - **/ - CumulusPalletXcmpQueueError: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup363: pallet_xcm::pallet::QueryStatus -======= - * Lookup395: pallet_xcm::pallet::QueryStatus ->>>>>>> main - **/ - PalletXcmQueryStatus: { - _enum: { - Pending: { - responder: string; - maybeMatchQuerier: string; - maybeNotify: string; - timeout: string; - }; - VersionNotifier: { - origin: string; - isActive: string; - }; - Ready: { - response: string; - at: string; - }; - }; - }; - /** -<<<<<<< HEAD - * Lookup367: xcm::VersionedResponse -======= - * Lookup399: xcm::VersionedResponse ->>>>>>> main - **/ - XcmVersionedResponse: { - _enum: { - __Unused0: string; - __Unused1: string; - V2: string; - V3: string; - V4: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup373: pallet_xcm::pallet::VersionMigrationStage -======= - * Lookup405: pallet_xcm::pallet::VersionMigrationStage ->>>>>>> main - **/ - PalletXcmVersionMigrationStage: { - _enum: { - MigrateSupportedVersion: string; - MigrateVersionNotifiers: string; - NotifyCurrentTargets: string; - MigrateAndNotifyOldTargets: string; - }; - }; - /** -<<<<<<< HEAD - * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord -======= - * Lookup408: pallet_xcm::pallet::RemoteLockedFungibleRecord ->>>>>>> main - **/ - PalletXcmRemoteLockedFungibleRecord: { - amount: string; - owner: string; - locker: string; - consumers: string; - }; - /** - * Lookup415: pallet_xcm::pallet::Error - **/ - PalletXcmError: { - _enum: string[]; - }; - /** - * Lookup416: pallet_message_queue::BookState - **/ - PalletMessageQueueBookState: { - _alias: { - size_: string; - }; - begin: string; - end: string; - count: string; - readyNeighbours: string; - messageCount: string; - size_: string; - }; - /** - * Lookup418: pallet_message_queue::Neighbours - **/ - PalletMessageQueueNeighbours: { - prev: string; - next: string; - }; - /** - * Lookup420: pallet_message_queue::Page - **/ - PalletMessageQueuePage: { - remaining: string; - remainingSize: string; - firstIndex: string; - first: string; - last: string; - heap: string; - }; - /** - * Lookup422: pallet_message_queue::pallet::Error - **/ - PalletMessageQueueError: { - _enum: string[]; - }; - /** - * Lookup424: pallet_storage_providers::types::StorageProvider - **/ - PalletStorageProvidersStorageProvider: { - _enum: { - BackupStorageProvider: string; - MainStorageProvider: string; - }; - }; - /** - * Lookup425: pallet_storage_providers::types::BackupStorageProvider - **/ - PalletStorageProvidersBackupStorageProvider: { - capacity: string; - capacityUsed: string; - multiaddresses: string; - root: string; - lastCapacityChange: string; - ownerAccount: string; - paymentAccount: string; - reputationWeight: string; - }; - /** - * Lookup426: pallet_storage_providers::types::MainStorageProvider - **/ - PalletStorageProvidersMainStorageProvider: { - buckets: string; - capacity: string; - capacityUsed: string; - multiaddresses: string; - valueProp: string; - lastCapacityChange: string; - ownerAccount: string; - paymentAccount: string; - }; - /** - * Lookup428: pallet_storage_providers::types::Bucket - **/ - PalletStorageProvidersBucket: { - _alias: { - size_: string; - }; - root: string; - userId: string; - mspId: string; - private: string; - readAccessGroupId: string; - size_: string; - }; - /** - * Lookup431: pallet_storage_providers::pallet::Error - **/ - PalletStorageProvidersError: { - _enum: string[]; - }; - /** - * Lookup432: pallet_file_system::types::StorageRequestMetadata - **/ - PalletFileSystemStorageRequestMetadata: { - _alias: { - size_: string; - }; - requestedAt: string; - owner: string; - bucketId: string; - location: string; - fingerprint: string; - size_: string; - msp: string; - userPeerIds: string; - dataServerSps: string; - bspsRequired: string; - bspsConfirmed: string; - bspsVolunteered: string; - }; - /** - * Lookup437: pallet_file_system::types::StorageRequestBspsMetadata - **/ - PalletFileSystemStorageRequestBspsMetadata: { - confirmed: string; - }; - /** - * Lookup446: pallet_file_system::types::MoveBucketRequestMetadata - **/ - PalletFileSystemMoveBucketRequestMetadata: { - requester: string; - }; - /** - * Lookup447: pallet_file_system::pallet::Error - **/ - PalletFileSystemError: { - _enum: string[]; - }; - /** - * Lookup454: pallet_proofs_dealer::pallet::Error - **/ - PalletProofsDealerError: { - _enum: string[]; - }; - /** - * Lookup457: pallet_payment_streams::types::FixedRatePaymentStream - **/ - PalletPaymentStreamsFixedRatePaymentStream: { - rate: string; - lastChargedTick: string; - userDeposit: string; - outOfFundsTick: string; - }; - /** - * Lookup458: pallet_payment_streams::types::DynamicRatePaymentStream - **/ - PalletPaymentStreamsDynamicRatePaymentStream: { - amountProvided: string; - priceIndexWhenLastCharged: string; - userDeposit: string; - outOfFundsTick: string; - }; - /** - * Lookup459: pallet_payment_streams::types::ProviderLastChargeableInfo - **/ - PalletPaymentStreamsProviderLastChargeableInfo: { - lastChargeableTick: string; - priceIndex: string; - }; - /** - * Lookup460: pallet_payment_streams::pallet::Error - **/ - PalletPaymentStreamsError: { - _enum: string[]; - }; - /** - * Lookup461: pallet_bucket_nfts::pallet::Error - **/ - PalletBucketNftsError: { - _enum: string[]; - }; - /** - * Lookup462: pallet_nfts::types::CollectionDetails - **/ - PalletNftsCollectionDetails: { - owner: string; - ownerDeposit: string; - items: string; - itemMetadatas: string; - itemConfigs: string; - attributes: string; - }; - /** - * Lookup467: pallet_nfts::types::CollectionRole - **/ - PalletNftsCollectionRole: { - _enum: string[]; - }; - /** - * Lookup468: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> - **/ - PalletNftsItemDetails: { - owner: string; - approvals: string; - deposit: string; - }; - /** - * Lookup469: pallet_nfts::types::ItemDeposit - **/ - PalletNftsItemDeposit: { - account: string; - amount: string; - }; - /** - * Lookup474: pallet_nfts::types::CollectionMetadata - **/ - PalletNftsCollectionMetadata: { - deposit: string; - data: string; - }; - /** - * Lookup475: pallet_nfts::types::ItemMetadata, StringLimit> - **/ - PalletNftsItemMetadata: { - deposit: string; - data: string; - }; - /** - * Lookup476: pallet_nfts::types::ItemMetadataDeposit - **/ - PalletNftsItemMetadataDeposit: { - account: string; - amount: string; - }; - /** - * Lookup479: pallet_nfts::types::AttributeDeposit - **/ - PalletNftsAttributeDeposit: { - account: string; - amount: string; - }; - /** - * Lookup483: pallet_nfts::types::PendingSwap, Deadline> - **/ - PalletNftsPendingSwap: { - desiredCollection: string; - desiredItem: string; - price: string; - deadline: string; - }; - /** - * Lookup485: pallet_nfts::types::PalletFeature - **/ - PalletNftsPalletFeature: { - _enum: string[]; - }; - /** - * Lookup486: pallet_nfts::pallet::Error - **/ - PalletNftsError: { - _enum: string[]; - }; - /** - * Lookup489: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender - **/ - FrameSystemExtensionsCheckNonZeroSender: string; - /** - * Lookup490: frame_system::extensions::check_spec_version::CheckSpecVersion - **/ - FrameSystemExtensionsCheckSpecVersion: string; - /** - * Lookup491: frame_system::extensions::check_tx_version::CheckTxVersion - **/ - FrameSystemExtensionsCheckTxVersion: string; - /** - * Lookup492: frame_system::extensions::check_genesis::CheckGenesis - **/ - FrameSystemExtensionsCheckGenesis: string; - /** - * Lookup495: frame_system::extensions::check_nonce::CheckNonce - **/ - FrameSystemExtensionsCheckNonce: string; - /** - * Lookup496: frame_system::extensions::check_weight::CheckWeight - **/ - FrameSystemExtensionsCheckWeight: string; - /** - * Lookup497: pallet_transaction_payment::ChargeTransactionPayment - **/ - PalletTransactionPaymentChargeTransactionPayment: string; - /** - * Lookup498: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim - **/ - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; - /** -<<<<<<< HEAD - * Lookup467: frame_metadata_hash_extension::CheckMetadataHash -======= - * Lookup499: frame_metadata_hash_extension::CheckMetadataHash ->>>>>>> main - **/ - FrameMetadataHashExtensionCheckMetadataHash: { - mode: string; - }; - /** -<<<<<<< HEAD - * Lookup468: frame_metadata_hash_extension::Mode -======= - * Lookup500: frame_metadata_hash_extension::Mode ->>>>>>> main - **/ - FrameMetadataHashExtensionMode: { - _enum: string[]; - }; - /** -<<<<<<< HEAD - * Lookup469: storage_hub_runtime::Runtime -======= - * Lookup501: storage_hub_runtime::Runtime ->>>>>>> main - **/ - StorageHubRuntimeRuntime: string; -}; -export default _default; +declare const _default: { + /** + * Lookup3: frame_system::AccountInfo> + **/ + FrameSystemAccountInfo: { + nonce: string; + consumers: string; + providers: string; + sufficients: string; + data: string; + }; + /** + * Lookup5: pallet_balances::types::AccountData + **/ + PalletBalancesAccountData: { + free: string; + reserved: string; + frozen: string; + flags: string; + }; + /** + * Lookup9: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeight: { + normal: string; + operational: string; + mandatory: string; + }; + /** + * Lookup10: sp_weights::weight_v2::Weight + **/ + SpWeightsWeightV2Weight: { + refTime: string; + proofSize: string; + }; + /** + * Lookup15: sp_runtime::generic::digest::Digest + **/ + SpRuntimeDigest: { + logs: string; + }; + /** + * Lookup17: sp_runtime::generic::digest::DigestItem + **/ + SpRuntimeDigestDigestItem: { + _enum: { + Other: string; + __Unused1: string; + __Unused2: string; + __Unused3: string; + Consensus: string; + Seal: string; + PreRuntime: string; + __Unused7: string; + RuntimeEnvironmentUpdated: string; + }; + }; + /** + * Lookup20: frame_system::EventRecord + **/ + FrameSystemEventRecord: { + phase: string; + event: string; + topics: string; + }; + /** + * Lookup22: frame_system::pallet::Event + **/ + FrameSystemEvent: { + _enum: { + ExtrinsicSuccess: { + dispatchInfo: string; + }; + ExtrinsicFailed: { + dispatchError: string; + dispatchInfo: string; + }; + CodeUpdated: string; + NewAccount: { + account: string; + }; + KilledAccount: { + account: string; + }; + Remarked: { + _alias: { + hash_: string; + }; + sender: string; + hash_: string; + }; + UpgradeAuthorized: { + codeHash: string; + checkVersion: string; + }; + }; + }; + /** + * Lookup23: frame_support::dispatch::DispatchInfo + **/ + FrameSupportDispatchDispatchInfo: { + weight: string; + class: string; + paysFee: string; + }; + /** + * Lookup24: frame_support::dispatch::DispatchClass + **/ + FrameSupportDispatchDispatchClass: { + _enum: string[]; + }; + /** + * Lookup25: frame_support::dispatch::Pays + **/ + FrameSupportDispatchPays: { + _enum: string[]; + }; + /** + * Lookup26: sp_runtime::DispatchError + **/ + SpRuntimeDispatchError: { + _enum: { + Other: string; + CannotLookup: string; + BadOrigin: string; + Module: string; + ConsumerRemaining: string; + NoProviders: string; + TooManyConsumers: string; + Token: string; + Arithmetic: string; + Transactional: string; + Exhausted: string; + Corruption: string; + Unavailable: string; + RootNotAllowed: string; + }; + }; + /** + * Lookup27: sp_runtime::ModuleError + **/ + SpRuntimeModuleError: { + index: string; + error: string; + }; + /** + * Lookup28: sp_runtime::TokenError + **/ + SpRuntimeTokenError: { + _enum: string[]; + }; + /** + * Lookup29: sp_arithmetic::ArithmeticError + **/ + SpArithmeticArithmeticError: { + _enum: string[]; + }; + /** + * Lookup30: sp_runtime::TransactionalError + **/ + SpRuntimeTransactionalError: { + _enum: string[]; + }; + /** + * Lookup31: cumulus_pallet_parachain_system::pallet::Event + **/ + CumulusPalletParachainSystemEvent: { + _enum: { + ValidationFunctionStored: string; + ValidationFunctionApplied: { + relayChainBlockNum: string; + }; + ValidationFunctionDiscarded: string; + DownwardMessagesReceived: { + count: string; + }; + DownwardMessagesProcessed: { + weightUsed: string; + dmqHead: string; + }; + UpwardMessageSent: { + messageHash: string; + }; + }; + }; + /** + * Lookup33: pallet_balances::pallet::Event + **/ + PalletBalancesEvent: { + _enum: { + Endowed: { + account: string; + freeBalance: string; + }; + DustLost: { + account: string; + amount: string; + }; + Transfer: { + from: string; + to: string; + amount: string; + }; + BalanceSet: { + who: string; + free: string; + }; + Reserved: { + who: string; + amount: string; + }; + Unreserved: { + who: string; + amount: string; + }; + ReserveRepatriated: { + from: string; + to: string; + amount: string; + destinationStatus: string; + }; + Deposit: { + who: string; + amount: string; + }; + Withdraw: { + who: string; + amount: string; + }; + Slashed: { + who: string; + amount: string; + }; + Minted: { + who: string; + amount: string; + }; + Burned: { + who: string; + amount: string; + }; + Suspended: { + who: string; + amount: string; + }; + Restored: { + who: string; + amount: string; + }; + Upgraded: { + who: string; + }; + Issued: { + amount: string; + }; + Rescinded: { + amount: string; + }; + Locked: { + who: string; + amount: string; + }; + Unlocked: { + who: string; + amount: string; + }; + Frozen: { + who: string; + amount: string; + }; + Thawed: { + who: string; + amount: string; + }; + TotalIssuanceForced: { + _alias: { + new_: string; + }; + old: string; + new_: string; + }; + }; + }; + /** + * Lookup34: frame_support::traits::tokens::misc::BalanceStatus + **/ + FrameSupportTokensMiscBalanceStatus: { + _enum: string[]; + }; + /** + * Lookup35: pallet_transaction_payment::pallet::Event + **/ + PalletTransactionPaymentEvent: { + _enum: { + TransactionFeePaid: { + who: string; + actualFee: string; + tip: string; + }; + }; + }; + /** + * Lookup36: pallet_sudo::pallet::Event + **/ + PalletSudoEvent: { + _enum: { + Sudid: { + sudoResult: string; + }; + KeyChanged: { + _alias: { + new_: string; + }; + old: string; + new_: string; + }; + KeyRemoved: string; + SudoAsDone: { + sudoResult: string; + }; + }; + }; + /** + * Lookup40: pallet_collator_selection::pallet::Event + **/ + PalletCollatorSelectionEvent: { + _enum: { + NewInvulnerables: { + invulnerables: string; + }; + InvulnerableAdded: { + accountId: string; + }; + InvulnerableRemoved: { + accountId: string; + }; + NewDesiredCandidates: { + desiredCandidates: string; + }; + NewCandidacyBond: { + bondAmount: string; + }; + CandidateAdded: { + accountId: string; + deposit: string; + }; + CandidateBondUpdated: { + accountId: string; + deposit: string; + }; + CandidateRemoved: { + accountId: string; + }; + CandidateReplaced: { + _alias: { + new_: string; + }; + old: string; + new_: string; + deposit: string; + }; + InvalidInvulnerableSkipped: { + accountId: string; + }; + }; + }; + /** + * Lookup42: pallet_session::pallet::Event + **/ + PalletSessionEvent: { + _enum: { + NewSession: { + sessionIndex: string; + }; + }; + }; + /** + * Lookup43: cumulus_pallet_xcmp_queue::pallet::Event + **/ + CumulusPalletXcmpQueueEvent: { + _enum: { + XcmpMessageSent: { + messageHash: string; + }; + }; + }; + /** + * Lookup44: pallet_xcm::pallet::Event + **/ + PalletXcmEvent: { + _enum: { + Attempted: { + outcome: string; + }; + Sent: { + origin: string; + destination: string; + message: string; + messageId: string; + }; + UnexpectedResponse: { + origin: string; + queryId: string; + }; + ResponseReady: { + queryId: string; + response: string; + }; + Notified: { + queryId: string; + palletIndex: string; + callIndex: string; + }; + NotifyOverweight: { + queryId: string; + palletIndex: string; + callIndex: string; + actualWeight: string; + maxBudgetedWeight: string; + }; + NotifyDispatchError: { + queryId: string; + palletIndex: string; + callIndex: string; + }; + NotifyDecodeFailed: { + queryId: string; + palletIndex: string; + callIndex: string; + }; + InvalidResponder: { + origin: string; + queryId: string; + expectedLocation: string; + }; + InvalidResponderVersion: { + origin: string; + queryId: string; + }; + ResponseTaken: { + queryId: string; + }; + AssetsTrapped: { + _alias: { + hash_: string; + }; + hash_: string; + origin: string; + assets: string; + }; + VersionChangeNotified: { + destination: string; + result: string; + cost: string; + messageId: string; + }; + SupportedVersionChanged: { + location: string; + version: string; + }; + NotifyTargetSendFail: { + location: string; + queryId: string; + error: string; + }; + NotifyTargetMigrationFail: { + location: string; + queryId: string; + }; + InvalidQuerierVersion: { + origin: string; + queryId: string; + }; + InvalidQuerier: { + origin: string; + queryId: string; + expectedQuerier: string; + maybeActualQuerier: string; + }; + VersionNotifyStarted: { + destination: string; + cost: string; + messageId: string; + }; + VersionNotifyRequested: { + destination: string; + cost: string; + messageId: string; + }; + VersionNotifyUnrequested: { + destination: string; + cost: string; + messageId: string; + }; + FeesPaid: { + paying: string; + fees: string; + }; + AssetsClaimed: { + _alias: { + hash_: string; + }; + hash_: string; + origin: string; + assets: string; + }; + VersionMigrationFinished: { + version: string; + }; + }; + }; + /** + * Lookup45: staging_xcm::v4::traits::Outcome + **/ + StagingXcmV4TraitsOutcome: { + _enum: { + Complete: { + used: string; + }; + Incomplete: { + used: string; + error: string; + }; + Error: { + error: string; + }; + }; + }; + /** + * Lookup46: xcm::v3::traits::Error + **/ + XcmV3TraitsError: { + _enum: { + Overflow: string; + Unimplemented: string; + UntrustedReserveLocation: string; + UntrustedTeleportLocation: string; + LocationFull: string; + LocationNotInvertible: string; + BadOrigin: string; + InvalidLocation: string; + AssetNotFound: string; + FailedToTransactAsset: string; + NotWithdrawable: string; + LocationCannotHold: string; + ExceedsMaxMessageSize: string; + DestinationUnsupported: string; + Transport: string; + Unroutable: string; + UnknownClaim: string; + FailedToDecode: string; + MaxWeightInvalid: string; + NotHoldingFees: string; + TooExpensive: string; + Trap: string; + ExpectationFalse: string; + PalletNotFound: string; + NameMismatch: string; + VersionIncompatible: string; + HoldingWouldOverflow: string; + ExportError: string; + ReanchorFailed: string; + NoDeal: string; + FeesNotMet: string; + LockError: string; + NoPermission: string; + Unanchored: string; + NotDepositable: string; + UnhandledXcmVersion: string; + WeightLimitReached: string; + Barrier: string; + WeightNotComputable: string; + ExceedsStackLimit: string; + }; + }; + /** + * Lookup47: staging_xcm::v4::location::Location + **/ + StagingXcmV4Location: { + parents: string; + interior: string; + }; + /** + * Lookup48: staging_xcm::v4::junctions::Junctions + **/ + StagingXcmV4Junctions: { + _enum: { + Here: string; + X1: string; + X2: string; + X3: string; + X4: string; + X5: string; + X6: string; + X7: string; + X8: string; + }; + }; + /** + * Lookup50: staging_xcm::v4::junction::Junction + **/ + StagingXcmV4Junction: { + _enum: { + Parachain: string; + AccountId32: { + network: string; + id: string; + }; + AccountIndex64: { + network: string; + index: string; + }; + AccountKey20: { + network: string; + key: string; + }; + PalletInstance: string; + GeneralIndex: string; + GeneralKey: { + length: string; + data: string; + }; + OnlyChild: string; + Plurality: { + id: string; + part: string; + }; + GlobalConsensus: string; + }; + }; + /** + * Lookup53: staging_xcm::v4::junction::NetworkId + **/ + StagingXcmV4JunctionNetworkId: { + _enum: { + ByGenesis: string; + ByFork: { + blockNumber: string; + blockHash: string; + }; + Polkadot: string; + Kusama: string; + Westend: string; + Rococo: string; + Wococo: string; + Ethereum: { + chainId: string; + }; + BitcoinCore: string; + BitcoinCash: string; + PolkadotBulletin: string; + }; + }; + /** + * Lookup56: xcm::v3::junction::BodyId + **/ + XcmV3JunctionBodyId: { + _enum: { + Unit: string; + Moniker: string; + Index: string; + Executive: string; + Technical: string; + Legislative: string; + Judicial: string; + Defense: string; + Administration: string; + Treasury: string; + }; + }; + /** + * Lookup57: xcm::v3::junction::BodyPart + **/ + XcmV3JunctionBodyPart: { + _enum: { + Voice: string; + Members: { + count: string; + }; + Fraction: { + nom: string; + denom: string; + }; + AtLeastProportion: { + nom: string; + denom: string; + }; + MoreThanProportion: { + nom: string; + denom: string; + }; + }; + }; + /** + * Lookup65: staging_xcm::v4::Xcm + **/ + StagingXcmV4Xcm: string; + /** + * Lookup67: staging_xcm::v4::Instruction + **/ + StagingXcmV4Instruction: { + _enum: { + WithdrawAsset: string; + ReserveAssetDeposited: string; + ReceiveTeleportedAsset: string; + QueryResponse: { + queryId: string; + response: string; + maxWeight: string; + querier: string; + }; + TransferAsset: { + assets: string; + beneficiary: string; + }; + TransferReserveAsset: { + assets: string; + dest: string; + xcm: string; + }; + Transact: { + originKind: string; + requireWeightAtMost: string; + call: string; + }; + HrmpNewChannelOpenRequest: { + sender: string; + maxMessageSize: string; + maxCapacity: string; + }; + HrmpChannelAccepted: { + recipient: string; + }; + HrmpChannelClosing: { + initiator: string; + sender: string; + recipient: string; + }; + ClearOrigin: string; + DescendOrigin: string; + ReportError: string; + DepositAsset: { + assets: string; + beneficiary: string; + }; + DepositReserveAsset: { + assets: string; + dest: string; + xcm: string; + }; + ExchangeAsset: { + give: string; + want: string; + maximal: string; + }; + InitiateReserveWithdraw: { + assets: string; + reserve: string; + xcm: string; + }; + InitiateTeleport: { + assets: string; + dest: string; + xcm: string; + }; + ReportHolding: { + responseInfo: string; + assets: string; + }; + BuyExecution: { + fees: string; + weightLimit: string; + }; + RefundSurplus: string; + SetErrorHandler: string; + SetAppendix: string; + ClearError: string; + ClaimAsset: { + assets: string; + ticket: string; + }; + Trap: string; + SubscribeVersion: { + queryId: string; + maxResponseWeight: string; + }; + UnsubscribeVersion: string; + BurnAsset: string; + ExpectAsset: string; + ExpectOrigin: string; + ExpectError: string; + ExpectTransactStatus: string; + QueryPallet: { + moduleName: string; + responseInfo: string; + }; + ExpectPallet: { + index: string; + name: string; + moduleName: string; + crateMajor: string; + minCrateMinor: string; + }; + ReportTransactStatus: string; + ClearTransactStatus: string; + UniversalOrigin: string; + ExportMessage: { + network: string; + destination: string; + xcm: string; + }; + LockAsset: { + asset: string; + unlocker: string; + }; + UnlockAsset: { + asset: string; + target: string; + }; + NoteUnlockable: { + asset: string; + owner: string; + }; + RequestUnlock: { + asset: string; + locker: string; + }; + SetFeesMode: { + jitWithdraw: string; + }; + SetTopic: string; + ClearTopic: string; + AliasOrigin: string; + UnpaidExecution: { + weightLimit: string; + checkOrigin: string; + }; + }; + }; + /** + * Lookup68: staging_xcm::v4::asset::Assets + **/ + StagingXcmV4AssetAssets: string; + /** + * Lookup70: staging_xcm::v4::asset::Asset + **/ + StagingXcmV4Asset: { + id: string; + fun: string; + }; + /** + * Lookup71: staging_xcm::v4::asset::AssetId + **/ + StagingXcmV4AssetAssetId: string; + /** + * Lookup72: staging_xcm::v4::asset::Fungibility + **/ + StagingXcmV4AssetFungibility: { + _enum: { + Fungible: string; + NonFungible: string; + }; + }; + /** + * Lookup73: staging_xcm::v4::asset::AssetInstance + **/ + StagingXcmV4AssetAssetInstance: { + _enum: { + Undefined: string; + Index: string; + Array4: string; + Array8: string; + Array16: string; + Array32: string; + }; + }; + /** + * Lookup76: staging_xcm::v4::Response + **/ + StagingXcmV4Response: { + _enum: { + Null: string; + Assets: string; + ExecutionResult: string; + Version: string; + PalletsInfo: string; + DispatchResult: string; + }; + }; + /** + * Lookup80: staging_xcm::v4::PalletInfo + **/ + StagingXcmV4PalletInfo: { + index: string; + name: string; + moduleName: string; + major: string; + minor: string; + patch: string; + }; + /** + * Lookup83: xcm::v3::MaybeErrorCode + **/ + XcmV3MaybeErrorCode: { + _enum: { + Success: string; + Error: string; + TruncatedError: string; + }; + }; + /** + * Lookup86: xcm::v3::OriginKind + **/ + XcmV3OriginKind: { + _enum: string[]; + }; + /** + * Lookup87: xcm::double_encoded::DoubleEncoded + **/ + XcmDoubleEncoded: { + encoded: string; + }; + /** + * Lookup88: staging_xcm::v4::QueryResponseInfo + **/ + StagingXcmV4QueryResponseInfo: { + destination: string; + queryId: string; + maxWeight: string; + }; + /** + * Lookup89: staging_xcm::v4::asset::AssetFilter + **/ + StagingXcmV4AssetAssetFilter: { + _enum: { + Definite: string; + Wild: string; + }; + }; + /** + * Lookup90: staging_xcm::v4::asset::WildAsset + **/ + StagingXcmV4AssetWildAsset: { + _enum: { + All: string; + AllOf: { + id: string; + fun: string; + }; + AllCounted: string; + AllOfCounted: { + id: string; + fun: string; + count: string; + }; + }; + }; + /** + * Lookup91: staging_xcm::v4::asset::WildFungibility + **/ + StagingXcmV4AssetWildFungibility: { + _enum: string[]; + }; + /** + * Lookup92: xcm::v3::WeightLimit + **/ + XcmV3WeightLimit: { + _enum: { + Unlimited: string; + Limited: string; + }; + }; + /** + * Lookup93: xcm::VersionedAssets + **/ + XcmVersionedAssets: { + _enum: { + __Unused0: string; + V2: string; + __Unused2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup94: xcm::v2::multiasset::MultiAssets + **/ + XcmV2MultiassetMultiAssets: string; + /** + * Lookup96: xcm::v2::multiasset::MultiAsset + **/ + XcmV2MultiAsset: { + id: string; + fun: string; + }; + /** + * Lookup97: xcm::v2::multiasset::AssetId + **/ + XcmV2MultiassetAssetId: { + _enum: { + Concrete: string; + Abstract: string; + }; + }; + /** + * Lookup98: xcm::v2::multilocation::MultiLocation + **/ + XcmV2MultiLocation: { + parents: string; + interior: string; + }; + /** + * Lookup99: xcm::v2::multilocation::Junctions + **/ + XcmV2MultilocationJunctions: { + _enum: { + Here: string; + X1: string; + X2: string; + X3: string; + X4: string; + X5: string; + X6: string; + X7: string; + X8: string; + }; + }; + /** + * Lookup100: xcm::v2::junction::Junction + **/ + XcmV2Junction: { + _enum: { + Parachain: string; + AccountId32: { + network: string; + id: string; + }; + AccountIndex64: { + network: string; + index: string; + }; + AccountKey20: { + network: string; + key: string; + }; + PalletInstance: string; + GeneralIndex: string; + GeneralKey: string; + OnlyChild: string; + Plurality: { + id: string; + part: string; + }; + }; + }; + /** + * Lookup101: xcm::v2::NetworkId + **/ + XcmV2NetworkId: { + _enum: { + Any: string; + Named: string; + Polkadot: string; + Kusama: string; + }; + }; + /** + * Lookup103: xcm::v2::BodyId + **/ + XcmV2BodyId: { + _enum: { + Unit: string; + Named: string; + Index: string; + Executive: string; + Technical: string; + Legislative: string; + Judicial: string; + Defense: string; + Administration: string; + Treasury: string; + }; + }; + /** + * Lookup104: xcm::v2::BodyPart + **/ + XcmV2BodyPart: { + _enum: { + Voice: string; + Members: { + count: string; + }; + Fraction: { + nom: string; + denom: string; + }; + AtLeastProportion: { + nom: string; + denom: string; + }; + MoreThanProportion: { + nom: string; + denom: string; + }; + }; + }; + /** + * Lookup105: xcm::v2::multiasset::Fungibility + **/ + XcmV2MultiassetFungibility: { + _enum: { + Fungible: string; + NonFungible: string; + }; + }; + /** + * Lookup106: xcm::v2::multiasset::AssetInstance + **/ + XcmV2MultiassetAssetInstance: { + _enum: { + Undefined: string; + Index: string; + Array4: string; + Array8: string; + Array16: string; + Array32: string; + Blob: string; + }; + }; + /** + * Lookup107: xcm::v3::multiasset::MultiAssets + **/ + XcmV3MultiassetMultiAssets: string; + /** + * Lookup109: xcm::v3::multiasset::MultiAsset + **/ + XcmV3MultiAsset: { + id: string; + fun: string; + }; + /** + * Lookup110: xcm::v3::multiasset::AssetId + **/ + XcmV3MultiassetAssetId: { + _enum: { + Concrete: string; + Abstract: string; + }; + }; + /** + * Lookup111: staging_xcm::v3::multilocation::MultiLocation + **/ + StagingXcmV3MultiLocation: { + parents: string; + interior: string; + }; + /** + * Lookup112: xcm::v3::junctions::Junctions + **/ + XcmV3Junctions: { + _enum: { + Here: string; + X1: string; + X2: string; + X3: string; + X4: string; + X5: string; + X6: string; + X7: string; + X8: string; + }; + }; + /** + * Lookup113: xcm::v3::junction::Junction + **/ + XcmV3Junction: { + _enum: { + Parachain: string; + AccountId32: { + network: string; + id: string; + }; + AccountIndex64: { + network: string; + index: string; + }; + AccountKey20: { + network: string; + key: string; + }; + PalletInstance: string; + GeneralIndex: string; + GeneralKey: { + length: string; + data: string; + }; + OnlyChild: string; + Plurality: { + id: string; + part: string; + }; + GlobalConsensus: string; + }; + }; + /** + * Lookup115: xcm::v3::junction::NetworkId + **/ + XcmV3JunctionNetworkId: { + _enum: { + ByGenesis: string; + ByFork: { + blockNumber: string; + blockHash: string; + }; + Polkadot: string; + Kusama: string; + Westend: string; + Rococo: string; + Wococo: string; + Ethereum: { + chainId: string; + }; + BitcoinCore: string; + BitcoinCash: string; + PolkadotBulletin: string; + }; + }; + /** + * Lookup116: xcm::v3::multiasset::Fungibility + **/ + XcmV3MultiassetFungibility: { + _enum: { + Fungible: string; + NonFungible: string; + }; + }; + /** + * Lookup117: xcm::v3::multiasset::AssetInstance + **/ + XcmV3MultiassetAssetInstance: { + _enum: { + Undefined: string; + Index: string; + Array4: string; + Array8: string; + Array16: string; + Array32: string; + }; + }; + /** + * Lookup118: xcm::VersionedLocation + **/ + XcmVersionedLocation: { + _enum: { + __Unused0: string; + V2: string; + __Unused2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup119: cumulus_pallet_xcm::pallet::Event + **/ + CumulusPalletXcmEvent: { + _enum: { + InvalidFormat: string; + UnsupportedVersion: string; + ExecutedDownward: string; + }; + }; + /** + * Lookup120: pallet_message_queue::pallet::Event + **/ + PalletMessageQueueEvent: { + _enum: { + ProcessingFailed: { + id: string; + origin: string; + error: string; + }; + Processed: { + id: string; + origin: string; + weightUsed: string; + success: string; + }; + OverweightEnqueued: { + id: string; + origin: string; + pageIndex: string; + messageIndex: string; + }; + PageReaped: { + origin: string; + index: string; + }; + }; + }; + /** + * Lookup121: cumulus_primitives_core::AggregateMessageOrigin + **/ + CumulusPrimitivesCoreAggregateMessageOrigin: { + _enum: { + Here: string; + Parent: string; + Sibling: string; + }; + }; + /** + * Lookup123: frame_support::traits::messages::ProcessMessageError + **/ + FrameSupportMessagesProcessMessageError: { + _enum: { + BadFormat: string; + Corrupt: string; + Unsupported: string; + Overweight: string; + Yield: string; + StackLimitReached: string; + }; + }; + /** + * Lookup124: pallet_storage_providers::pallet::Event + **/ + PalletStorageProvidersEvent: { + _enum: { + MspRequestSignUpSuccess: { + who: string; + multiaddresses: string; + capacity: string; + valueProp: string; + }; + MspSignUpSuccess: { + who: string; + mspId: string; + multiaddresses: string; + capacity: string; + valueProp: string; + }; + BspRequestSignUpSuccess: { + who: string; + multiaddresses: string; + capacity: string; + }; + BspSignUpSuccess: { + who: string; + bspId: string; + multiaddresses: string; + capacity: string; + }; + SignUpRequestCanceled: { + who: string; + }; + MspSignOffSuccess: { + who: string; + mspId: string; + }; + BspSignOffSuccess: { + who: string; + bspId: string; + }; + CapacityChanged: { + who: string; + providerId: string; + oldCapacity: string; + newCapacity: string; + nextBlockWhenChangeAllowed: string; + }; + Slashed: { + providerId: string; + amountSlashed: string; + }; + }; + }; + /** + * Lookup128: pallet_storage_providers::types::ValueProposition + **/ + PalletStorageProvidersValueProposition: { + identifier: string; + dataLimit: string; + protocols: string; + }; + /** + * Lookup130: pallet_storage_providers::types::StorageProviderId + **/ + PalletStorageProvidersStorageProviderId: { + _enum: { + BackupStorageProvider: string; + MainStorageProvider: string; + }; + }; + /** + * Lookup131: pallet_file_system::pallet::Event + **/ + PalletFileSystemEvent: { + _enum: { + NewBucket: { + who: string; + mspId: string; + bucketId: string; + name: string; + collectionId: string; + private: string; + }; + MoveBucketRequested: { + who: string; + bucketId: string; + newMspId: string; + }; + BucketPrivacyUpdated: { + who: string; + bucketId: string; + collectionId: string; + private: string; + }; + NewCollectionAndAssociation: { + who: string; + bucketId: string; + collectionId: string; + }; + NewStorageRequest: { + _alias: { + size_: string; + }; + who: string; + fileKey: string; + bucketId: string; + location: string; + fingerprint: string; + size_: string; + peerIds: string; + }; + MspRespondedToStorageRequests: { + results: string; + }; + AcceptedBspVolunteer: { + _alias: { + size_: string; + }; + bspId: string; + bucketId: string; + location: string; + fingerprint: string; + multiaddresses: string; + owner: string; + size_: string; + }; + BspConfirmedStoring: { + who: string; + bspId: string; + fileKeys: string; + newRoot: string; + }; + StorageRequestFulfilled: { + fileKey: string; + }; + StorageRequestExpired: { + fileKey: string; + }; + StorageRequestRevoked: { + fileKey: string; + }; + BspRequestedToStopStoring: { + bspId: string; + fileKey: string; + owner: string; + location: string; + }; + BspConfirmStoppedStoring: { + bspId: string; + fileKey: string; + newRoot: string; + }; + PriorityChallengeForFileDeletionQueued: { + issuer: string; + fileKey: string; + }; + SpStopStoringInsolventUser: { + spId: string; + fileKey: string; + owner: string; + location: string; + newRoot: string; + }; + FailedToQueuePriorityChallenge: { + user: string; + fileKey: string; + }; + FileDeletionRequest: { + user: string; + fileKey: string; + bucketId: string; + mspId: string; + proofOfInclusion: string; + }; + ProofSubmittedForPendingFileDeletionRequest: { + mspId: string; + user: string; + fileKey: string; + bucketId: string; + proofOfInclusion: string; + }; + BspChallengeCycleInitialised: { + who: string; + bspId: string; + }; + MoveBucketRequestExpired: { + mspId: string; + bucketId: string; + }; + MoveBucketAccepted: { + bucketId: string; + mspId: string; + }; + MoveBucketRejected: { + bucketId: string; + mspId: string; + }; + DataServerRegisteredForMoveBucket: { + bspId: string; + bucketId: string; + }; + }; + }; + /** + * Lookup134: pallet_file_system::types::MspRespondStorageRequestsResult + **/ + PalletFileSystemMspRespondStorageRequestsResult: { + mspId: string; + responses: string; + }; + /** + * Lookup136: pallet_file_system::types::BatchResponses + **/ + PalletFileSystemBatchResponses: { + _enum: { + Accepted: string; + Rejected: string; + Failed: string; + }; + }; + /** + * Lookup137: pallet_file_system::types::MspAcceptedBatchStorageRequests + **/ + PalletFileSystemMspAcceptedBatchStorageRequests: { + fileKeys: string; + bucketId: string; + newBucketRoot: string; + owner: string; + }; + /** + * Lookup140: pallet_file_system::types::MspRejectedBatchStorageRequests + **/ + PalletFileSystemMspRejectedBatchStorageRequests: { + fileKeys: string; + bucketId: string; + owner: string; + }; + /** + * Lookup143: pallet_file_system::types::RejectedStorageRequestReason + **/ + PalletFileSystemRejectedStorageRequestReason: { + _enum: string[]; + }; + /** + * Lookup145: pallet_file_system::types::MspFailedBatchStorageRequests + **/ + PalletFileSystemMspFailedBatchStorageRequests: { + fileKeys: string; + bucketId: string; + owner: string; + }; + /** + * Lookup150: pallet_file_system::types::EitherAccountIdOrMspId + **/ + PalletFileSystemEitherAccountIdOrMspId: { + _enum: { + AccountId: string; + MspId: string; + }; + }; + /** + * Lookup151: pallet_proofs_dealer::pallet::Event + **/ + PalletProofsDealerEvent: { + _enum: { + NewChallenge: { + who: string; + keyChallenged: string; + }; + ProofAccepted: { + provider: string; + proof: string; + }; + NewChallengeSeed: { + challengesTicker: string; + seed: string; + }; + NewCheckpointChallenge: { + challengesTicker: string; + challenges: string; + }; + SlashableProvider: { + provider: string; + nextChallengeDeadline: string; + }; + NoRecordOfLastSubmittedProof: { + provider: string; + }; + NewChallengeCycleInitialised: { + currentTick: string; + nextChallengeDeadline: string; + provider: string; + maybeProviderAccount: string; + }; + MutationsApplied: { + provider: string; + mutations: string; + newRoot: string; + }; + ChallengesTickerSet: { + paused: string; + }; + }; + }; + /** + * Lookup152: pallet_proofs_dealer::types::Proof + **/ + PalletProofsDealerProof: { + forestProof: string; + keyProofs: string; + }; + /** + * Lookup153: sp_trie::storage_proof::CompactProof + **/ + SpTrieStorageProofCompactProof: { + encodedNodes: string; + }; + /** + * Lookup156: pallet_proofs_dealer::types::KeyProof + **/ + PalletProofsDealerKeyProof: { + proof: string; + challengeCount: string; + }; + /** + * Lookup157: shp_file_key_verifier::types::FileKeyProof + **/ + ShpFileKeyVerifierFileKeyProof: { + fileMetadata: string; + proof: string; + }; + /** + * Lookup158: shp_file_metadata::FileMetadata + **/ + ShpFileMetadataFileMetadata: { + owner: string; + bucketId: string; + location: string; + fileSize: string; + fingerprint: string; + }; + /** + * Lookup159: shp_file_metadata::Fingerprint + **/ + ShpFileMetadataFingerprint: string; + /** + * Lookup165: shp_traits::TrieRemoveMutation + **/ + ShpTraitsTrieRemoveMutation: string; + /** + * Lookup169: pallet_randomness::pallet::Event + **/ + PalletRandomnessEvent: { + _enum: { + NewOneEpochAgoRandomnessAvailable: { + randomnessSeed: string; + fromEpoch: string; + validUntilBlock: string; + }; + }; + }; + /** + * Lookup170: pallet_payment_streams::pallet::Event + **/ + PalletPaymentStreamsEvent: { + _enum: { + FixedRatePaymentStreamCreated: { + userAccount: string; + providerId: string; + rate: string; + }; + FixedRatePaymentStreamUpdated: { + userAccount: string; + providerId: string; + newRate: string; + }; + FixedRatePaymentStreamDeleted: { + userAccount: string; + providerId: string; + }; + DynamicRatePaymentStreamCreated: { + userAccount: string; + providerId: string; + amountProvided: string; + }; + DynamicRatePaymentStreamUpdated: { + userAccount: string; + providerId: string; + newAmountProvided: string; + }; + DynamicRatePaymentStreamDeleted: { + userAccount: string; + providerId: string; + }; + PaymentStreamCharged: { + userAccount: string; + providerId: string; + amount: string; + }; + LastChargeableInfoUpdated: { + providerId: string; + lastChargeableTick: string; + lastChargeablePriceIndex: string; + }; + UserWithoutFunds: { + who: string; + }; + UserPaidDebts: { + who: string; + }; + UserSolvent: { + who: string; + }; + }; + }; + /** + * Lookup171: pallet_bucket_nfts::pallet::Event + **/ + PalletBucketNftsEvent: { + _enum: { + AccessShared: { + issuer: string; + recipient: string; + }; + ItemReadAccessUpdated: { + admin: string; + bucket: string; + itemId: string; + }; + ItemBurned: { + account: string; + bucket: string; + itemId: string; + }; + }; + }; + /** + * Lookup172: pallet_nfts::pallet::Event + **/ + PalletNftsEvent: { + _enum: { + Created: { + collection: string; + creator: string; + owner: string; + }; + ForceCreated: { + collection: string; + owner: string; + }; + Destroyed: { + collection: string; + }; + Issued: { + collection: string; + item: string; + owner: string; + }; + Transferred: { + collection: string; + item: string; + from: string; + to: string; + }; + Burned: { + collection: string; + item: string; + owner: string; + }; + ItemTransferLocked: { + collection: string; + item: string; + }; + ItemTransferUnlocked: { + collection: string; + item: string; + }; + ItemPropertiesLocked: { + collection: string; + item: string; + lockMetadata: string; + lockAttributes: string; + }; + CollectionLocked: { + collection: string; + }; + OwnerChanged: { + collection: string; + newOwner: string; + }; + TeamChanged: { + collection: string; + issuer: string; + admin: string; + freezer: string; + }; + TransferApproved: { + collection: string; + item: string; + owner: string; + delegate: string; + deadline: string; + }; + ApprovalCancelled: { + collection: string; + item: string; + owner: string; + delegate: string; + }; + AllApprovalsCancelled: { + collection: string; + item: string; + owner: string; + }; + CollectionConfigChanged: { + collection: string; + }; + CollectionMetadataSet: { + collection: string; + data: string; + }; + CollectionMetadataCleared: { + collection: string; + }; + ItemMetadataSet: { + collection: string; + item: string; + data: string; + }; + ItemMetadataCleared: { + collection: string; + item: string; + }; + Redeposited: { + collection: string; + successfulItems: string; + }; + AttributeSet: { + collection: string; + maybeItem: string; + key: string; + value: string; + namespace: string; + }; + AttributeCleared: { + collection: string; + maybeItem: string; + key: string; + namespace: string; + }; + ItemAttributesApprovalAdded: { + collection: string; + item: string; + delegate: string; + }; + ItemAttributesApprovalRemoved: { + collection: string; + item: string; + delegate: string; + }; + OwnershipAcceptanceChanged: { + who: string; + maybeCollection: string; + }; + CollectionMaxSupplySet: { + collection: string; + maxSupply: string; + }; + CollectionMintSettingsUpdated: { + collection: string; + }; + NextCollectionIdIncremented: { + nextId: string; + }; + ItemPriceSet: { + collection: string; + item: string; + price: string; + whitelistedBuyer: string; + }; + ItemPriceRemoved: { + collection: string; + item: string; + }; + ItemBought: { + collection: string; + item: string; + price: string; + seller: string; + buyer: string; + }; + TipSent: { + collection: string; + item: string; + sender: string; + receiver: string; + amount: string; + }; + SwapCreated: { + offeredCollection: string; + offeredItem: string; + desiredCollection: string; + desiredItem: string; + price: string; + deadline: string; + }; + SwapCancelled: { + offeredCollection: string; + offeredItem: string; + desiredCollection: string; + desiredItem: string; + price: string; + deadline: string; + }; + SwapClaimed: { + sentCollection: string; + sentItem: string; + sentItemOwner: string; + receivedCollection: string; + receivedItem: string; + receivedItemOwner: string; + price: string; + deadline: string; + }; + PreSignedAttributesSet: { + collection: string; + item: string; + namespace: string; + }; + PalletAttributeSet: { + collection: string; + item: string; + attribute: string; + value: string; + }; + }; + }; + /** + * Lookup176: pallet_nfts::types::AttributeNamespace + **/ + PalletNftsAttributeNamespace: { + _enum: { + Pallet: string; + CollectionOwner: string; + ItemOwner: string; + Account: string; + }; + }; + /** + * Lookup178: pallet_nfts::types::PriceWithDirection + **/ + PalletNftsPriceWithDirection: { + amount: string; + direction: string; + }; + /** + * Lookup179: pallet_nfts::types::PriceDirection + **/ + PalletNftsPriceDirection: { + _enum: string[]; + }; + /** + * Lookup180: pallet_nfts::types::PalletAttributes + **/ + PalletNftsPalletAttributes: { + _enum: { + UsedToClaim: string; + TransferDisabled: string; + }; + }; + /** + * Lookup181: pallet_parameters::pallet::Event + **/ + PalletParametersEvent: { + _enum: { + Updated: { + key: string; + oldValue: string; + newValue: string; + }; + }; + }; + /** + * Lookup182: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { + _enum: { + RuntimeConfig: string; + }; + }; + /** + * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { + _enum: string[]; + }; + /** + * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: string; + /** + * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: string; + /** + * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: string; + /** + * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: string; + /** + * Lookup189: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { + _enum: { + RuntimeConfig: string; + }; + }; + /** + * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { + _enum: { + SlashAmountPerMaxFileSize: string; + StakeToChallengePeriod: string; + CheckpointChallengePeriod: string; + MinChallengePeriod: string; + }; + }; + /** + * Lookup191: frame_system::Phase + **/ + FrameSystemPhase: { + _enum: { + ApplyExtrinsic: string; + Finalization: string; + Initialization: string; + }; + }; + /** + * Lookup194: frame_system::LastRuntimeUpgradeInfo + **/ + FrameSystemLastRuntimeUpgradeInfo: { + specVersion: string; + specName: string; + }; + /** + * Lookup196: frame_system::CodeUpgradeAuthorization + **/ + FrameSystemCodeUpgradeAuthorization: { + codeHash: string; + checkVersion: string; + }; + /** + * Lookup197: frame_system::pallet::Call + **/ + FrameSystemCall: { + _enum: { + remark: { + remark: string; + }; + set_heap_pages: { + pages: string; + }; + set_code: { + code: string; + }; + set_code_without_checks: { + code: string; + }; + set_storage: { + items: string; + }; + kill_storage: { + _alias: { + keys_: string; + }; + keys_: string; + }; + kill_prefix: { + prefix: string; + subkeys: string; + }; + remark_with_event: { + remark: string; + }; + __Unused8: string; + authorize_upgrade: { + codeHash: string; + }; + authorize_upgrade_without_checks: { + codeHash: string; + }; + apply_authorized_upgrade: { + code: string; + }; + }; + }; + /** + * Lookup200: frame_system::limits::BlockWeights + **/ + FrameSystemLimitsBlockWeights: { + baseBlock: string; + maxBlock: string; + perClass: string; + }; + /** + * Lookup201: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeightsPerClass: { + normal: string; + operational: string; + mandatory: string; + }; + /** + * Lookup202: frame_system::limits::WeightsPerClass + **/ + FrameSystemLimitsWeightsPerClass: { + baseExtrinsic: string; + maxExtrinsic: string; + maxTotal: string; + reserved: string; + }; + /** + * Lookup204: frame_system::limits::BlockLength + **/ + FrameSystemLimitsBlockLength: { + max: string; + }; + /** + * Lookup205: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassU32: { + normal: string; + operational: string; + mandatory: string; + }; + /** + * Lookup206: sp_weights::RuntimeDbWeight + **/ + SpWeightsRuntimeDbWeight: { + read: string; + write: string; + }; + /** + * Lookup207: sp_version::RuntimeVersion + **/ + SpVersionRuntimeVersion: { + specName: string; + implName: string; + authoringVersion: string; + specVersion: string; + implVersion: string; + apis: string; + transactionVersion: string; + stateVersion: string; + }; + /** + * Lookup212: frame_system::pallet::Error + **/ + FrameSystemError: { + _enum: string[]; + }; + /** + * Lookup214: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + **/ + CumulusPalletParachainSystemUnincludedSegmentAncestor: { + usedBandwidth: string; + paraHeadHash: string; + consumedGoAheadSignal: string; + }; + /** + * Lookup215: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + **/ + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { + umpMsgCount: string; + umpTotalBytes: string; + hrmpOutgoing: string; + }; + /** + * Lookup217: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + **/ + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { + msgCount: string; + totalBytes: string; + }; + /** + * Lookup222: polkadot_primitives::v7::UpgradeGoAhead + **/ + PolkadotPrimitivesV7UpgradeGoAhead: { + _enum: string[]; + }; + /** + * Lookup223: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + **/ + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { + usedBandwidth: string; + hrmpWatermark: string; + consumedGoAheadSignal: string; + }; + /** + * Lookup224: polkadot_primitives::v7::PersistedValidationData + **/ + PolkadotPrimitivesV7PersistedValidationData: { + parentHead: string; + relayParentNumber: string; + relayParentStorageRoot: string; + maxPovSize: string; + }; + /** + * Lookup227: polkadot_primitives::v7::UpgradeRestriction + **/ + PolkadotPrimitivesV7UpgradeRestriction: { + _enum: string[]; + }; + /** + * Lookup228: sp_trie::storage_proof::StorageProof + **/ + SpTrieStorageProof: { + trieNodes: string; + }; + /** + * Lookup230: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + **/ + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { + dmqMqcHead: string; + relayDispatchQueueRemainingCapacity: string; + ingressChannels: string; + egressChannels: string; + }; + /** + * Lookup231: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + **/ + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { + remainingCount: string; + remainingSize: string; + }; + /** + * Lookup234: polkadot_primitives::v7::AbridgedHrmpChannel + **/ + PolkadotPrimitivesV7AbridgedHrmpChannel: { + maxCapacity: string; + maxTotalSize: string; + maxMessageSize: string; + msgCount: string; + totalSize: string; + mqcHead: string; + }; + /** + * Lookup235: polkadot_primitives::v7::AbridgedHostConfiguration + **/ + PolkadotPrimitivesV7AbridgedHostConfiguration: { + maxCodeSize: string; + maxHeadDataSize: string; + maxUpwardQueueCount: string; + maxUpwardQueueSize: string; + maxUpwardMessageSize: string; + maxUpwardMessageNumPerCandidate: string; + hrmpMaxMessageNumPerCandidate: string; + validationUpgradeCooldown: string; + validationUpgradeDelay: string; + asyncBackingParams: string; + }; + /** + * Lookup236: polkadot_primitives::v7::async_backing::AsyncBackingParams + **/ + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { + maxCandidateDepth: string; + allowedAncestryLen: string; + }; + /** + * Lookup242: polkadot_core_primitives::OutboundHrmpMessage + **/ + PolkadotCorePrimitivesOutboundHrmpMessage: { + recipient: string; + data: string; + }; + /** + * Lookup244: cumulus_pallet_parachain_system::pallet::Call + **/ + CumulusPalletParachainSystemCall: { + _enum: { + set_validation_data: { + data: string; + }; + sudo_send_upward_message: { + message: string; + }; + authorize_upgrade: { + codeHash: string; + checkVersion: string; + }; + enact_authorized_upgrade: { + code: string; + }; + }; + }; + /** + * Lookup245: cumulus_primitives_parachain_inherent::ParachainInherentData + **/ + CumulusPrimitivesParachainInherentParachainInherentData: { + validationData: string; + relayChainState: string; + downwardMessages: string; + horizontalMessages: string; + }; + /** + * Lookup247: polkadot_core_primitives::InboundDownwardMessage + **/ + PolkadotCorePrimitivesInboundDownwardMessage: { + sentAt: string; + msg: string; + }; + /** + * Lookup250: polkadot_core_primitives::InboundHrmpMessage + **/ + PolkadotCorePrimitivesInboundHrmpMessage: { + sentAt: string; + data: string; + }; + /** + * Lookup253: cumulus_pallet_parachain_system::pallet::Error + **/ + CumulusPalletParachainSystemError: { + _enum: string[]; + }; + /** + * Lookup254: pallet_timestamp::pallet::Call + **/ + PalletTimestampCall: { + _enum: { + set: { + now: string; + }; + }; + }; + /** + * Lookup255: staging_parachain_info::pallet::Call + **/ + StagingParachainInfoCall: string; + /** + * Lookup257: pallet_balances::types::BalanceLock + **/ + PalletBalancesBalanceLock: { + id: string; + amount: string; + reasons: string; + }; + /** + * Lookup258: pallet_balances::types::Reasons + **/ + PalletBalancesReasons: { + _enum: string[]; + }; + /** + * Lookup261: pallet_balances::types::ReserveData + **/ + PalletBalancesReserveData: { + id: string; + amount: string; + }; + /** + * Lookup265: storage_hub_runtime::RuntimeHoldReason + **/ + StorageHubRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: string; + __Unused1: string; + __Unused2: string; + __Unused3: string; + __Unused4: string; + __Unused5: string; + __Unused6: string; + __Unused7: string; + __Unused8: string; + __Unused9: string; + __Unused10: string; + __Unused11: string; + __Unused12: string; + __Unused13: string; + __Unused14: string; + __Unused15: string; + __Unused16: string; + __Unused17: string; + __Unused18: string; + __Unused19: string; + __Unused20: string; + __Unused21: string; + __Unused22: string; + __Unused23: string; + __Unused24: string; + __Unused25: string; + __Unused26: string; + __Unused27: string; + __Unused28: string; + __Unused29: string; + __Unused30: string; + __Unused31: string; + __Unused32: string; + __Unused33: string; + __Unused34: string; + __Unused35: string; + __Unused36: string; + __Unused37: string; + __Unused38: string; + __Unused39: string; + Providers: string; + __Unused41: string; + __Unused42: string; + __Unused43: string; + PaymentStreams: string; + }; + }; + /** + * Lookup266: pallet_storage_providers::pallet::HoldReason + **/ + PalletStorageProvidersHoldReason: { + _enum: string[]; + }; + /** + * Lookup267: pallet_payment_streams::pallet::HoldReason + **/ + PalletPaymentStreamsHoldReason: { + _enum: string[]; + }; + /** + * Lookup270: pallet_balances::types::IdAmount + **/ + PalletBalancesIdAmount: { + id: string; + amount: string; + }; + /** + * Lookup272: pallet_balances::pallet::Call + **/ + PalletBalancesCall: { + _enum: { + transfer_allow_death: { + dest: string; + value: string; + }; + __Unused1: string; + force_transfer: { + source: string; + dest: string; + value: string; + }; + transfer_keep_alive: { + dest: string; + value: string; + }; + transfer_all: { + dest: string; + keepAlive: string; + }; + force_unreserve: { + who: string; + amount: string; + }; + upgrade_accounts: { + who: string; + }; + __Unused7: string; + force_set_balance: { + who: string; + newFree: string; + }; + force_adjust_total_issuance: { + direction: string; + delta: string; + }; + burn: { + value: string; + keepAlive: string; + }; + }; + }; + /** + * Lookup275: pallet_balances::types::AdjustmentDirection + **/ + PalletBalancesAdjustmentDirection: { + _enum: string[]; + }; + /** + * Lookup276: pallet_balances::pallet::Error + **/ + PalletBalancesError: { + _enum: string[]; + }; + /** + * Lookup277: pallet_transaction_payment::Releases + **/ + PalletTransactionPaymentReleases: { + _enum: string[]; + }; + /** + * Lookup278: pallet_sudo::pallet::Call + **/ + PalletSudoCall: { + _enum: { + sudo: { + call: string; + }; + sudo_unchecked_weight: { + call: string; + weight: string; + }; + set_key: { + _alias: { + new_: string; + }; + new_: string; + }; + sudo_as: { + who: string; + call: string; + }; + remove_key: string; + }; + }; + /** + * Lookup280: pallet_collator_selection::pallet::Call + **/ + PalletCollatorSelectionCall: { + _enum: { + set_invulnerables: { + _alias: { + new_: string; + }; + new_: string; + }; + set_desired_candidates: { + max: string; + }; + set_candidacy_bond: { + bond: string; + }; + register_as_candidate: string; + leave_intent: string; + add_invulnerable: { + who: string; + }; + remove_invulnerable: { + who: string; + }; + update_bond: { + newDeposit: string; + }; + take_candidate_slot: { + deposit: string; + target: string; + }; + }; + }; + /** + * Lookup281: pallet_session::pallet::Call + **/ + PalletSessionCall: { + _enum: { + set_keys: { + _alias: { + keys_: string; + }; + keys_: string; + proof: string; + }; + purge_keys: string; + }; + }; + /** + * Lookup282: storage_hub_runtime::SessionKeys + **/ + StorageHubRuntimeSessionKeys: { + aura: string; + }; + /** + * Lookup283: sp_consensus_aura::sr25519::app_sr25519::Public + **/ + SpConsensusAuraSr25519AppSr25519Public: string; + /** + * Lookup284: cumulus_pallet_xcmp_queue::pallet::Call + **/ + CumulusPalletXcmpQueueCall: { + _enum: { + __Unused0: string; + suspend_xcm_execution: string; + resume_xcm_execution: string; + update_suspend_threshold: { + _alias: { + new_: string; + }; + new_: string; + }; + update_drop_threshold: { + _alias: { + new_: string; + }; + new_: string; + }; + update_resume_threshold: { + _alias: { + new_: string; + }; + new_: string; + }; + }; + }; + /** + * Lookup285: pallet_xcm::pallet::Call + **/ + PalletXcmCall: { + _enum: { + send: { + dest: string; + message: string; + }; + teleport_assets: { + dest: string; + beneficiary: string; + assets: string; + feeAssetItem: string; + }; + reserve_transfer_assets: { + dest: string; + beneficiary: string; + assets: string; + feeAssetItem: string; + }; + execute: { + message: string; + maxWeight: string; + }; + force_xcm_version: { + location: string; + version: string; + }; + force_default_xcm_version: { + maybeXcmVersion: string; + }; + force_subscribe_version_notify: { + location: string; + }; + force_unsubscribe_version_notify: { + location: string; + }; + limited_reserve_transfer_assets: { + dest: string; + beneficiary: string; + assets: string; + feeAssetItem: string; + weightLimit: string; + }; + limited_teleport_assets: { + dest: string; + beneficiary: string; + assets: string; + feeAssetItem: string; + weightLimit: string; + }; + force_suspension: { + suspended: string; + }; + transfer_assets: { + dest: string; + beneficiary: string; + assets: string; + feeAssetItem: string; + weightLimit: string; + }; + claim_assets: { + assets: string; + beneficiary: string; + }; + transfer_assets_using_type_and_then: { + dest: string; + assets: string; + assetsTransferType: string; + remoteFeesId: string; + feesTransferType: string; + customXcmOnDest: string; + weightLimit: string; + }; + }; + }; + /** + * Lookup286: xcm::VersionedXcm + **/ + XcmVersionedXcm: { + _enum: { + __Unused0: string; + __Unused1: string; + V2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup287: xcm::v2::Xcm + **/ + XcmV2Xcm: string; + /** + * Lookup289: xcm::v2::Instruction + **/ + XcmV2Instruction: { + _enum: { + WithdrawAsset: string; + ReserveAssetDeposited: string; + ReceiveTeleportedAsset: string; + QueryResponse: { + queryId: string; + response: string; + maxWeight: string; + }; + TransferAsset: { + assets: string; + beneficiary: string; + }; + TransferReserveAsset: { + assets: string; + dest: string; + xcm: string; + }; + Transact: { + originType: string; + requireWeightAtMost: string; + call: string; + }; + HrmpNewChannelOpenRequest: { + sender: string; + maxMessageSize: string; + maxCapacity: string; + }; + HrmpChannelAccepted: { + recipient: string; + }; + HrmpChannelClosing: { + initiator: string; + sender: string; + recipient: string; + }; + ClearOrigin: string; + DescendOrigin: string; + ReportError: { + queryId: string; + dest: string; + maxResponseWeight: string; + }; + DepositAsset: { + assets: string; + maxAssets: string; + beneficiary: string; + }; + DepositReserveAsset: { + assets: string; + maxAssets: string; + dest: string; + xcm: string; + }; + ExchangeAsset: { + give: string; + receive: string; + }; + InitiateReserveWithdraw: { + assets: string; + reserve: string; + xcm: string; + }; + InitiateTeleport: { + assets: string; + dest: string; + xcm: string; + }; + QueryHolding: { + queryId: string; + dest: string; + assets: string; + maxResponseWeight: string; + }; + BuyExecution: { + fees: string; + weightLimit: string; + }; + RefundSurplus: string; + SetErrorHandler: string; + SetAppendix: string; + ClearError: string; + ClaimAsset: { + assets: string; + ticket: string; + }; + Trap: string; + SubscribeVersion: { + queryId: string; + maxResponseWeight: string; + }; + UnsubscribeVersion: string; + }; + }; + /** + * Lookup290: xcm::v2::Response + **/ + XcmV2Response: { + _enum: { + Null: string; + Assets: string; + ExecutionResult: string; + Version: string; + }; + }; + /** + * Lookup293: xcm::v2::traits::Error + **/ + XcmV2TraitsError: { + _enum: { + Overflow: string; + Unimplemented: string; + UntrustedReserveLocation: string; + UntrustedTeleportLocation: string; + MultiLocationFull: string; + MultiLocationNotInvertible: string; + BadOrigin: string; + InvalidLocation: string; + AssetNotFound: string; + FailedToTransactAsset: string; + NotWithdrawable: string; + LocationCannotHold: string; + ExceedsMaxMessageSize: string; + DestinationUnsupported: string; + Transport: string; + Unroutable: string; + UnknownClaim: string; + FailedToDecode: string; + MaxWeightInvalid: string; + NotHoldingFees: string; + TooExpensive: string; + Trap: string; + UnhandledXcmVersion: string; + WeightLimitReached: string; + Barrier: string; + WeightNotComputable: string; + }; + }; + /** + * Lookup294: xcm::v2::OriginKind + **/ + XcmV2OriginKind: { + _enum: string[]; + }; + /** + * Lookup295: xcm::v2::multiasset::MultiAssetFilter + **/ + XcmV2MultiassetMultiAssetFilter: { + _enum: { + Definite: string; + Wild: string; + }; + }; + /** + * Lookup296: xcm::v2::multiasset::WildMultiAsset + **/ + XcmV2MultiassetWildMultiAsset: { + _enum: { + All: string; + AllOf: { + id: string; + fun: string; + }; + }; + }; + /** + * Lookup297: xcm::v2::multiasset::WildFungibility + **/ + XcmV2MultiassetWildFungibility: { + _enum: string[]; + }; + /** + * Lookup298: xcm::v2::WeightLimit + **/ + XcmV2WeightLimit: { + _enum: { + Unlimited: string; + Limited: string; + }; + }; + /** + * Lookup299: xcm::v3::Xcm + **/ + XcmV3Xcm: string; + /** + * Lookup301: xcm::v3::Instruction + **/ + XcmV3Instruction: { + _enum: { + WithdrawAsset: string; + ReserveAssetDeposited: string; + ReceiveTeleportedAsset: string; + QueryResponse: { + queryId: string; + response: string; + maxWeight: string; + querier: string; + }; + TransferAsset: { + assets: string; + beneficiary: string; + }; + TransferReserveAsset: { + assets: string; + dest: string; + xcm: string; + }; + Transact: { + originKind: string; + requireWeightAtMost: string; + call: string; + }; + HrmpNewChannelOpenRequest: { + sender: string; + maxMessageSize: string; + maxCapacity: string; + }; + HrmpChannelAccepted: { + recipient: string; + }; + HrmpChannelClosing: { + initiator: string; + sender: string; + recipient: string; + }; + ClearOrigin: string; + DescendOrigin: string; + ReportError: string; + DepositAsset: { + assets: string; + beneficiary: string; + }; + DepositReserveAsset: { + assets: string; + dest: string; + xcm: string; + }; + ExchangeAsset: { + give: string; + want: string; + maximal: string; + }; + InitiateReserveWithdraw: { + assets: string; + reserve: string; + xcm: string; + }; + InitiateTeleport: { + assets: string; + dest: string; + xcm: string; + }; + ReportHolding: { + responseInfo: string; + assets: string; + }; + BuyExecution: { + fees: string; + weightLimit: string; + }; + RefundSurplus: string; + SetErrorHandler: string; + SetAppendix: string; + ClearError: string; + ClaimAsset: { + assets: string; + ticket: string; + }; + Trap: string; + SubscribeVersion: { + queryId: string; + maxResponseWeight: string; + }; + UnsubscribeVersion: string; + BurnAsset: string; + ExpectAsset: string; + ExpectOrigin: string; + ExpectError: string; + ExpectTransactStatus: string; + QueryPallet: { + moduleName: string; + responseInfo: string; + }; + ExpectPallet: { + index: string; + name: string; + moduleName: string; + crateMajor: string; + minCrateMinor: string; + }; + ReportTransactStatus: string; + ClearTransactStatus: string; + UniversalOrigin: string; + ExportMessage: { + network: string; + destination: string; + xcm: string; + }; + LockAsset: { + asset: string; + unlocker: string; + }; + UnlockAsset: { + asset: string; + target: string; + }; + NoteUnlockable: { + asset: string; + owner: string; + }; + RequestUnlock: { + asset: string; + locker: string; + }; + SetFeesMode: { + jitWithdraw: string; + }; + SetTopic: string; + ClearTopic: string; + AliasOrigin: string; + UnpaidExecution: { + weightLimit: string; + checkOrigin: string; + }; + }; + }; + /** + * Lookup302: xcm::v3::Response + **/ + XcmV3Response: { + _enum: { + Null: string; + Assets: string; + ExecutionResult: string; + Version: string; + PalletsInfo: string; + DispatchResult: string; + }; + }; + /** + * Lookup304: xcm::v3::PalletInfo + **/ + XcmV3PalletInfo: { + index: string; + name: string; + moduleName: string; + major: string; + minor: string; + patch: string; + }; + /** + * Lookup308: xcm::v3::QueryResponseInfo + **/ + XcmV3QueryResponseInfo: { + destination: string; + queryId: string; + maxWeight: string; + }; + /** + * Lookup309: xcm::v3::multiasset::MultiAssetFilter + **/ + XcmV3MultiassetMultiAssetFilter: { + _enum: { + Definite: string; + Wild: string; + }; + }; + /** + * Lookup310: xcm::v3::multiasset::WildMultiAsset + **/ + XcmV3MultiassetWildMultiAsset: { + _enum: { + All: string; + AllOf: { + id: string; + fun: string; + }; + AllCounted: string; + AllOfCounted: { + id: string; + fun: string; + count: string; + }; + }; + }; + /** + * Lookup311: xcm::v3::multiasset::WildFungibility + **/ + XcmV3MultiassetWildFungibility: { + _enum: string[]; + }; + /** + * Lookup323: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: string; + LocalReserve: string; + DestinationReserve: string; + RemoteReserve: string; + }; + }; + /** + * Lookup324: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: string; + __Unused1: string; + __Unused2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup325: cumulus_pallet_xcm::pallet::Call + **/ + CumulusPalletXcmCall: string; + /** + * Lookup326: pallet_message_queue::pallet::Call + **/ + PalletMessageQueueCall: { + _enum: { + reap_page: { + messageOrigin: string; + pageIndex: string; + }; + execute_overweight: { + messageOrigin: string; + page: string; + index: string; + weightLimit: string; + }; + }; + }; + /** + * Lookup327: pallet_storage_providers::pallet::Call + **/ + PalletStorageProvidersCall: { + _enum: { + request_msp_sign_up: { + capacity: string; + multiaddresses: string; + valueProp: string; + paymentAccount: string; + }; + request_bsp_sign_up: { + capacity: string; + multiaddresses: string; + paymentAccount: string; + }; + confirm_sign_up: { + providerAccount: string; + }; + cancel_sign_up: string; + msp_sign_off: string; + bsp_sign_off: string; + change_capacity: { + newCapacity: string; + }; + add_value_prop: { + newValueProp: string; + }; + force_msp_sign_up: { + who: string; + mspId: string; + capacity: string; + multiaddresses: string; + valueProp: string; + paymentAccount: string; + }; + force_bsp_sign_up: { + who: string; + bspId: string; + capacity: string; + multiaddresses: string; + paymentAccount: string; + weight: string; + }; + slash: { + providerId: string; + }; + }; + }; + /** + * Lookup328: pallet_file_system::pallet::Call + **/ + PalletFileSystemCall: { + _enum: { + create_bucket: { + mspId: string; + name: string; + private: string; + }; + request_move_bucket: { + bucketId: string; + newMspId: string; + }; + msp_respond_move_bucket_request: { + bucketId: string; + response: string; + }; + update_bucket_privacy: { + bucketId: string; + private: string; + }; + create_and_associate_collection_with_bucket: { + bucketId: string; + }; + issue_storage_request: { + _alias: { + size_: string; + }; + bucketId: string; + location: string; + fingerprint: string; + size_: string; + mspId: string; + peerIds: string; + }; + revoke_storage_request: { + fileKey: string; + }; + bsp_add_data_server_for_move_bucket_request: { + bucketId: string; + }; + msp_respond_storage_requests_multiple_buckets: { + fileKeyResponsesInput: string; + }; + bsp_volunteer: { + fileKey: string; + }; + bsp_confirm_storing: { + nonInclusionForestProof: string; + fileKeysAndProofs: string; + }; + bsp_request_stop_storing: { + _alias: { + size_: string; + }; + fileKey: string; + bucketId: string; + location: string; + owner: string; + fingerprint: string; + size_: string; + canServe: string; + inclusionForestProof: string; + }; + bsp_confirm_stop_storing: { + fileKey: string; + inclusionForestProof: string; + }; + stop_storing_for_insolvent_user: { + _alias: { + size_: string; + }; + fileKey: string; + bucketId: string; + location: string; + owner: string; + fingerprint: string; + size_: string; + inclusionForestProof: string; + }; + delete_file: { + _alias: { + size_: string; + }; + bucketId: string; + fileKey: string; + location: string; + size_: string; + fingerprint: string; + maybeInclusionForestProof: string; + }; + pending_file_deletion_request_submit_proof: { + user: string; + fileKey: string; + bucketId: string; + forestProof: string; + }; + set_global_parameters: { + replicationTarget: string; + tickRangeToMaximumThreshold: string; + }; + }; + }; + /** + * Lookup329: pallet_file_system::types::BucketMoveRequestResponse + **/ + PalletFileSystemBucketMoveRequestResponse: { + _enum: string[]; + }; + /** + * Lookup332: pallet_file_system::types::MspStorageRequestResponse + **/ + PalletFileSystemMspStorageRequestResponse: { + accept: string; + reject: string; + }; + /** + * Lookup334: pallet_file_system::types::AcceptedStorageRequestParameters + **/ + PalletFileSystemAcceptedStorageRequestParameters: { + fileKeysAndProofs: string; + nonInclusionForestProof: string; + }; + /** + * Lookup341: pallet_proofs_dealer::pallet::Call + **/ + PalletProofsDealerCall: { + _enum: { + challenge: { + key: string; + }; + submit_proof: { + proof: string; + provider: string; + }; + force_initialise_challenge_cycle: { + provider: string; + }; + set_paused: { + paused: string; + }; + }; + }; + /** + * Lookup342: pallet_randomness::pallet::Call + **/ + PalletRandomnessCall: { + _enum: string[]; + }; + /** + * Lookup343: pallet_payment_streams::pallet::Call + **/ + PalletPaymentStreamsCall: { + _enum: { + create_fixed_rate_payment_stream: { + providerId: string; + userAccount: string; + rate: string; + }; + update_fixed_rate_payment_stream: { + providerId: string; + userAccount: string; + newRate: string; + }; + delete_fixed_rate_payment_stream: { + providerId: string; + userAccount: string; + }; + create_dynamic_rate_payment_stream: { + providerId: string; + userAccount: string; + amountProvided: string; + }; + update_dynamic_rate_payment_stream: { + providerId: string; + userAccount: string; + newAmountProvided: string; + }; + delete_dynamic_rate_payment_stream: { + providerId: string; + userAccount: string; + }; + charge_payment_streams: { + userAccount: string; + }; + pay_outstanding_debt: string; + clear_insolvent_flag: string; + }; + }; + /** + * Lookup344: pallet_bucket_nfts::pallet::Call + **/ + PalletBucketNftsCall: { + _enum: { + share_access: { + recipient: string; + bucket: string; + itemId: string; + readAccessRegex: string; + }; + update_read_access: { + bucket: string; + itemId: string; + readAccessRegex: string; + }; + }; + }; + /** + * Lookup346: pallet_nfts::pallet::Call + **/ + PalletNftsCall: { + _enum: { + create: { + admin: string; + config: string; + }; + force_create: { + owner: string; + config: string; + }; + destroy: { + collection: string; + witness: string; + }; + mint: { + collection: string; + item: string; + mintTo: string; + witnessData: string; + }; + force_mint: { + collection: string; + item: string; + mintTo: string; + itemConfig: string; + }; + burn: { + collection: string; + item: string; + }; + transfer: { + collection: string; + item: string; + dest: string; + }; + redeposit: { + collection: string; + items: string; + }; + lock_item_transfer: { + collection: string; + item: string; + }; + unlock_item_transfer: { + collection: string; + item: string; + }; + lock_collection: { + collection: string; + lockSettings: string; + }; + transfer_ownership: { + collection: string; + newOwner: string; + }; + set_team: { + collection: string; + issuer: string; + admin: string; + freezer: string; + }; + force_collection_owner: { + collection: string; + owner: string; + }; + force_collection_config: { + collection: string; + config: string; + }; + approve_transfer: { + collection: string; + item: string; + delegate: string; + maybeDeadline: string; + }; + cancel_approval: { + collection: string; + item: string; + delegate: string; + }; + clear_all_transfer_approvals: { + collection: string; + item: string; + }; + lock_item_properties: { + collection: string; + item: string; + lockMetadata: string; + lockAttributes: string; + }; + set_attribute: { + collection: string; + maybeItem: string; + namespace: string; + key: string; + value: string; + }; + force_set_attribute: { + setAs: string; + collection: string; + maybeItem: string; + namespace: string; + key: string; + value: string; + }; + clear_attribute: { + collection: string; + maybeItem: string; + namespace: string; + key: string; + }; + approve_item_attributes: { + collection: string; + item: string; + delegate: string; + }; + cancel_item_attributes_approval: { + collection: string; + item: string; + delegate: string; + witness: string; + }; + set_metadata: { + collection: string; + item: string; + data: string; + }; + clear_metadata: { + collection: string; + item: string; + }; + set_collection_metadata: { + collection: string; + data: string; + }; + clear_collection_metadata: { + collection: string; + }; + set_accept_ownership: { + maybeCollection: string; + }; + set_collection_max_supply: { + collection: string; + maxSupply: string; + }; + update_mint_settings: { + collection: string; + mintSettings: string; + }; + set_price: { + collection: string; + item: string; + price: string; + whitelistedBuyer: string; + }; + buy_item: { + collection: string; + item: string; + bidPrice: string; + }; + pay_tips: { + tips: string; + }; + create_swap: { + offeredCollection: string; + offeredItem: string; + desiredCollection: string; + maybeDesiredItem: string; + maybePrice: string; + duration: string; + }; + cancel_swap: { + offeredCollection: string; + offeredItem: string; + }; + claim_swap: { + sendCollection: string; + sendItem: string; + receiveCollection: string; + receiveItem: string; + witnessPrice: string; + }; + mint_pre_signed: { + mintData: string; + signature: string; + signer: string; + }; + set_attributes_pre_signed: { + data: string; + signature: string; + signer: string; + }; + }; + }; + /** + * Lookup347: pallet_nfts::types::CollectionConfig + **/ + PalletNftsCollectionConfig: { + settings: string; + maxSupply: string; + mintSettings: string; + }; + /** + * Lookup349: pallet_nfts::types::CollectionSetting + **/ + PalletNftsCollectionSetting: { + _enum: string[]; + }; + /** + * Lookup350: pallet_nfts::types::MintSettings + **/ + PalletNftsMintSettings: { + mintType: string; + price: string; + startBlock: string; + endBlock: string; + defaultItemSettings: string; + }; + /** + * Lookup351: pallet_nfts::types::MintType + **/ + PalletNftsMintType: { + _enum: { + Issuer: string; + Public: string; + HolderOf: string; + }; + }; + /** + * Lookup354: pallet_nfts::types::ItemSetting + **/ + PalletNftsItemSetting: { + _enum: string[]; + }; + /** + * Lookup355: pallet_nfts::types::DestroyWitness + **/ + PalletNftsDestroyWitness: { + itemMetadatas: string; + itemConfigs: string; + attributes: string; + }; + /** + * Lookup357: pallet_nfts::types::MintWitness + **/ + PalletNftsMintWitness: { + ownedItem: string; + mintPrice: string; + }; + /** + * Lookup358: pallet_nfts::types::ItemConfig + **/ + PalletNftsItemConfig: { + settings: string; + }; + /** + * Lookup360: pallet_nfts::types::CancelAttributesApprovalWitness + **/ + PalletNftsCancelAttributesApprovalWitness: { + accountAttributes: string; + }; + /** + * Lookup362: pallet_nfts::types::ItemTip + **/ + PalletNftsItemTip: { + collection: string; + item: string; + receiver: string; + amount: string; + }; + /** + * Lookup364: pallet_nfts::types::PreSignedMint + **/ + PalletNftsPreSignedMint: { + collection: string; + item: string; + attributes: string; + metadata: string; + onlyAccount: string; + deadline: string; + mintPrice: string; + }; + /** + * Lookup365: sp_runtime::MultiSignature + **/ + SpRuntimeMultiSignature: { + _enum: { + Ed25519: string; + Sr25519: string; + Ecdsa: string; + }; + }; + /** + * Lookup368: pallet_nfts::types::PreSignedAttributes + **/ + PalletNftsPreSignedAttributes: { + collection: string; + item: string; + attributes: string; + namespace: string; + deadline: string; + }; + /** + * Lookup369: pallet_parameters::pallet::Call + **/ + PalletParametersCall: { + _enum: { + set_parameter: { + keyValue: string; + }; + }; + }; + /** + * Lookup370: storage_hub_runtime::configs::runtime_params::RuntimeParameters + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { + _enum: { + RuntimeConfig: string; + }; + }; + /** + * Lookup371: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { + _enum: { + SlashAmountPerMaxFileSize: string; + StakeToChallengePeriod: string; + CheckpointChallengePeriod: string; + MinChallengePeriod: string; + }; + }; + /** + * Lookup372: pallet_sudo::pallet::Error + **/ + PalletSudoError: { + _enum: string[]; + }; + /** + * Lookup375: pallet_collator_selection::pallet::CandidateInfo + **/ + PalletCollatorSelectionCandidateInfo: { + who: string; + deposit: string; + }; + /** + * Lookup377: pallet_collator_selection::pallet::Error + **/ + PalletCollatorSelectionError: { + _enum: string[]; + }; + /** + * Lookup381: sp_core::crypto::KeyTypeId + **/ + SpCoreCryptoKeyTypeId: string; + /** + * Lookup382: pallet_session::pallet::Error + **/ + PalletSessionError: { + _enum: string[]; + }; + /** + * Lookup391: cumulus_pallet_xcmp_queue::OutboundChannelDetails + **/ + CumulusPalletXcmpQueueOutboundChannelDetails: { + recipient: string; + state: string; + signalsExist: string; + firstIndex: string; + lastIndex: string; + }; + /** + * Lookup392: cumulus_pallet_xcmp_queue::OutboundState + **/ + CumulusPalletXcmpQueueOutboundState: { + _enum: string[]; + }; + /** + * Lookup396: cumulus_pallet_xcmp_queue::QueueConfigData + **/ + CumulusPalletXcmpQueueQueueConfigData: { + suspendThreshold: string; + dropThreshold: string; + resumeThreshold: string; + }; + /** + * Lookup397: cumulus_pallet_xcmp_queue::pallet::Error + **/ + CumulusPalletXcmpQueueError: { + _enum: string[]; + }; + /** + * Lookup398: pallet_xcm::pallet::QueryStatus + **/ + PalletXcmQueryStatus: { + _enum: { + Pending: { + responder: string; + maybeMatchQuerier: string; + maybeNotify: string; + timeout: string; + }; + VersionNotifier: { + origin: string; + isActive: string; + }; + Ready: { + response: string; + at: string; + }; + }; + }; + /** + * Lookup402: xcm::VersionedResponse + **/ + XcmVersionedResponse: { + _enum: { + __Unused0: string; + __Unused1: string; + V2: string; + V3: string; + V4: string; + }; + }; + /** + * Lookup408: pallet_xcm::pallet::VersionMigrationStage + **/ + PalletXcmVersionMigrationStage: { + _enum: { + MigrateSupportedVersion: string; + MigrateVersionNotifiers: string; + NotifyCurrentTargets: string; + MigrateAndNotifyOldTargets: string; + }; + }; + /** + * Lookup411: pallet_xcm::pallet::RemoteLockedFungibleRecord + **/ + PalletXcmRemoteLockedFungibleRecord: { + amount: string; + owner: string; + locker: string; + consumers: string; + }; + /** + * Lookup418: pallet_xcm::pallet::Error + **/ + PalletXcmError: { + _enum: string[]; + }; + /** + * Lookup419: pallet_message_queue::BookState + **/ + PalletMessageQueueBookState: { + _alias: { + size_: string; + }; + begin: string; + end: string; + count: string; + readyNeighbours: string; + messageCount: string; + size_: string; + }; + /** + * Lookup421: pallet_message_queue::Neighbours + **/ + PalletMessageQueueNeighbours: { + prev: string; + next: string; + }; + /** + * Lookup423: pallet_message_queue::Page + **/ + PalletMessageQueuePage: { + remaining: string; + remainingSize: string; + firstIndex: string; + first: string; + last: string; + heap: string; + }; + /** + * Lookup425: pallet_message_queue::pallet::Error + **/ + PalletMessageQueueError: { + _enum: string[]; + }; + /** + * Lookup427: pallet_storage_providers::types::StorageProvider + **/ + PalletStorageProvidersStorageProvider: { + _enum: { + BackupStorageProvider: string; + MainStorageProvider: string; + }; + }; + /** + * Lookup428: pallet_storage_providers::types::BackupStorageProvider + **/ + PalletStorageProvidersBackupStorageProvider: { + capacity: string; + capacityUsed: string; + multiaddresses: string; + root: string; + lastCapacityChange: string; + ownerAccount: string; + paymentAccount: string; + reputationWeight: string; + }; + /** + * Lookup429: pallet_storage_providers::types::MainStorageProvider + **/ + PalletStorageProvidersMainStorageProvider: { + buckets: string; + capacity: string; + capacityUsed: string; + multiaddresses: string; + valueProp: string; + lastCapacityChange: string; + ownerAccount: string; + paymentAccount: string; + }; + /** + * Lookup431: pallet_storage_providers::types::Bucket + **/ + PalletStorageProvidersBucket: { + _alias: { + size_: string; + }; + root: string; + userId: string; + mspId: string; + private: string; + readAccessGroupId: string; + size_: string; + }; + /** + * Lookup434: pallet_storage_providers::pallet::Error + **/ + PalletStorageProvidersError: { + _enum: string[]; + }; + /** + * Lookup435: pallet_file_system::types::StorageRequestMetadata + **/ + PalletFileSystemStorageRequestMetadata: { + _alias: { + size_: string; + }; + requestedAt: string; + owner: string; + bucketId: string; + location: string; + fingerprint: string; + size_: string; + msp: string; + userPeerIds: string; + dataServerSps: string; + bspsRequired: string; + bspsConfirmed: string; + bspsVolunteered: string; + }; + /** + * Lookup440: pallet_file_system::types::StorageRequestBspsMetadata + **/ + PalletFileSystemStorageRequestBspsMetadata: { + confirmed: string; + }; + /** + * Lookup449: pallet_file_system::types::MoveBucketRequestMetadata + **/ + PalletFileSystemMoveBucketRequestMetadata: { + requester: string; + }; + /** + * Lookup450: pallet_file_system::pallet::Error + **/ + PalletFileSystemError: { + _enum: string[]; + }; + /** + * Lookup457: pallet_proofs_dealer::pallet::Error + **/ + PalletProofsDealerError: { + _enum: string[]; + }; + /** + * Lookup460: pallet_payment_streams::types::FixedRatePaymentStream + **/ + PalletPaymentStreamsFixedRatePaymentStream: { + rate: string; + lastChargedTick: string; + userDeposit: string; + outOfFundsTick: string; + }; + /** + * Lookup461: pallet_payment_streams::types::DynamicRatePaymentStream + **/ + PalletPaymentStreamsDynamicRatePaymentStream: { + amountProvided: string; + priceIndexWhenLastCharged: string; + userDeposit: string; + outOfFundsTick: string; + }; + /** + * Lookup462: pallet_payment_streams::types::ProviderLastChargeableInfo + **/ + PalletPaymentStreamsProviderLastChargeableInfo: { + lastChargeableTick: string; + priceIndex: string; + }; + /** + * Lookup463: pallet_payment_streams::pallet::Error + **/ + PalletPaymentStreamsError: { + _enum: string[]; + }; + /** + * Lookup464: pallet_bucket_nfts::pallet::Error + **/ + PalletBucketNftsError: { + _enum: string[]; + }; + /** + * Lookup465: pallet_nfts::types::CollectionDetails + **/ + PalletNftsCollectionDetails: { + owner: string; + ownerDeposit: string; + items: string; + itemMetadatas: string; + itemConfigs: string; + attributes: string; + }; + /** + * Lookup470: pallet_nfts::types::CollectionRole + **/ + PalletNftsCollectionRole: { + _enum: string[]; + }; + /** + * Lookup471: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + **/ + PalletNftsItemDetails: { + owner: string; + approvals: string; + deposit: string; + }; + /** + * Lookup472: pallet_nfts::types::ItemDeposit + **/ + PalletNftsItemDeposit: { + account: string; + amount: string; + }; + /** + * Lookup477: pallet_nfts::types::CollectionMetadata + **/ + PalletNftsCollectionMetadata: { + deposit: string; + data: string; + }; + /** + * Lookup478: pallet_nfts::types::ItemMetadata, StringLimit> + **/ + PalletNftsItemMetadata: { + deposit: string; + data: string; + }; + /** + * Lookup479: pallet_nfts::types::ItemMetadataDeposit + **/ + PalletNftsItemMetadataDeposit: { + account: string; + amount: string; + }; + /** + * Lookup482: pallet_nfts::types::AttributeDeposit + **/ + PalletNftsAttributeDeposit: { + account: string; + amount: string; + }; + /** + * Lookup486: pallet_nfts::types::PendingSwap, Deadline> + **/ + PalletNftsPendingSwap: { + desiredCollection: string; + desiredItem: string; + price: string; + deadline: string; + }; + /** + * Lookup488: pallet_nfts::types::PalletFeature + **/ + PalletNftsPalletFeature: { + _enum: string[]; + }; + /** + * Lookup489: pallet_nfts::pallet::Error + **/ + PalletNftsError: { + _enum: string[]; + }; + /** + * Lookup492: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + **/ + FrameSystemExtensionsCheckNonZeroSender: string; + /** + * Lookup493: frame_system::extensions::check_spec_version::CheckSpecVersion + **/ + FrameSystemExtensionsCheckSpecVersion: string; + /** + * Lookup494: frame_system::extensions::check_tx_version::CheckTxVersion + **/ + FrameSystemExtensionsCheckTxVersion: string; + /** + * Lookup495: frame_system::extensions::check_genesis::CheckGenesis + **/ + FrameSystemExtensionsCheckGenesis: string; + /** + * Lookup498: frame_system::extensions::check_nonce::CheckNonce + **/ + FrameSystemExtensionsCheckNonce: string; + /** + * Lookup499: frame_system::extensions::check_weight::CheckWeight + **/ + FrameSystemExtensionsCheckWeight: string; + /** + * Lookup500: pallet_transaction_payment::ChargeTransactionPayment + **/ + PalletTransactionPaymentChargeTransactionPayment: string; + /** + * Lookup501: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + **/ + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: string; + /** + * Lookup502: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: string; + }; + /** + * Lookup503: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: string[]; + }; + /** + * Lookup504: storage_hub_runtime::Runtime + **/ + StorageHubRuntimeRuntime: string; +}; +export default _default; diff --git a/api-augment/dist/types/interfaces/registry.d.ts b/api-augment/dist/types/interfaces/registry.d.ts index 6ab351d23..16295be98 100644 --- a/api-augment/dist/types/interfaces/registry.d.ts +++ b/api-augment/dist/types/interfaces/registry.d.ts @@ -1,539 +1,539 @@ -import "@polkadot/types/types/registry"; -import type { - CumulusPalletParachainSystemCall, - CumulusPalletParachainSystemError, - CumulusPalletParachainSystemEvent, - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, - CumulusPalletParachainSystemUnincludedSegmentAncestor, - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, - CumulusPalletXcmCall, - CumulusPalletXcmEvent, - CumulusPalletXcmpQueueCall, - CumulusPalletXcmpQueueError, - CumulusPalletXcmpQueueEvent, - CumulusPalletXcmpQueueOutboundChannelDetails, - CumulusPalletXcmpQueueOutboundState, - CumulusPalletXcmpQueueQueueConfigData, - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, - FrameMetadataHashExtensionCheckMetadataHash, - FrameMetadataHashExtensionMode, - FrameSupportDispatchDispatchClass, - FrameSupportDispatchDispatchInfo, - FrameSupportDispatchPays, - FrameSupportDispatchPerDispatchClassU32, - FrameSupportDispatchPerDispatchClassWeight, - FrameSupportDispatchPerDispatchClassWeightsPerClass, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - FrameSystemAccountInfo, - FrameSystemCall, - FrameSystemCodeUpgradeAuthorization, - FrameSystemError, - FrameSystemEvent, - FrameSystemEventRecord, - FrameSystemExtensionsCheckGenesis, - FrameSystemExtensionsCheckNonZeroSender, - FrameSystemExtensionsCheckNonce, - FrameSystemExtensionsCheckSpecVersion, - FrameSystemExtensionsCheckTxVersion, - FrameSystemExtensionsCheckWeight, - FrameSystemLastRuntimeUpgradeInfo, - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - FrameSystemLimitsWeightsPerClass, - FrameSystemPhase, - PalletBalancesAccountData, - PalletBalancesAdjustmentDirection, - PalletBalancesBalanceLock, - PalletBalancesCall, - PalletBalancesError, - PalletBalancesEvent, - PalletBalancesIdAmount, - PalletBalancesReasons, - PalletBalancesReserveData, - PalletBucketNftsCall, - PalletBucketNftsError, - PalletBucketNftsEvent, - PalletCollatorSelectionCall, - PalletCollatorSelectionCandidateInfo, - PalletCollatorSelectionError, - PalletCollatorSelectionEvent, - PalletFileSystemAcceptedStorageRequestParameters, - PalletFileSystemBatchResponses, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemCall, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemError, - PalletFileSystemEvent, - PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemMspAcceptedBatchStorageRequests, - PalletFileSystemMspFailedBatchStorageRequests, - PalletFileSystemMspRejectedBatchStorageRequests, - PalletFileSystemMspRespondStorageRequestsResult, - PalletFileSystemMspStorageRequestResponse, - PalletFileSystemRejectedStorageRequestReason, - PalletFileSystemStorageRequestBspsMetadata, - PalletFileSystemStorageRequestMetadata, - PalletMessageQueueBookState, - PalletMessageQueueCall, - PalletMessageQueueError, - PalletMessageQueueEvent, - PalletMessageQueueNeighbours, - PalletMessageQueuePage, - PalletNftsAttributeDeposit, - PalletNftsAttributeNamespace, - PalletNftsCall, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsCollectionDetails, - PalletNftsCollectionMetadata, - PalletNftsCollectionRole, - PalletNftsCollectionSetting, - PalletNftsDestroyWitness, - PalletNftsError, - PalletNftsEvent, - PalletNftsItemConfig, - PalletNftsItemDeposit, - PalletNftsItemDetails, - PalletNftsItemMetadata, - PalletNftsItemMetadataDeposit, - PalletNftsItemSetting, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintType, - PalletNftsMintWitness, - PalletNftsPalletAttributes, - PalletNftsPalletFeature, - PalletNftsPendingSwap, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceDirection, - PalletNftsPriceWithDirection, - PalletParametersCall, - PalletParametersEvent, - PalletPaymentStreamsCall, - PalletPaymentStreamsDynamicRatePaymentStream, - PalletPaymentStreamsError, - PalletPaymentStreamsEvent, - PalletPaymentStreamsFixedRatePaymentStream, - PalletPaymentStreamsHoldReason, - PalletPaymentStreamsProviderLastChargeableInfo, - PalletProofsDealerCall, - PalletProofsDealerError, - PalletProofsDealerEvent, - PalletProofsDealerKeyProof, - PalletProofsDealerProof, - PalletRandomnessCall, - PalletRandomnessEvent, - PalletSessionCall, - PalletSessionError, - PalletSessionEvent, - PalletStorageProvidersBackupStorageProvider, - PalletStorageProvidersBucket, - PalletStorageProvidersCall, - PalletStorageProvidersError, - PalletStorageProvidersEvent, - PalletStorageProvidersHoldReason, - PalletStorageProvidersMainStorageProvider, - PalletStorageProvidersStorageProvider, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - PalletSudoCall, - PalletSudoError, - PalletSudoEvent, - PalletTimestampCall, - PalletTransactionPaymentChargeTransactionPayment, - PalletTransactionPaymentEvent, - PalletTransactionPaymentReleases, - PalletXcmCall, - PalletXcmError, - PalletXcmEvent, - PalletXcmQueryStatus, - PalletXcmRemoteLockedFungibleRecord, - PalletXcmVersionMigrationStage, - PolkadotCorePrimitivesInboundDownwardMessage, - PolkadotCorePrimitivesInboundHrmpMessage, - PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV7AbridgedHostConfiguration, - PolkadotPrimitivesV7AbridgedHrmpChannel, - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, - PolkadotPrimitivesV7PersistedValidationData, - PolkadotPrimitivesV7UpgradeGoAhead, - PolkadotPrimitivesV7UpgradeRestriction, - ShpFileKeyVerifierFileKeyProof, - ShpFileMetadataFileMetadata, - ShpFileMetadataFingerprint, - ShpTraitsTrieRemoveMutation, - SpArithmeticArithmeticError, - SpConsensusAuraSr25519AppSr25519Public, - SpCoreCryptoKeyTypeId, - SpRuntimeDigest, - SpRuntimeDigestDigestItem, - SpRuntimeDispatchError, - SpRuntimeModuleError, - SpRuntimeMultiSignature, - SpRuntimeTokenError, - SpRuntimeTransactionalError, - SpTrieStorageProof, - SpTrieStorageProofCompactProof, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight, - StagingParachainInfoCall, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV3MultiLocation, - StagingXcmV4Asset, - StagingXcmV4AssetAssetFilter, - StagingXcmV4AssetAssetId, - StagingXcmV4AssetAssetInstance, - StagingXcmV4AssetAssets, - StagingXcmV4AssetFungibility, - StagingXcmV4AssetWildAsset, - StagingXcmV4AssetWildFungibility, - StagingXcmV4Instruction, - StagingXcmV4Junction, - StagingXcmV4JunctionNetworkId, - StagingXcmV4Junctions, - StagingXcmV4Location, - StagingXcmV4PalletInfo, - StagingXcmV4QueryResponseInfo, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - StorageHubRuntimeRuntime, - StorageHubRuntimeRuntimeHoldReason, - StorageHubRuntimeSessionKeys, - XcmDoubleEncoded, - XcmV2BodyId, - XcmV2BodyPart, - XcmV2Instruction, - XcmV2Junction, - XcmV2MultiAsset, - XcmV2MultiLocation, - XcmV2MultiassetAssetId, - XcmV2MultiassetAssetInstance, - XcmV2MultiassetFungibility, - XcmV2MultiassetMultiAssetFilter, - XcmV2MultiassetMultiAssets, - XcmV2MultiassetWildFungibility, - XcmV2MultiassetWildMultiAsset, - XcmV2MultilocationJunctions, - XcmV2NetworkId, - XcmV2OriginKind, - XcmV2Response, - XcmV2TraitsError, - XcmV2WeightLimit, - XcmV2Xcm, - XcmV3Instruction, - XcmV3Junction, - XcmV3JunctionBodyId, - XcmV3JunctionBodyPart, - XcmV3JunctionNetworkId, - XcmV3Junctions, - XcmV3MaybeErrorCode, - XcmV3MultiAsset, - XcmV3MultiassetAssetId, - XcmV3MultiassetAssetInstance, - XcmV3MultiassetFungibility, - XcmV3MultiassetMultiAssetFilter, - XcmV3MultiassetMultiAssets, - XcmV3MultiassetWildFungibility, - XcmV3MultiassetWildMultiAsset, - XcmV3OriginKind, - XcmV3PalletInfo, - XcmV3QueryResponseInfo, - XcmV3Response, - XcmV3TraitsError, - XcmV3WeightLimit, - XcmV3Xcm, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedResponse, - XcmVersionedXcm -} from "@polkadot/types/lookup"; -declare module "@polkadot/types/types/registry" { - interface InterfaceTypes { - CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; - CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; - CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - CumulusPalletXcmCall: CumulusPalletXcmCall; - CumulusPalletXcmEvent: CumulusPalletXcmEvent; - CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; - CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; - CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; - CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; - CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; - CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; - CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; - FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; - FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; - FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; - FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; - FrameSupportDispatchPays: FrameSupportDispatchPays; - FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; - FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; - FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; - FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; - FrameSystemAccountInfo: FrameSystemAccountInfo; - FrameSystemCall: FrameSystemCall; - FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; - FrameSystemError: FrameSystemError; - FrameSystemEvent: FrameSystemEvent; - FrameSystemEventRecord: FrameSystemEventRecord; - FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; - FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; - FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; - FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; - FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; - FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; - FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; - FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; - FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; - FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; - FrameSystemPhase: FrameSystemPhase; - PalletBalancesAccountData: PalletBalancesAccountData; - PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; - PalletBalancesBalanceLock: PalletBalancesBalanceLock; - PalletBalancesCall: PalletBalancesCall; - PalletBalancesError: PalletBalancesError; - PalletBalancesEvent: PalletBalancesEvent; - PalletBalancesIdAmount: PalletBalancesIdAmount; - PalletBalancesReasons: PalletBalancesReasons; - PalletBalancesReserveData: PalletBalancesReserveData; - PalletBucketNftsCall: PalletBucketNftsCall; - PalletBucketNftsError: PalletBucketNftsError; - PalletBucketNftsEvent: PalletBucketNftsEvent; - PalletCollatorSelectionCall: PalletCollatorSelectionCall; - PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; - PalletCollatorSelectionError: PalletCollatorSelectionError; - PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; - PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; - PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; - PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; - PalletFileSystemCall: PalletFileSystemCall; - PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; - PalletFileSystemError: PalletFileSystemError; - PalletFileSystemEvent: PalletFileSystemEvent; - PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; - PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; - PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; - PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; - PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; - PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; - PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; - PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; - PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; - PalletMessageQueueBookState: PalletMessageQueueBookState; - PalletMessageQueueCall: PalletMessageQueueCall; - PalletMessageQueueError: PalletMessageQueueError; - PalletMessageQueueEvent: PalletMessageQueueEvent; - PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; - PalletMessageQueuePage: PalletMessageQueuePage; - PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; - PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; - PalletNftsCall: PalletNftsCall; - PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; - PalletNftsCollectionConfig: PalletNftsCollectionConfig; - PalletNftsCollectionDetails: PalletNftsCollectionDetails; - PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; - PalletNftsCollectionRole: PalletNftsCollectionRole; - PalletNftsCollectionSetting: PalletNftsCollectionSetting; - PalletNftsDestroyWitness: PalletNftsDestroyWitness; - PalletNftsError: PalletNftsError; - PalletNftsEvent: PalletNftsEvent; - PalletNftsItemConfig: PalletNftsItemConfig; - PalletNftsItemDeposit: PalletNftsItemDeposit; - PalletNftsItemDetails: PalletNftsItemDetails; - PalletNftsItemMetadata: PalletNftsItemMetadata; - PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; - PalletNftsItemSetting: PalletNftsItemSetting; - PalletNftsItemTip: PalletNftsItemTip; - PalletNftsMintSettings: PalletNftsMintSettings; - PalletNftsMintType: PalletNftsMintType; - PalletNftsMintWitness: PalletNftsMintWitness; - PalletNftsPalletAttributes: PalletNftsPalletAttributes; - PalletNftsPalletFeature: PalletNftsPalletFeature; - PalletNftsPendingSwap: PalletNftsPendingSwap; - PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; - PalletNftsPreSignedMint: PalletNftsPreSignedMint; - PalletNftsPriceDirection: PalletNftsPriceDirection; - PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; - PalletParametersCall: PalletParametersCall; - PalletParametersEvent: PalletParametersEvent; - PalletPaymentStreamsCall: PalletPaymentStreamsCall; - PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; - PalletPaymentStreamsError: PalletPaymentStreamsError; - PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; - PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; - PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; - PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; - PalletProofsDealerCall: PalletProofsDealerCall; - PalletProofsDealerError: PalletProofsDealerError; - PalletProofsDealerEvent: PalletProofsDealerEvent; - PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; - PalletProofsDealerProof: PalletProofsDealerProof; - PalletRandomnessCall: PalletRandomnessCall; - PalletRandomnessEvent: PalletRandomnessEvent; - PalletSessionCall: PalletSessionCall; - PalletSessionError: PalletSessionError; - PalletSessionEvent: PalletSessionEvent; - PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; - PalletStorageProvidersBucket: PalletStorageProvidersBucket; - PalletStorageProvidersCall: PalletStorageProvidersCall; - PalletStorageProvidersError: PalletStorageProvidersError; - PalletStorageProvidersEvent: PalletStorageProvidersEvent; - PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; - PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; - PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; - PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; - PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; - PalletSudoCall: PalletSudoCall; - PalletSudoError: PalletSudoError; - PalletSudoEvent: PalletSudoEvent; - PalletTimestampCall: PalletTimestampCall; - PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; - PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; - PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; - PalletXcmCall: PalletXcmCall; - PalletXcmError: PalletXcmError; - PalletXcmEvent: PalletXcmEvent; - PalletXcmQueryStatus: PalletXcmQueryStatus; - PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; - PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; - PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; - PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; - PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; - PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; - PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; - PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; - PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; - PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; - ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; - ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; - ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; - ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; - SpArithmeticArithmeticError: SpArithmeticArithmeticError; - SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; - SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; - SpRuntimeDigest: SpRuntimeDigest; - SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; - SpRuntimeDispatchError: SpRuntimeDispatchError; - SpRuntimeModuleError: SpRuntimeModuleError; - SpRuntimeMultiSignature: SpRuntimeMultiSignature; - SpRuntimeTokenError: SpRuntimeTokenError; - SpRuntimeTransactionalError: SpRuntimeTransactionalError; - SpTrieStorageProof: SpTrieStorageProof; - SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; - SpVersionRuntimeVersion: SpVersionRuntimeVersion; - SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; - SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; - StagingParachainInfoCall: StagingParachainInfoCall; - StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; - StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; - StagingXcmV4Asset: StagingXcmV4Asset; - StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; - StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; - StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; - StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; - StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; - StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; - StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; - StagingXcmV4Instruction: StagingXcmV4Instruction; - StagingXcmV4Junction: StagingXcmV4Junction; - StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; - StagingXcmV4Junctions: StagingXcmV4Junctions; - StagingXcmV4Location: StagingXcmV4Location; - StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; - StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; - StagingXcmV4Response: StagingXcmV4Response; - StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; - StagingXcmV4Xcm: StagingXcmV4Xcm; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; - StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; - StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; - StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; - XcmDoubleEncoded: XcmDoubleEncoded; - XcmV2BodyId: XcmV2BodyId; - XcmV2BodyPart: XcmV2BodyPart; - XcmV2Instruction: XcmV2Instruction; - XcmV2Junction: XcmV2Junction; - XcmV2MultiAsset: XcmV2MultiAsset; - XcmV2MultiLocation: XcmV2MultiLocation; - XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; - XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; - XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; - XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; - XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; - XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; - XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; - XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; - XcmV2NetworkId: XcmV2NetworkId; - XcmV2OriginKind: XcmV2OriginKind; - XcmV2Response: XcmV2Response; - XcmV2TraitsError: XcmV2TraitsError; - XcmV2WeightLimit: XcmV2WeightLimit; - XcmV2Xcm: XcmV2Xcm; - XcmV3Instruction: XcmV3Instruction; - XcmV3Junction: XcmV3Junction; - XcmV3JunctionBodyId: XcmV3JunctionBodyId; - XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; - XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; - XcmV3Junctions: XcmV3Junctions; - XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; - XcmV3MultiAsset: XcmV3MultiAsset; - XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; - XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; - XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; - XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; - XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; - XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; - XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; - XcmV3OriginKind: XcmV3OriginKind; - XcmV3PalletInfo: XcmV3PalletInfo; - XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; - XcmV3Response: XcmV3Response; - XcmV3TraitsError: XcmV3TraitsError; - XcmV3WeightLimit: XcmV3WeightLimit; - XcmV3Xcm: XcmV3Xcm; - XcmVersionedAssetId: XcmVersionedAssetId; - XcmVersionedAssets: XcmVersionedAssets; - XcmVersionedLocation: XcmVersionedLocation; - XcmVersionedResponse: XcmVersionedResponse; - XcmVersionedXcm: XcmVersionedXcm; - } -} +import "@polkadot/types/types/registry"; +import type { + CumulusPalletParachainSystemCall, + CumulusPalletParachainSystemError, + CumulusPalletParachainSystemEvent, + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, + CumulusPalletParachainSystemUnincludedSegmentAncestor, + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, + CumulusPalletXcmCall, + CumulusPalletXcmEvent, + CumulusPalletXcmpQueueCall, + CumulusPalletXcmpQueueError, + CumulusPalletXcmpQueueEvent, + CumulusPalletXcmpQueueOutboundChannelDetails, + CumulusPalletXcmpQueueOutboundState, + CumulusPalletXcmpQueueQueueConfigData, + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, + FrameMetadataHashExtensionCheckMetadataHash, + FrameMetadataHashExtensionMode, + FrameSupportDispatchDispatchClass, + FrameSupportDispatchDispatchInfo, + FrameSupportDispatchPays, + FrameSupportDispatchPerDispatchClassU32, + FrameSupportDispatchPerDispatchClassWeight, + FrameSupportDispatchPerDispatchClassWeightsPerClass, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + FrameSystemAccountInfo, + FrameSystemCall, + FrameSystemCodeUpgradeAuthorization, + FrameSystemError, + FrameSystemEvent, + FrameSystemEventRecord, + FrameSystemExtensionsCheckGenesis, + FrameSystemExtensionsCheckNonZeroSender, + FrameSystemExtensionsCheckNonce, + FrameSystemExtensionsCheckSpecVersion, + FrameSystemExtensionsCheckTxVersion, + FrameSystemExtensionsCheckWeight, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + FrameSystemLimitsWeightsPerClass, + FrameSystemPhase, + PalletBalancesAccountData, + PalletBalancesAdjustmentDirection, + PalletBalancesBalanceLock, + PalletBalancesCall, + PalletBalancesError, + PalletBalancesEvent, + PalletBalancesIdAmount, + PalletBalancesReasons, + PalletBalancesReserveData, + PalletBucketNftsCall, + PalletBucketNftsError, + PalletBucketNftsEvent, + PalletCollatorSelectionCall, + PalletCollatorSelectionCandidateInfo, + PalletCollatorSelectionError, + PalletCollatorSelectionEvent, + PalletFileSystemAcceptedStorageRequestParameters, + PalletFileSystemBatchResponses, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemCall, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemError, + PalletFileSystemEvent, + PalletFileSystemMoveBucketRequestMetadata, + PalletFileSystemMspAcceptedBatchStorageRequests, + PalletFileSystemMspFailedBatchStorageRequests, + PalletFileSystemMspRejectedBatchStorageRequests, + PalletFileSystemMspRespondStorageRequestsResult, + PalletFileSystemMspStorageRequestResponse, + PalletFileSystemRejectedStorageRequestReason, + PalletFileSystemStorageRequestBspsMetadata, + PalletFileSystemStorageRequestMetadata, + PalletMessageQueueBookState, + PalletMessageQueueCall, + PalletMessageQueueError, + PalletMessageQueueEvent, + PalletMessageQueueNeighbours, + PalletMessageQueuePage, + PalletNftsAttributeDeposit, + PalletNftsAttributeNamespace, + PalletNftsCall, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsCollectionDetails, + PalletNftsCollectionMetadata, + PalletNftsCollectionRole, + PalletNftsCollectionSetting, + PalletNftsDestroyWitness, + PalletNftsError, + PalletNftsEvent, + PalletNftsItemConfig, + PalletNftsItemDeposit, + PalletNftsItemDetails, + PalletNftsItemMetadata, + PalletNftsItemMetadataDeposit, + PalletNftsItemSetting, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintType, + PalletNftsMintWitness, + PalletNftsPalletAttributes, + PalletNftsPalletFeature, + PalletNftsPendingSwap, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceDirection, + PalletNftsPriceWithDirection, + PalletParametersCall, + PalletParametersEvent, + PalletPaymentStreamsCall, + PalletPaymentStreamsDynamicRatePaymentStream, + PalletPaymentStreamsError, + PalletPaymentStreamsEvent, + PalletPaymentStreamsFixedRatePaymentStream, + PalletPaymentStreamsHoldReason, + PalletPaymentStreamsProviderLastChargeableInfo, + PalletProofsDealerCall, + PalletProofsDealerError, + PalletProofsDealerEvent, + PalletProofsDealerKeyProof, + PalletProofsDealerProof, + PalletRandomnessCall, + PalletRandomnessEvent, + PalletSessionCall, + PalletSessionError, + PalletSessionEvent, + PalletStorageProvidersBackupStorageProvider, + PalletStorageProvidersBucket, + PalletStorageProvidersCall, + PalletStorageProvidersError, + PalletStorageProvidersEvent, + PalletStorageProvidersHoldReason, + PalletStorageProvidersMainStorageProvider, + PalletStorageProvidersStorageProvider, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + PalletSudoCall, + PalletSudoError, + PalletSudoEvent, + PalletTimestampCall, + PalletTransactionPaymentChargeTransactionPayment, + PalletTransactionPaymentEvent, + PalletTransactionPaymentReleases, + PalletXcmCall, + PalletXcmError, + PalletXcmEvent, + PalletXcmQueryStatus, + PalletXcmRemoteLockedFungibleRecord, + PalletXcmVersionMigrationStage, + PolkadotCorePrimitivesInboundDownwardMessage, + PolkadotCorePrimitivesInboundHrmpMessage, + PolkadotCorePrimitivesOutboundHrmpMessage, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7AbridgedHrmpChannel, + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, + ShpFileKeyVerifierFileKeyProof, + ShpFileMetadataFileMetadata, + ShpFileMetadataFingerprint, + ShpTraitsTrieRemoveMutation, + SpArithmeticArithmeticError, + SpConsensusAuraSr25519AppSr25519Public, + SpCoreCryptoKeyTypeId, + SpRuntimeDigest, + SpRuntimeDigestDigestItem, + SpRuntimeDispatchError, + SpRuntimeModuleError, + SpRuntimeMultiSignature, + SpRuntimeTokenError, + SpRuntimeTransactionalError, + SpTrieStorageProof, + SpTrieStorageProofCompactProof, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight, + StagingParachainInfoCall, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV3MultiLocation, + StagingXcmV4Asset, + StagingXcmV4AssetAssetFilter, + StagingXcmV4AssetAssetId, + StagingXcmV4AssetAssetInstance, + StagingXcmV4AssetAssets, + StagingXcmV4AssetFungibility, + StagingXcmV4AssetWildAsset, + StagingXcmV4AssetWildFungibility, + StagingXcmV4Instruction, + StagingXcmV4Junction, + StagingXcmV4JunctionNetworkId, + StagingXcmV4Junctions, + StagingXcmV4Location, + StagingXcmV4PalletInfo, + StagingXcmV4QueryResponseInfo, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + StorageHubRuntimeRuntime, + StorageHubRuntimeRuntimeHoldReason, + StorageHubRuntimeSessionKeys, + XcmDoubleEncoded, + XcmV2BodyId, + XcmV2BodyPart, + XcmV2Instruction, + XcmV2Junction, + XcmV2MultiAsset, + XcmV2MultiLocation, + XcmV2MultiassetAssetId, + XcmV2MultiassetAssetInstance, + XcmV2MultiassetFungibility, + XcmV2MultiassetMultiAssetFilter, + XcmV2MultiassetMultiAssets, + XcmV2MultiassetWildFungibility, + XcmV2MultiassetWildMultiAsset, + XcmV2MultilocationJunctions, + XcmV2NetworkId, + XcmV2OriginKind, + XcmV2Response, + XcmV2TraitsError, + XcmV2WeightLimit, + XcmV2Xcm, + XcmV3Instruction, + XcmV3Junction, + XcmV3JunctionBodyId, + XcmV3JunctionBodyPart, + XcmV3JunctionNetworkId, + XcmV3Junctions, + XcmV3MaybeErrorCode, + XcmV3MultiAsset, + XcmV3MultiassetAssetId, + XcmV3MultiassetAssetInstance, + XcmV3MultiassetFungibility, + XcmV3MultiassetMultiAssetFilter, + XcmV3MultiassetMultiAssets, + XcmV3MultiassetWildFungibility, + XcmV3MultiassetWildMultiAsset, + XcmV3OriginKind, + XcmV3PalletInfo, + XcmV3QueryResponseInfo, + XcmV3Response, + XcmV3TraitsError, + XcmV3WeightLimit, + XcmV3Xcm, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedResponse, + XcmVersionedXcm +} from "@polkadot/types/lookup"; +declare module "@polkadot/types/types/registry" { + interface InterfaceTypes { + CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; + CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; + CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + CumulusPalletXcmCall: CumulusPalletXcmCall; + CumulusPalletXcmEvent: CumulusPalletXcmEvent; + CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; + CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; + CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; + CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; + CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; + CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; + CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; + FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; + FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; + FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; + FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; + FrameSupportDispatchPays: FrameSupportDispatchPays; + FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; + FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; + FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; + FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; + FrameSystemAccountInfo: FrameSystemAccountInfo; + FrameSystemCall: FrameSystemCall; + FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; + FrameSystemError: FrameSystemError; + FrameSystemEvent: FrameSystemEvent; + FrameSystemEventRecord: FrameSystemEventRecord; + FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; + FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; + FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; + FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; + FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; + FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; + FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; + FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; + FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; + FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; + FrameSystemPhase: FrameSystemPhase; + PalletBalancesAccountData: PalletBalancesAccountData; + PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; + PalletBalancesBalanceLock: PalletBalancesBalanceLock; + PalletBalancesCall: PalletBalancesCall; + PalletBalancesError: PalletBalancesError; + PalletBalancesEvent: PalletBalancesEvent; + PalletBalancesIdAmount: PalletBalancesIdAmount; + PalletBalancesReasons: PalletBalancesReasons; + PalletBalancesReserveData: PalletBalancesReserveData; + PalletBucketNftsCall: PalletBucketNftsCall; + PalletBucketNftsError: PalletBucketNftsError; + PalletBucketNftsEvent: PalletBucketNftsEvent; + PalletCollatorSelectionCall: PalletCollatorSelectionCall; + PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; + PalletCollatorSelectionError: PalletCollatorSelectionError; + PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; + PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; + PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; + PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; + PalletFileSystemCall: PalletFileSystemCall; + PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; + PalletFileSystemError: PalletFileSystemError; + PalletFileSystemEvent: PalletFileSystemEvent; + PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; + PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; + PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; + PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; + PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; + PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; + PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; + PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; + PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; + PalletMessageQueueBookState: PalletMessageQueueBookState; + PalletMessageQueueCall: PalletMessageQueueCall; + PalletMessageQueueError: PalletMessageQueueError; + PalletMessageQueueEvent: PalletMessageQueueEvent; + PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; + PalletMessageQueuePage: PalletMessageQueuePage; + PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; + PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; + PalletNftsCall: PalletNftsCall; + PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; + PalletNftsCollectionConfig: PalletNftsCollectionConfig; + PalletNftsCollectionDetails: PalletNftsCollectionDetails; + PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; + PalletNftsCollectionRole: PalletNftsCollectionRole; + PalletNftsCollectionSetting: PalletNftsCollectionSetting; + PalletNftsDestroyWitness: PalletNftsDestroyWitness; + PalletNftsError: PalletNftsError; + PalletNftsEvent: PalletNftsEvent; + PalletNftsItemConfig: PalletNftsItemConfig; + PalletNftsItemDeposit: PalletNftsItemDeposit; + PalletNftsItemDetails: PalletNftsItemDetails; + PalletNftsItemMetadata: PalletNftsItemMetadata; + PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; + PalletNftsItemSetting: PalletNftsItemSetting; + PalletNftsItemTip: PalletNftsItemTip; + PalletNftsMintSettings: PalletNftsMintSettings; + PalletNftsMintType: PalletNftsMintType; + PalletNftsMintWitness: PalletNftsMintWitness; + PalletNftsPalletAttributes: PalletNftsPalletAttributes; + PalletNftsPalletFeature: PalletNftsPalletFeature; + PalletNftsPendingSwap: PalletNftsPendingSwap; + PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; + PalletNftsPreSignedMint: PalletNftsPreSignedMint; + PalletNftsPriceDirection: PalletNftsPriceDirection; + PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; + PalletParametersCall: PalletParametersCall; + PalletParametersEvent: PalletParametersEvent; + PalletPaymentStreamsCall: PalletPaymentStreamsCall; + PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; + PalletPaymentStreamsError: PalletPaymentStreamsError; + PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; + PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; + PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; + PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; + PalletProofsDealerCall: PalletProofsDealerCall; + PalletProofsDealerError: PalletProofsDealerError; + PalletProofsDealerEvent: PalletProofsDealerEvent; + PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; + PalletProofsDealerProof: PalletProofsDealerProof; + PalletRandomnessCall: PalletRandomnessCall; + PalletRandomnessEvent: PalletRandomnessEvent; + PalletSessionCall: PalletSessionCall; + PalletSessionError: PalletSessionError; + PalletSessionEvent: PalletSessionEvent; + PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; + PalletStorageProvidersBucket: PalletStorageProvidersBucket; + PalletStorageProvidersCall: PalletStorageProvidersCall; + PalletStorageProvidersError: PalletStorageProvidersError; + PalletStorageProvidersEvent: PalletStorageProvidersEvent; + PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; + PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; + PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; + PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; + PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; + PalletSudoCall: PalletSudoCall; + PalletSudoError: PalletSudoError; + PalletSudoEvent: PalletSudoEvent; + PalletTimestampCall: PalletTimestampCall; + PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; + PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; + PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; + PalletXcmCall: PalletXcmCall; + PalletXcmError: PalletXcmError; + PalletXcmEvent: PalletXcmEvent; + PalletXcmQueryStatus: PalletXcmQueryStatus; + PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; + PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; + PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; + PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; + PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; + PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; + PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; + PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; + PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; + ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; + ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; + ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; + ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; + SpArithmeticArithmeticError: SpArithmeticArithmeticError; + SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; + SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; + SpRuntimeDigest: SpRuntimeDigest; + SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; + SpRuntimeDispatchError: SpRuntimeDispatchError; + SpRuntimeModuleError: SpRuntimeModuleError; + SpRuntimeMultiSignature: SpRuntimeMultiSignature; + SpRuntimeTokenError: SpRuntimeTokenError; + SpRuntimeTransactionalError: SpRuntimeTransactionalError; + SpTrieStorageProof: SpTrieStorageProof; + SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; + SpVersionRuntimeVersion: SpVersionRuntimeVersion; + SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; + SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; + StagingParachainInfoCall: StagingParachainInfoCall; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; + StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; + StagingXcmV4Asset: StagingXcmV4Asset; + StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; + StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; + StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; + StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; + StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; + StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; + StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; + StagingXcmV4Instruction: StagingXcmV4Instruction; + StagingXcmV4Junction: StagingXcmV4Junction; + StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; + StagingXcmV4Junctions: StagingXcmV4Junctions; + StagingXcmV4Location: StagingXcmV4Location; + StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; + StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; + StagingXcmV4Response: StagingXcmV4Response; + StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; + StagingXcmV4Xcm: StagingXcmV4Xcm; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; + StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; + StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; + StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; + XcmDoubleEncoded: XcmDoubleEncoded; + XcmV2BodyId: XcmV2BodyId; + XcmV2BodyPart: XcmV2BodyPart; + XcmV2Instruction: XcmV2Instruction; + XcmV2Junction: XcmV2Junction; + XcmV2MultiAsset: XcmV2MultiAsset; + XcmV2MultiLocation: XcmV2MultiLocation; + XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; + XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; + XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; + XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; + XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; + XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; + XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; + XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; + XcmV2NetworkId: XcmV2NetworkId; + XcmV2OriginKind: XcmV2OriginKind; + XcmV2Response: XcmV2Response; + XcmV2TraitsError: XcmV2TraitsError; + XcmV2WeightLimit: XcmV2WeightLimit; + XcmV2Xcm: XcmV2Xcm; + XcmV3Instruction: XcmV3Instruction; + XcmV3Junction: XcmV3Junction; + XcmV3JunctionBodyId: XcmV3JunctionBodyId; + XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; + XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; + XcmV3Junctions: XcmV3Junctions; + XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; + XcmV3MultiAsset: XcmV3MultiAsset; + XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; + XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; + XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; + XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; + XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; + XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; + XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; + XcmV3PalletInfo: XcmV3PalletInfo; + XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; + XcmV3Response: XcmV3Response; + XcmV3TraitsError: XcmV3TraitsError; + XcmV3WeightLimit: XcmV3WeightLimit; + XcmV3Xcm: XcmV3Xcm; + XcmVersionedAssetId: XcmVersionedAssetId; + XcmVersionedAssets: XcmVersionedAssets; + XcmVersionedLocation: XcmVersionedLocation; + XcmVersionedResponse: XcmVersionedResponse; + XcmVersionedXcm: XcmVersionedXcm; + } +} diff --git a/api-augment/dist/types/interfaces/storagehubclient/types.d.ts b/api-augment/dist/types/interfaces/storagehubclient/types.d.ts index 8a7925772..7e2b0598a 100644 --- a/api-augment/dist/types/interfaces/storagehubclient/types.d.ts +++ b/api-augment/dist/types/interfaces/storagehubclient/types.d.ts @@ -1,196 +1,196 @@ -import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; -import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; -/** @name BackupStorageProvider */ -export interface BackupStorageProvider extends Struct { - readonly capacity: StorageData; - readonly data_used: StorageData; - readonly multiaddresses: Bytes; - readonly root: MerklePatriciaRoot; - readonly last_capacity_change: BlockNumber; - readonly owner_account: AccountId; - readonly payment_account: AccountId; -} -/** @name BackupStorageProviderId */ -export interface BackupStorageProviderId extends H256 {} -/** @name ChunkId */ -export interface ChunkId extends u64 {} -/** @name FileMetadata */ -export interface FileMetadata extends Struct { - readonly owner: Bytes; - readonly bucket_id: Bytes; - readonly location: Bytes; - readonly file_size: u64; - readonly fingerprint: U8aFixed; -} -/** @name GetBspInfoError */ -export interface GetBspInfoError extends Enum { - readonly isBspNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "BspNotRegistered" | "InternalApiError"; -} -/** @name GetChallengePeriodError */ -export interface GetChallengePeriodError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name GetChallengeSeedError */ -export interface GetChallengeSeedError extends Enum { - readonly isTickBeyondLastSeedStored: boolean; - readonly isTickIsInTheFuture: boolean; - readonly isInternalApiError: boolean; - readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; -} -/** @name GetCheckpointChallengesError */ -export interface GetCheckpointChallengesError extends Enum { - readonly isTickGreaterThanLastCheckpointTick: boolean; - readonly isNoCheckpointChallengesInTick: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "TickGreaterThanLastCheckpointTick" - | "NoCheckpointChallengesInTick" - | "InternalApiError"; -} -/** @name GetFileFromFileStorageResult */ -export interface GetFileFromFileStorageResult extends Enum { - readonly isFileNotFound: boolean; - readonly isFileFound: boolean; - readonly asFileFound: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly isFileFoundWithInconsistency: boolean; - readonly asFileFoundWithInconsistency: FileMetadata; - readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; -} -/** @name GetLastTickProviderSubmittedProofError */ -export interface GetLastTickProviderSubmittedProofError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNeverSubmittedProof: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; -} -/** @name GetNextDeadlineTickError */ -export interface GetNextDeadlineTickError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNotInitialised: boolean; - readonly isArithmeticOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderNotInitialised" - | "ArithmeticOverflow" - | "InternalApiError"; -} -/** @name GetUsersWithDebtOverThresholdError */ -export interface GetUsersWithDebtOverThresholdError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderWithoutPaymentStreams: boolean; - readonly isAmountToChargeOverflow: boolean; - readonly isDebtOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderWithoutPaymentStreams" - | "AmountToChargeOverflow" - | "DebtOverflow" - | "InternalApiError"; -} -/** @name IncompleteFileStatus */ -export interface IncompleteFileStatus extends Struct { - readonly file_metadata: FileMetadata; - readonly stored_chunks: u64; - readonly total_chunks: u64; -} -/** @name Key */ -export interface Key extends H256 {} -/** @name MainStorageProviderId */ -export interface MainStorageProviderId extends H256 {} -/** @name MerklePatriciaRoot */ -export interface MerklePatriciaRoot extends H256 {} -/** @name ProviderId */ -export interface ProviderId extends H256 {} -/** @name QueryAvailableStorageCapacityError */ -export interface QueryAvailableStorageCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name QueryBspConfirmChunksToProveForFileError */ -export interface QueryBspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} -/** @name QueryConfirmChunksToProveForFileError */ -export interface QueryConfirmChunksToProveForFileError extends Enum { - readonly isChallengedChunkToChunkIdError: boolean; - readonly type: "ChallengedChunkToChunkIdError"; -} -/** @name QueryEarliestChangeCapacityBlockError */ -export interface QueryEarliestChangeCapacityBlockError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name QueryFileEarliestVolunteerBlockError */ -export interface QueryFileEarliestVolunteerBlockError extends Enum { - readonly isFailedToEncodeFingerprint: boolean; - readonly isFailedToEncodeBsp: boolean; - readonly isThresholdArithmeticError: boolean; - readonly isStorageRequestNotFound: boolean; - readonly isInternalError: boolean; - readonly type: - | "FailedToEncodeFingerprint" - | "FailedToEncodeBsp" - | "ThresholdArithmeticError" - | "StorageRequestNotFound" - | "InternalError"; -} -/** @name QueryMspConfirmChunksToProveForFileError */ -export interface QueryMspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} -/** @name QueryMspIdOfBucketIdError */ -export interface QueryMspIdOfBucketIdError extends Enum { - readonly isBucketNotFound: boolean; - readonly isInternalApiError: boolean; - readonly type: "BucketNotFound" | "InternalApiError"; -} -/** @name QueryStorageProviderCapacityError */ -export interface QueryStorageProviderCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} -/** @name RandomnessOutput */ -export interface RandomnessOutput extends H256 {} -/** @name SaveFileToDisk */ -export interface SaveFileToDisk extends Enum { - readonly isFileNotFound: boolean; - readonly isSuccess: boolean; - readonly asSuccess: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly type: "FileNotFound" | "Success" | "IncompleteFile"; -} -/** @name StorageData */ -export interface StorageData extends u32 {} -/** @name StorageDataUnit */ -export interface StorageDataUnit extends u32 {} -/** @name StorageProviderId */ -export interface StorageProviderId extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: BackupStorageProviderId; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: MainStorageProviderId; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; -} -/** @name TrieRemoveMutation */ -export interface TrieRemoveMutation extends Struct {} -export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; +import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; +import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; +/** @name BackupStorageProvider */ +export interface BackupStorageProvider extends Struct { + readonly capacity: StorageData; + readonly data_used: StorageData; + readonly multiaddresses: Bytes; + readonly root: MerklePatriciaRoot; + readonly last_capacity_change: BlockNumber; + readonly owner_account: AccountId; + readonly payment_account: AccountId; +} +/** @name BackupStorageProviderId */ +export interface BackupStorageProviderId extends H256 {} +/** @name ChunkId */ +export interface ChunkId extends u64 {} +/** @name FileMetadata */ +export interface FileMetadata extends Struct { + readonly owner: Bytes; + readonly bucket_id: Bytes; + readonly location: Bytes; + readonly file_size: u64; + readonly fingerprint: U8aFixed; +} +/** @name GetBspInfoError */ +export interface GetBspInfoError extends Enum { + readonly isBspNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "BspNotRegistered" | "InternalApiError"; +} +/** @name GetChallengePeriodError */ +export interface GetChallengePeriodError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name GetChallengeSeedError */ +export interface GetChallengeSeedError extends Enum { + readonly isTickBeyondLastSeedStored: boolean; + readonly isTickIsInTheFuture: boolean; + readonly isInternalApiError: boolean; + readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; +} +/** @name GetCheckpointChallengesError */ +export interface GetCheckpointChallengesError extends Enum { + readonly isTickGreaterThanLastCheckpointTick: boolean; + readonly isNoCheckpointChallengesInTick: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "TickGreaterThanLastCheckpointTick" + | "NoCheckpointChallengesInTick" + | "InternalApiError"; +} +/** @name GetFileFromFileStorageResult */ +export interface GetFileFromFileStorageResult extends Enum { + readonly isFileNotFound: boolean; + readonly isFileFound: boolean; + readonly asFileFound: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly isFileFoundWithInconsistency: boolean; + readonly asFileFoundWithInconsistency: FileMetadata; + readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; +} +/** @name GetLastTickProviderSubmittedProofError */ +export interface GetLastTickProviderSubmittedProofError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNeverSubmittedProof: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; +} +/** @name GetNextDeadlineTickError */ +export interface GetNextDeadlineTickError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNotInitialised: boolean; + readonly isArithmeticOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderNotInitialised" + | "ArithmeticOverflow" + | "InternalApiError"; +} +/** @name GetUsersWithDebtOverThresholdError */ +export interface GetUsersWithDebtOverThresholdError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderWithoutPaymentStreams: boolean; + readonly isAmountToChargeOverflow: boolean; + readonly isDebtOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderWithoutPaymentStreams" + | "AmountToChargeOverflow" + | "DebtOverflow" + | "InternalApiError"; +} +/** @name IncompleteFileStatus */ +export interface IncompleteFileStatus extends Struct { + readonly file_metadata: FileMetadata; + readonly stored_chunks: u64; + readonly total_chunks: u64; +} +/** @name Key */ +export interface Key extends H256 {} +/** @name MainStorageProviderId */ +export interface MainStorageProviderId extends H256 {} +/** @name MerklePatriciaRoot */ +export interface MerklePatriciaRoot extends H256 {} +/** @name ProviderId */ +export interface ProviderId extends H256 {} +/** @name QueryAvailableStorageCapacityError */ +export interface QueryAvailableStorageCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name QueryBspConfirmChunksToProveForFileError */ +export interface QueryBspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} +/** @name QueryConfirmChunksToProveForFileError */ +export interface QueryConfirmChunksToProveForFileError extends Enum { + readonly isChallengedChunkToChunkIdError: boolean; + readonly type: "ChallengedChunkToChunkIdError"; +} +/** @name QueryEarliestChangeCapacityBlockError */ +export interface QueryEarliestChangeCapacityBlockError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name QueryFileEarliestVolunteerBlockError */ +export interface QueryFileEarliestVolunteerBlockError extends Enum { + readonly isFailedToEncodeFingerprint: boolean; + readonly isFailedToEncodeBsp: boolean; + readonly isThresholdArithmeticError: boolean; + readonly isStorageRequestNotFound: boolean; + readonly isInternalError: boolean; + readonly type: + | "FailedToEncodeFingerprint" + | "FailedToEncodeBsp" + | "ThresholdArithmeticError" + | "StorageRequestNotFound" + | "InternalError"; +} +/** @name QueryMspConfirmChunksToProveForFileError */ +export interface QueryMspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} +/** @name QueryMspIdOfBucketIdError */ +export interface QueryMspIdOfBucketIdError extends Enum { + readonly isBucketNotFound: boolean; + readonly isInternalApiError: boolean; + readonly type: "BucketNotFound" | "InternalApiError"; +} +/** @name QueryStorageProviderCapacityError */ +export interface QueryStorageProviderCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} +/** @name RandomnessOutput */ +export interface RandomnessOutput extends H256 {} +/** @name SaveFileToDisk */ +export interface SaveFileToDisk extends Enum { + readonly isFileNotFound: boolean; + readonly isSuccess: boolean; + readonly asSuccess: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly type: "FileNotFound" | "Success" | "IncompleteFile"; +} +/** @name StorageData */ +export interface StorageData extends u32 {} +/** @name StorageDataUnit */ +export interface StorageDataUnit extends u32 {} +/** @name StorageProviderId */ +export interface StorageProviderId extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: BackupStorageProviderId; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: MainStorageProviderId; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; +} +/** @name TrieRemoveMutation */ +export interface TrieRemoveMutation extends Struct {} +export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; diff --git a/api-augment/dist/types/interfaces/types-lookup.d.ts b/api-augment/dist/types/interfaces/types-lookup.d.ts index 81dd8a6fe..ebb31302f 100644 --- a/api-augment/dist/types/interfaces/types-lookup.d.ts +++ b/api-augment/dist/types/interfaces/types-lookup.d.ts @@ -1,5560 +1,5344 @@ -import "@polkadot/types/lookup"; -import type { - BTreeMap, - BTreeSet, - Bytes, - Compact, - Enum, - Null, - Option, - Result, - Struct, - Text, - U8aFixed, - Vec, - bool, - u128, - u16, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; -import type { Event } from "@polkadot/types/interfaces/system"; -declare module "@polkadot/types/lookup" { - /** @name FrameSystemAccountInfo (3) */ - interface FrameSystemAccountInfo extends Struct { - readonly nonce: u32; - readonly consumers: u32; - readonly providers: u32; - readonly sufficients: u32; - readonly data: PalletBalancesAccountData; - } - /** @name PalletBalancesAccountData (5) */ - interface PalletBalancesAccountData extends Struct { - readonly free: u128; - readonly reserved: u128; - readonly frozen: u128; - readonly flags: u128; - } - /** @name FrameSupportDispatchPerDispatchClassWeight (9) */ - interface FrameSupportDispatchPerDispatchClassWeight extends Struct { - readonly normal: SpWeightsWeightV2Weight; - readonly operational: SpWeightsWeightV2Weight; - readonly mandatory: SpWeightsWeightV2Weight; - } - /** @name SpWeightsWeightV2Weight (10) */ - interface SpWeightsWeightV2Weight extends Struct { - readonly refTime: Compact; - readonly proofSize: Compact; - } - /** @name SpRuntimeDigest (15) */ - interface SpRuntimeDigest extends Struct { - readonly logs: Vec; - } - /** @name SpRuntimeDigestDigestItem (17) */ - interface SpRuntimeDigestDigestItem extends Enum { - readonly isOther: boolean; - readonly asOther: Bytes; - readonly isConsensus: boolean; - readonly asConsensus: ITuple<[U8aFixed, Bytes]>; - readonly isSeal: boolean; - readonly asSeal: ITuple<[U8aFixed, Bytes]>; - readonly isPreRuntime: boolean; - readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>; - readonly isRuntimeEnvironmentUpdated: boolean; - readonly type: "Other" | "Consensus" | "Seal" | "PreRuntime" | "RuntimeEnvironmentUpdated"; - } - /** @name FrameSystemEventRecord (20) */ - interface FrameSystemEventRecord extends Struct { - readonly phase: FrameSystemPhase; - readonly event: Event; - readonly topics: Vec; - } - /** @name FrameSystemEvent (22) */ - interface FrameSystemEvent extends Enum { - readonly isExtrinsicSuccess: boolean; - readonly asExtrinsicSuccess: { - readonly dispatchInfo: FrameSupportDispatchDispatchInfo; - } & Struct; - readonly isExtrinsicFailed: boolean; - readonly asExtrinsicFailed: { - readonly dispatchError: SpRuntimeDispatchError; - readonly dispatchInfo: FrameSupportDispatchDispatchInfo; - } & Struct; - readonly isCodeUpdated: boolean; - readonly isNewAccount: boolean; - readonly asNewAccount: { - readonly account: AccountId32; - } & Struct; - readonly isKilledAccount: boolean; - readonly asKilledAccount: { - readonly account: AccountId32; - } & Struct; - readonly isRemarked: boolean; - readonly asRemarked: { - readonly sender: AccountId32; - readonly hash_: H256; - } & Struct; - readonly isUpgradeAuthorized: boolean; - readonly asUpgradeAuthorized: { - readonly codeHash: H256; - readonly checkVersion: bool; - } & Struct; - readonly type: - | "ExtrinsicSuccess" - | "ExtrinsicFailed" - | "CodeUpdated" - | "NewAccount" - | "KilledAccount" - | "Remarked" - | "UpgradeAuthorized"; - } - /** @name FrameSupportDispatchDispatchInfo (23) */ - interface FrameSupportDispatchDispatchInfo extends Struct { - readonly weight: SpWeightsWeightV2Weight; - readonly class: FrameSupportDispatchDispatchClass; - readonly paysFee: FrameSupportDispatchPays; - } - /** @name FrameSupportDispatchDispatchClass (24) */ - interface FrameSupportDispatchDispatchClass extends Enum { - readonly isNormal: boolean; - readonly isOperational: boolean; - readonly isMandatory: boolean; - readonly type: "Normal" | "Operational" | "Mandatory"; - } - /** @name FrameSupportDispatchPays (25) */ - interface FrameSupportDispatchPays extends Enum { - readonly isYes: boolean; - readonly isNo: boolean; - readonly type: "Yes" | "No"; - } - /** @name SpRuntimeDispatchError (26) */ - interface SpRuntimeDispatchError extends Enum { - readonly isOther: boolean; - readonly isCannotLookup: boolean; - readonly isBadOrigin: boolean; - readonly isModule: boolean; - readonly asModule: SpRuntimeModuleError; - readonly isConsumerRemaining: boolean; - readonly isNoProviders: boolean; - readonly isTooManyConsumers: boolean; - readonly isToken: boolean; - readonly asToken: SpRuntimeTokenError; - readonly isArithmetic: boolean; - readonly asArithmetic: SpArithmeticArithmeticError; - readonly isTransactional: boolean; - readonly asTransactional: SpRuntimeTransactionalError; - readonly isExhausted: boolean; - readonly isCorruption: boolean; - readonly isUnavailable: boolean; - readonly isRootNotAllowed: boolean; - readonly type: - | "Other" - | "CannotLookup" - | "BadOrigin" - | "Module" - | "ConsumerRemaining" - | "NoProviders" - | "TooManyConsumers" - | "Token" - | "Arithmetic" - | "Transactional" - | "Exhausted" - | "Corruption" - | "Unavailable" - | "RootNotAllowed"; - } - /** @name SpRuntimeModuleError (27) */ - interface SpRuntimeModuleError extends Struct { - readonly index: u8; - readonly error: U8aFixed; - } - /** @name SpRuntimeTokenError (28) */ - interface SpRuntimeTokenError extends Enum { - readonly isFundsUnavailable: boolean; - readonly isOnlyProvider: boolean; - readonly isBelowMinimum: boolean; - readonly isCannotCreate: boolean; - readonly isUnknownAsset: boolean; - readonly isFrozen: boolean; - readonly isUnsupported: boolean; - readonly isCannotCreateHold: boolean; - readonly isNotExpendable: boolean; - readonly isBlocked: boolean; - readonly type: - | "FundsUnavailable" - | "OnlyProvider" - | "BelowMinimum" - | "CannotCreate" - | "UnknownAsset" - | "Frozen" - | "Unsupported" - | "CannotCreateHold" - | "NotExpendable" - | "Blocked"; - } - /** @name SpArithmeticArithmeticError (29) */ - interface SpArithmeticArithmeticError extends Enum { - readonly isUnderflow: boolean; - readonly isOverflow: boolean; - readonly isDivisionByZero: boolean; - readonly type: "Underflow" | "Overflow" | "DivisionByZero"; - } - /** @name SpRuntimeTransactionalError (30) */ - interface SpRuntimeTransactionalError extends Enum { - readonly isLimitReached: boolean; - readonly isNoLayer: boolean; - readonly type: "LimitReached" | "NoLayer"; - } - /** @name CumulusPalletParachainSystemEvent (31) */ - interface CumulusPalletParachainSystemEvent extends Enum { - readonly isValidationFunctionStored: boolean; - readonly isValidationFunctionApplied: boolean; - readonly asValidationFunctionApplied: { - readonly relayChainBlockNum: u32; - } & Struct; - readonly isValidationFunctionDiscarded: boolean; - readonly isDownwardMessagesReceived: boolean; - readonly asDownwardMessagesReceived: { - readonly count: u32; - } & Struct; - readonly isDownwardMessagesProcessed: boolean; - readonly asDownwardMessagesProcessed: { - readonly weightUsed: SpWeightsWeightV2Weight; - readonly dmqHead: H256; - } & Struct; - readonly isUpwardMessageSent: boolean; - readonly asUpwardMessageSent: { - readonly messageHash: Option; - } & Struct; - readonly type: - | "ValidationFunctionStored" - | "ValidationFunctionApplied" - | "ValidationFunctionDiscarded" - | "DownwardMessagesReceived" - | "DownwardMessagesProcessed" - | "UpwardMessageSent"; - } - /** @name PalletBalancesEvent (33) */ - interface PalletBalancesEvent extends Enum { - readonly isEndowed: boolean; - readonly asEndowed: { - readonly account: AccountId32; - readonly freeBalance: u128; - } & Struct; - readonly isDustLost: boolean; - readonly asDustLost: { - readonly account: AccountId32; - readonly amount: u128; - } & Struct; - readonly isTransfer: boolean; - readonly asTransfer: { - readonly from: AccountId32; - readonly to: AccountId32; - readonly amount: u128; - } & Struct; - readonly isBalanceSet: boolean; - readonly asBalanceSet: { - readonly who: AccountId32; - readonly free: u128; - } & Struct; - readonly isReserved: boolean; - readonly asReserved: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isUnreserved: boolean; - readonly asUnreserved: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isReserveRepatriated: boolean; - readonly asReserveRepatriated: { - readonly from: AccountId32; - readonly to: AccountId32; - readonly amount: u128; - readonly destinationStatus: FrameSupportTokensMiscBalanceStatus; - } & Struct; - readonly isDeposit: boolean; - readonly asDeposit: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isWithdraw: boolean; - readonly asWithdraw: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isSlashed: boolean; - readonly asSlashed: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isMinted: boolean; - readonly asMinted: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isBurned: boolean; - readonly asBurned: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isSuspended: boolean; - readonly asSuspended: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isRestored: boolean; - readonly asRestored: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isUpgraded: boolean; - readonly asUpgraded: { - readonly who: AccountId32; - } & Struct; - readonly isIssued: boolean; - readonly asIssued: { - readonly amount: u128; - } & Struct; - readonly isRescinded: boolean; - readonly asRescinded: { - readonly amount: u128; - } & Struct; - readonly isLocked: boolean; - readonly asLocked: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isUnlocked: boolean; - readonly asUnlocked: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isFrozen: boolean; - readonly asFrozen: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isThawed: boolean; - readonly asThawed: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isTotalIssuanceForced: boolean; - readonly asTotalIssuanceForced: { - readonly old: u128; - readonly new_: u128; - } & Struct; - readonly type: - | "Endowed" - | "DustLost" - | "Transfer" - | "BalanceSet" - | "Reserved" - | "Unreserved" - | "ReserveRepatriated" - | "Deposit" - | "Withdraw" - | "Slashed" - | "Minted" - | "Burned" - | "Suspended" - | "Restored" - | "Upgraded" - | "Issued" - | "Rescinded" - | "Locked" - | "Unlocked" - | "Frozen" - | "Thawed" - | "TotalIssuanceForced"; - } - /** @name FrameSupportTokensMiscBalanceStatus (34) */ - interface FrameSupportTokensMiscBalanceStatus extends Enum { - readonly isFree: boolean; - readonly isReserved: boolean; - readonly type: "Free" | "Reserved"; - } - /** @name PalletTransactionPaymentEvent (35) */ - interface PalletTransactionPaymentEvent extends Enum { - readonly isTransactionFeePaid: boolean; - readonly asTransactionFeePaid: { - readonly who: AccountId32; - readonly actualFee: u128; - readonly tip: u128; - } & Struct; - readonly type: "TransactionFeePaid"; - } - /** @name PalletSudoEvent (36) */ - interface PalletSudoEvent extends Enum { - readonly isSudid: boolean; - readonly asSudid: { - readonly sudoResult: Result; - } & Struct; - readonly isKeyChanged: boolean; - readonly asKeyChanged: { - readonly old: Option; - readonly new_: AccountId32; - } & Struct; - readonly isKeyRemoved: boolean; - readonly isSudoAsDone: boolean; - readonly asSudoAsDone: { - readonly sudoResult: Result; - } & Struct; - readonly type: "Sudid" | "KeyChanged" | "KeyRemoved" | "SudoAsDone"; - } - /** @name PalletCollatorSelectionEvent (40) */ - interface PalletCollatorSelectionEvent extends Enum { - readonly isNewInvulnerables: boolean; - readonly asNewInvulnerables: { - readonly invulnerables: Vec; - } & Struct; - readonly isInvulnerableAdded: boolean; - readonly asInvulnerableAdded: { - readonly accountId: AccountId32; - } & Struct; - readonly isInvulnerableRemoved: boolean; - readonly asInvulnerableRemoved: { - readonly accountId: AccountId32; - } & Struct; - readonly isNewDesiredCandidates: boolean; - readonly asNewDesiredCandidates: { - readonly desiredCandidates: u32; - } & Struct; - readonly isNewCandidacyBond: boolean; - readonly asNewCandidacyBond: { - readonly bondAmount: u128; - } & Struct; - readonly isCandidateAdded: boolean; - readonly asCandidateAdded: { - readonly accountId: AccountId32; - readonly deposit: u128; - } & Struct; - readonly isCandidateBondUpdated: boolean; - readonly asCandidateBondUpdated: { - readonly accountId: AccountId32; - readonly deposit: u128; - } & Struct; - readonly isCandidateRemoved: boolean; - readonly asCandidateRemoved: { - readonly accountId: AccountId32; - } & Struct; - readonly isCandidateReplaced: boolean; - readonly asCandidateReplaced: { - readonly old: AccountId32; - readonly new_: AccountId32; - readonly deposit: u128; - } & Struct; - readonly isInvalidInvulnerableSkipped: boolean; - readonly asInvalidInvulnerableSkipped: { - readonly accountId: AccountId32; - } & Struct; - readonly type: - | "NewInvulnerables" - | "InvulnerableAdded" - | "InvulnerableRemoved" - | "NewDesiredCandidates" - | "NewCandidacyBond" - | "CandidateAdded" - | "CandidateBondUpdated" - | "CandidateRemoved" - | "CandidateReplaced" - | "InvalidInvulnerableSkipped"; - } - /** @name PalletSessionEvent (42) */ - interface PalletSessionEvent extends Enum { - readonly isNewSession: boolean; - readonly asNewSession: { - readonly sessionIndex: u32; - } & Struct; - readonly type: "NewSession"; - } - /** @name CumulusPalletXcmpQueueEvent (43) */ - interface CumulusPalletXcmpQueueEvent extends Enum { - readonly isXcmpMessageSent: boolean; - readonly asXcmpMessageSent: { - readonly messageHash: U8aFixed; - } & Struct; - readonly type: "XcmpMessageSent"; - } - /** @name PalletXcmEvent (44) */ - interface PalletXcmEvent extends Enum { - readonly isAttempted: boolean; - readonly asAttempted: { - readonly outcome: StagingXcmV4TraitsOutcome; - } & Struct; - readonly isSent: boolean; - readonly asSent: { - readonly origin: StagingXcmV4Location; - readonly destination: StagingXcmV4Location; - readonly message: StagingXcmV4Xcm; - readonly messageId: U8aFixed; - } & Struct; - readonly isUnexpectedResponse: boolean; - readonly asUnexpectedResponse: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - } & Struct; - readonly isResponseReady: boolean; - readonly asResponseReady: { - readonly queryId: u64; - readonly response: StagingXcmV4Response; - } & Struct; - readonly isNotified: boolean; - readonly asNotified: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - } & Struct; - readonly isNotifyOverweight: boolean; - readonly asNotifyOverweight: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - readonly actualWeight: SpWeightsWeightV2Weight; - readonly maxBudgetedWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isNotifyDispatchError: boolean; - readonly asNotifyDispatchError: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - } & Struct; - readonly isNotifyDecodeFailed: boolean; - readonly asNotifyDecodeFailed: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - } & Struct; - readonly isInvalidResponder: boolean; - readonly asInvalidResponder: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - readonly expectedLocation: Option; - } & Struct; - readonly isInvalidResponderVersion: boolean; - readonly asInvalidResponderVersion: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - } & Struct; - readonly isResponseTaken: boolean; - readonly asResponseTaken: { - readonly queryId: u64; - } & Struct; - readonly isAssetsTrapped: boolean; - readonly asAssetsTrapped: { - readonly hash_: H256; - readonly origin: StagingXcmV4Location; - readonly assets: XcmVersionedAssets; - } & Struct; - readonly isVersionChangeNotified: boolean; - readonly asVersionChangeNotified: { - readonly destination: StagingXcmV4Location; - readonly result: u32; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isSupportedVersionChanged: boolean; - readonly asSupportedVersionChanged: { - readonly location: StagingXcmV4Location; - readonly version: u32; - } & Struct; - readonly isNotifyTargetSendFail: boolean; - readonly asNotifyTargetSendFail: { - readonly location: StagingXcmV4Location; - readonly queryId: u64; - readonly error: XcmV3TraitsError; - } & Struct; - readonly isNotifyTargetMigrationFail: boolean; - readonly asNotifyTargetMigrationFail: { - readonly location: XcmVersionedLocation; - readonly queryId: u64; - } & Struct; - readonly isInvalidQuerierVersion: boolean; - readonly asInvalidQuerierVersion: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - } & Struct; - readonly isInvalidQuerier: boolean; - readonly asInvalidQuerier: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - readonly expectedQuerier: StagingXcmV4Location; - readonly maybeActualQuerier: Option; - } & Struct; - readonly isVersionNotifyStarted: boolean; - readonly asVersionNotifyStarted: { - readonly destination: StagingXcmV4Location; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isVersionNotifyRequested: boolean; - readonly asVersionNotifyRequested: { - readonly destination: StagingXcmV4Location; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isVersionNotifyUnrequested: boolean; - readonly asVersionNotifyUnrequested: { - readonly destination: StagingXcmV4Location; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isFeesPaid: boolean; - readonly asFeesPaid: { - readonly paying: StagingXcmV4Location; - readonly fees: StagingXcmV4AssetAssets; - } & Struct; - readonly isAssetsClaimed: boolean; - readonly asAssetsClaimed: { - readonly hash_: H256; - readonly origin: StagingXcmV4Location; - readonly assets: XcmVersionedAssets; - } & Struct; - readonly isVersionMigrationFinished: boolean; - readonly asVersionMigrationFinished: { - readonly version: u32; - } & Struct; - readonly type: - | "Attempted" - | "Sent" - | "UnexpectedResponse" - | "ResponseReady" - | "Notified" - | "NotifyOverweight" - | "NotifyDispatchError" - | "NotifyDecodeFailed" - | "InvalidResponder" - | "InvalidResponderVersion" - | "ResponseTaken" - | "AssetsTrapped" - | "VersionChangeNotified" - | "SupportedVersionChanged" - | "NotifyTargetSendFail" - | "NotifyTargetMigrationFail" - | "InvalidQuerierVersion" - | "InvalidQuerier" - | "VersionNotifyStarted" - | "VersionNotifyRequested" - | "VersionNotifyUnrequested" - | "FeesPaid" - | "AssetsClaimed" - | "VersionMigrationFinished"; - } - /** @name StagingXcmV4TraitsOutcome (45) */ - interface StagingXcmV4TraitsOutcome extends Enum { - readonly isComplete: boolean; - readonly asComplete: { - readonly used: SpWeightsWeightV2Weight; - } & Struct; - readonly isIncomplete: boolean; - readonly asIncomplete: { - readonly used: SpWeightsWeightV2Weight; - readonly error: XcmV3TraitsError; - } & Struct; - readonly isError: boolean; - readonly asError: { - readonly error: XcmV3TraitsError; - } & Struct; - readonly type: "Complete" | "Incomplete" | "Error"; - } - /** @name XcmV3TraitsError (46) */ - interface XcmV3TraitsError extends Enum { - readonly isOverflow: boolean; - readonly isUnimplemented: boolean; - readonly isUntrustedReserveLocation: boolean; - readonly isUntrustedTeleportLocation: boolean; - readonly isLocationFull: boolean; - readonly isLocationNotInvertible: boolean; - readonly isBadOrigin: boolean; - readonly isInvalidLocation: boolean; - readonly isAssetNotFound: boolean; - readonly isFailedToTransactAsset: boolean; - readonly isNotWithdrawable: boolean; - readonly isLocationCannotHold: boolean; - readonly isExceedsMaxMessageSize: boolean; - readonly isDestinationUnsupported: boolean; - readonly isTransport: boolean; - readonly isUnroutable: boolean; - readonly isUnknownClaim: boolean; - readonly isFailedToDecode: boolean; - readonly isMaxWeightInvalid: boolean; - readonly isNotHoldingFees: boolean; - readonly isTooExpensive: boolean; - readonly isTrap: boolean; - readonly asTrap: u64; - readonly isExpectationFalse: boolean; - readonly isPalletNotFound: boolean; - readonly isNameMismatch: boolean; - readonly isVersionIncompatible: boolean; - readonly isHoldingWouldOverflow: boolean; - readonly isExportError: boolean; - readonly isReanchorFailed: boolean; - readonly isNoDeal: boolean; - readonly isFeesNotMet: boolean; - readonly isLockError: boolean; - readonly isNoPermission: boolean; - readonly isUnanchored: boolean; - readonly isNotDepositable: boolean; - readonly isUnhandledXcmVersion: boolean; - readonly isWeightLimitReached: boolean; - readonly asWeightLimitReached: SpWeightsWeightV2Weight; - readonly isBarrier: boolean; - readonly isWeightNotComputable: boolean; - readonly isExceedsStackLimit: boolean; - readonly type: - | "Overflow" - | "Unimplemented" - | "UntrustedReserveLocation" - | "UntrustedTeleportLocation" - | "LocationFull" - | "LocationNotInvertible" - | "BadOrigin" - | "InvalidLocation" - | "AssetNotFound" - | "FailedToTransactAsset" - | "NotWithdrawable" - | "LocationCannotHold" - | "ExceedsMaxMessageSize" - | "DestinationUnsupported" - | "Transport" - | "Unroutable" - | "UnknownClaim" - | "FailedToDecode" - | "MaxWeightInvalid" - | "NotHoldingFees" - | "TooExpensive" - | "Trap" - | "ExpectationFalse" - | "PalletNotFound" - | "NameMismatch" - | "VersionIncompatible" - | "HoldingWouldOverflow" - | "ExportError" - | "ReanchorFailed" - | "NoDeal" - | "FeesNotMet" - | "LockError" - | "NoPermission" - | "Unanchored" - | "NotDepositable" - | "UnhandledXcmVersion" - | "WeightLimitReached" - | "Barrier" - | "WeightNotComputable" - | "ExceedsStackLimit"; - } - /** @name StagingXcmV4Location (47) */ - interface StagingXcmV4Location extends Struct { - readonly parents: u8; - readonly interior: StagingXcmV4Junctions; - } - /** @name StagingXcmV4Junctions (48) */ - interface StagingXcmV4Junctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: StagingXcmV4Junction; - readonly isX2: boolean; - readonly asX2: StagingXcmV4Junction; - readonly isX3: boolean; - readonly asX3: StagingXcmV4Junction; - readonly isX4: boolean; - readonly asX4: StagingXcmV4Junction; - readonly isX5: boolean; - readonly asX5: StagingXcmV4Junction; - readonly isX6: boolean; - readonly asX6: StagingXcmV4Junction; - readonly isX7: boolean; - readonly asX7: StagingXcmV4Junction; - readonly isX8: boolean; - readonly asX8: StagingXcmV4Junction; - readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; - } - /** @name StagingXcmV4Junction (50) */ - interface StagingXcmV4Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: Option; - readonly id: U8aFixed; - } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: Option; - readonly index: Compact; - } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: Option; - readonly key: U8aFixed; - } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: { - readonly length: u8; - readonly data: U8aFixed; - } & Struct; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV3JunctionBodyId; - readonly part: XcmV3JunctionBodyPart; - } & Struct; - readonly isGlobalConsensus: boolean; - readonly asGlobalConsensus: StagingXcmV4JunctionNetworkId; - readonly type: - | "Parachain" - | "AccountId32" - | "AccountIndex64" - | "AccountKey20" - | "PalletInstance" - | "GeneralIndex" - | "GeneralKey" - | "OnlyChild" - | "Plurality" - | "GlobalConsensus"; - } - /** @name StagingXcmV4JunctionNetworkId (53) */ - interface StagingXcmV4JunctionNetworkId extends Enum { - readonly isByGenesis: boolean; - readonly asByGenesis: U8aFixed; - readonly isByFork: boolean; - readonly asByFork: { - readonly blockNumber: u64; - readonly blockHash: U8aFixed; - } & Struct; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly isWestend: boolean; - readonly isRococo: boolean; - readonly isWococo: boolean; - readonly isEthereum: boolean; - readonly asEthereum: { - readonly chainId: Compact; - } & Struct; - readonly isBitcoinCore: boolean; - readonly isBitcoinCash: boolean; - readonly isPolkadotBulletin: boolean; - readonly type: - | "ByGenesis" - | "ByFork" - | "Polkadot" - | "Kusama" - | "Westend" - | "Rococo" - | "Wococo" - | "Ethereum" - | "BitcoinCore" - | "BitcoinCash" - | "PolkadotBulletin"; - } - /** @name XcmV3JunctionBodyId (56) */ - interface XcmV3JunctionBodyId extends Enum { - readonly isUnit: boolean; - readonly isMoniker: boolean; - readonly asMoniker: U8aFixed; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isExecutive: boolean; - readonly isTechnical: boolean; - readonly isLegislative: boolean; - readonly isJudicial: boolean; - readonly isDefense: boolean; - readonly isAdministration: boolean; - readonly isTreasury: boolean; - readonly type: - | "Unit" - | "Moniker" - | "Index" - | "Executive" - | "Technical" - | "Legislative" - | "Judicial" - | "Defense" - | "Administration" - | "Treasury"; - } - /** @name XcmV3JunctionBodyPart (57) */ - interface XcmV3JunctionBodyPart extends Enum { - readonly isVoice: boolean; - readonly isMembers: boolean; - readonly asMembers: { - readonly count: Compact; - } & Struct; - readonly isFraction: boolean; - readonly asFraction: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isAtLeastProportion: boolean; - readonly asAtLeastProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isMoreThanProportion: boolean; - readonly asMoreThanProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; - } - /** @name StagingXcmV4Xcm (65) */ - interface StagingXcmV4Xcm extends Vec {} - /** @name StagingXcmV4Instruction (67) */ - interface StagingXcmV4Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: StagingXcmV4AssetAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: StagingXcmV4AssetAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: StagingXcmV4AssetAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: StagingXcmV4Response; - readonly maxWeight: SpWeightsWeightV2Weight; - readonly querier: Option; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: StagingXcmV4AssetAssets; - readonly beneficiary: StagingXcmV4Location; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: StagingXcmV4AssetAssets; - readonly dest: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originKind: XcmV3OriginKind; - readonly requireWeightAtMost: SpWeightsWeightV2Weight; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: StagingXcmV4Junctions; - readonly isReportError: boolean; - readonly asReportError: StagingXcmV4QueryResponseInfo; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly beneficiary: StagingXcmV4Location; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly dest: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: StagingXcmV4AssetAssetFilter; - readonly want: StagingXcmV4AssetAssets; - readonly maximal: bool; - } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly reserve: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly dest: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isReportHolding: boolean; - readonly asReportHolding: { - readonly responseInfo: StagingXcmV4QueryResponseInfo; - readonly assets: StagingXcmV4AssetAssetFilter; - } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: StagingXcmV4Asset; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: StagingXcmV4Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: StagingXcmV4Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: StagingXcmV4AssetAssets; - readonly ticket: StagingXcmV4Location; - } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly isBurnAsset: boolean; - readonly asBurnAsset: StagingXcmV4AssetAssets; - readonly isExpectAsset: boolean; - readonly asExpectAsset: StagingXcmV4AssetAssets; - readonly isExpectOrigin: boolean; - readonly asExpectOrigin: Option; - readonly isExpectError: boolean; - readonly asExpectError: Option>; - readonly isExpectTransactStatus: boolean; - readonly asExpectTransactStatus: XcmV3MaybeErrorCode; - readonly isQueryPallet: boolean; - readonly asQueryPallet: { - readonly moduleName: Bytes; - readonly responseInfo: StagingXcmV4QueryResponseInfo; - } & Struct; - readonly isExpectPallet: boolean; - readonly asExpectPallet: { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly crateMajor: Compact; - readonly minCrateMinor: Compact; - } & Struct; - readonly isReportTransactStatus: boolean; - readonly asReportTransactStatus: StagingXcmV4QueryResponseInfo; - readonly isClearTransactStatus: boolean; - readonly isUniversalOrigin: boolean; - readonly asUniversalOrigin: StagingXcmV4Junction; - readonly isExportMessage: boolean; - readonly asExportMessage: { - readonly network: StagingXcmV4JunctionNetworkId; - readonly destination: StagingXcmV4Junctions; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isLockAsset: boolean; - readonly asLockAsset: { - readonly asset: StagingXcmV4Asset; - readonly unlocker: StagingXcmV4Location; - } & Struct; - readonly isUnlockAsset: boolean; - readonly asUnlockAsset: { - readonly asset: StagingXcmV4Asset; - readonly target: StagingXcmV4Location; - } & Struct; - readonly isNoteUnlockable: boolean; - readonly asNoteUnlockable: { - readonly asset: StagingXcmV4Asset; - readonly owner: StagingXcmV4Location; - } & Struct; - readonly isRequestUnlock: boolean; - readonly asRequestUnlock: { - readonly asset: StagingXcmV4Asset; - readonly locker: StagingXcmV4Location; - } & Struct; - readonly isSetFeesMode: boolean; - readonly asSetFeesMode: { - readonly jitWithdraw: bool; - } & Struct; - readonly isSetTopic: boolean; - readonly asSetTopic: U8aFixed; - readonly isClearTopic: boolean; - readonly isAliasOrigin: boolean; - readonly asAliasOrigin: StagingXcmV4Location; - readonly isUnpaidExecution: boolean; - readonly asUnpaidExecution: { - readonly weightLimit: XcmV3WeightLimit; - readonly checkOrigin: Option; - } & Struct; - readonly type: - | "WithdrawAsset" - | "ReserveAssetDeposited" - | "ReceiveTeleportedAsset" - | "QueryResponse" - | "TransferAsset" - | "TransferReserveAsset" - | "Transact" - | "HrmpNewChannelOpenRequest" - | "HrmpChannelAccepted" - | "HrmpChannelClosing" - | "ClearOrigin" - | "DescendOrigin" - | "ReportError" - | "DepositAsset" - | "DepositReserveAsset" - | "ExchangeAsset" - | "InitiateReserveWithdraw" - | "InitiateTeleport" - | "ReportHolding" - | "BuyExecution" - | "RefundSurplus" - | "SetErrorHandler" - | "SetAppendix" - | "ClearError" - | "ClaimAsset" - | "Trap" - | "SubscribeVersion" - | "UnsubscribeVersion" - | "BurnAsset" - | "ExpectAsset" - | "ExpectOrigin" - | "ExpectError" - | "ExpectTransactStatus" - | "QueryPallet" - | "ExpectPallet" - | "ReportTransactStatus" - | "ClearTransactStatus" - | "UniversalOrigin" - | "ExportMessage" - | "LockAsset" - | "UnlockAsset" - | "NoteUnlockable" - | "RequestUnlock" - | "SetFeesMode" - | "SetTopic" - | "ClearTopic" - | "AliasOrigin" - | "UnpaidExecution"; - } - /** @name StagingXcmV4AssetAssets (68) */ - interface StagingXcmV4AssetAssets extends Vec {} - /** @name StagingXcmV4Asset (70) */ - interface StagingXcmV4Asset extends Struct { - readonly id: StagingXcmV4AssetAssetId; - readonly fun: StagingXcmV4AssetFungibility; - } - /** @name StagingXcmV4AssetAssetId (71) */ - interface StagingXcmV4AssetAssetId extends StagingXcmV4Location {} - /** @name StagingXcmV4AssetFungibility (72) */ - interface StagingXcmV4AssetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: StagingXcmV4AssetAssetInstance; - readonly type: "Fungible" | "NonFungible"; - } - /** @name StagingXcmV4AssetAssetInstance (73) */ - interface StagingXcmV4AssetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; - } - /** @name StagingXcmV4Response (76) */ - interface StagingXcmV4Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: StagingXcmV4AssetAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly isPalletsInfo: boolean; - readonly asPalletsInfo: Vec; - readonly isDispatchResult: boolean; - readonly asDispatchResult: XcmV3MaybeErrorCode; - readonly type: - | "Null" - | "Assets" - | "ExecutionResult" - | "Version" - | "PalletsInfo" - | "DispatchResult"; - } - /** @name StagingXcmV4PalletInfo (80) */ - interface StagingXcmV4PalletInfo extends Struct { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly major: Compact; - readonly minor: Compact; - readonly patch: Compact; - } - /** @name XcmV3MaybeErrorCode (83) */ - interface XcmV3MaybeErrorCode extends Enum { - readonly isSuccess: boolean; - readonly isError: boolean; - readonly asError: Bytes; - readonly isTruncatedError: boolean; - readonly asTruncatedError: Bytes; - readonly type: "Success" | "Error" | "TruncatedError"; - } - /** @name XcmV3OriginKind (86) */ - interface XcmV3OriginKind extends Enum { - readonly isNative: boolean; - readonly isSovereignAccount: boolean; - readonly isSuperuser: boolean; - readonly isXcm: boolean; - readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; - } - /** @name XcmDoubleEncoded (87) */ - interface XcmDoubleEncoded extends Struct { - readonly encoded: Bytes; - } - /** @name StagingXcmV4QueryResponseInfo (88) */ - interface StagingXcmV4QueryResponseInfo extends Struct { - readonly destination: StagingXcmV4Location; - readonly queryId: Compact; - readonly maxWeight: SpWeightsWeightV2Weight; - } - /** @name StagingXcmV4AssetAssetFilter (89) */ - interface StagingXcmV4AssetAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: StagingXcmV4AssetAssets; - readonly isWild: boolean; - readonly asWild: StagingXcmV4AssetWildAsset; - readonly type: "Definite" | "Wild"; - } - /** @name StagingXcmV4AssetWildAsset (90) */ - interface StagingXcmV4AssetWildAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: StagingXcmV4AssetAssetId; - readonly fun: StagingXcmV4AssetWildFungibility; - } & Struct; - readonly isAllCounted: boolean; - readonly asAllCounted: Compact; - readonly isAllOfCounted: boolean; - readonly asAllOfCounted: { - readonly id: StagingXcmV4AssetAssetId; - readonly fun: StagingXcmV4AssetWildFungibility; - readonly count: Compact; - } & Struct; - readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; - } - /** @name StagingXcmV4AssetWildFungibility (91) */ - interface StagingXcmV4AssetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: "Fungible" | "NonFungible"; - } - /** @name XcmV3WeightLimit (92) */ - interface XcmV3WeightLimit extends Enum { - readonly isUnlimited: boolean; - readonly isLimited: boolean; - readonly asLimited: SpWeightsWeightV2Weight; - readonly type: "Unlimited" | "Limited"; - } - /** @name XcmVersionedAssets (93) */ - interface XcmVersionedAssets extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2MultiassetMultiAssets; - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetMultiAssets; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssets; - readonly type: "V2" | "V3" | "V4"; - } - /** @name XcmV2MultiassetMultiAssets (94) */ - interface XcmV2MultiassetMultiAssets extends Vec {} - /** @name XcmV2MultiAsset (96) */ - interface XcmV2MultiAsset extends Struct { - readonly id: XcmV2MultiassetAssetId; - readonly fun: XcmV2MultiassetFungibility; - } - /** @name XcmV2MultiassetAssetId (97) */ - interface XcmV2MultiassetAssetId extends Enum { - readonly isConcrete: boolean; - readonly asConcrete: XcmV2MultiLocation; - readonly isAbstract: boolean; - readonly asAbstract: Bytes; - readonly type: "Concrete" | "Abstract"; - } - /** @name XcmV2MultiLocation (98) */ - interface XcmV2MultiLocation extends Struct { - readonly parents: u8; - readonly interior: XcmV2MultilocationJunctions; - } - /** @name XcmV2MultilocationJunctions (99) */ - interface XcmV2MultilocationJunctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: XcmV2Junction; - readonly isX2: boolean; - readonly asX2: ITuple<[XcmV2Junction, XcmV2Junction]>; - readonly isX3: boolean; - readonly asX3: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX4: boolean; - readonly asX4: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX5: boolean; - readonly asX5: ITuple< - [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] - >; - readonly isX6: boolean; - readonly asX6: ITuple< - [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] - >; - readonly isX7: boolean; - readonly asX7: ITuple< - [ - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction - ] - >; - readonly isX8: boolean; - readonly asX8: ITuple< - [ - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction - ] - >; - readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; - } - /** @name XcmV2Junction (100) */ - interface XcmV2Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: XcmV2NetworkId; - readonly id: U8aFixed; - } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: XcmV2NetworkId; - readonly index: Compact; - } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: XcmV2NetworkId; - readonly key: U8aFixed; - } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: Bytes; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV2BodyId; - readonly part: XcmV2BodyPart; - } & Struct; - readonly type: - | "Parachain" - | "AccountId32" - | "AccountIndex64" - | "AccountKey20" - | "PalletInstance" - | "GeneralIndex" - | "GeneralKey" - | "OnlyChild" - | "Plurality"; - } - /** @name XcmV2NetworkId (101) */ - interface XcmV2NetworkId extends Enum { - readonly isAny: boolean; - readonly isNamed: boolean; - readonly asNamed: Bytes; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly type: "Any" | "Named" | "Polkadot" | "Kusama"; - } - /** @name XcmV2BodyId (103) */ - interface XcmV2BodyId extends Enum { - readonly isUnit: boolean; - readonly isNamed: boolean; - readonly asNamed: Bytes; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isExecutive: boolean; - readonly isTechnical: boolean; - readonly isLegislative: boolean; - readonly isJudicial: boolean; - readonly isDefense: boolean; - readonly isAdministration: boolean; - readonly isTreasury: boolean; - readonly type: - | "Unit" - | "Named" - | "Index" - | "Executive" - | "Technical" - | "Legislative" - | "Judicial" - | "Defense" - | "Administration" - | "Treasury"; - } - /** @name XcmV2BodyPart (104) */ - interface XcmV2BodyPart extends Enum { - readonly isVoice: boolean; - readonly isMembers: boolean; - readonly asMembers: { - readonly count: Compact; - } & Struct; - readonly isFraction: boolean; - readonly asFraction: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isAtLeastProportion: boolean; - readonly asAtLeastProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isMoreThanProportion: boolean; - readonly asMoreThanProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; - } - /** @name XcmV2MultiassetFungibility (105) */ - interface XcmV2MultiassetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: XcmV2MultiassetAssetInstance; - readonly type: "Fungible" | "NonFungible"; - } - /** @name XcmV2MultiassetAssetInstance (106) */ - interface XcmV2MultiassetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly isBlob: boolean; - readonly asBlob: Bytes; - readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32" | "Blob"; - } - /** @name XcmV3MultiassetMultiAssets (107) */ - interface XcmV3MultiassetMultiAssets extends Vec {} - /** @name XcmV3MultiAsset (109) */ - interface XcmV3MultiAsset extends Struct { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetFungibility; - } - /** @name XcmV3MultiassetAssetId (110) */ - interface XcmV3MultiassetAssetId extends Enum { - readonly isConcrete: boolean; - readonly asConcrete: StagingXcmV3MultiLocation; - readonly isAbstract: boolean; - readonly asAbstract: U8aFixed; - readonly type: "Concrete" | "Abstract"; - } - /** @name StagingXcmV3MultiLocation (111) */ - interface StagingXcmV3MultiLocation extends Struct { - readonly parents: u8; - readonly interior: XcmV3Junctions; - } - /** @name XcmV3Junctions (112) */ - interface XcmV3Junctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: XcmV3Junction; - readonly isX2: boolean; - readonly asX2: ITuple<[XcmV3Junction, XcmV3Junction]>; - readonly isX3: boolean; - readonly asX3: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction]>; - readonly isX4: boolean; - readonly asX4: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; - readonly isX5: boolean; - readonly asX5: ITuple< - [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] - >; - readonly isX6: boolean; - readonly asX6: ITuple< - [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] - >; - readonly isX7: boolean; - readonly asX7: ITuple< - [ - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction - ] - >; - readonly isX8: boolean; - readonly asX8: ITuple< - [ - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction - ] - >; - readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; - } - /** @name XcmV3Junction (113) */ - interface XcmV3Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: Option; - readonly id: U8aFixed; - } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: Option; - readonly index: Compact; - } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: Option; - readonly key: U8aFixed; - } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: { - readonly length: u8; - readonly data: U8aFixed; - } & Struct; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV3JunctionBodyId; - readonly part: XcmV3JunctionBodyPart; - } & Struct; - readonly isGlobalConsensus: boolean; - readonly asGlobalConsensus: XcmV3JunctionNetworkId; - readonly type: - | "Parachain" - | "AccountId32" - | "AccountIndex64" - | "AccountKey20" - | "PalletInstance" - | "GeneralIndex" - | "GeneralKey" - | "OnlyChild" - | "Plurality" - | "GlobalConsensus"; - } - /** @name XcmV3JunctionNetworkId (115) */ - interface XcmV3JunctionNetworkId extends Enum { - readonly isByGenesis: boolean; - readonly asByGenesis: U8aFixed; - readonly isByFork: boolean; - readonly asByFork: { - readonly blockNumber: u64; - readonly blockHash: U8aFixed; - } & Struct; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly isWestend: boolean; - readonly isRococo: boolean; - readonly isWococo: boolean; - readonly isEthereum: boolean; - readonly asEthereum: { - readonly chainId: Compact; - } & Struct; - readonly isBitcoinCore: boolean; - readonly isBitcoinCash: boolean; - readonly isPolkadotBulletin: boolean; - readonly type: - | "ByGenesis" - | "ByFork" - | "Polkadot" - | "Kusama" - | "Westend" - | "Rococo" - | "Wococo" - | "Ethereum" - | "BitcoinCore" - | "BitcoinCash" - | "PolkadotBulletin"; - } - /** @name XcmV3MultiassetFungibility (116) */ - interface XcmV3MultiassetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: XcmV3MultiassetAssetInstance; - readonly type: "Fungible" | "NonFungible"; - } - /** @name XcmV3MultiassetAssetInstance (117) */ - interface XcmV3MultiassetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; - } - /** @name XcmVersionedLocation (118) */ - interface XcmVersionedLocation extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2MultiLocation; - readonly isV3: boolean; - readonly asV3: StagingXcmV3MultiLocation; - readonly isV4: boolean; - readonly asV4: StagingXcmV4Location; - readonly type: "V2" | "V3" | "V4"; - } - /** @name CumulusPalletXcmEvent (119) */ - interface CumulusPalletXcmEvent extends Enum { - readonly isInvalidFormat: boolean; - readonly asInvalidFormat: U8aFixed; - readonly isUnsupportedVersion: boolean; - readonly asUnsupportedVersion: U8aFixed; - readonly isExecutedDownward: boolean; - readonly asExecutedDownward: ITuple<[U8aFixed, StagingXcmV4TraitsOutcome]>; - readonly type: "InvalidFormat" | "UnsupportedVersion" | "ExecutedDownward"; - } - /** @name PalletMessageQueueEvent (120) */ - interface PalletMessageQueueEvent extends Enum { - readonly isProcessingFailed: boolean; - readonly asProcessingFailed: { - readonly id: H256; - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly error: FrameSupportMessagesProcessMessageError; - } & Struct; - readonly isProcessed: boolean; - readonly asProcessed: { - readonly id: H256; - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly weightUsed: SpWeightsWeightV2Weight; - readonly success: bool; - } & Struct; - readonly isOverweightEnqueued: boolean; - readonly asOverweightEnqueued: { - readonly id: U8aFixed; - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly pageIndex: u32; - readonly messageIndex: u32; - } & Struct; - readonly isPageReaped: boolean; - readonly asPageReaped: { - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly index: u32; - } & Struct; - readonly type: "ProcessingFailed" | "Processed" | "OverweightEnqueued" | "PageReaped"; - } - /** @name CumulusPrimitivesCoreAggregateMessageOrigin (121) */ - interface CumulusPrimitivesCoreAggregateMessageOrigin extends Enum { - readonly isHere: boolean; - readonly isParent: boolean; - readonly isSibling: boolean; - readonly asSibling: u32; - readonly type: "Here" | "Parent" | "Sibling"; - } - /** @name FrameSupportMessagesProcessMessageError (123) */ - interface FrameSupportMessagesProcessMessageError extends Enum { - readonly isBadFormat: boolean; - readonly isCorrupt: boolean; - readonly isUnsupported: boolean; - readonly isOverweight: boolean; - readonly asOverweight: SpWeightsWeightV2Weight; - readonly isYield: boolean; - readonly isStackLimitReached: boolean; - readonly type: - | "BadFormat" - | "Corrupt" - | "Unsupported" - | "Overweight" - | "Yield" - | "StackLimitReached"; - } - /** @name PalletStorageProvidersEvent (124) */ - interface PalletStorageProvidersEvent extends Enum { - readonly isMspRequestSignUpSuccess: boolean; - readonly asMspRequestSignUpSuccess: { - readonly who: AccountId32; - readonly multiaddresses: Vec; - readonly capacity: u64; - readonly valueProp: PalletStorageProvidersValueProposition; - } & Struct; - readonly isMspSignUpSuccess: boolean; - readonly asMspSignUpSuccess: { - readonly who: AccountId32; - readonly mspId: H256; - readonly multiaddresses: Vec; - readonly capacity: u64; - readonly valueProp: PalletStorageProvidersValueProposition; - } & Struct; - readonly isBspRequestSignUpSuccess: boolean; - readonly asBspRequestSignUpSuccess: { - readonly who: AccountId32; - readonly multiaddresses: Vec; - readonly capacity: u64; - } & Struct; - readonly isBspSignUpSuccess: boolean; - readonly asBspSignUpSuccess: { - readonly who: AccountId32; - readonly bspId: H256; - readonly multiaddresses: Vec; - readonly capacity: u64; - } & Struct; - readonly isSignUpRequestCanceled: boolean; - readonly asSignUpRequestCanceled: { - readonly who: AccountId32; - } & Struct; - readonly isMspSignOffSuccess: boolean; - readonly asMspSignOffSuccess: { - readonly who: AccountId32; - readonly mspId: H256; - } & Struct; - readonly isBspSignOffSuccess: boolean; - readonly asBspSignOffSuccess: { - readonly who: AccountId32; - readonly bspId: H256; - } & Struct; - readonly isCapacityChanged: boolean; - readonly asCapacityChanged: { - readonly who: AccountId32; - readonly providerId: PalletStorageProvidersStorageProviderId; - readonly oldCapacity: u64; - readonly newCapacity: u64; - readonly nextBlockWhenChangeAllowed: u32; - } & Struct; - readonly isSlashed: boolean; - readonly asSlashed: { - readonly providerId: H256; - readonly amountSlashed: u128; - } & Struct; - readonly type: - | "MspRequestSignUpSuccess" - | "MspSignUpSuccess" - | "BspRequestSignUpSuccess" - | "BspSignUpSuccess" - | "SignUpRequestCanceled" - | "MspSignOffSuccess" - | "BspSignOffSuccess" - | "CapacityChanged" - | "Slashed"; - } - /** @name PalletStorageProvidersValueProposition (128) */ - interface PalletStorageProvidersValueProposition extends Struct { - readonly identifier: H256; - readonly dataLimit: u64; - readonly protocols: Vec; - } - /** @name PalletStorageProvidersStorageProviderId (130) */ - interface PalletStorageProvidersStorageProviderId extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: H256; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: H256; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; - } - /** @name PalletFileSystemEvent (131) */ - interface PalletFileSystemEvent extends Enum { - readonly isNewBucket: boolean; - readonly asNewBucket: { - readonly who: AccountId32; - readonly mspId: H256; - readonly bucketId: H256; - readonly name: Bytes; - readonly collectionId: Option; - readonly private: bool; - } & Struct; - readonly isMoveBucketRequested: boolean; - readonly asMoveBucketRequested: { - readonly who: AccountId32; - readonly bucketId: H256; - readonly newMspId: H256; - } & Struct; - readonly isBucketPrivacyUpdated: boolean; - readonly asBucketPrivacyUpdated: { - readonly who: AccountId32; - readonly bucketId: H256; - readonly collectionId: Option; - readonly private: bool; - } & Struct; - readonly isNewCollectionAndAssociation: boolean; - readonly asNewCollectionAndAssociation: { - readonly who: AccountId32; - readonly bucketId: H256; - readonly collectionId: u32; - } & Struct; - readonly isNewStorageRequest: boolean; - readonly asNewStorageRequest: { - readonly who: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly size_: u64; - readonly peerIds: Vec; - } & Struct; - readonly isMspRespondedToStorageRequests: boolean; - readonly asMspRespondedToStorageRequests: { - readonly results: PalletFileSystemMspRespondStorageRequestsResult; - } & Struct; - readonly isAcceptedBspVolunteer: boolean; - readonly asAcceptedBspVolunteer: { - readonly bspId: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly multiaddresses: Vec; - readonly owner: AccountId32; - readonly size_: u64; - } & Struct; - readonly isBspConfirmedStoring: boolean; - readonly asBspConfirmedStoring: { - readonly who: AccountId32; - readonly bspId: H256; - readonly fileKeys: Vec; - readonly newRoot: H256; - } & Struct; - readonly isStorageRequestFulfilled: boolean; - readonly asStorageRequestFulfilled: { - readonly fileKey: H256; - } & Struct; - readonly isStorageRequestExpired: boolean; - readonly asStorageRequestExpired: { - readonly fileKey: H256; - } & Struct; - readonly isStorageRequestRevoked: boolean; - readonly asStorageRequestRevoked: { - readonly fileKey: H256; - } & Struct; - readonly isBspRequestedToStopStoring: boolean; - readonly asBspRequestedToStopStoring: { - readonly bspId: H256; - readonly fileKey: H256; - readonly owner: AccountId32; - readonly location: Bytes; - } & Struct; - readonly isBspConfirmStoppedStoring: boolean; - readonly asBspConfirmStoppedStoring: { - readonly bspId: H256; - readonly fileKey: H256; - readonly newRoot: H256; - } & Struct; - readonly isPriorityChallengeForFileDeletionQueued: boolean; - readonly asPriorityChallengeForFileDeletionQueued: { - readonly issuer: PalletFileSystemEitherAccountIdOrMspId; - readonly fileKey: H256; - } & Struct; - readonly isSpStopStoringInsolventUser: boolean; - readonly asSpStopStoringInsolventUser: { - readonly spId: H256; - readonly fileKey: H256; - readonly owner: AccountId32; - readonly location: Bytes; - readonly newRoot: H256; - } & Struct; - readonly isFailedToQueuePriorityChallenge: boolean; - readonly asFailedToQueuePriorityChallenge: { - readonly user: AccountId32; - readonly fileKey: H256; - } & Struct; - readonly isFileDeletionRequest: boolean; - readonly asFileDeletionRequest: { - readonly user: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly mspId: H256; - readonly proofOfInclusion: bool; - } & Struct; - readonly isProofSubmittedForPendingFileDeletionRequest: boolean; - readonly asProofSubmittedForPendingFileDeletionRequest: { - readonly mspId: H256; - readonly user: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly proofOfInclusion: bool; - } & Struct; - readonly isBspChallengeCycleInitialised: boolean; - readonly asBspChallengeCycleInitialised: { - readonly who: AccountId32; - readonly bspId: H256; - } & Struct; - readonly isMoveBucketRequestExpired: boolean; - readonly asMoveBucketRequestExpired: { - readonly mspId: H256; - readonly bucketId: H256; - } & Struct; - readonly isMoveBucketAccepted: boolean; - readonly asMoveBucketAccepted: { - readonly bucketId: H256; - readonly mspId: H256; - } & Struct; - readonly isMoveBucketRejected: boolean; - readonly asMoveBucketRejected: { - readonly bucketId: H256; - readonly mspId: H256; - } & Struct; - readonly isDataServerRegisteredForMoveBucket: boolean; - readonly asDataServerRegisteredForMoveBucket: { - readonly bspId: H256; - readonly bucketId: H256; - } & Struct; - readonly type: - | "NewBucket" - | "MoveBucketRequested" - | "BucketPrivacyUpdated" - | "NewCollectionAndAssociation" - | "NewStorageRequest" - | "MspRespondedToStorageRequests" - | "AcceptedBspVolunteer" - | "BspConfirmedStoring" - | "StorageRequestFulfilled" - | "StorageRequestExpired" - | "StorageRequestRevoked" - | "BspRequestedToStopStoring" - | "BspConfirmStoppedStoring" - | "PriorityChallengeForFileDeletionQueued" - | "SpStopStoringInsolventUser" - | "FailedToQueuePriorityChallenge" - | "FileDeletionRequest" - | "ProofSubmittedForPendingFileDeletionRequest" - | "BspChallengeCycleInitialised" - | "MoveBucketRequestExpired" - | "MoveBucketAccepted" - | "MoveBucketRejected" - | "DataServerRegisteredForMoveBucket"; - } - /** @name PalletFileSystemMspRespondStorageRequestsResult (134) */ - interface PalletFileSystemMspRespondStorageRequestsResult extends Struct { - readonly mspId: H256; - readonly responses: Vec; - } - /** @name PalletFileSystemBatchResponses (136) */ - interface PalletFileSystemBatchResponses extends Enum { - readonly isAccepted: boolean; - readonly asAccepted: PalletFileSystemMspAcceptedBatchStorageRequests; - readonly isRejected: boolean; - readonly asRejected: PalletFileSystemMspRejectedBatchStorageRequests; - readonly isFailed: boolean; - readonly asFailed: PalletFileSystemMspFailedBatchStorageRequests; - readonly type: "Accepted" | "Rejected" | "Failed"; - } - /** @name PalletFileSystemMspAcceptedBatchStorageRequests (137) */ - interface PalletFileSystemMspAcceptedBatchStorageRequests extends Struct { - readonly fileKeys: Vec; - readonly bucketId: H256; - readonly newBucketRoot: H256; - readonly owner: AccountId32; - } - /** @name PalletFileSystemMspRejectedBatchStorageRequests (140) */ - interface PalletFileSystemMspRejectedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - /** @name PalletFileSystemRejectedStorageRequestReason (143) */ - interface PalletFileSystemRejectedStorageRequestReason extends Enum { - readonly isReachedMaximumCapacity: boolean; - readonly isReceivedInvalidProof: boolean; - readonly isInternalError: boolean; - readonly type: "ReachedMaximumCapacity" | "ReceivedInvalidProof" | "InternalError"; - } - /** @name PalletFileSystemMspFailedBatchStorageRequests (145) */ - interface PalletFileSystemMspFailedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - /** @name PalletFileSystemEitherAccountIdOrMspId (150) */ - interface PalletFileSystemEitherAccountIdOrMspId extends Enum { - readonly isAccountId: boolean; - readonly asAccountId: AccountId32; - readonly isMspId: boolean; - readonly asMspId: H256; - readonly type: "AccountId" | "MspId"; - } - /** @name PalletProofsDealerEvent (151) */ - interface PalletProofsDealerEvent extends Enum { - readonly isNewChallenge: boolean; - readonly asNewChallenge: { - readonly who: AccountId32; - readonly keyChallenged: H256; - } & Struct; - readonly isProofAccepted: boolean; - readonly asProofAccepted: { - readonly provider: H256; - readonly proof: PalletProofsDealerProof; - } & Struct; - readonly isNewChallengeSeed: boolean; - readonly asNewChallengeSeed: { - readonly challengesTicker: u32; - readonly seed: H256; - } & Struct; - readonly isNewCheckpointChallenge: boolean; - readonly asNewCheckpointChallenge: { - readonly challengesTicker: u32; - readonly challenges: Vec]>>; - } & Struct; - readonly isSlashableProvider: boolean; - readonly asSlashableProvider: { - readonly provider: H256; - readonly nextChallengeDeadline: u32; - } & Struct; - readonly isNoRecordOfLastSubmittedProof: boolean; - readonly asNoRecordOfLastSubmittedProof: { - readonly provider: H256; - } & Struct; - readonly isNewChallengeCycleInitialised: boolean; - readonly asNewChallengeCycleInitialised: { - readonly currentTick: u32; - readonly nextChallengeDeadline: u32; - readonly provider: H256; - readonly maybeProviderAccount: Option; - } & Struct; - readonly isMutationsApplied: boolean; - readonly asMutationsApplied: { - readonly provider: H256; - readonly mutations: Vec>; - readonly newRoot: H256; - } & Struct; - readonly isChallengesTickerSet: boolean; - readonly asChallengesTickerSet: { - readonly paused: bool; - } & Struct; - readonly type: - | "NewChallenge" - | "ProofAccepted" - | "NewChallengeSeed" - | "NewCheckpointChallenge" - | "SlashableProvider" - | "NoRecordOfLastSubmittedProof" - | "NewChallengeCycleInitialised" - | "MutationsApplied" - | "ChallengesTickerSet"; - } - /** @name PalletProofsDealerProof (152) */ - interface PalletProofsDealerProof extends Struct { - readonly forestProof: SpTrieStorageProofCompactProof; - readonly keyProofs: BTreeMap; - } - /** @name SpTrieStorageProofCompactProof (153) */ - interface SpTrieStorageProofCompactProof extends Struct { - readonly encodedNodes: Vec; - } - /** @name PalletProofsDealerKeyProof (156) */ - interface PalletProofsDealerKeyProof extends Struct { - readonly proof: ShpFileKeyVerifierFileKeyProof; - readonly challengeCount: u32; - } - /** @name ShpFileKeyVerifierFileKeyProof (157) */ - interface ShpFileKeyVerifierFileKeyProof extends Struct { - readonly fileMetadata: ShpFileMetadataFileMetadata; - readonly proof: SpTrieStorageProofCompactProof; - } - /** @name ShpFileMetadataFileMetadata (158) */ - interface ShpFileMetadataFileMetadata extends Struct { - readonly owner: Bytes; - readonly bucketId: Bytes; - readonly location: Bytes; - readonly fileSize: Compact; - readonly fingerprint: ShpFileMetadataFingerprint; - } - /** @name ShpFileMetadataFingerprint (159) */ - interface ShpFileMetadataFingerprint extends U8aFixed {} - /** @name ShpTraitsTrieRemoveMutation (165) */ - type ShpTraitsTrieRemoveMutation = Null; - /** @name PalletRandomnessEvent (169) */ - interface PalletRandomnessEvent extends Enum { - readonly isNewOneEpochAgoRandomnessAvailable: boolean; - readonly asNewOneEpochAgoRandomnessAvailable: { - readonly randomnessSeed: H256; - readonly fromEpoch: u64; - readonly validUntilBlock: u32; - } & Struct; - readonly type: "NewOneEpochAgoRandomnessAvailable"; - } - /** @name PalletPaymentStreamsEvent (170) */ - interface PalletPaymentStreamsEvent extends Enum { - readonly isFixedRatePaymentStreamCreated: boolean; - readonly asFixedRatePaymentStreamCreated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly rate: u128; - } & Struct; - readonly isFixedRatePaymentStreamUpdated: boolean; - readonly asFixedRatePaymentStreamUpdated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly newRate: u128; - } & Struct; - readonly isFixedRatePaymentStreamDeleted: boolean; - readonly asFixedRatePaymentStreamDeleted: { - readonly userAccount: AccountId32; - readonly providerId: H256; - } & Struct; - readonly isDynamicRatePaymentStreamCreated: boolean; - readonly asDynamicRatePaymentStreamCreated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly amountProvided: u64; - } & Struct; - readonly isDynamicRatePaymentStreamUpdated: boolean; - readonly asDynamicRatePaymentStreamUpdated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly newAmountProvided: u64; - } & Struct; - readonly isDynamicRatePaymentStreamDeleted: boolean; - readonly asDynamicRatePaymentStreamDeleted: { - readonly userAccount: AccountId32; - readonly providerId: H256; - } & Struct; - readonly isPaymentStreamCharged: boolean; - readonly asPaymentStreamCharged: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly amount: u128; - } & Struct; - readonly isLastChargeableInfoUpdated: boolean; - readonly asLastChargeableInfoUpdated: { - readonly providerId: H256; - readonly lastChargeableTick: u32; - readonly lastChargeablePriceIndex: u128; - } & Struct; - readonly isUserWithoutFunds: boolean; - readonly asUserWithoutFunds: { - readonly who: AccountId32; - } & Struct; - readonly isUserPaidDebts: boolean; - readonly asUserPaidDebts: { - readonly who: AccountId32; - } & Struct; - readonly isUserSolvent: boolean; - readonly asUserSolvent: { - readonly who: AccountId32; - } & Struct; - readonly type: - | "FixedRatePaymentStreamCreated" - | "FixedRatePaymentStreamUpdated" - | "FixedRatePaymentStreamDeleted" - | "DynamicRatePaymentStreamCreated" - | "DynamicRatePaymentStreamUpdated" - | "DynamicRatePaymentStreamDeleted" - | "PaymentStreamCharged" - | "LastChargeableInfoUpdated" - | "UserWithoutFunds" - | "UserPaidDebts" - | "UserSolvent"; - } - /** @name PalletBucketNftsEvent (171) */ - interface PalletBucketNftsEvent extends Enum { - readonly isAccessShared: boolean; - readonly asAccessShared: { - readonly issuer: AccountId32; - readonly recipient: AccountId32; - } & Struct; - readonly isItemReadAccessUpdated: boolean; - readonly asItemReadAccessUpdated: { - readonly admin: AccountId32; - readonly bucket: H256; - readonly itemId: u32; - } & Struct; - readonly isItemBurned: boolean; - readonly asItemBurned: { - readonly account: AccountId32; - readonly bucket: H256; - readonly itemId: u32; - } & Struct; - readonly type: "AccessShared" | "ItemReadAccessUpdated" | "ItemBurned"; - } - /** @name PalletNftsEvent (172) */ - interface PalletNftsEvent extends Enum { - readonly isCreated: boolean; - readonly asCreated: { - readonly collection: u32; - readonly creator: AccountId32; - readonly owner: AccountId32; - } & Struct; - readonly isForceCreated: boolean; - readonly asForceCreated: { - readonly collection: u32; - readonly owner: AccountId32; - } & Struct; - readonly isDestroyed: boolean; - readonly asDestroyed: { - readonly collection: u32; - } & Struct; - readonly isIssued: boolean; - readonly asIssued: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - } & Struct; - readonly isTransferred: boolean; - readonly asTransferred: { - readonly collection: u32; - readonly item: u32; - readonly from: AccountId32; - readonly to: AccountId32; - } & Struct; - readonly isBurned: boolean; - readonly asBurned: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - } & Struct; - readonly isItemTransferLocked: boolean; - readonly asItemTransferLocked: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isItemTransferUnlocked: boolean; - readonly asItemTransferUnlocked: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isItemPropertiesLocked: boolean; - readonly asItemPropertiesLocked: { - readonly collection: u32; - readonly item: u32; - readonly lockMetadata: bool; - readonly lockAttributes: bool; - } & Struct; - readonly isCollectionLocked: boolean; - readonly asCollectionLocked: { - readonly collection: u32; - } & Struct; - readonly isOwnerChanged: boolean; - readonly asOwnerChanged: { - readonly collection: u32; - readonly newOwner: AccountId32; - } & Struct; - readonly isTeamChanged: boolean; - readonly asTeamChanged: { - readonly collection: u32; - readonly issuer: Option; - readonly admin: Option; - readonly freezer: Option; - } & Struct; - readonly isTransferApproved: boolean; - readonly asTransferApproved: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - readonly delegate: AccountId32; - readonly deadline: Option; - } & Struct; - readonly isApprovalCancelled: boolean; - readonly asApprovalCancelled: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - readonly delegate: AccountId32; - } & Struct; - readonly isAllApprovalsCancelled: boolean; - readonly asAllApprovalsCancelled: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - } & Struct; - readonly isCollectionConfigChanged: boolean; - readonly asCollectionConfigChanged: { - readonly collection: u32; - } & Struct; - readonly isCollectionMetadataSet: boolean; - readonly asCollectionMetadataSet: { - readonly collection: u32; - readonly data: Bytes; - } & Struct; - readonly isCollectionMetadataCleared: boolean; - readonly asCollectionMetadataCleared: { - readonly collection: u32; - } & Struct; - readonly isItemMetadataSet: boolean; - readonly asItemMetadataSet: { - readonly collection: u32; - readonly item: u32; - readonly data: Bytes; - } & Struct; - readonly isItemMetadataCleared: boolean; - readonly asItemMetadataCleared: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isRedeposited: boolean; - readonly asRedeposited: { - readonly collection: u32; - readonly successfulItems: Vec; - } & Struct; - readonly isAttributeSet: boolean; - readonly asAttributeSet: { - readonly collection: u32; - readonly maybeItem: Option; - readonly key: Bytes; - readonly value: Bytes; - readonly namespace: PalletNftsAttributeNamespace; - } & Struct; - readonly isAttributeCleared: boolean; - readonly asAttributeCleared: { - readonly collection: u32; - readonly maybeItem: Option; - readonly key: Bytes; - readonly namespace: PalletNftsAttributeNamespace; - } & Struct; - readonly isItemAttributesApprovalAdded: boolean; - readonly asItemAttributesApprovalAdded: { - readonly collection: u32; - readonly item: u32; - readonly delegate: AccountId32; - } & Struct; - readonly isItemAttributesApprovalRemoved: boolean; - readonly asItemAttributesApprovalRemoved: { - readonly collection: u32; - readonly item: u32; - readonly delegate: AccountId32; - } & Struct; - readonly isOwnershipAcceptanceChanged: boolean; - readonly asOwnershipAcceptanceChanged: { - readonly who: AccountId32; - readonly maybeCollection: Option; - } & Struct; - readonly isCollectionMaxSupplySet: boolean; - readonly asCollectionMaxSupplySet: { - readonly collection: u32; - readonly maxSupply: u32; - } & Struct; - readonly isCollectionMintSettingsUpdated: boolean; - readonly asCollectionMintSettingsUpdated: { - readonly collection: u32; - } & Struct; - readonly isNextCollectionIdIncremented: boolean; - readonly asNextCollectionIdIncremented: { - readonly nextId: Option; - } & Struct; - readonly isItemPriceSet: boolean; - readonly asItemPriceSet: { - readonly collection: u32; - readonly item: u32; - readonly price: u128; - readonly whitelistedBuyer: Option; - } & Struct; - readonly isItemPriceRemoved: boolean; - readonly asItemPriceRemoved: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isItemBought: boolean; - readonly asItemBought: { - readonly collection: u32; - readonly item: u32; - readonly price: u128; - readonly seller: AccountId32; - readonly buyer: AccountId32; - } & Struct; - readonly isTipSent: boolean; - readonly asTipSent: { - readonly collection: u32; - readonly item: u32; - readonly sender: AccountId32; - readonly receiver: AccountId32; - readonly amount: u128; - } & Struct; - readonly isSwapCreated: boolean; - readonly asSwapCreated: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - readonly desiredCollection: u32; - readonly desiredItem: Option; - readonly price: Option; - readonly deadline: u32; - } & Struct; - readonly isSwapCancelled: boolean; - readonly asSwapCancelled: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - readonly desiredCollection: u32; - readonly desiredItem: Option; - readonly price: Option; - readonly deadline: u32; - } & Struct; - readonly isSwapClaimed: boolean; - readonly asSwapClaimed: { - readonly sentCollection: u32; - readonly sentItem: u32; - readonly sentItemOwner: AccountId32; - readonly receivedCollection: u32; - readonly receivedItem: u32; - readonly receivedItemOwner: AccountId32; - readonly price: Option; - readonly deadline: u32; - } & Struct; - readonly isPreSignedAttributesSet: boolean; - readonly asPreSignedAttributesSet: { - readonly collection: u32; - readonly item: u32; - readonly namespace: PalletNftsAttributeNamespace; - } & Struct; - readonly isPalletAttributeSet: boolean; - readonly asPalletAttributeSet: { - readonly collection: u32; - readonly item: Option; - readonly attribute: PalletNftsPalletAttributes; - readonly value: Bytes; - } & Struct; - readonly type: - | "Created" - | "ForceCreated" - | "Destroyed" - | "Issued" - | "Transferred" - | "Burned" - | "ItemTransferLocked" - | "ItemTransferUnlocked" - | "ItemPropertiesLocked" - | "CollectionLocked" - | "OwnerChanged" - | "TeamChanged" - | "TransferApproved" - | "ApprovalCancelled" - | "AllApprovalsCancelled" - | "CollectionConfigChanged" - | "CollectionMetadataSet" - | "CollectionMetadataCleared" - | "ItemMetadataSet" - | "ItemMetadataCleared" - | "Redeposited" - | "AttributeSet" - | "AttributeCleared" - | "ItemAttributesApprovalAdded" - | "ItemAttributesApprovalRemoved" - | "OwnershipAcceptanceChanged" - | "CollectionMaxSupplySet" - | "CollectionMintSettingsUpdated" - | "NextCollectionIdIncremented" - | "ItemPriceSet" - | "ItemPriceRemoved" - | "ItemBought" - | "TipSent" - | "SwapCreated" - | "SwapCancelled" - | "SwapClaimed" - | "PreSignedAttributesSet" - | "PalletAttributeSet"; - } - /** @name PalletNftsAttributeNamespace (176) */ - interface PalletNftsAttributeNamespace extends Enum { - readonly isPallet: boolean; - readonly isCollectionOwner: boolean; - readonly isItemOwner: boolean; - readonly isAccount: boolean; - readonly asAccount: AccountId32; - readonly type: "Pallet" | "CollectionOwner" | "ItemOwner" | "Account"; - } - /** @name PalletNftsPriceWithDirection (178) */ - interface PalletNftsPriceWithDirection extends Struct { - readonly amount: u128; - readonly direction: PalletNftsPriceDirection; - } - /** @name PalletNftsPriceDirection (179) */ - interface PalletNftsPriceDirection extends Enum { - readonly isSend: boolean; - readonly isReceive: boolean; - readonly type: "Send" | "Receive"; - } - /** @name PalletNftsPalletAttributes (180) */ - interface PalletNftsPalletAttributes extends Enum { - readonly isUsedToClaim: boolean; - readonly asUsedToClaim: u32; - readonly isTransferDisabled: boolean; - readonly type: "UsedToClaim" | "TransferDisabled"; - } - /** @name PalletParametersEvent (181) */ - interface PalletParametersEvent extends Enum { - readonly isUpdated: boolean; - readonly asUpdated: { - readonly key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - readonly oldValue: Option; - readonly newValue: Option; - } & Struct; - readonly type: "Updated"; - } - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (182) */ - interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey extends Enum { - readonly isRuntimeConfig: boolean; - readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; - readonly type: "RuntimeConfig"; - } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (183) */ - interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey - extends Enum { - readonly isSlashAmountPerMaxFileSize: boolean; - readonly isStakeToChallengePeriod: boolean; - readonly isCheckpointChallengePeriod: boolean; - readonly isMinChallengePeriod: boolean; - readonly type: - | "SlashAmountPerMaxFileSize" - | "StakeToChallengePeriod" - | "CheckpointChallengePeriod" - | "MinChallengePeriod"; - } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (184) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize = - Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (185) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (186) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod = - Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (187) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod = Null; - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (189) */ - interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue extends Enum { - readonly isRuntimeConfig: boolean; - readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; - readonly type: "RuntimeConfig"; - } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (190) */ - interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue - extends Enum { - readonly isSlashAmountPerMaxFileSize: boolean; - readonly asSlashAmountPerMaxFileSize: u128; - readonly isStakeToChallengePeriod: boolean; - readonly asStakeToChallengePeriod: u128; - readonly isCheckpointChallengePeriod: boolean; - readonly asCheckpointChallengePeriod: u32; - readonly isMinChallengePeriod: boolean; - readonly asMinChallengePeriod: u32; - readonly type: - | "SlashAmountPerMaxFileSize" - | "StakeToChallengePeriod" - | "CheckpointChallengePeriod" - | "MinChallengePeriod"; - } - /** @name FrameSystemPhase (191) */ - interface FrameSystemPhase extends Enum { - readonly isApplyExtrinsic: boolean; - readonly asApplyExtrinsic: u32; - readonly isFinalization: boolean; - readonly isInitialization: boolean; - readonly type: "ApplyExtrinsic" | "Finalization" | "Initialization"; - } - /** @name FrameSystemLastRuntimeUpgradeInfo (194) */ - interface FrameSystemLastRuntimeUpgradeInfo extends Struct { - readonly specVersion: Compact; - readonly specName: Text; - } - /** @name FrameSystemCodeUpgradeAuthorization (196) */ - interface FrameSystemCodeUpgradeAuthorization extends Struct { - readonly codeHash: H256; - readonly checkVersion: bool; - } - /** @name FrameSystemCall (197) */ - interface FrameSystemCall extends Enum { - readonly isRemark: boolean; - readonly asRemark: { - readonly remark: Bytes; - } & Struct; - readonly isSetHeapPages: boolean; - readonly asSetHeapPages: { - readonly pages: u64; - } & Struct; - readonly isSetCode: boolean; - readonly asSetCode: { - readonly code: Bytes; - } & Struct; - readonly isSetCodeWithoutChecks: boolean; - readonly asSetCodeWithoutChecks: { - readonly code: Bytes; - } & Struct; - readonly isSetStorage: boolean; - readonly asSetStorage: { - readonly items: Vec>; - } & Struct; - readonly isKillStorage: boolean; - readonly asKillStorage: { - readonly keys_: Vec; - } & Struct; - readonly isKillPrefix: boolean; - readonly asKillPrefix: { - readonly prefix: Bytes; - readonly subkeys: u32; - } & Struct; - readonly isRemarkWithEvent: boolean; - readonly asRemarkWithEvent: { - readonly remark: Bytes; - } & Struct; - readonly isAuthorizeUpgrade: boolean; - readonly asAuthorizeUpgrade: { - readonly codeHash: H256; - } & Struct; - readonly isAuthorizeUpgradeWithoutChecks: boolean; - readonly asAuthorizeUpgradeWithoutChecks: { - readonly codeHash: H256; - } & Struct; - readonly isApplyAuthorizedUpgrade: boolean; - readonly asApplyAuthorizedUpgrade: { - readonly code: Bytes; - } & Struct; - readonly type: - | "Remark" - | "SetHeapPages" - | "SetCode" - | "SetCodeWithoutChecks" - | "SetStorage" - | "KillStorage" - | "KillPrefix" - | "RemarkWithEvent" - | "AuthorizeUpgrade" - | "AuthorizeUpgradeWithoutChecks" - | "ApplyAuthorizedUpgrade"; - } - /** @name FrameSystemLimitsBlockWeights (200) */ - interface FrameSystemLimitsBlockWeights extends Struct { - readonly baseBlock: SpWeightsWeightV2Weight; - readonly maxBlock: SpWeightsWeightV2Weight; - readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - } - /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (201) */ - interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { - readonly normal: FrameSystemLimitsWeightsPerClass; - readonly operational: FrameSystemLimitsWeightsPerClass; - readonly mandatory: FrameSystemLimitsWeightsPerClass; - } - /** @name FrameSystemLimitsWeightsPerClass (202) */ - interface FrameSystemLimitsWeightsPerClass extends Struct { - readonly baseExtrinsic: SpWeightsWeightV2Weight; - readonly maxExtrinsic: Option; - readonly maxTotal: Option; - readonly reserved: Option; - } - /** @name FrameSystemLimitsBlockLength (204) */ - interface FrameSystemLimitsBlockLength extends Struct { - readonly max: FrameSupportDispatchPerDispatchClassU32; - } - /** @name FrameSupportDispatchPerDispatchClassU32 (205) */ - interface FrameSupportDispatchPerDispatchClassU32 extends Struct { - readonly normal: u32; - readonly operational: u32; - readonly mandatory: u32; - } - /** @name SpWeightsRuntimeDbWeight (206) */ - interface SpWeightsRuntimeDbWeight extends Struct { - readonly read: u64; - readonly write: u64; - } - /** @name SpVersionRuntimeVersion (207) */ - interface SpVersionRuntimeVersion extends Struct { - readonly specName: Text; - readonly implName: Text; - readonly authoringVersion: u32; - readonly specVersion: u32; - readonly implVersion: u32; - readonly apis: Vec>; - readonly transactionVersion: u32; - readonly stateVersion: u8; - } - /** @name FrameSystemError (212) */ - interface FrameSystemError extends Enum { - readonly isInvalidSpecName: boolean; - readonly isSpecVersionNeedsToIncrease: boolean; - readonly isFailedToExtractRuntimeVersion: boolean; - readonly isNonDefaultComposite: boolean; - readonly isNonZeroRefCount: boolean; - readonly isCallFiltered: boolean; - readonly isMultiBlockMigrationsOngoing: boolean; - readonly isNothingAuthorized: boolean; - readonly isUnauthorized: boolean; - readonly type: - | "InvalidSpecName" - | "SpecVersionNeedsToIncrease" - | "FailedToExtractRuntimeVersion" - | "NonDefaultComposite" - | "NonZeroRefCount" - | "CallFiltered" - | "MultiBlockMigrationsOngoing" - | "NothingAuthorized" - | "Unauthorized"; - } - /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (214) */ - interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { - readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; - } - /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (215) */ - interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { - readonly umpMsgCount: u32; - readonly umpTotalBytes: u32; - readonly hrmpOutgoing: BTreeMap< - u32, - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate - >; - } - /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (217) */ - interface CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { - readonly msgCount: u32; - readonly totalBytes: u32; - } -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7UpgradeGoAhead (197) */ -======= - /** @name PolkadotPrimitivesV7UpgradeGoAhead (222) */ ->>>>>>> main - interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { - readonly isAbort: boolean; - readonly isGoAhead: boolean; - readonly type: "Abort" | "GoAhead"; - } - /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (223) */ - interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { - readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; - } -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7PersistedValidationData (199) */ -======= - /** @name PolkadotPrimitivesV7PersistedValidationData (224) */ ->>>>>>> main - interface PolkadotPrimitivesV7PersistedValidationData extends Struct { - readonly parentHead: Bytes; - readonly relayParentNumber: u32; - readonly relayParentStorageRoot: H256; - readonly maxPovSize: u32; - } -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7UpgradeRestriction (202) */ -======= - /** @name PolkadotPrimitivesV7UpgradeRestriction (227) */ ->>>>>>> main - interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { - readonly isPresent: boolean; - readonly type: "Present"; - } - /** @name SpTrieStorageProof (228) */ - interface SpTrieStorageProof extends Struct { - readonly trieNodes: BTreeSet; - } - /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (230) */ - interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { - readonly dmqMqcHead: H256; - readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; - } - /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (231) */ - interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity - extends Struct { - readonly remainingCount: u32; - readonly remainingSize: u32; - } -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (209) */ -======= - /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (234) */ ->>>>>>> main - interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { - readonly maxCapacity: u32; - readonly maxTotalSize: u32; - readonly maxMessageSize: u32; - readonly msgCount: u32; - readonly totalSize: u32; - readonly mqcHead: Option; - } -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (210) */ -======= - /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (235) */ ->>>>>>> main - interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { - readonly maxCodeSize: u32; - readonly maxHeadDataSize: u32; - readonly maxUpwardQueueCount: u32; - readonly maxUpwardQueueSize: u32; - readonly maxUpwardMessageSize: u32; - readonly maxUpwardMessageNumPerCandidate: u32; - readonly hrmpMaxMessageNumPerCandidate: u32; - readonly validationUpgradeCooldown: u32; - readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; - } -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (211) */ -======= - /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (236) */ ->>>>>>> main - interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { - readonly maxCandidateDepth: u32; - readonly allowedAncestryLen: u32; - } - /** @name PolkadotCorePrimitivesOutboundHrmpMessage (242) */ - interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { - readonly recipient: u32; - readonly data: Bytes; - } - /** @name CumulusPalletParachainSystemCall (244) */ - interface CumulusPalletParachainSystemCall extends Enum { - readonly isSetValidationData: boolean; - readonly asSetValidationData: { - readonly data: CumulusPrimitivesParachainInherentParachainInherentData; - } & Struct; - readonly isSudoSendUpwardMessage: boolean; - readonly asSudoSendUpwardMessage: { - readonly message: Bytes; - } & Struct; - readonly isAuthorizeUpgrade: boolean; - readonly asAuthorizeUpgrade: { - readonly codeHash: H256; - readonly checkVersion: bool; - } & Struct; - readonly isEnactAuthorizedUpgrade: boolean; - readonly asEnactAuthorizedUpgrade: { - readonly code: Bytes; - } & Struct; - readonly type: - | "SetValidationData" - | "SudoSendUpwardMessage" - | "AuthorizeUpgrade" - | "EnactAuthorizedUpgrade"; - } - /** @name CumulusPrimitivesParachainInherentParachainInherentData (245) */ - interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV7PersistedValidationData; - readonly relayChainState: SpTrieStorageProof; - readonly downwardMessages: Vec; - readonly horizontalMessages: BTreeMap>; - } - /** @name PolkadotCorePrimitivesInboundDownwardMessage (247) */ - interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { - readonly sentAt: u32; - readonly msg: Bytes; - } - /** @name PolkadotCorePrimitivesInboundHrmpMessage (250) */ - interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { - readonly sentAt: u32; - readonly data: Bytes; - } - /** @name CumulusPalletParachainSystemError (253) */ - interface CumulusPalletParachainSystemError extends Enum { - readonly isOverlappingUpgrades: boolean; - readonly isProhibitedByPolkadot: boolean; - readonly isTooBig: boolean; - readonly isValidationDataNotAvailable: boolean; - readonly isHostConfigurationNotAvailable: boolean; - readonly isNotScheduled: boolean; - readonly isNothingAuthorized: boolean; - readonly isUnauthorized: boolean; - readonly type: - | "OverlappingUpgrades" - | "ProhibitedByPolkadot" - | "TooBig" - | "ValidationDataNotAvailable" - | "HostConfigurationNotAvailable" - | "NotScheduled" - | "NothingAuthorized" - | "Unauthorized"; - } - /** @name PalletTimestampCall (254) */ - interface PalletTimestampCall extends Enum { - readonly isSet: boolean; - readonly asSet: { - readonly now: Compact; - } & Struct; - readonly type: "Set"; - } - /** @name StagingParachainInfoCall (255) */ - type StagingParachainInfoCall = Null; - /** @name PalletBalancesBalanceLock (257) */ - interface PalletBalancesBalanceLock extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - readonly reasons: PalletBalancesReasons; - } - /** @name PalletBalancesReasons (258) */ - interface PalletBalancesReasons extends Enum { - readonly isFee: boolean; - readonly isMisc: boolean; - readonly isAll: boolean; - readonly type: "Fee" | "Misc" | "All"; - } - /** @name PalletBalancesReserveData (261) */ - interface PalletBalancesReserveData extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - } - /** @name StorageHubRuntimeRuntimeHoldReason (265) */ - interface StorageHubRuntimeRuntimeHoldReason extends Enum { - readonly isProviders: boolean; - readonly asProviders: PalletStorageProvidersHoldReason; - readonly isPaymentStreams: boolean; - readonly asPaymentStreams: PalletPaymentStreamsHoldReason; - readonly type: "Providers" | "PaymentStreams"; - } - /** @name PalletStorageProvidersHoldReason (266) */ - interface PalletStorageProvidersHoldReason extends Enum { - readonly isStorageProviderDeposit: boolean; - readonly isBucketDeposit: boolean; - readonly type: "StorageProviderDeposit" | "BucketDeposit"; - } - /** @name PalletPaymentStreamsHoldReason (267) */ - interface PalletPaymentStreamsHoldReason extends Enum { - readonly isPaymentStreamDeposit: boolean; - readonly type: "PaymentStreamDeposit"; - } - /** @name PalletBalancesIdAmount (270) */ - interface PalletBalancesIdAmount extends Struct { - readonly id: Null; - readonly amount: u128; - } - /** @name PalletBalancesCall (272) */ - interface PalletBalancesCall extends Enum { - readonly isTransferAllowDeath: boolean; - readonly asTransferAllowDeath: { - readonly dest: MultiAddress; - readonly value: Compact; - } & Struct; - readonly isForceTransfer: boolean; - readonly asForceTransfer: { - readonly source: MultiAddress; - readonly dest: MultiAddress; - readonly value: Compact; - } & Struct; - readonly isTransferKeepAlive: boolean; - readonly asTransferKeepAlive: { - readonly dest: MultiAddress; - readonly value: Compact; - } & Struct; - readonly isTransferAll: boolean; - readonly asTransferAll: { - readonly dest: MultiAddress; - readonly keepAlive: bool; - } & Struct; - readonly isForceUnreserve: boolean; - readonly asForceUnreserve: { - readonly who: MultiAddress; - readonly amount: u128; - } & Struct; - readonly isUpgradeAccounts: boolean; - readonly asUpgradeAccounts: { - readonly who: Vec; - } & Struct; - readonly isForceSetBalance: boolean; - readonly asForceSetBalance: { - readonly who: MultiAddress; - readonly newFree: Compact; - } & Struct; - readonly isForceAdjustTotalIssuance: boolean; - readonly asForceAdjustTotalIssuance: { - readonly direction: PalletBalancesAdjustmentDirection; - readonly delta: Compact; - } & Struct; - readonly isBurn: boolean; - readonly asBurn: { - readonly value: Compact; - readonly keepAlive: bool; - } & Struct; - readonly type: - | "TransferAllowDeath" - | "ForceTransfer" - | "TransferKeepAlive" - | "TransferAll" - | "ForceUnreserve" - | "UpgradeAccounts" - | "ForceSetBalance" - | "ForceAdjustTotalIssuance" - | "Burn"; - } - /** @name PalletBalancesAdjustmentDirection (275) */ - interface PalletBalancesAdjustmentDirection extends Enum { - readonly isIncrease: boolean; - readonly isDecrease: boolean; - readonly type: "Increase" | "Decrease"; - } - /** @name PalletBalancesError (276) */ - interface PalletBalancesError extends Enum { - readonly isVestingBalance: boolean; - readonly isLiquidityRestrictions: boolean; - readonly isInsufficientBalance: boolean; - readonly isExistentialDeposit: boolean; - readonly isExpendability: boolean; - readonly isExistingVestingSchedule: boolean; - readonly isDeadAccount: boolean; - readonly isTooManyReserves: boolean; - readonly isTooManyHolds: boolean; - readonly isTooManyFreezes: boolean; - readonly isIssuanceDeactivated: boolean; - readonly isDeltaZero: boolean; - readonly type: - | "VestingBalance" - | "LiquidityRestrictions" - | "InsufficientBalance" - | "ExistentialDeposit" - | "Expendability" - | "ExistingVestingSchedule" - | "DeadAccount" - | "TooManyReserves" - | "TooManyHolds" - | "TooManyFreezes" - | "IssuanceDeactivated" - | "DeltaZero"; - } - /** @name PalletTransactionPaymentReleases (277) */ - interface PalletTransactionPaymentReleases extends Enum { - readonly isV1Ancient: boolean; - readonly isV2: boolean; - readonly type: "V1Ancient" | "V2"; - } - /** @name PalletSudoCall (278) */ - interface PalletSudoCall extends Enum { - readonly isSudo: boolean; - readonly asSudo: { - readonly call: Call; - } & Struct; - readonly isSudoUncheckedWeight: boolean; - readonly asSudoUncheckedWeight: { - readonly call: Call; - readonly weight: SpWeightsWeightV2Weight; - } & Struct; - readonly isSetKey: boolean; - readonly asSetKey: { - readonly new_: MultiAddress; - } & Struct; - readonly isSudoAs: boolean; - readonly asSudoAs: { - readonly who: MultiAddress; - readonly call: Call; - } & Struct; - readonly isRemoveKey: boolean; - readonly type: "Sudo" | "SudoUncheckedWeight" | "SetKey" | "SudoAs" | "RemoveKey"; - } - /** @name PalletCollatorSelectionCall (280) */ - interface PalletCollatorSelectionCall extends Enum { - readonly isSetInvulnerables: boolean; - readonly asSetInvulnerables: { - readonly new_: Vec; - } & Struct; - readonly isSetDesiredCandidates: boolean; - readonly asSetDesiredCandidates: { - readonly max: u32; - } & Struct; - readonly isSetCandidacyBond: boolean; - readonly asSetCandidacyBond: { - readonly bond: u128; - } & Struct; - readonly isRegisterAsCandidate: boolean; - readonly isLeaveIntent: boolean; - readonly isAddInvulnerable: boolean; - readonly asAddInvulnerable: { - readonly who: AccountId32; - } & Struct; - readonly isRemoveInvulnerable: boolean; - readonly asRemoveInvulnerable: { - readonly who: AccountId32; - } & Struct; - readonly isUpdateBond: boolean; - readonly asUpdateBond: { - readonly newDeposit: u128; - } & Struct; - readonly isTakeCandidateSlot: boolean; - readonly asTakeCandidateSlot: { - readonly deposit: u128; - readonly target: AccountId32; - } & Struct; - readonly type: - | "SetInvulnerables" - | "SetDesiredCandidates" - | "SetCandidacyBond" - | "RegisterAsCandidate" - | "LeaveIntent" - | "AddInvulnerable" - | "RemoveInvulnerable" - | "UpdateBond" - | "TakeCandidateSlot"; - } - /** @name PalletSessionCall (281) */ - interface PalletSessionCall extends Enum { - readonly isSetKeys: boolean; - readonly asSetKeys: { - readonly keys_: StorageHubRuntimeSessionKeys; - readonly proof: Bytes; - } & Struct; - readonly isPurgeKeys: boolean; - readonly type: "SetKeys" | "PurgeKeys"; - } - /** @name StorageHubRuntimeSessionKeys (282) */ - interface StorageHubRuntimeSessionKeys extends Struct { - readonly aura: SpConsensusAuraSr25519AppSr25519Public; - } -<<<<<<< HEAD - /** @name SpConsensusAuraSr25519AppSr25519Public (258) */ - interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (259) */ -======= - /** @name SpConsensusAuraSr25519AppSr25519Public (283) */ - interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - /** @name CumulusPalletXcmpQueueCall (284) */ ->>>>>>> main - interface CumulusPalletXcmpQueueCall extends Enum { - readonly isSuspendXcmExecution: boolean; - readonly isResumeXcmExecution: boolean; - readonly isUpdateSuspendThreshold: boolean; - readonly asUpdateSuspendThreshold: { - readonly new_: u32; - } & Struct; - readonly isUpdateDropThreshold: boolean; - readonly asUpdateDropThreshold: { - readonly new_: u32; - } & Struct; - readonly isUpdateResumeThreshold: boolean; - readonly asUpdateResumeThreshold: { - readonly new_: u32; - } & Struct; - readonly type: - | "SuspendXcmExecution" - | "ResumeXcmExecution" - | "UpdateSuspendThreshold" - | "UpdateDropThreshold" - | "UpdateResumeThreshold"; - } -<<<<<<< HEAD - /** @name PalletXcmCall (260) */ -======= - /** @name PalletXcmCall (285) */ ->>>>>>> main - interface PalletXcmCall extends Enum { - readonly isSend: boolean; - readonly asSend: { - readonly dest: XcmVersionedLocation; - readonly message: XcmVersionedXcm; - } & Struct; - readonly isTeleportAssets: boolean; - readonly asTeleportAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - } & Struct; - readonly isReserveTransferAssets: boolean; - readonly asReserveTransferAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - } & Struct; - readonly isExecute: boolean; - readonly asExecute: { - readonly message: XcmVersionedXcm; - readonly maxWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isForceXcmVersion: boolean; - readonly asForceXcmVersion: { - readonly location: StagingXcmV4Location; - readonly version: u32; - } & Struct; - readonly isForceDefaultXcmVersion: boolean; - readonly asForceDefaultXcmVersion: { - readonly maybeXcmVersion: Option; - } & Struct; - readonly isForceSubscribeVersionNotify: boolean; - readonly asForceSubscribeVersionNotify: { - readonly location: XcmVersionedLocation; - } & Struct; - readonly isForceUnsubscribeVersionNotify: boolean; - readonly asForceUnsubscribeVersionNotify: { - readonly location: XcmVersionedLocation; - } & Struct; - readonly isLimitedReserveTransferAssets: boolean; - readonly asLimitedReserveTransferAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isLimitedTeleportAssets: boolean; - readonly asLimitedTeleportAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isForceSuspension: boolean; - readonly asForceSuspension: { - readonly suspended: bool; - } & Struct; - readonly isTransferAssets: boolean; - readonly asTransferAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isClaimAssets: boolean; - readonly asClaimAssets: { - readonly assets: XcmVersionedAssets; - readonly beneficiary: XcmVersionedLocation; - } & Struct; - readonly isTransferAssetsUsingTypeAndThen: boolean; - readonly asTransferAssetsUsingTypeAndThen: { - readonly dest: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; - readonly remoteFeesId: XcmVersionedAssetId; - readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; - readonly customXcmOnDest: XcmVersionedXcm; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly type: - | "Send" - | "TeleportAssets" - | "ReserveTransferAssets" - | "Execute" - | "ForceXcmVersion" - | "ForceDefaultXcmVersion" - | "ForceSubscribeVersionNotify" - | "ForceUnsubscribeVersionNotify" - | "LimitedReserveTransferAssets" - | "LimitedTeleportAssets" - | "ForceSuspension" - | "TransferAssets" - | "ClaimAssets" - | "TransferAssetsUsingTypeAndThen"; - } -<<<<<<< HEAD - /** @name XcmVersionedXcm (261) */ -======= - /** @name XcmVersionedXcm (286) */ ->>>>>>> main - interface XcmVersionedXcm extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2Xcm; - readonly isV3: boolean; - readonly asV3: XcmV3Xcm; - readonly isV4: boolean; - readonly asV4: StagingXcmV4Xcm; - readonly type: "V2" | "V3" | "V4"; - } -<<<<<<< HEAD - /** @name XcmV2Xcm (262) */ - interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (264) */ -======= - /** @name XcmV2Xcm (287) */ - interface XcmV2Xcm extends Vec {} - /** @name XcmV2Instruction (289) */ ->>>>>>> main - interface XcmV2Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: XcmV2MultiassetMultiAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: XcmV2MultiassetMultiAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: XcmV2Response; - readonly maxWeight: Compact; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: XcmV2MultiassetMultiAssets; - readonly beneficiary: XcmV2MultiLocation; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: XcmV2MultiassetMultiAssets; - readonly dest: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originType: XcmV2OriginKind; - readonly requireWeightAtMost: Compact; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: XcmV2MultilocationJunctions; - readonly isReportError: boolean; - readonly asReportError: { - readonly queryId: Compact; - readonly dest: XcmV2MultiLocation; - readonly maxResponseWeight: Compact; - } & Struct; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly maxAssets: Compact; - readonly beneficiary: XcmV2MultiLocation; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly maxAssets: Compact; - readonly dest: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: XcmV2MultiassetMultiAssetFilter; - readonly receive: XcmV2MultiassetMultiAssets; - } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly reserve: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly dest: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isQueryHolding: boolean; - readonly asQueryHolding: { - readonly queryId: Compact; - readonly dest: XcmV2MultiLocation; - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly maxResponseWeight: Compact; - } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: XcmV2MultiAsset; - readonly weightLimit: XcmV2WeightLimit; - } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: XcmV2Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: XcmV2Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: XcmV2MultiassetMultiAssets; - readonly ticket: XcmV2MultiLocation; - } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: Compact; - } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly type: - | "WithdrawAsset" - | "ReserveAssetDeposited" - | "ReceiveTeleportedAsset" - | "QueryResponse" - | "TransferAsset" - | "TransferReserveAsset" - | "Transact" - | "HrmpNewChannelOpenRequest" - | "HrmpChannelAccepted" - | "HrmpChannelClosing" - | "ClearOrigin" - | "DescendOrigin" - | "ReportError" - | "DepositAsset" - | "DepositReserveAsset" - | "ExchangeAsset" - | "InitiateReserveWithdraw" - | "InitiateTeleport" - | "QueryHolding" - | "BuyExecution" - | "RefundSurplus" - | "SetErrorHandler" - | "SetAppendix" - | "ClearError" - | "ClaimAsset" - | "Trap" - | "SubscribeVersion" - | "UnsubscribeVersion"; - } -<<<<<<< HEAD - /** @name XcmV2Response (265) */ -======= - /** @name XcmV2Response (290) */ ->>>>>>> main - interface XcmV2Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: XcmV2MultiassetMultiAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; - } -<<<<<<< HEAD - /** @name XcmV2TraitsError (268) */ -======= - /** @name XcmV2TraitsError (293) */ ->>>>>>> main - interface XcmV2TraitsError extends Enum { - readonly isOverflow: boolean; - readonly isUnimplemented: boolean; - readonly isUntrustedReserveLocation: boolean; - readonly isUntrustedTeleportLocation: boolean; - readonly isMultiLocationFull: boolean; - readonly isMultiLocationNotInvertible: boolean; - readonly isBadOrigin: boolean; - readonly isInvalidLocation: boolean; - readonly isAssetNotFound: boolean; - readonly isFailedToTransactAsset: boolean; - readonly isNotWithdrawable: boolean; - readonly isLocationCannotHold: boolean; - readonly isExceedsMaxMessageSize: boolean; - readonly isDestinationUnsupported: boolean; - readonly isTransport: boolean; - readonly isUnroutable: boolean; - readonly isUnknownClaim: boolean; - readonly isFailedToDecode: boolean; - readonly isMaxWeightInvalid: boolean; - readonly isNotHoldingFees: boolean; - readonly isTooExpensive: boolean; - readonly isTrap: boolean; - readonly asTrap: u64; - readonly isUnhandledXcmVersion: boolean; - readonly isWeightLimitReached: boolean; - readonly asWeightLimitReached: u64; - readonly isBarrier: boolean; - readonly isWeightNotComputable: boolean; - readonly type: - | "Overflow" - | "Unimplemented" - | "UntrustedReserveLocation" - | "UntrustedTeleportLocation" - | "MultiLocationFull" - | "MultiLocationNotInvertible" - | "BadOrigin" - | "InvalidLocation" - | "AssetNotFound" - | "FailedToTransactAsset" - | "NotWithdrawable" - | "LocationCannotHold" - | "ExceedsMaxMessageSize" - | "DestinationUnsupported" - | "Transport" - | "Unroutable" - | "UnknownClaim" - | "FailedToDecode" - | "MaxWeightInvalid" - | "NotHoldingFees" - | "TooExpensive" - | "Trap" - | "UnhandledXcmVersion" - | "WeightLimitReached" - | "Barrier" - | "WeightNotComputable"; - } -<<<<<<< HEAD - /** @name XcmV2OriginKind (269) */ - interface XcmV2OriginKind extends Enum { - readonly isNative: boolean; - readonly isSovereignAccount: boolean; - readonly isSuperuser: boolean; - readonly isXcm: boolean; - readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; - } - /** @name XcmV2MultiassetMultiAssetFilter (270) */ -======= - /** @name XcmV2MultiassetMultiAssetFilter (294) */ ->>>>>>> main - interface XcmV2MultiassetMultiAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: XcmV2MultiassetMultiAssets; - readonly isWild: boolean; - readonly asWild: XcmV2MultiassetWildMultiAsset; - readonly type: "Definite" | "Wild"; - } - /** @name XcmV2MultiassetWildMultiAsset (295) */ - interface XcmV2MultiassetWildMultiAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: XcmV2MultiassetAssetId; - readonly fun: XcmV2MultiassetWildFungibility; - } & Struct; - readonly type: "All" | "AllOf"; - } - /** @name XcmV2MultiassetWildFungibility (296) */ - interface XcmV2MultiassetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: "Fungible" | "NonFungible"; - } - /** @name XcmV2WeightLimit (297) */ - interface XcmV2WeightLimit extends Enum { - readonly isUnlimited: boolean; - readonly isLimited: boolean; - readonly asLimited: Compact; - readonly type: "Unlimited" | "Limited"; - } - /** @name XcmV3Xcm (298) */ - interface XcmV3Xcm extends Vec {} - /** @name XcmV3Instruction (300) */ - interface XcmV3Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: XcmV3Response; - readonly maxWeight: SpWeightsWeightV2Weight; - readonly querier: Option; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly beneficiary: StagingXcmV3MultiLocation; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly dest: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originKind: XcmV3OriginKind; - readonly requireWeightAtMost: SpWeightsWeightV2Weight; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: XcmV3Junctions; - readonly isReportError: boolean; - readonly asReportError: XcmV3QueryResponseInfo; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly beneficiary: StagingXcmV3MultiLocation; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly dest: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: XcmV3MultiassetMultiAssetFilter; - readonly want: XcmV3MultiassetMultiAssets; - readonly maximal: bool; - } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly reserve: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly dest: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isReportHolding: boolean; - readonly asReportHolding: { - readonly responseInfo: XcmV3QueryResponseInfo; - readonly assets: XcmV3MultiassetMultiAssetFilter; - } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: XcmV3MultiAsset; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: XcmV3Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: XcmV3Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly ticket: StagingXcmV3MultiLocation; - } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly isBurnAsset: boolean; - readonly asBurnAsset: XcmV3MultiassetMultiAssets; - readonly isExpectAsset: boolean; - readonly asExpectAsset: XcmV3MultiassetMultiAssets; - readonly isExpectOrigin: boolean; - readonly asExpectOrigin: Option; - readonly isExpectError: boolean; - readonly asExpectError: Option>; - readonly isExpectTransactStatus: boolean; - readonly asExpectTransactStatus: XcmV3MaybeErrorCode; - readonly isQueryPallet: boolean; - readonly asQueryPallet: { - readonly moduleName: Bytes; - readonly responseInfo: XcmV3QueryResponseInfo; - } & Struct; - readonly isExpectPallet: boolean; - readonly asExpectPallet: { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly crateMajor: Compact; - readonly minCrateMinor: Compact; - } & Struct; - readonly isReportTransactStatus: boolean; - readonly asReportTransactStatus: XcmV3QueryResponseInfo; - readonly isClearTransactStatus: boolean; - readonly isUniversalOrigin: boolean; - readonly asUniversalOrigin: XcmV3Junction; - readonly isExportMessage: boolean; - readonly asExportMessage: { - readonly network: XcmV3JunctionNetworkId; - readonly destination: XcmV3Junctions; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isLockAsset: boolean; - readonly asLockAsset: { - readonly asset: XcmV3MultiAsset; - readonly unlocker: StagingXcmV3MultiLocation; - } & Struct; - readonly isUnlockAsset: boolean; - readonly asUnlockAsset: { - readonly asset: XcmV3MultiAsset; - readonly target: StagingXcmV3MultiLocation; - } & Struct; - readonly isNoteUnlockable: boolean; - readonly asNoteUnlockable: { - readonly asset: XcmV3MultiAsset; - readonly owner: StagingXcmV3MultiLocation; - } & Struct; - readonly isRequestUnlock: boolean; - readonly asRequestUnlock: { - readonly asset: XcmV3MultiAsset; - readonly locker: StagingXcmV3MultiLocation; - } & Struct; - readonly isSetFeesMode: boolean; - readonly asSetFeesMode: { - readonly jitWithdraw: bool; - } & Struct; - readonly isSetTopic: boolean; - readonly asSetTopic: U8aFixed; - readonly isClearTopic: boolean; - readonly isAliasOrigin: boolean; - readonly asAliasOrigin: StagingXcmV3MultiLocation; - readonly isUnpaidExecution: boolean; - readonly asUnpaidExecution: { - readonly weightLimit: XcmV3WeightLimit; - readonly checkOrigin: Option; - } & Struct; - readonly type: - | "WithdrawAsset" - | "ReserveAssetDeposited" - | "ReceiveTeleportedAsset" - | "QueryResponse" - | "TransferAsset" - | "TransferReserveAsset" - | "Transact" - | "HrmpNewChannelOpenRequest" - | "HrmpChannelAccepted" - | "HrmpChannelClosing" - | "ClearOrigin" - | "DescendOrigin" - | "ReportError" - | "DepositAsset" - | "DepositReserveAsset" - | "ExchangeAsset" - | "InitiateReserveWithdraw" - | "InitiateTeleport" - | "ReportHolding" - | "BuyExecution" - | "RefundSurplus" - | "SetErrorHandler" - | "SetAppendix" - | "ClearError" - | "ClaimAsset" - | "Trap" - | "SubscribeVersion" - | "UnsubscribeVersion" - | "BurnAsset" - | "ExpectAsset" - | "ExpectOrigin" - | "ExpectError" - | "ExpectTransactStatus" - | "QueryPallet" - | "ExpectPallet" - | "ReportTransactStatus" - | "ClearTransactStatus" - | "UniversalOrigin" - | "ExportMessage" - | "LockAsset" - | "UnlockAsset" - | "NoteUnlockable" - | "RequestUnlock" - | "SetFeesMode" - | "SetTopic" - | "ClearTopic" - | "AliasOrigin" - | "UnpaidExecution"; - } - /** @name XcmV3Response (301) */ - interface XcmV3Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: XcmV3MultiassetMultiAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly isPalletsInfo: boolean; - readonly asPalletsInfo: Vec; - readonly isDispatchResult: boolean; - readonly asDispatchResult: XcmV3MaybeErrorCode; - readonly type: - | "Null" - | "Assets" - | "ExecutionResult" - | "Version" - | "PalletsInfo" - | "DispatchResult"; - } - /** @name XcmV3PalletInfo (303) */ - interface XcmV3PalletInfo extends Struct { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly major: Compact; - readonly minor: Compact; - readonly patch: Compact; - } - /** @name XcmV3QueryResponseInfo (307) */ - interface XcmV3QueryResponseInfo extends Struct { - readonly destination: StagingXcmV3MultiLocation; - readonly queryId: Compact; - readonly maxWeight: SpWeightsWeightV2Weight; - } - /** @name XcmV3MultiassetMultiAssetFilter (308) */ - interface XcmV3MultiassetMultiAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: XcmV3MultiassetMultiAssets; - readonly isWild: boolean; - readonly asWild: XcmV3MultiassetWildMultiAsset; - readonly type: "Definite" | "Wild"; - } - /** @name XcmV3MultiassetWildMultiAsset (309) */ - interface XcmV3MultiassetWildMultiAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetWildFungibility; - } & Struct; - readonly isAllCounted: boolean; - readonly asAllCounted: Compact; - readonly isAllOfCounted: boolean; - readonly asAllOfCounted: { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetWildFungibility; - readonly count: Compact; - } & Struct; - readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; - } - /** @name XcmV3MultiassetWildFungibility (310) */ - interface XcmV3MultiassetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: "Fungible" | "NonFungible"; - } -<<<<<<< HEAD - /** @name StagingXcmExecutorAssetTransferTransferType (298) */ -======= - /** @name StagingXcmExecutorAssetTransferTransferType (322) */ ->>>>>>> main - interface StagingXcmExecutorAssetTransferTransferType extends Enum { - readonly isTeleport: boolean; - readonly isLocalReserve: boolean; - readonly isDestinationReserve: boolean; - readonly isRemoteReserve: boolean; - readonly asRemoteReserve: XcmVersionedLocation; - readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; - } -<<<<<<< HEAD - /** @name XcmVersionedAssetId (299) */ -======= - /** @name XcmVersionedAssetId (323) */ ->>>>>>> main - interface XcmVersionedAssetId extends Enum { - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetAssetId; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssetId; - readonly type: "V3" | "V4"; - } -<<<<<<< HEAD - /** @name CumulusPalletXcmCall (300) */ - type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (301) */ -======= - /** @name CumulusPalletXcmCall (324) */ - type CumulusPalletXcmCall = Null; - /** @name PalletMessageQueueCall (325) */ ->>>>>>> main - interface PalletMessageQueueCall extends Enum { - readonly isReapPage: boolean; - readonly asReapPage: { - readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly pageIndex: u32; - } & Struct; - readonly isExecuteOverweight: boolean; - readonly asExecuteOverweight: { - readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly page: u32; - readonly index: u32; - readonly weightLimit: SpWeightsWeightV2Weight; - } & Struct; - readonly type: "ReapPage" | "ExecuteOverweight"; - } -<<<<<<< HEAD - /** @name PalletStorageProvidersCall (302) */ -======= - /** @name PalletStorageProvidersCall (326) */ ->>>>>>> main - interface PalletStorageProvidersCall extends Enum { - readonly isRequestMspSignUp: boolean; - readonly asRequestMspSignUp: { - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly valueProp: PalletStorageProvidersValueProposition; - readonly paymentAccount: AccountId32; - } & Struct; - readonly isRequestBspSignUp: boolean; - readonly asRequestBspSignUp: { - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly paymentAccount: AccountId32; - } & Struct; - readonly isConfirmSignUp: boolean; - readonly asConfirmSignUp: { - readonly providerAccount: Option; - } & Struct; - readonly isCancelSignUp: boolean; - readonly isMspSignOff: boolean; - readonly isBspSignOff: boolean; - readonly isChangeCapacity: boolean; - readonly asChangeCapacity: { - readonly newCapacity: u64; - } & Struct; - readonly isAddValueProp: boolean; - readonly asAddValueProp: { - readonly newValueProp: PalletStorageProvidersValueProposition; - } & Struct; - readonly isForceMspSignUp: boolean; - readonly asForceMspSignUp: { - readonly who: AccountId32; - readonly mspId: H256; - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly valueProp: PalletStorageProvidersValueProposition; - readonly paymentAccount: AccountId32; - } & Struct; - readonly isForceBspSignUp: boolean; - readonly asForceBspSignUp: { - readonly who: AccountId32; - readonly bspId: H256; - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly paymentAccount: AccountId32; - readonly weight: Option; - } & Struct; - readonly isSlash: boolean; - readonly asSlash: { - readonly providerId: H256; - } & Struct; - readonly type: - | "RequestMspSignUp" - | "RequestBspSignUp" - | "ConfirmSignUp" - | "CancelSignUp" - | "MspSignOff" - | "BspSignOff" - | "ChangeCapacity" - | "AddValueProp" - | "ForceMspSignUp" - | "ForceBspSignUp" - | "Slash"; - } -<<<<<<< HEAD - /** @name PalletFileSystemCall (303) */ -======= - /** @name PalletFileSystemCall (327) */ ->>>>>>> main - interface PalletFileSystemCall extends Enum { - readonly isCreateBucket: boolean; - readonly asCreateBucket: { - readonly mspId: H256; - readonly name: Bytes; - readonly private: bool; - } & Struct; - readonly isRequestMoveBucket: boolean; - readonly asRequestMoveBucket: { - readonly bucketId: H256; - readonly newMspId: H256; - } & Struct; - readonly isMspRespondMoveBucketRequest: boolean; - readonly asMspRespondMoveBucketRequest: { - readonly bucketId: H256; - readonly response: PalletFileSystemBucketMoveRequestResponse; - } & Struct; - readonly isUpdateBucketPrivacy: boolean; - readonly asUpdateBucketPrivacy: { - readonly bucketId: H256; - readonly private: bool; - } & Struct; - readonly isCreateAndAssociateCollectionWithBucket: boolean; - readonly asCreateAndAssociateCollectionWithBucket: { - readonly bucketId: H256; - } & Struct; - readonly isIssueStorageRequest: boolean; - readonly asIssueStorageRequest: { - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly size_: u64; - readonly mspId: H256; - readonly peerIds: Vec; - } & Struct; - readonly isRevokeStorageRequest: boolean; - readonly asRevokeStorageRequest: { - readonly fileKey: H256; - } & Struct; - readonly isBspAddDataServerForMoveBucketRequest: boolean; - readonly asBspAddDataServerForMoveBucketRequest: { - readonly bucketId: H256; - } & Struct; - readonly isMspRespondStorageRequestsMultipleBuckets: boolean; - readonly asMspRespondStorageRequestsMultipleBuckets: { - readonly fileKeyResponsesInput: Vec< - ITuple<[H256, PalletFileSystemMspStorageRequestResponse]> - >; - } & Struct; - readonly isBspVolunteer: boolean; - readonly asBspVolunteer: { - readonly fileKey: H256; - } & Struct; - readonly isBspConfirmStoring: boolean; - readonly asBspConfirmStoring: { - readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; - readonly fileKeysAndProofs: Vec>; - } & Struct; - readonly isBspRequestStopStoring: boolean; - readonly asBspRequestStopStoring: { - readonly fileKey: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly owner: AccountId32; - readonly fingerprint: H256; - readonly size_: u64; - readonly canServe: bool; - readonly inclusionForestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isBspConfirmStopStoring: boolean; - readonly asBspConfirmStopStoring: { - readonly fileKey: H256; - readonly inclusionForestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isStopStoringForInsolventUser: boolean; - readonly asStopStoringForInsolventUser: { - readonly fileKey: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly owner: AccountId32; - readonly fingerprint: H256; - readonly size_: u64; - readonly inclusionForestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isDeleteFile: boolean; - readonly asDeleteFile: { - readonly bucketId: H256; - readonly fileKey: H256; - readonly location: Bytes; - readonly size_: u64; - readonly fingerprint: H256; - readonly maybeInclusionForestProof: Option; - } & Struct; - readonly isPendingFileDeletionRequestSubmitProof: boolean; - readonly asPendingFileDeletionRequestSubmitProof: { - readonly user: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly forestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isSetGlobalParameters: boolean; - readonly asSetGlobalParameters: { - readonly replicationTarget: Option; - readonly tickRangeToMaximumThreshold: Option; - } & Struct; - readonly type: - | "CreateBucket" - | "RequestMoveBucket" - | "MspRespondMoveBucketRequest" - | "UpdateBucketPrivacy" - | "CreateAndAssociateCollectionWithBucket" - | "IssueStorageRequest" - | "RevokeStorageRequest" - | "BspAddDataServerForMoveBucketRequest" - | "MspRespondStorageRequestsMultipleBuckets" - | "BspVolunteer" - | "BspConfirmStoring" - | "BspRequestStopStoring" - | "BspConfirmStopStoring" - | "StopStoringForInsolventUser" - | "DeleteFile" - | "PendingFileDeletionRequestSubmitProof" - | "SetGlobalParameters"; - } -<<<<<<< HEAD - /** @name PalletFileSystemBucketMoveRequestResponse (304) */ -======= - /** @name PalletFileSystemBucketMoveRequestResponse (328) */ ->>>>>>> main - interface PalletFileSystemBucketMoveRequestResponse extends Enum { - readonly isAccepted: boolean; - readonly isRejected: boolean; - readonly type: "Accepted" | "Rejected"; - } -<<<<<<< HEAD - /** @name PalletProofsDealerCall (309) */ -======= - /** @name PalletFileSystemMspStorageRequestResponse (331) */ - interface PalletFileSystemMspStorageRequestResponse extends Struct { - readonly accept: Option; - readonly reject: Option>>; - } - /** @name PalletFileSystemAcceptedStorageRequestParameters (333) */ - interface PalletFileSystemAcceptedStorageRequestParameters extends Struct { - readonly fileKeysAndProofs: Vec>; - readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; - } - /** @name PalletProofsDealerCall (340) */ ->>>>>>> main - interface PalletProofsDealerCall extends Enum { - readonly isChallenge: boolean; - readonly asChallenge: { - readonly key: H256; - } & Struct; - readonly isSubmitProof: boolean; - readonly asSubmitProof: { - readonly proof: PalletProofsDealerProof; - readonly provider: Option; - } & Struct; - readonly isForceInitialiseChallengeCycle: boolean; - readonly asForceInitialiseChallengeCycle: { - readonly provider: H256; - } & Struct; - readonly isSetPaused: boolean; - readonly asSetPaused: { - readonly paused: bool; - } & Struct; - readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; - } -<<<<<<< HEAD - /** @name PalletRandomnessCall (310) */ -======= - /** @name PalletRandomnessCall (341) */ ->>>>>>> main - interface PalletRandomnessCall extends Enum { - readonly isSetBabeRandomness: boolean; - readonly type: "SetBabeRandomness"; - } -<<<<<<< HEAD - /** @name PalletPaymentStreamsCall (311) */ -======= - /** @name PalletPaymentStreamsCall (342) */ ->>>>>>> main - interface PalletPaymentStreamsCall extends Enum { - readonly isCreateFixedRatePaymentStream: boolean; - readonly asCreateFixedRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly rate: u128; - } & Struct; - readonly isUpdateFixedRatePaymentStream: boolean; - readonly asUpdateFixedRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly newRate: u128; - } & Struct; - readonly isDeleteFixedRatePaymentStream: boolean; - readonly asDeleteFixedRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - } & Struct; - readonly isCreateDynamicRatePaymentStream: boolean; - readonly asCreateDynamicRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly amountProvided: u64; - } & Struct; - readonly isUpdateDynamicRatePaymentStream: boolean; - readonly asUpdateDynamicRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly newAmountProvided: u64; - } & Struct; - readonly isDeleteDynamicRatePaymentStream: boolean; - readonly asDeleteDynamicRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - } & Struct; - readonly isChargePaymentStreams: boolean; - readonly asChargePaymentStreams: { - readonly userAccount: AccountId32; - } & Struct; - readonly isPayOutstandingDebt: boolean; - readonly isClearInsolventFlag: boolean; - readonly type: - | "CreateFixedRatePaymentStream" - | "UpdateFixedRatePaymentStream" - | "DeleteFixedRatePaymentStream" - | "CreateDynamicRatePaymentStream" - | "UpdateDynamicRatePaymentStream" - | "DeleteDynamicRatePaymentStream" - | "ChargePaymentStreams" - | "PayOutstandingDebt" - | "ClearInsolventFlag"; - } -<<<<<<< HEAD - /** @name PalletBucketNftsCall (312) */ -======= - /** @name PalletBucketNftsCall (343) */ ->>>>>>> main - interface PalletBucketNftsCall extends Enum { - readonly isShareAccess: boolean; - readonly asShareAccess: { - readonly recipient: MultiAddress; - readonly bucket: H256; - readonly itemId: u32; - readonly readAccessRegex: Option; - } & Struct; - readonly isUpdateReadAccess: boolean; - readonly asUpdateReadAccess: { - readonly bucket: H256; - readonly itemId: u32; - readonly readAccessRegex: Option; - } & Struct; - readonly type: "ShareAccess" | "UpdateReadAccess"; - } -<<<<<<< HEAD - /** @name PalletNftsCall (314) */ -======= - /** @name PalletNftsCall (345) */ ->>>>>>> main - interface PalletNftsCall extends Enum { - readonly isCreate: boolean; - readonly asCreate: { - readonly admin: MultiAddress; - readonly config: PalletNftsCollectionConfig; - } & Struct; - readonly isForceCreate: boolean; - readonly asForceCreate: { - readonly owner: MultiAddress; - readonly config: PalletNftsCollectionConfig; - } & Struct; - readonly isDestroy: boolean; - readonly asDestroy: { - readonly collection: u32; - readonly witness: PalletNftsDestroyWitness; - } & Struct; - readonly isMint: boolean; - readonly asMint: { - readonly collection: u32; - readonly item: u32; - readonly mintTo: MultiAddress; - readonly witnessData: Option; - } & Struct; - readonly isForceMint: boolean; - readonly asForceMint: { - readonly collection: u32; - readonly item: u32; - readonly mintTo: MultiAddress; - readonly itemConfig: PalletNftsItemConfig; - } & Struct; - readonly isBurn: boolean; - readonly asBurn: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isTransfer: boolean; - readonly asTransfer: { - readonly collection: u32; - readonly item: u32; - readonly dest: MultiAddress; - } & Struct; - readonly isRedeposit: boolean; - readonly asRedeposit: { - readonly collection: u32; - readonly items: Vec; - } & Struct; - readonly isLockItemTransfer: boolean; - readonly asLockItemTransfer: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isUnlockItemTransfer: boolean; - readonly asUnlockItemTransfer: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isLockCollection: boolean; - readonly asLockCollection: { - readonly collection: u32; - readonly lockSettings: u64; - } & Struct; - readonly isTransferOwnership: boolean; - readonly asTransferOwnership: { - readonly collection: u32; - readonly newOwner: MultiAddress; - } & Struct; - readonly isSetTeam: boolean; - readonly asSetTeam: { - readonly collection: u32; - readonly issuer: Option; - readonly admin: Option; - readonly freezer: Option; - } & Struct; - readonly isForceCollectionOwner: boolean; - readonly asForceCollectionOwner: { - readonly collection: u32; - readonly owner: MultiAddress; - } & Struct; - readonly isForceCollectionConfig: boolean; - readonly asForceCollectionConfig: { - readonly collection: u32; - readonly config: PalletNftsCollectionConfig; - } & Struct; - readonly isApproveTransfer: boolean; - readonly asApproveTransfer: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - readonly maybeDeadline: Option; - } & Struct; - readonly isCancelApproval: boolean; - readonly asCancelApproval: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - } & Struct; - readonly isClearAllTransferApprovals: boolean; - readonly asClearAllTransferApprovals: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isLockItemProperties: boolean; - readonly asLockItemProperties: { - readonly collection: u32; - readonly item: u32; - readonly lockMetadata: bool; - readonly lockAttributes: bool; - } & Struct; - readonly isSetAttribute: boolean; - readonly asSetAttribute: { - readonly collection: u32; - readonly maybeItem: Option; - readonly namespace: PalletNftsAttributeNamespace; - readonly key: Bytes; - readonly value: Bytes; - } & Struct; - readonly isForceSetAttribute: boolean; - readonly asForceSetAttribute: { - readonly setAs: Option; - readonly collection: u32; - readonly maybeItem: Option; - readonly namespace: PalletNftsAttributeNamespace; - readonly key: Bytes; - readonly value: Bytes; - } & Struct; - readonly isClearAttribute: boolean; - readonly asClearAttribute: { - readonly collection: u32; - readonly maybeItem: Option; - readonly namespace: PalletNftsAttributeNamespace; - readonly key: Bytes; - } & Struct; - readonly isApproveItemAttributes: boolean; - readonly asApproveItemAttributes: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - } & Struct; - readonly isCancelItemAttributesApproval: boolean; - readonly asCancelItemAttributesApproval: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - readonly witness: PalletNftsCancelAttributesApprovalWitness; - } & Struct; - readonly isSetMetadata: boolean; - readonly asSetMetadata: { - readonly collection: u32; - readonly item: u32; - readonly data: Bytes; - } & Struct; - readonly isClearMetadata: boolean; - readonly asClearMetadata: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isSetCollectionMetadata: boolean; - readonly asSetCollectionMetadata: { - readonly collection: u32; - readonly data: Bytes; - } & Struct; - readonly isClearCollectionMetadata: boolean; - readonly asClearCollectionMetadata: { - readonly collection: u32; - } & Struct; - readonly isSetAcceptOwnership: boolean; - readonly asSetAcceptOwnership: { - readonly maybeCollection: Option; - } & Struct; - readonly isSetCollectionMaxSupply: boolean; - readonly asSetCollectionMaxSupply: { - readonly collection: u32; - readonly maxSupply: u32; - } & Struct; - readonly isUpdateMintSettings: boolean; - readonly asUpdateMintSettings: { - readonly collection: u32; - readonly mintSettings: PalletNftsMintSettings; - } & Struct; - readonly isSetPrice: boolean; - readonly asSetPrice: { - readonly collection: u32; - readonly item: u32; - readonly price: Option; - readonly whitelistedBuyer: Option; - } & Struct; - readonly isBuyItem: boolean; - readonly asBuyItem: { - readonly collection: u32; - readonly item: u32; - readonly bidPrice: u128; - } & Struct; - readonly isPayTips: boolean; - readonly asPayTips: { - readonly tips: Vec; - } & Struct; - readonly isCreateSwap: boolean; - readonly asCreateSwap: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - readonly desiredCollection: u32; - readonly maybeDesiredItem: Option; - readonly maybePrice: Option; - readonly duration: u32; - } & Struct; - readonly isCancelSwap: boolean; - readonly asCancelSwap: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - } & Struct; - readonly isClaimSwap: boolean; - readonly asClaimSwap: { - readonly sendCollection: u32; - readonly sendItem: u32; - readonly receiveCollection: u32; - readonly receiveItem: u32; - readonly witnessPrice: Option; - } & Struct; - readonly isMintPreSigned: boolean; - readonly asMintPreSigned: { - readonly mintData: PalletNftsPreSignedMint; - readonly signature: SpRuntimeMultiSignature; - readonly signer: AccountId32; - } & Struct; - readonly isSetAttributesPreSigned: boolean; - readonly asSetAttributesPreSigned: { - readonly data: PalletNftsPreSignedAttributes; - readonly signature: SpRuntimeMultiSignature; - readonly signer: AccountId32; - } & Struct; - readonly type: - | "Create" - | "ForceCreate" - | "Destroy" - | "Mint" - | "ForceMint" - | "Burn" - | "Transfer" - | "Redeposit" - | "LockItemTransfer" - | "UnlockItemTransfer" - | "LockCollection" - | "TransferOwnership" - | "SetTeam" - | "ForceCollectionOwner" - | "ForceCollectionConfig" - | "ApproveTransfer" - | "CancelApproval" - | "ClearAllTransferApprovals" - | "LockItemProperties" - | "SetAttribute" - | "ForceSetAttribute" - | "ClearAttribute" - | "ApproveItemAttributes" - | "CancelItemAttributesApproval" - | "SetMetadata" - | "ClearMetadata" - | "SetCollectionMetadata" - | "ClearCollectionMetadata" - | "SetAcceptOwnership" - | "SetCollectionMaxSupply" - | "UpdateMintSettings" - | "SetPrice" - | "BuyItem" - | "PayTips" - | "CreateSwap" - | "CancelSwap" - | "ClaimSwap" - | "MintPreSigned" - | "SetAttributesPreSigned"; - } -<<<<<<< HEAD - /** @name PalletNftsCollectionConfig (315) */ -======= - /** @name PalletNftsCollectionConfig (346) */ ->>>>>>> main - interface PalletNftsCollectionConfig extends Struct { - readonly settings: u64; - readonly maxSupply: Option; - readonly mintSettings: PalletNftsMintSettings; - } -<<<<<<< HEAD - /** @name PalletNftsCollectionSetting (317) */ -======= - /** @name PalletNftsCollectionSetting (348) */ ->>>>>>> main - interface PalletNftsCollectionSetting extends Enum { - readonly isTransferableItems: boolean; - readonly isUnlockedMetadata: boolean; - readonly isUnlockedAttributes: boolean; - readonly isUnlockedMaxSupply: boolean; - readonly isDepositRequired: boolean; - readonly type: - | "TransferableItems" - | "UnlockedMetadata" - | "UnlockedAttributes" - | "UnlockedMaxSupply" - | "DepositRequired"; - } -<<<<<<< HEAD - /** @name PalletNftsMintSettings (318) */ -======= - /** @name PalletNftsMintSettings (349) */ ->>>>>>> main - interface PalletNftsMintSettings extends Struct { - readonly mintType: PalletNftsMintType; - readonly price: Option; - readonly startBlock: Option; - readonly endBlock: Option; - readonly defaultItemSettings: u64; - } -<<<<<<< HEAD - /** @name PalletNftsMintType (319) */ -======= - /** @name PalletNftsMintType (350) */ ->>>>>>> main - interface PalletNftsMintType extends Enum { - readonly isIssuer: boolean; - readonly isPublic: boolean; - readonly isHolderOf: boolean; - readonly asHolderOf: u32; - readonly type: "Issuer" | "Public" | "HolderOf"; - } -<<<<<<< HEAD - /** @name PalletNftsItemSetting (322) */ -======= - /** @name PalletNftsItemSetting (353) */ ->>>>>>> main - interface PalletNftsItemSetting extends Enum { - readonly isTransferable: boolean; - readonly isUnlockedMetadata: boolean; - readonly isUnlockedAttributes: boolean; - readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; - } -<<<<<<< HEAD - /** @name PalletNftsDestroyWitness (323) */ -======= - /** @name PalletNftsDestroyWitness (354) */ ->>>>>>> main - interface PalletNftsDestroyWitness extends Struct { - readonly itemMetadatas: Compact; - readonly itemConfigs: Compact; - readonly attributes: Compact; - } -<<<<<<< HEAD - /** @name PalletNftsMintWitness (325) */ -======= - /** @name PalletNftsMintWitness (356) */ ->>>>>>> main - interface PalletNftsMintWitness extends Struct { - readonly ownedItem: Option; - readonly mintPrice: Option; - } -<<<<<<< HEAD - /** @name PalletNftsItemConfig (326) */ - interface PalletNftsItemConfig extends Struct { - readonly settings: u64; - } - /** @name PalletNftsCancelAttributesApprovalWitness (328) */ - interface PalletNftsCancelAttributesApprovalWitness extends Struct { - readonly accountAttributes: u32; - } - /** @name PalletNftsItemTip (330) */ -======= - /** @name PalletNftsItemConfig (357) */ - interface PalletNftsItemConfig extends Struct { - readonly settings: u64; - } - /** @name PalletNftsCancelAttributesApprovalWitness (359) */ - interface PalletNftsCancelAttributesApprovalWitness extends Struct { - readonly accountAttributes: u32; - } - /** @name PalletNftsItemTip (361) */ ->>>>>>> main - interface PalletNftsItemTip extends Struct { - readonly collection: u32; - readonly item: u32; - readonly receiver: AccountId32; - readonly amount: u128; - } -<<<<<<< HEAD - /** @name PalletNftsPreSignedMint (332) */ -======= - /** @name PalletNftsPreSignedMint (363) */ ->>>>>>> main - interface PalletNftsPreSignedMint extends Struct { - readonly collection: u32; - readonly item: u32; - readonly attributes: Vec>; - readonly metadata: Bytes; - readonly onlyAccount: Option; - readonly deadline: u32; - readonly mintPrice: Option; - } -<<<<<<< HEAD - /** @name SpRuntimeMultiSignature (333) */ -======= - /** @name SpRuntimeMultiSignature (364) */ ->>>>>>> main - interface SpRuntimeMultiSignature extends Enum { - readonly isEd25519: boolean; - readonly asEd25519: U8aFixed; - readonly isSr25519: boolean; - readonly asSr25519: U8aFixed; - readonly isEcdsa: boolean; - readonly asEcdsa: U8aFixed; - readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; - } -<<<<<<< HEAD - /** @name PalletNftsPreSignedAttributes (336) */ -======= - /** @name PalletNftsPreSignedAttributes (367) */ ->>>>>>> main - interface PalletNftsPreSignedAttributes extends Struct { - readonly collection: u32; - readonly item: u32; - readonly attributes: Vec>; - readonly namespace: PalletNftsAttributeNamespace; - readonly deadline: u32; - } -<<<<<<< HEAD - /** @name PalletSudoError (337) */ -======= - /** @name PalletParametersCall (368) */ - interface PalletParametersCall extends Enum { - readonly isSetParameter: boolean; - readonly asSetParameter: { - readonly keyValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; - } & Struct; - readonly type: "SetParameter"; - } - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (369) */ - interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters extends Enum { - readonly isRuntimeConfig: boolean; - readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; - readonly type: "RuntimeConfig"; - } - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (370) */ - interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters extends Enum { - readonly isSlashAmountPerMaxFileSize: boolean; - readonly asSlashAmountPerMaxFileSize: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, - Option - ] - >; - readonly isStakeToChallengePeriod: boolean; - readonly asStakeToChallengePeriod: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, - Option - ] - >; - readonly isCheckpointChallengePeriod: boolean; - readonly asCheckpointChallengePeriod: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, - Option - ] - >; - readonly isMinChallengePeriod: boolean; - readonly asMinChallengePeriod: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, - Option - ] - >; - readonly type: - | "SlashAmountPerMaxFileSize" - | "StakeToChallengePeriod" - | "CheckpointChallengePeriod" - | "MinChallengePeriod"; - } - /** @name PalletSudoError (371) */ ->>>>>>> main - interface PalletSudoError extends Enum { - readonly isRequireSudo: boolean; - readonly type: "RequireSudo"; - } -<<<<<<< HEAD - /** @name PalletCollatorSelectionCandidateInfo (340) */ -======= - /** @name PalletCollatorSelectionCandidateInfo (374) */ ->>>>>>> main - interface PalletCollatorSelectionCandidateInfo extends Struct { - readonly who: AccountId32; - readonly deposit: u128; - } -<<<<<<< HEAD - /** @name PalletCollatorSelectionError (342) */ -======= - /** @name PalletCollatorSelectionError (376) */ ->>>>>>> main - interface PalletCollatorSelectionError extends Enum { - readonly isTooManyCandidates: boolean; - readonly isTooFewEligibleCollators: boolean; - readonly isAlreadyCandidate: boolean; - readonly isNotCandidate: boolean; - readonly isTooManyInvulnerables: boolean; - readonly isAlreadyInvulnerable: boolean; - readonly isNotInvulnerable: boolean; - readonly isNoAssociatedValidatorId: boolean; - readonly isValidatorNotRegistered: boolean; - readonly isInsertToCandidateListFailed: boolean; - readonly isRemoveFromCandidateListFailed: boolean; - readonly isDepositTooLow: boolean; - readonly isUpdateCandidateListFailed: boolean; - readonly isInsufficientBond: boolean; - readonly isTargetIsNotCandidate: boolean; - readonly isIdenticalDeposit: boolean; - readonly isInvalidUnreserve: boolean; - readonly type: - | "TooManyCandidates" - | "TooFewEligibleCollators" - | "AlreadyCandidate" - | "NotCandidate" - | "TooManyInvulnerables" - | "AlreadyInvulnerable" - | "NotInvulnerable" - | "NoAssociatedValidatorId" - | "ValidatorNotRegistered" - | "InsertToCandidateListFailed" - | "RemoveFromCandidateListFailed" - | "DepositTooLow" - | "UpdateCandidateListFailed" - | "InsufficientBond" - | "TargetIsNotCandidate" - | "IdenticalDeposit" - | "InvalidUnreserve"; - } -<<<<<<< HEAD - /** @name SpCoreCryptoKeyTypeId (346) */ - interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (347) */ -======= - /** @name SpCoreCryptoKeyTypeId (380) */ - interface SpCoreCryptoKeyTypeId extends U8aFixed {} - /** @name PalletSessionError (381) */ ->>>>>>> main - interface PalletSessionError extends Enum { - readonly isInvalidProof: boolean; - readonly isNoAssociatedValidatorId: boolean; - readonly isDuplicatedKey: boolean; - readonly isNoKeys: boolean; - readonly isNoAccount: boolean; - readonly type: - | "InvalidProof" - | "NoAssociatedValidatorId" - | "DuplicatedKey" - | "NoKeys" - | "NoAccount"; - } -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ -======= - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (390) */ ->>>>>>> main - interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { - readonly recipient: u32; - readonly state: CumulusPalletXcmpQueueOutboundState; - readonly signalsExist: bool; - readonly firstIndex: u16; - readonly lastIndex: u16; - } -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueOutboundState (357) */ -======= - /** @name CumulusPalletXcmpQueueOutboundState (391) */ ->>>>>>> main - interface CumulusPalletXcmpQueueOutboundState extends Enum { - readonly isOk: boolean; - readonly isSuspended: boolean; - readonly type: "Ok" | "Suspended"; - } -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueQueueConfigData (361) */ -======= - /** @name CumulusPalletXcmpQueueQueueConfigData (393) */ ->>>>>>> main - interface CumulusPalletXcmpQueueQueueConfigData extends Struct { - readonly suspendThreshold: u32; - readonly dropThreshold: u32; - readonly resumeThreshold: u32; - } -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueError (362) */ -======= - /** @name CumulusPalletXcmpQueueError (394) */ ->>>>>>> main - interface CumulusPalletXcmpQueueError extends Enum { - readonly isBadQueueConfig: boolean; - readonly isAlreadySuspended: boolean; - readonly isAlreadyResumed: boolean; - readonly isTooManyActiveOutboundChannels: boolean; - readonly isTooBig: boolean; - readonly type: - | "BadQueueConfig" - | "AlreadySuspended" - | "AlreadyResumed" - | "TooManyActiveOutboundChannels" - | "TooBig"; - } -<<<<<<< HEAD - /** @name PalletXcmQueryStatus (363) */ -======= - /** @name PalletXcmQueryStatus (395) */ ->>>>>>> main - interface PalletXcmQueryStatus extends Enum { - readonly isPending: boolean; - readonly asPending: { - readonly responder: XcmVersionedLocation; - readonly maybeMatchQuerier: Option; - readonly maybeNotify: Option>; - readonly timeout: u32; - } & Struct; - readonly isVersionNotifier: boolean; - readonly asVersionNotifier: { - readonly origin: XcmVersionedLocation; - readonly isActive: bool; - } & Struct; - readonly isReady: boolean; - readonly asReady: { - readonly response: XcmVersionedResponse; - readonly at: u32; - } & Struct; - readonly type: "Pending" | "VersionNotifier" | "Ready"; - } -<<<<<<< HEAD - /** @name XcmVersionedResponse (367) */ -======= - /** @name XcmVersionedResponse (399) */ ->>>>>>> main - interface XcmVersionedResponse extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2Response; - readonly isV3: boolean; - readonly asV3: XcmV3Response; - readonly isV4: boolean; - readonly asV4: StagingXcmV4Response; - readonly type: "V2" | "V3" | "V4"; - } -<<<<<<< HEAD - /** @name PalletXcmVersionMigrationStage (373) */ -======= - /** @name PalletXcmVersionMigrationStage (405) */ ->>>>>>> main - interface PalletXcmVersionMigrationStage extends Enum { - readonly isMigrateSupportedVersion: boolean; - readonly isMigrateVersionNotifiers: boolean; - readonly isNotifyCurrentTargets: boolean; - readonly asNotifyCurrentTargets: Option; - readonly isMigrateAndNotifyOldTargets: boolean; - readonly type: - | "MigrateSupportedVersion" - | "MigrateVersionNotifiers" - | "NotifyCurrentTargets" - | "MigrateAndNotifyOldTargets"; - } -<<<<<<< HEAD - /** @name PalletXcmRemoteLockedFungibleRecord (376) */ -======= - /** @name PalletXcmRemoteLockedFungibleRecord (408) */ ->>>>>>> main - interface PalletXcmRemoteLockedFungibleRecord extends Struct { - readonly amount: u128; - readonly owner: XcmVersionedLocation; - readonly locker: XcmVersionedLocation; - readonly consumers: Vec>; - } - /** @name PalletXcmError (415) */ - interface PalletXcmError extends Enum { - readonly isUnreachable: boolean; - readonly isSendFailure: boolean; - readonly isFiltered: boolean; - readonly isUnweighableMessage: boolean; - readonly isDestinationNotInvertible: boolean; - readonly isEmpty: boolean; - readonly isCannotReanchor: boolean; - readonly isTooManyAssets: boolean; - readonly isInvalidOrigin: boolean; - readonly isBadVersion: boolean; - readonly isBadLocation: boolean; - readonly isNoSubscription: boolean; - readonly isAlreadySubscribed: boolean; - readonly isCannotCheckOutTeleport: boolean; - readonly isLowBalance: boolean; - readonly isTooManyLocks: boolean; - readonly isAccountNotSovereign: boolean; - readonly isFeesNotMet: boolean; - readonly isLockNotFound: boolean; - readonly isInUse: boolean; - readonly isInvalidAssetUnknownReserve: boolean; - readonly isInvalidAssetUnsupportedReserve: boolean; - readonly isTooManyReserves: boolean; - readonly isLocalExecutionIncomplete: boolean; - readonly type: - | "Unreachable" - | "SendFailure" - | "Filtered" - | "UnweighableMessage" - | "DestinationNotInvertible" - | "Empty" - | "CannotReanchor" - | "TooManyAssets" - | "InvalidOrigin" - | "BadVersion" - | "BadLocation" - | "NoSubscription" - | "AlreadySubscribed" - | "CannotCheckOutTeleport" - | "LowBalance" - | "TooManyLocks" - | "AccountNotSovereign" - | "FeesNotMet" - | "LockNotFound" - | "InUse" - | "InvalidAssetUnknownReserve" - | "InvalidAssetUnsupportedReserve" - | "TooManyReserves" - | "LocalExecutionIncomplete"; - } - /** @name PalletMessageQueueBookState (416) */ - interface PalletMessageQueueBookState extends Struct { - readonly begin: u32; - readonly end: u32; - readonly count: u32; - readonly readyNeighbours: Option; - readonly messageCount: u64; - readonly size_: u64; - } - /** @name PalletMessageQueueNeighbours (418) */ - interface PalletMessageQueueNeighbours extends Struct { - readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; - } - /** @name PalletMessageQueuePage (420) */ - interface PalletMessageQueuePage extends Struct { - readonly remaining: u32; - readonly remainingSize: u32; - readonly firstIndex: u32; - readonly first: u32; - readonly last: u32; - readonly heap: Bytes; - } - /** @name PalletMessageQueueError (422) */ - interface PalletMessageQueueError extends Enum { - readonly isNotReapable: boolean; - readonly isNoPage: boolean; - readonly isNoMessage: boolean; - readonly isAlreadyProcessed: boolean; - readonly isQueued: boolean; - readonly isInsufficientWeight: boolean; - readonly isTemporarilyUnprocessable: boolean; - readonly isQueuePaused: boolean; - readonly isRecursiveDisallowed: boolean; - readonly type: - | "NotReapable" - | "NoPage" - | "NoMessage" - | "AlreadyProcessed" - | "Queued" - | "InsufficientWeight" - | "TemporarilyUnprocessable" - | "QueuePaused" - | "RecursiveDisallowed"; - } - /** @name PalletStorageProvidersStorageProvider (424) */ - interface PalletStorageProvidersStorageProvider extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; - } - /** @name PalletStorageProvidersBackupStorageProvider (425) */ - interface PalletStorageProvidersBackupStorageProvider extends Struct { - readonly capacity: u64; - readonly capacityUsed: u64; - readonly multiaddresses: Vec; - readonly root: H256; - readonly lastCapacityChange: u32; - readonly ownerAccount: AccountId32; - readonly paymentAccount: AccountId32; - readonly reputationWeight: u32; - } - /** @name PalletStorageProvidersMainStorageProvider (426) */ - interface PalletStorageProvidersMainStorageProvider extends Struct { - readonly buckets: Vec; - readonly capacity: u64; - readonly capacityUsed: u64; - readonly multiaddresses: Vec; - readonly valueProp: PalletStorageProvidersValueProposition; - readonly lastCapacityChange: u32; - readonly ownerAccount: AccountId32; - readonly paymentAccount: AccountId32; - } - /** @name PalletStorageProvidersBucket (428) */ - interface PalletStorageProvidersBucket extends Struct { - readonly root: H256; - readonly userId: AccountId32; - readonly mspId: H256; - readonly private: bool; - readonly readAccessGroupId: Option; - readonly size_: u64; - } - /** @name PalletStorageProvidersError (431) */ - interface PalletStorageProvidersError extends Enum { - readonly isAlreadyRegistered: boolean; - readonly isSignUpNotRequested: boolean; - readonly isSignUpRequestPending: boolean; - readonly isNoMultiAddress: boolean; - readonly isInvalidMultiAddress: boolean; - readonly isStorageTooLow: boolean; - readonly isNotEnoughBalance: boolean; - readonly isCannotHoldDeposit: boolean; - readonly isStorageStillInUse: boolean; - readonly isRandomnessNotValidYet: boolean; - readonly isSignUpRequestExpired: boolean; - readonly isNewCapacityLessThanUsedStorage: boolean; - readonly isNewCapacityEqualsCurrentCapacity: boolean; - readonly isNewCapacityCantBeZero: boolean; - readonly isNotEnoughTimePassed: boolean; - readonly isNewUsedCapacityExceedsStorageCapacity: boolean; - readonly isNotRegistered: boolean; - readonly isNoUserId: boolean; - readonly isNoBucketId: boolean; - readonly isSpRegisteredButDataNotFound: boolean; - readonly isBucketNotFound: boolean; - readonly isBucketAlreadyExists: boolean; - readonly isAppendBucketToMspFailed: boolean; - readonly isProviderNotSlashable: boolean; - readonly isInvalidEncodedFileMetadata: boolean; - readonly isInvalidEncodedAccountId: boolean; - readonly isPaymentStreamNotFound: boolean; - readonly type: - | "AlreadyRegistered" - | "SignUpNotRequested" - | "SignUpRequestPending" - | "NoMultiAddress" - | "InvalidMultiAddress" - | "StorageTooLow" - | "NotEnoughBalance" - | "CannotHoldDeposit" - | "StorageStillInUse" - | "RandomnessNotValidYet" - | "SignUpRequestExpired" - | "NewCapacityLessThanUsedStorage" - | "NewCapacityEqualsCurrentCapacity" - | "NewCapacityCantBeZero" - | "NotEnoughTimePassed" - | "NewUsedCapacityExceedsStorageCapacity" - | "NotRegistered" - | "NoUserId" - | "NoBucketId" - | "SpRegisteredButDataNotFound" - | "BucketNotFound" - | "BucketAlreadyExists" - | "AppendBucketToMspFailed" - | "ProviderNotSlashable" - | "InvalidEncodedFileMetadata" - | "InvalidEncodedAccountId" - | "PaymentStreamNotFound"; - } - /** @name PalletFileSystemStorageRequestMetadata (432) */ - interface PalletFileSystemStorageRequestMetadata extends Struct { - readonly requestedAt: u32; - readonly owner: AccountId32; - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly size_: u64; - readonly msp: Option>; - readonly userPeerIds: Vec; - readonly dataServerSps: Vec; - readonly bspsRequired: u32; - readonly bspsConfirmed: u32; - readonly bspsVolunteered: u32; - } - /** @name PalletFileSystemStorageRequestBspsMetadata (437) */ - interface PalletFileSystemStorageRequestBspsMetadata extends Struct { - readonly confirmed: bool; - } - /** @name PalletFileSystemMoveBucketRequestMetadata (446) */ - interface PalletFileSystemMoveBucketRequestMetadata extends Struct { - readonly requester: AccountId32; - } - /** @name PalletFileSystemError (447) */ - interface PalletFileSystemError extends Enum { - readonly isStorageRequestAlreadyRegistered: boolean; - readonly isStorageRequestNotFound: boolean; - readonly isStorageRequestNotRevoked: boolean; - readonly isStorageRequestExists: boolean; - readonly isReplicationTargetCannotBeZero: boolean; - readonly isBspsRequiredExceedsTarget: boolean; - readonly isNotABsp: boolean; - readonly isNotAMsp: boolean; - readonly isNotASp: boolean; - readonly isBspNotVolunteered: boolean; - readonly isBspNotConfirmed: boolean; - readonly isBspAlreadyConfirmed: boolean; - readonly isStorageRequestBspsRequiredFulfilled: boolean; - readonly isBspAlreadyVolunteered: boolean; - readonly isInsufficientAvailableCapacity: boolean; - readonly isUnexpectedNumberOfRemovedVolunteeredBsps: boolean; - readonly isStorageRequestExpiredNoSlotAvailable: boolean; - readonly isStorageRequestNotAuthorized: boolean; - readonly isMaxBlockNumberReached: boolean; - readonly isFailedToEncodeBsp: boolean; - readonly isFailedToEncodeFingerprint: boolean; - readonly isFailedToDecodeThreshold: boolean; - readonly isAboveThreshold: boolean; - readonly isThresholdArithmeticError: boolean; - readonly isFailedTypeConversion: boolean; - readonly isDividedByZero: boolean; - readonly isImpossibleFailedToGetValue: boolean; - readonly isBucketIsNotPrivate: boolean; - readonly isBucketNotFound: boolean; - readonly isNotBucketOwner: boolean; - readonly isProviderRootNotFound: boolean; - readonly isExpectedNonInclusionProof: boolean; - readonly isExpectedInclusionProof: boolean; - readonly isInvalidFileKeyMetadata: boolean; - readonly isThresholdBelowAsymptote: boolean; - readonly isNotFileOwner: boolean; - readonly isFileKeyAlreadyPendingDeletion: boolean; - readonly isMaxUserPendingDeletionRequestsReached: boolean; - readonly isMspNotStoringBucket: boolean; - readonly isFileKeyNotPendingDeletion: boolean; - readonly isFileSizeCannotBeZero: boolean; - readonly isNoGlobalReputationWeightSet: boolean; - readonly isMaximumThresholdCannotBeZero: boolean; - readonly isTickRangeToMaximumThresholdCannotBeZero: boolean; - readonly isPendingStopStoringRequestNotFound: boolean; - readonly isMinWaitForStopStoringNotReached: boolean; - readonly isPendingStopStoringRequestAlreadyExists: boolean; - readonly isUserNotInsolvent: boolean; - readonly isNotSelectedMsp: boolean; - readonly isMspAlreadyConfirmed: boolean; - readonly isRequestWithoutMsp: boolean; - readonly isMspAlreadyStoringBucket: boolean; - readonly isMoveBucketRequestNotFound: boolean; - readonly isBucketIsBeingMoved: boolean; - readonly isBspAlreadyDataServer: boolean; - readonly isBspDataServersExceeded: boolean; - readonly isFileMetadataProcessingQueueFull: boolean; - readonly isTooManyBatchResponses: boolean; - readonly isTooManyStorageRequestResponses: boolean; - readonly isInvalidBucketIdFileKeyPair: boolean; - readonly isInconsistentStateKeyAlreadyExists: boolean; - readonly type: - | "StorageRequestAlreadyRegistered" - | "StorageRequestNotFound" - | "StorageRequestNotRevoked" - | "StorageRequestExists" - | "ReplicationTargetCannotBeZero" - | "BspsRequiredExceedsTarget" - | "NotABsp" - | "NotAMsp" - | "NotASp" - | "BspNotVolunteered" - | "BspNotConfirmed" - | "BspAlreadyConfirmed" - | "StorageRequestBspsRequiredFulfilled" - | "BspAlreadyVolunteered" - | "InsufficientAvailableCapacity" - | "UnexpectedNumberOfRemovedVolunteeredBsps" - | "StorageRequestExpiredNoSlotAvailable" - | "StorageRequestNotAuthorized" - | "MaxBlockNumberReached" - | "FailedToEncodeBsp" - | "FailedToEncodeFingerprint" - | "FailedToDecodeThreshold" - | "AboveThreshold" - | "ThresholdArithmeticError" - | "FailedTypeConversion" - | "DividedByZero" - | "ImpossibleFailedToGetValue" - | "BucketIsNotPrivate" - | "BucketNotFound" - | "NotBucketOwner" - | "ProviderRootNotFound" - | "ExpectedNonInclusionProof" - | "ExpectedInclusionProof" - | "InvalidFileKeyMetadata" - | "ThresholdBelowAsymptote" - | "NotFileOwner" - | "FileKeyAlreadyPendingDeletion" - | "MaxUserPendingDeletionRequestsReached" - | "MspNotStoringBucket" - | "FileKeyNotPendingDeletion" - | "FileSizeCannotBeZero" - | "NoGlobalReputationWeightSet" - | "MaximumThresholdCannotBeZero" - | "TickRangeToMaximumThresholdCannotBeZero" - | "PendingStopStoringRequestNotFound" - | "MinWaitForStopStoringNotReached" - | "PendingStopStoringRequestAlreadyExists" - | "UserNotInsolvent" - | "NotSelectedMsp" - | "MspAlreadyConfirmed" - | "RequestWithoutMsp" - | "MspAlreadyStoringBucket" - | "MoveBucketRequestNotFound" - | "BucketIsBeingMoved" - | "BspAlreadyDataServer" - | "BspDataServersExceeded" - | "FileMetadataProcessingQueueFull" - | "TooManyBatchResponses" - | "TooManyStorageRequestResponses" - | "InvalidBucketIdFileKeyPair" - | "InconsistentStateKeyAlreadyExists"; - } - /** @name PalletProofsDealerError (454) */ - interface PalletProofsDealerError extends Enum { - readonly isNotProvider: boolean; - readonly isChallengesQueueOverflow: boolean; - readonly isPriorityChallengesQueueOverflow: boolean; - readonly isFeeChargeFailed: boolean; - readonly isEmptyKeyProofs: boolean; - readonly isProviderRootNotFound: boolean; - readonly isZeroRoot: boolean; - readonly isNoRecordOfLastSubmittedProof: boolean; - readonly isProviderStakeNotFound: boolean; - readonly isZeroStake: boolean; - readonly isStakeCouldNotBeConverted: boolean; - readonly isChallengesTickNotReached: boolean; - readonly isChallengesTickTooOld: boolean; - readonly isChallengesTickTooLate: boolean; - readonly isSeedNotFound: boolean; - readonly isCheckpointChallengesNotFound: boolean; - readonly isForestProofVerificationFailed: boolean; - readonly isKeyProofNotFound: boolean; - readonly isKeyProofVerificationFailed: boolean; - readonly isFailedToApplyDelta: boolean; - readonly isFailedToUpdateProviderAfterKeyRemoval: boolean; - readonly isTooManyValidProofSubmitters: boolean; - readonly type: - | "NotProvider" - | "ChallengesQueueOverflow" - | "PriorityChallengesQueueOverflow" - | "FeeChargeFailed" - | "EmptyKeyProofs" - | "ProviderRootNotFound" - | "ZeroRoot" - | "NoRecordOfLastSubmittedProof" - | "ProviderStakeNotFound" - | "ZeroStake" - | "StakeCouldNotBeConverted" - | "ChallengesTickNotReached" - | "ChallengesTickTooOld" - | "ChallengesTickTooLate" - | "SeedNotFound" - | "CheckpointChallengesNotFound" - | "ForestProofVerificationFailed" - | "KeyProofNotFound" - | "KeyProofVerificationFailed" - | "FailedToApplyDelta" - | "FailedToUpdateProviderAfterKeyRemoval" - | "TooManyValidProofSubmitters"; - } - /** @name PalletPaymentStreamsFixedRatePaymentStream (457) */ - interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { - readonly rate: u128; - readonly lastChargedTick: u32; - readonly userDeposit: u128; - readonly outOfFundsTick: Option; - } - /** @name PalletPaymentStreamsDynamicRatePaymentStream (458) */ - interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { - readonly amountProvided: u64; - readonly priceIndexWhenLastCharged: u128; - readonly userDeposit: u128; - readonly outOfFundsTick: Option; - } - /** @name PalletPaymentStreamsProviderLastChargeableInfo (459) */ - interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { - readonly lastChargeableTick: u32; - readonly priceIndex: u128; - } - /** @name PalletPaymentStreamsError (460) */ - interface PalletPaymentStreamsError extends Enum { - readonly isPaymentStreamAlreadyExists: boolean; - readonly isPaymentStreamNotFound: boolean; - readonly isNotAProvider: boolean; - readonly isProviderInconsistencyError: boolean; - readonly isCannotHoldDeposit: boolean; - readonly isUpdateRateToSameRate: boolean; - readonly isUpdateAmountToSameAmount: boolean; - readonly isRateCantBeZero: boolean; - readonly isAmountProvidedCantBeZero: boolean; - readonly isLastChargedGreaterThanLastChargeable: boolean; - readonly isInvalidLastChargeableBlockNumber: boolean; - readonly isInvalidLastChargeablePriceIndex: boolean; - readonly isChargeOverflow: boolean; - readonly isUserWithoutFunds: boolean; - readonly isUserNotFlaggedAsWithoutFunds: boolean; - readonly isCooldownPeriodNotPassed: boolean; - readonly type: - | "PaymentStreamAlreadyExists" - | "PaymentStreamNotFound" - | "NotAProvider" - | "ProviderInconsistencyError" - | "CannotHoldDeposit" - | "UpdateRateToSameRate" - | "UpdateAmountToSameAmount" - | "RateCantBeZero" - | "AmountProvidedCantBeZero" - | "LastChargedGreaterThanLastChargeable" - | "InvalidLastChargeableBlockNumber" - | "InvalidLastChargeablePriceIndex" - | "ChargeOverflow" - | "UserWithoutFunds" - | "UserNotFlaggedAsWithoutFunds" - | "CooldownPeriodNotPassed"; - } - /** @name PalletBucketNftsError (461) */ - interface PalletBucketNftsError extends Enum { - readonly isBucketIsNotPrivate: boolean; - readonly isNotBucketOwner: boolean; - readonly isNoCorrespondingCollection: boolean; - readonly isConvertBytesToBoundedVec: boolean; - readonly type: - | "BucketIsNotPrivate" - | "NotBucketOwner" - | "NoCorrespondingCollection" - | "ConvertBytesToBoundedVec"; - } - /** @name PalletNftsCollectionDetails (462) */ - interface PalletNftsCollectionDetails extends Struct { - readonly owner: AccountId32; - readonly ownerDeposit: u128; - readonly items: u32; - readonly itemMetadatas: u32; - readonly itemConfigs: u32; - readonly attributes: u32; - } - /** @name PalletNftsCollectionRole (467) */ - interface PalletNftsCollectionRole extends Enum { - readonly isIssuer: boolean; - readonly isFreezer: boolean; - readonly isAdmin: boolean; - readonly type: "Issuer" | "Freezer" | "Admin"; - } - /** @name PalletNftsItemDetails (468) */ - interface PalletNftsItemDetails extends Struct { - readonly owner: AccountId32; - readonly approvals: BTreeMap>; - readonly deposit: PalletNftsItemDeposit; - } - /** @name PalletNftsItemDeposit (469) */ - interface PalletNftsItemDeposit extends Struct { - readonly account: AccountId32; - readonly amount: u128; - } - /** @name PalletNftsCollectionMetadata (474) */ - interface PalletNftsCollectionMetadata extends Struct { - readonly deposit: u128; - readonly data: Bytes; - } - /** @name PalletNftsItemMetadata (475) */ - interface PalletNftsItemMetadata extends Struct { - readonly deposit: PalletNftsItemMetadataDeposit; - readonly data: Bytes; - } - /** @name PalletNftsItemMetadataDeposit (476) */ - interface PalletNftsItemMetadataDeposit extends Struct { - readonly account: Option; - readonly amount: u128; - } - /** @name PalletNftsAttributeDeposit (479) */ - interface PalletNftsAttributeDeposit extends Struct { - readonly account: Option; - readonly amount: u128; - } - /** @name PalletNftsPendingSwap (483) */ - interface PalletNftsPendingSwap extends Struct { - readonly desiredCollection: u32; - readonly desiredItem: Option; - readonly price: Option; - readonly deadline: u32; - } - /** @name PalletNftsPalletFeature (485) */ - interface PalletNftsPalletFeature extends Enum { - readonly isTrading: boolean; - readonly isAttributes: boolean; - readonly isApprovals: boolean; - readonly isSwaps: boolean; - readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; - } - /** @name PalletNftsError (486) */ - interface PalletNftsError extends Enum { - readonly isNoPermission: boolean; - readonly isUnknownCollection: boolean; - readonly isAlreadyExists: boolean; - readonly isApprovalExpired: boolean; - readonly isWrongOwner: boolean; - readonly isBadWitness: boolean; - readonly isCollectionIdInUse: boolean; - readonly isItemsNonTransferable: boolean; - readonly isNotDelegate: boolean; - readonly isWrongDelegate: boolean; - readonly isUnapproved: boolean; - readonly isUnaccepted: boolean; - readonly isItemLocked: boolean; - readonly isLockedItemAttributes: boolean; - readonly isLockedCollectionAttributes: boolean; - readonly isLockedItemMetadata: boolean; - readonly isLockedCollectionMetadata: boolean; - readonly isMaxSupplyReached: boolean; - readonly isMaxSupplyLocked: boolean; - readonly isMaxSupplyTooSmall: boolean; - readonly isUnknownItem: boolean; - readonly isUnknownSwap: boolean; - readonly isMetadataNotFound: boolean; - readonly isAttributeNotFound: boolean; - readonly isNotForSale: boolean; - readonly isBidTooLow: boolean; - readonly isReachedApprovalLimit: boolean; - readonly isDeadlineExpired: boolean; - readonly isWrongDuration: boolean; - readonly isMethodDisabled: boolean; - readonly isWrongSetting: boolean; - readonly isInconsistentItemConfig: boolean; - readonly isNoConfig: boolean; - readonly isRolesNotCleared: boolean; - readonly isMintNotStarted: boolean; - readonly isMintEnded: boolean; - readonly isAlreadyClaimed: boolean; - readonly isIncorrectData: boolean; - readonly isWrongOrigin: boolean; - readonly isWrongSignature: boolean; - readonly isIncorrectMetadata: boolean; - readonly isMaxAttributesLimitReached: boolean; - readonly isWrongNamespace: boolean; - readonly isCollectionNotEmpty: boolean; - readonly isWitnessRequired: boolean; - readonly type: - | "NoPermission" - | "UnknownCollection" - | "AlreadyExists" - | "ApprovalExpired" - | "WrongOwner" - | "BadWitness" - | "CollectionIdInUse" - | "ItemsNonTransferable" - | "NotDelegate" - | "WrongDelegate" - | "Unapproved" - | "Unaccepted" - | "ItemLocked" - | "LockedItemAttributes" - | "LockedCollectionAttributes" - | "LockedItemMetadata" - | "LockedCollectionMetadata" - | "MaxSupplyReached" - | "MaxSupplyLocked" - | "MaxSupplyTooSmall" - | "UnknownItem" - | "UnknownSwap" - | "MetadataNotFound" - | "AttributeNotFound" - | "NotForSale" - | "BidTooLow" - | "ReachedApprovalLimit" - | "DeadlineExpired" - | "WrongDuration" - | "MethodDisabled" - | "WrongSetting" - | "InconsistentItemConfig" - | "NoConfig" - | "RolesNotCleared" - | "MintNotStarted" - | "MintEnded" - | "AlreadyClaimed" - | "IncorrectData" - | "WrongOrigin" - | "WrongSignature" - | "IncorrectMetadata" - | "MaxAttributesLimitReached" - | "WrongNamespace" - | "CollectionNotEmpty" - | "WitnessRequired"; - } - /** @name FrameSystemExtensionsCheckNonZeroSender (489) */ - type FrameSystemExtensionsCheckNonZeroSender = Null; - /** @name FrameSystemExtensionsCheckSpecVersion (490) */ - type FrameSystemExtensionsCheckSpecVersion = Null; - /** @name FrameSystemExtensionsCheckTxVersion (491) */ - type FrameSystemExtensionsCheckTxVersion = Null; - /** @name FrameSystemExtensionsCheckGenesis (492) */ - type FrameSystemExtensionsCheckGenesis = Null; - /** @name FrameSystemExtensionsCheckNonce (495) */ - interface FrameSystemExtensionsCheckNonce extends Compact {} - /** @name FrameSystemExtensionsCheckWeight (496) */ - type FrameSystemExtensionsCheckWeight = Null; - /** @name PalletTransactionPaymentChargeTransactionPayment (497) */ - interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (498) */ - type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; -<<<<<<< HEAD - /** @name FrameMetadataHashExtensionCheckMetadataHash (467) */ - interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { - readonly mode: FrameMetadataHashExtensionMode; - } - /** @name FrameMetadataHashExtensionMode (468) */ -======= - /** @name FrameMetadataHashExtensionCheckMetadataHash (499) */ - interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { - readonly mode: FrameMetadataHashExtensionMode; - } - /** @name FrameMetadataHashExtensionMode (500) */ ->>>>>>> main - interface FrameMetadataHashExtensionMode extends Enum { - readonly isDisabled: boolean; - readonly isEnabled: boolean; - readonly type: "Disabled" | "Enabled"; - } -<<<<<<< HEAD - /** @name StorageHubRuntimeRuntime (469) */ -======= - /** @name StorageHubRuntimeRuntime (501) */ ->>>>>>> main - type StorageHubRuntimeRuntime = Null; -} +import "@polkadot/types/lookup"; +import type { + BTreeMap, + BTreeSet, + Bytes, + Compact, + Enum, + Null, + Option, + Result, + Struct, + Text, + U8aFixed, + Vec, + bool, + u128, + u16, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; +import type { Event } from "@polkadot/types/interfaces/system"; +declare module "@polkadot/types/lookup" { + /** @name FrameSystemAccountInfo (3) */ + interface FrameSystemAccountInfo extends Struct { + readonly nonce: u32; + readonly consumers: u32; + readonly providers: u32; + readonly sufficients: u32; + readonly data: PalletBalancesAccountData; + } + /** @name PalletBalancesAccountData (5) */ + interface PalletBalancesAccountData extends Struct { + readonly free: u128; + readonly reserved: u128; + readonly frozen: u128; + readonly flags: u128; + } + /** @name FrameSupportDispatchPerDispatchClassWeight (9) */ + interface FrameSupportDispatchPerDispatchClassWeight extends Struct { + readonly normal: SpWeightsWeightV2Weight; + readonly operational: SpWeightsWeightV2Weight; + readonly mandatory: SpWeightsWeightV2Weight; + } + /** @name SpWeightsWeightV2Weight (10) */ + interface SpWeightsWeightV2Weight extends Struct { + readonly refTime: Compact; + readonly proofSize: Compact; + } + /** @name SpRuntimeDigest (15) */ + interface SpRuntimeDigest extends Struct { + readonly logs: Vec; + } + /** @name SpRuntimeDigestDigestItem (17) */ + interface SpRuntimeDigestDigestItem extends Enum { + readonly isOther: boolean; + readonly asOther: Bytes; + readonly isConsensus: boolean; + readonly asConsensus: ITuple<[U8aFixed, Bytes]>; + readonly isSeal: boolean; + readonly asSeal: ITuple<[U8aFixed, Bytes]>; + readonly isPreRuntime: boolean; + readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>; + readonly isRuntimeEnvironmentUpdated: boolean; + readonly type: "Other" | "Consensus" | "Seal" | "PreRuntime" | "RuntimeEnvironmentUpdated"; + } + /** @name FrameSystemEventRecord (20) */ + interface FrameSystemEventRecord extends Struct { + readonly phase: FrameSystemPhase; + readonly event: Event; + readonly topics: Vec; + } + /** @name FrameSystemEvent (22) */ + interface FrameSystemEvent extends Enum { + readonly isExtrinsicSuccess: boolean; + readonly asExtrinsicSuccess: { + readonly dispatchInfo: FrameSupportDispatchDispatchInfo; + } & Struct; + readonly isExtrinsicFailed: boolean; + readonly asExtrinsicFailed: { + readonly dispatchError: SpRuntimeDispatchError; + readonly dispatchInfo: FrameSupportDispatchDispatchInfo; + } & Struct; + readonly isCodeUpdated: boolean; + readonly isNewAccount: boolean; + readonly asNewAccount: { + readonly account: AccountId32; + } & Struct; + readonly isKilledAccount: boolean; + readonly asKilledAccount: { + readonly account: AccountId32; + } & Struct; + readonly isRemarked: boolean; + readonly asRemarked: { + readonly sender: AccountId32; + readonly hash_: H256; + } & Struct; + readonly isUpgradeAuthorized: boolean; + readonly asUpgradeAuthorized: { + readonly codeHash: H256; + readonly checkVersion: bool; + } & Struct; + readonly type: + | "ExtrinsicSuccess" + | "ExtrinsicFailed" + | "CodeUpdated" + | "NewAccount" + | "KilledAccount" + | "Remarked" + | "UpgradeAuthorized"; + } + /** @name FrameSupportDispatchDispatchInfo (23) */ + interface FrameSupportDispatchDispatchInfo extends Struct { + readonly weight: SpWeightsWeightV2Weight; + readonly class: FrameSupportDispatchDispatchClass; + readonly paysFee: FrameSupportDispatchPays; + } + /** @name FrameSupportDispatchDispatchClass (24) */ + interface FrameSupportDispatchDispatchClass extends Enum { + readonly isNormal: boolean; + readonly isOperational: boolean; + readonly isMandatory: boolean; + readonly type: "Normal" | "Operational" | "Mandatory"; + } + /** @name FrameSupportDispatchPays (25) */ + interface FrameSupportDispatchPays extends Enum { + readonly isYes: boolean; + readonly isNo: boolean; + readonly type: "Yes" | "No"; + } + /** @name SpRuntimeDispatchError (26) */ + interface SpRuntimeDispatchError extends Enum { + readonly isOther: boolean; + readonly isCannotLookup: boolean; + readonly isBadOrigin: boolean; + readonly isModule: boolean; + readonly asModule: SpRuntimeModuleError; + readonly isConsumerRemaining: boolean; + readonly isNoProviders: boolean; + readonly isTooManyConsumers: boolean; + readonly isToken: boolean; + readonly asToken: SpRuntimeTokenError; + readonly isArithmetic: boolean; + readonly asArithmetic: SpArithmeticArithmeticError; + readonly isTransactional: boolean; + readonly asTransactional: SpRuntimeTransactionalError; + readonly isExhausted: boolean; + readonly isCorruption: boolean; + readonly isUnavailable: boolean; + readonly isRootNotAllowed: boolean; + readonly type: + | "Other" + | "CannotLookup" + | "BadOrigin" + | "Module" + | "ConsumerRemaining" + | "NoProviders" + | "TooManyConsumers" + | "Token" + | "Arithmetic" + | "Transactional" + | "Exhausted" + | "Corruption" + | "Unavailable" + | "RootNotAllowed"; + } + /** @name SpRuntimeModuleError (27) */ + interface SpRuntimeModuleError extends Struct { + readonly index: u8; + readonly error: U8aFixed; + } + /** @name SpRuntimeTokenError (28) */ + interface SpRuntimeTokenError extends Enum { + readonly isFundsUnavailable: boolean; + readonly isOnlyProvider: boolean; + readonly isBelowMinimum: boolean; + readonly isCannotCreate: boolean; + readonly isUnknownAsset: boolean; + readonly isFrozen: boolean; + readonly isUnsupported: boolean; + readonly isCannotCreateHold: boolean; + readonly isNotExpendable: boolean; + readonly isBlocked: boolean; + readonly type: + | "FundsUnavailable" + | "OnlyProvider" + | "BelowMinimum" + | "CannotCreate" + | "UnknownAsset" + | "Frozen" + | "Unsupported" + | "CannotCreateHold" + | "NotExpendable" + | "Blocked"; + } + /** @name SpArithmeticArithmeticError (29) */ + interface SpArithmeticArithmeticError extends Enum { + readonly isUnderflow: boolean; + readonly isOverflow: boolean; + readonly isDivisionByZero: boolean; + readonly type: "Underflow" | "Overflow" | "DivisionByZero"; + } + /** @name SpRuntimeTransactionalError (30) */ + interface SpRuntimeTransactionalError extends Enum { + readonly isLimitReached: boolean; + readonly isNoLayer: boolean; + readonly type: "LimitReached" | "NoLayer"; + } + /** @name CumulusPalletParachainSystemEvent (31) */ + interface CumulusPalletParachainSystemEvent extends Enum { + readonly isValidationFunctionStored: boolean; + readonly isValidationFunctionApplied: boolean; + readonly asValidationFunctionApplied: { + readonly relayChainBlockNum: u32; + } & Struct; + readonly isValidationFunctionDiscarded: boolean; + readonly isDownwardMessagesReceived: boolean; + readonly asDownwardMessagesReceived: { + readonly count: u32; + } & Struct; + readonly isDownwardMessagesProcessed: boolean; + readonly asDownwardMessagesProcessed: { + readonly weightUsed: SpWeightsWeightV2Weight; + readonly dmqHead: H256; + } & Struct; + readonly isUpwardMessageSent: boolean; + readonly asUpwardMessageSent: { + readonly messageHash: Option; + } & Struct; + readonly type: + | "ValidationFunctionStored" + | "ValidationFunctionApplied" + | "ValidationFunctionDiscarded" + | "DownwardMessagesReceived" + | "DownwardMessagesProcessed" + | "UpwardMessageSent"; + } + /** @name PalletBalancesEvent (33) */ + interface PalletBalancesEvent extends Enum { + readonly isEndowed: boolean; + readonly asEndowed: { + readonly account: AccountId32; + readonly freeBalance: u128; + } & Struct; + readonly isDustLost: boolean; + readonly asDustLost: { + readonly account: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBalanceSet: boolean; + readonly asBalanceSet: { + readonly who: AccountId32; + readonly free: u128; + } & Struct; + readonly isReserved: boolean; + readonly asReserved: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnreserved: boolean; + readonly asUnreserved: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isReserveRepatriated: boolean; + readonly asReserveRepatriated: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + readonly destinationStatus: FrameSupportTokensMiscBalanceStatus; + } & Struct; + readonly isDeposit: boolean; + readonly asDeposit: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isWithdraw: boolean; + readonly asWithdraw: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isMinted: boolean; + readonly asMinted: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSuspended: boolean; + readonly asSuspended: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isRestored: boolean; + readonly asRestored: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUpgraded: boolean; + readonly asUpgraded: { + readonly who: AccountId32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly amount: u128; + } & Struct; + readonly isRescinded: boolean; + readonly asRescinded: { + readonly amount: u128; + } & Struct; + readonly isLocked: boolean; + readonly asLocked: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnlocked: boolean; + readonly asUnlocked: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isFrozen: boolean; + readonly asFrozen: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTotalIssuanceForced: boolean; + readonly asTotalIssuanceForced: { + readonly old: u128; + readonly new_: u128; + } & Struct; + readonly type: + | "Endowed" + | "DustLost" + | "Transfer" + | "BalanceSet" + | "Reserved" + | "Unreserved" + | "ReserveRepatriated" + | "Deposit" + | "Withdraw" + | "Slashed" + | "Minted" + | "Burned" + | "Suspended" + | "Restored" + | "Upgraded" + | "Issued" + | "Rescinded" + | "Locked" + | "Unlocked" + | "Frozen" + | "Thawed" + | "TotalIssuanceForced"; + } + /** @name FrameSupportTokensMiscBalanceStatus (34) */ + interface FrameSupportTokensMiscBalanceStatus extends Enum { + readonly isFree: boolean; + readonly isReserved: boolean; + readonly type: "Free" | "Reserved"; + } + /** @name PalletTransactionPaymentEvent (35) */ + interface PalletTransactionPaymentEvent extends Enum { + readonly isTransactionFeePaid: boolean; + readonly asTransactionFeePaid: { + readonly who: AccountId32; + readonly actualFee: u128; + readonly tip: u128; + } & Struct; + readonly type: "TransactionFeePaid"; + } + /** @name PalletSudoEvent (36) */ + interface PalletSudoEvent extends Enum { + readonly isSudid: boolean; + readonly asSudid: { + readonly sudoResult: Result; + } & Struct; + readonly isKeyChanged: boolean; + readonly asKeyChanged: { + readonly old: Option; + readonly new_: AccountId32; + } & Struct; + readonly isKeyRemoved: boolean; + readonly isSudoAsDone: boolean; + readonly asSudoAsDone: { + readonly sudoResult: Result; + } & Struct; + readonly type: "Sudid" | "KeyChanged" | "KeyRemoved" | "SudoAsDone"; + } + /** @name PalletCollatorSelectionEvent (40) */ + interface PalletCollatorSelectionEvent extends Enum { + readonly isNewInvulnerables: boolean; + readonly asNewInvulnerables: { + readonly invulnerables: Vec; + } & Struct; + readonly isInvulnerableAdded: boolean; + readonly asInvulnerableAdded: { + readonly accountId: AccountId32; + } & Struct; + readonly isInvulnerableRemoved: boolean; + readonly asInvulnerableRemoved: { + readonly accountId: AccountId32; + } & Struct; + readonly isNewDesiredCandidates: boolean; + readonly asNewDesiredCandidates: { + readonly desiredCandidates: u32; + } & Struct; + readonly isNewCandidacyBond: boolean; + readonly asNewCandidacyBond: { + readonly bondAmount: u128; + } & Struct; + readonly isCandidateAdded: boolean; + readonly asCandidateAdded: { + readonly accountId: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isCandidateBondUpdated: boolean; + readonly asCandidateBondUpdated: { + readonly accountId: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isCandidateRemoved: boolean; + readonly asCandidateRemoved: { + readonly accountId: AccountId32; + } & Struct; + readonly isCandidateReplaced: boolean; + readonly asCandidateReplaced: { + readonly old: AccountId32; + readonly new_: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isInvalidInvulnerableSkipped: boolean; + readonly asInvalidInvulnerableSkipped: { + readonly accountId: AccountId32; + } & Struct; + readonly type: + | "NewInvulnerables" + | "InvulnerableAdded" + | "InvulnerableRemoved" + | "NewDesiredCandidates" + | "NewCandidacyBond" + | "CandidateAdded" + | "CandidateBondUpdated" + | "CandidateRemoved" + | "CandidateReplaced" + | "InvalidInvulnerableSkipped"; + } + /** @name PalletSessionEvent (42) */ + interface PalletSessionEvent extends Enum { + readonly isNewSession: boolean; + readonly asNewSession: { + readonly sessionIndex: u32; + } & Struct; + readonly type: "NewSession"; + } + /** @name CumulusPalletXcmpQueueEvent (43) */ + interface CumulusPalletXcmpQueueEvent extends Enum { + readonly isXcmpMessageSent: boolean; + readonly asXcmpMessageSent: { + readonly messageHash: U8aFixed; + } & Struct; + readonly type: "XcmpMessageSent"; + } + /** @name PalletXcmEvent (44) */ + interface PalletXcmEvent extends Enum { + readonly isAttempted: boolean; + readonly asAttempted: { + readonly outcome: StagingXcmV4TraitsOutcome; + } & Struct; + readonly isSent: boolean; + readonly asSent: { + readonly origin: StagingXcmV4Location; + readonly destination: StagingXcmV4Location; + readonly message: StagingXcmV4Xcm; + readonly messageId: U8aFixed; + } & Struct; + readonly isUnexpectedResponse: boolean; + readonly asUnexpectedResponse: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + } & Struct; + readonly isResponseReady: boolean; + readonly asResponseReady: { + readonly queryId: u64; + readonly response: StagingXcmV4Response; + } & Struct; + readonly isNotified: boolean; + readonly asNotified: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isNotifyOverweight: boolean; + readonly asNotifyOverweight: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + readonly actualWeight: SpWeightsWeightV2Weight; + readonly maxBudgetedWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isNotifyDispatchError: boolean; + readonly asNotifyDispatchError: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isNotifyDecodeFailed: boolean; + readonly asNotifyDecodeFailed: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isInvalidResponder: boolean; + readonly asInvalidResponder: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + readonly expectedLocation: Option; + } & Struct; + readonly isInvalidResponderVersion: boolean; + readonly asInvalidResponderVersion: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + } & Struct; + readonly isResponseTaken: boolean; + readonly asResponseTaken: { + readonly queryId: u64; + } & Struct; + readonly isAssetsTrapped: boolean; + readonly asAssetsTrapped: { + readonly hash_: H256; + readonly origin: StagingXcmV4Location; + readonly assets: XcmVersionedAssets; + } & Struct; + readonly isVersionChangeNotified: boolean; + readonly asVersionChangeNotified: { + readonly destination: StagingXcmV4Location; + readonly result: u32; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isSupportedVersionChanged: boolean; + readonly asSupportedVersionChanged: { + readonly location: StagingXcmV4Location; + readonly version: u32; + } & Struct; + readonly isNotifyTargetSendFail: boolean; + readonly asNotifyTargetSendFail: { + readonly location: StagingXcmV4Location; + readonly queryId: u64; + readonly error: XcmV3TraitsError; + } & Struct; + readonly isNotifyTargetMigrationFail: boolean; + readonly asNotifyTargetMigrationFail: { + readonly location: XcmVersionedLocation; + readonly queryId: u64; + } & Struct; + readonly isInvalidQuerierVersion: boolean; + readonly asInvalidQuerierVersion: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + } & Struct; + readonly isInvalidQuerier: boolean; + readonly asInvalidQuerier: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + readonly expectedQuerier: StagingXcmV4Location; + readonly maybeActualQuerier: Option; + } & Struct; + readonly isVersionNotifyStarted: boolean; + readonly asVersionNotifyStarted: { + readonly destination: StagingXcmV4Location; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isVersionNotifyRequested: boolean; + readonly asVersionNotifyRequested: { + readonly destination: StagingXcmV4Location; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isVersionNotifyUnrequested: boolean; + readonly asVersionNotifyUnrequested: { + readonly destination: StagingXcmV4Location; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isFeesPaid: boolean; + readonly asFeesPaid: { + readonly paying: StagingXcmV4Location; + readonly fees: StagingXcmV4AssetAssets; + } & Struct; + readonly isAssetsClaimed: boolean; + readonly asAssetsClaimed: { + readonly hash_: H256; + readonly origin: StagingXcmV4Location; + readonly assets: XcmVersionedAssets; + } & Struct; + readonly isVersionMigrationFinished: boolean; + readonly asVersionMigrationFinished: { + readonly version: u32; + } & Struct; + readonly type: + | "Attempted" + | "Sent" + | "UnexpectedResponse" + | "ResponseReady" + | "Notified" + | "NotifyOverweight" + | "NotifyDispatchError" + | "NotifyDecodeFailed" + | "InvalidResponder" + | "InvalidResponderVersion" + | "ResponseTaken" + | "AssetsTrapped" + | "VersionChangeNotified" + | "SupportedVersionChanged" + | "NotifyTargetSendFail" + | "NotifyTargetMigrationFail" + | "InvalidQuerierVersion" + | "InvalidQuerier" + | "VersionNotifyStarted" + | "VersionNotifyRequested" + | "VersionNotifyUnrequested" + | "FeesPaid" + | "AssetsClaimed" + | "VersionMigrationFinished"; + } + /** @name StagingXcmV4TraitsOutcome (45) */ + interface StagingXcmV4TraitsOutcome extends Enum { + readonly isComplete: boolean; + readonly asComplete: { + readonly used: SpWeightsWeightV2Weight; + } & Struct; + readonly isIncomplete: boolean; + readonly asIncomplete: { + readonly used: SpWeightsWeightV2Weight; + readonly error: XcmV3TraitsError; + } & Struct; + readonly isError: boolean; + readonly asError: { + readonly error: XcmV3TraitsError; + } & Struct; + readonly type: "Complete" | "Incomplete" | "Error"; + } + /** @name XcmV3TraitsError (46) */ + interface XcmV3TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: SpWeightsWeightV2Weight; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: + | "Overflow" + | "Unimplemented" + | "UntrustedReserveLocation" + | "UntrustedTeleportLocation" + | "LocationFull" + | "LocationNotInvertible" + | "BadOrigin" + | "InvalidLocation" + | "AssetNotFound" + | "FailedToTransactAsset" + | "NotWithdrawable" + | "LocationCannotHold" + | "ExceedsMaxMessageSize" + | "DestinationUnsupported" + | "Transport" + | "Unroutable" + | "UnknownClaim" + | "FailedToDecode" + | "MaxWeightInvalid" + | "NotHoldingFees" + | "TooExpensive" + | "Trap" + | "ExpectationFalse" + | "PalletNotFound" + | "NameMismatch" + | "VersionIncompatible" + | "HoldingWouldOverflow" + | "ExportError" + | "ReanchorFailed" + | "NoDeal" + | "FeesNotMet" + | "LockError" + | "NoPermission" + | "Unanchored" + | "NotDepositable" + | "UnhandledXcmVersion" + | "WeightLimitReached" + | "Barrier" + | "WeightNotComputable" + | "ExceedsStackLimit"; + } + /** @name StagingXcmV4Location (47) */ + interface StagingXcmV4Location extends Struct { + readonly parents: u8; + readonly interior: StagingXcmV4Junctions; + } + /** @name StagingXcmV4Junctions (48) */ + interface StagingXcmV4Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: StagingXcmV4Junction; + readonly isX2: boolean; + readonly asX2: StagingXcmV4Junction; + readonly isX3: boolean; + readonly asX3: StagingXcmV4Junction; + readonly isX4: boolean; + readonly asX4: StagingXcmV4Junction; + readonly isX5: boolean; + readonly asX5: StagingXcmV4Junction; + readonly isX6: boolean; + readonly asX6: StagingXcmV4Junction; + readonly isX7: boolean; + readonly asX7: StagingXcmV4Junction; + readonly isX8: boolean; + readonly asX8: StagingXcmV4Junction; + readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; + } + /** @name StagingXcmV4Junction (50) */ + interface StagingXcmV4Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: StagingXcmV4JunctionNetworkId; + readonly type: + | "Parachain" + | "AccountId32" + | "AccountIndex64" + | "AccountKey20" + | "PalletInstance" + | "GeneralIndex" + | "GeneralKey" + | "OnlyChild" + | "Plurality" + | "GlobalConsensus"; + } + /** @name StagingXcmV4JunctionNetworkId (53) */ + interface StagingXcmV4JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: + | "ByGenesis" + | "ByFork" + | "Polkadot" + | "Kusama" + | "Westend" + | "Rococo" + | "Wococo" + | "Ethereum" + | "BitcoinCore" + | "BitcoinCash" + | "PolkadotBulletin"; + } + /** @name XcmV3JunctionBodyId (56) */ + interface XcmV3JunctionBodyId extends Enum { + readonly isUnit: boolean; + readonly isMoniker: boolean; + readonly asMoniker: U8aFixed; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: + | "Unit" + | "Moniker" + | "Index" + | "Executive" + | "Technical" + | "Legislative" + | "Judicial" + | "Defense" + | "Administration" + | "Treasury"; + } + /** @name XcmV3JunctionBodyPart (57) */ + interface XcmV3JunctionBodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; + } + /** @name StagingXcmV4Xcm (65) */ + interface StagingXcmV4Xcm extends Vec {} + /** @name StagingXcmV4Instruction (67) */ + interface StagingXcmV4Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: StagingXcmV4AssetAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: StagingXcmV4AssetAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: StagingXcmV4AssetAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: StagingXcmV4Response; + readonly maxWeight: SpWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly beneficiary: StagingXcmV4Location; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly requireWeightAtMost: SpWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: StagingXcmV4Junctions; + readonly isReportError: boolean; + readonly asReportError: StagingXcmV4QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly beneficiary: StagingXcmV4Location; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: StagingXcmV4AssetAssetFilter; + readonly want: StagingXcmV4AssetAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly reserve: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: StagingXcmV4QueryResponseInfo; + readonly assets: StagingXcmV4AssetAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: StagingXcmV4Asset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: StagingXcmV4Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: StagingXcmV4Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly ticket: StagingXcmV4Location; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: StagingXcmV4AssetAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: StagingXcmV4AssetAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: StagingXcmV4QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: StagingXcmV4QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: StagingXcmV4Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: StagingXcmV4JunctionNetworkId; + readonly destination: StagingXcmV4Junctions; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: StagingXcmV4Asset; + readonly unlocker: StagingXcmV4Location; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: StagingXcmV4Asset; + readonly target: StagingXcmV4Location; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: StagingXcmV4Asset; + readonly owner: StagingXcmV4Location; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: StagingXcmV4Asset; + readonly locker: StagingXcmV4Location; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV4Location; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: + | "WithdrawAsset" + | "ReserveAssetDeposited" + | "ReceiveTeleportedAsset" + | "QueryResponse" + | "TransferAsset" + | "TransferReserveAsset" + | "Transact" + | "HrmpNewChannelOpenRequest" + | "HrmpChannelAccepted" + | "HrmpChannelClosing" + | "ClearOrigin" + | "DescendOrigin" + | "ReportError" + | "DepositAsset" + | "DepositReserveAsset" + | "ExchangeAsset" + | "InitiateReserveWithdraw" + | "InitiateTeleport" + | "ReportHolding" + | "BuyExecution" + | "RefundSurplus" + | "SetErrorHandler" + | "SetAppendix" + | "ClearError" + | "ClaimAsset" + | "Trap" + | "SubscribeVersion" + | "UnsubscribeVersion" + | "BurnAsset" + | "ExpectAsset" + | "ExpectOrigin" + | "ExpectError" + | "ExpectTransactStatus" + | "QueryPallet" + | "ExpectPallet" + | "ReportTransactStatus" + | "ClearTransactStatus" + | "UniversalOrigin" + | "ExportMessage" + | "LockAsset" + | "UnlockAsset" + | "NoteUnlockable" + | "RequestUnlock" + | "SetFeesMode" + | "SetTopic" + | "ClearTopic" + | "AliasOrigin" + | "UnpaidExecution"; + } + /** @name StagingXcmV4AssetAssets (68) */ + interface StagingXcmV4AssetAssets extends Vec {} + /** @name StagingXcmV4Asset (70) */ + interface StagingXcmV4Asset extends Struct { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetFungibility; + } + /** @name StagingXcmV4AssetAssetId (71) */ + interface StagingXcmV4AssetAssetId extends StagingXcmV4Location {} + /** @name StagingXcmV4AssetFungibility (72) */ + interface StagingXcmV4AssetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: StagingXcmV4AssetAssetInstance; + readonly type: "Fungible" | "NonFungible"; + } + /** @name StagingXcmV4AssetAssetInstance (73) */ + interface StagingXcmV4AssetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; + } + /** @name StagingXcmV4Response (76) */ + interface StagingXcmV4Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: StagingXcmV4AssetAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: + | "Null" + | "Assets" + | "ExecutionResult" + | "Version" + | "PalletsInfo" + | "DispatchResult"; + } + /** @name StagingXcmV4PalletInfo (80) */ + interface StagingXcmV4PalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + /** @name XcmV3MaybeErrorCode (83) */ + interface XcmV3MaybeErrorCode extends Enum { + readonly isSuccess: boolean; + readonly isError: boolean; + readonly asError: Bytes; + readonly isTruncatedError: boolean; + readonly asTruncatedError: Bytes; + readonly type: "Success" | "Error" | "TruncatedError"; + } + /** @name XcmV3OriginKind (86) */ + interface XcmV3OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; + } + /** @name XcmDoubleEncoded (87) */ + interface XcmDoubleEncoded extends Struct { + readonly encoded: Bytes; + } + /** @name StagingXcmV4QueryResponseInfo (88) */ + interface StagingXcmV4QueryResponseInfo extends Struct { + readonly destination: StagingXcmV4Location; + readonly queryId: Compact; + readonly maxWeight: SpWeightsWeightV2Weight; + } + /** @name StagingXcmV4AssetAssetFilter (89) */ + interface StagingXcmV4AssetAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: StagingXcmV4AssetAssets; + readonly isWild: boolean; + readonly asWild: StagingXcmV4AssetWildAsset; + readonly type: "Definite" | "Wild"; + } + /** @name StagingXcmV4AssetWildAsset (90) */ + interface StagingXcmV4AssetWildAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; + } + /** @name StagingXcmV4AssetWildFungibility (91) */ + interface StagingXcmV4AssetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: "Fungible" | "NonFungible"; + } + /** @name XcmV3WeightLimit (92) */ + interface XcmV3WeightLimit extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: SpWeightsWeightV2Weight; + readonly type: "Unlimited" | "Limited"; + } + /** @name XcmVersionedAssets (93) */ + interface XcmVersionedAssets extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2MultiassetMultiAssets; + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetMultiAssets; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssets; + readonly type: "V2" | "V3" | "V4"; + } + /** @name XcmV2MultiassetMultiAssets (94) */ + interface XcmV2MultiassetMultiAssets extends Vec {} + /** @name XcmV2MultiAsset (96) */ + interface XcmV2MultiAsset extends Struct { + readonly id: XcmV2MultiassetAssetId; + readonly fun: XcmV2MultiassetFungibility; + } + /** @name XcmV2MultiassetAssetId (97) */ + interface XcmV2MultiassetAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: XcmV2MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: "Concrete" | "Abstract"; + } + /** @name XcmV2MultiLocation (98) */ + interface XcmV2MultiLocation extends Struct { + readonly parents: u8; + readonly interior: XcmV2MultilocationJunctions; + } + /** @name XcmV2MultilocationJunctions (99) */ + interface XcmV2MultilocationJunctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: XcmV2Junction; + readonly isX2: boolean; + readonly asX2: ITuple<[XcmV2Junction, XcmV2Junction]>; + readonly isX3: boolean; + readonly asX3: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX4: boolean; + readonly asX4: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX5: boolean; + readonly asX5: ITuple< + [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] + >; + readonly isX6: boolean; + readonly asX6: ITuple< + [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] + >; + readonly isX7: boolean; + readonly asX7: ITuple< + [ + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction + ] + >; + readonly isX8: boolean; + readonly asX8: ITuple< + [ + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction + ] + >; + readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; + } + /** @name XcmV2Junction (100) */ + interface XcmV2Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: XcmV2NetworkId; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: XcmV2NetworkId; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: XcmV2NetworkId; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV2BodyId; + readonly part: XcmV2BodyPart; + } & Struct; + readonly type: + | "Parachain" + | "AccountId32" + | "AccountIndex64" + | "AccountKey20" + | "PalletInstance" + | "GeneralIndex" + | "GeneralKey" + | "OnlyChild" + | "Plurality"; + } + /** @name XcmV2NetworkId (101) */ + interface XcmV2NetworkId extends Enum { + readonly isAny: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly type: "Any" | "Named" | "Polkadot" | "Kusama"; + } + /** @name XcmV2BodyId (103) */ + interface XcmV2BodyId extends Enum { + readonly isUnit: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: + | "Unit" + | "Named" + | "Index" + | "Executive" + | "Technical" + | "Legislative" + | "Judicial" + | "Defense" + | "Administration" + | "Treasury"; + } + /** @name XcmV2BodyPart (104) */ + interface XcmV2BodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; + } + /** @name XcmV2MultiassetFungibility (105) */ + interface XcmV2MultiassetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: XcmV2MultiassetAssetInstance; + readonly type: "Fungible" | "NonFungible"; + } + /** @name XcmV2MultiassetAssetInstance (106) */ + interface XcmV2MultiassetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32" | "Blob"; + } + /** @name XcmV3MultiassetMultiAssets (107) */ + interface XcmV3MultiassetMultiAssets extends Vec {} + /** @name XcmV3MultiAsset (109) */ + interface XcmV3MultiAsset extends Struct { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetFungibility; + } + /** @name XcmV3MultiassetAssetId (110) */ + interface XcmV3MultiassetAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: StagingXcmV3MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: U8aFixed; + readonly type: "Concrete" | "Abstract"; + } + /** @name StagingXcmV3MultiLocation (111) */ + interface StagingXcmV3MultiLocation extends Struct { + readonly parents: u8; + readonly interior: XcmV3Junctions; + } + /** @name XcmV3Junctions (112) */ + interface XcmV3Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: XcmV3Junction; + readonly isX2: boolean; + readonly asX2: ITuple<[XcmV3Junction, XcmV3Junction]>; + readonly isX3: boolean; + readonly asX3: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX4: boolean; + readonly asX4: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX5: boolean; + readonly asX5: ITuple< + [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] + >; + readonly isX6: boolean; + readonly asX6: ITuple< + [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] + >; + readonly isX7: boolean; + readonly asX7: ITuple< + [ + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction + ] + >; + readonly isX8: boolean; + readonly asX8: ITuple< + [ + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction + ] + >; + readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; + } + /** @name XcmV3Junction (113) */ + interface XcmV3Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: XcmV3JunctionNetworkId; + readonly type: + | "Parachain" + | "AccountId32" + | "AccountIndex64" + | "AccountKey20" + | "PalletInstance" + | "GeneralIndex" + | "GeneralKey" + | "OnlyChild" + | "Plurality" + | "GlobalConsensus"; + } + /** @name XcmV3JunctionNetworkId (115) */ + interface XcmV3JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: + | "ByGenesis" + | "ByFork" + | "Polkadot" + | "Kusama" + | "Westend" + | "Rococo" + | "Wococo" + | "Ethereum" + | "BitcoinCore" + | "BitcoinCash" + | "PolkadotBulletin"; + } + /** @name XcmV3MultiassetFungibility (116) */ + interface XcmV3MultiassetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: XcmV3MultiassetAssetInstance; + readonly type: "Fungible" | "NonFungible"; + } + /** @name XcmV3MultiassetAssetInstance (117) */ + interface XcmV3MultiassetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; + } + /** @name XcmVersionedLocation (118) */ + interface XcmVersionedLocation extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2MultiLocation; + readonly isV3: boolean; + readonly asV3: StagingXcmV3MultiLocation; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Location; + readonly type: "V2" | "V3" | "V4"; + } + /** @name CumulusPalletXcmEvent (119) */ + interface CumulusPalletXcmEvent extends Enum { + readonly isInvalidFormat: boolean; + readonly asInvalidFormat: U8aFixed; + readonly isUnsupportedVersion: boolean; + readonly asUnsupportedVersion: U8aFixed; + readonly isExecutedDownward: boolean; + readonly asExecutedDownward: ITuple<[U8aFixed, StagingXcmV4TraitsOutcome]>; + readonly type: "InvalidFormat" | "UnsupportedVersion" | "ExecutedDownward"; + } + /** @name PalletMessageQueueEvent (120) */ + interface PalletMessageQueueEvent extends Enum { + readonly isProcessingFailed: boolean; + readonly asProcessingFailed: { + readonly id: H256; + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly error: FrameSupportMessagesProcessMessageError; + } & Struct; + readonly isProcessed: boolean; + readonly asProcessed: { + readonly id: H256; + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly weightUsed: SpWeightsWeightV2Weight; + readonly success: bool; + } & Struct; + readonly isOverweightEnqueued: boolean; + readonly asOverweightEnqueued: { + readonly id: U8aFixed; + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly pageIndex: u32; + readonly messageIndex: u32; + } & Struct; + readonly isPageReaped: boolean; + readonly asPageReaped: { + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly index: u32; + } & Struct; + readonly type: "ProcessingFailed" | "Processed" | "OverweightEnqueued" | "PageReaped"; + } + /** @name CumulusPrimitivesCoreAggregateMessageOrigin (121) */ + interface CumulusPrimitivesCoreAggregateMessageOrigin extends Enum { + readonly isHere: boolean; + readonly isParent: boolean; + readonly isSibling: boolean; + readonly asSibling: u32; + readonly type: "Here" | "Parent" | "Sibling"; + } + /** @name FrameSupportMessagesProcessMessageError (123) */ + interface FrameSupportMessagesProcessMessageError extends Enum { + readonly isBadFormat: boolean; + readonly isCorrupt: boolean; + readonly isUnsupported: boolean; + readonly isOverweight: boolean; + readonly asOverweight: SpWeightsWeightV2Weight; + readonly isYield: boolean; + readonly isStackLimitReached: boolean; + readonly type: + | "BadFormat" + | "Corrupt" + | "Unsupported" + | "Overweight" + | "Yield" + | "StackLimitReached"; + } + /** @name PalletStorageProvidersEvent (124) */ + interface PalletStorageProvidersEvent extends Enum { + readonly isMspRequestSignUpSuccess: boolean; + readonly asMspRequestSignUpSuccess: { + readonly who: AccountId32; + readonly multiaddresses: Vec; + readonly capacity: u64; + readonly valueProp: PalletStorageProvidersValueProposition; + } & Struct; + readonly isMspSignUpSuccess: boolean; + readonly asMspSignUpSuccess: { + readonly who: AccountId32; + readonly mspId: H256; + readonly multiaddresses: Vec; + readonly capacity: u64; + readonly valueProp: PalletStorageProvidersValueProposition; + } & Struct; + readonly isBspRequestSignUpSuccess: boolean; + readonly asBspRequestSignUpSuccess: { + readonly who: AccountId32; + readonly multiaddresses: Vec; + readonly capacity: u64; + } & Struct; + readonly isBspSignUpSuccess: boolean; + readonly asBspSignUpSuccess: { + readonly who: AccountId32; + readonly bspId: H256; + readonly multiaddresses: Vec; + readonly capacity: u64; + } & Struct; + readonly isSignUpRequestCanceled: boolean; + readonly asSignUpRequestCanceled: { + readonly who: AccountId32; + } & Struct; + readonly isMspSignOffSuccess: boolean; + readonly asMspSignOffSuccess: { + readonly who: AccountId32; + readonly mspId: H256; + } & Struct; + readonly isBspSignOffSuccess: boolean; + readonly asBspSignOffSuccess: { + readonly who: AccountId32; + readonly bspId: H256; + } & Struct; + readonly isCapacityChanged: boolean; + readonly asCapacityChanged: { + readonly who: AccountId32; + readonly providerId: PalletStorageProvidersStorageProviderId; + readonly oldCapacity: u64; + readonly newCapacity: u64; + readonly nextBlockWhenChangeAllowed: u32; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly providerId: H256; + readonly amountSlashed: u128; + } & Struct; + readonly type: + | "MspRequestSignUpSuccess" + | "MspSignUpSuccess" + | "BspRequestSignUpSuccess" + | "BspSignUpSuccess" + | "SignUpRequestCanceled" + | "MspSignOffSuccess" + | "BspSignOffSuccess" + | "CapacityChanged" + | "Slashed"; + } + /** @name PalletStorageProvidersValueProposition (128) */ + interface PalletStorageProvidersValueProposition extends Struct { + readonly identifier: H256; + readonly dataLimit: u64; + readonly protocols: Vec; + } + /** @name PalletStorageProvidersStorageProviderId (130) */ + interface PalletStorageProvidersStorageProviderId extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: H256; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: H256; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; + } + /** @name PalletFileSystemEvent (131) */ + interface PalletFileSystemEvent extends Enum { + readonly isNewBucket: boolean; + readonly asNewBucket: { + readonly who: AccountId32; + readonly mspId: H256; + readonly bucketId: H256; + readonly name: Bytes; + readonly collectionId: Option; + readonly private: bool; + } & Struct; + readonly isMoveBucketRequested: boolean; + readonly asMoveBucketRequested: { + readonly who: AccountId32; + readonly bucketId: H256; + readonly newMspId: H256; + } & Struct; + readonly isBucketPrivacyUpdated: boolean; + readonly asBucketPrivacyUpdated: { + readonly who: AccountId32; + readonly bucketId: H256; + readonly collectionId: Option; + readonly private: bool; + } & Struct; + readonly isNewCollectionAndAssociation: boolean; + readonly asNewCollectionAndAssociation: { + readonly who: AccountId32; + readonly bucketId: H256; + readonly collectionId: u32; + } & Struct; + readonly isNewStorageRequest: boolean; + readonly asNewStorageRequest: { + readonly who: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly size_: u64; + readonly peerIds: Vec; + } & Struct; + readonly isMspRespondedToStorageRequests: boolean; + readonly asMspRespondedToStorageRequests: { + readonly results: PalletFileSystemMspRespondStorageRequestsResult; + } & Struct; + readonly isAcceptedBspVolunteer: boolean; + readonly asAcceptedBspVolunteer: { + readonly bspId: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly multiaddresses: Vec; + readonly owner: AccountId32; + readonly size_: u64; + } & Struct; + readonly isBspConfirmedStoring: boolean; + readonly asBspConfirmedStoring: { + readonly who: AccountId32; + readonly bspId: H256; + readonly fileKeys: Vec; + readonly newRoot: H256; + } & Struct; + readonly isStorageRequestFulfilled: boolean; + readonly asStorageRequestFulfilled: { + readonly fileKey: H256; + } & Struct; + readonly isStorageRequestExpired: boolean; + readonly asStorageRequestExpired: { + readonly fileKey: H256; + } & Struct; + readonly isStorageRequestRevoked: boolean; + readonly asStorageRequestRevoked: { + readonly fileKey: H256; + } & Struct; + readonly isBspRequestedToStopStoring: boolean; + readonly asBspRequestedToStopStoring: { + readonly bspId: H256; + readonly fileKey: H256; + readonly owner: AccountId32; + readonly location: Bytes; + } & Struct; + readonly isBspConfirmStoppedStoring: boolean; + readonly asBspConfirmStoppedStoring: { + readonly bspId: H256; + readonly fileKey: H256; + readonly newRoot: H256; + } & Struct; + readonly isPriorityChallengeForFileDeletionQueued: boolean; + readonly asPriorityChallengeForFileDeletionQueued: { + readonly issuer: PalletFileSystemEitherAccountIdOrMspId; + readonly fileKey: H256; + } & Struct; + readonly isSpStopStoringInsolventUser: boolean; + readonly asSpStopStoringInsolventUser: { + readonly spId: H256; + readonly fileKey: H256; + readonly owner: AccountId32; + readonly location: Bytes; + readonly newRoot: H256; + } & Struct; + readonly isFailedToQueuePriorityChallenge: boolean; + readonly asFailedToQueuePriorityChallenge: { + readonly user: AccountId32; + readonly fileKey: H256; + } & Struct; + readonly isFileDeletionRequest: boolean; + readonly asFileDeletionRequest: { + readonly user: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly mspId: H256; + readonly proofOfInclusion: bool; + } & Struct; + readonly isProofSubmittedForPendingFileDeletionRequest: boolean; + readonly asProofSubmittedForPendingFileDeletionRequest: { + readonly mspId: H256; + readonly user: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly proofOfInclusion: bool; + } & Struct; + readonly isBspChallengeCycleInitialised: boolean; + readonly asBspChallengeCycleInitialised: { + readonly who: AccountId32; + readonly bspId: H256; + } & Struct; + readonly isMoveBucketRequestExpired: boolean; + readonly asMoveBucketRequestExpired: { + readonly mspId: H256; + readonly bucketId: H256; + } & Struct; + readonly isMoveBucketAccepted: boolean; + readonly asMoveBucketAccepted: { + readonly bucketId: H256; + readonly mspId: H256; + } & Struct; + readonly isMoveBucketRejected: boolean; + readonly asMoveBucketRejected: { + readonly bucketId: H256; + readonly mspId: H256; + } & Struct; + readonly isDataServerRegisteredForMoveBucket: boolean; + readonly asDataServerRegisteredForMoveBucket: { + readonly bspId: H256; + readonly bucketId: H256; + } & Struct; + readonly type: + | "NewBucket" + | "MoveBucketRequested" + | "BucketPrivacyUpdated" + | "NewCollectionAndAssociation" + | "NewStorageRequest" + | "MspRespondedToStorageRequests" + | "AcceptedBspVolunteer" + | "BspConfirmedStoring" + | "StorageRequestFulfilled" + | "StorageRequestExpired" + | "StorageRequestRevoked" + | "BspRequestedToStopStoring" + | "BspConfirmStoppedStoring" + | "PriorityChallengeForFileDeletionQueued" + | "SpStopStoringInsolventUser" + | "FailedToQueuePriorityChallenge" + | "FileDeletionRequest" + | "ProofSubmittedForPendingFileDeletionRequest" + | "BspChallengeCycleInitialised" + | "MoveBucketRequestExpired" + | "MoveBucketAccepted" + | "MoveBucketRejected" + | "DataServerRegisteredForMoveBucket"; + } + /** @name PalletFileSystemMspRespondStorageRequestsResult (134) */ + interface PalletFileSystemMspRespondStorageRequestsResult extends Struct { + readonly mspId: H256; + readonly responses: Vec; + } + /** @name PalletFileSystemBatchResponses (136) */ + interface PalletFileSystemBatchResponses extends Enum { + readonly isAccepted: boolean; + readonly asAccepted: PalletFileSystemMspAcceptedBatchStorageRequests; + readonly isRejected: boolean; + readonly asRejected: PalletFileSystemMspRejectedBatchStorageRequests; + readonly isFailed: boolean; + readonly asFailed: PalletFileSystemMspFailedBatchStorageRequests; + readonly type: "Accepted" | "Rejected" | "Failed"; + } + /** @name PalletFileSystemMspAcceptedBatchStorageRequests (137) */ + interface PalletFileSystemMspAcceptedBatchStorageRequests extends Struct { + readonly fileKeys: Vec; + readonly bucketId: H256; + readonly newBucketRoot: H256; + readonly owner: AccountId32; + } + /** @name PalletFileSystemMspRejectedBatchStorageRequests (140) */ + interface PalletFileSystemMspRejectedBatchStorageRequests extends Struct { + readonly fileKeys: Vec>; + readonly bucketId: H256; + readonly owner: AccountId32; + } + /** @name PalletFileSystemRejectedStorageRequestReason (143) */ + interface PalletFileSystemRejectedStorageRequestReason extends Enum { + readonly isReachedMaximumCapacity: boolean; + readonly isReceivedInvalidProof: boolean; + readonly isInternalError: boolean; + readonly type: "ReachedMaximumCapacity" | "ReceivedInvalidProof" | "InternalError"; + } + /** @name PalletFileSystemMspFailedBatchStorageRequests (145) */ + interface PalletFileSystemMspFailedBatchStorageRequests extends Struct { + readonly fileKeys: Vec>; + readonly bucketId: H256; + readonly owner: AccountId32; + } + /** @name PalletFileSystemEitherAccountIdOrMspId (150) */ + interface PalletFileSystemEitherAccountIdOrMspId extends Enum { + readonly isAccountId: boolean; + readonly asAccountId: AccountId32; + readonly isMspId: boolean; + readonly asMspId: H256; + readonly type: "AccountId" | "MspId"; + } + /** @name PalletProofsDealerEvent (151) */ + interface PalletProofsDealerEvent extends Enum { + readonly isNewChallenge: boolean; + readonly asNewChallenge: { + readonly who: AccountId32; + readonly keyChallenged: H256; + } & Struct; + readonly isProofAccepted: boolean; + readonly asProofAccepted: { + readonly provider: H256; + readonly proof: PalletProofsDealerProof; + } & Struct; + readonly isNewChallengeSeed: boolean; + readonly asNewChallengeSeed: { + readonly challengesTicker: u32; + readonly seed: H256; + } & Struct; + readonly isNewCheckpointChallenge: boolean; + readonly asNewCheckpointChallenge: { + readonly challengesTicker: u32; + readonly challenges: Vec]>>; + } & Struct; + readonly isSlashableProvider: boolean; + readonly asSlashableProvider: { + readonly provider: H256; + readonly nextChallengeDeadline: u32; + } & Struct; + readonly isNoRecordOfLastSubmittedProof: boolean; + readonly asNoRecordOfLastSubmittedProof: { + readonly provider: H256; + } & Struct; + readonly isNewChallengeCycleInitialised: boolean; + readonly asNewChallengeCycleInitialised: { + readonly currentTick: u32; + readonly nextChallengeDeadline: u32; + readonly provider: H256; + readonly maybeProviderAccount: Option; + } & Struct; + readonly isMutationsApplied: boolean; + readonly asMutationsApplied: { + readonly provider: H256; + readonly mutations: Vec>; + readonly newRoot: H256; + } & Struct; + readonly isChallengesTickerSet: boolean; + readonly asChallengesTickerSet: { + readonly paused: bool; + } & Struct; + readonly type: + | "NewChallenge" + | "ProofAccepted" + | "NewChallengeSeed" + | "NewCheckpointChallenge" + | "SlashableProvider" + | "NoRecordOfLastSubmittedProof" + | "NewChallengeCycleInitialised" + | "MutationsApplied" + | "ChallengesTickerSet"; + } + /** @name PalletProofsDealerProof (152) */ + interface PalletProofsDealerProof extends Struct { + readonly forestProof: SpTrieStorageProofCompactProof; + readonly keyProofs: BTreeMap; + } + /** @name SpTrieStorageProofCompactProof (153) */ + interface SpTrieStorageProofCompactProof extends Struct { + readonly encodedNodes: Vec; + } + /** @name PalletProofsDealerKeyProof (156) */ + interface PalletProofsDealerKeyProof extends Struct { + readonly proof: ShpFileKeyVerifierFileKeyProof; + readonly challengeCount: u32; + } + /** @name ShpFileKeyVerifierFileKeyProof (157) */ + interface ShpFileKeyVerifierFileKeyProof extends Struct { + readonly fileMetadata: ShpFileMetadataFileMetadata; + readonly proof: SpTrieStorageProofCompactProof; + } + /** @name ShpFileMetadataFileMetadata (158) */ + interface ShpFileMetadataFileMetadata extends Struct { + readonly owner: Bytes; + readonly bucketId: Bytes; + readonly location: Bytes; + readonly fileSize: Compact; + readonly fingerprint: ShpFileMetadataFingerprint; + } + /** @name ShpFileMetadataFingerprint (159) */ + interface ShpFileMetadataFingerprint extends U8aFixed {} + /** @name ShpTraitsTrieRemoveMutation (165) */ + type ShpTraitsTrieRemoveMutation = Null; + /** @name PalletRandomnessEvent (169) */ + interface PalletRandomnessEvent extends Enum { + readonly isNewOneEpochAgoRandomnessAvailable: boolean; + readonly asNewOneEpochAgoRandomnessAvailable: { + readonly randomnessSeed: H256; + readonly fromEpoch: u64; + readonly validUntilBlock: u32; + } & Struct; + readonly type: "NewOneEpochAgoRandomnessAvailable"; + } + /** @name PalletPaymentStreamsEvent (170) */ + interface PalletPaymentStreamsEvent extends Enum { + readonly isFixedRatePaymentStreamCreated: boolean; + readonly asFixedRatePaymentStreamCreated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly rate: u128; + } & Struct; + readonly isFixedRatePaymentStreamUpdated: boolean; + readonly asFixedRatePaymentStreamUpdated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly newRate: u128; + } & Struct; + readonly isFixedRatePaymentStreamDeleted: boolean; + readonly asFixedRatePaymentStreamDeleted: { + readonly userAccount: AccountId32; + readonly providerId: H256; + } & Struct; + readonly isDynamicRatePaymentStreamCreated: boolean; + readonly asDynamicRatePaymentStreamCreated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly amountProvided: u64; + } & Struct; + readonly isDynamicRatePaymentStreamUpdated: boolean; + readonly asDynamicRatePaymentStreamUpdated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly newAmountProvided: u64; + } & Struct; + readonly isDynamicRatePaymentStreamDeleted: boolean; + readonly asDynamicRatePaymentStreamDeleted: { + readonly userAccount: AccountId32; + readonly providerId: H256; + } & Struct; + readonly isPaymentStreamCharged: boolean; + readonly asPaymentStreamCharged: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly amount: u128; + } & Struct; + readonly isLastChargeableInfoUpdated: boolean; + readonly asLastChargeableInfoUpdated: { + readonly providerId: H256; + readonly lastChargeableTick: u32; + readonly lastChargeablePriceIndex: u128; + } & Struct; + readonly isUserWithoutFunds: boolean; + readonly asUserWithoutFunds: { + readonly who: AccountId32; + } & Struct; + readonly isUserPaidDebts: boolean; + readonly asUserPaidDebts: { + readonly who: AccountId32; + } & Struct; + readonly isUserSolvent: boolean; + readonly asUserSolvent: { + readonly who: AccountId32; + } & Struct; + readonly type: + | "FixedRatePaymentStreamCreated" + | "FixedRatePaymentStreamUpdated" + | "FixedRatePaymentStreamDeleted" + | "DynamicRatePaymentStreamCreated" + | "DynamicRatePaymentStreamUpdated" + | "DynamicRatePaymentStreamDeleted" + | "PaymentStreamCharged" + | "LastChargeableInfoUpdated" + | "UserWithoutFunds" + | "UserPaidDebts" + | "UserSolvent"; + } + /** @name PalletBucketNftsEvent (171) */ + interface PalletBucketNftsEvent extends Enum { + readonly isAccessShared: boolean; + readonly asAccessShared: { + readonly issuer: AccountId32; + readonly recipient: AccountId32; + } & Struct; + readonly isItemReadAccessUpdated: boolean; + readonly asItemReadAccessUpdated: { + readonly admin: AccountId32; + readonly bucket: H256; + readonly itemId: u32; + } & Struct; + readonly isItemBurned: boolean; + readonly asItemBurned: { + readonly account: AccountId32; + readonly bucket: H256; + readonly itemId: u32; + } & Struct; + readonly type: "AccessShared" | "ItemReadAccessUpdated" | "ItemBurned"; + } + /** @name PalletNftsEvent (172) */ + interface PalletNftsEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly collection: u32; + readonly creator: AccountId32; + readonly owner: AccountId32; + } & Struct; + readonly isForceCreated: boolean; + readonly asForceCreated: { + readonly collection: u32; + readonly owner: AccountId32; + } & Struct; + readonly isDestroyed: boolean; + readonly asDestroyed: { + readonly collection: u32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly collection: u32; + readonly item: u32; + readonly from: AccountId32; + readonly to: AccountId32; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isItemTransferLocked: boolean; + readonly asItemTransferLocked: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemTransferUnlocked: boolean; + readonly asItemTransferUnlocked: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemPropertiesLocked: boolean; + readonly asItemPropertiesLocked: { + readonly collection: u32; + readonly item: u32; + readonly lockMetadata: bool; + readonly lockAttributes: bool; + } & Struct; + readonly isCollectionLocked: boolean; + readonly asCollectionLocked: { + readonly collection: u32; + } & Struct; + readonly isOwnerChanged: boolean; + readonly asOwnerChanged: { + readonly collection: u32; + readonly newOwner: AccountId32; + } & Struct; + readonly isTeamChanged: boolean; + readonly asTeamChanged: { + readonly collection: u32; + readonly issuer: Option; + readonly admin: Option; + readonly freezer: Option; + } & Struct; + readonly isTransferApproved: boolean; + readonly asTransferApproved: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + readonly deadline: Option; + } & Struct; + readonly isApprovalCancelled: boolean; + readonly asApprovalCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + } & Struct; + readonly isAllApprovalsCancelled: boolean; + readonly asAllApprovalsCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isCollectionConfigChanged: boolean; + readonly asCollectionConfigChanged: { + readonly collection: u32; + } & Struct; + readonly isCollectionMetadataSet: boolean; + readonly asCollectionMetadataSet: { + readonly collection: u32; + readonly data: Bytes; + } & Struct; + readonly isCollectionMetadataCleared: boolean; + readonly asCollectionMetadataCleared: { + readonly collection: u32; + } & Struct; + readonly isItemMetadataSet: boolean; + readonly asItemMetadataSet: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + } & Struct; + readonly isItemMetadataCleared: boolean; + readonly asItemMetadataCleared: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isRedeposited: boolean; + readonly asRedeposited: { + readonly collection: u32; + readonly successfulItems: Vec; + } & Struct; + readonly isAttributeSet: boolean; + readonly asAttributeSet: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly value: Bytes; + readonly namespace: PalletNftsAttributeNamespace; + } & Struct; + readonly isAttributeCleared: boolean; + readonly asAttributeCleared: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly namespace: PalletNftsAttributeNamespace; + } & Struct; + readonly isItemAttributesApprovalAdded: boolean; + readonly asItemAttributesApprovalAdded: { + readonly collection: u32; + readonly item: u32; + readonly delegate: AccountId32; + } & Struct; + readonly isItemAttributesApprovalRemoved: boolean; + readonly asItemAttributesApprovalRemoved: { + readonly collection: u32; + readonly item: u32; + readonly delegate: AccountId32; + } & Struct; + readonly isOwnershipAcceptanceChanged: boolean; + readonly asOwnershipAcceptanceChanged: { + readonly who: AccountId32; + readonly maybeCollection: Option; + } & Struct; + readonly isCollectionMaxSupplySet: boolean; + readonly asCollectionMaxSupplySet: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isCollectionMintSettingsUpdated: boolean; + readonly asCollectionMintSettingsUpdated: { + readonly collection: u32; + } & Struct; + readonly isNextCollectionIdIncremented: boolean; + readonly asNextCollectionIdIncremented: { + readonly nextId: Option; + } & Struct; + readonly isItemPriceSet: boolean; + readonly asItemPriceSet: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isItemPriceRemoved: boolean; + readonly asItemPriceRemoved: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemBought: boolean; + readonly asItemBought: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly seller: AccountId32; + readonly buyer: AccountId32; + } & Struct; + readonly isTipSent: boolean; + readonly asTipSent: { + readonly collection: u32; + readonly item: u32; + readonly sender: AccountId32; + readonly receiver: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSwapCreated: boolean; + readonly asSwapCreated: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isSwapCancelled: boolean; + readonly asSwapCancelled: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isSwapClaimed: boolean; + readonly asSwapClaimed: { + readonly sentCollection: u32; + readonly sentItem: u32; + readonly sentItemOwner: AccountId32; + readonly receivedCollection: u32; + readonly receivedItem: u32; + readonly receivedItemOwner: AccountId32; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isPreSignedAttributesSet: boolean; + readonly asPreSignedAttributesSet: { + readonly collection: u32; + readonly item: u32; + readonly namespace: PalletNftsAttributeNamespace; + } & Struct; + readonly isPalletAttributeSet: boolean; + readonly asPalletAttributeSet: { + readonly collection: u32; + readonly item: Option; + readonly attribute: PalletNftsPalletAttributes; + readonly value: Bytes; + } & Struct; + readonly type: + | "Created" + | "ForceCreated" + | "Destroyed" + | "Issued" + | "Transferred" + | "Burned" + | "ItemTransferLocked" + | "ItemTransferUnlocked" + | "ItemPropertiesLocked" + | "CollectionLocked" + | "OwnerChanged" + | "TeamChanged" + | "TransferApproved" + | "ApprovalCancelled" + | "AllApprovalsCancelled" + | "CollectionConfigChanged" + | "CollectionMetadataSet" + | "CollectionMetadataCleared" + | "ItemMetadataSet" + | "ItemMetadataCleared" + | "Redeposited" + | "AttributeSet" + | "AttributeCleared" + | "ItemAttributesApprovalAdded" + | "ItemAttributesApprovalRemoved" + | "OwnershipAcceptanceChanged" + | "CollectionMaxSupplySet" + | "CollectionMintSettingsUpdated" + | "NextCollectionIdIncremented" + | "ItemPriceSet" + | "ItemPriceRemoved" + | "ItemBought" + | "TipSent" + | "SwapCreated" + | "SwapCancelled" + | "SwapClaimed" + | "PreSignedAttributesSet" + | "PalletAttributeSet"; + } + /** @name PalletNftsAttributeNamespace (176) */ + interface PalletNftsAttributeNamespace extends Enum { + readonly isPallet: boolean; + readonly isCollectionOwner: boolean; + readonly isItemOwner: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly type: "Pallet" | "CollectionOwner" | "ItemOwner" | "Account"; + } + /** @name PalletNftsPriceWithDirection (178) */ + interface PalletNftsPriceWithDirection extends Struct { + readonly amount: u128; + readonly direction: PalletNftsPriceDirection; + } + /** @name PalletNftsPriceDirection (179) */ + interface PalletNftsPriceDirection extends Enum { + readonly isSend: boolean; + readonly isReceive: boolean; + readonly type: "Send" | "Receive"; + } + /** @name PalletNftsPalletAttributes (180) */ + interface PalletNftsPalletAttributes extends Enum { + readonly isUsedToClaim: boolean; + readonly asUsedToClaim: u32; + readonly isTransferDisabled: boolean; + readonly type: "UsedToClaim" | "TransferDisabled"; + } + /** @name PalletParametersEvent (181) */ + interface PalletParametersEvent extends Enum { + readonly isUpdated: boolean; + readonly asUpdated: { + readonly key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + readonly oldValue: Option; + readonly newValue: Option; + } & Struct; + readonly type: "Updated"; + } + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (182) */ + interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey extends Enum { + readonly isRuntimeConfig: boolean; + readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; + readonly type: "RuntimeConfig"; + } + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (183) */ + interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey + extends Enum { + readonly isSlashAmountPerMaxFileSize: boolean; + readonly isStakeToChallengePeriod: boolean; + readonly isCheckpointChallengePeriod: boolean; + readonly isMinChallengePeriod: boolean; + readonly type: + | "SlashAmountPerMaxFileSize" + | "StakeToChallengePeriod" + | "CheckpointChallengePeriod" + | "MinChallengePeriod"; + } + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (184) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize = + Null; + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (185) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod = Null; + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (186) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod = + Null; + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (187) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod = Null; + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (189) */ + interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue extends Enum { + readonly isRuntimeConfig: boolean; + readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; + readonly type: "RuntimeConfig"; + } + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (190) */ + interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue + extends Enum { + readonly isSlashAmountPerMaxFileSize: boolean; + readonly asSlashAmountPerMaxFileSize: u128; + readonly isStakeToChallengePeriod: boolean; + readonly asStakeToChallengePeriod: u128; + readonly isCheckpointChallengePeriod: boolean; + readonly asCheckpointChallengePeriod: u32; + readonly isMinChallengePeriod: boolean; + readonly asMinChallengePeriod: u32; + readonly type: + | "SlashAmountPerMaxFileSize" + | "StakeToChallengePeriod" + | "CheckpointChallengePeriod" + | "MinChallengePeriod"; + } + /** @name FrameSystemPhase (191) */ + interface FrameSystemPhase extends Enum { + readonly isApplyExtrinsic: boolean; + readonly asApplyExtrinsic: u32; + readonly isFinalization: boolean; + readonly isInitialization: boolean; + readonly type: "ApplyExtrinsic" | "Finalization" | "Initialization"; + } + /** @name FrameSystemLastRuntimeUpgradeInfo (194) */ + interface FrameSystemLastRuntimeUpgradeInfo extends Struct { + readonly specVersion: Compact; + readonly specName: Text; + } + /** @name FrameSystemCodeUpgradeAuthorization (196) */ + interface FrameSystemCodeUpgradeAuthorization extends Struct { + readonly codeHash: H256; + readonly checkVersion: bool; + } + /** @name FrameSystemCall (197) */ + interface FrameSystemCall extends Enum { + readonly isRemark: boolean; + readonly asRemark: { + readonly remark: Bytes; + } & Struct; + readonly isSetHeapPages: boolean; + readonly asSetHeapPages: { + readonly pages: u64; + } & Struct; + readonly isSetCode: boolean; + readonly asSetCode: { + readonly code: Bytes; + } & Struct; + readonly isSetCodeWithoutChecks: boolean; + readonly asSetCodeWithoutChecks: { + readonly code: Bytes; + } & Struct; + readonly isSetStorage: boolean; + readonly asSetStorage: { + readonly items: Vec>; + } & Struct; + readonly isKillStorage: boolean; + readonly asKillStorage: { + readonly keys_: Vec; + } & Struct; + readonly isKillPrefix: boolean; + readonly asKillPrefix: { + readonly prefix: Bytes; + readonly subkeys: u32; + } & Struct; + readonly isRemarkWithEvent: boolean; + readonly asRemarkWithEvent: { + readonly remark: Bytes; + } & Struct; + readonly isAuthorizeUpgrade: boolean; + readonly asAuthorizeUpgrade: { + readonly codeHash: H256; + } & Struct; + readonly isAuthorizeUpgradeWithoutChecks: boolean; + readonly asAuthorizeUpgradeWithoutChecks: { + readonly codeHash: H256; + } & Struct; + readonly isApplyAuthorizedUpgrade: boolean; + readonly asApplyAuthorizedUpgrade: { + readonly code: Bytes; + } & Struct; + readonly type: + | "Remark" + | "SetHeapPages" + | "SetCode" + | "SetCodeWithoutChecks" + | "SetStorage" + | "KillStorage" + | "KillPrefix" + | "RemarkWithEvent" + | "AuthorizeUpgrade" + | "AuthorizeUpgradeWithoutChecks" + | "ApplyAuthorizedUpgrade"; + } + /** @name FrameSystemLimitsBlockWeights (200) */ + interface FrameSystemLimitsBlockWeights extends Struct { + readonly baseBlock: SpWeightsWeightV2Weight; + readonly maxBlock: SpWeightsWeightV2Weight; + readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + } + /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (201) */ + interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { + readonly normal: FrameSystemLimitsWeightsPerClass; + readonly operational: FrameSystemLimitsWeightsPerClass; + readonly mandatory: FrameSystemLimitsWeightsPerClass; + } + /** @name FrameSystemLimitsWeightsPerClass (202) */ + interface FrameSystemLimitsWeightsPerClass extends Struct { + readonly baseExtrinsic: SpWeightsWeightV2Weight; + readonly maxExtrinsic: Option; + readonly maxTotal: Option; + readonly reserved: Option; + } + /** @name FrameSystemLimitsBlockLength (204) */ + interface FrameSystemLimitsBlockLength extends Struct { + readonly max: FrameSupportDispatchPerDispatchClassU32; + } + /** @name FrameSupportDispatchPerDispatchClassU32 (205) */ + interface FrameSupportDispatchPerDispatchClassU32 extends Struct { + readonly normal: u32; + readonly operational: u32; + readonly mandatory: u32; + } + /** @name SpWeightsRuntimeDbWeight (206) */ + interface SpWeightsRuntimeDbWeight extends Struct { + readonly read: u64; + readonly write: u64; + } + /** @name SpVersionRuntimeVersion (207) */ + interface SpVersionRuntimeVersion extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec>; + readonly transactionVersion: u32; + readonly stateVersion: u8; + } + /** @name FrameSystemError (212) */ + interface FrameSystemError extends Enum { + readonly isInvalidSpecName: boolean; + readonly isSpecVersionNeedsToIncrease: boolean; + readonly isFailedToExtractRuntimeVersion: boolean; + readonly isNonDefaultComposite: boolean; + readonly isNonZeroRefCount: boolean; + readonly isCallFiltered: boolean; + readonly isMultiBlockMigrationsOngoing: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly type: + | "InvalidSpecName" + | "SpecVersionNeedsToIncrease" + | "FailedToExtractRuntimeVersion" + | "NonDefaultComposite" + | "NonZeroRefCount" + | "CallFiltered" + | "MultiBlockMigrationsOngoing" + | "NothingAuthorized" + | "Unauthorized"; + } + /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (214) */ + interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { + readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + readonly paraHeadHash: Option; + readonly consumedGoAheadSignal: Option; + } + /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (215) */ + interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { + readonly umpMsgCount: u32; + readonly umpTotalBytes: u32; + readonly hrmpOutgoing: BTreeMap< + u32, + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate + >; + } + /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (217) */ + interface CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { + readonly msgCount: u32; + readonly totalBytes: u32; + } + /** @name PolkadotPrimitivesV7UpgradeGoAhead (222) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { + readonly isAbort: boolean; + readonly isGoAhead: boolean; + readonly type: "Abort" | "GoAhead"; + } + /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (223) */ + interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { + readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + readonly hrmpWatermark: Option; + readonly consumedGoAheadSignal: Option; + } + /** @name PolkadotPrimitivesV7PersistedValidationData (224) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { + readonly parentHead: Bytes; + readonly relayParentNumber: u32; + readonly relayParentStorageRoot: H256; + readonly maxPovSize: u32; + } + /** @name PolkadotPrimitivesV7UpgradeRestriction (227) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { + readonly isPresent: boolean; + readonly type: "Present"; + } + /** @name SpTrieStorageProof (228) */ + interface SpTrieStorageProof extends Struct { + readonly trieNodes: BTreeSet; + } + /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (230) */ + interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { + readonly dmqMqcHead: H256; + readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; + } + /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (231) */ + interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity + extends Struct { + readonly remainingCount: u32; + readonly remainingSize: u32; + } + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (234) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; + } + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (235) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeCooldown: u32; + readonly validationUpgradeDelay: u32; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + } + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (236) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { + readonly maxCandidateDepth: u32; + readonly allowedAncestryLen: u32; + } + /** @name PolkadotCorePrimitivesOutboundHrmpMessage (242) */ + interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { + readonly recipient: u32; + readonly data: Bytes; + } + /** @name CumulusPalletParachainSystemCall (244) */ + interface CumulusPalletParachainSystemCall extends Enum { + readonly isSetValidationData: boolean; + readonly asSetValidationData: { + readonly data: CumulusPrimitivesParachainInherentParachainInherentData; + } & Struct; + readonly isSudoSendUpwardMessage: boolean; + readonly asSudoSendUpwardMessage: { + readonly message: Bytes; + } & Struct; + readonly isAuthorizeUpgrade: boolean; + readonly asAuthorizeUpgrade: { + readonly codeHash: H256; + readonly checkVersion: bool; + } & Struct; + readonly isEnactAuthorizedUpgrade: boolean; + readonly asEnactAuthorizedUpgrade: { + readonly code: Bytes; + } & Struct; + readonly type: + | "SetValidationData" + | "SudoSendUpwardMessage" + | "AuthorizeUpgrade" + | "EnactAuthorizedUpgrade"; + } + /** @name CumulusPrimitivesParachainInherentParachainInherentData (245) */ + interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; + readonly relayChainState: SpTrieStorageProof; + readonly downwardMessages: Vec; + readonly horizontalMessages: BTreeMap>; + } + /** @name PolkadotCorePrimitivesInboundDownwardMessage (247) */ + interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { + readonly sentAt: u32; + readonly msg: Bytes; + } + /** @name PolkadotCorePrimitivesInboundHrmpMessage (250) */ + interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { + readonly sentAt: u32; + readonly data: Bytes; + } + /** @name CumulusPalletParachainSystemError (253) */ + interface CumulusPalletParachainSystemError extends Enum { + readonly isOverlappingUpgrades: boolean; + readonly isProhibitedByPolkadot: boolean; + readonly isTooBig: boolean; + readonly isValidationDataNotAvailable: boolean; + readonly isHostConfigurationNotAvailable: boolean; + readonly isNotScheduled: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly type: + | "OverlappingUpgrades" + | "ProhibitedByPolkadot" + | "TooBig" + | "ValidationDataNotAvailable" + | "HostConfigurationNotAvailable" + | "NotScheduled" + | "NothingAuthorized" + | "Unauthorized"; + } + /** @name PalletTimestampCall (254) */ + interface PalletTimestampCall extends Enum { + readonly isSet: boolean; + readonly asSet: { + readonly now: Compact; + } & Struct; + readonly type: "Set"; + } + /** @name StagingParachainInfoCall (255) */ + type StagingParachainInfoCall = Null; + /** @name PalletBalancesBalanceLock (257) */ + interface PalletBalancesBalanceLock extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + readonly reasons: PalletBalancesReasons; + } + /** @name PalletBalancesReasons (258) */ + interface PalletBalancesReasons extends Enum { + readonly isFee: boolean; + readonly isMisc: boolean; + readonly isAll: boolean; + readonly type: "Fee" | "Misc" | "All"; + } + /** @name PalletBalancesReserveData (261) */ + interface PalletBalancesReserveData extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + } + /** @name StorageHubRuntimeRuntimeHoldReason (265) */ + interface StorageHubRuntimeRuntimeHoldReason extends Enum { + readonly isProviders: boolean; + readonly asProviders: PalletStorageProvidersHoldReason; + readonly isPaymentStreams: boolean; + readonly asPaymentStreams: PalletPaymentStreamsHoldReason; + readonly type: "Providers" | "PaymentStreams"; + } + /** @name PalletStorageProvidersHoldReason (266) */ + interface PalletStorageProvidersHoldReason extends Enum { + readonly isStorageProviderDeposit: boolean; + readonly isBucketDeposit: boolean; + readonly type: "StorageProviderDeposit" | "BucketDeposit"; + } + /** @name PalletPaymentStreamsHoldReason (267) */ + interface PalletPaymentStreamsHoldReason extends Enum { + readonly isPaymentStreamDeposit: boolean; + readonly type: "PaymentStreamDeposit"; + } + /** @name PalletBalancesIdAmount (270) */ + interface PalletBalancesIdAmount extends Struct { + readonly id: Null; + readonly amount: u128; + } + /** @name PalletBalancesCall (272) */ + interface PalletBalancesCall extends Enum { + readonly isTransferAllowDeath: boolean; + readonly asTransferAllowDeath: { + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isForceTransfer: boolean; + readonly asForceTransfer: { + readonly source: MultiAddress; + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isTransferKeepAlive: boolean; + readonly asTransferKeepAlive: { + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isTransferAll: boolean; + readonly asTransferAll: { + readonly dest: MultiAddress; + readonly keepAlive: bool; + } & Struct; + readonly isForceUnreserve: boolean; + readonly asForceUnreserve: { + readonly who: MultiAddress; + readonly amount: u128; + } & Struct; + readonly isUpgradeAccounts: boolean; + readonly asUpgradeAccounts: { + readonly who: Vec; + } & Struct; + readonly isForceSetBalance: boolean; + readonly asForceSetBalance: { + readonly who: MultiAddress; + readonly newFree: Compact; + } & Struct; + readonly isForceAdjustTotalIssuance: boolean; + readonly asForceAdjustTotalIssuance: { + readonly direction: PalletBalancesAdjustmentDirection; + readonly delta: Compact; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly value: Compact; + readonly keepAlive: bool; + } & Struct; + readonly type: + | "TransferAllowDeath" + | "ForceTransfer" + | "TransferKeepAlive" + | "TransferAll" + | "ForceUnreserve" + | "UpgradeAccounts" + | "ForceSetBalance" + | "ForceAdjustTotalIssuance" + | "Burn"; + } + /** @name PalletBalancesAdjustmentDirection (275) */ + interface PalletBalancesAdjustmentDirection extends Enum { + readonly isIncrease: boolean; + readonly isDecrease: boolean; + readonly type: "Increase" | "Decrease"; + } + /** @name PalletBalancesError (276) */ + interface PalletBalancesError extends Enum { + readonly isVestingBalance: boolean; + readonly isLiquidityRestrictions: boolean; + readonly isInsufficientBalance: boolean; + readonly isExistentialDeposit: boolean; + readonly isExpendability: boolean; + readonly isExistingVestingSchedule: boolean; + readonly isDeadAccount: boolean; + readonly isTooManyReserves: boolean; + readonly isTooManyHolds: boolean; + readonly isTooManyFreezes: boolean; + readonly isIssuanceDeactivated: boolean; + readonly isDeltaZero: boolean; + readonly type: + | "VestingBalance" + | "LiquidityRestrictions" + | "InsufficientBalance" + | "ExistentialDeposit" + | "Expendability" + | "ExistingVestingSchedule" + | "DeadAccount" + | "TooManyReserves" + | "TooManyHolds" + | "TooManyFreezes" + | "IssuanceDeactivated" + | "DeltaZero"; + } + /** @name PalletTransactionPaymentReleases (277) */ + interface PalletTransactionPaymentReleases extends Enum { + readonly isV1Ancient: boolean; + readonly isV2: boolean; + readonly type: "V1Ancient" | "V2"; + } + /** @name PalletSudoCall (278) */ + interface PalletSudoCall extends Enum { + readonly isSudo: boolean; + readonly asSudo: { + readonly call: Call; + } & Struct; + readonly isSudoUncheckedWeight: boolean; + readonly asSudoUncheckedWeight: { + readonly call: Call; + readonly weight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSetKey: boolean; + readonly asSetKey: { + readonly new_: MultiAddress; + } & Struct; + readonly isSudoAs: boolean; + readonly asSudoAs: { + readonly who: MultiAddress; + readonly call: Call; + } & Struct; + readonly isRemoveKey: boolean; + readonly type: "Sudo" | "SudoUncheckedWeight" | "SetKey" | "SudoAs" | "RemoveKey"; + } + /** @name PalletCollatorSelectionCall (280) */ + interface PalletCollatorSelectionCall extends Enum { + readonly isSetInvulnerables: boolean; + readonly asSetInvulnerables: { + readonly new_: Vec; + } & Struct; + readonly isSetDesiredCandidates: boolean; + readonly asSetDesiredCandidates: { + readonly max: u32; + } & Struct; + readonly isSetCandidacyBond: boolean; + readonly asSetCandidacyBond: { + readonly bond: u128; + } & Struct; + readonly isRegisterAsCandidate: boolean; + readonly isLeaveIntent: boolean; + readonly isAddInvulnerable: boolean; + readonly asAddInvulnerable: { + readonly who: AccountId32; + } & Struct; + readonly isRemoveInvulnerable: boolean; + readonly asRemoveInvulnerable: { + readonly who: AccountId32; + } & Struct; + readonly isUpdateBond: boolean; + readonly asUpdateBond: { + readonly newDeposit: u128; + } & Struct; + readonly isTakeCandidateSlot: boolean; + readonly asTakeCandidateSlot: { + readonly deposit: u128; + readonly target: AccountId32; + } & Struct; + readonly type: + | "SetInvulnerables" + | "SetDesiredCandidates" + | "SetCandidacyBond" + | "RegisterAsCandidate" + | "LeaveIntent" + | "AddInvulnerable" + | "RemoveInvulnerable" + | "UpdateBond" + | "TakeCandidateSlot"; + } + /** @name PalletSessionCall (281) */ + interface PalletSessionCall extends Enum { + readonly isSetKeys: boolean; + readonly asSetKeys: { + readonly keys_: StorageHubRuntimeSessionKeys; + readonly proof: Bytes; + } & Struct; + readonly isPurgeKeys: boolean; + readonly type: "SetKeys" | "PurgeKeys"; + } + /** @name StorageHubRuntimeSessionKeys (282) */ + interface StorageHubRuntimeSessionKeys extends Struct { + readonly aura: SpConsensusAuraSr25519AppSr25519Public; + } + /** @name SpConsensusAuraSr25519AppSr25519Public (283) */ + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} + /** @name CumulusPalletXcmpQueueCall (284) */ + interface CumulusPalletXcmpQueueCall extends Enum { + readonly isSuspendXcmExecution: boolean; + readonly isResumeXcmExecution: boolean; + readonly isUpdateSuspendThreshold: boolean; + readonly asUpdateSuspendThreshold: { + readonly new_: u32; + } & Struct; + readonly isUpdateDropThreshold: boolean; + readonly asUpdateDropThreshold: { + readonly new_: u32; + } & Struct; + readonly isUpdateResumeThreshold: boolean; + readonly asUpdateResumeThreshold: { + readonly new_: u32; + } & Struct; + readonly type: + | "SuspendXcmExecution" + | "ResumeXcmExecution" + | "UpdateSuspendThreshold" + | "UpdateDropThreshold" + | "UpdateResumeThreshold"; + } + /** @name PalletXcmCall (285) */ + interface PalletXcmCall extends Enum { + readonly isSend: boolean; + readonly asSend: { + readonly dest: XcmVersionedLocation; + readonly message: XcmVersionedXcm; + } & Struct; + readonly isTeleportAssets: boolean; + readonly asTeleportAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + } & Struct; + readonly isReserveTransferAssets: boolean; + readonly asReserveTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + } & Struct; + readonly isExecute: boolean; + readonly asExecute: { + readonly message: XcmVersionedXcm; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isForceXcmVersion: boolean; + readonly asForceXcmVersion: { + readonly location: StagingXcmV4Location; + readonly version: u32; + } & Struct; + readonly isForceDefaultXcmVersion: boolean; + readonly asForceDefaultXcmVersion: { + readonly maybeXcmVersion: Option; + } & Struct; + readonly isForceSubscribeVersionNotify: boolean; + readonly asForceSubscribeVersionNotify: { + readonly location: XcmVersionedLocation; + } & Struct; + readonly isForceUnsubscribeVersionNotify: boolean; + readonly asForceUnsubscribeVersionNotify: { + readonly location: XcmVersionedLocation; + } & Struct; + readonly isLimitedReserveTransferAssets: boolean; + readonly asLimitedReserveTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isLimitedTeleportAssets: boolean; + readonly asLimitedTeleportAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isForceSuspension: boolean; + readonly asForceSuspension: { + readonly suspended: bool; + } & Struct; + readonly isTransferAssets: boolean; + readonly asTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isClaimAssets: boolean; + readonly asClaimAssets: { + readonly assets: XcmVersionedAssets; + readonly beneficiary: XcmVersionedLocation; + } & Struct; + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { + readonly dest: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly type: + | "Send" + | "TeleportAssets" + | "ReserveTransferAssets" + | "Execute" + | "ForceXcmVersion" + | "ForceDefaultXcmVersion" + | "ForceSubscribeVersionNotify" + | "ForceUnsubscribeVersionNotify" + | "LimitedReserveTransferAssets" + | "LimitedTeleportAssets" + | "ForceSuspension" + | "TransferAssets" + | "ClaimAssets" + | "TransferAssetsUsingTypeAndThen"; + } + /** @name XcmVersionedXcm (286) */ + interface XcmVersionedXcm extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2Xcm; + readonly isV3: boolean; + readonly asV3: XcmV3Xcm; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Xcm; + readonly type: "V2" | "V3" | "V4"; + } + /** @name XcmV2Xcm (287) */ + interface XcmV2Xcm extends Vec {} + /** @name XcmV2Instruction (289) */ + interface XcmV2Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: XcmV2MultiassetMultiAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: XcmV2MultiassetMultiAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: XcmV2Response; + readonly maxWeight: Compact; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: XcmV2MultiassetMultiAssets; + readonly beneficiary: XcmV2MultiLocation; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: XcmV2MultiassetMultiAssets; + readonly dest: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originType: XcmV2OriginKind; + readonly requireWeightAtMost: Compact; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: XcmV2MultilocationJunctions; + readonly isReportError: boolean; + readonly asReportError: { + readonly queryId: Compact; + readonly dest: XcmV2MultiLocation; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly maxAssets: Compact; + readonly beneficiary: XcmV2MultiLocation; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly maxAssets: Compact; + readonly dest: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: XcmV2MultiassetMultiAssetFilter; + readonly receive: XcmV2MultiassetMultiAssets; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly reserve: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly dest: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isQueryHolding: boolean; + readonly asQueryHolding: { + readonly queryId: Compact; + readonly dest: XcmV2MultiLocation; + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: XcmV2MultiAsset; + readonly weightLimit: XcmV2WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV2Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV2Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: XcmV2MultiassetMultiAssets; + readonly ticket: XcmV2MultiLocation; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly type: + | "WithdrawAsset" + | "ReserveAssetDeposited" + | "ReceiveTeleportedAsset" + | "QueryResponse" + | "TransferAsset" + | "TransferReserveAsset" + | "Transact" + | "HrmpNewChannelOpenRequest" + | "HrmpChannelAccepted" + | "HrmpChannelClosing" + | "ClearOrigin" + | "DescendOrigin" + | "ReportError" + | "DepositAsset" + | "DepositReserveAsset" + | "ExchangeAsset" + | "InitiateReserveWithdraw" + | "InitiateTeleport" + | "QueryHolding" + | "BuyExecution" + | "RefundSurplus" + | "SetErrorHandler" + | "SetAppendix" + | "ClearError" + | "ClaimAsset" + | "Trap" + | "SubscribeVersion" + | "UnsubscribeVersion"; + } + /** @name XcmV2Response (290) */ + interface XcmV2Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: XcmV2MultiassetMultiAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; + } + /** @name XcmV2TraitsError (293) */ + interface XcmV2TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isMultiLocationFull: boolean; + readonly isMultiLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: u64; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly type: + | "Overflow" + | "Unimplemented" + | "UntrustedReserveLocation" + | "UntrustedTeleportLocation" + | "MultiLocationFull" + | "MultiLocationNotInvertible" + | "BadOrigin" + | "InvalidLocation" + | "AssetNotFound" + | "FailedToTransactAsset" + | "NotWithdrawable" + | "LocationCannotHold" + | "ExceedsMaxMessageSize" + | "DestinationUnsupported" + | "Transport" + | "Unroutable" + | "UnknownClaim" + | "FailedToDecode" + | "MaxWeightInvalid" + | "NotHoldingFees" + | "TooExpensive" + | "Trap" + | "UnhandledXcmVersion" + | "WeightLimitReached" + | "Barrier" + | "WeightNotComputable"; + } + /** @name XcmV2OriginKind (294) */ + interface XcmV2OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; + } + /** @name XcmV2MultiassetMultiAssetFilter (295) */ + interface XcmV2MultiassetMultiAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: XcmV2MultiassetMultiAssets; + readonly isWild: boolean; + readonly asWild: XcmV2MultiassetWildMultiAsset; + readonly type: "Definite" | "Wild"; + } + /** @name XcmV2MultiassetWildMultiAsset (296) */ + interface XcmV2MultiassetWildMultiAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmV2MultiassetAssetId; + readonly fun: XcmV2MultiassetWildFungibility; + } & Struct; + readonly type: "All" | "AllOf"; + } + /** @name XcmV2MultiassetWildFungibility (297) */ + interface XcmV2MultiassetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: "Fungible" | "NonFungible"; + } + /** @name XcmV2WeightLimit (298) */ + interface XcmV2WeightLimit extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: Compact; + readonly type: "Unlimited" | "Limited"; + } + /** @name XcmV3Xcm (299) */ + interface XcmV3Xcm extends Vec {} + /** @name XcmV3Instruction (301) */ + interface XcmV3Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: XcmV3Response; + readonly maxWeight: SpWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly beneficiary: StagingXcmV3MultiLocation; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly requireWeightAtMost: SpWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: XcmV3Junctions; + readonly isReportError: boolean; + readonly asReportError: XcmV3QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly beneficiary: StagingXcmV3MultiLocation; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: XcmV3MultiassetMultiAssetFilter; + readonly want: XcmV3MultiassetMultiAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly reserve: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: XcmV3QueryResponseInfo; + readonly assets: XcmV3MultiassetMultiAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: XcmV3MultiAsset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV3Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV3Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly ticket: StagingXcmV3MultiLocation; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: XcmV3MultiassetMultiAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: XcmV3MultiassetMultiAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: XcmV3QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: XcmV3QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: XcmV3Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: XcmV3JunctionNetworkId; + readonly destination: XcmV3Junctions; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: XcmV3MultiAsset; + readonly unlocker: StagingXcmV3MultiLocation; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: XcmV3MultiAsset; + readonly target: StagingXcmV3MultiLocation; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: XcmV3MultiAsset; + readonly owner: StagingXcmV3MultiLocation; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: XcmV3MultiAsset; + readonly locker: StagingXcmV3MultiLocation; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV3MultiLocation; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: + | "WithdrawAsset" + | "ReserveAssetDeposited" + | "ReceiveTeleportedAsset" + | "QueryResponse" + | "TransferAsset" + | "TransferReserveAsset" + | "Transact" + | "HrmpNewChannelOpenRequest" + | "HrmpChannelAccepted" + | "HrmpChannelClosing" + | "ClearOrigin" + | "DescendOrigin" + | "ReportError" + | "DepositAsset" + | "DepositReserveAsset" + | "ExchangeAsset" + | "InitiateReserveWithdraw" + | "InitiateTeleport" + | "ReportHolding" + | "BuyExecution" + | "RefundSurplus" + | "SetErrorHandler" + | "SetAppendix" + | "ClearError" + | "ClaimAsset" + | "Trap" + | "SubscribeVersion" + | "UnsubscribeVersion" + | "BurnAsset" + | "ExpectAsset" + | "ExpectOrigin" + | "ExpectError" + | "ExpectTransactStatus" + | "QueryPallet" + | "ExpectPallet" + | "ReportTransactStatus" + | "ClearTransactStatus" + | "UniversalOrigin" + | "ExportMessage" + | "LockAsset" + | "UnlockAsset" + | "NoteUnlockable" + | "RequestUnlock" + | "SetFeesMode" + | "SetTopic" + | "ClearTopic" + | "AliasOrigin" + | "UnpaidExecution"; + } + /** @name XcmV3Response (302) */ + interface XcmV3Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: XcmV3MultiassetMultiAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: + | "Null" + | "Assets" + | "ExecutionResult" + | "Version" + | "PalletsInfo" + | "DispatchResult"; + } + /** @name XcmV3PalletInfo (304) */ + interface XcmV3PalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + /** @name XcmV3QueryResponseInfo (308) */ + interface XcmV3QueryResponseInfo extends Struct { + readonly destination: StagingXcmV3MultiLocation; + readonly queryId: Compact; + readonly maxWeight: SpWeightsWeightV2Weight; + } + /** @name XcmV3MultiassetMultiAssetFilter (309) */ + interface XcmV3MultiassetMultiAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: XcmV3MultiassetMultiAssets; + readonly isWild: boolean; + readonly asWild: XcmV3MultiassetWildMultiAsset; + readonly type: "Definite" | "Wild"; + } + /** @name XcmV3MultiassetWildMultiAsset (310) */ + interface XcmV3MultiassetWildMultiAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; + } + /** @name XcmV3MultiassetWildFungibility (311) */ + interface XcmV3MultiassetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: "Fungible" | "NonFungible"; + } + /** @name StagingXcmExecutorAssetTransferTransferType (323) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; + } + /** @name XcmVersionedAssetId (324) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly type: "V3" | "V4"; + } + /** @name CumulusPalletXcmCall (325) */ + type CumulusPalletXcmCall = Null; + /** @name PalletMessageQueueCall (326) */ + interface PalletMessageQueueCall extends Enum { + readonly isReapPage: boolean; + readonly asReapPage: { + readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly pageIndex: u32; + } & Struct; + readonly isExecuteOverweight: boolean; + readonly asExecuteOverweight: { + readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly page: u32; + readonly index: u32; + readonly weightLimit: SpWeightsWeightV2Weight; + } & Struct; + readonly type: "ReapPage" | "ExecuteOverweight"; + } + /** @name PalletStorageProvidersCall (327) */ + interface PalletStorageProvidersCall extends Enum { + readonly isRequestMspSignUp: boolean; + readonly asRequestMspSignUp: { + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly valueProp: PalletStorageProvidersValueProposition; + readonly paymentAccount: AccountId32; + } & Struct; + readonly isRequestBspSignUp: boolean; + readonly asRequestBspSignUp: { + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly paymentAccount: AccountId32; + } & Struct; + readonly isConfirmSignUp: boolean; + readonly asConfirmSignUp: { + readonly providerAccount: Option; + } & Struct; + readonly isCancelSignUp: boolean; + readonly isMspSignOff: boolean; + readonly isBspSignOff: boolean; + readonly isChangeCapacity: boolean; + readonly asChangeCapacity: { + readonly newCapacity: u64; + } & Struct; + readonly isAddValueProp: boolean; + readonly asAddValueProp: { + readonly newValueProp: PalletStorageProvidersValueProposition; + } & Struct; + readonly isForceMspSignUp: boolean; + readonly asForceMspSignUp: { + readonly who: AccountId32; + readonly mspId: H256; + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly valueProp: PalletStorageProvidersValueProposition; + readonly paymentAccount: AccountId32; + } & Struct; + readonly isForceBspSignUp: boolean; + readonly asForceBspSignUp: { + readonly who: AccountId32; + readonly bspId: H256; + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly paymentAccount: AccountId32; + readonly weight: Option; + } & Struct; + readonly isSlash: boolean; + readonly asSlash: { + readonly providerId: H256; + } & Struct; + readonly type: + | "RequestMspSignUp" + | "RequestBspSignUp" + | "ConfirmSignUp" + | "CancelSignUp" + | "MspSignOff" + | "BspSignOff" + | "ChangeCapacity" + | "AddValueProp" + | "ForceMspSignUp" + | "ForceBspSignUp" + | "Slash"; + } + /** @name PalletFileSystemCall (328) */ + interface PalletFileSystemCall extends Enum { + readonly isCreateBucket: boolean; + readonly asCreateBucket: { + readonly mspId: H256; + readonly name: Bytes; + readonly private: bool; + } & Struct; + readonly isRequestMoveBucket: boolean; + readonly asRequestMoveBucket: { + readonly bucketId: H256; + readonly newMspId: H256; + } & Struct; + readonly isMspRespondMoveBucketRequest: boolean; + readonly asMspRespondMoveBucketRequest: { + readonly bucketId: H256; + readonly response: PalletFileSystemBucketMoveRequestResponse; + } & Struct; + readonly isUpdateBucketPrivacy: boolean; + readonly asUpdateBucketPrivacy: { + readonly bucketId: H256; + readonly private: bool; + } & Struct; + readonly isCreateAndAssociateCollectionWithBucket: boolean; + readonly asCreateAndAssociateCollectionWithBucket: { + readonly bucketId: H256; + } & Struct; + readonly isIssueStorageRequest: boolean; + readonly asIssueStorageRequest: { + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly size_: u64; + readonly mspId: H256; + readonly peerIds: Vec; + } & Struct; + readonly isRevokeStorageRequest: boolean; + readonly asRevokeStorageRequest: { + readonly fileKey: H256; + } & Struct; + readonly isBspAddDataServerForMoveBucketRequest: boolean; + readonly asBspAddDataServerForMoveBucketRequest: { + readonly bucketId: H256; + } & Struct; + readonly isMspRespondStorageRequestsMultipleBuckets: boolean; + readonly asMspRespondStorageRequestsMultipleBuckets: { + readonly fileKeyResponsesInput: Vec< + ITuple<[H256, PalletFileSystemMspStorageRequestResponse]> + >; + } & Struct; + readonly isBspVolunteer: boolean; + readonly asBspVolunteer: { + readonly fileKey: H256; + } & Struct; + readonly isBspConfirmStoring: boolean; + readonly asBspConfirmStoring: { + readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; + readonly fileKeysAndProofs: Vec>; + } & Struct; + readonly isBspRequestStopStoring: boolean; + readonly asBspRequestStopStoring: { + readonly fileKey: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly owner: AccountId32; + readonly fingerprint: H256; + readonly size_: u64; + readonly canServe: bool; + readonly inclusionForestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isBspConfirmStopStoring: boolean; + readonly asBspConfirmStopStoring: { + readonly fileKey: H256; + readonly inclusionForestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isStopStoringForInsolventUser: boolean; + readonly asStopStoringForInsolventUser: { + readonly fileKey: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly owner: AccountId32; + readonly fingerprint: H256; + readonly size_: u64; + readonly inclusionForestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isDeleteFile: boolean; + readonly asDeleteFile: { + readonly bucketId: H256; + readonly fileKey: H256; + readonly location: Bytes; + readonly size_: u64; + readonly fingerprint: H256; + readonly maybeInclusionForestProof: Option; + } & Struct; + readonly isPendingFileDeletionRequestSubmitProof: boolean; + readonly asPendingFileDeletionRequestSubmitProof: { + readonly user: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly forestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isSetGlobalParameters: boolean; + readonly asSetGlobalParameters: { + readonly replicationTarget: Option; + readonly tickRangeToMaximumThreshold: Option; + } & Struct; + readonly type: + | "CreateBucket" + | "RequestMoveBucket" + | "MspRespondMoveBucketRequest" + | "UpdateBucketPrivacy" + | "CreateAndAssociateCollectionWithBucket" + | "IssueStorageRequest" + | "RevokeStorageRequest" + | "BspAddDataServerForMoveBucketRequest" + | "MspRespondStorageRequestsMultipleBuckets" + | "BspVolunteer" + | "BspConfirmStoring" + | "BspRequestStopStoring" + | "BspConfirmStopStoring" + | "StopStoringForInsolventUser" + | "DeleteFile" + | "PendingFileDeletionRequestSubmitProof" + | "SetGlobalParameters"; + } + /** @name PalletFileSystemBucketMoveRequestResponse (329) */ + interface PalletFileSystemBucketMoveRequestResponse extends Enum { + readonly isAccepted: boolean; + readonly isRejected: boolean; + readonly type: "Accepted" | "Rejected"; + } + /** @name PalletFileSystemMspStorageRequestResponse (332) */ + interface PalletFileSystemMspStorageRequestResponse extends Struct { + readonly accept: Option; + readonly reject: Option>>; + } + /** @name PalletFileSystemAcceptedStorageRequestParameters (334) */ + interface PalletFileSystemAcceptedStorageRequestParameters extends Struct { + readonly fileKeysAndProofs: Vec>; + readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; + } + /** @name PalletProofsDealerCall (341) */ + interface PalletProofsDealerCall extends Enum { + readonly isChallenge: boolean; + readonly asChallenge: { + readonly key: H256; + } & Struct; + readonly isSubmitProof: boolean; + readonly asSubmitProof: { + readonly proof: PalletProofsDealerProof; + readonly provider: Option; + } & Struct; + readonly isForceInitialiseChallengeCycle: boolean; + readonly asForceInitialiseChallengeCycle: { + readonly provider: H256; + } & Struct; + readonly isSetPaused: boolean; + readonly asSetPaused: { + readonly paused: bool; + } & Struct; + readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; + } + /** @name PalletRandomnessCall (342) */ + interface PalletRandomnessCall extends Enum { + readonly isSetBabeRandomness: boolean; + readonly type: "SetBabeRandomness"; + } + /** @name PalletPaymentStreamsCall (343) */ + interface PalletPaymentStreamsCall extends Enum { + readonly isCreateFixedRatePaymentStream: boolean; + readonly asCreateFixedRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly rate: u128; + } & Struct; + readonly isUpdateFixedRatePaymentStream: boolean; + readonly asUpdateFixedRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly newRate: u128; + } & Struct; + readonly isDeleteFixedRatePaymentStream: boolean; + readonly asDeleteFixedRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + } & Struct; + readonly isCreateDynamicRatePaymentStream: boolean; + readonly asCreateDynamicRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly amountProvided: u64; + } & Struct; + readonly isUpdateDynamicRatePaymentStream: boolean; + readonly asUpdateDynamicRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly newAmountProvided: u64; + } & Struct; + readonly isDeleteDynamicRatePaymentStream: boolean; + readonly asDeleteDynamicRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + } & Struct; + readonly isChargePaymentStreams: boolean; + readonly asChargePaymentStreams: { + readonly userAccount: AccountId32; + } & Struct; + readonly isPayOutstandingDebt: boolean; + readonly isClearInsolventFlag: boolean; + readonly type: + | "CreateFixedRatePaymentStream" + | "UpdateFixedRatePaymentStream" + | "DeleteFixedRatePaymentStream" + | "CreateDynamicRatePaymentStream" + | "UpdateDynamicRatePaymentStream" + | "DeleteDynamicRatePaymentStream" + | "ChargePaymentStreams" + | "PayOutstandingDebt" + | "ClearInsolventFlag"; + } + /** @name PalletBucketNftsCall (344) */ + interface PalletBucketNftsCall extends Enum { + readonly isShareAccess: boolean; + readonly asShareAccess: { + readonly recipient: MultiAddress; + readonly bucket: H256; + readonly itemId: u32; + readonly readAccessRegex: Option; + } & Struct; + readonly isUpdateReadAccess: boolean; + readonly asUpdateReadAccess: { + readonly bucket: H256; + readonly itemId: u32; + readonly readAccessRegex: Option; + } & Struct; + readonly type: "ShareAccess" | "UpdateReadAccess"; + } + /** @name PalletNftsCall (346) */ + interface PalletNftsCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly admin: MultiAddress; + readonly config: PalletNftsCollectionConfig; + } & Struct; + readonly isForceCreate: boolean; + readonly asForceCreate: { + readonly owner: MultiAddress; + readonly config: PalletNftsCollectionConfig; + } & Struct; + readonly isDestroy: boolean; + readonly asDestroy: { + readonly collection: u32; + readonly witness: PalletNftsDestroyWitness; + } & Struct; + readonly isMint: boolean; + readonly asMint: { + readonly collection: u32; + readonly item: u32; + readonly mintTo: MultiAddress; + readonly witnessData: Option; + } & Struct; + readonly isForceMint: boolean; + readonly asForceMint: { + readonly collection: u32; + readonly item: u32; + readonly mintTo: MultiAddress; + readonly itemConfig: PalletNftsItemConfig; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly collection: u32; + readonly item: u32; + readonly dest: MultiAddress; + } & Struct; + readonly isRedeposit: boolean; + readonly asRedeposit: { + readonly collection: u32; + readonly items: Vec; + } & Struct; + readonly isLockItemTransfer: boolean; + readonly asLockItemTransfer: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isUnlockItemTransfer: boolean; + readonly asUnlockItemTransfer: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isLockCollection: boolean; + readonly asLockCollection: { + readonly collection: u32; + readonly lockSettings: u64; + } & Struct; + readonly isTransferOwnership: boolean; + readonly asTransferOwnership: { + readonly collection: u32; + readonly newOwner: MultiAddress; + } & Struct; + readonly isSetTeam: boolean; + readonly asSetTeam: { + readonly collection: u32; + readonly issuer: Option; + readonly admin: Option; + readonly freezer: Option; + } & Struct; + readonly isForceCollectionOwner: boolean; + readonly asForceCollectionOwner: { + readonly collection: u32; + readonly owner: MultiAddress; + } & Struct; + readonly isForceCollectionConfig: boolean; + readonly asForceCollectionConfig: { + readonly collection: u32; + readonly config: PalletNftsCollectionConfig; + } & Struct; + readonly isApproveTransfer: boolean; + readonly asApproveTransfer: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + readonly maybeDeadline: Option; + } & Struct; + readonly isCancelApproval: boolean; + readonly asCancelApproval: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isClearAllTransferApprovals: boolean; + readonly asClearAllTransferApprovals: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isLockItemProperties: boolean; + readonly asLockItemProperties: { + readonly collection: u32; + readonly item: u32; + readonly lockMetadata: bool; + readonly lockAttributes: bool; + } & Struct; + readonly isSetAttribute: boolean; + readonly asSetAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PalletNftsAttributeNamespace; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isForceSetAttribute: boolean; + readonly asForceSetAttribute: { + readonly setAs: Option; + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PalletNftsAttributeNamespace; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isClearAttribute: boolean; + readonly asClearAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PalletNftsAttributeNamespace; + readonly key: Bytes; + } & Struct; + readonly isApproveItemAttributes: boolean; + readonly asApproveItemAttributes: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isCancelItemAttributesApproval: boolean; + readonly asCancelItemAttributesApproval: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + readonly witness: PalletNftsCancelAttributesApprovalWitness; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + } & Struct; + readonly isClearMetadata: boolean; + readonly asClearMetadata: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isSetCollectionMetadata: boolean; + readonly asSetCollectionMetadata: { + readonly collection: u32; + readonly data: Bytes; + } & Struct; + readonly isClearCollectionMetadata: boolean; + readonly asClearCollectionMetadata: { + readonly collection: u32; + } & Struct; + readonly isSetAcceptOwnership: boolean; + readonly asSetAcceptOwnership: { + readonly maybeCollection: Option; + } & Struct; + readonly isSetCollectionMaxSupply: boolean; + readonly asSetCollectionMaxSupply: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isUpdateMintSettings: boolean; + readonly asUpdateMintSettings: { + readonly collection: u32; + readonly mintSettings: PalletNftsMintSettings; + } & Struct; + readonly isSetPrice: boolean; + readonly asSetPrice: { + readonly collection: u32; + readonly item: u32; + readonly price: Option; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isBuyItem: boolean; + readonly asBuyItem: { + readonly collection: u32; + readonly item: u32; + readonly bidPrice: u128; + } & Struct; + readonly isPayTips: boolean; + readonly asPayTips: { + readonly tips: Vec; + } & Struct; + readonly isCreateSwap: boolean; + readonly asCreateSwap: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly maybeDesiredItem: Option; + readonly maybePrice: Option; + readonly duration: u32; + } & Struct; + readonly isCancelSwap: boolean; + readonly asCancelSwap: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + } & Struct; + readonly isClaimSwap: boolean; + readonly asClaimSwap: { + readonly sendCollection: u32; + readonly sendItem: u32; + readonly receiveCollection: u32; + readonly receiveItem: u32; + readonly witnessPrice: Option; + } & Struct; + readonly isMintPreSigned: boolean; + readonly asMintPreSigned: { + readonly mintData: PalletNftsPreSignedMint; + readonly signature: SpRuntimeMultiSignature; + readonly signer: AccountId32; + } & Struct; + readonly isSetAttributesPreSigned: boolean; + readonly asSetAttributesPreSigned: { + readonly data: PalletNftsPreSignedAttributes; + readonly signature: SpRuntimeMultiSignature; + readonly signer: AccountId32; + } & Struct; + readonly type: + | "Create" + | "ForceCreate" + | "Destroy" + | "Mint" + | "ForceMint" + | "Burn" + | "Transfer" + | "Redeposit" + | "LockItemTransfer" + | "UnlockItemTransfer" + | "LockCollection" + | "TransferOwnership" + | "SetTeam" + | "ForceCollectionOwner" + | "ForceCollectionConfig" + | "ApproveTransfer" + | "CancelApproval" + | "ClearAllTransferApprovals" + | "LockItemProperties" + | "SetAttribute" + | "ForceSetAttribute" + | "ClearAttribute" + | "ApproveItemAttributes" + | "CancelItemAttributesApproval" + | "SetMetadata" + | "ClearMetadata" + | "SetCollectionMetadata" + | "ClearCollectionMetadata" + | "SetAcceptOwnership" + | "SetCollectionMaxSupply" + | "UpdateMintSettings" + | "SetPrice" + | "BuyItem" + | "PayTips" + | "CreateSwap" + | "CancelSwap" + | "ClaimSwap" + | "MintPreSigned" + | "SetAttributesPreSigned"; + } + /** @name PalletNftsCollectionConfig (347) */ + interface PalletNftsCollectionConfig extends Struct { + readonly settings: u64; + readonly maxSupply: Option; + readonly mintSettings: PalletNftsMintSettings; + } + /** @name PalletNftsCollectionSetting (349) */ + interface PalletNftsCollectionSetting extends Enum { + readonly isTransferableItems: boolean; + readonly isUnlockedMetadata: boolean; + readonly isUnlockedAttributes: boolean; + readonly isUnlockedMaxSupply: boolean; + readonly isDepositRequired: boolean; + readonly type: + | "TransferableItems" + | "UnlockedMetadata" + | "UnlockedAttributes" + | "UnlockedMaxSupply" + | "DepositRequired"; + } + /** @name PalletNftsMintSettings (350) */ + interface PalletNftsMintSettings extends Struct { + readonly mintType: PalletNftsMintType; + readonly price: Option; + readonly startBlock: Option; + readonly endBlock: Option; + readonly defaultItemSettings: u64; + } + /** @name PalletNftsMintType (351) */ + interface PalletNftsMintType extends Enum { + readonly isIssuer: boolean; + readonly isPublic: boolean; + readonly isHolderOf: boolean; + readonly asHolderOf: u32; + readonly type: "Issuer" | "Public" | "HolderOf"; + } + /** @name PalletNftsItemSetting (354) */ + interface PalletNftsItemSetting extends Enum { + readonly isTransferable: boolean; + readonly isUnlockedMetadata: boolean; + readonly isUnlockedAttributes: boolean; + readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; + } + /** @name PalletNftsDestroyWitness (355) */ + interface PalletNftsDestroyWitness extends Struct { + readonly itemMetadatas: Compact; + readonly itemConfigs: Compact; + readonly attributes: Compact; + } + /** @name PalletNftsMintWitness (357) */ + interface PalletNftsMintWitness extends Struct { + readonly ownedItem: Option; + readonly mintPrice: Option; + } + /** @name PalletNftsItemConfig (358) */ + interface PalletNftsItemConfig extends Struct { + readonly settings: u64; + } + /** @name PalletNftsCancelAttributesApprovalWitness (360) */ + interface PalletNftsCancelAttributesApprovalWitness extends Struct { + readonly accountAttributes: u32; + } + /** @name PalletNftsItemTip (362) */ + interface PalletNftsItemTip extends Struct { + readonly collection: u32; + readonly item: u32; + readonly receiver: AccountId32; + readonly amount: u128; + } + /** @name PalletNftsPreSignedMint (364) */ + interface PalletNftsPreSignedMint extends Struct { + readonly collection: u32; + readonly item: u32; + readonly attributes: Vec>; + readonly metadata: Bytes; + readonly onlyAccount: Option; + readonly deadline: u32; + readonly mintPrice: Option; + } + /** @name SpRuntimeMultiSignature (365) */ + interface SpRuntimeMultiSignature extends Enum { + readonly isEd25519: boolean; + readonly asEd25519: U8aFixed; + readonly isSr25519: boolean; + readonly asSr25519: U8aFixed; + readonly isEcdsa: boolean; + readonly asEcdsa: U8aFixed; + readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; + } + /** @name PalletNftsPreSignedAttributes (368) */ + interface PalletNftsPreSignedAttributes extends Struct { + readonly collection: u32; + readonly item: u32; + readonly attributes: Vec>; + readonly namespace: PalletNftsAttributeNamespace; + readonly deadline: u32; + } + /** @name PalletParametersCall (369) */ + interface PalletParametersCall extends Enum { + readonly isSetParameter: boolean; + readonly asSetParameter: { + readonly keyValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; + } & Struct; + readonly type: "SetParameter"; + } + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (370) */ + interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters extends Enum { + readonly isRuntimeConfig: boolean; + readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; + readonly type: "RuntimeConfig"; + } + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (371) */ + interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters extends Enum { + readonly isSlashAmountPerMaxFileSize: boolean; + readonly asSlashAmountPerMaxFileSize: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, + Option + ] + >; + readonly isStakeToChallengePeriod: boolean; + readonly asStakeToChallengePeriod: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, + Option + ] + >; + readonly isCheckpointChallengePeriod: boolean; + readonly asCheckpointChallengePeriod: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, + Option + ] + >; + readonly isMinChallengePeriod: boolean; + readonly asMinChallengePeriod: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, + Option + ] + >; + readonly type: + | "SlashAmountPerMaxFileSize" + | "StakeToChallengePeriod" + | "CheckpointChallengePeriod" + | "MinChallengePeriod"; + } + /** @name PalletSudoError (372) */ + interface PalletSudoError extends Enum { + readonly isRequireSudo: boolean; + readonly type: "RequireSudo"; + } + /** @name PalletCollatorSelectionCandidateInfo (375) */ + interface PalletCollatorSelectionCandidateInfo extends Struct { + readonly who: AccountId32; + readonly deposit: u128; + } + /** @name PalletCollatorSelectionError (377) */ + interface PalletCollatorSelectionError extends Enum { + readonly isTooManyCandidates: boolean; + readonly isTooFewEligibleCollators: boolean; + readonly isAlreadyCandidate: boolean; + readonly isNotCandidate: boolean; + readonly isTooManyInvulnerables: boolean; + readonly isAlreadyInvulnerable: boolean; + readonly isNotInvulnerable: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isValidatorNotRegistered: boolean; + readonly isInsertToCandidateListFailed: boolean; + readonly isRemoveFromCandidateListFailed: boolean; + readonly isDepositTooLow: boolean; + readonly isUpdateCandidateListFailed: boolean; + readonly isInsufficientBond: boolean; + readonly isTargetIsNotCandidate: boolean; + readonly isIdenticalDeposit: boolean; + readonly isInvalidUnreserve: boolean; + readonly type: + | "TooManyCandidates" + | "TooFewEligibleCollators" + | "AlreadyCandidate" + | "NotCandidate" + | "TooManyInvulnerables" + | "AlreadyInvulnerable" + | "NotInvulnerable" + | "NoAssociatedValidatorId" + | "ValidatorNotRegistered" + | "InsertToCandidateListFailed" + | "RemoveFromCandidateListFailed" + | "DepositTooLow" + | "UpdateCandidateListFailed" + | "InsufficientBond" + | "TargetIsNotCandidate" + | "IdenticalDeposit" + | "InvalidUnreserve"; + } + /** @name SpCoreCryptoKeyTypeId (381) */ + interface SpCoreCryptoKeyTypeId extends U8aFixed {} + /** @name PalletSessionError (382) */ + interface PalletSessionError extends Enum { + readonly isInvalidProof: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isDuplicatedKey: boolean; + readonly isNoKeys: boolean; + readonly isNoAccount: boolean; + readonly type: + | "InvalidProof" + | "NoAssociatedValidatorId" + | "DuplicatedKey" + | "NoKeys" + | "NoAccount"; + } + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (391) */ + interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { + readonly recipient: u32; + readonly state: CumulusPalletXcmpQueueOutboundState; + readonly signalsExist: bool; + readonly firstIndex: u16; + readonly lastIndex: u16; + } + /** @name CumulusPalletXcmpQueueOutboundState (392) */ + interface CumulusPalletXcmpQueueOutboundState extends Enum { + readonly isOk: boolean; + readonly isSuspended: boolean; + readonly type: "Ok" | "Suspended"; + } + /** @name CumulusPalletXcmpQueueQueueConfigData (396) */ + interface CumulusPalletXcmpQueueQueueConfigData extends Struct { + readonly suspendThreshold: u32; + readonly dropThreshold: u32; + readonly resumeThreshold: u32; + } + /** @name CumulusPalletXcmpQueueError (397) */ + interface CumulusPalletXcmpQueueError extends Enum { + readonly isBadQueueConfig: boolean; + readonly isAlreadySuspended: boolean; + readonly isAlreadyResumed: boolean; + readonly isTooManyActiveOutboundChannels: boolean; + readonly isTooBig: boolean; + readonly type: + | "BadQueueConfig" + | "AlreadySuspended" + | "AlreadyResumed" + | "TooManyActiveOutboundChannels" + | "TooBig"; + } + /** @name PalletXcmQueryStatus (398) */ + interface PalletXcmQueryStatus extends Enum { + readonly isPending: boolean; + readonly asPending: { + readonly responder: XcmVersionedLocation; + readonly maybeMatchQuerier: Option; + readonly maybeNotify: Option>; + readonly timeout: u32; + } & Struct; + readonly isVersionNotifier: boolean; + readonly asVersionNotifier: { + readonly origin: XcmVersionedLocation; + readonly isActive: bool; + } & Struct; + readonly isReady: boolean; + readonly asReady: { + readonly response: XcmVersionedResponse; + readonly at: u32; + } & Struct; + readonly type: "Pending" | "VersionNotifier" | "Ready"; + } + /** @name XcmVersionedResponse (402) */ + interface XcmVersionedResponse extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2Response; + readonly isV3: boolean; + readonly asV3: XcmV3Response; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Response; + readonly type: "V2" | "V3" | "V4"; + } + /** @name PalletXcmVersionMigrationStage (408) */ + interface PalletXcmVersionMigrationStage extends Enum { + readonly isMigrateSupportedVersion: boolean; + readonly isMigrateVersionNotifiers: boolean; + readonly isNotifyCurrentTargets: boolean; + readonly asNotifyCurrentTargets: Option; + readonly isMigrateAndNotifyOldTargets: boolean; + readonly type: + | "MigrateSupportedVersion" + | "MigrateVersionNotifiers" + | "NotifyCurrentTargets" + | "MigrateAndNotifyOldTargets"; + } + /** @name PalletXcmRemoteLockedFungibleRecord (411) */ + interface PalletXcmRemoteLockedFungibleRecord extends Struct { + readonly amount: u128; + readonly owner: XcmVersionedLocation; + readonly locker: XcmVersionedLocation; + readonly consumers: Vec>; + } + /** @name PalletXcmError (418) */ + interface PalletXcmError extends Enum { + readonly isUnreachable: boolean; + readonly isSendFailure: boolean; + readonly isFiltered: boolean; + readonly isUnweighableMessage: boolean; + readonly isDestinationNotInvertible: boolean; + readonly isEmpty: boolean; + readonly isCannotReanchor: boolean; + readonly isTooManyAssets: boolean; + readonly isInvalidOrigin: boolean; + readonly isBadVersion: boolean; + readonly isBadLocation: boolean; + readonly isNoSubscription: boolean; + readonly isAlreadySubscribed: boolean; + readonly isCannotCheckOutTeleport: boolean; + readonly isLowBalance: boolean; + readonly isTooManyLocks: boolean; + readonly isAccountNotSovereign: boolean; + readonly isFeesNotMet: boolean; + readonly isLockNotFound: boolean; + readonly isInUse: boolean; + readonly isInvalidAssetUnknownReserve: boolean; + readonly isInvalidAssetUnsupportedReserve: boolean; + readonly isTooManyReserves: boolean; + readonly isLocalExecutionIncomplete: boolean; + readonly type: + | "Unreachable" + | "SendFailure" + | "Filtered" + | "UnweighableMessage" + | "DestinationNotInvertible" + | "Empty" + | "CannotReanchor" + | "TooManyAssets" + | "InvalidOrigin" + | "BadVersion" + | "BadLocation" + | "NoSubscription" + | "AlreadySubscribed" + | "CannotCheckOutTeleport" + | "LowBalance" + | "TooManyLocks" + | "AccountNotSovereign" + | "FeesNotMet" + | "LockNotFound" + | "InUse" + | "InvalidAssetUnknownReserve" + | "InvalidAssetUnsupportedReserve" + | "TooManyReserves" + | "LocalExecutionIncomplete"; + } + /** @name PalletMessageQueueBookState (419) */ + interface PalletMessageQueueBookState extends Struct { + readonly begin: u32; + readonly end: u32; + readonly count: u32; + readonly readyNeighbours: Option; + readonly messageCount: u64; + readonly size_: u64; + } + /** @name PalletMessageQueueNeighbours (421) */ + interface PalletMessageQueueNeighbours extends Struct { + readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; + } + /** @name PalletMessageQueuePage (423) */ + interface PalletMessageQueuePage extends Struct { + readonly remaining: u32; + readonly remainingSize: u32; + readonly firstIndex: u32; + readonly first: u32; + readonly last: u32; + readonly heap: Bytes; + } + /** @name PalletMessageQueueError (425) */ + interface PalletMessageQueueError extends Enum { + readonly isNotReapable: boolean; + readonly isNoPage: boolean; + readonly isNoMessage: boolean; + readonly isAlreadyProcessed: boolean; + readonly isQueued: boolean; + readonly isInsufficientWeight: boolean; + readonly isTemporarilyUnprocessable: boolean; + readonly isQueuePaused: boolean; + readonly isRecursiveDisallowed: boolean; + readonly type: + | "NotReapable" + | "NoPage" + | "NoMessage" + | "AlreadyProcessed" + | "Queued" + | "InsufficientWeight" + | "TemporarilyUnprocessable" + | "QueuePaused" + | "RecursiveDisallowed"; + } + /** @name PalletStorageProvidersStorageProvider (427) */ + interface PalletStorageProvidersStorageProvider extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; + } + /** @name PalletStorageProvidersBackupStorageProvider (428) */ + interface PalletStorageProvidersBackupStorageProvider extends Struct { + readonly capacity: u64; + readonly capacityUsed: u64; + readonly multiaddresses: Vec; + readonly root: H256; + readonly lastCapacityChange: u32; + readonly ownerAccount: AccountId32; + readonly paymentAccount: AccountId32; + readonly reputationWeight: u32; + } + /** @name PalletStorageProvidersMainStorageProvider (429) */ + interface PalletStorageProvidersMainStorageProvider extends Struct { + readonly buckets: Vec; + readonly capacity: u64; + readonly capacityUsed: u64; + readonly multiaddresses: Vec; + readonly valueProp: PalletStorageProvidersValueProposition; + readonly lastCapacityChange: u32; + readonly ownerAccount: AccountId32; + readonly paymentAccount: AccountId32; + } + /** @name PalletStorageProvidersBucket (431) */ + interface PalletStorageProvidersBucket extends Struct { + readonly root: H256; + readonly userId: AccountId32; + readonly mspId: H256; + readonly private: bool; + readonly readAccessGroupId: Option; + readonly size_: u64; + } + /** @name PalletStorageProvidersError (434) */ + interface PalletStorageProvidersError extends Enum { + readonly isAlreadyRegistered: boolean; + readonly isSignUpNotRequested: boolean; + readonly isSignUpRequestPending: boolean; + readonly isNoMultiAddress: boolean; + readonly isInvalidMultiAddress: boolean; + readonly isStorageTooLow: boolean; + readonly isNotEnoughBalance: boolean; + readonly isCannotHoldDeposit: boolean; + readonly isStorageStillInUse: boolean; + readonly isRandomnessNotValidYet: boolean; + readonly isSignUpRequestExpired: boolean; + readonly isNewCapacityLessThanUsedStorage: boolean; + readonly isNewCapacityEqualsCurrentCapacity: boolean; + readonly isNewCapacityCantBeZero: boolean; + readonly isNotEnoughTimePassed: boolean; + readonly isNewUsedCapacityExceedsStorageCapacity: boolean; + readonly isNotRegistered: boolean; + readonly isNoUserId: boolean; + readonly isNoBucketId: boolean; + readonly isSpRegisteredButDataNotFound: boolean; + readonly isBucketNotFound: boolean; + readonly isBucketAlreadyExists: boolean; + readonly isAppendBucketToMspFailed: boolean; + readonly isProviderNotSlashable: boolean; + readonly isInvalidEncodedFileMetadata: boolean; + readonly isInvalidEncodedAccountId: boolean; + readonly isPaymentStreamNotFound: boolean; + readonly type: + | "AlreadyRegistered" + | "SignUpNotRequested" + | "SignUpRequestPending" + | "NoMultiAddress" + | "InvalidMultiAddress" + | "StorageTooLow" + | "NotEnoughBalance" + | "CannotHoldDeposit" + | "StorageStillInUse" + | "RandomnessNotValidYet" + | "SignUpRequestExpired" + | "NewCapacityLessThanUsedStorage" + | "NewCapacityEqualsCurrentCapacity" + | "NewCapacityCantBeZero" + | "NotEnoughTimePassed" + | "NewUsedCapacityExceedsStorageCapacity" + | "NotRegistered" + | "NoUserId" + | "NoBucketId" + | "SpRegisteredButDataNotFound" + | "BucketNotFound" + | "BucketAlreadyExists" + | "AppendBucketToMspFailed" + | "ProviderNotSlashable" + | "InvalidEncodedFileMetadata" + | "InvalidEncodedAccountId" + | "PaymentStreamNotFound"; + } + /** @name PalletFileSystemStorageRequestMetadata (435) */ + interface PalletFileSystemStorageRequestMetadata extends Struct { + readonly requestedAt: u32; + readonly owner: AccountId32; + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly size_: u64; + readonly msp: Option>; + readonly userPeerIds: Vec; + readonly dataServerSps: Vec; + readonly bspsRequired: u32; + readonly bspsConfirmed: u32; + readonly bspsVolunteered: u32; + } + /** @name PalletFileSystemStorageRequestBspsMetadata (440) */ + interface PalletFileSystemStorageRequestBspsMetadata extends Struct { + readonly confirmed: bool; + } + /** @name PalletFileSystemMoveBucketRequestMetadata (449) */ + interface PalletFileSystemMoveBucketRequestMetadata extends Struct { + readonly requester: AccountId32; + } + /** @name PalletFileSystemError (450) */ + interface PalletFileSystemError extends Enum { + readonly isStorageRequestAlreadyRegistered: boolean; + readonly isStorageRequestNotFound: boolean; + readonly isStorageRequestNotRevoked: boolean; + readonly isStorageRequestExists: boolean; + readonly isReplicationTargetCannotBeZero: boolean; + readonly isBspsRequiredExceedsTarget: boolean; + readonly isNotABsp: boolean; + readonly isNotAMsp: boolean; + readonly isNotASp: boolean; + readonly isBspNotVolunteered: boolean; + readonly isBspNotConfirmed: boolean; + readonly isBspAlreadyConfirmed: boolean; + readonly isStorageRequestBspsRequiredFulfilled: boolean; + readonly isBspAlreadyVolunteered: boolean; + readonly isInsufficientAvailableCapacity: boolean; + readonly isUnexpectedNumberOfRemovedVolunteeredBsps: boolean; + readonly isStorageRequestExpiredNoSlotAvailable: boolean; + readonly isStorageRequestNotAuthorized: boolean; + readonly isMaxBlockNumberReached: boolean; + readonly isFailedToEncodeBsp: boolean; + readonly isFailedToEncodeFingerprint: boolean; + readonly isFailedToDecodeThreshold: boolean; + readonly isAboveThreshold: boolean; + readonly isThresholdArithmeticError: boolean; + readonly isFailedTypeConversion: boolean; + readonly isDividedByZero: boolean; + readonly isImpossibleFailedToGetValue: boolean; + readonly isBucketIsNotPrivate: boolean; + readonly isBucketNotFound: boolean; + readonly isNotBucketOwner: boolean; + readonly isProviderRootNotFound: boolean; + readonly isExpectedNonInclusionProof: boolean; + readonly isExpectedInclusionProof: boolean; + readonly isInvalidFileKeyMetadata: boolean; + readonly isThresholdBelowAsymptote: boolean; + readonly isNotFileOwner: boolean; + readonly isFileKeyAlreadyPendingDeletion: boolean; + readonly isMaxUserPendingDeletionRequestsReached: boolean; + readonly isMspNotStoringBucket: boolean; + readonly isFileKeyNotPendingDeletion: boolean; + readonly isFileSizeCannotBeZero: boolean; + readonly isNoGlobalReputationWeightSet: boolean; + readonly isMaximumThresholdCannotBeZero: boolean; + readonly isTickRangeToMaximumThresholdCannotBeZero: boolean; + readonly isPendingStopStoringRequestNotFound: boolean; + readonly isMinWaitForStopStoringNotReached: boolean; + readonly isPendingStopStoringRequestAlreadyExists: boolean; + readonly isUserNotInsolvent: boolean; + readonly isNotSelectedMsp: boolean; + readonly isMspAlreadyConfirmed: boolean; + readonly isRequestWithoutMsp: boolean; + readonly isMspAlreadyStoringBucket: boolean; + readonly isMoveBucketRequestNotFound: boolean; + readonly isBucketIsBeingMoved: boolean; + readonly isBspAlreadyDataServer: boolean; + readonly isBspDataServersExceeded: boolean; + readonly isFileMetadataProcessingQueueFull: boolean; + readonly isTooManyBatchResponses: boolean; + readonly isTooManyStorageRequestResponses: boolean; + readonly isInvalidBucketIdFileKeyPair: boolean; + readonly isInconsistentStateKeyAlreadyExists: boolean; + readonly type: + | "StorageRequestAlreadyRegistered" + | "StorageRequestNotFound" + | "StorageRequestNotRevoked" + | "StorageRequestExists" + | "ReplicationTargetCannotBeZero" + | "BspsRequiredExceedsTarget" + | "NotABsp" + | "NotAMsp" + | "NotASp" + | "BspNotVolunteered" + | "BspNotConfirmed" + | "BspAlreadyConfirmed" + | "StorageRequestBspsRequiredFulfilled" + | "BspAlreadyVolunteered" + | "InsufficientAvailableCapacity" + | "UnexpectedNumberOfRemovedVolunteeredBsps" + | "StorageRequestExpiredNoSlotAvailable" + | "StorageRequestNotAuthorized" + | "MaxBlockNumberReached" + | "FailedToEncodeBsp" + | "FailedToEncodeFingerprint" + | "FailedToDecodeThreshold" + | "AboveThreshold" + | "ThresholdArithmeticError" + | "FailedTypeConversion" + | "DividedByZero" + | "ImpossibleFailedToGetValue" + | "BucketIsNotPrivate" + | "BucketNotFound" + | "NotBucketOwner" + | "ProviderRootNotFound" + | "ExpectedNonInclusionProof" + | "ExpectedInclusionProof" + | "InvalidFileKeyMetadata" + | "ThresholdBelowAsymptote" + | "NotFileOwner" + | "FileKeyAlreadyPendingDeletion" + | "MaxUserPendingDeletionRequestsReached" + | "MspNotStoringBucket" + | "FileKeyNotPendingDeletion" + | "FileSizeCannotBeZero" + | "NoGlobalReputationWeightSet" + | "MaximumThresholdCannotBeZero" + | "TickRangeToMaximumThresholdCannotBeZero" + | "PendingStopStoringRequestNotFound" + | "MinWaitForStopStoringNotReached" + | "PendingStopStoringRequestAlreadyExists" + | "UserNotInsolvent" + | "NotSelectedMsp" + | "MspAlreadyConfirmed" + | "RequestWithoutMsp" + | "MspAlreadyStoringBucket" + | "MoveBucketRequestNotFound" + | "BucketIsBeingMoved" + | "BspAlreadyDataServer" + | "BspDataServersExceeded" + | "FileMetadataProcessingQueueFull" + | "TooManyBatchResponses" + | "TooManyStorageRequestResponses" + | "InvalidBucketIdFileKeyPair" + | "InconsistentStateKeyAlreadyExists"; + } + /** @name PalletProofsDealerError (457) */ + interface PalletProofsDealerError extends Enum { + readonly isNotProvider: boolean; + readonly isChallengesQueueOverflow: boolean; + readonly isPriorityChallengesQueueOverflow: boolean; + readonly isFeeChargeFailed: boolean; + readonly isEmptyKeyProofs: boolean; + readonly isProviderRootNotFound: boolean; + readonly isZeroRoot: boolean; + readonly isNoRecordOfLastSubmittedProof: boolean; + readonly isProviderStakeNotFound: boolean; + readonly isZeroStake: boolean; + readonly isStakeCouldNotBeConverted: boolean; + readonly isChallengesTickNotReached: boolean; + readonly isChallengesTickTooOld: boolean; + readonly isChallengesTickTooLate: boolean; + readonly isSeedNotFound: boolean; + readonly isCheckpointChallengesNotFound: boolean; + readonly isForestProofVerificationFailed: boolean; + readonly isKeyProofNotFound: boolean; + readonly isKeyProofVerificationFailed: boolean; + readonly isFailedToApplyDelta: boolean; + readonly isFailedToUpdateProviderAfterKeyRemoval: boolean; + readonly isTooManyValidProofSubmitters: boolean; + readonly type: + | "NotProvider" + | "ChallengesQueueOverflow" + | "PriorityChallengesQueueOverflow" + | "FeeChargeFailed" + | "EmptyKeyProofs" + | "ProviderRootNotFound" + | "ZeroRoot" + | "NoRecordOfLastSubmittedProof" + | "ProviderStakeNotFound" + | "ZeroStake" + | "StakeCouldNotBeConverted" + | "ChallengesTickNotReached" + | "ChallengesTickTooOld" + | "ChallengesTickTooLate" + | "SeedNotFound" + | "CheckpointChallengesNotFound" + | "ForestProofVerificationFailed" + | "KeyProofNotFound" + | "KeyProofVerificationFailed" + | "FailedToApplyDelta" + | "FailedToUpdateProviderAfterKeyRemoval" + | "TooManyValidProofSubmitters"; + } + /** @name PalletPaymentStreamsFixedRatePaymentStream (460) */ + interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { + readonly rate: u128; + readonly lastChargedTick: u32; + readonly userDeposit: u128; + readonly outOfFundsTick: Option; + } + /** @name PalletPaymentStreamsDynamicRatePaymentStream (461) */ + interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { + readonly amountProvided: u64; + readonly priceIndexWhenLastCharged: u128; + readonly userDeposit: u128; + readonly outOfFundsTick: Option; + } + /** @name PalletPaymentStreamsProviderLastChargeableInfo (462) */ + interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { + readonly lastChargeableTick: u32; + readonly priceIndex: u128; + } + /** @name PalletPaymentStreamsError (463) */ + interface PalletPaymentStreamsError extends Enum { + readonly isPaymentStreamAlreadyExists: boolean; + readonly isPaymentStreamNotFound: boolean; + readonly isNotAProvider: boolean; + readonly isProviderInconsistencyError: boolean; + readonly isCannotHoldDeposit: boolean; + readonly isUpdateRateToSameRate: boolean; + readonly isUpdateAmountToSameAmount: boolean; + readonly isRateCantBeZero: boolean; + readonly isAmountProvidedCantBeZero: boolean; + readonly isLastChargedGreaterThanLastChargeable: boolean; + readonly isInvalidLastChargeableBlockNumber: boolean; + readonly isInvalidLastChargeablePriceIndex: boolean; + readonly isChargeOverflow: boolean; + readonly isUserWithoutFunds: boolean; + readonly isUserNotFlaggedAsWithoutFunds: boolean; + readonly isCooldownPeriodNotPassed: boolean; + readonly type: + | "PaymentStreamAlreadyExists" + | "PaymentStreamNotFound" + | "NotAProvider" + | "ProviderInconsistencyError" + | "CannotHoldDeposit" + | "UpdateRateToSameRate" + | "UpdateAmountToSameAmount" + | "RateCantBeZero" + | "AmountProvidedCantBeZero" + | "LastChargedGreaterThanLastChargeable" + | "InvalidLastChargeableBlockNumber" + | "InvalidLastChargeablePriceIndex" + | "ChargeOverflow" + | "UserWithoutFunds" + | "UserNotFlaggedAsWithoutFunds" + | "CooldownPeriodNotPassed"; + } + /** @name PalletBucketNftsError (464) */ + interface PalletBucketNftsError extends Enum { + readonly isBucketIsNotPrivate: boolean; + readonly isNotBucketOwner: boolean; + readonly isNoCorrespondingCollection: boolean; + readonly isConvertBytesToBoundedVec: boolean; + readonly type: + | "BucketIsNotPrivate" + | "NotBucketOwner" + | "NoCorrespondingCollection" + | "ConvertBytesToBoundedVec"; + } + /** @name PalletNftsCollectionDetails (465) */ + interface PalletNftsCollectionDetails extends Struct { + readonly owner: AccountId32; + readonly ownerDeposit: u128; + readonly items: u32; + readonly itemMetadatas: u32; + readonly itemConfigs: u32; + readonly attributes: u32; + } + /** @name PalletNftsCollectionRole (470) */ + interface PalletNftsCollectionRole extends Enum { + readonly isIssuer: boolean; + readonly isFreezer: boolean; + readonly isAdmin: boolean; + readonly type: "Issuer" | "Freezer" | "Admin"; + } + /** @name PalletNftsItemDetails (471) */ + interface PalletNftsItemDetails extends Struct { + readonly owner: AccountId32; + readonly approvals: BTreeMap>; + readonly deposit: PalletNftsItemDeposit; + } + /** @name PalletNftsItemDeposit (472) */ + interface PalletNftsItemDeposit extends Struct { + readonly account: AccountId32; + readonly amount: u128; + } + /** @name PalletNftsCollectionMetadata (477) */ + interface PalletNftsCollectionMetadata extends Struct { + readonly deposit: u128; + readonly data: Bytes; + } + /** @name PalletNftsItemMetadata (478) */ + interface PalletNftsItemMetadata extends Struct { + readonly deposit: PalletNftsItemMetadataDeposit; + readonly data: Bytes; + } + /** @name PalletNftsItemMetadataDeposit (479) */ + interface PalletNftsItemMetadataDeposit extends Struct { + readonly account: Option; + readonly amount: u128; + } + /** @name PalletNftsAttributeDeposit (482) */ + interface PalletNftsAttributeDeposit extends Struct { + readonly account: Option; + readonly amount: u128; + } + /** @name PalletNftsPendingSwap (486) */ + interface PalletNftsPendingSwap extends Struct { + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } + /** @name PalletNftsPalletFeature (488) */ + interface PalletNftsPalletFeature extends Enum { + readonly isTrading: boolean; + readonly isAttributes: boolean; + readonly isApprovals: boolean; + readonly isSwaps: boolean; + readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; + } + /** @name PalletNftsError (489) */ + interface PalletNftsError extends Enum { + readonly isNoPermission: boolean; + readonly isUnknownCollection: boolean; + readonly isAlreadyExists: boolean; + readonly isApprovalExpired: boolean; + readonly isWrongOwner: boolean; + readonly isBadWitness: boolean; + readonly isCollectionIdInUse: boolean; + readonly isItemsNonTransferable: boolean; + readonly isNotDelegate: boolean; + readonly isWrongDelegate: boolean; + readonly isUnapproved: boolean; + readonly isUnaccepted: boolean; + readonly isItemLocked: boolean; + readonly isLockedItemAttributes: boolean; + readonly isLockedCollectionAttributes: boolean; + readonly isLockedItemMetadata: boolean; + readonly isLockedCollectionMetadata: boolean; + readonly isMaxSupplyReached: boolean; + readonly isMaxSupplyLocked: boolean; + readonly isMaxSupplyTooSmall: boolean; + readonly isUnknownItem: boolean; + readonly isUnknownSwap: boolean; + readonly isMetadataNotFound: boolean; + readonly isAttributeNotFound: boolean; + readonly isNotForSale: boolean; + readonly isBidTooLow: boolean; + readonly isReachedApprovalLimit: boolean; + readonly isDeadlineExpired: boolean; + readonly isWrongDuration: boolean; + readonly isMethodDisabled: boolean; + readonly isWrongSetting: boolean; + readonly isInconsistentItemConfig: boolean; + readonly isNoConfig: boolean; + readonly isRolesNotCleared: boolean; + readonly isMintNotStarted: boolean; + readonly isMintEnded: boolean; + readonly isAlreadyClaimed: boolean; + readonly isIncorrectData: boolean; + readonly isWrongOrigin: boolean; + readonly isWrongSignature: boolean; + readonly isIncorrectMetadata: boolean; + readonly isMaxAttributesLimitReached: boolean; + readonly isWrongNamespace: boolean; + readonly isCollectionNotEmpty: boolean; + readonly isWitnessRequired: boolean; + readonly type: + | "NoPermission" + | "UnknownCollection" + | "AlreadyExists" + | "ApprovalExpired" + | "WrongOwner" + | "BadWitness" + | "CollectionIdInUse" + | "ItemsNonTransferable" + | "NotDelegate" + | "WrongDelegate" + | "Unapproved" + | "Unaccepted" + | "ItemLocked" + | "LockedItemAttributes" + | "LockedCollectionAttributes" + | "LockedItemMetadata" + | "LockedCollectionMetadata" + | "MaxSupplyReached" + | "MaxSupplyLocked" + | "MaxSupplyTooSmall" + | "UnknownItem" + | "UnknownSwap" + | "MetadataNotFound" + | "AttributeNotFound" + | "NotForSale" + | "BidTooLow" + | "ReachedApprovalLimit" + | "DeadlineExpired" + | "WrongDuration" + | "MethodDisabled" + | "WrongSetting" + | "InconsistentItemConfig" + | "NoConfig" + | "RolesNotCleared" + | "MintNotStarted" + | "MintEnded" + | "AlreadyClaimed" + | "IncorrectData" + | "WrongOrigin" + | "WrongSignature" + | "IncorrectMetadata" + | "MaxAttributesLimitReached" + | "WrongNamespace" + | "CollectionNotEmpty" + | "WitnessRequired"; + } + /** @name FrameSystemExtensionsCheckNonZeroSender (492) */ + type FrameSystemExtensionsCheckNonZeroSender = Null; + /** @name FrameSystemExtensionsCheckSpecVersion (493) */ + type FrameSystemExtensionsCheckSpecVersion = Null; + /** @name FrameSystemExtensionsCheckTxVersion (494) */ + type FrameSystemExtensionsCheckTxVersion = Null; + /** @name FrameSystemExtensionsCheckGenesis (495) */ + type FrameSystemExtensionsCheckGenesis = Null; + /** @name FrameSystemExtensionsCheckNonce (498) */ + interface FrameSystemExtensionsCheckNonce extends Compact {} + /** @name FrameSystemExtensionsCheckWeight (499) */ + type FrameSystemExtensionsCheckWeight = Null; + /** @name PalletTransactionPaymentChargeTransactionPayment (500) */ + interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (501) */ + type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; + /** @name FrameMetadataHashExtensionCheckMetadataHash (502) */ + interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: FrameMetadataHashExtensionMode; + } + /** @name FrameMetadataHashExtensionMode (503) */ + interface FrameMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: "Disabled" | "Enabled"; + } + /** @name StorageHubRuntimeRuntime (504) */ + type StorageHubRuntimeRuntime = Null; +} diff --git a/api-augment/src/interfaces/augment-api-consts.ts b/api-augment/src/interfaces/augment-api-consts.ts index ec8520734..af81d7dd7 100644 --- a/api-augment/src/interfaces/augment-api-consts.ts +++ b/api-augment/src/interfaces/augment-api-consts.ts @@ -1,570 +1,570 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/consts"; - -import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; -import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; -import type { Codec } from "@polkadot/types-codec/types"; -import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; -import type { - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight -} from "@polkadot/types/lookup"; - -export type __AugmentedConst = AugmentedConst; - -declare module "@polkadot/api-base/types/consts" { - interface AugmentedConsts { - aura: { - /** - * The slot duration Aura should run with, expressed in milliseconds. - * The effective value of this type should not change while the chain is running. - * - * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. - **/ - slotDuration: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - balances: { - /** - * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! - * - * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for - * this pallet. However, you do so at your own risk: this will open up a major DoS vector. - * In case you have multiple sources of provider references, you may also get unexpected - * behaviour if you set this to zero. - * - * Bottom line: Do yourself a favour and make it at least one! - **/ - existentialDeposit: u128 & AugmentedConst; - /** - * The maximum number of individual freeze locks that can exist on an account at any time. - **/ - maxFreezes: u32 & AugmentedConst; - /** - * The maximum number of locks that should exist on an account. - * Not strictly enforced, but used for weight estimation. - * - * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxLocks: u32 & AugmentedConst; - /** - * The maximum number of named reserves that can exist on an account. - * - * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - maxReserves: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - fileSystem: { - /** - * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. - **/ - maxBatchConfirmStorageRequests: u32 & AugmentedConst; - /** - * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. - **/ - maxBatchMspRespondStorageRequests: u32 & AugmentedConst; - /** - * Maximum number of SPs (MSP + BSPs) that can store a file. - * - * This is used to limit the number of BSPs storing a file and claiming rewards for it. - * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. - **/ - maxBspsPerStorageRequest: u32 & AugmentedConst; - /** - * Maximum number of multiaddresses for a storage request. - **/ - maxDataServerMultiAddresses: u32 & AugmentedConst; - /** - * Maximum number of expired items (per type) to clean up in a single block. - **/ - maxExpiredItemsInBlock: u32 & AugmentedConst; - /** - * Maximum byte size of a file path. - **/ - maxFilePathSize: u32 & AugmentedConst; - /** - * Maximum number of peer ids for a storage request. - **/ - maxNumberOfPeerIds: u32 & AugmentedConst; - /** - * Maximum byte size of a peer id. - **/ - maxPeerIdSize: u32 & AugmentedConst; - /** - * Maximum number of file deletion requests a user can have pending. - **/ - maxUserPendingDeletionRequests: u32 & AugmentedConst; - /** - * Maximum number of move bucket requests a user can have pending. - **/ - maxUserPendingMoveBucketRequests: u32 & AugmentedConst; - /** - * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. - **/ - minWaitForStopStoring: u32 & AugmentedConst; - /** - * Time-to-live for a move bucket request, after which the request is considered expired. - **/ - moveBucketRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. - **/ - pendingFileDeletionRequestTtl: u32 & AugmentedConst; - /** - * Time-to-live for a storage request. - **/ - storageRequestTtl: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - messageQueue: { - /** - * The size of the page; this implies the maximum message size which can be sent. - * - * A good value depends on the expected message sizes, their weights, the weight that is - * available for processing them and the maximal needed message size. The maximal message - * size is slightly lower than this as defined by [`MaxMessageLenOf`]. - **/ - heapSize: u32 & AugmentedConst; - /** - * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which - * should be provided to the message queue for servicing enqueued items `on_idle`. - * Useful for parachains to process messages at the same block they are received. - * - * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. - **/ - idleMaxServiceWeight: Option & AugmentedConst; - /** - * The maximum number of stale pages (i.e. of overweight messages) allowed before culling - * can happen. Once there are more stale pages than this, then historical pages may be - * dropped, even if they contain unprocessed overweight messages. - **/ - maxStale: u32 & AugmentedConst; - /** - * The amount of weight (if any) which should be provided to the message queue for - * servicing enqueued items `on_initialize`. - * - * This may be legitimately `None` in the case that you will call - * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have - * it run in `on_idle`. - **/ - serviceWeight: Option & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - nfts: { - /** - * The maximum approvals an item could have. - **/ - approvalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding an attribute to an item. - **/ - attributeDepositBase: u128 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for collection. - **/ - collectionDeposit: u128 & AugmentedConst; - /** - * The additional funds that must be reserved for the number of bytes store in metadata, - * either "normal" metadata or attribute metadata. - **/ - depositPerByte: u128 & AugmentedConst; - /** - * Disables some of pallet's features. - **/ - features: u64 & AugmentedConst; - /** - * The maximum attributes approvals an item could have. - **/ - itemAttributesApprovalsLimit: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved for an item. - **/ - itemDeposit: u128 & AugmentedConst; - /** - * The maximum length of an attribute key. - **/ - keyLimit: u32 & AugmentedConst; - /** - * The max number of attributes a user could set per call. - **/ - maxAttributesPerCall: u32 & AugmentedConst; - /** - * The max duration in blocks for deadlines. - **/ - maxDeadlineDuration: u32 & AugmentedConst; - /** - * The max number of tips a user could send. - **/ - maxTips: u32 & AugmentedConst; - /** - * The basic amount of funds that must be reserved when adding metadata to your item. - **/ - metadataDepositBase: u128 & AugmentedConst; - /** - * The maximum length of data stored on-chain. - **/ - stringLimit: u32 & AugmentedConst; - /** - * The maximum length of an attribute value. - **/ - valueLimit: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - parachainSystem: { - /** - * Returns the parachain ID we are running with. - **/ - selfParaId: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - paymentStreams: { - /** - * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. - * This means that, from the balance of the User for which the payment stream is being created, the amount - * `NewStreamDeposit * rate` will be held as a deposit. - * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has - * to be provided by the pallet using the `PaymentStreamsInterface` interface. - **/ - newStreamDeposit: u32 & AugmentedConst; - /** - * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag - * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. - **/ - userWithoutFundsCooldown: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - proofsDealer: { - /** - * The minimum unused weight that a block must have to be considered _not_ full. - * - * This is used as part of the criteria for checking if the network is presumably under a spam attack. - * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would - * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. - **/ - blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; - /** - * The period of blocks for which the block fullness is checked. - * - * This is the amount of blocks from the past, for which the block fullness has been checked - * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are - * cleared from storage. - * - * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, - * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting - * their proofs in time. - **/ - blockFullnessPeriod: u32 & AugmentedConst; - /** - * The number of ticks that challenges history is kept for. - * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. - * A "tick" is usually one block, but some blocks may be skipped due to migrations. - **/ - challengeHistoryLength: u32 & AugmentedConst; - /** - * The fee charged for submitting a challenge. - * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are - * exempt from this fee. - **/ - challengesFee: u128 & AugmentedConst; - /** - * The length of the `ChallengesQueue` StorageValue. - * This is to limit the size of the queue, and therefore the number of - * manual challenges that can be made. - **/ - challengesQueueLength: u32 & AugmentedConst; - /** - * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that - * a Provider has to submit a proof, counting from the tick the challenge is emitted for - * that Provider. - * - * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance - * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before - * `n + t`. - **/ - challengeTicksTolerance: u32 & AugmentedConst; - /** - * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). - * This is used to determine when to include the challenges from the `ChallengesQueue` and - * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge - * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` - * extrinsic. - * - * WARNING: This period needs to be equal or larger than the challenge period of the smallest - * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), - * then the checkpoint challenge period needs to be at least 10 ticks. - **/ - checkpointChallengePeriod: u32 & AugmentedConst; - /** - * The maximum number of custom challenges that can be made in a single checkpoint block. - **/ - maxCustomChallengesPerBlock: u32 & AugmentedConst; - /** - * The maximum amount of Providers that can submit a proof in a single block. - * Although this can be seen as an arbitrary limit, if set to the already existing - * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of - * a block, this wouldn't add any additional artificial limit. - **/ - maxSubmittersPerTick: u32 & AugmentedConst; - /** - * The minimum period in which a Provider can be challenged, regardless of their stake. - **/ - minChallengePeriod: u32 & AugmentedConst; - /** - * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, - * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. - * - * If less than this percentage of blocks are not full, the networks is considered to be presumably - * under a spam attack. - * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, - * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` - * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning - * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. - **/ - minNotFullBlocksRatio: Perbill & AugmentedConst; - /** - * The number of random challenges that are generated per block, using the random seed - * generated for that block. - **/ - randomChallengesPerBlock: u32 & AugmentedConst; - /** - * The ratio to convert staked balance to block period. - * This is used to determine the period in which a Provider should submit a proof, based on - * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. - **/ - stakeToChallengePeriod: u128 & AugmentedConst; - /** - * The target number of ticks for which to store the submitters that submitted valid proofs in them, - * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number - * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. - **/ - targetTicksStorageOfSubmitters: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - providers: { - /** - * The amount that an account has to deposit to create a bucket. - **/ - bucketDeposit: u128 & AugmentedConst; - /** - * Type that represents the byte limit of a bucket name. - **/ - bucketNameLimit: u32 & AugmentedConst; - /** - * The default value of the root of the Merkle Patricia Trie of the runtime - **/ - defaultMerkleRoot: H256 & AugmentedConst; - /** - * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. - **/ - depositPerData: u128 & AugmentedConst; - /** - * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen - **/ - maxBlocksForRandomness: u32 & AugmentedConst; - /** - * The maximum amount of Buckets that a MSP can have. - **/ - maxBuckets: u32 & AugmentedConst; - /** - * The estimated maximum size of an unknown file. - * - * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. - **/ - maxFileSize: u64 & AugmentedConst; - /** - * The maximum amount of multiaddresses that a Storage Provider can have. - **/ - maxMultiAddressAmount: u32 & AugmentedConst; - /** - * The maximum size of a multiaddress. - **/ - maxMultiAddressSize: u32 & AugmentedConst; - /** - * The maximum number of protocols the MSP can support (at least within the runtime). - **/ - maxProtocols: u32 & AugmentedConst; - /** - * The minimum amount of blocks between capacity changes for a SP - **/ - minBlocksBetweenCapacityChanges: u32 & AugmentedConst; - /** - * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. - **/ - slashAmountPerMaxFileSize: u128 & AugmentedConst; - /** - * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. - **/ - spMinCapacity: u64 & AugmentedConst; - /** - * The minimum amount that an account has to deposit to become a storage provider. - **/ - spMinDeposit: u128 & AugmentedConst; - /** - * Starting reputation weight for a newly registered BSP. - **/ - startingReputationWeight: u32 & AugmentedConst; - /** - * The Treasury AccountId. - * The account to which: - * - The fees for submitting a challenge are transferred. - * - The slashed funds are transferred. - **/ - treasury: AccountId32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - system: { - /** - * Maximum number of block number to block hash mappings to keep (oldest pruned first). - **/ - blockHashCount: u32 & AugmentedConst; - /** - * The maximum length of a block (in bytes). - **/ - blockLength: FrameSystemLimitsBlockLength & AugmentedConst; - /** - * Block & extrinsics weights: base values and limits. - **/ - blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; - /** - * The weight of runtime database operations the runtime can invoke. - **/ - dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; - /** - * The designated SS58 prefix of this chain. - * - * This replaces the "ss58Format" property declared in the chain spec. Reason is - * that the runtime should know about the prefix in order to make use of it as - * an identifier of the chain. - **/ - ss58Prefix: u16 & AugmentedConst; - /** - * Get the chain's in-code version. - **/ - version: SpVersionRuntimeVersion & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - timestamp: { - /** - * The minimum period between blocks. - * - * Be aware that this is different to the *expected* period that the block production - * apparatus provides. Your chosen consensus system will generally work with this to - * determine a sensible block time. For example, in the Aura pallet it will be double this - * period on default settings. - **/ - minimumPeriod: u64 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - transactionPayment: { - /** - * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their - * `priority` - * - * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later - * added to a tip component in regular `priority` calculations. - * It means that a `Normal` transaction can front-run a similarly-sized `Operational` - * extrinsic (with no tip), by including a tip value greater than the virtual tip. - * - * ```rust,ignore - * // For `Normal` - * let priority = priority_calc(tip); - * - * // For `Operational` - * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; - * let priority = priority_calc(tip + virtual_tip); - * ``` - * - * Note that since we use `final_fee` the multiplier applies also to the regular `tip` - * sent with the transaction. So, not only does the transaction get a priority bump based - * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` - * transactions. - **/ - operationalFeeMultiplier: u8 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - xcmpQueue: { - /** - * Maximal number of outbound XCMP channels that can have messages queued at the same time. - * - * If this is reached, then no further messages can be sent to channels that do not yet - * have a message queued. This should be set to the expected maximum of outbound channels - * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, - * since otherwise the congestion control protocol will not work as intended and messages - * may be dropped. This value increases the PoV and should therefore not be picked too - * high. Governance needs to pay attention to not open more channels than this value. - **/ - maxActiveOutboundChannels: u32 & AugmentedConst; - /** - * The maximum number of inbound XCMP channels that can be suspended simultaneously. - * - * Any further channel suspensions will fail and messages may get dropped without further - * notice. Choosing a high value (1000) is okay; the trade-off that is described in - * [`InboundXcmpSuspended`] still applies at that scale. - **/ - maxInboundSuspended: u32 & AugmentedConst; - /** - * The maximal page size for HRMP message pages. - * - * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case - * benchmarking. The limit for the size of a message is slightly below this, since some - * overhead is incurred for encoding the format. - **/ - maxPageSize: u32 & AugmentedConst; - /** - * Generic const - **/ - [key: string]: Codec; - }; - } // AugmentedConsts -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/consts"; + +import type { ApiTypes, AugmentedConst } from "@polkadot/api-base/types"; +import type { Option, u128, u16, u32, u64, u8 } from "@polkadot/types-codec"; +import type { Codec } from "@polkadot/types-codec/types"; +import type { AccountId32, H256, Perbill } from "@polkadot/types/interfaces/runtime"; +import type { + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight +} from "@polkadot/types/lookup"; + +export type __AugmentedConst = AugmentedConst; + +declare module "@polkadot/api-base/types/consts" { + interface AugmentedConsts { + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fileSystem: { + /** + * Maximum batch of storage requests that can be confirmed at once when calling `bsp_confirm_storing`. + **/ + maxBatchConfirmStorageRequests: u32 & AugmentedConst; + /** + * Maximum batch of storage requests that can be responded to at once when calling `msp_respond_storage_requests_multiple_buckets`. + **/ + maxBatchMspRespondStorageRequests: u32 & AugmentedConst; + /** + * Maximum number of SPs (MSP + BSPs) that can store a file. + * + * This is used to limit the number of BSPs storing a file and claiming rewards for it. + * If this number is too high, then the reward for storing a file might be to diluted and pointless to store. + **/ + maxBspsPerStorageRequest: u32 & AugmentedConst; + /** + * Maximum number of multiaddresses for a storage request. + **/ + maxDataServerMultiAddresses: u32 & AugmentedConst; + /** + * Maximum number of expired items (per type) to clean up in a single block. + **/ + maxExpiredItemsInBlock: u32 & AugmentedConst; + /** + * Maximum byte size of a file path. + **/ + maxFilePathSize: u32 & AugmentedConst; + /** + * Maximum number of peer ids for a storage request. + **/ + maxNumberOfPeerIds: u32 & AugmentedConst; + /** + * Maximum byte size of a peer id. + **/ + maxPeerIdSize: u32 & AugmentedConst; + /** + * Maximum number of file deletion requests a user can have pending. + **/ + maxUserPendingDeletionRequests: u32 & AugmentedConst; + /** + * Maximum number of move bucket requests a user can have pending. + **/ + maxUserPendingMoveBucketRequests: u32 & AugmentedConst; + /** + * Number of blocks required to pass between a BSP requesting to stop storing a file and it being able to confirm to stop storing it. + **/ + minWaitForStopStoring: u32 & AugmentedConst; + /** + * Time-to-live for a move bucket request, after which the request is considered expired. + **/ + moveBucketRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a pending file deletion request, after which a priority challenge is sent out to enforce the deletion. + **/ + pendingFileDeletionRequestTtl: u32 & AugmentedConst; + /** + * Time-to-live for a storage request. + **/ + storageRequestTtl: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + parachainSystem: { + /** + * Returns the parachain ID we are running with. + **/ + selfParaId: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + paymentStreams: { + /** + * The number of ticks that correspond to the deposit that a User has to pay to open a payment stream. + * This means that, from the balance of the User for which the payment stream is being created, the amount + * `NewStreamDeposit * rate` will be held as a deposit. + * In the case of dynamic-rate payment streams, `rate` will be `amount_provided * current_service_price`, where `current_service_price` has + * to be provided by the pallet using the `PaymentStreamsInterface` interface. + **/ + newStreamDeposit: u32 & AugmentedConst; + /** + * The number of ticks that a user will have to wait after it has been flagged as without funds to be able to clear that flag + * and be able to pay for services again. If there's any outstanding debt when the flag is cleared, it will be paid. + **/ + userWithoutFundsCooldown: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proofsDealer: { + /** + * The minimum unused weight that a block must have to be considered _not_ full. + * + * This is used as part of the criteria for checking if the network is presumably under a spam attack. + * For example, this can be set to the benchmarked weight of a `submit_proof` extrinsic, which would + * mean that a block is not considered full if a `submit_proof` extrinsic could have still fit in it. + **/ + blockFullnessHeadroom: SpWeightsWeightV2Weight & AugmentedConst; + /** + * The period of blocks for which the block fullness is checked. + * + * This is the amount of blocks from the past, for which the block fullness has been checked + * and is stored. Blocks older than `current_block` - [`Config::BlockFullnessPeriod`] are + * cleared from storage. + * + * This constant should be equal or smaller than the [`Config::ChallengeTicksTolerance`] constant, + * if the goal is to prevent spamming attacks that would prevent honest Providers from submitting + * their proofs in time. + **/ + blockFullnessPeriod: u32 & AugmentedConst; + /** + * The number of ticks that challenges history is kept for. + * After this many ticks, challenges are removed from [`TickToChallengesSeed`] StorageMap. + * A "tick" is usually one block, but some blocks may be skipped due to migrations. + **/ + challengeHistoryLength: u32 & AugmentedConst; + /** + * The fee charged for submitting a challenge. + * This fee goes to the Treasury, and is used to prevent spam. Registered Providers are + * exempt from this fee. + **/ + challengesFee: u128 & AugmentedConst; + /** + * The length of the `ChallengesQueue` StorageValue. + * This is to limit the size of the queue, and therefore the number of + * manual challenges that can be made. + **/ + challengesQueueLength: u32 & AugmentedConst; + /** + * The tolerance in number of ticks (almost equivalent to blocks, but skipping MBM) that + * a Provider has to submit a proof, counting from the tick the challenge is emitted for + * that Provider. + * + * For example, if a Provider is supposed to submit a proof for tick `n`, and the tolerance + * is set to `t`, then the Provider has to submit a proof for challenges in tick `n`, before + * `n + t`. + **/ + challengeTicksTolerance: u32 & AugmentedConst; + /** + * The number of blocks in between a checkpoint challenges round (i.e. with custom challenges). + * This is used to determine when to include the challenges from the `ChallengesQueue` and + * `PriorityChallengesQueue` in the `BlockToChallenges` StorageMap. These checkpoint challenge + * rounds have to be answered by ALL Providers, and this is enforced by the `submit_proof` + * extrinsic. + * + * WARNING: This period needs to be equal or larger than the challenge period of the smallest + * Provider in the network. If the smallest Provider has a challenge period of 10 ticks (blocks), + * then the checkpoint challenge period needs to be at least 10 ticks. + **/ + checkpointChallengePeriod: u32 & AugmentedConst; + /** + * The maximum number of custom challenges that can be made in a single checkpoint block. + **/ + maxCustomChallengesPerBlock: u32 & AugmentedConst; + /** + * The maximum amount of Providers that can submit a proof in a single block. + * Although this can be seen as an arbitrary limit, if set to the already existing + * implicit limit that is "how many `submit_proof` extrinsics fit in the weight of + * a block, this wouldn't add any additional artificial limit. + **/ + maxSubmittersPerTick: u32 & AugmentedConst; + /** + * The minimum period in which a Provider can be challenged, regardless of their stake. + **/ + minChallengePeriod: u32 & AugmentedConst; + /** + * The minimum ratio (or percentage if you will) of blocks that must be considered _not_ full, + * from the total number of [`Config::BlockFullnessPeriod`] blocks taken into account. + * + * If less than this percentage of blocks are not full, the networks is considered to be presumably + * under a spam attack. + * This can also be thought of as the maximum ratio of misbehaving collators tolerated. For example, + * if this is set to `Perbill::from_percent(50)`, then if more than half of the last `BlockFullnessPeriod` + * blocks are not full, then one of those blocks surely was produced by an honest collator, meaning + * that there was at least one truly _not_ full block in the last `BlockFullnessPeriod` blocks. + **/ + minNotFullBlocksRatio: Perbill & AugmentedConst; + /** + * The number of random challenges that are generated per block, using the random seed + * generated for that block. + **/ + randomChallengesPerBlock: u32 & AugmentedConst; + /** + * The ratio to convert staked balance to block period. + * This is used to determine the period in which a Provider should submit a proof, based on + * their stake. The period is calculated as `StakeToChallengePeriod / stake`, saturating at [`Config::MinChallengePeriod`]. + **/ + stakeToChallengePeriod: u128 & AugmentedConst; + /** + * The target number of ticks for which to store the submitters that submitted valid proofs in them, + * stored in the `ValidProofSubmittersLastTicks` StorageMap. That storage will be trimmed down to this number + * of ticks in the `on_idle` hook of this pallet, to avoid bloating the state. + **/ + targetTicksStorageOfSubmitters: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + providers: { + /** + * The amount that an account has to deposit to create a bucket. + **/ + bucketDeposit: u128 & AugmentedConst; + /** + * Type that represents the byte limit of a bucket name. + **/ + bucketNameLimit: u32 & AugmentedConst; + /** + * The default value of the root of the Merkle Patricia Trie of the runtime + **/ + defaultMerkleRoot: H256 & AugmentedConst; + /** + * The slope of the collateral vs storage capacity curve. In other terms, how many tokens a Storage Provider should add as collateral to increase its storage capacity in one unit of StorageDataUnit. + **/ + depositPerData: u128 & AugmentedConst; + /** + * The maximum amount of blocks after which a sign up request expires so the randomness cannot be chosen + **/ + maxBlocksForRandomness: u32 & AugmentedConst; + /** + * The maximum amount of Buckets that a MSP can have. + **/ + maxBuckets: u32 & AugmentedConst; + /** + * The estimated maximum size of an unknown file. + * + * Used primarily to slash a Storage Provider when it fails to provide a chunk of data for an unknown file size. + **/ + maxFileSize: u64 & AugmentedConst; + /** + * The maximum amount of multiaddresses that a Storage Provider can have. + **/ + maxMultiAddressAmount: u32 & AugmentedConst; + /** + * The maximum size of a multiaddress. + **/ + maxMultiAddressSize: u32 & AugmentedConst; + /** + * The maximum number of protocols the MSP can support (at least within the runtime). + **/ + maxProtocols: u32 & AugmentedConst; + /** + * The minimum amount of blocks between capacity changes for a SP + **/ + minBlocksBetweenCapacityChanges: u32 & AugmentedConst; + /** + * The slash factor deducted from a Storage Provider's deposit for every single storage proof they fail to provide. + **/ + slashAmountPerMaxFileSize: u128 & AugmentedConst; + /** + * The amount that a BSP receives as allocation of storage capacity when it deposits SpMinDeposit. + **/ + spMinCapacity: u64 & AugmentedConst; + /** + * The minimum amount that an account has to deposit to become a storage provider. + **/ + spMinDeposit: u128 & AugmentedConst; + /** + * Starting reputation weight for a newly registered BSP. + **/ + startingReputationWeight: u32 & AugmentedConst; + /** + * The Treasury AccountId. + * The account to which: + * - The fees for submitting a challenge are transferred. + * - The slashed funds are transferred. + **/ + treasury: AccountId32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: FrameSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: FrameSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: SpWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: SpVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; + /** + * The maximum number of inbound XCMP channels that can be suspended simultaneously. + * + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ + maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/api-augment/src/interfaces/augment-api-errors.ts b/api-augment/src/interfaces/augment-api-errors.ts index f4c80fa61..7b5af4ea5 100644 --- a/api-augment/src/interfaces/augment-api-errors.ts +++ b/api-augment/src/interfaces/augment-api-errors.ts @@ -1,1203 +1,1203 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/errors"; - -import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; - -export type __AugmentedError = AugmentedError; - -declare module "@polkadot/api-base/types/errors" { - interface AugmentedErrors { - balances: { - /** - * Beneficiary account must pre-exist. - **/ - DeadAccount: AugmentedError; - /** - * The delta cannot be zero. - **/ - DeltaZero: AugmentedError; - /** - * Value too low to create account due to existential deposit. - **/ - ExistentialDeposit: AugmentedError; - /** - * A vesting schedule already exists for this account. - **/ - ExistingVestingSchedule: AugmentedError; - /** - * Transfer/payment would kill account. - **/ - Expendability: AugmentedError; - /** - * Balance too low to send value. - **/ - InsufficientBalance: AugmentedError; - /** - * The issuance cannot be modified since it is already deactivated. - **/ - IssuanceDeactivated: AugmentedError; - /** - * Account liquidity restrictions prevent withdrawal. - **/ - LiquidityRestrictions: AugmentedError; - /** - * Number of freezes exceed `MaxFreezes`. - **/ - TooManyFreezes: AugmentedError; - /** - * Number of holds exceed `VariantCountOf`. - **/ - TooManyHolds: AugmentedError; - /** - * Number of named reserves exceed `MaxReserves`. - **/ - TooManyReserves: AugmentedError; - /** - * Vesting balance too high to send value. - **/ - VestingBalance: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - bucketNfts: { - /** - * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Failed to convert bytes to `BoundedVec` - **/ - ConvertBytesToBoundedVec: AugmentedError; - /** - * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. - **/ - NoCorrespondingCollection: AugmentedError; - /** - * Account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - collatorSelection: { - /** - * Account is already a candidate. - **/ - AlreadyCandidate: AugmentedError; - /** - * Account is already an Invulnerable. - **/ - AlreadyInvulnerable: AugmentedError; - /** - * New deposit amount would be below the minimum candidacy bond. - **/ - DepositTooLow: AugmentedError; - /** - * The updated deposit amount is equal to the amount already reserved. - **/ - IdenticalDeposit: AugmentedError; - /** - * Could not insert in the candidate list. - **/ - InsertToCandidateListFailed: AugmentedError; - /** - * Deposit amount is too low to take the target's slot in the candidate list. - **/ - InsufficientBond: AugmentedError; - /** - * Cannot lower candidacy bond while occupying a future collator slot in the list. - **/ - InvalidUnreserve: AugmentedError; - /** - * Account has no associated validator ID. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * Account is not a candidate. - **/ - NotCandidate: AugmentedError; - /** - * Account is not an Invulnerable. - **/ - NotInvulnerable: AugmentedError; - /** - * Could not remove from the candidate list. - **/ - RemoveFromCandidateListFailed: AugmentedError; - /** - * The target account to be replaced in the candidate list is not a candidate. - **/ - TargetIsNotCandidate: AugmentedError; - /** - * Leaving would result in too few candidates. - **/ - TooFewEligibleCollators: AugmentedError; - /** - * The pallet has too many candidates. - **/ - TooManyCandidates: AugmentedError; - /** - * There are too many Invulnerables. - **/ - TooManyInvulnerables: AugmentedError; - /** - * Could not update the candidate list. - **/ - UpdateCandidateListFailed: AugmentedError; - /** - * Validator ID is not yet registered. - **/ - ValidatorNotRegistered: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - fileSystem: { - /** - * BSP did not succeed threshold check. - **/ - AboveThreshold: AugmentedError; - /** - * BSP has already confirmed storing the given file. - **/ - BspAlreadyConfirmed: AugmentedError; - /** - * BSP is already a data server for the move bucket request. - **/ - BspAlreadyDataServer: AugmentedError; - /** - * BSP already volunteered to store the given file. - **/ - BspAlreadyVolunteered: AugmentedError; - /** - * Too many registered data servers for the move bucket request. - **/ - BspDataServersExceeded: AugmentedError; - /** - * BSP has not confirmed storing the given file. - **/ - BspNotConfirmed: AugmentedError; - /** - * BSP has not volunteered to store the given file. - **/ - BspNotVolunteered: AugmentedError; - /** - * BSPs required for storage request cannot exceed the maximum allowed. - **/ - BspsRequiredExceedsTarget: AugmentedError; - /** - * Action not allowed while the bucket is being moved. - **/ - BucketIsBeingMoved: AugmentedError; - /** - * Bucket is not private. Call `update_bucket_privacy` to make it private. - **/ - BucketIsNotPrivate: AugmentedError; - /** - * Bucket does not exist - **/ - BucketNotFound: AugmentedError; - /** - * Divided by 0 - **/ - DividedByZero: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of inclusion. - **/ - ExpectedInclusionProof: AugmentedError; - /** - * Failed to verify proof: required to provide a proof of non-inclusion. - **/ - ExpectedNonInclusionProof: AugmentedError; - /** - * Failed to decode threshold. - **/ - FailedToDecodeThreshold: AugmentedError; - /** - * Failed to encode BSP id as slice. - **/ - FailedToEncodeBsp: AugmentedError; - /** - * Failed to encode fingerprint as slice. - **/ - FailedToEncodeFingerprint: AugmentedError; - /** - * Failed to convert to primitive type. - **/ - FailedTypeConversion: AugmentedError; - /** - * File key already pending deletion. - **/ - FileKeyAlreadyPendingDeletion: AugmentedError; - /** - * File key not found in pending deletion requests. - **/ - FileKeyNotPendingDeletion: AugmentedError; - /** - * The bounded vector that holds file metadata to process it is full but there's still more to process. - **/ - FileMetadataProcessingQueueFull: AugmentedError; - /** - * File size cannot be zero. - **/ - FileSizeCannotBeZero: AugmentedError; - /** - * Failed to get value when just checked it existed. - **/ - ImpossibleFailedToGetValue: AugmentedError; - /** - * Key already exists in mapping when it should not. - **/ - InconsistentStateKeyAlreadyExists: AugmentedError; - /** - * SP does not have enough storage capacity to store the file. - **/ - InsufficientAvailableCapacity: AugmentedError; - /** - * Bucket id and file key pair is invalid. - **/ - InvalidBucketIdFileKeyPair: AugmentedError; - /** - * Metadata does not correspond to expected file key. - **/ - InvalidFileKeyMetadata: AugmentedError; - /** - * Error created in 2024. If you see this, you are well beyond the singularity and should - * probably stop using this pallet. - **/ - MaxBlockNumberReached: AugmentedError; - /** - * Maximum threshold cannot be zero. - **/ - MaximumThresholdCannotBeZero: AugmentedError; - /** - * Max number of user pending deletion requests reached. - **/ - MaxUserPendingDeletionRequestsReached: AugmentedError; - /** - * Minimum amount of blocks between the request opening and being able to confirm it not reached. - **/ - MinWaitForStopStoringNotReached: AugmentedError; - /** - * Move bucket request not found in storage. - **/ - MoveBucketRequestNotFound: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. - **/ - MspAlreadyConfirmed: AugmentedError; - /** - * The MSP is already storing the bucket. - **/ - MspAlreadyStoringBucket: AugmentedError; - /** - * Unauthorized operation, signer is not an MSP of the bucket id. - **/ - MspNotStoringBucket: AugmentedError; - /** - * No global reputation weight set. - **/ - NoGlobalReputationWeightSet: AugmentedError; - /** - * Account is not a BSP. - **/ - NotABsp: AugmentedError; - /** - * Account is not a MSP. - **/ - NotAMsp: AugmentedError; - /** - * Account is not a SP. - **/ - NotASp: AugmentedError; - /** - * Operation failed because the account is not the owner of the bucket. - **/ - NotBucketOwner: AugmentedError; - /** - * Unauthorized operation, signer does not own the file. - **/ - NotFileOwner: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. - **/ - NotSelectedMsp: AugmentedError; - /** - * Pending stop storing request already exists. - **/ - PendingStopStoringRequestAlreadyExists: AugmentedError; - /** - * Pending stop storing request not found. - **/ - PendingStopStoringRequestNotFound: AugmentedError; - /** - * Root of the provider not found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * Replication target cannot be zero. - **/ - ReplicationTargetCannotBeZero: AugmentedError; - /** - * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. - **/ - RequestWithoutMsp: AugmentedError; - /** - * Storage request already registered for the given file. - **/ - StorageRequestAlreadyRegistered: AugmentedError; - /** - * Number of BSPs required for storage request has been reached. - **/ - StorageRequestBspsRequiredFulfilled: AugmentedError; - /** - * Operation not allowed while the storage request exists. - **/ - StorageRequestExists: AugmentedError; - /** - * No slot available found in blocks to insert storage request expiration time. - **/ - StorageRequestExpiredNoSlotAvailable: AugmentedError; - /** - * Not authorized to delete the storage request. - **/ - StorageRequestNotAuthorized: AugmentedError; - /** - * Storage request not registered for the given file. - **/ - StorageRequestNotFound: AugmentedError; - /** - * Operation not allowed while the storage request is not being revoked. - **/ - StorageRequestNotRevoked: AugmentedError; - /** - * Arithmetic error in threshold calculation. - **/ - ThresholdArithmeticError: AugmentedError; - /** - * BSPs assignment threshold cannot be below asymptote. - **/ - ThresholdBelowAsymptote: AugmentedError; - /** - * Tick range to maximum threshold cannot be zero. - **/ - TickRangeToMaximumThresholdCannotBeZero: AugmentedError; - /** - * Too many batch responses to process. - **/ - TooManyBatchResponses: AugmentedError; - /** - * Too many storage request responses. - **/ - TooManyStorageRequestResponses: AugmentedError; - /** - * Number of removed BSPs volunteered from storage request prefix did not match the expected number. - **/ - UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; - /** - * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. - **/ - UserNotInsolvent: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - messageQueue: { - /** - * The message was already processed and cannot be processed again. - **/ - AlreadyProcessed: AugmentedError; - /** - * There is temporarily not enough weight to continue servicing messages. - **/ - InsufficientWeight: AugmentedError; - /** - * The referenced message could not be found. - **/ - NoMessage: AugmentedError; - /** - * Page to be reaped does not exist. - **/ - NoPage: AugmentedError; - /** - * Page is not reapable because it has items remaining to be processed and is not old - * enough. - **/ - NotReapable: AugmentedError; - /** - * The message is queued for future execution. - **/ - Queued: AugmentedError; - /** - * The queue is paused and no message can be executed from it. - * - * This can change at any time and may resolve in the future by re-trying. - **/ - QueuePaused: AugmentedError; - /** - * Another call is in progress and needs to finish before this call can happen. - **/ - RecursiveDisallowed: AugmentedError; - /** - * This message is temporarily unprocessable. - * - * Such errors are expected, but not guaranteed, to resolve themselves eventually through - * retrying. - **/ - TemporarilyUnprocessable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - nfts: { - /** - * The provided Item was already used for claiming. - **/ - AlreadyClaimed: AugmentedError; - /** - * The item ID has already been used for an item. - **/ - AlreadyExists: AugmentedError; - /** - * The approval had a deadline that expired, so the approval isn't valid anymore. - **/ - ApprovalExpired: AugmentedError; - /** - * The provided attribute can't be found. - **/ - AttributeNotFound: AugmentedError; - /** - * The witness data given does not match the current state of the chain. - **/ - BadWitness: AugmentedError; - /** - * The provided bid is too low. - **/ - BidTooLow: AugmentedError; - /** - * Collection ID is already taken. - **/ - CollectionIdInUse: AugmentedError; - /** - * Can't delete non-empty collections. - **/ - CollectionNotEmpty: AugmentedError; - /** - * The deadline has already expired. - **/ - DeadlineExpired: AugmentedError; - /** - * Item's config already exists and should be equal to the provided one. - **/ - InconsistentItemConfig: AugmentedError; - /** - * The provided data is incorrect. - **/ - IncorrectData: AugmentedError; - /** - * The provided metadata might be too long. - **/ - IncorrectMetadata: AugmentedError; - /** - * The item is locked (non-transferable). - **/ - ItemLocked: AugmentedError; - /** - * Items within that collection are non-transferable. - **/ - ItemsNonTransferable: AugmentedError; - /** - * Collection's attributes are locked. - **/ - LockedCollectionAttributes: AugmentedError; - /** - * Collection's metadata is locked. - **/ - LockedCollectionMetadata: AugmentedError; - /** - * Item's attributes are locked. - **/ - LockedItemAttributes: AugmentedError; - /** - * Item's metadata is locked. - **/ - LockedItemMetadata: AugmentedError; - /** - * Can't set more attributes per one call. - **/ - MaxAttributesLimitReached: AugmentedError; - /** - * The max supply is locked and can't be changed. - **/ - MaxSupplyLocked: AugmentedError; - /** - * All items have been minted. - **/ - MaxSupplyReached: AugmentedError; - /** - * The provided max supply is less than the number of items a collection already has. - **/ - MaxSupplyTooSmall: AugmentedError; - /** - * The given item has no metadata set. - **/ - MetadataNotFound: AugmentedError; - /** - * The method is disabled by system settings. - **/ - MethodDisabled: AugmentedError; - /** - * Mint has already ended. - **/ - MintEnded: AugmentedError; - /** - * Mint has not started yet. - **/ - MintNotStarted: AugmentedError; - /** - * Config for a collection or an item can't be found. - **/ - NoConfig: AugmentedError; - /** - * The signing account has no permission to do the operation. - **/ - NoPermission: AugmentedError; - /** - * The provided account is not a delegate. - **/ - NotDelegate: AugmentedError; - /** - * Item is not for sale. - **/ - NotForSale: AugmentedError; - /** - * The item has reached its approval limit. - **/ - ReachedApprovalLimit: AugmentedError; - /** - * Some roles were not cleared. - **/ - RolesNotCleared: AugmentedError; - /** - * The named owner has not signed ownership acceptance of the collection. - **/ - Unaccepted: AugmentedError; - /** - * No approval exists that would allow the transfer. - **/ - Unapproved: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownCollection: AugmentedError; - /** - * The given item ID is unknown. - **/ - UnknownItem: AugmentedError; - /** - * Swap doesn't exist. - **/ - UnknownSwap: AugmentedError; - /** - * The witness data should be provided. - **/ - WitnessRequired: AugmentedError; - /** - * The delegate turned out to be different to what was expected. - **/ - WrongDelegate: AugmentedError; - /** - * The duration provided should be less than or equal to `MaxDeadlineDuration`. - **/ - WrongDuration: AugmentedError; - /** - * The provided namespace isn't supported in this call. - **/ - WrongNamespace: AugmentedError; - /** - * The extrinsic was sent by the wrong origin. - **/ - WrongOrigin: AugmentedError; - /** - * The owner turned out to be different to what was expected. - **/ - WrongOwner: AugmentedError; - /** - * The provided setting can't be set. - **/ - WrongSetting: AugmentedError; - /** - * The provided signature is incorrect. - **/ - WrongSignature: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - parachainSystem: { - /** - * The inherent which supplies the host configuration did not run this block. - **/ - HostConfigurationNotAvailable: AugmentedError; - /** - * No code upgrade has been authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * No validation function upgrade is currently scheduled. - **/ - NotScheduled: AugmentedError; - /** - * Attempt to upgrade validation function while existing upgrade pending. - **/ - OverlappingUpgrades: AugmentedError; - /** - * Polkadot currently prohibits this parachain from upgrading its validation function. - **/ - ProhibitedByPolkadot: AugmentedError; - /** - * The supplied validation function has compiled into a blob larger than Polkadot is - * willing to run. - **/ - TooBig: AugmentedError; - /** - * The given code upgrade has not been authorized. - **/ - Unauthorized: AugmentedError; - /** - * The inherent which supplies the validation data did not run this block. - **/ - ValidationDataNotAvailable: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - paymentStreams: { - /** - * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) - **/ - AmountProvidedCantBeZero: AugmentedError; - /** - * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when charging a payment stream would result in an overflow of the balance type - **/ - ChargeOverflow: AugmentedError; - /** - * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed - **/ - CooldownPeriodNotPassed: AugmentedError; - /** - * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number - **/ - InvalidLastChargeableBlockNumber: AugmentedError; - /** - * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index - **/ - InvalidLastChargeablePriceIndex: AugmentedError; - /** - * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick - **/ - LastChargedGreaterThanLastChargeable: AugmentedError; - /** - * Error thrown when a user tries to charge a payment stream and it's not a registered Provider - **/ - NotAProvider: AugmentedError; - /** - * Error thrown when a user of this pallet tries to add a payment stream that already exists. - **/ - PaymentStreamAlreadyExists: AugmentedError; - /** - * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when failing to get the payment account of a registered Provider - **/ - ProviderInconsistencyError: AugmentedError; - /** - * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) - **/ - RateCantBeZero: AugmentedError; - /** - * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before - **/ - UpdateAmountToSameAmount: AugmentedError; - /** - * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before - **/ - UpdateRateToSameRate: AugmentedError; - /** - * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt - **/ - UserNotFlaggedAsWithoutFunds: AugmentedError; - /** - * Error thrown when trying to operate when the User has been flagged for not having enough funds. - **/ - UserWithoutFunds: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - polkadotXcm: { - /** - * The given account is not an identifiable sovereign account for any location. - **/ - AccountNotSovereign: AugmentedError; - /** - * The location is invalid since it already has a subscription from us. - **/ - AlreadySubscribed: AugmentedError; - /** - * The given location could not be used (e.g. because it cannot be expressed in the - * desired version of XCM). - **/ - BadLocation: AugmentedError; - /** - * The version of the `Versioned` value used is not able to be interpreted. - **/ - BadVersion: AugmentedError; - /** - * Could not check-out the assets for teleportation to the destination chain. - **/ - CannotCheckOutTeleport: AugmentedError; - /** - * Could not re-anchor the assets to declare the fees for the destination chain. - **/ - CannotReanchor: AugmentedError; - /** - * The destination `Location` provided cannot be inverted. - **/ - DestinationNotInvertible: AugmentedError; - /** - * The assets to be sent are empty. - **/ - Empty: AugmentedError; - /** - * The operation required fees to be paid which the initiator could not meet. - **/ - FeesNotMet: AugmentedError; - /** - * The message execution fails the filter. - **/ - Filtered: AugmentedError; - /** - * The unlock operation cannot succeed because there are still consumers of the lock. - **/ - InUse: AugmentedError; - /** - * Invalid asset, reserve chain could not be determined for it. - **/ - InvalidAssetUnknownReserve: AugmentedError; - /** - * Invalid asset, do not support remote asset reserves with different fees reserves. - **/ - InvalidAssetUnsupportedReserve: AugmentedError; - /** - * Origin is invalid for sending. - **/ - InvalidOrigin: AugmentedError; - /** - * Local XCM execution incomplete. - **/ - LocalExecutionIncomplete: AugmentedError; - /** - * A remote lock with the corresponding data could not be found. - **/ - LockNotFound: AugmentedError; - /** - * The owner does not own (all) of the asset that they wish to do the operation on. - **/ - LowBalance: AugmentedError; - /** - * The referenced subscription could not be found. - **/ - NoSubscription: AugmentedError; - /** - * There was some other issue (i.e. not to do with routing) in sending the message. - * Perhaps a lack of space for buffering the message. - **/ - SendFailure: AugmentedError; - /** - * Too many assets have been attempted for transfer. - **/ - TooManyAssets: AugmentedError; - /** - * The asset owner has too many locks on the asset. - **/ - TooManyLocks: AugmentedError; - /** - * Too many assets with different reserve locations have been attempted for transfer. - **/ - TooManyReserves: AugmentedError; - /** - * The desired destination was unreachable, generally because there is a no way of routing - * to it. - **/ - Unreachable: AugmentedError; - /** - * The message's weight could not be determined. - **/ - UnweighableMessage: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - proofsDealer: { - /** - * `challenge` extrinsic errors - * The ChallengesQueue is full. No more manual challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - ChallengesQueueOverflow: AugmentedError; - /** - * Provider is submitting a proof for a tick in the future. - **/ - ChallengesTickNotReached: AugmentedError; - /** - * Provider is submitting a proof for a tick too late, i.e. that the challenges tick - * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. - **/ - ChallengesTickTooLate: AugmentedError; - /** - * Provider is submitting a proof for a tick before the last tick this pallet registers - * challenges for. - **/ - ChallengesTickTooOld: AugmentedError; - /** - * Checkpoint challenges not found in block. - * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick - * that is not a checkpoint tick. - **/ - CheckpointChallengesNotFound: AugmentedError; - /** - * `submit_proof` extrinsic errors - * There are no key proofs submitted. - **/ - EmptyKeyProofs: AugmentedError; - /** - * Failed to apply delta to the forest proof partial trie. - **/ - FailedToApplyDelta: AugmentedError; - /** - * Failed to update the provider after a key removal mutation. - **/ - FailedToUpdateProviderAfterKeyRemoval: AugmentedError; - /** - * The fee for submitting a challenge could not be charged. - **/ - FeeChargeFailed: AugmentedError; - /** - * The forest proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root, or because the proof is - * not sufficient for the challenges made. - **/ - ForestProofVerificationFailed: AugmentedError; - /** - * There is at least one key proven in the forest proof, that does not have a corresponding - * key proof. - **/ - KeyProofNotFound: AugmentedError; - /** - * A key proof submitted by the Provider is invalid. - * This could be because the proof is not valid for the root of that key, or because the proof - * is not sufficient for the challenges made. - **/ - KeyProofVerificationFailed: AugmentedError; - /** - * Provider is submitting a proof but there is no record of the last tick they - * submitted a proof for. - * Providers who are required to submit proofs should always have a record of the - * last tick they submitted a proof for, otherwise it means they haven't started - * providing service for any user yet. - **/ - NoRecordOfLastSubmittedProof: AugmentedError; - /** - * General errors - * The proof submitter is not a registered Provider. - **/ - NotProvider: AugmentedError; - /** - * The PriorityChallengesQueue is full. No more priority challenges can be made - * until some of the challenges in the queue are dispatched. - **/ - PriorityChallengesQueueOverflow: AugmentedError; - /** - * The root for the Provider could not be found. - **/ - ProviderRootNotFound: AugmentedError; - /** - * The provider stake could not be found. - **/ - ProviderStakeNotFound: AugmentedError; - /** - * The seed for the tick could not be found. - * This should not be possible for a tick within the `ChallengeHistoryLength` range, as - * seeds are generated for all ticks, and stored within this range. - **/ - SeedNotFound: AugmentedError; - /** - * The staked balance of the Provider could not be converted to `u128`. - * This should not be possible, as the `Balance` type should be an unsigned integer type. - **/ - StakeCouldNotBeConverted: AugmentedError; - /** - * The limit of Providers that can submit a proof in a single tick has been reached. - **/ - TooManyValidProofSubmitters: AugmentedError; - /** - * Provider is submitting a proof when they have a zero root. - * Providers with zero roots are not providing any service, so they should not be - * submitting proofs. - **/ - ZeroRoot: AugmentedError; - /** - * Provider is submitting a proof but their stake is zero. - **/ - ZeroStake: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - providers: { - /** - * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. - **/ - AlreadyRegistered: AugmentedError; - /** - * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. - **/ - AppendBucketToMspFailed: AugmentedError; - /** - * Error thrown when a bucket ID already exists in storage. - **/ - BucketAlreadyExists: AugmentedError; - /** - * Error thrown when a bucket ID is not found in storage. - **/ - BucketNotFound: AugmentedError; - /** - * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. - **/ - CannotHoldDeposit: AugmentedError; - /** - * Error thrown when failing to decode the owner Account ID from the received metadata. - **/ - InvalidEncodedAccountId: AugmentedError; - /** - * Error thrown when failing to decode the metadata from a received trie value that was removed. - **/ - InvalidEncodedFileMetadata: AugmentedError; - /** - * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. - **/ - InvalidMultiAddress: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). - **/ - NewCapacityCantBeZero: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to the same value it already has. - **/ - NewCapacityEqualsCurrentCapacity: AugmentedError; - /** - * Error thrown when a user tries to change its capacity to less than its used storage. - **/ - NewCapacityLessThanUsedStorage: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. - **/ - NewUsedCapacityExceedsStorageCapacity: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a Bucket ID. - **/ - NoBucketId: AugmentedError; - /** - * Error thrown when a user tries to sign up without any multiaddress. - **/ - NoMultiAddress: AugmentedError; - /** - * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. - **/ - NotEnoughBalance: AugmentedError; - /** - * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. - **/ - NotEnoughTimePassed: AugmentedError; - /** - * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. - **/ - NotRegistered: AugmentedError; - /** - * Error thrown when trying to get a root from a MSP without passing a User ID. - **/ - NoUserId: AugmentedError; - /** - * Error thrown when trying to update a payment stream that does not exist. - **/ - PaymentStreamNotFound: AugmentedError; - /** - * Error thrown when an attempt was made to slash an unslashable Storage Provider. - **/ - ProviderNotSlashable: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. - **/ - RandomnessNotValidYet: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up that was not requested previously. - **/ - SignUpNotRequested: AugmentedError; - /** - * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. - **/ - SignUpRequestExpired: AugmentedError; - /** - * Error thrown when a user tries to request to sign up when it already has a sign up request pending. - **/ - SignUpRequestPending: AugmentedError; - /** - * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). - **/ - SpRegisteredButDataNotFound: AugmentedError; - /** - * Error thrown when a user tries to sign off as a SP but still has used storage. - **/ - StorageStillInUse: AugmentedError; - /** - * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. - **/ - StorageTooLow: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - session: { - /** - * Registered duplicate key. - **/ - DuplicatedKey: AugmentedError; - /** - * Invalid ownership proof. - **/ - InvalidProof: AugmentedError; - /** - * Key setting account is not live, so it's impossible to associate keys. - **/ - NoAccount: AugmentedError; - /** - * No associated validator ID for account. - **/ - NoAssociatedValidatorId: AugmentedError; - /** - * No keys are associated with this account. - **/ - NoKeys: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - sudo: { - /** - * Sender must be the Sudo account. - **/ - RequireSudo: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - system: { - /** - * The origin filter prevent the call to be dispatched. - **/ - CallFiltered: AugmentedError; - /** - * Failed to extract the runtime version from the new runtime. - * - * Either calling `Core_version` or decoding `RuntimeVersion` failed. - **/ - FailedToExtractRuntimeVersion: AugmentedError; - /** - * The name of specification does not match between the current runtime - * and the new runtime. - **/ - InvalidSpecName: AugmentedError; - /** - * A multi-block migration is ongoing and prevents the current code from being replaced. - **/ - MultiBlockMigrationsOngoing: AugmentedError; - /** - * Suicide called when the account has non-default composite data. - **/ - NonDefaultComposite: AugmentedError; - /** - * There is a non-zero reference count preventing the account from being purged. - **/ - NonZeroRefCount: AugmentedError; - /** - * No upgrade authorized. - **/ - NothingAuthorized: AugmentedError; - /** - * The specification version is not allowed to decrease between the current runtime - * and the new runtime. - **/ - SpecVersionNeedsToIncrease: AugmentedError; - /** - * The submitted code is not authorized. - **/ - Unauthorized: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - xcmpQueue: { - /** - * The execution is already resumed. - **/ - AlreadyResumed: AugmentedError; - /** - * The execution is already suspended. - **/ - AlreadySuspended: AugmentedError; - /** - * Setting the queue config failed since one of its values was invalid. - **/ - BadQueueConfig: AugmentedError; - /** - * The message is too big. - **/ - TooBig: AugmentedError; - /** - * There are too many active outbound channels. - **/ - TooManyActiveOutboundChannels: AugmentedError; - /** - * Generic error - **/ - [key: string]: AugmentedError; - }; - } // AugmentedErrors -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/errors"; + +import type { ApiTypes, AugmentedError } from "@polkadot/api-base/types"; + +export type __AugmentedError = AugmentedError; + +declare module "@polkadot/api-base/types/errors" { + interface AugmentedErrors { + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bucketNfts: { + /** + * Bucket is not private. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Failed to convert bytes to `BoundedVec` + **/ + ConvertBytesToBoundedVec: AugmentedError; + /** + * No collection corresponding to the bucket. Call `update_bucket_privacy` from the file system pallet to make it private. + **/ + NoCorrespondingCollection: AugmentedError; + /** + * Account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + collatorSelection: { + /** + * Account is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * Account is already an Invulnerable. + **/ + AlreadyInvulnerable: AugmentedError; + /** + * New deposit amount would be below the minimum candidacy bond. + **/ + DepositTooLow: AugmentedError; + /** + * The updated deposit amount is equal to the amount already reserved. + **/ + IdenticalDeposit: AugmentedError; + /** + * Could not insert in the candidate list. + **/ + InsertToCandidateListFailed: AugmentedError; + /** + * Deposit amount is too low to take the target's slot in the candidate list. + **/ + InsufficientBond: AugmentedError; + /** + * Cannot lower candidacy bond while occupying a future collator slot in the list. + **/ + InvalidUnreserve: AugmentedError; + /** + * Account has no associated validator ID. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * Account is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * Account is not an Invulnerable. + **/ + NotInvulnerable: AugmentedError; + /** + * Could not remove from the candidate list. + **/ + RemoveFromCandidateListFailed: AugmentedError; + /** + * The target account to be replaced in the candidate list is not a candidate. + **/ + TargetIsNotCandidate: AugmentedError; + /** + * Leaving would result in too few candidates. + **/ + TooFewEligibleCollators: AugmentedError; + /** + * The pallet has too many candidates. + **/ + TooManyCandidates: AugmentedError; + /** + * There are too many Invulnerables. + **/ + TooManyInvulnerables: AugmentedError; + /** + * Could not update the candidate list. + **/ + UpdateCandidateListFailed: AugmentedError; + /** + * Validator ID is not yet registered. + **/ + ValidatorNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fileSystem: { + /** + * BSP did not succeed threshold check. + **/ + AboveThreshold: AugmentedError; + /** + * BSP has already confirmed storing the given file. + **/ + BspAlreadyConfirmed: AugmentedError; + /** + * BSP is already a data server for the move bucket request. + **/ + BspAlreadyDataServer: AugmentedError; + /** + * BSP already volunteered to store the given file. + **/ + BspAlreadyVolunteered: AugmentedError; + /** + * Too many registered data servers for the move bucket request. + **/ + BspDataServersExceeded: AugmentedError; + /** + * BSP has not confirmed storing the given file. + **/ + BspNotConfirmed: AugmentedError; + /** + * BSP has not volunteered to store the given file. + **/ + BspNotVolunteered: AugmentedError; + /** + * BSPs required for storage request cannot exceed the maximum allowed. + **/ + BspsRequiredExceedsTarget: AugmentedError; + /** + * Action not allowed while the bucket is being moved. + **/ + BucketIsBeingMoved: AugmentedError; + /** + * Bucket is not private. Call `update_bucket_privacy` to make it private. + **/ + BucketIsNotPrivate: AugmentedError; + /** + * Bucket does not exist + **/ + BucketNotFound: AugmentedError; + /** + * Divided by 0 + **/ + DividedByZero: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of inclusion. + **/ + ExpectedInclusionProof: AugmentedError; + /** + * Failed to verify proof: required to provide a proof of non-inclusion. + **/ + ExpectedNonInclusionProof: AugmentedError; + /** + * Failed to decode threshold. + **/ + FailedToDecodeThreshold: AugmentedError; + /** + * Failed to encode BSP id as slice. + **/ + FailedToEncodeBsp: AugmentedError; + /** + * Failed to encode fingerprint as slice. + **/ + FailedToEncodeFingerprint: AugmentedError; + /** + * Failed to convert to primitive type. + **/ + FailedTypeConversion: AugmentedError; + /** + * File key already pending deletion. + **/ + FileKeyAlreadyPendingDeletion: AugmentedError; + /** + * File key not found in pending deletion requests. + **/ + FileKeyNotPendingDeletion: AugmentedError; + /** + * The bounded vector that holds file metadata to process it is full but there's still more to process. + **/ + FileMetadataProcessingQueueFull: AugmentedError; + /** + * File size cannot be zero. + **/ + FileSizeCannotBeZero: AugmentedError; + /** + * Failed to get value when just checked it existed. + **/ + ImpossibleFailedToGetValue: AugmentedError; + /** + * Key already exists in mapping when it should not. + **/ + InconsistentStateKeyAlreadyExists: AugmentedError; + /** + * SP does not have enough storage capacity to store the file. + **/ + InsufficientAvailableCapacity: AugmentedError; + /** + * Bucket id and file key pair is invalid. + **/ + InvalidBucketIdFileKeyPair: AugmentedError; + /** + * Metadata does not correspond to expected file key. + **/ + InvalidFileKeyMetadata: AugmentedError; + /** + * Error created in 2024. If you see this, you are well beyond the singularity and should + * probably stop using this pallet. + **/ + MaxBlockNumberReached: AugmentedError; + /** + * Maximum threshold cannot be zero. + **/ + MaximumThresholdCannotBeZero: AugmentedError; + /** + * Max number of user pending deletion requests reached. + **/ + MaxUserPendingDeletionRequestsReached: AugmentedError; + /** + * Minimum amount of blocks between the request opening and being able to confirm it not reached. + **/ + MinWaitForStopStoringNotReached: AugmentedError; + /** + * Move bucket request not found in storage. + **/ + MoveBucketRequestNotFound: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that it has already confirmed to store. + **/ + MspAlreadyConfirmed: AugmentedError; + /** + * The MSP is already storing the bucket. + **/ + MspAlreadyStoringBucket: AugmentedError; + /** + * Unauthorized operation, signer is not an MSP of the bucket id. + **/ + MspNotStoringBucket: AugmentedError; + /** + * No global reputation weight set. + **/ + NoGlobalReputationWeightSet: AugmentedError; + /** + * Account is not a BSP. + **/ + NotABsp: AugmentedError; + /** + * Account is not a MSP. + **/ + NotAMsp: AugmentedError; + /** + * Account is not a SP. + **/ + NotASp: AugmentedError; + /** + * Operation failed because the account is not the owner of the bucket. + **/ + NotBucketOwner: AugmentedError; + /** + * Unauthorized operation, signer does not own the file. + **/ + NotFileOwner: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request is not the one selected to store it. + **/ + NotSelectedMsp: AugmentedError; + /** + * Pending stop storing request already exists. + **/ + PendingStopStoringRequestAlreadyExists: AugmentedError; + /** + * Pending stop storing request not found. + **/ + PendingStopStoringRequestNotFound: AugmentedError; + /** + * Root of the provider not found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * Replication target cannot be zero. + **/ + ReplicationTargetCannotBeZero: AugmentedError; + /** + * The MSP is trying to confirm to store a file from a storage request that does not have a MSP assigned. + **/ + RequestWithoutMsp: AugmentedError; + /** + * Storage request already registered for the given file. + **/ + StorageRequestAlreadyRegistered: AugmentedError; + /** + * Number of BSPs required for storage request has been reached. + **/ + StorageRequestBspsRequiredFulfilled: AugmentedError; + /** + * Operation not allowed while the storage request exists. + **/ + StorageRequestExists: AugmentedError; + /** + * No slot available found in blocks to insert storage request expiration time. + **/ + StorageRequestExpiredNoSlotAvailable: AugmentedError; + /** + * Not authorized to delete the storage request. + **/ + StorageRequestNotAuthorized: AugmentedError; + /** + * Storage request not registered for the given file. + **/ + StorageRequestNotFound: AugmentedError; + /** + * Operation not allowed while the storage request is not being revoked. + **/ + StorageRequestNotRevoked: AugmentedError; + /** + * Arithmetic error in threshold calculation. + **/ + ThresholdArithmeticError: AugmentedError; + /** + * BSPs assignment threshold cannot be below asymptote. + **/ + ThresholdBelowAsymptote: AugmentedError; + /** + * Tick range to maximum threshold cannot be zero. + **/ + TickRangeToMaximumThresholdCannotBeZero: AugmentedError; + /** + * Too many batch responses to process. + **/ + TooManyBatchResponses: AugmentedError; + /** + * Too many storage request responses. + **/ + TooManyStorageRequestResponses: AugmentedError; + /** + * Number of removed BSPs volunteered from storage request prefix did not match the expected number. + **/ + UnexpectedNumberOfRemovedVolunteeredBsps: AugmentedError; + /** + * A SP tried to stop storing files from a user that was supposedly insolvent, but the user is not insolvent. + **/ + UserNotInsolvent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parachainSystem: { + /** + * The inherent which supplies the host configuration did not run this block. + **/ + HostConfigurationNotAvailable: AugmentedError; + /** + * No code upgrade has been authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * No validation function upgrade is currently scheduled. + **/ + NotScheduled: AugmentedError; + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ + OverlappingUpgrades: AugmentedError; + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ + ProhibitedByPolkadot: AugmentedError; + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ + TooBig: AugmentedError; + /** + * The given code upgrade has not been authorized. + **/ + Unauthorized: AugmentedError; + /** + * The inherent which supplies the validation data did not run this block. + **/ + ValidationDataNotAvailable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paymentStreams: { + /** + * Error thrown when trying to create a new dynamic-rate payment stream with amount provided 0 or update the amount provided of an existing one to 0 (should use remove_dynamic_rate_payment_stream instead) + **/ + AmountProvidedCantBeZero: AugmentedError; + /** + * Error thrown when the system can't hold funds from the User as a deposit for creating a new payment stream + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when charging a payment stream would result in an overflow of the balance type + **/ + ChargeOverflow: AugmentedError; + /** + * Error thrown when a user tries to clear the flag of being without funds before the cooldown period has passed + **/ + CooldownPeriodNotPassed: AugmentedError; + /** + * Error thrown when the new last chargeable tick number that is trying to be set is greater than the current tick number or smaller than the previous last chargeable tick number + **/ + InvalidLastChargeableBlockNumber: AugmentedError; + /** + * Error thrown when the new last chargeable price index that is trying to be set is greater than the current price index or smaller than the previous last chargeable price index + **/ + InvalidLastChargeablePriceIndex: AugmentedError; + /** + * Error thrown when the tick number of when the payment stream was last charged is greater than the tick number of the last chargeable tick + **/ + LastChargedGreaterThanLastChargeable: AugmentedError; + /** + * Error thrown when a user tries to charge a payment stream and it's not a registered Provider + **/ + NotAProvider: AugmentedError; + /** + * Error thrown when a user of this pallet tries to add a payment stream that already exists. + **/ + PaymentStreamAlreadyExists: AugmentedError; + /** + * Error thrown when a user of this pallet tries to update, remove or charge a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when failing to get the payment account of a registered Provider + **/ + ProviderInconsistencyError: AugmentedError; + /** + * Error thrown when trying to create a new fixed-rate payment stream with rate 0 or update the rate of an existing one to 0 (should use remove_fixed_rate_payment_stream instead) + **/ + RateCantBeZero: AugmentedError; + /** + * Error thrown when trying to update the amount provided of a dynamic-rate payment stream to the same amount as before + **/ + UpdateAmountToSameAmount: AugmentedError; + /** + * Error thrown when trying to update the rate of a fixed-rate payment stream to the same rate as before + **/ + UpdateRateToSameRate: AugmentedError; + /** + * Error thrown when a user that has not been flagged as without funds tries to use the extrinsic to pay its outstanding debt + **/ + UserNotFlaggedAsWithoutFunds: AugmentedError; + /** + * Error thrown when trying to operate when the User has been flagged for not having enough funds. + **/ + UserWithoutFunds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + polkadotXcm: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proofsDealer: { + /** + * `challenge` extrinsic errors + * The ChallengesQueue is full. No more manual challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + ChallengesQueueOverflow: AugmentedError; + /** + * Provider is submitting a proof for a tick in the future. + **/ + ChallengesTickNotReached: AugmentedError; + /** + * Provider is submitting a proof for a tick too late, i.e. that the challenges tick + * is greater or equal than `challenges_tick` + `T::ChallengeTicksTolerance::get()`. + **/ + ChallengesTickTooLate: AugmentedError; + /** + * Provider is submitting a proof for a tick before the last tick this pallet registers + * challenges for. + **/ + ChallengesTickTooOld: AugmentedError; + /** + * Checkpoint challenges not found in block. + * This should only be possible if `TickToCheckpointChallenges` is dereferenced for a tick + * that is not a checkpoint tick. + **/ + CheckpointChallengesNotFound: AugmentedError; + /** + * `submit_proof` extrinsic errors + * There are no key proofs submitted. + **/ + EmptyKeyProofs: AugmentedError; + /** + * Failed to apply delta to the forest proof partial trie. + **/ + FailedToApplyDelta: AugmentedError; + /** + * Failed to update the provider after a key removal mutation. + **/ + FailedToUpdateProviderAfterKeyRemoval: AugmentedError; + /** + * The fee for submitting a challenge could not be charged. + **/ + FeeChargeFailed: AugmentedError; + /** + * The forest proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root, or because the proof is + * not sufficient for the challenges made. + **/ + ForestProofVerificationFailed: AugmentedError; + /** + * There is at least one key proven in the forest proof, that does not have a corresponding + * key proof. + **/ + KeyProofNotFound: AugmentedError; + /** + * A key proof submitted by the Provider is invalid. + * This could be because the proof is not valid for the root of that key, or because the proof + * is not sufficient for the challenges made. + **/ + KeyProofVerificationFailed: AugmentedError; + /** + * Provider is submitting a proof but there is no record of the last tick they + * submitted a proof for. + * Providers who are required to submit proofs should always have a record of the + * last tick they submitted a proof for, otherwise it means they haven't started + * providing service for any user yet. + **/ + NoRecordOfLastSubmittedProof: AugmentedError; + /** + * General errors + * The proof submitter is not a registered Provider. + **/ + NotProvider: AugmentedError; + /** + * The PriorityChallengesQueue is full. No more priority challenges can be made + * until some of the challenges in the queue are dispatched. + **/ + PriorityChallengesQueueOverflow: AugmentedError; + /** + * The root for the Provider could not be found. + **/ + ProviderRootNotFound: AugmentedError; + /** + * The provider stake could not be found. + **/ + ProviderStakeNotFound: AugmentedError; + /** + * The seed for the tick could not be found. + * This should not be possible for a tick within the `ChallengeHistoryLength` range, as + * seeds are generated for all ticks, and stored within this range. + **/ + SeedNotFound: AugmentedError; + /** + * The staked balance of the Provider could not be converted to `u128`. + * This should not be possible, as the `Balance` type should be an unsigned integer type. + **/ + StakeCouldNotBeConverted: AugmentedError; + /** + * The limit of Providers that can submit a proof in a single tick has been reached. + **/ + TooManyValidProofSubmitters: AugmentedError; + /** + * Provider is submitting a proof when they have a zero root. + * Providers with zero roots are not providing any service, so they should not be + * submitting proofs. + **/ + ZeroRoot: AugmentedError; + /** + * Provider is submitting a proof but their stake is zero. + **/ + ZeroStake: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + providers: { + /** + * Error thrown when a user tries to sign up as a SP but is already registered as a MSP or BSP. + **/ + AlreadyRegistered: AugmentedError; + /** + * Error thrown when a bucket ID could not be added to the list of buckets of a MSP. + **/ + AppendBucketToMspFailed: AugmentedError; + /** + * Error thrown when a bucket ID already exists in storage. + **/ + BucketAlreadyExists: AugmentedError; + /** + * Error thrown when a bucket ID is not found in storage. + **/ + BucketNotFound: AugmentedError; + /** + * Error thrown when the runtime cannot hold the required deposit from the account to register it as a SP or change its capacity. + **/ + CannotHoldDeposit: AugmentedError; + /** + * Error thrown when failing to decode the owner Account ID from the received metadata. + **/ + InvalidEncodedAccountId: AugmentedError; + /** + * Error thrown when failing to decode the metadata from a received trie value that was removed. + **/ + InvalidEncodedFileMetadata: AugmentedError; + /** + * Error thrown when a user tries to sign up as a SP but any of the provided multiaddresses is invalid. + **/ + InvalidMultiAddress: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to zero (there are specific extrinsics to sign off as a SP). + **/ + NewCapacityCantBeZero: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to the same value it already has. + **/ + NewCapacityEqualsCurrentCapacity: AugmentedError; + /** + * Error thrown when a user tries to change its capacity to less than its used storage. + **/ + NewCapacityLessThanUsedStorage: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but the new capacity is not enough to store the used storage. + **/ + NewUsedCapacityExceedsStorageCapacity: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a Bucket ID. + **/ + NoBucketId: AugmentedError; + /** + * Error thrown when a user tries to sign up without any multiaddress. + **/ + NoMultiAddress: AugmentedError; + /** + * Error thrown when a user does not have enough balance to pay the deposit that it would incur by signing up as a SP or changing its capacity. + **/ + NotEnoughBalance: AugmentedError; + /** + * Error thrown when a SP tries to change its capacity but it has not been enough time since the last time it changed it. + **/ + NotEnoughTimePassed: AugmentedError; + /** + * Error thrown when a user tries to interact as a SP but is not registered as a MSP or BSP. + **/ + NotRegistered: AugmentedError; + /** + * Error thrown when trying to get a root from a MSP without passing a User ID. + **/ + NoUserId: AugmentedError; + /** + * Error thrown when trying to update a payment stream that does not exist. + **/ + PaymentStreamNotFound: AugmentedError; + /** + * Error thrown when an attempt was made to slash an unslashable Storage Provider. + **/ + ProviderNotSlashable: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but the randomness is too fresh to be used yet. + **/ + RandomnessNotValidYet: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up that was not requested previously. + **/ + SignUpNotRequested: AugmentedError; + /** + * Error thrown when a user tries to confirm a sign up but too much time has passed since the request. + **/ + SignUpRequestExpired: AugmentedError; + /** + * Error thrown when a user tries to request to sign up when it already has a sign up request pending. + **/ + SignUpRequestPending: AugmentedError; + /** + * Error thrown when a user has a SP ID assigned to it but the SP data does not exist in storage (Inconsistency error). + **/ + SpRegisteredButDataNotFound: AugmentedError; + /** + * Error thrown when a user tries to sign off as a SP but still has used storage. + **/ + StorageStillInUse: AugmentedError; + /** + * Error thrown when a user tries to sign up or change its capacity to store less storage than the minimum required by the runtime. + **/ + StorageTooLow: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + sudo: { + /** + * Sender must be the Sudo account. + **/ + RequireSudo: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmpQueue: { + /** + * The execution is already resumed. + **/ + AlreadyResumed: AugmentedError; + /** + * The execution is already suspended. + **/ + AlreadySuspended: AugmentedError; + /** + * Setting the queue config failed since one of its values was invalid. + **/ + BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/api-augment/src/interfaces/augment-api-events.ts b/api-augment/src/interfaces/augment-api-events.ts index 87e2dca74..f1dcba983 100644 --- a/api-augment/src/interfaces/augment-api-events.ts +++ b/api-augment/src/interfaces/augment-api-events.ts @@ -1,1824 +1,1824 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/events"; - -import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; -import type { - Bytes, - Null, - Option, - Result, - U8aFixed, - Vec, - bool, - u128, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - FrameSupportDispatchDispatchInfo, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemMspRespondStorageRequestsResult, - PalletNftsAttributeNamespace, - PalletNftsPalletAttributes, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - ShpTraitsTrieRemoveMutation, - SpRuntimeDispatchError, - SpWeightsWeightV2Weight, - StagingXcmV4AssetAssets, - StagingXcmV4Location, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - XcmV3TraitsError, - XcmVersionedAssets, - XcmVersionedLocation -} from "@polkadot/types/lookup"; - -export type __AugmentedEvent = AugmentedEvent; - -declare module "@polkadot/api-base/types/events" { - interface AugmentedEvents { - balances: { - /** - * A balance was set by root. - **/ - BalanceSet: AugmentedEvent< - ApiType, - [who: AccountId32, free: u128], - { who: AccountId32; free: u128 } - >; - /** - * Some amount was burned from an account. - **/ - Burned: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was deposited (e.g. for transaction fees). - **/ - Deposit: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * An account was removed whose balance was non-zero but below ExistentialDeposit, - * resulting in an outright loss. - **/ - DustLost: AugmentedEvent< - ApiType, - [account: AccountId32, amount: u128], - { account: AccountId32; amount: u128 } - >; - /** - * An account was created with some free balance. - **/ - Endowed: AugmentedEvent< - ApiType, - [account: AccountId32, freeBalance: u128], - { account: AccountId32; freeBalance: u128 } - >; - /** - * Some balance was frozen. - **/ - Frozen: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Total issuance was increased by `amount`, creating a credit to be balanced. - **/ - Issued: AugmentedEvent; - /** - * Some balance was locked. - **/ - Locked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was minted into an account. - **/ - Minted: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Total issuance was decreased by `amount`, creating a debt to be balanced. - **/ - Rescinded: AugmentedEvent; - /** - * Some balance was reserved (moved from free to reserved). - **/ - Reserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some balance was moved from the reserve of the first account to the second account. - * Final argument indicates the destination balance type. - **/ - ReserveRepatriated: AugmentedEvent< - ApiType, - [ - from: AccountId32, - to: AccountId32, - amount: u128, - destinationStatus: FrameSupportTokensMiscBalanceStatus - ], - { - from: AccountId32; - to: AccountId32; - amount: u128; - destinationStatus: FrameSupportTokensMiscBalanceStatus; - } - >; - /** - * Some amount was restored into an account. - **/ - Restored: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was removed from the account (e.g. for misbehavior). - **/ - Slashed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some amount was suspended from an account (it can be restored later). - **/ - Suspended: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some balance was thawed. - **/ - Thawed: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * The `TotalIssuance` was forcefully changed. - **/ - TotalIssuanceForced: AugmentedEvent< - ApiType, - [old: u128, new_: u128], - { old: u128; new_: u128 } - >; - /** - * Transfer succeeded. - **/ - Transfer: AugmentedEvent< - ApiType, - [from: AccountId32, to: AccountId32, amount: u128], - { from: AccountId32; to: AccountId32; amount: u128 } - >; - /** - * Some balance was unlocked. - **/ - Unlocked: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Some balance was unreserved (moved from reserved to free). - **/ - Unreserved: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * An account was upgraded. - **/ - Upgraded: AugmentedEvent; - /** - * Some amount was withdrawn from the account (e.g. for transaction fees). - **/ - Withdraw: AugmentedEvent< - ApiType, - [who: AccountId32, amount: u128], - { who: AccountId32; amount: u128 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - bucketNfts: { - /** - * Notifies that access to a bucket has been shared with another account. - **/ - AccessShared: AugmentedEvent< - ApiType, - [issuer: AccountId32, recipient: AccountId32], - { issuer: AccountId32; recipient: AccountId32 } - >; - /** - * Notifies that an item has been burned. - **/ - ItemBurned: AugmentedEvent< - ApiType, - [account: AccountId32, bucket: H256, itemId: u32], - { account: AccountId32; bucket: H256; itemId: u32 } - >; - /** - * Notifies that the read access for an item has been updated. - **/ - ItemReadAccessUpdated: AugmentedEvent< - ApiType, - [admin: AccountId32, bucket: H256, itemId: u32], - { admin: AccountId32; bucket: H256; itemId: u32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - collatorSelection: { - /** - * A new candidate joined. - **/ - CandidateAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { accountId: AccountId32; deposit: u128 } - >; - /** - * Bond of a candidate updated. - **/ - CandidateBondUpdated: AugmentedEvent< - ApiType, - [accountId: AccountId32, deposit: u128], - { accountId: AccountId32; deposit: u128 } - >; - /** - * A candidate was removed. - **/ - CandidateRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * An account was replaced in the candidate list by another one. - **/ - CandidateReplaced: AugmentedEvent< - ApiType, - [old: AccountId32, new_: AccountId32, deposit: u128], - { old: AccountId32; new_: AccountId32; deposit: u128 } - >; - /** - * An account was unable to be added to the Invulnerables because they did not have keys - * registered. Other Invulnerables may have been set. - **/ - InvalidInvulnerableSkipped: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * A new Invulnerable was added. - **/ - InvulnerableAdded: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * An Invulnerable was removed. - **/ - InvulnerableRemoved: AugmentedEvent< - ApiType, - [accountId: AccountId32], - { accountId: AccountId32 } - >; - /** - * The candidacy bond was set. - **/ - NewCandidacyBond: AugmentedEvent; - /** - * The number of desired candidates was set. - **/ - NewDesiredCandidates: AugmentedEvent< - ApiType, - [desiredCandidates: u32], - { desiredCandidates: u32 } - >; - /** - * New Invulnerables were set. - **/ - NewInvulnerables: AugmentedEvent< - ApiType, - [invulnerables: Vec], - { invulnerables: Vec } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - cumulusXcm: { - /** - * Downward message executed with the given outcome. - * \[ id, outcome \] - **/ - ExecutedDownward: AugmentedEvent; - /** - * Downward message is invalid XCM. - * \[ id \] - **/ - InvalidFormat: AugmentedEvent; - /** - * Downward message is unsupported version of XCM. - * \[ id \] - **/ - UnsupportedVersion: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - fileSystem: { - /** - * Notifies that a BSP has been accepted to store a given file. - **/ - AcceptedBspVolunteer: AugmentedEvent< - ApiType, - [ - bspId: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - multiaddresses: Vec, - owner: AccountId32, - size_: u64 - ], - { - bspId: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - multiaddresses: Vec; - owner: AccountId32; - size_: u64; - } - >; - /** - * Notifies that a BSP's challenge cycle has been initialised, adding the first file - * key(s) to the BSP's Merkle Patricia Forest. - **/ - BspChallengeCycleInitialised: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { who: AccountId32; bspId: H256 } - >; - /** - * Notifies that a BSP confirmed storing a file(s). - **/ - BspConfirmedStoring: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], - { who: AccountId32; bspId: H256; fileKeys: Vec; newRoot: H256 } - >; - /** - * Notifies that a BSP has stopped storing a file. - **/ - BspConfirmStoppedStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, newRoot: H256], - { bspId: H256; fileKey: H256; newRoot: H256 } - >; - /** - * Notifies that a BSP has opened a request to stop storing a file. - **/ - BspRequestedToStopStoring: AugmentedEvent< - ApiType, - [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], - { bspId: H256; fileKey: H256; owner: AccountId32; location: Bytes } - >; - /** - * Notifies that a bucket's privacy has been updated. - **/ - BucketPrivacyUpdated: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], - { who: AccountId32; bucketId: H256; collectionId: Option; private: bool } - >; - /** - * Notifies that a data server has been registered for a move bucket request. - **/ - DataServerRegisteredForMoveBucket: AugmentedEvent< - ApiType, - [bspId: H256, bucketId: H256], - { bspId: H256; bucketId: H256 } - >; - /** - * Notifies that a priority challenge failed to be queued for pending file deletion. - **/ - FailedToQueuePriorityChallenge: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256], - { user: AccountId32; fileKey: H256 } - >; - /** - * Notifies that a file will be deleted. - **/ - FileDeletionRequest: AugmentedEvent< - ApiType, - [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], - { user: AccountId32; fileKey: H256; bucketId: H256; mspId: H256; proofOfInclusion: bool } - >; - /** - * Notifies that a bucket has been moved to a new MSP. - **/ - MoveBucketAccepted: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { bucketId: H256; mspId: H256 } - >; - /** - * Notifies that a bucket move request has been rejected by the MSP. - **/ - MoveBucketRejected: AugmentedEvent< - ApiType, - [bucketId: H256, mspId: H256], - { bucketId: H256; mspId: H256 } - >; - /** - * Notifies that a bucket is being moved to a new MSP. - **/ - MoveBucketRequested: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, newMspId: H256], - { who: AccountId32; bucketId: H256; newMspId: H256 } - >; - /** - * Notifies that a move bucket request has expired. - **/ - MoveBucketRequestExpired: AugmentedEvent< - ApiType, - [mspId: H256, bucketId: H256], - { mspId: H256; bucketId: H256 } - >; - /** - * Notifies that a MSP has responded to storage request(s). - **/ - MspRespondedToStorageRequests: AugmentedEvent< - ApiType, - [results: PalletFileSystemMspRespondStorageRequestsResult], - { results: PalletFileSystemMspRespondStorageRequestsResult } - >; - /** - * Notifies that a new bucket has been created. - **/ - NewBucket: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - bucketId: H256, - name: Bytes, - collectionId: Option, - private: bool - ], - { - who: AccountId32; - mspId: H256; - bucketId: H256; - name: Bytes; - collectionId: Option; - private: bool; - } - >; - /** - * Notifies that a new collection has been created and associated with a bucket. - **/ - NewCollectionAndAssociation: AugmentedEvent< - ApiType, - [who: AccountId32, bucketId: H256, collectionId: u32], - { who: AccountId32; bucketId: H256; collectionId: u32 } - >; - /** - * Notifies that a new file has been requested to be stored. - **/ - NewStorageRequest: AugmentedEvent< - ApiType, - [ - who: AccountId32, - fileKey: H256, - bucketId: H256, - location: Bytes, - fingerprint: H256, - size_: u64, - peerIds: Vec - ], - { - who: AccountId32; - fileKey: H256; - bucketId: H256; - location: Bytes; - fingerprint: H256; - size_: u64; - peerIds: Vec; - } - >; - /** - * Notifies that a file key has been queued for a priority challenge for file deletion. - **/ - PriorityChallengeForFileDeletionQueued: AugmentedEvent< - ApiType, - [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], - { issuer: PalletFileSystemEitherAccountIdOrMspId; fileKey: H256 } - >; - /** - * Notifies that a proof has been submitted for a pending file deletion request. - **/ - ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< - ApiType, - [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], - { mspId: H256; user: AccountId32; fileKey: H256; bucketId: H256; proofOfInclusion: bool } - >; - /** - * Notifies that a SP has stopped storing a file because its owner has become insolvent. - **/ - SpStopStoringInsolventUser: AugmentedEvent< - ApiType, - [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], - { spId: H256; fileKey: H256; owner: AccountId32; location: Bytes; newRoot: H256 } - >; - /** - * Notifies the expiration of a storage request. - **/ - StorageRequestExpired: AugmentedEvent; - /** - * Notifies that a storage request for a file key has been fulfilled. - **/ - StorageRequestFulfilled: AugmentedEvent; - /** - * Notifies that a storage request has been revoked by the user who initiated it. - **/ - StorageRequestRevoked: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - messageQueue: { - /** - * Message placed in overweight queue. - **/ - OverweightEnqueued: AugmentedEvent< - ApiType, - [ - id: U8aFixed, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - pageIndex: u32, - messageIndex: u32 - ], - { - id: U8aFixed; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - pageIndex: u32; - messageIndex: u32; - } - >; - /** - * This page was reaped. - **/ - PageReaped: AugmentedEvent< - ApiType, - [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], - { origin: CumulusPrimitivesCoreAggregateMessageOrigin; index: u32 } - >; - /** - * Message is processed. - **/ - Processed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - weightUsed: SpWeightsWeightV2Weight, - success: bool - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - weightUsed: SpWeightsWeightV2Weight; - success: bool; - } - >; - /** - * Message discarded due to an error in the `MessageProcessor` (usually a format error). - **/ - ProcessingFailed: AugmentedEvent< - ApiType, - [ - id: H256, - origin: CumulusPrimitivesCoreAggregateMessageOrigin, - error: FrameSupportMessagesProcessMessageError - ], - { - id: H256; - origin: CumulusPrimitivesCoreAggregateMessageOrigin; - error: FrameSupportMessagesProcessMessageError; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - nfts: { - /** - * All approvals of an item got cancelled. - **/ - AllApprovalsCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { collection: u32; item: u32; owner: AccountId32 } - >; - /** - * An approval for a `delegate` account to transfer the `item` of an item - * `collection` was cancelled by its `owner`. - **/ - ApprovalCancelled: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], - { collection: u32; item: u32; owner: AccountId32; delegate: AccountId32 } - >; - /** - * Attribute metadata has been cleared for a `collection` or `item`. - **/ - AttributeCleared: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * New attribute metadata has been set for a `collection` or `item`. - **/ - AttributeSet: AugmentedEvent< - ApiType, - [ - collection: u32, - maybeItem: Option, - key: Bytes, - value: Bytes, - namespace: PalletNftsAttributeNamespace - ], - { - collection: u32; - maybeItem: Option; - key: Bytes; - value: Bytes; - namespace: PalletNftsAttributeNamespace; - } - >; - /** - * An `item` was destroyed. - **/ - Burned: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { collection: u32; item: u32; owner: AccountId32 } - >; - /** - * A `collection` has had its config changed by the `Force` origin. - **/ - CollectionConfigChanged: AugmentedEvent; - /** - * Some `collection` was locked. - **/ - CollectionLocked: AugmentedEvent; - /** - * Max supply has been set for a collection. - **/ - CollectionMaxSupplySet: AugmentedEvent< - ApiType, - [collection: u32, maxSupply: u32], - { collection: u32; maxSupply: u32 } - >; - /** - * Metadata has been cleared for a `collection`. - **/ - CollectionMetadataCleared: AugmentedEvent; - /** - * New metadata has been set for a `collection`. - **/ - CollectionMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, data: Bytes], - { collection: u32; data: Bytes } - >; - /** - * Mint settings for a collection had changed. - **/ - CollectionMintSettingsUpdated: AugmentedEvent< - ApiType, - [collection: u32], - { collection: u32 } - >; - /** - * A `collection` was created. - **/ - Created: AugmentedEvent< - ApiType, - [collection: u32, creator: AccountId32, owner: AccountId32], - { collection: u32; creator: AccountId32; owner: AccountId32 } - >; - /** - * A `collection` was destroyed. - **/ - Destroyed: AugmentedEvent; - /** - * A `collection` was force-created. - **/ - ForceCreated: AugmentedEvent< - ApiType, - [collection: u32, owner: AccountId32], - { collection: u32; owner: AccountId32 } - >; - /** - * An `item` was issued. - **/ - Issued: AugmentedEvent< - ApiType, - [collection: u32, item: u32, owner: AccountId32], - { collection: u32; item: u32; owner: AccountId32 } - >; - /** - * A new approval to modify item attributes was added. - **/ - ItemAttributesApprovalAdded: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { collection: u32; item: u32; delegate: AccountId32 } - >; - /** - * A new approval to modify item attributes was removed. - **/ - ItemAttributesApprovalRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32, delegate: AccountId32], - { collection: u32; item: u32; delegate: AccountId32 } - >; - /** - * An item was bought. - **/ - ItemBought: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], - { collection: u32; item: u32; price: u128; seller: AccountId32; buyer: AccountId32 } - >; - /** - * Metadata has been cleared for an item. - **/ - ItemMetadataCleared: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * New metadata has been set for an item. - **/ - ItemMetadataSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, data: Bytes], - { collection: u32; item: u32; data: Bytes } - >; - /** - * The price for the item was removed. - **/ - ItemPriceRemoved: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * The price was set for the item. - **/ - ItemPriceSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], - { collection: u32; item: u32; price: u128; whitelistedBuyer: Option } - >; - /** - * `item` metadata or attributes were locked. - **/ - ItemPropertiesLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], - { collection: u32; item: u32; lockMetadata: bool; lockAttributes: bool } - >; - /** - * An `item` became non-transferable. - **/ - ItemTransferLocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * An `item` became transferable. - **/ - ItemTransferUnlocked: AugmentedEvent< - ApiType, - [collection: u32, item: u32], - { collection: u32; item: u32 } - >; - /** - * Event gets emitted when the `NextCollectionId` gets incremented. - **/ - NextCollectionIdIncremented: AugmentedEvent< - ApiType, - [nextId: Option], - { nextId: Option } - >; - /** - * The owner changed. - **/ - OwnerChanged: AugmentedEvent< - ApiType, - [collection: u32, newOwner: AccountId32], - { collection: u32; newOwner: AccountId32 } - >; - /** - * Ownership acceptance has changed for an account. - **/ - OwnershipAcceptanceChanged: AugmentedEvent< - ApiType, - [who: AccountId32, maybeCollection: Option], - { who: AccountId32; maybeCollection: Option } - >; - /** - * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` - * within that `collection`. - **/ - PalletAttributeSet: AugmentedEvent< - ApiType, - [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], - { collection: u32; item: Option; attribute: PalletNftsPalletAttributes; value: Bytes } - >; - /** - * New attributes have been set for an `item` of the `collection`. - **/ - PreSignedAttributesSet: AugmentedEvent< - ApiType, - [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], - { collection: u32; item: u32; namespace: PalletNftsAttributeNamespace } - >; - /** - * The deposit for a set of `item`s within a `collection` has been updated. - **/ - Redeposited: AugmentedEvent< - ApiType, - [collection: u32, successfulItems: Vec], - { collection: u32; successfulItems: Vec } - >; - /** - * The swap was cancelled. - **/ - SwapCancelled: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The swap has been claimed. - **/ - SwapClaimed: AugmentedEvent< - ApiType, - [ - sentCollection: u32, - sentItem: u32, - sentItemOwner: AccountId32, - receivedCollection: u32, - receivedItem: u32, - receivedItemOwner: AccountId32, - price: Option, - deadline: u32 - ], - { - sentCollection: u32; - sentItem: u32; - sentItemOwner: AccountId32; - receivedCollection: u32; - receivedItem: u32; - receivedItemOwner: AccountId32; - price: Option; - deadline: u32; - } - >; - /** - * An `item` swap intent was created. - **/ - SwapCreated: AugmentedEvent< - ApiType, - [ - offeredCollection: u32, - offeredItem: u32, - desiredCollection: u32, - desiredItem: Option, - price: Option, - deadline: u32 - ], - { - offeredCollection: u32; - offeredItem: u32; - desiredCollection: u32; - desiredItem: Option; - price: Option; - deadline: u32; - } - >; - /** - * The management team changed. - **/ - TeamChanged: AugmentedEvent< - ApiType, - [ - collection: u32, - issuer: Option, - admin: Option, - freezer: Option - ], - { - collection: u32; - issuer: Option; - admin: Option; - freezer: Option; - } - >; - /** - * A tip was sent. - **/ - TipSent: AugmentedEvent< - ApiType, - [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], - { collection: u32; item: u32; sender: AccountId32; receiver: AccountId32; amount: u128 } - >; - /** - * An `item` of a `collection` has been approved by the `owner` for transfer by - * a `delegate`. - **/ - TransferApproved: AugmentedEvent< - ApiType, - [ - collection: u32, - item: u32, - owner: AccountId32, - delegate: AccountId32, - deadline: Option - ], - { - collection: u32; - item: u32; - owner: AccountId32; - delegate: AccountId32; - deadline: Option; - } - >; - /** - * An `item` was transferred. - **/ - Transferred: AugmentedEvent< - ApiType, - [collection: u32, item: u32, from: AccountId32, to: AccountId32], - { collection: u32; item: u32; from: AccountId32; to: AccountId32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parachainSystem: { - /** - * Downward messages were processed using the given weight. - **/ - DownwardMessagesProcessed: AugmentedEvent< - ApiType, - [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], - { weightUsed: SpWeightsWeightV2Weight; dmqHead: H256 } - >; - /** - * Some downward messages have been received and will be processed. - **/ - DownwardMessagesReceived: AugmentedEvent; - /** - * An upward message was sent to the relay chain. - **/ - UpwardMessageSent: AugmentedEvent< - ApiType, - [messageHash: Option], - { messageHash: Option } - >; - /** - * The validation function was applied as of the contained relay chain block number. - **/ - ValidationFunctionApplied: AugmentedEvent< - ApiType, - [relayChainBlockNum: u32], - { relayChainBlockNum: u32 } - >; - /** - * The relay-chain aborted the upgrade process. - **/ - ValidationFunctionDiscarded: AugmentedEvent; - /** - * The validation function has been scheduled to apply. - **/ - ValidationFunctionStored: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - parameters: { - /** - * A Parameter was set. - * - * Is also emitted when the value was not changed. - **/ - Updated: AugmentedEvent< - ApiType, - [ - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - oldValue: Option, - newValue: Option - ], - { - key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - oldValue: Option; - newValue: Option; - } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - paymentStreams: { - /** - * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream - * and the initial amount provided. - **/ - DynamicRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amountProvided: u64], - { userAccount: AccountId32; providerId: H256; amountProvided: u64 } - >; - /** - * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - DynamicRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { userAccount: AccountId32; providerId: H256 } - >; - /** - * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new amount provided. - **/ - DynamicRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], - { userAccount: AccountId32; providerId: H256; newAmountProvided: u64 } - >; - /** - * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream - * and its initial rate. - **/ - FixedRatePaymentStreamCreated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, rate: u128], - { userAccount: AccountId32; providerId: H256; rate: u128 } - >; - /** - * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. - **/ - FixedRatePaymentStreamDeleted: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256], - { userAccount: AccountId32; providerId: H256 } - >; - /** - * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream - * and the new rate of the stream. - **/ - FixedRatePaymentStreamUpdated: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, newRate: u128], - { userAccount: AccountId32; providerId: H256; newRate: u128 } - >; - /** - * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, - * the tick number of the last chargeable tick and the price index at that tick. - **/ - LastChargeableInfoUpdated: AugmentedEvent< - ApiType, - [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], - { providerId: H256; lastChargeableTick: u32; lastChargeablePriceIndex: u128 } - >; - /** - * Event emitted when a payment is charged. Provides information about the user that was charged, - * the Provider that received the funds, and the amount that was charged. - **/ - PaymentStreamCharged: AugmentedEvent< - ApiType, - [userAccount: AccountId32, providerId: H256, amount: u128], - { userAccount: AccountId32; providerId: H256; amount: u128 } - >; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. - **/ - UserPaidDebts: AugmentedEvent; - /** - * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, - * correctly paid all their outstanding debt and can now contract new services again. - **/ - UserSolvent: AugmentedEvent; - /** - * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. - * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can - * stop providing services to that user. - **/ - UserWithoutFunds: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - polkadotXcm: { - /** - * Some assets have been claimed from an asset trap - **/ - AssetsClaimed: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } - >; - /** - * Some assets have been placed in an asset trap. - **/ - AssetsTrapped: AugmentedEvent< - ApiType, - [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], - { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } - >; - /** - * Execution of an XCM message was attempted. - **/ - Attempted: AugmentedEvent< - ApiType, - [outcome: StagingXcmV4TraitsOutcome], - { outcome: StagingXcmV4TraitsOutcome } - >; - /** - * Fees were paid from a location for an operation (often for using `SendXcm`). - **/ - FeesPaid: AugmentedEvent< - ApiType, - [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], - { paying: StagingXcmV4Location; fees: StagingXcmV4AssetAssets } - >; - /** - * Expected query response has been received but the querier location of the response does - * not match the expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidQuerier: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedQuerier: StagingXcmV4Location, - maybeActualQuerier: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedQuerier: StagingXcmV4Location; - maybeActualQuerier: Option; - } - >; - /** - * Expected query response has been received but the expected querier location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidQuerierVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { origin: StagingXcmV4Location; queryId: u64 } - >; - /** - * Expected query response has been received but the origin location of the response does - * not match that expected. The query remains registered for a later, valid, response to - * be received and acted upon. - **/ - InvalidResponder: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - queryId: u64, - expectedLocation: Option - ], - { - origin: StagingXcmV4Location; - queryId: u64; - expectedLocation: Option; - } - >; - /** - * Expected query response has been received but the expected origin location placed in - * storage by this runtime previously cannot be decoded. The query remains registered. - * - * This is unexpected (since a location placed in storage in a previously executing - * runtime should be readable prior to query timeout) and dangerous since the possibly - * valid response will be dropped. Manual governance intervention is probably going to be - * needed. - **/ - InvalidResponderVersion: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { origin: StagingXcmV4Location; queryId: u64 } - >; - /** - * Query response has been received and query is removed. The registered notification has - * been dispatched and executed successfully. - **/ - Notified: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { queryId: u64; palletIndex: u8; callIndex: u8 } - >; - /** - * Query response has been received and query is removed. The dispatch was unable to be - * decoded into a `Call`; this might be due to dispatch function having a signature which - * is not `(origin, QueryId, Response)`. - **/ - NotifyDecodeFailed: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { queryId: u64; palletIndex: u8; callIndex: u8 } - >; - /** - * Query response has been received and query is removed. There was a general error with - * dispatching the notification call. - **/ - NotifyDispatchError: AugmentedEvent< - ApiType, - [queryId: u64, palletIndex: u8, callIndex: u8], - { queryId: u64; palletIndex: u8; callIndex: u8 } - >; - /** - * Query response has been received and query is removed. The registered notification - * could not be dispatched because the dispatch weight is greater than the maximum weight - * originally budgeted by this runtime for the query result. - **/ - NotifyOverweight: AugmentedEvent< - ApiType, - [ - queryId: u64, - palletIndex: u8, - callIndex: u8, - actualWeight: SpWeightsWeightV2Weight, - maxBudgetedWeight: SpWeightsWeightV2Weight - ], - { - queryId: u64; - palletIndex: u8; - callIndex: u8; - actualWeight: SpWeightsWeightV2Weight; - maxBudgetedWeight: SpWeightsWeightV2Weight; - } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * migrating the location to our new XCM format. - **/ - NotifyTargetMigrationFail: AugmentedEvent< - ApiType, - [location: XcmVersionedLocation, queryId: u64], - { location: XcmVersionedLocation; queryId: u64 } - >; - /** - * A given location which had a version change subscription was dropped owing to an error - * sending the notification to it. - **/ - NotifyTargetSendFail: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], - { location: StagingXcmV4Location; queryId: u64; error: XcmV3TraitsError } - >; - /** - * Query response has been received and is ready for taking with `take_response`. There is - * no registered notification call. - **/ - ResponseReady: AugmentedEvent< - ApiType, - [queryId: u64, response: StagingXcmV4Response], - { queryId: u64; response: StagingXcmV4Response } - >; - /** - * Received query response has been read and removed. - **/ - ResponseTaken: AugmentedEvent; - /** - * A XCM message was sent. - **/ - Sent: AugmentedEvent< - ApiType, - [ - origin: StagingXcmV4Location, - destination: StagingXcmV4Location, - message: StagingXcmV4Xcm, - messageId: U8aFixed - ], - { - origin: StagingXcmV4Location; - destination: StagingXcmV4Location; - message: StagingXcmV4Xcm; - messageId: U8aFixed; - } - >; - /** - * The supported version of a location has been changed. This might be through an - * automatic notification or a manual intervention. - **/ - SupportedVersionChanged: AugmentedEvent< - ApiType, - [location: StagingXcmV4Location, version: u32], - { location: StagingXcmV4Location; version: u32 } - >; - /** - * Query response received which does not match a registered query. This may be because a - * matching query was never registered, it may be because it is a duplicate response, or - * because the query timed out. - **/ - UnexpectedResponse: AugmentedEvent< - ApiType, - [origin: StagingXcmV4Location, queryId: u64], - { origin: StagingXcmV4Location; queryId: u64 } - >; - /** - * An XCM version change notification message has been attempted to be sent. - * - * The cost of sending it (borne by the chain) is included. - **/ - VersionChangeNotified: AugmentedEvent< - ApiType, - [ - destination: StagingXcmV4Location, - result: u32, - cost: StagingXcmV4AssetAssets, - messageId: U8aFixed - ], - { - destination: StagingXcmV4Location; - result: u32; - cost: StagingXcmV4AssetAssets; - messageId: U8aFixed; - } - >; - /** - * A XCM version migration finished. - **/ - VersionMigrationFinished: AugmentedEvent; - /** - * We have requested that a remote chain send us XCM version change notifications. - **/ - VersionNotifyRequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } - >; - /** - * A remote has requested XCM version change notification from us and we have honored it. - * A version information message is sent to them and its cost is included. - **/ - VersionNotifyStarted: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } - >; - /** - * We have requested that a remote chain stops sending us XCM version change - * notifications. - **/ - VersionNotifyUnrequested: AugmentedEvent< - ApiType, - [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], - { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - proofsDealer: { - /** - * The [`ChallengesTicker`] has been paused or unpaused. - **/ - ChallengesTickerSet: AugmentedEvent; - /** - * A set of mutations has been applied to the Forest. - **/ - MutationsApplied: AugmentedEvent< - ApiType, - [ - provider: H256, - mutations: Vec>, - newRoot: H256 - ], - { - provider: H256; - mutations: Vec>; - newRoot: H256; - } - >; - /** - * A manual challenge was submitted. - **/ - NewChallenge: AugmentedEvent< - ApiType, - [who: AccountId32, keyChallenged: H256], - { who: AccountId32; keyChallenged: H256 } - >; - /** - * A provider's challenge cycle was initialised. - **/ - NewChallengeCycleInitialised: AugmentedEvent< - ApiType, - [ - currentTick: u32, - nextChallengeDeadline: u32, - provider: H256, - maybeProviderAccount: Option - ], - { - currentTick: u32; - nextChallengeDeadline: u32; - provider: H256; - maybeProviderAccount: Option; - } - >; - /** - * A new challenge seed was generated. - **/ - NewChallengeSeed: AugmentedEvent< - ApiType, - [challengesTicker: u32, seed: H256], - { challengesTicker: u32; seed: H256 } - >; - /** - * A new checkpoint challenge was generated. - **/ - NewCheckpointChallenge: AugmentedEvent< - ApiType, - [ - challengesTicker: u32, - challenges: Vec]>> - ], - { - challengesTicker: u32; - challenges: Vec]>>; - } - >; - /** - * No record of the last tick the Provider submitted a proof for. - **/ - NoRecordOfLastSubmittedProof: AugmentedEvent; - /** - * A proof was accepted. - **/ - ProofAccepted: AugmentedEvent< - ApiType, - [provider: H256, proof: PalletProofsDealerProof], - { provider: H256; proof: PalletProofsDealerProof } - >; - /** - * A provider was marked as slashable and their challenge deadline was forcefully pushed. - **/ - SlashableProvider: AugmentedEvent< - ApiType, - [provider: H256, nextChallengeDeadline: u32], - { provider: H256; nextChallengeDeadline: u32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - providers: { - /** - * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about - * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. - **/ - BspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, multiaddresses: Vec, capacity: u64], - { who: AccountId32; multiaddresses: Vec; capacity: u64 } - >; - /** - * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about - * that BSP's account id. - **/ - BspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256], - { who: AccountId32; bspId: H256 } - >; - /** - * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about - * that BSP's account id, the total data it can store according to its stake, and its multiaddress. - **/ - BspSignUpSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], - { who: AccountId32; bspId: H256; multiaddresses: Vec; capacity: u64 } - >; - /** - * Event emitted when a SP has changed its capacity successfully. Provides information about - * that SP's account id, its old total data that could store, and the new total data. - **/ - CapacityChanged: AugmentedEvent< - ApiType, - [ - who: AccountId32, - providerId: PalletStorageProvidersStorageProviderId, - oldCapacity: u64, - newCapacity: u64, - nextBlockWhenChangeAllowed: u32 - ], - { - who: AccountId32; - providerId: PalletStorageProvidersStorageProviderId; - oldCapacity: u64; - newCapacity: u64; - nextBlockWhenChangeAllowed: u32; - } - >; - /** - * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about - * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. - **/ - MspRequestSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a Main Storage Provider has signed off successfully. Provides information about - * that MSP's account id. - **/ - MspSignOffSuccess: AugmentedEvent< - ApiType, - [who: AccountId32, mspId: H256], - { who: AccountId32; mspId: H256 } - >; - /** - * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about - * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. - **/ - MspSignUpSuccess: AugmentedEvent< - ApiType, - [ - who: AccountId32, - mspId: H256, - multiaddresses: Vec, - capacity: u64, - valueProp: PalletStorageProvidersValueProposition - ], - { - who: AccountId32; - mspId: H256; - multiaddresses: Vec; - capacity: u64; - valueProp: PalletStorageProvidersValueProposition; - } - >; - /** - * Event emitted when a sign up request has been canceled successfully. Provides information about - * the account id of the user that canceled the request. - **/ - SignUpRequestCanceled: AugmentedEvent; - /** - * Event emitted when an SP has been slashed. - **/ - Slashed: AugmentedEvent< - ApiType, - [providerId: H256, amountSlashed: u128], - { providerId: H256; amountSlashed: u128 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - randomness: { - /** - * Event emitted when a new random seed is available from the relay chain - **/ - NewOneEpochAgoRandomnessAvailable: AugmentedEvent< - ApiType, - [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], - { randomnessSeed: H256; fromEpoch: u64; validUntilBlock: u32 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - session: { - /** - * New session has happened. Note that the argument is the session index, not the - * block number as the type might suggest. - **/ - NewSession: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - sudo: { - /** - * The sudo key has been updated. - **/ - KeyChanged: AugmentedEvent< - ApiType, - [old: Option, new_: AccountId32], - { old: Option; new_: AccountId32 } - >; - /** - * The key was permanently removed. - **/ - KeyRemoved: AugmentedEvent; - /** - * A sudo call just took place. - **/ - Sudid: AugmentedEvent< - ApiType, - [sudoResult: Result], - { sudoResult: Result } - >; - /** - * A [sudo_as](Pallet::sudo_as) call just took place. - **/ - SudoAsDone: AugmentedEvent< - ApiType, - [sudoResult: Result], - { sudoResult: Result } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - system: { - /** - * `:code` was updated. - **/ - CodeUpdated: AugmentedEvent; - /** - * An extrinsic failed. - **/ - ExtrinsicFailed: AugmentedEvent< - ApiType, - [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], - { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSupportDispatchDispatchInfo } - >; - /** - * An extrinsic completed successfully. - **/ - ExtrinsicSuccess: AugmentedEvent< - ApiType, - [dispatchInfo: FrameSupportDispatchDispatchInfo], - { dispatchInfo: FrameSupportDispatchDispatchInfo } - >; - /** - * An account was reaped. - **/ - KilledAccount: AugmentedEvent; - /** - * A new account was created. - **/ - NewAccount: AugmentedEvent; - /** - * On on-chain remark happened. - **/ - Remarked: AugmentedEvent< - ApiType, - [sender: AccountId32, hash_: H256], - { sender: AccountId32; hash_: H256 } - >; - /** - * An upgrade was authorized. - **/ - UpgradeAuthorized: AugmentedEvent< - ApiType, - [codeHash: H256, checkVersion: bool], - { codeHash: H256; checkVersion: bool } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - transactionPayment: { - /** - * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, - * has been paid by `who`. - **/ - TransactionFeePaid: AugmentedEvent< - ApiType, - [who: AccountId32, actualFee: u128, tip: u128], - { who: AccountId32; actualFee: u128; tip: u128 } - >; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - xcmpQueue: { - /** - * An HRMP message was sent to a sibling parachain. - **/ - XcmpMessageSent: AugmentedEvent; - /** - * Generic event - **/ - [key: string]: AugmentedEvent; - }; - } // AugmentedEvents -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/events"; + +import type { ApiTypes, AugmentedEvent } from "@polkadot/api-base/types"; +import type { + Bytes, + Null, + Option, + Result, + U8aFixed, + Vec, + bool, + u128, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + FrameSupportDispatchDispatchInfo, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemMspRespondStorageRequestsResult, + PalletNftsAttributeNamespace, + PalletNftsPalletAttributes, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + ShpTraitsTrieRemoveMutation, + SpRuntimeDispatchError, + SpWeightsWeightV2Weight, + StagingXcmV4AssetAssets, + StagingXcmV4Location, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + XcmV3TraitsError, + XcmVersionedAssets, + XcmVersionedLocation +} from "@polkadot/types/lookup"; + +export type __AugmentedEvent = AugmentedEvent; + +declare module "@polkadot/api-base/types/events" { + interface AugmentedEvents { + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent< + ApiType, + [who: AccountId32, free: u128], + { who: AccountId32; free: u128 } + >; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent< + ApiType, + [account: AccountId32, amount: u128], + { account: AccountId32; amount: u128 } + >; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent< + ApiType, + [account: AccountId32, freeBalance: u128], + { account: AccountId32; freeBalance: u128 } + >; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent< + ApiType, + [ + from: AccountId32, + to: AccountId32, + amount: u128, + destinationStatus: FrameSupportTokensMiscBalanceStatus + ], + { + from: AccountId32; + to: AccountId32; + amount: u128; + destinationStatus: FrameSupportTokensMiscBalanceStatus; + } + >; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent< + ApiType, + [old: u128, new_: u128], + { old: u128; new_: u128 } + >; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent< + ApiType, + [from: AccountId32, to: AccountId32, amount: u128], + { from: AccountId32; to: AccountId32; amount: u128 } + >; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent< + ApiType, + [who: AccountId32, amount: u128], + { who: AccountId32; amount: u128 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bucketNfts: { + /** + * Notifies that access to a bucket has been shared with another account. + **/ + AccessShared: AugmentedEvent< + ApiType, + [issuer: AccountId32, recipient: AccountId32], + { issuer: AccountId32; recipient: AccountId32 } + >; + /** + * Notifies that an item has been burned. + **/ + ItemBurned: AugmentedEvent< + ApiType, + [account: AccountId32, bucket: H256, itemId: u32], + { account: AccountId32; bucket: H256; itemId: u32 } + >; + /** + * Notifies that the read access for an item has been updated. + **/ + ItemReadAccessUpdated: AugmentedEvent< + ApiType, + [admin: AccountId32, bucket: H256, itemId: u32], + { admin: AccountId32; bucket: H256; itemId: u32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + collatorSelection: { + /** + * A new candidate joined. + **/ + CandidateAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { accountId: AccountId32; deposit: u128 } + >; + /** + * Bond of a candidate updated. + **/ + CandidateBondUpdated: AugmentedEvent< + ApiType, + [accountId: AccountId32, deposit: u128], + { accountId: AccountId32; deposit: u128 } + >; + /** + * A candidate was removed. + **/ + CandidateRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * An account was replaced in the candidate list by another one. + **/ + CandidateReplaced: AugmentedEvent< + ApiType, + [old: AccountId32, new_: AccountId32, deposit: u128], + { old: AccountId32; new_: AccountId32; deposit: u128 } + >; + /** + * An account was unable to be added to the Invulnerables because they did not have keys + * registered. Other Invulnerables may have been set. + **/ + InvalidInvulnerableSkipped: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * A new Invulnerable was added. + **/ + InvulnerableAdded: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * An Invulnerable was removed. + **/ + InvulnerableRemoved: AugmentedEvent< + ApiType, + [accountId: AccountId32], + { accountId: AccountId32 } + >; + /** + * The candidacy bond was set. + **/ + NewCandidacyBond: AugmentedEvent; + /** + * The number of desired candidates was set. + **/ + NewDesiredCandidates: AugmentedEvent< + ApiType, + [desiredCandidates: u32], + { desiredCandidates: u32 } + >; + /** + * New Invulnerables were set. + **/ + NewInvulnerables: AugmentedEvent< + ApiType, + [invulnerables: Vec], + { invulnerables: Vec } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + cumulusXcm: { + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ + ExecutedDownward: AugmentedEvent; + /** + * Downward message is invalid XCM. + * \[ id \] + **/ + InvalidFormat: AugmentedEvent; + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ + UnsupportedVersion: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fileSystem: { + /** + * Notifies that a BSP has been accepted to store a given file. + **/ + AcceptedBspVolunteer: AugmentedEvent< + ApiType, + [ + bspId: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + multiaddresses: Vec, + owner: AccountId32, + size_: u64 + ], + { + bspId: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + multiaddresses: Vec; + owner: AccountId32; + size_: u64; + } + >; + /** + * Notifies that a BSP's challenge cycle has been initialised, adding the first file + * key(s) to the BSP's Merkle Patricia Forest. + **/ + BspChallengeCycleInitialised: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { who: AccountId32; bspId: H256 } + >; + /** + * Notifies that a BSP confirmed storing a file(s). + **/ + BspConfirmedStoring: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, fileKeys: Vec, newRoot: H256], + { who: AccountId32; bspId: H256; fileKeys: Vec; newRoot: H256 } + >; + /** + * Notifies that a BSP has stopped storing a file. + **/ + BspConfirmStoppedStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, newRoot: H256], + { bspId: H256; fileKey: H256; newRoot: H256 } + >; + /** + * Notifies that a BSP has opened a request to stop storing a file. + **/ + BspRequestedToStopStoring: AugmentedEvent< + ApiType, + [bspId: H256, fileKey: H256, owner: AccountId32, location: Bytes], + { bspId: H256; fileKey: H256; owner: AccountId32; location: Bytes } + >; + /** + * Notifies that a bucket's privacy has been updated. + **/ + BucketPrivacyUpdated: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: Option, private: bool], + { who: AccountId32; bucketId: H256; collectionId: Option; private: bool } + >; + /** + * Notifies that a data server has been registered for a move bucket request. + **/ + DataServerRegisteredForMoveBucket: AugmentedEvent< + ApiType, + [bspId: H256, bucketId: H256], + { bspId: H256; bucketId: H256 } + >; + /** + * Notifies that a priority challenge failed to be queued for pending file deletion. + **/ + FailedToQueuePriorityChallenge: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256], + { user: AccountId32; fileKey: H256 } + >; + /** + * Notifies that a file will be deleted. + **/ + FileDeletionRequest: AugmentedEvent< + ApiType, + [user: AccountId32, fileKey: H256, bucketId: H256, mspId: H256, proofOfInclusion: bool], + { user: AccountId32; fileKey: H256; bucketId: H256; mspId: H256; proofOfInclusion: bool } + >; + /** + * Notifies that a bucket has been moved to a new MSP. + **/ + MoveBucketAccepted: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { bucketId: H256; mspId: H256 } + >; + /** + * Notifies that a bucket move request has been rejected by the MSP. + **/ + MoveBucketRejected: AugmentedEvent< + ApiType, + [bucketId: H256, mspId: H256], + { bucketId: H256; mspId: H256 } + >; + /** + * Notifies that a bucket is being moved to a new MSP. + **/ + MoveBucketRequested: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, newMspId: H256], + { who: AccountId32; bucketId: H256; newMspId: H256 } + >; + /** + * Notifies that a move bucket request has expired. + **/ + MoveBucketRequestExpired: AugmentedEvent< + ApiType, + [mspId: H256, bucketId: H256], + { mspId: H256; bucketId: H256 } + >; + /** + * Notifies that a MSP has responded to storage request(s). + **/ + MspRespondedToStorageRequests: AugmentedEvent< + ApiType, + [results: PalletFileSystemMspRespondStorageRequestsResult], + { results: PalletFileSystemMspRespondStorageRequestsResult } + >; + /** + * Notifies that a new bucket has been created. + **/ + NewBucket: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + bucketId: H256, + name: Bytes, + collectionId: Option, + private: bool + ], + { + who: AccountId32; + mspId: H256; + bucketId: H256; + name: Bytes; + collectionId: Option; + private: bool; + } + >; + /** + * Notifies that a new collection has been created and associated with a bucket. + **/ + NewCollectionAndAssociation: AugmentedEvent< + ApiType, + [who: AccountId32, bucketId: H256, collectionId: u32], + { who: AccountId32; bucketId: H256; collectionId: u32 } + >; + /** + * Notifies that a new file has been requested to be stored. + **/ + NewStorageRequest: AugmentedEvent< + ApiType, + [ + who: AccountId32, + fileKey: H256, + bucketId: H256, + location: Bytes, + fingerprint: H256, + size_: u64, + peerIds: Vec + ], + { + who: AccountId32; + fileKey: H256; + bucketId: H256; + location: Bytes; + fingerprint: H256; + size_: u64; + peerIds: Vec; + } + >; + /** + * Notifies that a file key has been queued for a priority challenge for file deletion. + **/ + PriorityChallengeForFileDeletionQueued: AugmentedEvent< + ApiType, + [issuer: PalletFileSystemEitherAccountIdOrMspId, fileKey: H256], + { issuer: PalletFileSystemEitherAccountIdOrMspId; fileKey: H256 } + >; + /** + * Notifies that a proof has been submitted for a pending file deletion request. + **/ + ProofSubmittedForPendingFileDeletionRequest: AugmentedEvent< + ApiType, + [mspId: H256, user: AccountId32, fileKey: H256, bucketId: H256, proofOfInclusion: bool], + { mspId: H256; user: AccountId32; fileKey: H256; bucketId: H256; proofOfInclusion: bool } + >; + /** + * Notifies that a SP has stopped storing a file because its owner has become insolvent. + **/ + SpStopStoringInsolventUser: AugmentedEvent< + ApiType, + [spId: H256, fileKey: H256, owner: AccountId32, location: Bytes, newRoot: H256], + { spId: H256; fileKey: H256; owner: AccountId32; location: Bytes; newRoot: H256 } + >; + /** + * Notifies the expiration of a storage request. + **/ + StorageRequestExpired: AugmentedEvent; + /** + * Notifies that a storage request for a file key has been fulfilled. + **/ + StorageRequestFulfilled: AugmentedEvent; + /** + * Notifies that a storage request has been revoked by the user who initiated it. + **/ + StorageRequestRevoked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent< + ApiType, + [ + id: U8aFixed, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + pageIndex: u32, + messageIndex: u32 + ], + { + id: U8aFixed; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + pageIndex: u32; + messageIndex: u32; + } + >; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent< + ApiType, + [origin: CumulusPrimitivesCoreAggregateMessageOrigin, index: u32], + { origin: CumulusPrimitivesCoreAggregateMessageOrigin; index: u32 } + >; + /** + * Message is processed. + **/ + Processed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + weightUsed: SpWeightsWeightV2Weight, + success: bool + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + weightUsed: SpWeightsWeightV2Weight; + success: bool; + } + >; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent< + ApiType, + [ + id: H256, + origin: CumulusPrimitivesCoreAggregateMessageOrigin, + error: FrameSupportMessagesProcessMessageError + ], + { + id: H256; + origin: CumulusPrimitivesCoreAggregateMessageOrigin; + error: FrameSupportMessagesProcessMessageError; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { collection: u32; item: u32; owner: AccountId32 } + >; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32, delegate: AccountId32], + { collection: u32; item: u32; owner: AccountId32; delegate: AccountId32 } + >; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent< + ApiType, + [ + collection: u32, + maybeItem: Option, + key: Bytes, + value: Bytes, + namespace: PalletNftsAttributeNamespace + ], + { + collection: u32; + maybeItem: Option; + key: Bytes; + value: Bytes; + namespace: PalletNftsAttributeNamespace; + } + >; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { collection: u32; item: u32; owner: AccountId32 } + >; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent< + ApiType, + [collection: u32, maxSupply: u32], + { collection: u32; maxSupply: u32 } + >; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, data: Bytes], + { collection: u32; data: Bytes } + >; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent< + ApiType, + [collection: u32], + { collection: u32 } + >; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent< + ApiType, + [collection: u32, creator: AccountId32, owner: AccountId32], + { collection: u32; creator: AccountId32; owner: AccountId32 } + >; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent< + ApiType, + [collection: u32, owner: AccountId32], + { collection: u32; owner: AccountId32 } + >; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent< + ApiType, + [collection: u32, item: u32, owner: AccountId32], + { collection: u32; item: u32; owner: AccountId32 } + >; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { collection: u32; item: u32; delegate: AccountId32 } + >; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32, delegate: AccountId32], + { collection: u32; item: u32; delegate: AccountId32 } + >; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, seller: AccountId32, buyer: AccountId32], + { collection: u32; item: u32; price: u128; seller: AccountId32; buyer: AccountId32 } + >; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, data: Bytes], + { collection: u32; item: u32; data: Bytes } + >; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, price: u128, whitelistedBuyer: Option], + { collection: u32; item: u32; price: u128; whitelistedBuyer: Option } + >; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32, lockMetadata: bool, lockAttributes: bool], + { collection: u32; item: u32; lockMetadata: bool; lockAttributes: bool } + >; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent< + ApiType, + [collection: u32, item: u32], + { collection: u32; item: u32 } + >; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent< + ApiType, + [nextId: Option], + { nextId: Option } + >; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent< + ApiType, + [collection: u32, newOwner: AccountId32], + { collection: u32; newOwner: AccountId32 } + >; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent< + ApiType, + [who: AccountId32, maybeCollection: Option], + { who: AccountId32; maybeCollection: Option } + >; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent< + ApiType, + [collection: u32, item: Option, attribute: PalletNftsPalletAttributes, value: Bytes], + { collection: u32; item: Option; attribute: PalletNftsPalletAttributes; value: Bytes } + >; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent< + ApiType, + [collection: u32, item: u32, namespace: PalletNftsAttributeNamespace], + { collection: u32; item: u32; namespace: PalletNftsAttributeNamespace } + >; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent< + ApiType, + [collection: u32, successfulItems: Vec], + { collection: u32; successfulItems: Vec } + >; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent< + ApiType, + [ + sentCollection: u32, + sentItem: u32, + sentItemOwner: AccountId32, + receivedCollection: u32, + receivedItem: u32, + receivedItemOwner: AccountId32, + price: Option, + deadline: u32 + ], + { + sentCollection: u32; + sentItem: u32; + sentItemOwner: AccountId32; + receivedCollection: u32; + receivedItem: u32; + receivedItemOwner: AccountId32; + price: Option; + deadline: u32; + } + >; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent< + ApiType, + [ + offeredCollection: u32, + offeredItem: u32, + desiredCollection: u32, + desiredItem: Option, + price: Option, + deadline: u32 + ], + { + offeredCollection: u32; + offeredItem: u32; + desiredCollection: u32; + desiredItem: Option; + price: Option; + deadline: u32; + } + >; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent< + ApiType, + [ + collection: u32, + issuer: Option, + admin: Option, + freezer: Option + ], + { + collection: u32; + issuer: Option; + admin: Option; + freezer: Option; + } + >; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent< + ApiType, + [collection: u32, item: u32, sender: AccountId32, receiver: AccountId32, amount: u128], + { collection: u32; item: u32; sender: AccountId32; receiver: AccountId32; amount: u128 } + >; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent< + ApiType, + [ + collection: u32, + item: u32, + owner: AccountId32, + delegate: AccountId32, + deadline: Option + ], + { + collection: u32; + item: u32; + owner: AccountId32; + delegate: AccountId32; + deadline: Option; + } + >; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent< + ApiType, + [collection: u32, item: u32, from: AccountId32, to: AccountId32], + { collection: u32; item: u32; from: AccountId32; to: AccountId32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parachainSystem: { + /** + * Downward messages were processed using the given weight. + **/ + DownwardMessagesProcessed: AugmentedEvent< + ApiType, + [weightUsed: SpWeightsWeightV2Weight, dmqHead: H256], + { weightUsed: SpWeightsWeightV2Weight; dmqHead: H256 } + >; + /** + * Some downward messages have been received and will be processed. + **/ + DownwardMessagesReceived: AugmentedEvent; + /** + * An upward message was sent to the relay chain. + **/ + UpwardMessageSent: AugmentedEvent< + ApiType, + [messageHash: Option], + { messageHash: Option } + >; + /** + * The validation function was applied as of the contained relay chain block number. + **/ + ValidationFunctionApplied: AugmentedEvent< + ApiType, + [relayChainBlockNum: u32], + { relayChainBlockNum: u32 } + >; + /** + * The relay-chain aborted the upgrade process. + **/ + ValidationFunctionDiscarded: AugmentedEvent; + /** + * The validation function has been scheduled to apply. + **/ + ValidationFunctionStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent< + ApiType, + [ + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + oldValue: Option, + newValue: Option + ], + { + key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + oldValue: Option; + newValue: Option; + } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paymentStreams: { + /** + * Event emitted when a dynamic-rate payment stream is created. Provides information about the User and Provider of the stream + * and the initial amount provided. + **/ + DynamicRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amountProvided: u64], + { userAccount: AccountId32; providerId: H256; amountProvided: u64 } + >; + /** + * Event emitted when a dynamic-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + DynamicRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { userAccount: AccountId32; providerId: H256 } + >; + /** + * Event emitted when a dynamic-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new amount provided. + **/ + DynamicRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newAmountProvided: u64], + { userAccount: AccountId32; providerId: H256; newAmountProvided: u64 } + >; + /** + * Event emitted when a fixed-rate payment stream is created. Provides information about the Provider and User of the stream + * and its initial rate. + **/ + FixedRatePaymentStreamCreated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, rate: u128], + { userAccount: AccountId32; providerId: H256; rate: u128 } + >; + /** + * Event emitted when a fixed-rate payment stream is removed. Provides information about the User and Provider of the stream. + **/ + FixedRatePaymentStreamDeleted: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256], + { userAccount: AccountId32; providerId: H256 } + >; + /** + * Event emitted when a fixed-rate payment stream is updated. Provides information about the User and Provider of the stream + * and the new rate of the stream. + **/ + FixedRatePaymentStreamUpdated: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, newRate: u128], + { userAccount: AccountId32; providerId: H256; newRate: u128 } + >; + /** + * Event emitted when a Provider's last chargeable tick and price index are updated. Provides information about the Provider of the stream, + * the tick number of the last chargeable tick and the price index at that tick. + **/ + LastChargeableInfoUpdated: AugmentedEvent< + ApiType, + [providerId: H256, lastChargeableTick: u32, lastChargeablePriceIndex: u128], + { providerId: H256; lastChargeableTick: u32; lastChargeablePriceIndex: u128 } + >; + /** + * Event emitted when a payment is charged. Provides information about the user that was charged, + * the Provider that received the funds, and the amount that was charged. + **/ + PaymentStreamCharged: AugmentedEvent< + ApiType, + [userAccount: AccountId32, providerId: H256, amount: u128], + { userAccount: AccountId32; providerId: H256; amount: u128 } + >; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has paid all its outstanding debt. + **/ + UserPaidDebts: AugmentedEvent; + /** + * Event emitted when a User that has been flagged as not having enough funds to pay for their contracted services has waited the cooldown period, + * correctly paid all their outstanding debt and can now contract new services again. + **/ + UserSolvent: AugmentedEvent; + /** + * Event emitted when a Provider is correctly trying to charge a User and that User does not have enough funds to pay for their services. + * This event is emitted to flag the user and let the network know that the user is not paying for the requested services, so other Providers can + * stop providing services to that user. + **/ + UserWithoutFunds: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + polkadotXcm: { + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } + >; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent< + ApiType, + [hash_: H256, origin: StagingXcmV4Location, assets: XcmVersionedAssets], + { hash_: H256; origin: StagingXcmV4Location; assets: XcmVersionedAssets } + >; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent< + ApiType, + [outcome: StagingXcmV4TraitsOutcome], + { outcome: StagingXcmV4TraitsOutcome } + >; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent< + ApiType, + [paying: StagingXcmV4Location, fees: StagingXcmV4AssetAssets], + { paying: StagingXcmV4Location; fees: StagingXcmV4AssetAssets } + >; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedQuerier: StagingXcmV4Location, + maybeActualQuerier: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedQuerier: StagingXcmV4Location; + maybeActualQuerier: Option; + } + >; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { origin: StagingXcmV4Location; queryId: u64 } + >; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + queryId: u64, + expectedLocation: Option + ], + { + origin: StagingXcmV4Location; + queryId: u64; + expectedLocation: Option; + } + >; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { origin: StagingXcmV4Location; queryId: u64 } + >; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { queryId: u64; palletIndex: u8; callIndex: u8 } + >; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { queryId: u64; palletIndex: u8; callIndex: u8 } + >; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent< + ApiType, + [queryId: u64, palletIndex: u8, callIndex: u8], + { queryId: u64; palletIndex: u8; callIndex: u8 } + >; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent< + ApiType, + [ + queryId: u64, + palletIndex: u8, + callIndex: u8, + actualWeight: SpWeightsWeightV2Weight, + maxBudgetedWeight: SpWeightsWeightV2Weight + ], + { + queryId: u64; + palletIndex: u8; + callIndex: u8; + actualWeight: SpWeightsWeightV2Weight; + maxBudgetedWeight: SpWeightsWeightV2Weight; + } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent< + ApiType, + [location: XcmVersionedLocation, queryId: u64], + { location: XcmVersionedLocation; queryId: u64 } + >; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, queryId: u64, error: XcmV3TraitsError], + { location: StagingXcmV4Location; queryId: u64; error: XcmV3TraitsError } + >; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent< + ApiType, + [queryId: u64, response: StagingXcmV4Response], + { queryId: u64; response: StagingXcmV4Response } + >; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent; + /** + * A XCM message was sent. + **/ + Sent: AugmentedEvent< + ApiType, + [ + origin: StagingXcmV4Location, + destination: StagingXcmV4Location, + message: StagingXcmV4Xcm, + messageId: U8aFixed + ], + { + origin: StagingXcmV4Location; + destination: StagingXcmV4Location; + message: StagingXcmV4Xcm; + messageId: U8aFixed; + } + >; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent< + ApiType, + [location: StagingXcmV4Location, version: u32], + { location: StagingXcmV4Location; version: u32 } + >; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent< + ApiType, + [origin: StagingXcmV4Location, queryId: u64], + { origin: StagingXcmV4Location; queryId: u64 } + >; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent< + ApiType, + [ + destination: StagingXcmV4Location, + result: u32, + cost: StagingXcmV4AssetAssets, + messageId: U8aFixed + ], + { + destination: StagingXcmV4Location; + result: u32; + cost: StagingXcmV4AssetAssets; + messageId: U8aFixed; + } + >; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } + >; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } + >; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent< + ApiType, + [destination: StagingXcmV4Location, cost: StagingXcmV4AssetAssets, messageId: U8aFixed], + { destination: StagingXcmV4Location; cost: StagingXcmV4AssetAssets; messageId: U8aFixed } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proofsDealer: { + /** + * The [`ChallengesTicker`] has been paused or unpaused. + **/ + ChallengesTickerSet: AugmentedEvent; + /** + * A set of mutations has been applied to the Forest. + **/ + MutationsApplied: AugmentedEvent< + ApiType, + [ + provider: H256, + mutations: Vec>, + newRoot: H256 + ], + { + provider: H256; + mutations: Vec>; + newRoot: H256; + } + >; + /** + * A manual challenge was submitted. + **/ + NewChallenge: AugmentedEvent< + ApiType, + [who: AccountId32, keyChallenged: H256], + { who: AccountId32; keyChallenged: H256 } + >; + /** + * A provider's challenge cycle was initialised. + **/ + NewChallengeCycleInitialised: AugmentedEvent< + ApiType, + [ + currentTick: u32, + nextChallengeDeadline: u32, + provider: H256, + maybeProviderAccount: Option + ], + { + currentTick: u32; + nextChallengeDeadline: u32; + provider: H256; + maybeProviderAccount: Option; + } + >; + /** + * A new challenge seed was generated. + **/ + NewChallengeSeed: AugmentedEvent< + ApiType, + [challengesTicker: u32, seed: H256], + { challengesTicker: u32; seed: H256 } + >; + /** + * A new checkpoint challenge was generated. + **/ + NewCheckpointChallenge: AugmentedEvent< + ApiType, + [ + challengesTicker: u32, + challenges: Vec]>> + ], + { + challengesTicker: u32; + challenges: Vec]>>; + } + >; + /** + * No record of the last tick the Provider submitted a proof for. + **/ + NoRecordOfLastSubmittedProof: AugmentedEvent; + /** + * A proof was accepted. + **/ + ProofAccepted: AugmentedEvent< + ApiType, + [provider: H256, proof: PalletProofsDealerProof], + { provider: H256; proof: PalletProofsDealerProof } + >; + /** + * A provider was marked as slashable and their challenge deadline was forcefully pushed. + **/ + SlashableProvider: AugmentedEvent< + ApiType, + [provider: H256, nextChallengeDeadline: u32], + { provider: H256; nextChallengeDeadline: u32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + providers: { + /** + * Event emitted when a Backup Storage Provider has requested to sign up successfully. Provides information about + * that BSP's account id, its multiaddresses, and the total data it can store according to its stake. + **/ + BspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, multiaddresses: Vec, capacity: u64], + { who: AccountId32; multiaddresses: Vec; capacity: u64 } + >; + /** + * Event emitted when a Backup Storage Provider has signed off successfully. Provides information about + * that BSP's account id. + **/ + BspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256], + { who: AccountId32; bspId: H256 } + >; + /** + * Event emitted when a Backup Storage Provider has confirmed its sign up successfully. Provides information about + * that BSP's account id, the total data it can store according to its stake, and its multiaddress. + **/ + BspSignUpSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, bspId: H256, multiaddresses: Vec, capacity: u64], + { who: AccountId32; bspId: H256; multiaddresses: Vec; capacity: u64 } + >; + /** + * Event emitted when a SP has changed its capacity successfully. Provides information about + * that SP's account id, its old total data that could store, and the new total data. + **/ + CapacityChanged: AugmentedEvent< + ApiType, + [ + who: AccountId32, + providerId: PalletStorageProvidersStorageProviderId, + oldCapacity: u64, + newCapacity: u64, + nextBlockWhenChangeAllowed: u32 + ], + { + who: AccountId32; + providerId: PalletStorageProvidersStorageProviderId; + oldCapacity: u64; + newCapacity: u64; + nextBlockWhenChangeAllowed: u32; + } + >; + /** + * Event emitted when a Main Storage Provider has requested to sign up successfully. Provides information about + * that MSP's account id, its multiaddresses, the total data it can store according to its stake, and its value proposition. + **/ + MspRequestSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a Main Storage Provider has signed off successfully. Provides information about + * that MSP's account id. + **/ + MspSignOffSuccess: AugmentedEvent< + ApiType, + [who: AccountId32, mspId: H256], + { who: AccountId32; mspId: H256 } + >; + /** + * Event emitted when a Main Storage Provider has confirmed its sign up successfully. Provides information about + * that MSP's account id, the total data it can store according to its stake, its multiaddress, and its value proposition. + **/ + MspSignUpSuccess: AugmentedEvent< + ApiType, + [ + who: AccountId32, + mspId: H256, + multiaddresses: Vec, + capacity: u64, + valueProp: PalletStorageProvidersValueProposition + ], + { + who: AccountId32; + mspId: H256; + multiaddresses: Vec; + capacity: u64; + valueProp: PalletStorageProvidersValueProposition; + } + >; + /** + * Event emitted when a sign up request has been canceled successfully. Provides information about + * the account id of the user that canceled the request. + **/ + SignUpRequestCanceled: AugmentedEvent; + /** + * Event emitted when an SP has been slashed. + **/ + Slashed: AugmentedEvent< + ApiType, + [providerId: H256, amountSlashed: u128], + { providerId: H256; amountSlashed: u128 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + randomness: { + /** + * Event emitted when a new random seed is available from the relay chain + **/ + NewOneEpochAgoRandomnessAvailable: AugmentedEvent< + ApiType, + [randomnessSeed: H256, fromEpoch: u64, validUntilBlock: u32], + { randomnessSeed: H256; fromEpoch: u64; validUntilBlock: u32 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + sudo: { + /** + * The sudo key has been updated. + **/ + KeyChanged: AugmentedEvent< + ApiType, + [old: Option, new_: AccountId32], + { old: Option; new_: AccountId32 } + >; + /** + * The key was permanently removed. + **/ + KeyRemoved: AugmentedEvent; + /** + * A sudo call just took place. + **/ + Sudid: AugmentedEvent< + ApiType, + [sudoResult: Result], + { sudoResult: Result } + >; + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + **/ + SudoAsDone: AugmentedEvent< + ApiType, + [sudoResult: Result], + { sudoResult: Result } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent< + ApiType, + [dispatchError: SpRuntimeDispatchError, dispatchInfo: FrameSupportDispatchDispatchInfo], + { dispatchError: SpRuntimeDispatchError; dispatchInfo: FrameSupportDispatchDispatchInfo } + >; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent< + ApiType, + [dispatchInfo: FrameSupportDispatchDispatchInfo], + { dispatchInfo: FrameSupportDispatchDispatchInfo } + >; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent< + ApiType, + [sender: AccountId32, hash_: H256], + { sender: AccountId32; hash_: H256 } + >; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent< + ApiType, + [codeHash: H256, checkVersion: bool], + { codeHash: H256; checkVersion: bool } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent< + ApiType, + [who: AccountId32, actualFee: u128, tip: u128], + { who: AccountId32; actualFee: u128; tip: u128 } + >; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmpQueue: { + /** + * An HRMP message was sent to a sibling parachain. + **/ + XcmpMessageSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/api-augment/src/interfaces/augment-api-query.ts b/api-augment/src/interfaces/augment-api-query.ts index 9758f7e94..7a774d051 100644 --- a/api-augment/src/interfaces/augment-api-query.ts +++ b/api-augment/src/interfaces/augment-api-query.ts @@ -1,1969 +1,1966 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/storage"; - -import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from "@polkadot/api-base/types"; -import type { - BTreeMap, - BTreeSet, - Bytes, - Null, - Option, - Struct, - Vec, - bool, - u128, - u16, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { AnyNumber, ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, - CumulusPalletParachainSystemUnincludedSegmentAncestor, - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, - CumulusPalletXcmpQueueOutboundChannelDetails, - CumulusPalletXcmpQueueQueueConfigData, - CumulusPrimitivesCoreAggregateMessageOrigin, - FrameSupportDispatchPerDispatchClassWeight, - FrameSystemAccountInfo, - FrameSystemCodeUpgradeAuthorization, - FrameSystemEventRecord, - FrameSystemLastRuntimeUpgradeInfo, - FrameSystemPhase, - PalletBalancesAccountData, - PalletBalancesBalanceLock, - PalletBalancesIdAmount, - PalletBalancesReserveData, - PalletCollatorSelectionCandidateInfo, - PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemStorageRequestBspsMetadata, - PalletFileSystemStorageRequestMetadata, - PalletMessageQueueBookState, - PalletMessageQueuePage, - PalletNftsAttributeDeposit, - PalletNftsAttributeNamespace, - PalletNftsCollectionConfig, - PalletNftsCollectionDetails, - PalletNftsCollectionMetadata, - PalletNftsItemConfig, - PalletNftsItemDetails, - PalletNftsItemMetadata, - PalletNftsPendingSwap, - PalletPaymentStreamsDynamicRatePaymentStream, - PalletPaymentStreamsFixedRatePaymentStream, - PalletPaymentStreamsProviderLastChargeableInfo, - PalletStorageProvidersBackupStorageProvider, - PalletStorageProvidersBucket, - PalletStorageProvidersMainStorageProvider, - PalletStorageProvidersStorageProvider, - PalletTransactionPaymentReleases, - PalletXcmQueryStatus, - PalletXcmRemoteLockedFungibleRecord, - PalletXcmVersionMigrationStage, - PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV7AbridgedHostConfiguration, - PolkadotPrimitivesV7PersistedValidationData, - PolkadotPrimitivesV7UpgradeGoAhead, - PolkadotPrimitivesV7UpgradeRestriction, - ShpTraitsTrieRemoveMutation, - SpConsensusAuraSr25519AppSr25519Public, - SpCoreCryptoKeyTypeId, - SpRuntimeDigest, - SpTrieStorageProof, - SpWeightsWeightV2Weight, -<<<<<<< HEAD - StagingXcmV4Instruction, - StagingXcmV4Xcm, -======= - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, ->>>>>>> main - StorageHubRuntimeRuntimeHoldReason, - StorageHubRuntimeSessionKeys, - XcmVersionedAssetId, - XcmVersionedLocation -} from "@polkadot/types/lookup"; -import type { Observable } from "@polkadot/types/types"; - -export type __AugmentedQuery = AugmentedQuery unknown>; -export type __QueryableStorageEntry = QueryableStorageEntry; - -declare module "@polkadot/api-base/types/storage" { - interface AugmentedQueries { - aura: { - /** - * The current authority set. - **/ - authorities: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The current slot of this block. - * - * This will be set in `on_initialize`. - **/ - currentSlot: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - auraExt: { - /** - * Serves as cache for the authorities. - * - * The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session, - * but we require the old authorities to verify the seal when validating a PoV. This will - * always be updated to the latest AuRa authorities in `on_finalize`. - **/ - authorities: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Current slot paired with a number of authored blocks. - * - * Updated on each block initialization. - **/ - slotInfo: AugmentedQuery Observable>>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - authorship: { - /** - * Author of current block. - **/ - author: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - balances: { - /** - * The Balances pallet example of storing the balance of an account. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> - * } - * ``` - * - * You can also store the balance of an account in the `System` pallet. - * - * # Example - * - * ```nocompile - * impl pallet_balances::Config for Runtime { - * type AccountStore = System - * } - * ``` - * - * But this comes with tradeoffs, storing account balances in the system pallet stores - * `frame_system` data alongside the account data contrary to storing account balances in the - * `Balances` pallet, which uses a `StorageMap` to store balances data only. - * NOTE: This is only used in the case that this pallet is used to store balances. - **/ - account: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Freeze locks on account balances. - **/ - freezes: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Holds on account balances. - **/ - holds: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable< - Vec< - { - readonly id: StorageHubRuntimeRuntimeHoldReason; - readonly amount: u128; - } & Struct - > - >, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The total units of outstanding deactivated balance in the system. - **/ - inactiveIssuance: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Any liquidity locks on some account balances. - * NOTE: Should only be accessed when setting, changing and freeing a lock. - * - * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - locks: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Named reserves on some account balances. - * - * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` - **/ - reserves: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The total units issued in the system. - **/ - totalIssuance: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - collatorSelection: { - /** - * Fixed amount to deposit to become a collator. - * - * When a collator calls `leave_intent` they immediately receive the deposit back. - **/ - candidacyBond: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be - * mutually exclusive. - * - * This list is sorted in ascending order by deposit and when the deposits are equal, the least - * recently updated is considered greater. - **/ - candidateList: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Desired number of candidates. - * - * This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct. - **/ - desiredCandidates: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The invulnerable, permissioned collators. This list must be sorted. - **/ - invulnerables: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Last block authored by collator. - **/ - lastAuthoredBlock: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - fileSystem: { - /** - * Bookkeeping of the buckets containing open storage requests. - **/ - bucketsWithStorageRequests: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * BSP data servers for move bucket requests. - **/ - dataServersForMoveBucket: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * A map of blocks to expired file deletion requests. - **/ - fileDeletionRequestExpirations: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>>, - [u32] - > & - QueryableStorageEntry; - /** - * A map of blocks to expired move bucket requests. - **/ - moveBucketRequestExpirations: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>>, - [u32] - > & - QueryableStorageEntry; - /** - * A pointer to the earliest available block to insert a new file deletion request expiration. - * - * This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. - **/ - nextAvailableFileDeletionRequestExpirationBlock: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * A pointer to the earliest available block to insert a new move bucket request expiration. - * - * This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. - **/ - nextAvailableMoveBucketRequestExpirationBlock: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * A pointer to the earliest available block to insert a new storage request expiration. - * - * This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. - **/ - nextAvailableStorageRequestExpirationBlock: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * A pointer to the starting block to clean up expired storage requests. - * - * If this block is behind the current block number, the cleanup algorithm in `on_idle` will - * attempt to accelerate this block pointer as close to or up to the current block number. This - * will execute provided that there is enough remaining weight to do so. - **/ - nextStartingBlockToCleanUp: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Bookkeeping of buckets that are pending to be moved to a new MSP. - **/ - pendingBucketsToMove: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable, - [H256] - > & - QueryableStorageEntry; - /** - * Pending file deletion requests. - * - * A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. - **/ - pendingFileDeletionRequests: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Pending move bucket requests. - * - * A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. - * The value is the user who requested the move. - **/ - pendingMoveBucketRequests: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * Pending file stop storing requests. - * - * A double mapping from BSP IDs to a list of file keys pending stop storing requests to the block in which those requests were opened - * and the proven size of the file. - * The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges - * of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. - **/ - pendingStopStoringRequests: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * Number of BSPs required to fulfill a storage request - * - * This is also used as a default value if the BSPs required are not specified when creating a storage request. - **/ - replicationTarget: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A double map from storage request to BSP `AccountId`s that volunteered to store the file. - * - * Any BSP under a storage request prefix is considered to be a volunteer and can be removed at any time. - * Once a BSP submits a valid proof to the via the `bsp_confirm_storing` extrinsic, the `confirmed` field in [`StorageRequestBspsMetadata`] will be set to `true`. - * - * When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. - **/ - storageRequestBsps: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [H256, H256] - > & - QueryableStorageEntry; - /** - * A map of blocks to expired storage requests. - **/ - storageRequestExpirations: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - storageRequests: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * Number of ticks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. - **/ - tickRangeToMaximumThreshold: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - messageQueue: { - /** - * The index of the first and last (non-empty) pages. - **/ - bookStateFor: AugmentedQuery< - ApiType, - ( - arg: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { Here: any } - | { Parent: any } - | { Sibling: any } - | string - | Uint8Array - ) => Observable, - [CumulusPrimitivesCoreAggregateMessageOrigin] - > & - QueryableStorageEntry; - /** - * The map of page indices to pages. - **/ - pages: AugmentedQuery< - ApiType, - ( - arg1: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { Here: any } - | { Parent: any } - | { Sibling: any } - | string - | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32] - > & - QueryableStorageEntry; - /** - * The origin at which we should begin servicing. - **/ - serviceHead: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - nfts: { - /** - * The items held by any given account; set out this way so that items owned by a single - * account can be enumerated. - **/ - account: AugmentedQuery< - ApiType, - ( - arg1: AccountId32 | string | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array, - arg3: u32 | AnyNumber | Uint8Array - ) => Observable>, - [AccountId32, u32, u32] - > & - QueryableStorageEntry; - /** - * Attributes of a collection. - **/ - attribute: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: Option | null | Uint8Array | u32 | AnyNumber, - arg3: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - arg4: Bytes | string | Uint8Array - ) => Observable>>, - [u32, Option, PalletNftsAttributeNamespace, Bytes] - > & - QueryableStorageEntry, PalletNftsAttributeNamespace, Bytes]>; - /** - * Details of a collection. - **/ - collection: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * The collections owned by any given account; set out this way so that collections owned by - * a single account can be enumerated. - **/ - collectionAccount: AugmentedQuery< - ApiType, - ( - arg1: AccountId32 | string | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [AccountId32, u32] - > & - QueryableStorageEntry; - /** - * Config of a collection. - **/ - collectionConfigOf: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * Metadata of a collection. - **/ - collectionMetadataOf: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * The items in existence and their ownership details. - * Stores collection roles as per account. - **/ - collectionRoleOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: AccountId32 | string | Uint8Array - ) => Observable>, - [u32, AccountId32] - > & - QueryableStorageEntry; - /** - * The items in existence and their ownership details. - **/ - item: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Item attribute approvals. - **/ - itemAttributesApprovalsOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Config of an item. - **/ - itemConfigOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Metadata of an item. - **/ - itemMetadataOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * A price of an item. - **/ - itemPriceOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable]>>>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Stores the `CollectionId` that is going to be used for the next collection. - * This gets incremented whenever a new collection is created. - **/ - nextCollectionId: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The collection, if any, of which an account is willing to take ownership. - **/ - ownershipAcceptance: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Handles all the pending swaps. - **/ - pendingSwapOf: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u32 | AnyNumber | Uint8Array - ) => Observable>, - [u32, u32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - parachainInfo: { - parachainId: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - parachainSystem: { - /** - * Storage field that keeps track of bandwidth used by the unincluded segment along with the - * latest HRMP watermark. Used for limiting the acceptance of new blocks with - * respect to relay chain constraints. - **/ - aggregatedUnincludedSegment: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The number of HRMP messages we observed in `on_initialize` and thus used that number for - * announcing the weight of `on_initialize` and `on_finalize`. - **/ - announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A custom head data that should be returned as result of `validate_block`. - * - * See `Pallet::set_custom_validation_head_data` for more information. - **/ - customValidationHeadData: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Were the validation data set to notify the relay chain? - **/ - didSetValidationCode: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The parachain host configuration that was obtained from the relay parent. - * - * This field is meant to be updated each block with the validation data inherent. Therefore, - * before processing of the inherent, e.g. in `on_initialize` this data may be stale. - * - * This data is also absent from the genesis. - **/ - hostConfiguration: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * HRMP messages that were sent in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - hrmpOutboundMessages: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * HRMP watermark that was set in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - hrmpWatermark: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The last downward message queue chain head we have observed. - * - * This value is loaded before and saved after processing inbound downward messages carried - * by the system inherent. - **/ - lastDmqMqcHead: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The message queue chain heads we have observed per each channel incoming channel. - * - * This value is loaded before and saved after processing inbound downward messages carried - * by the system inherent. - **/ - lastHrmpMqcHeads: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The relay chain block number associated with the last parachain block. - * - * This is updated in `on_finalize`. - **/ - lastRelayChainBlockNumber: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Validation code that is set by the parachain and is to be communicated to collator and - * consequently the relay-chain. - * - * This will be cleared in `on_initialize` of each new block if no other pallet already set - * the value. - **/ - newValidationCode: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Upward messages that are still pending and not yet send to the relay chain. - **/ - pendingUpwardMessages: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * In case of a scheduled upgrade, this storage field contains the validation code to be - * applied. - * - * As soon as the relay chain gives us the go-ahead signal, we will overwrite the - * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process - * with the new validation code. This concludes the upgrade process. - **/ - pendingValidationCode: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Number of downward messages processed in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - processedDownwardMessages: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The state proof for the last relay parent block. - * - * This field is meant to be updated each block with the validation data inherent. Therefore, - * before processing of the inherent, e.g. in `on_initialize` this data may be stale. - * - * This data is also absent from the genesis. - **/ - relayStateProof: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The snapshot of some state related to messaging relevant to the current parachain as per - * the relay parent. - * - * This field is meant to be updated each block with the validation data inherent. Therefore, - * before processing of the inherent, e.g. in `on_initialize` this data may be stale. - * - * This data is also absent from the genesis. - **/ - relevantMessagingState: AugmentedQuery< - ApiType, - () => Observable< - Option - >, - [] - > & - QueryableStorageEntry; - /** - * The weight we reserve at the beginning of the block for processing DMP messages. This - * overrides the amount set in the Config trait. - **/ - reservedDmpWeightOverride: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The weight we reserve at the beginning of the block for processing XCMP messages. This - * overrides the amount set in the Config trait. - **/ - reservedXcmpWeightOverride: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Latest included block descendants the runtime accepted. In other words, these are - * ancestors of the currently executing block which have not been included in the observed - * relay-chain state. - * - * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured - * in the pallet. - **/ - unincludedSegment: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Optional upgrade go-ahead signal from the relay-chain. - * - * This storage item is a mirror of the corresponding value for the current parachain from the - * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is - * set after the inherent. - **/ - upgradeGoAhead: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * An option which indicates if the relay-chain restricts signalling a validation code upgrade. - * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced - * candidate will be invalid. - * - * This storage item is a mirror of the corresponding value for the current parachain from the - * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is - * set after the inherent. - **/ - upgradeRestrictionSignal: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The factor to multiply the base delivery fee by for UMP. - **/ - upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Upward messages that were sent in a block. - * - * This will be cleared in `on_initialize` of each new block. - **/ - upwardMessages: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The [`PersistedValidationData`] set for this block. - * This value is expected to be set only once per block and it's never stored - * in the trie. - **/ - validationData: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - parameters: { - /** - * Stored parameters. - **/ - parameters: AugmentedQuery< - ApiType, - ( - arg: - | StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey - | { RuntimeConfig: any } - | string - | Uint8Array - ) => Observable>, - [StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - paymentStreams: { - /** - * The accumulated price index since genesis, used to calculate the amount to charge for dynamic-rate payment streams. - * - * This is equivalent to what it would have cost to store one unit of the provided service since the beginning of the network. - * We use this to calculate the amount to charge for dynamic-rate payment streams, by checking out the difference between the index - * when the payment stream was last charged, and the index at the last chargeable tick. - * - * This storage is updated in: - * - [do_update_price_index](crate::utils::do_update_price_index), which updates the accumulated price index, adding to it the current price. - **/ - accumulatedPriceIndex: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The current price per unit per tick of the provided service, used to calculate the amount to charge for dynamic-rate payment streams. - * - * This is updated each tick using the formula that considers current system capacity (total storage of the system) and system availability (total storage available). - * - * This storage is updated in: - * - [do_update_current_price_per_unit_per_tick](crate::utils::do_update_current_price_per_unit_per_tick), which updates the current price per unit per tick. - **/ - currentPricePerUnitPerTick: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The double mapping from a Provider, to its provided Users, to their dynamic-rate payment streams. - * - * This is used to store and manage dynamic-rate payment streams between Users and Providers. - * - * This storage is updated in: - * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which adds a new entry to the map. - * - [delete_dynamic_rate_payment_stream](crate::dispatchables::delete_dynamic_rate_payment_stream), which removes the corresponding entry from the map. - * - [update_dynamic_rate_payment_stream](crate::dispatchables::update_dynamic_rate_payment_stream), which updates the entry's `amount_provided`. - * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `price_index_when_last_charged`. - **/ - dynamicRatePaymentStreams: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: AccountId32 | string | Uint8Array - ) => Observable>, - [H256, AccountId32] - > & - QueryableStorageEntry; - /** - * The double mapping from a Provider, to its provided Users, to their fixed-rate payment streams. - * - * This is used to store and manage fixed-rate payment streams between Users and Providers. - * - * This storage is updated in: - * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which adds a new entry to the map. - * - [delete_fixed_rate_payment_stream](crate::dispatchables::delete_fixed_rate_payment_stream), which removes the corresponding entry from the map. - * - [update_fixed_rate_payment_stream](crate::dispatchables::update_fixed_rate_payment_stream), which updates the entry's `rate`. - * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `last_charged_tick`. - **/ - fixedRatePaymentStreams: AugmentedQuery< - ApiType, - ( - arg1: H256 | string | Uint8Array, - arg2: AccountId32 | string | Uint8Array - ) => Observable>, - [H256, AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from a Provider to its last chargeable price index (for dynamic-rate payment streams) and last chargeable tick (for fixed-rate payment streams). - * - * This is used to keep track of the last chargeable price index and tick number for each Provider, so this pallet can charge the payment streams correctly. - * - * This storage is updated in: - * - [update_last_chargeable_info](crate::PaymentManager::update_last_chargeable_info), which updates the entry's `last_chargeable_tick` and `price_index`. - **/ - lastChargeableInfo: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable, - [H256] - > & - QueryableStorageEntry; - /** - * A counter of blocks for which Providers can charge their streams. - * - * This counter is not necessarily the same as the block number, as the last chargeable info of Providers - * (and the global price index) are updated in the `on_poll` hook, which happens at the beginning of every block, - * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). - * During MBMs, the block number increases, but `OnPollTicker` does not. - **/ - onPollTicker: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from a user to if it has been registered to the network and the amount of payment streams it has. - * - * Since users have to provide a deposit to be able to open each payment stream, this is used to keep track of the amount of payment streams - * that a user has and it is also useful to check if a user has registered to the network. - * - * This storage is updated in: - * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which holds the deposit of the user and adds one to this storage. - * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which holds the deposit of the user and adds one to this storage. - * - [remove_fixed_rate_payment_stream](crate::dispatchables::remove_fixed_rate_payment_stream), which removes one from this storage and releases the deposit. - * - [remove_dynamic_rate_payment_stream](crate::dispatchables::remove_dynamic_rate_payment_stream), which removes one from this storage and releases the deposit. - **/ - registeredUsers: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from a user to if it has been flagged for not having enough funds to pay for its requested services. - * - * This is used to flag users that do not have enough funds to pay for their requested services, so other Providers - * can stop providing services to them. - * - * This storage is updated in: - * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which emits a `UserWithoutFunds` event and sets the user's entry in this map if it does not - * have enough funds, and clears the entry if it was set and the user has enough funds. - **/ - usersWithoutFunds: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - polkadotXcm: { - /** - * The existing asset traps. - * - * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of - * times this pair has been trapped (usually just 1 if it exists at all). - **/ - assetTraps: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable, - [H256] - > & - QueryableStorageEntry; - /** - * The current migration's stage, if any. - **/ - currentMigration: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Fungible assets which we know are locked on this chain. - **/ - lockedFungibles: AugmentedQuery< - ApiType, - ( - arg: AccountId32 | string | Uint8Array - ) => Observable>>>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The ongoing queries. - **/ - queries: AugmentedQuery< - ApiType, - (arg: u64 | AnyNumber | Uint8Array) => Observable>, - [u64] - > & - QueryableStorageEntry; - /** - * The latest available query index. - **/ - queryCounter: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally - * will be stored here. - * Runtime APIs can fetch the XCM that was executed by accessing this value. - * - * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] - * implementation in the XCM executor configuration. - **/ - recordedXcm: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * Fungible assets which we know are locked on a remote chain. - **/ - remoteLockedFungibles: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: AccountId32 | string | Uint8Array, - arg3: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable>, - [u32, AccountId32, XcmVersionedAssetId] - > & - QueryableStorageEntry; - /** - * Default version to encode XCM when latest version of destination is unknown. If `None`, - * then the destinations whose XCM version is unknown are considered unreachable. - **/ - safeXcmVersion: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Whether or not incoming XCMs (both executed locally and received) should be recorded. - * Only one XCM program will be recorded at a time. - * This is meant to be used in runtime APIs, and it's advised it stays false - * for all other use cases, so as to not degrade regular performance. - * - * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] - * implementation in the XCM executor configuration. - **/ - shouldRecordXcm: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The Latest versions that we know various locations support. - **/ - supportedVersion: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable>, - [u32, XcmVersionedLocation] - > & - QueryableStorageEntry; - /** - * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and - * the `u32` counter is the number of times that a send to the destination has been attempted, - * which is used as a prioritization. - **/ - versionDiscoveryQueue: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * All locations that we have requested version notifications from. - **/ - versionNotifiers: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable>, - [u32, XcmVersionedLocation] - > & - QueryableStorageEntry; - /** - * The target locations that are subscribed to our version changes, as well as the most recent - * of our versions we informed them of. - **/ - versionNotifyTargets: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable>>, - [u32, XcmVersionedLocation] - > & - QueryableStorageEntry; - /** - * Global suspension state of the XCM executor. - **/ - xcmExecutionSuspended: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - proofsDealer: { - /** - * A queue of keys that have been challenged manually. - * - * The elements in this queue will be challenged in the coming blocks, - * always ensuring that the maximum number of challenges per block is not exceeded. - * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait - * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. - **/ - challengesQueue: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * A counter of blocks in which challenges were distributed. - * - * This counter is not necessarily the same as the block number, as challenges are - * distributed in the `on_poll` hook, which happens at the beginning of every block, - * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). - * During MBMsm, the block number increases, but [`ChallengesTicker`] does not. - **/ - challengesTicker: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A boolean that represents whether the [`ChallengesTicker`] is paused. - * - * By default, this is `false`, meaning that the [`ChallengesTicker`] is incremented every time `on_poll` is called. - * This can be set to `true` which would pause the [`ChallengesTicker`], preventing `do_new_challenges_round` from - * being executed. Therefore: - * - No new random challenges would be emitted and added to [`TickToChallengesSeed`]. - * - No new checkpoint challenges would be emitted and added to [`TickToCheckpointChallenges`]. - * - Deadlines for proof submissions are indefinitely postponed. - **/ - challengesTickerPaused: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The challenge tick of the last checkpoint challenge round. - * - * This is used to determine when to include the challenges from the [`ChallengesQueue`] and - * [`PriorityChallengesQueue`] in the [`TickToCheckpointChallenges`] StorageMap. These checkpoint - * challenge rounds have to be answered by ALL Providers, and this is enforced by the - * `submit_proof` extrinsic. - **/ - lastCheckpointTick: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A value that represents the last tick that was deleted from the [`ValidProofSubmittersLastTicks`] StorageMap. - * - * This is used to know which tick to delete from the [`ValidProofSubmittersLastTicks`] StorageMap when the - * `on_idle` hook is called. - **/ - lastDeletedTick: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A mapping from a Provider to the last tick for which they SHOULD have submitted a proof. - * If for a Provider `p`, `LastTickProviderSubmittedAProofFor[p]` is `n`, then the - * Provider should submit a proof for tick `n + stake_to_challenge_period(p)`. - * - * This gets updated when a Provider submits a proof successfully and is used to determine the - * next tick for which the Provider should submit a proof, and it's deadline. - * - * If the Provider fails to submit a proof in time and is slashed, this will still get updated - * to the tick it should have submitted a proof for. - **/ - lastTickProviderSubmittedAProofFor: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The number of blocks that have been considered _not_ full in the last [`Config::BlockFullnessPeriod`]. - * - * This is used to check if the network is presumably under a spam attack. - **/ - notFullBlocksCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * A mapping from block number to the weight used in that block. - * - * This is used to check if the network is presumably under a spam attack. - * It is cleared for blocks older than `current_block` - ([`Config::BlockFullnessPeriod`] + 1). - **/ - pastBlocksWeight: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * A priority queue of keys that have been challenged manually. - * - * The difference between this and `ChallengesQueue` is that the challenges - * in this queue are given priority over the others. So this queue should be - * emptied before any of the challenges in the `ChallengesQueue` are dispatched. - * This queue should not be accessible to the public. - * The elements in this queue will be challenged in the coming blocks, - * always ensuring that the maximum number of challenges per block is not exceeded. - * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait - * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. - **/ - priorityChallengesQueue: AugmentedQuery< - ApiType, - () => Observable]>>>, - [] - > & - QueryableStorageEntry; - slashableProviders: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * A mapping from challenges tick to a random seed used for generating the challenges in that tick. - * - * This is used to keep track of the challenges' seed in the past. - * This mapping goes back only [`ChallengeHistoryLengthFor`] blocks. Previous challenges are removed. - **/ - tickToChallengesSeed: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>, - [u32] - > & - QueryableStorageEntry; - /** - * A mapping from challenges tick to a vector of custom challenged keys for that tick. - * - * This is used to keep track of the challenges that have been made in the past, specifically - * in the checkpoint challenge rounds. - * The vector is bounded by [`MaxCustomChallengesPerBlockFor`]. - * This mapping goes back only [`ChallengeHistoryLengthFor`] ticks. Previous challenges are removed. - **/ - tickToCheckpointChallenges: AugmentedQuery< - ApiType, - ( - arg: u32 | AnyNumber | Uint8Array - ) => Observable]>>>>, - [u32] - > & - QueryableStorageEntry; - /** - * A mapping from challenge tick to a vector of challenged Providers for that tick. - * - * This is used to keep track of the Providers that have been challenged, and should - * submit a proof by the time of the [`ChallengesTicker`] reaches the number used as - * key in the mapping. Providers who do submit a proof are removed from their respective - * entry and pushed forward to the next tick in which they should submit a proof. - * Those who are still in the entry by the time the tick is reached are considered to - * have failed to submit a proof and subject to slashing. - **/ - tickToProvidersDeadlines: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: H256 | string | Uint8Array - ) => Observable>, - [u32, H256] - > & - QueryableStorageEntry; - /** - * A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. - * - * This is used to keep track of the Providers that have submitted proofs in the last few - * ticks, where availability only up to the last [`Config::TargetTicksStorageOfSubmitters`] ticks is guaranteed. - * This storage is then made available for other pallets to use through the `ProofSubmittersInterface`. - **/ - validProofSubmittersLastTicks: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable>>, - [u32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - providers: { - /** - * The mapping from an AccountId to a BackupStorageProviderId. - * - * This is used to get a Backup Storage Provider's unique identifier needed to access its metadata. - * - * This storage is updated in: - * - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. - **/ - accountIdToBackupStorageProviderId: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from an AccountId to a MainStorageProviderId. - * - * This is used to get a Main Storage Provider's unique identifier needed to access its metadata. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. - * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. - **/ - accountIdToMainStorageProviderId: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The mapping from a BackupStorageProviderId to a BackupStorageProvider. - * - * This is used to get a Backup Storage Provider's metadata. - * It returns `None` if the Backup Storage Provider ID does not correspond to any registered Backup Storage Provider. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. - * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. - **/ - backupStorageProviders: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The amount of Backup Storage Providers that are currently registered in the runtime. - * - * This is used to keep track of the total amount of BSPs in the system. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts one from this storage. - **/ - bspCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from a BucketId to that bucket's metadata. - * - * This is used to get a bucket's metadata, such as root, user ID, and MSP ID. - * It returns `None` if the Bucket ID does not correspond to any registered bucket. - * - * This storage is updated in: - * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket), which adds a new entry to the map. - * - [change_root_bucket](shp_traits::MutateProvidersInterface::change_root_bucket), which changes the corresponding bucket's root. - * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket), which removes the entry of the corresponding bucket. - **/ - buckets: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The total global reputation weight of all BSPs. - **/ - globalBspsReputationWeight: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from a MainStorageProviderId to a vector of BucketIds. - * - * This is used to efficiently retrieve the list of buckets that a Main Storage Provider is currently storing. - * - * This storage is updated in: - * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket) - * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket) - **/ - mainStorageProviderIdsToBuckets: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>>, - [H256] - > & - QueryableStorageEntry; - /** - * The mapping from a MainStorageProviderId to a MainStorageProvider. - * - * This is used to get a Main Storage Provider's metadata. - * It returns `None` if the Main Storage Provider ID does not correspond to any registered Main Storage Provider. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. - * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. - * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. - * - [add_value_prop](crate::dispatchables::add_value_prop), which appends a new value proposition to the entry's existing `value_prop` bounded vector. - **/ - mainStorageProviders: AugmentedQuery< - ApiType, - ( - arg: H256 | string | Uint8Array - ) => Observable>, - [H256] - > & - QueryableStorageEntry; - /** - * The amount of Main Storage Providers that are currently registered in the runtime. - * - * This is used to keep track of the total amount of MSPs in the system. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Main Storage Provider. - * - [msp_sign_off](crate::dispatchables::msp_sign_off), which subtracts one from this storage. - **/ - mspCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The mapping from an AccountId that requested to sign up to a tuple of the metadata with type of the request, and the block - * number when the request was made. - * - * This is used for the two-step process of registering: when a user requests to register as a SP (either MSP or BSP), - * that request with the metadata and the deposit held is stored here. When the user confirms the sign up, the - * request is removed from this storage and the user is registered as a SP. - * - * This storage is updated in: - * - [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) and [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up), which add a new entry to the map. - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up) and [cancel_sign_up](crate::dispatchables::cancel_sign_up), which remove an existing entry from the map. - **/ - signUpRequests: AugmentedQuery< - ApiType, - ( - arg: AccountId32 | string | Uint8Array - ) => Observable>>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * The total amount of storage capacity all BSPs have. - * - * This is used to keep track of the total amount of storage capacity all BSPs have in the system, which is also the - * total amount of storage capacity that can be used by users if we factor in the replication factor. - * - * This storage is updated in: - * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds the capacity of the registered Storage Provider to this storage if the account to confirm is a Backup Storage Provider. - * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts the capacity of the Backup Storage Provider to sign off from this storage. - **/ - totalBspsCapacity: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The total amount of storage capacity of BSPs that is currently in use. - * - * This is used to keep track of the total amount of storage capacity that is currently in use by users, which is useful for - * system metrics and also to calculate the current price of storage. - **/ - usedBspsCapacity: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - randomness: { - /** - * Ensures the mandatory inherent was included in the block - **/ - inherentIncluded: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Latest random seed obtained from the one epoch ago randomness from BABE, and the latest block that it can process randomness requests from - **/ - latestOneEpochAgoRandomness: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * Latest random seed obtained from the parent block randomness from BABE, and the latest block that it can process randomness requests from - **/ - latestParentBlockRandomness: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * Current relay epoch - **/ - relayEpoch: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - session: { - /** - * Current index of the session. - **/ - currentIndex: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Indices of disabled validators. - * - * The vec is always kept sorted so that we can find whether a given validator is - * disabled using binary search. It gets cleared when `on_session_ending` returns - * a new set of identities. - **/ - disabledValidators: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The owner of a key. The key is the `KeyTypeId` + the encoded key. - **/ - keyOwner: AugmentedQuery< - ApiType, - ( - arg: - | ITuple<[SpCoreCryptoKeyTypeId, Bytes]> - | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array] - ) => Observable>, - [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>] - > & - QueryableStorageEntry]>; - /** - * The next session keys for a validator. - **/ - nextKeys: AugmentedQuery< - ApiType, - ( - arg: AccountId32 | string | Uint8Array - ) => Observable>, - [AccountId32] - > & - QueryableStorageEntry; - /** - * True if the underlying economic identities or weighting behind the validators - * has changed in the queued validator set. - **/ - queuedChanged: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The queued keys for the next session. When the next session begins, these keys - * will be used to determine the validator's session keys. - **/ - queuedKeys: AugmentedQuery< - ApiType, - () => Observable>>, - [] - > & - QueryableStorageEntry; - /** - * The current set of validators. - **/ - validators: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - sudo: { - /** - * The `AccountId` of the sudo key. - **/ - key: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - system: { - /** - * The full account information for a particular account ID. - **/ - account: AugmentedQuery< - ApiType, - (arg: AccountId32 | string | Uint8Array) => Observable, - [AccountId32] - > & - QueryableStorageEntry; - /** - * Total length (in bytes) for all extrinsics put together, for the current block. - **/ - allExtrinsicsLen: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * `Some` if a code upgrade has been authorized. - **/ - authorizedUpgrade: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * Map of block numbers to block hashes. - **/ - blockHash: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * The current weight for the block. - **/ - blockWeight: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * Digest of the current block, also part of the block header. - **/ - digest: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The number of events in the `Events` list. - **/ - eventCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Events deposited for the current block. - * - * NOTE: The item is unbound and should therefore never be read on chain. - * It could otherwise inflate the PoV size of a block. - * - * Events have a large in-memory size. Box the events to not go out-of-memory - * just in case someone still reads them from within the runtime. - **/ - events: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Mapping between a topic (represented by T::Hash) and a vector of indexes - * of events in the `>` list. - * - * All topic vectors have deterministic storage locations depending on the topic. This - * allows light-clients to leverage the changes trie storage tracking mechanism and - * in case of changes fetch the list of events of interest. - * - * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just - * the `EventIndex` then in case if the topic has the same contents on the next block - * no notification will be triggered thus the event might be lost. - **/ - eventTopics: AugmentedQuery< - ApiType, - (arg: H256 | string | Uint8Array) => Observable>>, - [H256] - > & - QueryableStorageEntry; - /** - * The execution phase of the block. - **/ - executionPhase: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Total extrinsics count for the current block. - **/ - extrinsicCount: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * Extrinsics data for the current block (maps an extrinsic's index to its data). - **/ - extrinsicData: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * Whether all inherents have been applied. - **/ - inherentsApplied: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. - **/ - lastRuntimeUpgrade: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The current block number being processed. Set by `execute_block`. - **/ - number: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Hash of the previous block. - **/ - parentHash: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False - * (default) if not. - **/ - upgradedToTripleRefCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. - **/ - upgradedToU32RefCount: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - timestamp: { - /** - * Whether the timestamp has been updated in this block. - * - * This value is updated to `true` upon successful submission of a timestamp by a node. - * It is then checked at the end of each block execution in the `on_finalize` hook. - **/ - didUpdate: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * The current time for the current block. - **/ - now: AugmentedQuery Observable, []> & QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - transactionPayment: { - nextFeeMultiplier: AugmentedQuery Observable, []> & - QueryableStorageEntry; - storageVersion: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - xcmpQueue: { - /** - * The factor to multiply the base delivery fee by. - **/ - deliveryFeeFactor: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * The suspended inbound XCMP channels. All others are not suspended. - * - * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block - * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached - * within the block and therefore only included once in the proof size. - * - * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof - * will be smaller. - **/ - inboundXcmpSuspended: AugmentedQuery Observable>, []> & - QueryableStorageEntry; - /** - * The messages outbound in a given XCMP channel. - **/ - outboundXcmpMessages: AugmentedQuery< - ApiType, - ( - arg1: u32 | AnyNumber | Uint8Array, - arg2: u16 | AnyNumber | Uint8Array - ) => Observable, - [u32, u16] - > & - QueryableStorageEntry; - /** - * The non-empty XCMP channels in order of becoming non-empty, and the index of the first - * and last outbound message. If the two indices are equal, then it indicates an empty - * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater - * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in - * case of the need to send a high-priority signal message this block. - * The bool is true if there is a signal message waiting to be sent. - **/ - outboundXcmpStatus: AugmentedQuery< - ApiType, - () => Observable>, - [] - > & - QueryableStorageEntry; - /** - * The configuration which controls the dynamics of the outbound queue. - **/ - queueConfig: AugmentedQuery< - ApiType, - () => Observable, - [] - > & - QueryableStorageEntry; - /** - * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. - **/ - queueSuspended: AugmentedQuery Observable, []> & - QueryableStorageEntry; - /** - * Any signal messages waiting to be sent. - **/ - signalMessages: AugmentedQuery< - ApiType, - (arg: u32 | AnyNumber | Uint8Array) => Observable, - [u32] - > & - QueryableStorageEntry; - /** - * Generic query - **/ - [key: string]: QueryableStorageEntry; - }; - } // AugmentedQueries -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/storage"; + +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from "@polkadot/api-base/types"; +import type { + BTreeMap, + BTreeSet, + Bytes, + Null, + Option, + Struct, + Vec, + bool, + u128, + u16, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { AnyNumber, ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, H256 } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, + CumulusPalletParachainSystemUnincludedSegmentAncestor, + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, + CumulusPalletXcmpQueueOutboundChannelDetails, + CumulusPalletXcmpQueueQueueConfigData, + CumulusPrimitivesCoreAggregateMessageOrigin, + FrameSupportDispatchPerDispatchClassWeight, + FrameSystemAccountInfo, + FrameSystemCodeUpgradeAuthorization, + FrameSystemEventRecord, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemPhase, + PalletBalancesAccountData, + PalletBalancesBalanceLock, + PalletBalancesIdAmount, + PalletBalancesReserveData, + PalletCollatorSelectionCandidateInfo, + PalletFileSystemMoveBucketRequestMetadata, + PalletFileSystemStorageRequestBspsMetadata, + PalletFileSystemStorageRequestMetadata, + PalletMessageQueueBookState, + PalletMessageQueuePage, + PalletNftsAttributeDeposit, + PalletNftsAttributeNamespace, + PalletNftsCollectionConfig, + PalletNftsCollectionDetails, + PalletNftsCollectionMetadata, + PalletNftsItemConfig, + PalletNftsItemDetails, + PalletNftsItemMetadata, + PalletNftsPendingSwap, + PalletPaymentStreamsDynamicRatePaymentStream, + PalletPaymentStreamsFixedRatePaymentStream, + PalletPaymentStreamsProviderLastChargeableInfo, + PalletStorageProvidersBackupStorageProvider, + PalletStorageProvidersBucket, + PalletStorageProvidersMainStorageProvider, + PalletStorageProvidersStorageProvider, + PalletTransactionPaymentReleases, + PalletXcmQueryStatus, + PalletXcmRemoteLockedFungibleRecord, + PalletXcmVersionMigrationStage, + PolkadotCorePrimitivesOutboundHrmpMessage, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, + ShpTraitsTrieRemoveMutation, + SpConsensusAuraSr25519AppSr25519Public, + SpCoreCryptoKeyTypeId, + SpRuntimeDigest, + SpTrieStorageProof, + SpWeightsWeightV2Weight, + StagingXcmV4Instruction, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + StorageHubRuntimeRuntimeHoldReason, + StorageHubRuntimeSessionKeys, + XcmVersionedAssetId, + XcmVersionedLocation +} from "@polkadot/types/lookup"; +import type { Observable } from "@polkadot/types/types"; + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module "@polkadot/api-base/types/storage" { + interface AugmentedQueries { + aura: { + /** + * The current authority set. + **/ + authorities: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The current slot of this block. + * + * This will be set in `on_initialize`. + **/ + currentSlot: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + auraExt: { + /** + * Serves as cache for the authorities. + * + * The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session, + * but we require the old authorities to verify the seal when validating a PoV. This will + * always be updated to the latest AuRa authorities in `on_finalize`. + **/ + authorities: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Current slot paired with a number of authored blocks. + * + * Updated on each block initialization. + **/ + slotInfo: AugmentedQuery Observable>>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable< + Vec< + { + readonly id: StorageHubRuntimeRuntimeHoldReason; + readonly amount: u128; + } & Struct + > + >, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + collatorSelection: { + /** + * Fixed amount to deposit to become a collator. + * + * When a collator calls `leave_intent` they immediately receive the deposit back. + **/ + candidacyBond: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be + * mutually exclusive. + * + * This list is sorted in ascending order by deposit and when the deposits are equal, the least + * recently updated is considered greater. + **/ + candidateList: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Desired number of candidates. + * + * This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct. + **/ + desiredCandidates: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The invulnerable, permissioned collators. This list must be sorted. + **/ + invulnerables: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Last block authored by collator. + **/ + lastAuthoredBlock: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fileSystem: { + /** + * Bookkeeping of the buckets containing open storage requests. + **/ + bucketsWithStorageRequests: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * BSP data servers for move bucket requests. + **/ + dataServersForMoveBucket: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * A map of blocks to expired file deletion requests. + **/ + fileDeletionRequestExpirations: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>>, + [u32] + > & + QueryableStorageEntry; + /** + * A map of blocks to expired move bucket requests. + **/ + moveBucketRequestExpirations: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>>, + [u32] + > & + QueryableStorageEntry; + /** + * A pointer to the earliest available block to insert a new file deletion request expiration. + * + * This should always be greater or equal than current block + [`Config::PendingFileDeletionRequestTtl`]. + **/ + nextAvailableFileDeletionRequestExpirationBlock: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * A pointer to the earliest available block to insert a new move bucket request expiration. + * + * This should always be greater or equal than current block + [`Config::MoveBucketRequestTtl`]. + **/ + nextAvailableMoveBucketRequestExpirationBlock: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * A pointer to the earliest available block to insert a new storage request expiration. + * + * This should always be greater or equal than current block + [`Config::StorageRequestTtl`]. + **/ + nextAvailableStorageRequestExpirationBlock: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * A pointer to the starting block to clean up expired storage requests. + * + * If this block is behind the current block number, the cleanup algorithm in `on_idle` will + * attempt to accelerate this block pointer as close to or up to the current block number. This + * will execute provided that there is enough remaining weight to do so. + **/ + nextStartingBlockToCleanUp: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Bookkeeping of buckets that are pending to be moved to a new MSP. + **/ + pendingBucketsToMove: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable, + [H256] + > & + QueryableStorageEntry; + /** + * Pending file deletion requests. + * + * A mapping from a user account id to a list of pending file deletion requests, holding a tuple of the file key and bucket id. + **/ + pendingFileDeletionRequests: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Pending move bucket requests. + * + * A double mapping from MSP IDs to a list of bucket IDs which they can accept or decline to take over. + * The value is the user who requested the move. + **/ + pendingMoveBucketRequests: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * Pending file stop storing requests. + * + * A double mapping from BSP IDs to a list of file keys pending stop storing requests to the block in which those requests were opened + * and the proven size of the file. + * The block number is used to avoid BSPs being able to stop storing files immediately which would allow them to avoid challenges + * of missing files. The size is to be able to decrease their used capacity when they confirm to stop storing the file. + **/ + pendingStopStoringRequests: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * Number of BSPs required to fulfill a storage request + * + * This is also used as a default value if the BSPs required are not specified when creating a storage request. + **/ + replicationTarget: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A double map from storage request to BSP `AccountId`s that volunteered to store the file. + * + * Any BSP under a storage request prefix is considered to be a volunteer and can be removed at any time. + * Once a BSP submits a valid proof to the via the `bsp_confirm_storing` extrinsic, the `confirmed` field in [`StorageRequestBspsMetadata`] will be set to `true`. + * + * When a storage request is expired or removed, the corresponding storage request prefix in this map is removed. + **/ + storageRequestBsps: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [H256, H256] + > & + QueryableStorageEntry; + /** + * A map of blocks to expired storage requests. + **/ + storageRequestExpirations: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + storageRequests: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * Number of ticks until all BSPs would reach the [`Config::MaximumThreshold`] to ensure that all BSPs are able to volunteer. + **/ + tickRangeToMaximumThreshold: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery< + ApiType, + ( + arg: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { Here: any } + | { Parent: any } + | { Sibling: any } + | string + | Uint8Array + ) => Observable, + [CumulusPrimitivesCoreAggregateMessageOrigin] + > & + QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery< + ApiType, + ( + arg1: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { Here: any } + | { Parent: any } + | { Sibling: any } + | string + | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32] + > & + QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nfts: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery< + ApiType, + ( + arg1: AccountId32 | string | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array, + arg3: u32 | AnyNumber | Uint8Array + ) => Observable>, + [AccountId32, u32, u32] + > & + QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: Option | null | Uint8Array | u32 | AnyNumber, + arg3: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + arg4: Bytes | string | Uint8Array + ) => Observable>>, + [u32, Option, PalletNftsAttributeNamespace, Bytes] + > & + QueryableStorageEntry, PalletNftsAttributeNamespace, Bytes]>; + /** + * Details of a collection. + **/ + collection: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + collectionAccount: AugmentedQuery< + ApiType, + ( + arg1: AccountId32 | string | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [AccountId32, u32] + > & + QueryableStorageEntry; + /** + * Config of a collection. + **/ + collectionConfigOf: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + collectionMetadataOf: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * The items in existence and their ownership details. + * Stores collection roles as per account. + **/ + collectionRoleOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: AccountId32 | string | Uint8Array + ) => Observable>, + [u32, AccountId32] + > & + QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + item: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Item attribute approvals. + **/ + itemAttributesApprovalsOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Config of an item. + **/ + itemConfigOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Metadata of an item. + **/ + itemMetadataOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * A price of an item. + **/ + itemPriceOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable]>>>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Stores the `CollectionId` that is going to be used for the next collection. + * This gets incremented whenever a new collection is created. + **/ + nextCollectionId: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Handles all the pending swaps. + **/ + pendingSwapOf: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u32 | AnyNumber | Uint8Array + ) => Observable>, + [u32, u32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainInfo: { + parachainId: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainSystem: { + /** + * Storage field that keeps track of bandwidth used by the unincluded segment along with the + * latest HRMP watermark. Used for limiting the acceptance of new blocks with + * respect to relay chain constraints. + **/ + aggregatedUnincludedSegment: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The number of HRMP messages we observed in `on_initialize` and thus used that number for + * announcing the weight of `on_initialize` and `on_finalize`. + **/ + announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A custom head data that should be returned as result of `validate_block`. + * + * See `Pallet::set_custom_validation_head_data` for more information. + **/ + customValidationHeadData: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Were the validation data set to notify the relay chain? + **/ + didSetValidationCode: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The parachain host configuration that was obtained from the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + hostConfiguration: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * HRMP messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + hrmpOutboundMessages: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * HRMP watermark that was set in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + hrmpWatermark: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The last downward message queue chain head we have observed. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastDmqMqcHead: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The message queue chain heads we have observed per each channel incoming channel. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastHrmpMqcHeads: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The relay chain block number associated with the last parachain block. + * + * This is updated in `on_finalize`. + **/ + lastRelayChainBlockNumber: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Validation code that is set by the parachain and is to be communicated to collator and + * consequently the relay-chain. + * + * This will be cleared in `on_initialize` of each new block if no other pallet already set + * the value. + **/ + newValidationCode: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Upward messages that are still pending and not yet send to the relay chain. + **/ + pendingUpwardMessages: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * In case of a scheduled upgrade, this storage field contains the validation code to be + * applied. + * + * As soon as the relay chain gives us the go-ahead signal, we will overwrite the + * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process + * with the new validation code. This concludes the upgrade process. + **/ + pendingValidationCode: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Number of downward messages processed in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + processedDownwardMessages: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The state proof for the last relay parent block. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relayStateProof: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The snapshot of some state related to messaging relevant to the current parachain as per + * the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relevantMessagingState: AugmentedQuery< + ApiType, + () => Observable< + Option + >, + [] + > & + QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing DMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedDmpWeightOverride: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing XCMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedXcmpWeightOverride: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Latest included block descendants the runtime accepted. In other words, these are + * ancestors of the currently executing block which have not been included in the observed + * relay-chain state. + * + * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured + * in the pallet. + **/ + unincludedSegment: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Optional upgrade go-ahead signal from the relay-chain. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeGoAhead: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * An option which indicates if the relay-chain restricts signalling a validation code upgrade. + * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced + * candidate will be invalid. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeRestrictionSignal: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The factor to multiply the base delivery fee by for UMP. + **/ + upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Upward messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + upwardMessages: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The [`PersistedValidationData`] set for this block. + * This value is expected to be set only once per block and it's never stored + * in the trie. + **/ + validationData: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parameters: { + /** + * Stored parameters. + **/ + parameters: AugmentedQuery< + ApiType, + ( + arg: + | StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey + | { RuntimeConfig: any } + | string + | Uint8Array + ) => Observable>, + [StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paymentStreams: { + /** + * The accumulated price index since genesis, used to calculate the amount to charge for dynamic-rate payment streams. + * + * This is equivalent to what it would have cost to store one unit of the provided service since the beginning of the network. + * We use this to calculate the amount to charge for dynamic-rate payment streams, by checking out the difference between the index + * when the payment stream was last charged, and the index at the last chargeable tick. + * + * This storage is updated in: + * - [do_update_price_index](crate::utils::do_update_price_index), which updates the accumulated price index, adding to it the current price. + **/ + accumulatedPriceIndex: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The current price per unit per tick of the provided service, used to calculate the amount to charge for dynamic-rate payment streams. + * + * This is updated each tick using the formula that considers current system capacity (total storage of the system) and system availability (total storage available). + * + * This storage is updated in: + * - [do_update_current_price_per_unit_per_tick](crate::utils::do_update_current_price_per_unit_per_tick), which updates the current price per unit per tick. + **/ + currentPricePerUnitPerTick: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The double mapping from a Provider, to its provided Users, to their dynamic-rate payment streams. + * + * This is used to store and manage dynamic-rate payment streams between Users and Providers. + * + * This storage is updated in: + * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which adds a new entry to the map. + * - [delete_dynamic_rate_payment_stream](crate::dispatchables::delete_dynamic_rate_payment_stream), which removes the corresponding entry from the map. + * - [update_dynamic_rate_payment_stream](crate::dispatchables::update_dynamic_rate_payment_stream), which updates the entry's `amount_provided`. + * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `price_index_when_last_charged`. + **/ + dynamicRatePaymentStreams: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: AccountId32 | string | Uint8Array + ) => Observable>, + [H256, AccountId32] + > & + QueryableStorageEntry; + /** + * The double mapping from a Provider, to its provided Users, to their fixed-rate payment streams. + * + * This is used to store and manage fixed-rate payment streams between Users and Providers. + * + * This storage is updated in: + * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which adds a new entry to the map. + * - [delete_fixed_rate_payment_stream](crate::dispatchables::delete_fixed_rate_payment_stream), which removes the corresponding entry from the map. + * - [update_fixed_rate_payment_stream](crate::dispatchables::update_fixed_rate_payment_stream), which updates the entry's `rate`. + * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which updates the entry's `last_charged_tick`. + **/ + fixedRatePaymentStreams: AugmentedQuery< + ApiType, + ( + arg1: H256 | string | Uint8Array, + arg2: AccountId32 | string | Uint8Array + ) => Observable>, + [H256, AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from a Provider to its last chargeable price index (for dynamic-rate payment streams) and last chargeable tick (for fixed-rate payment streams). + * + * This is used to keep track of the last chargeable price index and tick number for each Provider, so this pallet can charge the payment streams correctly. + * + * This storage is updated in: + * - [update_last_chargeable_info](crate::PaymentManager::update_last_chargeable_info), which updates the entry's `last_chargeable_tick` and `price_index`. + **/ + lastChargeableInfo: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable, + [H256] + > & + QueryableStorageEntry; + /** + * A counter of blocks for which Providers can charge their streams. + * + * This counter is not necessarily the same as the block number, as the last chargeable info of Providers + * (and the global price index) are updated in the `on_poll` hook, which happens at the beginning of every block, + * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). + * During MBMs, the block number increases, but `OnPollTicker` does not. + **/ + onPollTicker: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from a user to if it has been registered to the network and the amount of payment streams it has. + * + * Since users have to provide a deposit to be able to open each payment stream, this is used to keep track of the amount of payment streams + * that a user has and it is also useful to check if a user has registered to the network. + * + * This storage is updated in: + * - [add_fixed_rate_payment_stream](crate::dispatchables::add_fixed_rate_payment_stream), which holds the deposit of the user and adds one to this storage. + * - [add_dynamic_rate_payment_stream](crate::dispatchables::add_dynamic_rate_payment_stream), which holds the deposit of the user and adds one to this storage. + * - [remove_fixed_rate_payment_stream](crate::dispatchables::remove_fixed_rate_payment_stream), which removes one from this storage and releases the deposit. + * - [remove_dynamic_rate_payment_stream](crate::dispatchables::remove_dynamic_rate_payment_stream), which removes one from this storage and releases the deposit. + **/ + registeredUsers: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from a user to if it has been flagged for not having enough funds to pay for its requested services. + * + * This is used to flag users that do not have enough funds to pay for their requested services, so other Providers + * can stop providing services to them. + * + * This storage is updated in: + * - [charge_payment_streams](crate::dispatchables::charge_payment_streams), which emits a `UserWithoutFunds` event and sets the user's entry in this map if it does not + * have enough funds, and clears the entry if it was set and the user has enough funds. + **/ + usersWithoutFunds: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + polkadotXcm: { + /** + * The existing asset traps. + * + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ + assetTraps: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable, + [H256] + > & + QueryableStorageEntry; + /** + * The current migration's stage, if any. + **/ + currentMigration: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Fungible assets which we know are locked on this chain. + **/ + lockedFungibles: AugmentedQuery< + ApiType, + ( + arg: AccountId32 | string | Uint8Array + ) => Observable>>>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The ongoing queries. + **/ + queries: AugmentedQuery< + ApiType, + (arg: u64 | AnyNumber | Uint8Array) => Observable>, + [u64] + > & + QueryableStorageEntry; + /** + * The latest available query index. + **/ + queryCounter: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * Fungible assets which we know are locked on a remote chain. + **/ + remoteLockedFungibles: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: AccountId32 | string | Uint8Array, + arg3: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable>, + [u32, AccountId32, XcmVersionedAssetId] + > & + QueryableStorageEntry; + /** + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ + safeXcmVersion: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The Latest versions that we know various locations support. + **/ + supportedVersion: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable>, + [u32, XcmVersionedLocation] + > & + QueryableStorageEntry; + /** + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ + versionDiscoveryQueue: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * All locations that we have requested version notifications from. + **/ + versionNotifiers: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable>, + [u32, XcmVersionedLocation] + > & + QueryableStorageEntry; + /** + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ + versionNotifyTargets: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: XcmVersionedLocation | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => Observable>>, + [u32, XcmVersionedLocation] + > & + QueryableStorageEntry; + /** + * Global suspension state of the XCM executor. + **/ + xcmExecutionSuspended: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proofsDealer: { + /** + * A queue of keys that have been challenged manually. + * + * The elements in this queue will be challenged in the coming blocks, + * always ensuring that the maximum number of challenges per block is not exceeded. + * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait + * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. + **/ + challengesQueue: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * A counter of blocks in which challenges were distributed. + * + * This counter is not necessarily the same as the block number, as challenges are + * distributed in the `on_poll` hook, which happens at the beginning of every block, + * so long as the block is not part of a [Multi-Block-Migration](https://github.com/paritytech/polkadot-sdk/pull/1781) (MBM). + * During MBMsm, the block number increases, but [`ChallengesTicker`] does not. + **/ + challengesTicker: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A boolean that represents whether the [`ChallengesTicker`] is paused. + * + * By default, this is `false`, meaning that the [`ChallengesTicker`] is incremented every time `on_poll` is called. + * This can be set to `true` which would pause the [`ChallengesTicker`], preventing `do_new_challenges_round` from + * being executed. Therefore: + * - No new random challenges would be emitted and added to [`TickToChallengesSeed`]. + * - No new checkpoint challenges would be emitted and added to [`TickToCheckpointChallenges`]. + * - Deadlines for proof submissions are indefinitely postponed. + **/ + challengesTickerPaused: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The challenge tick of the last checkpoint challenge round. + * + * This is used to determine when to include the challenges from the [`ChallengesQueue`] and + * [`PriorityChallengesQueue`] in the [`TickToCheckpointChallenges`] StorageMap. These checkpoint + * challenge rounds have to be answered by ALL Providers, and this is enforced by the + * `submit_proof` extrinsic. + **/ + lastCheckpointTick: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A value that represents the last tick that was deleted from the [`ValidProofSubmittersLastTicks`] StorageMap. + * + * This is used to know which tick to delete from the [`ValidProofSubmittersLastTicks`] StorageMap when the + * `on_idle` hook is called. + **/ + lastDeletedTick: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A mapping from a Provider to the last tick for which they SHOULD have submitted a proof. + * If for a Provider `p`, `LastTickProviderSubmittedAProofFor[p]` is `n`, then the + * Provider should submit a proof for tick `n + stake_to_challenge_period(p)`. + * + * This gets updated when a Provider submits a proof successfully and is used to determine the + * next tick for which the Provider should submit a proof, and it's deadline. + * + * If the Provider fails to submit a proof in time and is slashed, this will still get updated + * to the tick it should have submitted a proof for. + **/ + lastTickProviderSubmittedAProofFor: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The number of blocks that have been considered _not_ full in the last [`Config::BlockFullnessPeriod`]. + * + * This is used to check if the network is presumably under a spam attack. + **/ + notFullBlocksCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * A mapping from block number to the weight used in that block. + * + * This is used to check if the network is presumably under a spam attack. + * It is cleared for blocks older than `current_block` - ([`Config::BlockFullnessPeriod`] + 1). + **/ + pastBlocksWeight: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * A priority queue of keys that have been challenged manually. + * + * The difference between this and `ChallengesQueue` is that the challenges + * in this queue are given priority over the others. So this queue should be + * emptied before any of the challenges in the `ChallengesQueue` are dispatched. + * This queue should not be accessible to the public. + * The elements in this queue will be challenged in the coming blocks, + * always ensuring that the maximum number of challenges per block is not exceeded. + * A `BoundedVec` is used because the `parity_scale_codec::MaxEncodedLen` trait + * is required, but using a `VecDeque` would be more efficient as this is a FIFO queue. + **/ + priorityChallengesQueue: AugmentedQuery< + ApiType, + () => Observable]>>>, + [] + > & + QueryableStorageEntry; + slashableProviders: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * A mapping from challenges tick to a random seed used for generating the challenges in that tick. + * + * This is used to keep track of the challenges' seed in the past. + * This mapping goes back only [`ChallengeHistoryLengthFor`] blocks. Previous challenges are removed. + **/ + tickToChallengesSeed: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>, + [u32] + > & + QueryableStorageEntry; + /** + * A mapping from challenges tick to a vector of custom challenged keys for that tick. + * + * This is used to keep track of the challenges that have been made in the past, specifically + * in the checkpoint challenge rounds. + * The vector is bounded by [`MaxCustomChallengesPerBlockFor`]. + * This mapping goes back only [`ChallengeHistoryLengthFor`] ticks. Previous challenges are removed. + **/ + tickToCheckpointChallenges: AugmentedQuery< + ApiType, + ( + arg: u32 | AnyNumber | Uint8Array + ) => Observable]>>>>, + [u32] + > & + QueryableStorageEntry; + /** + * A mapping from challenge tick to a vector of challenged Providers for that tick. + * + * This is used to keep track of the Providers that have been challenged, and should + * submit a proof by the time of the [`ChallengesTicker`] reaches the number used as + * key in the mapping. Providers who do submit a proof are removed from their respective + * entry and pushed forward to the next tick in which they should submit a proof. + * Those who are still in the entry by the time the tick is reached are considered to + * have failed to submit a proof and subject to slashing. + **/ + tickToProvidersDeadlines: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: H256 | string | Uint8Array + ) => Observable>, + [u32, H256] + > & + QueryableStorageEntry; + /** + * A mapping from tick to Providers, which is set if the Provider submitted a valid proof in that tick. + * + * This is used to keep track of the Providers that have submitted proofs in the last few + * ticks, where availability only up to the last [`Config::TargetTicksStorageOfSubmitters`] ticks is guaranteed. + * This storage is then made available for other pallets to use through the `ProofSubmittersInterface`. + **/ + validProofSubmittersLastTicks: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable>>, + [u32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + providers: { + /** + * The mapping from an AccountId to a BackupStorageProviderId. + * + * This is used to get a Backup Storage Provider's unique identifier needed to access its metadata. + * + * This storage is updated in: + * + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. + **/ + accountIdToBackupStorageProviderId: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from an AccountId to a MainStorageProviderId. + * + * This is used to get a Main Storage Provider's unique identifier needed to access its metadata. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. + * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. + **/ + accountIdToMainStorageProviderId: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The mapping from a BackupStorageProviderId to a BackupStorageProvider. + * + * This is used to get a Backup Storage Provider's metadata. + * It returns `None` if the Backup Storage Provider ID does not correspond to any registered Backup Storage Provider. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which removes the corresponding entry from the map. + * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. + **/ + backupStorageProviders: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The amount of Backup Storage Providers that are currently registered in the runtime. + * + * This is used to keep track of the total amount of BSPs in the system. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts one from this storage. + **/ + bspCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from a BucketId to that bucket's metadata. + * + * This is used to get a bucket's metadata, such as root, user ID, and MSP ID. + * It returns `None` if the Bucket ID does not correspond to any registered bucket. + * + * This storage is updated in: + * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket), which adds a new entry to the map. + * - [change_root_bucket](shp_traits::MutateProvidersInterface::change_root_bucket), which changes the corresponding bucket's root. + * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket), which removes the entry of the corresponding bucket. + **/ + buckets: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The total global reputation weight of all BSPs. + **/ + globalBspsReputationWeight: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from a MainStorageProviderId to a vector of BucketIds. + * + * This is used to efficiently retrieve the list of buckets that a Main Storage Provider is currently storing. + * + * This storage is updated in: + * - [add_bucket](shp_traits::MutateProvidersInterface::add_bucket) + * - [remove_root_bucket](shp_traits::MutateProvidersInterface::remove_root_bucket) + **/ + mainStorageProviderIdsToBuckets: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>>, + [H256] + > & + QueryableStorageEntry; + /** + * The mapping from a MainStorageProviderId to a MainStorageProvider. + * + * This is used to get a Main Storage Provider's metadata. + * It returns `None` if the Main Storage Provider ID does not correspond to any registered Main Storage Provider. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds a new entry to the map if the account to confirm is a Main Storage Provider. + * - [msp_sign_off](crate::dispatchables::msp_sign_off), which removes the corresponding entry from the map. + * - [change_capacity](crate::dispatchables::change_capacity), which changes the entry's `capacity`. + * - [add_value_prop](crate::dispatchables::add_value_prop), which appends a new value proposition to the entry's existing `value_prop` bounded vector. + **/ + mainStorageProviders: AugmentedQuery< + ApiType, + ( + arg: H256 | string | Uint8Array + ) => Observable>, + [H256] + > & + QueryableStorageEntry; + /** + * The amount of Main Storage Providers that are currently registered in the runtime. + * + * This is used to keep track of the total amount of MSPs in the system. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds one to this storage if the account to confirm is a Main Storage Provider. + * - [msp_sign_off](crate::dispatchables::msp_sign_off), which subtracts one from this storage. + **/ + mspCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The mapping from an AccountId that requested to sign up to a tuple of the metadata with type of the request, and the block + * number when the request was made. + * + * This is used for the two-step process of registering: when a user requests to register as a SP (either MSP or BSP), + * that request with the metadata and the deposit held is stored here. When the user confirms the sign up, the + * request is removed from this storage and the user is registered as a SP. + * + * This storage is updated in: + * - [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) and [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up), which add a new entry to the map. + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up) and [cancel_sign_up](crate::dispatchables::cancel_sign_up), which remove an existing entry from the map. + **/ + signUpRequests: AugmentedQuery< + ApiType, + ( + arg: AccountId32 | string | Uint8Array + ) => Observable>>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * The total amount of storage capacity all BSPs have. + * + * This is used to keep track of the total amount of storage capacity all BSPs have in the system, which is also the + * total amount of storage capacity that can be used by users if we factor in the replication factor. + * + * This storage is updated in: + * - [confirm_sign_up](crate::dispatchables::confirm_sign_up), which adds the capacity of the registered Storage Provider to this storage if the account to confirm is a Backup Storage Provider. + * - [bsp_sign_off](crate::dispatchables::bsp_sign_off), which subtracts the capacity of the Backup Storage Provider to sign off from this storage. + **/ + totalBspsCapacity: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The total amount of storage capacity of BSPs that is currently in use. + * + * This is used to keep track of the total amount of storage capacity that is currently in use by users, which is useful for + * system metrics and also to calculate the current price of storage. + **/ + usedBspsCapacity: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + randomness: { + /** + * Ensures the mandatory inherent was included in the block + **/ + inherentIncluded: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Latest random seed obtained from the one epoch ago randomness from BABE, and the latest block that it can process randomness requests from + **/ + latestOneEpochAgoRandomness: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * Latest random seed obtained from the parent block randomness from BABE, and the latest block that it can process randomness requests from + **/ + latestParentBlockRandomness: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * Current relay epoch + **/ + relayEpoch: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery< + ApiType, + ( + arg: + | ITuple<[SpCoreCryptoKeyTypeId, Bytes]> + | [SpCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array] + ) => Observable>, + [ITuple<[SpCoreCryptoKeyTypeId, Bytes]>] + > & + QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery< + ApiType, + ( + arg: AccountId32 | string | Uint8Array + ) => Observable>, + [AccountId32] + > & + QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery< + ApiType, + () => Observable>>, + [] + > & + QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + sudo: { + /** + * The `AccountId` of the sudo key. + **/ + key: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery< + ApiType, + (arg: AccountId32 | string | Uint8Array) => Observable, + [AccountId32] + > & + QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery< + ApiType, + (arg: H256 | string | Uint8Array) => Observable>>, + [H256] + > & + QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & + QueryableStorageEntry; + storageVersion: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + xcmpQueue: { + /** + * The factor to multiply the base delivery fee by. + **/ + deliveryFeeFactor: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * The suspended inbound XCMP channels. All others are not suspended. + * + * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block + * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached + * within the block and therefore only included once in the proof size. + * + * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof + * will be smaller. + **/ + inboundXcmpSuspended: AugmentedQuery Observable>, []> & + QueryableStorageEntry; + /** + * The messages outbound in a given XCMP channel. + **/ + outboundXcmpMessages: AugmentedQuery< + ApiType, + ( + arg1: u32 | AnyNumber | Uint8Array, + arg2: u16 | AnyNumber | Uint8Array + ) => Observable, + [u32, u16] + > & + QueryableStorageEntry; + /** + * The non-empty XCMP channels in order of becoming non-empty, and the index of the first + * and last outbound message. If the two indices are equal, then it indicates an empty + * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater + * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in + * case of the need to send a high-priority signal message this block. + * The bool is true if there is a signal message waiting to be sent. + **/ + outboundXcmpStatus: AugmentedQuery< + ApiType, + () => Observable>, + [] + > & + QueryableStorageEntry; + /** + * The configuration which controls the dynamics of the outbound queue. + **/ + queueConfig: AugmentedQuery< + ApiType, + () => Observable, + [] + > & + QueryableStorageEntry; + /** + * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. + **/ + queueSuspended: AugmentedQuery Observable, []> & + QueryableStorageEntry; + /** + * Any signal messages waiting to be sent. + **/ + signalMessages: AugmentedQuery< + ApiType, + (arg: u32 | AnyNumber | Uint8Array) => Observable, + [u32] + > & + QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } // AugmentedQueries +} // declare module diff --git a/api-augment/src/interfaces/augment-api-runtime.ts b/api-augment/src/interfaces/augment-api-runtime.ts index aeb3a1fab..ce1edd5c5 100644 --- a/api-augment/src/interfaces/augment-api-runtime.ts +++ b/api-augment/src/interfaces/augment-api-runtime.ts @@ -1,720 +1,631 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/calls"; - -import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; -import type { Bytes, Null, Option, Result, Vec, bool, u128, u32 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; -import type { BlockHash } from "@polkadot/types/interfaces/chain"; -import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; -import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; -import type { - CallDryRunEffects, - XcmDryRunApiError, - XcmDryRunEffects -} from "@polkadot/types/interfaces/dryRunApi"; -import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; -import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; -import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; -import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; -import type { - AccountId, - Balance, - Block, - BlockNumber, - Call, - ExtrinsicInclusionMode, - H256, - Header, - Index, - KeyTypeId, - OriginCaller, - RuntimeCall, - Slot, - SlotDuration, - Weight, - WeightV2 -} from "@polkadot/types/interfaces/runtime"; -import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; -import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; -import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; -import type { VersionedMultiLocation, VersionedXcm } from "@polkadot/types/interfaces/xcm"; -import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; -import type { XcmVersionedAssetId, XcmVersionedXcm } from "@polkadot/types/lookup"; -import type { IExtrinsic, Observable } from "@polkadot/types/types"; -import type { - BackupStorageProvider, - BackupStorageProviderId, - ChunkId, - GetBspInfoError, - GetChallengePeriodError, - GetChallengeSeedError, - GetCheckpointChallengesError, - GetLastTickProviderSubmittedProofError, - GetNextDeadlineTickError, - GetUsersWithDebtOverThresholdError, - MainStorageProviderId, - ProviderId, - QueryAvailableStorageCapacityError, - QueryBspConfirmChunksToProveForFileError, - QueryEarliestChangeCapacityBlockError, - QueryFileEarliestVolunteerBlockError, - QueryMspConfirmChunksToProveForFileError, - QueryMspIdOfBucketIdError, - QueryStorageProviderCapacityError, - RandomnessOutput, - StorageDataUnit, - StorageProviderId, - TrieRemoveMutation -} from "@storagehub/api-augment/interfaces/storagehubclient"; - -export type __AugmentedCall = AugmentedCall; -export type __DecoratedCallBase = DecoratedCallBase; - -declare module "@polkadot/api-base/types/calls" { - interface AugmentedCalls { - /** 0xbc9d89904f5b923f/1 */ - accountNonceApi: { - /** - * The API to query account nonce (aka transaction index) - **/ - accountNonce: AugmentedCall< - ApiType, - (accountId: AccountId | string | Uint8Array) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdd718d5cc53262d4/1 */ - auraApi: { - /** - * Return the current set of authorities. - **/ - authorities: AugmentedCall Observable>>; - /** - * Returns the slot duration for Aura. - **/ - slotDuration: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd7bdd8a272ca0d65/1 */ - auraUnincludedSegmentApi: { - /** - * Whether it is legal to extend the chain - **/ - canBuildUpon: AugmentedCall< - ApiType, - ( - includedHash: BlockHash | string | Uint8Array, - slot: Slot | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x40fe3ad401f8959a/6 */ - blockBuilder: { - /** - * Apply the given extrinsic. - **/ - applyExtrinsic: AugmentedCall< - ApiType, - ( - extrinsic: Extrinsic | IExtrinsic | string | Uint8Array - ) => Observable - >; - /** - * Check that the inherents are valid. - **/ - checkInherents: AugmentedCall< - ApiType, - ( - block: Block | { header?: any; extrinsics?: any } | string | Uint8Array, - data: InherentData | { data?: any } | string | Uint8Array - ) => Observable - >; - /** - * Finish the current block. - **/ - finalizeBlock: AugmentedCall Observable
>; - /** - * Generate inherent extrinsics. - **/ - inherentExtrinsics: AugmentedCall< - ApiType, - ( - inherent: InherentData | { data?: any } | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xea93e3f16f3d6962/2 */ - collectCollationInfo: { - /** - * Collect information about a collation. - **/ - collectCollationInfo: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xdf6acb689907609b/5 */ - core: { - /** - * Execute the given block. - **/ - executeBlock: AugmentedCall< - ApiType, - ( - block: Block | { header?: any; extrinsics?: any } | string | Uint8Array - ) => Observable - >; - /** - * Initialize a block with the given header. - **/ - initializeBlock: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Returns the version of the runtime. - **/ - version: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x91b1c8b16328eb92/1 */ - dryRunApi: { - /** - * Dry run call - **/ - dryRunCall: AugmentedCall< - ApiType, - ( - origin: OriginCaller | { System: any } | string | Uint8Array, - call: RuntimeCall | IMethod | string | Uint8Array - ) => Observable> - >; - /** - * Dry run XCM program - **/ - dryRunXcm: AugmentedCall< - ApiType, - ( - originLocation: - | VersionedMultiLocation - | { V0: any } - | { V1: any } - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - xcm: - | VersionedXcm - | { V0: any } - | { V1: any } - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xb9e7717ace5b45cd/1 */ - fileSystemApi: { - /** - * Query the chunks that a BSP needs to prove to confirm that it is storing a file. - **/ - queryBspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryBspConfirmChunksToProveForFileError>> - >; - /** - * Query the earliest tick number that a BSP can volunteer for a file. - **/ - queryEarliestFileVolunteerTick: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the chunks that a MSP needs to prove to confirm that it is storing a file. - **/ - queryMspConfirmChunksToProveForFile: AugmentedCall< - ApiType, - ( - mspId: MainStorageProviderId | string | Uint8Array, - fileKey: H256 | string | Uint8Array - ) => Observable, QueryMspConfirmChunksToProveForFileError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xfbc577b9d747efd6/1 */ - genesisBuilder: { - /** - * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. - **/ - buildConfig: AugmentedCall< - ApiType, - (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> - >; - /** - * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. - **/ - createDefaultConfig: AugmentedCall Observable>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37e397fc7c91f5e4/2 */ - metadata: { - /** - * Returns the metadata of a runtime - **/ - metadata: AugmentedCall Observable>; - /** - * Returns the metadata at a given version. - **/ - metadataAtVersion: AugmentedCall< - ApiType, - (version: u32 | AnyNumber | Uint8Array) => Observable> - >; - /** - * Returns the supported metadata versions. - **/ - metadataVersions: AugmentedCall Observable>>; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf78b278be53f454c/2 */ - offchainWorkerApi: { - /** - * Starts the off-chain task for given block header. - **/ - offchainWorker: AugmentedCall< - ApiType, - ( - header: - | Header - | { - parentHash?: any; - number?: any; - stateRoot?: any; - extrinsicsRoot?: any; - digest?: any; - } - | string - | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x1078d7ac24a07b0e/1 */ - paymentStreamsApi: { - /** - * Get the payment streams of a provider. - **/ - getUsersOfPaymentStreamsOfProvider: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Get the users that have a debt to the provider greater than the threshold. - **/ - getUsersWithDebtOverThreshold: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array, - threshold: Balance | AnyNumber | Uint8Array - ) => Observable, GetUsersWithDebtOverThresholdError>> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x0be7208954c7c6c9/1 */ - proofsDealerApi: { - /** - * Get the challenge period for a given Provider. - **/ - getChallengePeriod: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the seed for a given challenge tick. - **/ - getChallengeSeed: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get challenges from a seed. - **/ - getChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array, - count: u32 | AnyNumber | Uint8Array - ) => Observable> - >; - /** - * Get the checkpoint challenge period. - **/ - getCheckpointChallengePeriod: AugmentedCall Observable>; - /** - * Get checkpoint challenges for a given block. - **/ - getCheckpointChallenges: AugmentedCall< - ApiType, - ( - tick: BlockNumber | AnyNumber | Uint8Array - ) => Observable< - Result]>>, GetCheckpointChallengesError> - > - >; - /** - * Get the current tick. - **/ - getCurrentTick: AugmentedCall Observable>; - /** - * Get forest challenges from a seed. - **/ - getForestChallengesFromSeed: AugmentedCall< - ApiType, - ( - seed: RandomnessOutput | string | Uint8Array, - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the last checkpoint challenge tick. - **/ - getLastCheckpointChallengeTick: AugmentedCall Observable>; - /** - * Get the last tick for which the submitter submitted a proof. - **/ - getLastTickProviderSubmittedProof: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the next deadline tick. - **/ - getNextDeadlineTick: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xab3c0572291feb8b/1 */ - sessionKeys: { - /** - * Decode the given public session keys. - **/ - decodeSessionKeys: AugmentedCall< - ApiType, - ( - encoded: Bytes | string | Uint8Array - ) => Observable>>> - >; - /** - * Generate a set of session keys with optionally using the given seed. - **/ - generateSessionKeys: AugmentedCall< - ApiType, - (seed: Option | null | Uint8Array | Bytes | string) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x966604ffe78eb092/1 */ - storageProvidersApi: { - /** - * Get the BSP info for a given BSP ID. - **/ - getBspInfo: AugmentedCall< - ApiType, - ( - bspId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Get the slashable amount corresponding to the configured max file size. - **/ - getSlashAmountPerMaxFileSize: AugmentedCall Observable>; - /** - * Get the Storage Provider ID for a given Account ID. - **/ - getStorageProviderId: AugmentedCall< - ApiType, - (who: AccountId | string | Uint8Array) => Observable> - >; - /** - * Get the worst case scenario slashable amount for a provider. - **/ - getWorstCaseScenarioSlashableAmount: AugmentedCall< - ApiType, - (providerId: ProviderId | string | Uint8Array) => Observable> - >; - /** - * Query the available storage capacity. - **/ - queryAvailableStorageCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the earliest block number that a BSP can change its capacity. - **/ - queryEarliestChangeCapacityBlock: AugmentedCall< - ApiType, - ( - providerId: BackupStorageProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Query the MSP ID of a bucket ID. - **/ - queryMspIdOfBucketId: AugmentedCall< - ApiType, - ( - bucketId: H256 | string | Uint8Array - ) => Observable> - >; - /** - * Query the storage provider capacity. - **/ - queryStorageProviderCapacity: AugmentedCall< - ApiType, - ( - providerId: ProviderId | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xd2bc9897eed08f15/3 */ - taggedTransactionQueue: { - /** - * Validate the transaction. - **/ - validateTransaction: AugmentedCall< - ApiType, - ( - source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, - tx: Extrinsic | IExtrinsic | string | Uint8Array, - blockHash: BlockHash | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x37c8bb1350a9a2a8/4 */ - transactionPaymentApi: { - /** - * The transaction fee details - **/ - queryFeeDetails: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The transaction info - **/ - queryInfo: AugmentedCall< - ApiType, - ( - uxt: Extrinsic | IExtrinsic | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0xf3ff14d5ab527059/3 */ - transactionPaymentCallApi: { - /** - * The call fee details - **/ - queryCallFeeDetails: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * The call info - **/ - queryCallInfo: AugmentedCall< - ApiType, - ( - call: Call | IMethod | string | Uint8Array, - len: u32 | AnyNumber | Uint8Array - ) => Observable - >; - /** - * Query the output of the current LengthToFee given some input - **/ - queryLengthToFee: AugmentedCall< - ApiType, - (length: u32 | AnyNumber | Uint8Array) => Observable - >; - /** - * Query the output of the current WeightToFee given some input - **/ - queryWeightToFee: AugmentedCall< - ApiType, - ( - weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array - ) => Observable - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - /** 0x6ff52ee858e6c5bd/1 */ - xcmPaymentApi: { - /** - * The API to query acceptable payment assets - **/ - queryAcceptablePaymentAssets: AugmentedCall< - ApiType, - ( - version: u32 | AnyNumber | Uint8Array - ) => Observable, XcmPaymentApiError>> - >; - /** - * - **/ - queryWeightToAssetFee: AugmentedCall< - ApiType, - ( - weight: WeightV2 | { refTime?: any; proofSize?: any } | string | Uint8Array, - asset: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable> - >; - /** - * - **/ - queryXcmWeight: AugmentedCall< - ApiType, - ( - message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => Observable> - >; - /** - * Generic call - **/ - [key: string]: DecoratedCallBase; - }; - } // AugmentedCalls -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/calls"; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from "@polkadot/api-base/types"; +import type { Bytes, Null, Option, Result, Vec, bool, u32 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { CheckInherentsResult, InherentData } from "@polkadot/types/interfaces/blockbuilder"; +import type { BlockHash } from "@polkadot/types/interfaces/chain"; +import type { AuthorityId } from "@polkadot/types/interfaces/consensus"; +import type { CollationInfo } from "@polkadot/types/interfaces/cumulus"; +import type { Extrinsic } from "@polkadot/types/interfaces/extrinsics"; +import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; +import type { OpaqueMetadata } from "@polkadot/types/interfaces/metadata"; +import type { FeeDetails, RuntimeDispatchInfo } from "@polkadot/types/interfaces/payment"; +import type { + AccountId, + Balance, + Block, + BlockNumber, + Call, + ExtrinsicInclusionMode, + H256, + Header, + Index, + KeyTypeId, + Slot, + SlotDuration, + Weight +} from "@polkadot/types/interfaces/runtime"; +import type { RuntimeVersion } from "@polkadot/types/interfaces/state"; +import type { ApplyExtrinsicResult, Key } from "@polkadot/types/interfaces/system"; +import type { TransactionSource, TransactionValidity } from "@polkadot/types/interfaces/txqueue"; +import type { IExtrinsic, Observable } from "@polkadot/types/types"; +import type { + BackupStorageProvider, + BackupStorageProviderId, + ChunkId, + GetBspInfoError, + GetChallengePeriodError, + GetChallengeSeedError, + GetCheckpointChallengesError, + GetLastTickProviderSubmittedProofError, + GetNextDeadlineTickError, + GetUsersWithDebtOverThresholdError, + MainStorageProviderId, + ProviderId, + QueryAvailableStorageCapacityError, + QueryBspConfirmChunksToProveForFileError, + QueryEarliestChangeCapacityBlockError, + QueryFileEarliestVolunteerBlockError, + QueryMspConfirmChunksToProveForFileError, + QueryMspIdOfBucketIdError, + QueryStorageProviderCapacityError, + RandomnessOutput, + StorageDataUnit, + StorageProviderId, + TrieRemoveMutation +} from "@storagehub/api-augment/interfaces/storagehubclient"; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module "@polkadot/api-base/types/calls" { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/1 */ + accountNonceApi: { + /** + * The API to query account nonce (aka transaction index) + **/ + accountNonce: AugmentedCall< + ApiType, + (accountId: AccountId | string | Uint8Array) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdd718d5cc53262d4/1 */ + auraApi: { + /** + * Return the current set of authorities. + **/ + authorities: AugmentedCall Observable>>; + /** + * Returns the slot duration for Aura. + **/ + slotDuration: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd7bdd8a272ca0d65/1 */ + auraUnincludedSegmentApi: { + /** + * Whether it is legal to extend the chain + **/ + canBuildUpon: AugmentedCall< + ApiType, + ( + includedHash: BlockHash | string | Uint8Array, + slot: Slot | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/6 */ + blockBuilder: { + /** + * Apply the given extrinsic. + **/ + applyExtrinsic: AugmentedCall< + ApiType, + ( + extrinsic: Extrinsic | IExtrinsic | string | Uint8Array + ) => Observable + >; + /** + * Check that the inherents are valid. + **/ + checkInherents: AugmentedCall< + ApiType, + ( + block: Block | { header?: any; extrinsics?: any } | string | Uint8Array, + data: InherentData | { data?: any } | string | Uint8Array + ) => Observable + >; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable
>; + /** + * Generate inherent extrinsics. + **/ + inherentExtrinsics: AugmentedCall< + ApiType, + ( + inherent: InherentData | { data?: any } | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xea93e3f16f3d6962/2 */ + collectCollationInfo: { + /** + * Collect information about a collation. + **/ + collectCollationInfo: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/5 */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall< + ApiType, + ( + block: Block | { header?: any; extrinsics?: any } | string | Uint8Array + ) => Observable + >; + /** + * Initialize a block with the given header. + **/ + initializeBlock: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xb9e7717ace5b45cd/1 */ + fileSystemApi: { + /** + * Query the chunks that a BSP needs to prove to confirm that it is storing a file. + **/ + queryBspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryBspConfirmChunksToProveForFileError>> + >; + /** + * Query the earliest tick number that a BSP can volunteer for a file. + **/ + queryEarliestFileVolunteerTick: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the chunks that a MSP needs to prove to confirm that it is storing a file. + **/ + queryMspConfirmChunksToProveForFile: AugmentedCall< + ApiType, + ( + mspId: MainStorageProviderId | string | Uint8Array, + fileKey: H256 | string | Uint8Array + ) => Observable, QueryMspConfirmChunksToProveForFileError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/1 */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage. + **/ + buildConfig: AugmentedCall< + ApiType, + (json: Bytes | string | Uint8Array) => Observable, GenesisBuildErr>> + >; + /** + * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob. + **/ + createDefaultConfig: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/2 */ + metadata: { + /** + * Returns the metadata of a runtime + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version. + **/ + metadataAtVersion: AugmentedCall< + ApiType, + (version: u32 | AnyNumber | Uint8Array) => Observable> + >; + /** + * Returns the supported metadata versions. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/2 */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall< + ApiType, + ( + header: + | Header + | { + parentHash?: any; + number?: any; + stateRoot?: any; + extrinsicsRoot?: any; + digest?: any; + } + | string + | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x1078d7ac24a07b0e/1 */ + paymentStreamsApi: { + /** + * Get the payment streams of a provider. + **/ + getUsersOfPaymentStreamsOfProvider: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Get the users that have a debt to the provider greater than the threshold. + **/ + getUsersWithDebtOverThreshold: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array, + threshold: Balance | AnyNumber | Uint8Array + ) => Observable, GetUsersWithDebtOverThresholdError>> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x0be7208954c7c6c9/1 */ + proofsDealerApi: { + /** + * Get the challenge period for a given Provider. + **/ + getChallengePeriod: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the seed for a given challenge tick. + **/ + getChallengeSeed: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get challenges from a seed. + **/ + getChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array, + count: u32 | AnyNumber | Uint8Array + ) => Observable> + >; + /** + * Get the checkpoint challenge period. + **/ + getCheckpointChallengePeriod: AugmentedCall Observable>; + /** + * Get checkpoint challenges for a given block. + **/ + getCheckpointChallenges: AugmentedCall< + ApiType, + ( + tick: BlockNumber | AnyNumber | Uint8Array + ) => Observable< + Result]>>, GetCheckpointChallengesError> + > + >; + /** + * Get the current tick. + **/ + getCurrentTick: AugmentedCall Observable>; + /** + * Get forest challenges from a seed. + **/ + getForestChallengesFromSeed: AugmentedCall< + ApiType, + ( + seed: RandomnessOutput | string | Uint8Array, + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the last checkpoint challenge tick. + **/ + getLastCheckpointChallengeTick: AugmentedCall Observable>; + /** + * Get the last tick for which the submitter submitted a proof. + **/ + getLastTickProviderSubmittedProof: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the next deadline tick. + **/ + getNextDeadlineTick: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/1 */ + sessionKeys: { + /** + * Decode the given public session keys. + **/ + decodeSessionKeys: AugmentedCall< + ApiType, + ( + encoded: Bytes | string | Uint8Array + ) => Observable>>> + >; + /** + * Generate a set of session keys with optionally using the given seed. + **/ + generateSessionKeys: AugmentedCall< + ApiType, + (seed: Option | null | Uint8Array | Bytes | string) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x966604ffe78eb092/1 */ + storageProvidersApi: { + /** + * Get the BSP info for a given BSP ID. + **/ + getBspInfo: AugmentedCall< + ApiType, + ( + bspId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Get the slashable amount corresponding to the configured max file size. + **/ + getSlashAmountPerMaxFileSize: AugmentedCall Observable>; + /** + * Get the Storage Provider ID for a given Account ID. + **/ + getStorageProviderId: AugmentedCall< + ApiType, + (who: AccountId | string | Uint8Array) => Observable> + >; + /** + * Get the worst case scenario slashable amount for a provider. + **/ + getWorstCaseScenarioSlashableAmount: AugmentedCall< + ApiType, + (providerId: ProviderId | string | Uint8Array) => Observable> + >; + /** + * Query the available storage capacity. + **/ + queryAvailableStorageCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the earliest block number that a BSP can change its capacity. + **/ + queryEarliestChangeCapacityBlock: AugmentedCall< + ApiType, + ( + providerId: BackupStorageProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Query the MSP ID of a bucket ID. + **/ + queryMspIdOfBucketId: AugmentedCall< + ApiType, + ( + bucketId: H256 | string | Uint8Array + ) => Observable> + >; + /** + * Query the storage provider capacity. + **/ + queryStorageProviderCapacity: AugmentedCall< + ApiType, + ( + providerId: ProviderId | string | Uint8Array + ) => Observable> + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/3 */ + taggedTransactionQueue: { + /** + * Validate the transaction. + **/ + validateTransaction: AugmentedCall< + ApiType, + ( + source: TransactionSource | "InBlock" | "Local" | "External" | number | Uint8Array, + tx: Extrinsic | IExtrinsic | string | Uint8Array, + blockHash: BlockHash | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/4 */ + transactionPaymentApi: { + /** + * The transaction fee details + **/ + queryFeeDetails: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The transaction info + **/ + queryInfo: AugmentedCall< + ApiType, + ( + uxt: Extrinsic | IExtrinsic | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/3 */ + transactionPaymentCallApi: { + /** + * The call fee details + **/ + queryCallFeeDetails: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * The call info + **/ + queryCallInfo: AugmentedCall< + ApiType, + ( + call: Call | IMethod | string | Uint8Array, + len: u32 | AnyNumber | Uint8Array + ) => Observable + >; + /** + * Query the output of the current LengthToFee given some input + **/ + queryLengthToFee: AugmentedCall< + ApiType, + (length: u32 | AnyNumber | Uint8Array) => Observable + >; + /** + * Query the output of the current WeightToFee given some input + **/ + queryWeightToFee: AugmentedCall< + ApiType, + ( + weight: Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => Observable + >; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/api-augment/src/interfaces/augment-api-tx.ts b/api-augment/src/interfaces/augment-api-tx.ts index 8741d8401..31d5ad652 100644 --- a/api-augment/src/interfaces/augment-api-tx.ts +++ b/api-augment/src/interfaces/augment-api-tx.ts @@ -1,3418 +1,3418 @@ -// Auto-generated via `yarn polkadot-types-from-chain`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/api-base/types/submittable"; - -import type { - ApiTypes, - AugmentedSubmittable, - SubmittableExtrinsic, - SubmittableExtrinsicFunction -} from "@polkadot/api-base/types"; -import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; -import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; -import type { - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - PalletBalancesAdjustmentDirection, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemMspStorageRequestResponse, - PalletNftsAttributeNamespace, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsDestroyWitness, - PalletNftsItemConfig, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintWitness, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceWithDirection, - PalletProofsDealerProof, - PalletStorageProvidersValueProposition, - ShpFileKeyVerifierFileKeyProof, - SpRuntimeMultiSignature, - SpTrieStorageProofCompactProof, - SpWeightsWeightV2Weight, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV4Location, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeSessionKeys, - XcmV3WeightLimit, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedXcm -} from "@polkadot/types/lookup"; - -export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; -export type __SubmittableExtrinsic = SubmittableExtrinsic; -export type __SubmittableExtrinsicFunction = - SubmittableExtrinsicFunction; - -declare module "@polkadot/api-base/types/submittable" { - interface AugmentedSubmittables { - balances: { - /** - * Burn the specified liquid free balance from the origin account. - * - * If the origin's account ends up below the existential deposit as a result - * of the burn and `keep_alive` is false, the account will be reaped. - * - * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, - * this `burn` operation will reduce total issuance by the amount _burned_. - **/ - burn: AugmentedSubmittable< - ( - value: Compact | AnyNumber | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [Compact, bool] - >; - /** - * Adjust the total issuance in a saturating way. - * - * Can only be called by root and always needs a positive `delta`. - * - * # Example - **/ - forceAdjustTotalIssuance: AugmentedSubmittable< - ( - direction: - | PalletBalancesAdjustmentDirection - | "Increase" - | "Decrease" - | number - | Uint8Array, - delta: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [PalletBalancesAdjustmentDirection, Compact] - >; - /** - * Set the regular balance of a given account. - * - * The dispatch origin for this call is `root`. - **/ - forceSetBalance: AugmentedSubmittable< - ( - who: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - newFree: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Exactly as `transfer_allow_death`, except the origin must be root and the source account - * may be specified. - **/ - forceTransfer: AugmentedSubmittable< - ( - source: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, MultiAddress, Compact] - >; - /** - * Unreserve some balance from a user by force. - * - * Can only be called by ROOT. - **/ - forceUnreserve: AugmentedSubmittable< - ( - who: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - amount: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, u128] - >; - /** - * Transfer the entire transferable balance from the caller account. - * - * NOTE: This function only attempts to transfer _transferable_ balances. This means that - * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be - * transferred by this function. To ensure that this function results in a killed account, - * you might need to prepare the account by removing any reference counters, storage - * deposits, etc... - * - * The dispatch origin of this call must be Signed. - * - * - `dest`: The recipient of the transfer. - * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all - * of the funds the account has, causing the sender account to be killed (false), or - * transfer everything except at least the existential deposit, which will guarantee to - * keep the sender account alive (true). - **/ - transferAll: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - keepAlive: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, bool] - >; - /** - * Transfer some liquid free balance to another account. - * - * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. - * If the sender's account is below the existential deposit as a result - * of the transfer, the account will be reaped. - * - * The dispatch origin for this call must be `Signed` by the transactor. - **/ - transferAllowDeath: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not - * kill the origin account. - * - * 99% of the time you want [`transfer_allow_death`] instead. - * - * [`transfer_allow_death`]: struct.Pallet.html#method.transfer - **/ - transferKeepAlive: AugmentedSubmittable< - ( - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - value: Compact | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Compact] - >; - /** - * Upgrade a specified account. - * - * - `origin`: Must be `Signed`. - * - `who`: The account to be upgraded. - * - * This will waive the transaction fee if at least all but 10% of the accounts needed to - * be upgraded. (We let some not have to be upgraded just in order to allow for the - * possibility of churn). - **/ - upgradeAccounts: AugmentedSubmittable< - ( - who: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - bucketNfts: { - /** - * Share access to files within a bucket with another account. - * - * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. - **/ - shareAccess: AugmentedSubmittable< - ( - recipient: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [MultiAddress, H256, u32, Option] - >; - /** - * Update read access for an item. - **/ - updateReadAccess: AugmentedSubmittable< - ( - bucket: H256 | string | Uint8Array, - itemId: u32 | AnyNumber | Uint8Array, - readAccessRegex: Option | null | Uint8Array | Bytes | string - ) => SubmittableExtrinsic, - [H256, u32, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - collatorSelection: { - /** - * Add a new account `who` to the list of `Invulnerables` collators. `who` must have - * registered session keys. If `who` is a candidate, they will be removed. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - addInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Deregister `origin` as a collator candidate. Note that the collator can only leave on - * session change. The `CandidacyBond` will be unreserved immediately. - * - * This call will fail if the total number of candidates would drop below - * `MinEligibleCollators`. - **/ - leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Register this account as a collator candidate. The account must (a) already have - * registered session keys and (b) be able to reserve the `CandidacyBond`. - * - * This call is not available to `Invulnerable` collators. - **/ - registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must - * be sorted. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - removeInvulnerable: AugmentedSubmittable< - (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Set the candidacy bond amount. - * - * If the candidacy bond is increased by this call, all current candidates which have a - * deposit lower than the new bond will be kicked from the list and get their deposits - * back. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setCandidacyBond: AugmentedSubmittable< - (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Set the ideal number of non-invulnerable collators. If lowering this number, then the - * number of running collators could be higher than this figure. Aside from that edge case, - * there should be no other way to have more candidates than the desired number. - * - * The origin for this call must be the `UpdateOrigin`. - **/ - setDesiredCandidates: AugmentedSubmittable< - (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Set the list of invulnerable (fixed) collators. These collators must do some - * preparation, namely to have registered session keys. - * - * The call will remove any accounts that have not registered keys from the set. That is, - * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as - * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. - * - * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It - * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A - * `batch_all` can also be used to enforce atomicity. If any candidates are included in - * `new`, they should be removed with `remove_invulnerable_candidate` after execution. - * - * Must be called by the `UpdateOrigin`. - **/ - setInvulnerables: AugmentedSubmittable< - ( - updated: Vec | (AccountId32 | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * The caller `origin` replaces a candidate `target` in the collator candidate list by - * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than - * the existing bond of the target it is trying to replace. - * - * This call will fail if the caller is already a collator candidate or invulnerable, the - * caller does not have registered session keys, the target is not a collator candidate, - * and/or the `deposit` amount cannot be reserved. - **/ - takeCandidateSlot: AugmentedSubmittable< - ( - deposit: u128 | AnyNumber | Uint8Array, - target: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u128, AccountId32] - >; - /** - * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. - * - * Setting a `new_deposit` that is lower than the current deposit while `origin` is - * occupying a top-`DesiredCandidates` slot is not allowed. - * - * This call will fail if `origin` is not a collator candidate, the updated bond is lower - * than the minimum candidacy bond, and/or the amount cannot be reserved. - **/ - updateBond: AugmentedSubmittable< - (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - cumulusXcm: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - fileSystem: { - /** - * Add yourself as a data server for providing the files of the bucket requested to be moved. - **/ - bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Executed by a BSP to confirm to stop storing a file. - * - * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. - * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the - * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. - **/ - bspConfirmStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to confirm they are storing data of a storage request. - **/ - bspConfirmStoring: AugmentedSubmittable< - ( - nonInclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array, - fileKeysAndProofs: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | ShpFileKeyVerifierFileKeyProof - | { fileMetadata?: any; proof?: any } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [SpTrieStorageProofCompactProof, Vec>] - >; - /** - * Executed by a BSP to request to stop storing a file. - * - * In the event when a storage request no longer exists for the data the BSP no longer stores, - * it is required that the BSP still has access to the metadata of the initial storage request. - * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever - * the BSP gets that data is up to it. One example could be from the assigned MSP. - * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage - * provider's Merkle Forest. - **/ - bspRequestStopStoring: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - canServe: bool | boolean | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] - >; - /** - * Used by a BSP to volunteer for storing a file. - * - * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, - * so a BSP is strongly advised to check beforehand. Another reason for failure is - * if the maximum number of BSPs has been reached. A successful assignment as BSP means - * that some of the collateral tokens of that MSP are frozen. - **/ - bspVolunteer: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Create and associate a collection with a bucket. - **/ - createAndAssociateCollectionWithBucket: AugmentedSubmittable< - (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - createBucket: AugmentedSubmittable< - ( - mspId: H256 | string | Uint8Array, - name: Bytes | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, Bytes, bool] - >; - deleteFile: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - fingerprint: H256 | string | Uint8Array, - maybeInclusionForestProof: - | Option - | null - | Uint8Array - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - ) => SubmittableExtrinsic, - [H256, H256, Bytes, u64, H256, Option] - >; - /** - * Issue a new storage request for a file - **/ - issueStorageRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - mspId: H256 | string | Uint8Array, - peerIds: Vec | (Bytes | string | Uint8Array)[] - ) => SubmittableExtrinsic, - [H256, Bytes, H256, u64, H256, Vec] - >; - mspRespondMoveBucketRequest: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - response: - | PalletFileSystemBucketMoveRequestResponse - | "Accepted" - | "Rejected" - | number - | Uint8Array - ) => SubmittableExtrinsic, - [H256, PalletFileSystemBucketMoveRequestResponse] - >; - /** - * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. - * - * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be - * accepted, rejected or have failed to be processed in the results of the event emitted. - * - * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys - * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that - * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP - * wasn't storing it before. - **/ - mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< - ( - fileKeyResponsesInput: - | Vec> - | [ - H256 | string | Uint8Array, - ( - | PalletFileSystemMspStorageRequestResponse - | { accept?: any; reject?: any } - | string - | Uint8Array - ) - ][] - ) => SubmittableExtrinsic, - [Vec>] - >; - pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< - ( - user: AccountId32 | string | Uint8Array, - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - forestProof: SpTrieStorageProofCompactProof | { encodedNodes?: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, H256, SpTrieStorageProofCompactProof] - >; - requestMoveBucket: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - newMspId: H256 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256] - >; - /** - * Revoke storage request - **/ - revokeStorageRequest: AugmentedSubmittable< - (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - setGlobalParameters: AugmentedSubmittable< - ( - replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, - tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option, Option] - >; - /** - * Executed by a SP to stop storing a file from an insolvent user. - * - * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since - * it won't be getting paid for it anymore. - * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to - * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. - **/ - stopStoringForInsolventUser: AugmentedSubmittable< - ( - fileKey: H256 | string | Uint8Array, - bucketId: H256 | string | Uint8Array, - location: Bytes | string | Uint8Array, - owner: AccountId32 | string | Uint8Array, - fingerprint: H256 | string | Uint8Array, - size: u64 | AnyNumber | Uint8Array, - inclusionForestProof: - | SpTrieStorageProofCompactProof - | { encodedNodes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] - >; - updateBucketPrivacy: AugmentedSubmittable< - ( - bucketId: H256 | string | Uint8Array, - private: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - messageQueue: { - /** - * Execute an overweight message. - * - * Temporary processing errors will be propagated whereas permanent errors are treated - * as success condition. - * - * - `origin`: Must be `Signed`. - * - `message_origin`: The origin from which the message to be executed arrived. - * - `page`: The page in the queue in which the message to be executed is sitting. - * - `index`: The index into the queue of the message to be executed. - * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution - * of the message. - * - * Benchmark complexity considerations: O(index + weight_limit). - **/ - executeOverweight: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { Here: any } - | { Parent: any } - | { Sibling: any } - | string - | Uint8Array, - page: u32 | AnyNumber | Uint8Array, - index: u32 | AnyNumber | Uint8Array, - weightLimit: - | SpWeightsWeightV2Weight - | { refTime?: any; proofSize?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] - >; - /** - * Remove a page which has no more messages remaining to be processed or is stale. - **/ - reapPage: AugmentedSubmittable< - ( - messageOrigin: - | CumulusPrimitivesCoreAggregateMessageOrigin - | { Here: any } - | { Parent: any } - | { Sibling: any } - | string - | Uint8Array, - pageIndex: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesCoreAggregateMessageOrigin, u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - nfts: { - /** - * Approve item's attributes to be changed by a delegated third-party account. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: A collection of the item. - * - `item`: The item that holds attributes. - * - `delegate`: The account to delegate permission to change attributes of the item. - * - * Emits `ItemAttributesApprovalAdded` on success. - **/ - approveItemAttributes: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Approve an item to be transferred by a delegated third-party account. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `item`. - * - * - `collection`: The collection of the item to be approved for delegated transfer. - * - `item`: The item to be approved for delegated transfer. - * - `delegate`: The account to delegate permission to transfer the item. - * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the - * number of blocks after which the approval will expire - * - * Emits `TransferApproved` on success. - * - * Weight: `O(1)` - **/ - approveTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Destroy a single item. - * - * The origin must conform to `ForceOrigin` or must be Signed and the signing account must - * be the owner of the `item`. - * - * - `collection`: The collection of the item to be burned. - * - `item`: The item to be burned. - * - * Emits `Burned`. - * - * Weight: `O(1)` - **/ - burn: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Allows to buy an item if it's up for sale. - * - * Origin must be Signed and must not be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item the sender wants to buy. - * - `bid_price`: The price the sender is willing to pay. - * - * Emits `ItemBought` on success. - **/ - buyItem: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - bidPrice: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u128] - >; - /** - * Cancel one of the transfer approvals for a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approval will be cancelled. - * - `item`: The item of the collection of whose approval will be cancelled. - * - `delegate`: The account that is going to loose their approval. - * - * Emits `ApprovalCancelled` on success. - * - * Weight: `O(1)` - **/ - cancelApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Cancel the previously provided approval to change item's attributes. - * All the previously set attributes by the `delegate` will be removed. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: Collection that the item is contained within. - * - `item`: The item that holds attributes. - * - `delegate`: The previously approved account to remove. - * - * Emits `ItemAttributesApprovalRemoved` on success. - **/ - cancelItemAttributesApproval: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - delegate: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - witness: - | PalletNftsCancelAttributesApprovalWitness - | { accountAttributes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] - >; - /** - * Cancel an atomic swap. - * - * Origin must be Signed. - * Origin must be an owner of the `item` if the deadline hasn't expired. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - * Emits `SwapCancelled` on success. - **/ - cancelSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Claim an atomic swap. - * This method executes a pending swap, that was created by a counterpart before. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `send_collection`: The collection of the item to be sent. - * - `send_item`: The item to be sent. - * - `receive_collection`: The collection of the item to be received. - * - `receive_item`: The item to be received. - * - `witness_price`: A price that was previously agreed on. - * - * Emits `SwapClaimed` on success. - **/ - claimSwap: AugmentedSubmittable< - ( - sendCollection: u32 | AnyNumber | Uint8Array, - sendItem: u32 | AnyNumber | Uint8Array, - receiveCollection: u32 | AnyNumber | Uint8Array, - receiveItem: u32 | AnyNumber | Uint8Array, - witnessPrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { amount?: any; direction?: any } - | string - ) => SubmittableExtrinsic, - [u32, u32, u32, u32, Option] - >; - /** - * Cancel all the approvals of a specific item. - * - * Origin must be either: - * - the `Force` origin; - * - `Signed` with the signer being the Owner of the `item`; - * - * Arguments: - * - `collection`: The collection of the item of whose approvals will be cleared. - * - `item`: The item of the collection of whose approvals will be cleared. - * - * Emits `AllApprovalsCancelled` on success. - * - * Weight: `O(1)` - **/ - clearAllTransferApprovals: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Clear an attribute for a collection or item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * attribute. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `maybe_item`: The identifier of the item whose metadata to clear. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - * Emits `AttributeCleared`. - * - * Weight: `O(1)` - **/ - clearAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - key: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes] - >; - /** - * Clear the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose metadata to clear. - * - * Emits `CollectionMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearCollectionMetadata: AugmentedSubmittable< - (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Clear the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * Any deposit is freed for the collection's owner. - * - * - `collection`: The identifier of the collection whose item's metadata to clear. - * - `item`: The identifier of the item whose metadata to clear. - * - * Emits `ItemMetadataCleared`. - * - * Weight: `O(1)` - **/ - clearMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Issue a new collection of non-fungible items from a public origin. - * - * This new collection has no items initially and its owner is the origin. - * - * The origin must be Signed and the sender must have sufficient funds free. - * - * `CollectionDeposit` funds of sender are reserved. - * - * Parameters: - * - `admin`: The admin of this collection. The admin is the initial address of each - * member of the collection's admin team. - * - * Emits `Created` event when successful. - * - * Weight: `O(1)` - **/ - create: AugmentedSubmittable< - ( - admin: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { settings?: any; maxSupply?: any; mintSettings?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Register a new atomic swap, declaring an intention to send an `item` in exchange for - * `desired_item` from origin to target on the current blockchain. - * The target can execute the swap during the specified `duration` of blocks (if set). - * Additionally, the price could be set for the desired `item`. - * - * Origin must be Signed and must be an owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item an owner wants to give. - * - `desired_collection`: The collection of the desired item. - * - `desired_item`: The desired item an owner wants to receive. - * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. - * - `duration`: A deadline for the swap. Specified by providing the number of blocks - * after which the swap will expire. - * - * Emits `SwapCreated` on success. - **/ - createSwap: AugmentedSubmittable< - ( - offeredCollection: u32 | AnyNumber | Uint8Array, - offeredItem: u32 | AnyNumber | Uint8Array, - desiredCollection: u32 | AnyNumber | Uint8Array, - maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, - maybePrice: - | Option - | null - | Uint8Array - | PalletNftsPriceWithDirection - | { amount?: any; direction?: any } - | string, - duration: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, u32, Option, Option, u32] - >; - /** - * Destroy a collection of fungible items. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * owner of the `collection`. - * - * NOTE: The collection must have 0 items to be destroyed. - * - * - `collection`: The identifier of the collection to be destroyed. - * - `witness`: Information on the items minted in the collection. This must be - * correct. - * - * Emits `Destroyed` event when successful. - * - * Weight: `O(m + c + a)` where: - * - `m = witness.item_metadatas` - * - `c = witness.item_configs` - * - `a = witness.attributes` - **/ - destroy: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - witness: - | PalletNftsDestroyWitness - | { itemMetadatas?: any; itemConfigs?: any; attributes?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsDestroyWitness] - >; - /** - * Change the config of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `config`: The new config of this collection. - * - * Emits `CollectionConfigChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionConfig: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - config: - | PalletNftsCollectionConfig - | { settings?: any; maxSupply?: any; mintSettings?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsCollectionConfig] - >; - /** - * Change the Owner of a collection. - * - * Origin must be `ForceOrigin`. - * - * - `collection`: The identifier of the collection. - * - `owner`: The new Owner of this collection. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - forceCollectionOwner: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - owner: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Issue a new collection of non-fungible items from a privileged origin. - * - * This new collection has no items initially. - * - * The origin must conform to `ForceOrigin`. - * - * Unlike `create`, no funds are reserved. - * - * - `owner`: The owner of this collection of items. The owner has full superuser - * permissions over this item, but may later change and configure the permissions using - * `transfer_ownership` and `set_team`. - * - * Emits `ForceCreated` event when successful. - * - * Weight: `O(1)` - **/ - forceCreate: AugmentedSubmittable< - ( - owner: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - config: - | PalletNftsCollectionConfig - | { settings?: any; maxSupply?: any; mintSettings?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, PalletNftsCollectionConfig] - >; - /** - * Mint an item of a particular collection from a privileged origin. - * - * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the - * Issuer of the `collection`. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `item_config`: A config of the new item. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - forceMint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - itemConfig: PalletNftsItemConfig | { settings?: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, PalletNftsItemConfig] - >; - /** - * Force-set an attribute for a collection or item. - * - * Origin must be `ForceOrigin`. - * - * If the attribute already exists and it was set by another account, the deposit - * will be returned to the previous owner. - * - * - `set_as`: An optional owner of the attribute. - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - forceSetAttribute: AugmentedSubmittable< - ( - setAs: Option | null | Uint8Array | AccountId32 | string, - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Disallows specified settings for the whole collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection to be locked. - * - `lock_settings`: The settings to be locked. - * - * Note: it's possible to only lock(set) the setting, but not to unset it. - * - * Emits `CollectionLocked`. - * - * Weight: `O(1)` - **/ - lockCollection: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - lockSettings: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u64] - >; - /** - * Disallows changing the metadata or attributes of the item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin - * of the `collection`. - * - * - `collection`: The collection if the `item`. - * - `item`: An item to be locked. - * - `lock_metadata`: Specifies whether the metadata should be locked. - * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace - * should be locked. - * - * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. - * When the metadata or attributes are locked, it won't be possible the unlock them. - * - * Emits `ItemPropertiesLocked`. - * - * Weight: `O(1)` - **/ - lockItemProperties: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - lockMetadata: bool | boolean | Uint8Array, - lockAttributes: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, bool, bool] - >; - /** - * Disallow further unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become non-transferable. - * - * Emits `ItemTransferLocked`. - * - * Weight: `O(1)` - **/ - lockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Mint an item of a particular collection. - * - * The origin must be Signed and the sender must comply with the `mint_settings` rules. - * - * - `collection`: The collection of the item to be minted. - * - `item`: An identifier of the new item. - * - `mint_to`: Account into which the item will be minted. - * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned - * item_id from that collection needs to be provided within the witness data object. If - * the mint price is set, then it should be additionally confirmed in the `witness_data`. - * - * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. - * - * Emits `Issued` event when successful. - * - * Weight: `O(1)` - **/ - mint: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - mintTo: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - witnessData: - | Option - | null - | Uint8Array - | PalletNftsMintWitness - | { ownedItem?: any; mintPrice?: any } - | string - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress, Option] - >; - /** - * Mint an item by providing the pre-signed approval. - * - * Origin must be Signed. - * - * - `mint_data`: The pre-signed approval that consists of the information about the item, - * its metadata, attributes, who can mint it (`None` for anyone) and until what block - * number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Issuer of the collection. - * - * Emits `Issued` on success. - * Emits `AttributeSet` if the attributes were provided. - * Emits `ItemMetadataSet` if the metadata was not empty. - **/ - mintPreSigned: AugmentedSubmittable< - ( - mintData: - | PalletNftsPreSignedMint - | { - collection?: any; - item?: any; - attributes?: any; - metadata?: any; - onlyAccount?: any; - deadline?: any; - mintPrice?: any; - } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { Ed25519: any } - | { Sr25519: any } - | { Ecdsa: any } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Allows to pay the tips. - * - * Origin must be Signed. - * - * - `tips`: Tips array. - * - * Emits `TipSent` on every tip transfer. - **/ - payTips: AugmentedSubmittable< - ( - tips: - | Vec - | ( - | PalletNftsItemTip - | { collection?: any; item?: any; receiver?: any; amount?: any } - | string - | Uint8Array - )[] - ) => SubmittableExtrinsic, - [Vec] - >; - /** - * Re-evaluate the deposits on some items. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection of the items to be reevaluated. - * - `items`: The items of the collection whose deposits will be reevaluated. - * - * NOTE: This exists as a best-effort function. Any items which are unknown or - * in the case that the owner account does not have reservable funds to pay for a - * deposit increase are ignored. Generally the owner isn't going to call this on items - * whose existing deposit is less than the refreshed deposit as it would only cost them, - * so it's of little consequence. - * - * It will still return an error in the case that the collection is unknown or the signer - * is not permitted to call it. - * - * Weight: `O(items.len())` - **/ - redeposit: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - items: Vec | (u32 | AnyNumber | Uint8Array)[] - ) => SubmittableExtrinsic, - [u32, Vec] - >; - /** - * Set (or reset) the acceptance of ownership for a particular account. - * - * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a - * provider reference. - * - * - `maybe_collection`: The identifier of the collection whose ownership the signer is - * willing to accept, or if `None`, an indication that the signer is willing to accept no - * ownership transferal. - * - * Emits `OwnershipAcceptanceChanged`. - **/ - setAcceptOwnership: AugmentedSubmittable< - ( - maybeCollection: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Set an attribute for a collection or item. - * - * Origin must be Signed and must conform to the namespace ruleset: - * - `CollectionOwner` namespace could be modified by the `collection` Admin only; - * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` - * should be set in that case; - * - `Account(AccountId)` namespace could be modified only when the `origin` was given a - * permission to do so; - * - * The funds of `origin` are reserved according to the formula: - * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `maybe_item`: The identifier of the item whose metadata to set. - * - `namespace`: Attribute's namespace. - * - `key`: The key of the attribute. - * - `value`: The value to which to set the attribute. - * - * Emits `AttributeSet`. - * - * Weight: `O(1)` - **/ - setAttribute: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maybeItem: Option | null | Uint8Array | u32 | AnyNumber, - namespace: - | PalletNftsAttributeNamespace - | { Pallet: any } - | { CollectionOwner: any } - | { ItemOwner: any } - | { Account: any } - | string - | Uint8Array, - key: Bytes | string | Uint8Array, - value: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] - >; - /** - * Set attributes for an item by providing the pre-signed approval. - * - * Origin must be Signed and must be an owner of the `data.item`. - * - * - `data`: The pre-signed approval that consists of the information about the item, - * attributes to update and until what block number. - * - `signature`: The signature of the `data` object. - * - `signer`: The `data` object's signer. Should be an Admin of the collection for the - * `CollectionOwner` namespace. - * - * Emits `AttributeSet` for each provided attribute. - * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. - * Emits `PreSignedAttributesSet` on success. - **/ - setAttributesPreSigned: AugmentedSubmittable< - ( - data: - | PalletNftsPreSignedAttributes - | { collection?: any; item?: any; attributes?: any; namespace?: any; deadline?: any } - | string - | Uint8Array, - signature: - | SpRuntimeMultiSignature - | { Ed25519: any } - | { Sr25519: any } - | { Ecdsa: any } - | string - | Uint8Array, - signer: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] - >; - /** - * Set the maximum number of items a collection could have. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of - * the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `max_supply`: The maximum number of items a collection could have. - * - * Emits `CollectionMaxSupplySet` event when successful. - **/ - setCollectionMaxSupply: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - maxSupply: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Set the metadata for a collection. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of - * the `collection`. - * - * If the origin is `Signed`, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the item whose metadata to update. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `CollectionMetadataSet`. - * - * Weight: `O(1)` - **/ - setCollectionMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, Bytes] - >; - /** - * Set the metadata for an item. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the - * `collection`. - * - * If the origin is Signed, then funds of signer are reserved according to the formula: - * `MetadataDepositBase + DepositPerByte * data.len` taking into - * account any already reserved funds. - * - * - `collection`: The identifier of the collection whose item's metadata to set. - * - `item`: The identifier of the item whose metadata to set. - * - `data`: The general information of this item. Limited in length by `StringLimit`. - * - * Emits `ItemMetadataSet`. - * - * Weight: `O(1)` - **/ - setMetadata: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - data: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, Bytes] - >; - /** - * Set (or reset) the price for an item. - * - * Origin must be Signed and must be the owner of the `item`. - * - * - `collection`: The collection of the item. - * - `item`: The item to set the price for. - * - `price`: The price for the item. Pass `None`, to reset the price. - * - `buyer`: Restricts the buy operation to a specific account. - * - * Emits `ItemPriceSet` on success if the price is not `None`. - * Emits `ItemPriceRemoved` on success if the price is `None`. - **/ - setPrice: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - price: Option | null | Uint8Array | u128 | AnyNumber, - whitelistedBuyer: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - ) => SubmittableExtrinsic, - [u32, u32, Option, Option] - >; - /** - * Change the Issuer, Admin and Freezer of a collection. - * - * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the - * `collection`. - * - * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it - * after to `Some(account)`. - * - * - `collection`: The collection whose team should be changed. - * - `issuer`: The new Issuer of this collection. - * - `admin`: The new Admin of this collection. - * - `freezer`: The new Freezer of this collection. - * - * Emits `TeamChanged`. - * - * Weight: `O(1)` - **/ - setTeam: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - issuer: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string, - admin: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string, - freezer: - | Option - | null - | Uint8Array - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - ) => SubmittableExtrinsic, - [u32, Option, Option, Option] - >; - /** - * Move an item from the sender account to another. - * - * Origin must be Signed and the signing account must be either: - * - the Owner of the `item`; - * - the approved delegate for the `item` (in this case, the approval is reset). - * - * Arguments: - * - `collection`: The collection of the item to be transferred. - * - `item`: The item to be transferred. - * - `dest`: The account to receive ownership of the item. - * - * Emits `Transferred`. - * - * Weight: `O(1)` - **/ - transfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array, - dest: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32, MultiAddress] - >; - /** - * Change the Owner of a collection. - * - * Origin must be Signed and the sender should be the Owner of the `collection`. - * - * - `collection`: The collection whose owner should be changed. - * - `owner`: The new Owner of this collection. They must have called - * `set_accept_ownership` with `collection` in order for this operation to succeed. - * - * Emits `OwnerChanged`. - * - * Weight: `O(1)` - **/ - transferOwnership: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - newOwner: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, MultiAddress] - >; - /** - * Re-allow unprivileged transfer of an item. - * - * Origin must be Signed and the sender should be the Freezer of the `collection`. - * - * - `collection`: The collection of the item to be changed. - * - `item`: The item to become transferable. - * - * Emits `ItemTransferUnlocked`. - * - * Weight: `O(1)` - **/ - unlockItemTransfer: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - item: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [u32, u32] - >; - /** - * Update mint settings. - * - * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer - * of the `collection`. - * - * - `collection`: The identifier of the collection to change. - * - `mint_settings`: The new mint settings. - * - * Emits `CollectionMintSettingsUpdated` event when successful. - **/ - updateMintSettings: AugmentedSubmittable< - ( - collection: u32 | AnyNumber | Uint8Array, - mintSettings: - | PalletNftsMintSettings - | { - mintType?: any; - price?: any; - startBlock?: any; - endBlock?: any; - defaultItemSettings?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [u32, PalletNftsMintSettings] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainInfo: { - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parachainSystem: { - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec - * version and name should be verified on upgrade. Since the authorization only has a hash, - * it cannot actually perform the verification. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - ( - codeHash: H256 | string | Uint8Array, - checkVersion: bool | boolean | Uint8Array - ) => SubmittableExtrinsic, - [H256, bool] - >; - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Note that this function will not apply the new `code`, but only attempt to schedule the - * upgrade with the Relay Chain. - * - * All origins are allowed. - **/ - enactAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the current validation data. - * - * This should be invoked exactly once per block. It will panic at the finalization - * phase if the call was not invoked. - * - * The dispatch origin for this call must be `Inherent` - * - * As a side effect, this function upgrades the current validation function - * if the appropriate time has come. - **/ - setValidationData: AugmentedSubmittable< - ( - data: - | CumulusPrimitivesParachainInherentParachainInherentData - | { - validationData?: any; - relayChainState?: any; - downwardMessages?: any; - horizontalMessages?: any; - } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [CumulusPrimitivesParachainInherentParachainInherentData] - >; - sudoSendUpwardMessage: AugmentedSubmittable< - (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - parameters: { - /** - * Set the value of a parameter. - * - * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be - * deleted by setting them to `None`. - **/ - setParameter: AugmentedSubmittable< - ( - keyValue: - | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters - | { RuntimeConfig: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - paymentStreams: { - /** - * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. - * - * The dispatch origin for this call must be Signed. - * The origin must be the Provider that has at least one type of payment stream with the User. - * - * Parameters: - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that a payment stream between the signer (Provider) and the User exists - * 3. If there is a fixed-rate payment stream: - * 1. Get the rate of the payment stream - * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream - * 3. Calculate the amount to charge doing `rate * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the last charged tick number of the payment stream - * 4. If there is a dynamic-rate payment stream: - * 1. Get the amount provided by the Provider - * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick - * 3. Calculate the amount to charge doing `amount_provided * difference` - * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) - * 5. Update the price index when the stream was last charged of the payment stream - * - * Emits a `PaymentStreamCharged` event when successful. - * - * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic - * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. - **/ - chargePaymentStreams: AugmentedSubmittable< - (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, - [AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, - * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Check that the cooldown period has passed since the user was flagged as without funds. - * 4. Check if there's any outstanding debt and charge it. This is done by: - * a. Releasing any remaining funds held as a deposit for each payment stream. - * b. Getting all payment streams of the user and charging them, paying the Providers for the services. - * c. Returning the User any remaining funds. - * d. Deleting all payment streams of the user. - * 5. Unflag the user as without funds. - * - * Emits a 'UserSolvent' event when successful. - * - * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `amount_provided`: The initial amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `DynamicRatePaymentStreamCreated` event when successful. - **/ - createDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - amountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `rate`: The initial rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream does not already exist - * 3. Check that the User has enough funds to pay the deposit - * 4. Hold the deposit from the User - * 5. Update the Payment Streams storage to add the new payment stream - * - * Emits `FixedRatePaymentStreamCreated` event when successful. - **/ - createFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - rate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `DynamicRatePaymentStreamDeleted` event when successful. - **/ - deleteDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to remove the payment stream - * - * Emits `FixedRatePaymentStreamDeleted` event when successful. - **/ - deleteFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32] - >; - /** - * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover - * its deposits. - * - * The dispatch origin for this call must be Signed. - * The origin must be the User that has been flagged as without funds. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the user has been flagged as without funds. - * 3. Release the user's funds that were held as a deposit for each payment stream. - * 4. Get all payment streams of the user and charge them, paying the Providers for the services. - * 5. Delete all payment streams of the user. - * - * Emits a 'UserPaidDebts' event when successful. - * - * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. - * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user - * finds more convenient to wait for Providers to get its deposits one by one instead. - **/ - payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_amount_provided`: The new amount provided by the Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `DynamicRatePaymentStreamUpdated` event when successful. - **/ - updateDynamicRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newAmountProvided: u64 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u64] - >; - /** - * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. - * - * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, - * this extrinsic is for manual testing). - * - * Parameters: - * - `provider_id`: The Provider ID that the payment stream is for. - * - `user_account`: The User Account ID that the payment stream is for. - * - `new_rate`: The new rate of the payment stream. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was executed by the root origin - * 2. Check that the payment stream exists - * 3. Update the Payment Streams storage to update the payment stream - * - * Emits `FixedRatePaymentStreamUpdated` event when successful. - **/ - updateFixedRatePaymentStream: AugmentedSubmittable< - ( - providerId: H256 | string | Uint8Array, - userAccount: AccountId32 | string | Uint8Array, - newRate: u128 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [H256, AccountId32, u128] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - polkadotXcm: { - /** - * Claims assets trapped on this pallet because of leftover assets during XCM execution. - * - * - `origin`: Anyone can call this extrinsic. - * - `assets`: The exact assets that were trapped. Use the version to specify what version - * was the latest when they were trapped. - * - `beneficiary`: The location/account where the claimed assets will be deposited. - **/ - claimAssets: AugmentedSubmittable< - ( - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedAssets, XcmVersionedLocation] - >; - /** - * Execute an XCM message from a local, signed, origin. - * - * An event is deposited indicating whether `msg` could be executed completely or only - * partially. - * - * No more than `max_weight` will be used in its attempted execution. If this is less than - * the maximum amount of weight that the message could take to be executed, then no - * execution attempt will be made. - **/ - execute: AugmentedSubmittable< - ( - message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, - maxWeight: - | SpWeightsWeightV2Weight - | { refTime?: any; proofSize?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedXcm, SpWeightsWeightV2Weight] - >; - /** - * Set a safe XCM version (the version that XCM should be encoded with if the most recent - * version a destination can accept is unknown). - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. - **/ - forceDefaultXcmVersion: AugmentedSubmittable< - ( - maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Ask a location to notify us regarding their XCM version and any changes to it. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we should subscribe for XCM version notifications. - **/ - forceSubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Set or unset the global suspension state of the XCM executor. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `suspended`: `true` to suspend, `false` to resume. - **/ - forceSuspension: AugmentedSubmittable< - (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * Require that a particular destination should no longer notify us regarding any XCM - * version changes. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The location to which we are currently subscribed for XCM version - * notifications which we no longer desire. - **/ - forceUnsubscribeVersionNotify: AugmentedSubmittable< - ( - location: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation] - >; - /** - * Extoll that a particular destination can be communicated with through a particular - * version of XCM. - * - * - `origin`: Must be an origin specified by AdminOrigin. - * - `location`: The destination that is being described. - * - `xcm_version`: The latest version of XCM that `location` supports. - **/ - forceXcmVersion: AugmentedSubmittable< - ( - location: StagingXcmV4Location | { parents?: any; interior?: any } | string | Uint8Array, - version: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [StagingXcmV4Location, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedReserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - limitedTeleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve. - * - * `assets` must have same reserve location and may not be teleportable to `dest`. - * - `assets` have local reserve: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `assets` have destination reserve: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move - * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` - * to mint and deposit reserve-based assets to `beneficiary`. - * - * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - reserveTransferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - send: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedXcm] - >; - /** - * Teleport some assets from the local chain to some destination chain. - * - * **This function is deprecated: Use `limited_teleport_assets` instead.** - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, - * with all fees taken as needed from the asset. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` chain. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - **/ - teleportAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] - >; - /** - * Transfer some assets from the local chain to the destination chain through their local, - * destination or remote reserve, or through teleports. - * - * Fee payment on the destination side is made from the asset in the `assets` vector of - * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for - * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the - * operation will fail and the sent assets may be at risk. - * - * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable - * to `dest`, no limitations imposed on `fees`. - * - for local reserve: transfer assets to sovereign account of destination chain and - * forward a notification XCM to `dest` to mint and deposit reserve-based assets to - * `beneficiary`. - * - for destination reserve: burn local assets and forward a notification to `dest` chain - * to withdraw the reserve assets from this chain's sovereign account and deposit them - * to `beneficiary`. - * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves - * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint - * and deposit reserve-based assets to `beneficiary`. - * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport - * assets and deposit them to `beneficiary`. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `X2(Parent, - * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send - * from relay to parachain. - * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will - * generally be an `AccountId32` value. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `fee_asset_item`: The index into `assets` of the item which should be used to pay - * fees. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssets: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - beneficiary: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - feeAssetItem: u32 | AnyNumber | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] - >; - /** - * Transfer assets from the local chain to the destination chain using explicit transfer - * types for assets and fees. - * - * `assets` must have same reserve location or may be teleportable to `dest`. Caller must - * provide the `assets_transfer_type` to be used for `assets`: - * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination - * chain and forward a notification XCM to `dest` to mint and deposit reserve-based - * assets to `beneficiary`. - * - `TransferType::DestinationReserve`: burn local assets and forward a notification to - * `dest` chain to withdraw the reserve assets from this chain's sovereign account and - * deposit them to `beneficiary`. - * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` - * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another - * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically - * the remote `reserve` is Asset Hub. - * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to - * mint/teleport assets and deposit them to `beneficiary`. - * - * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to - * buy execution using transferred `assets` identified by `remote_fees_id`. - * Make sure enough of the specified `remote_fees_id` asset is included in the given list - * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight - * is needed than `weight_limit`, then the operation will fail and the sent assets may be - * at risk. - * - * `remote_fees_id` may use different transfer type than rest of `assets` and can be - * specified through `fees_transfer_type`. - * - * The caller needs to specify what should happen to the transferred assets once they reach - * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which - * contains the instructions to execute on `dest` as a final step. - * This is usually as simple as: - * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, - * but could be something more exotic like sending the `assets` even further. - * - * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. - * - `dest`: Destination context for the assets. Will typically be `[Parent, - * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from - * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from - * parachain across a bridge to another ecosystem destination. - * - `assets`: The assets to be withdrawn. This should include the assets used to pay the - * fee on the `dest` (and possibly reserve) chains. - * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. - * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. - * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. - * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the - * transfer, which also determines what happens to the assets on the destination chain. - * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. - **/ - transferAssetsUsingTypeAndThen: AugmentedSubmittable< - ( - dest: - | XcmVersionedLocation - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assets: - | XcmVersionedAssets - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - assetsTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { Teleport: any } - | { LocalReserve: any } - | { DestinationReserve: any } - | { RemoteReserve: any } - | string - | Uint8Array, - remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array, - feesTransferType: - | StagingXcmExecutorAssetTransferTransferType - | { Teleport: any } - | { LocalReserve: any } - | { DestinationReserve: any } - | { RemoteReserve: any } - | string - | Uint8Array, - customXcmOnDest: - | XcmVersionedXcm - | { V2: any } - | { V3: any } - | { V4: any } - | string - | Uint8Array, - weightLimit: - | XcmV3WeightLimit - | { Unlimited: any } - | { Limited: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [ - XcmVersionedLocation, - XcmVersionedAssets, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedAssetId, - StagingXcmExecutorAssetTransferTransferType, - XcmVersionedXcm, - XcmV3WeightLimit - ] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - proofsDealer: { - /** - * Introduce a new challenge. - * - * This function allows anyone to add a new challenge to the `ChallengesQueue`. - * The challenge will be dispatched in the coming blocks. - * Users are charged a small fee for submitting a challenge, which - * goes to the Treasury. - **/ - challenge: AugmentedSubmittable< - (key: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Initialise a Provider's challenge cycle. - * - * Only callable by sudo. - * - * Sets the last tick the Provider submitted a proof for to the current tick, and sets the - * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. - **/ - forceInitialiseChallengeCycle: AugmentedSubmittable< - (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Set the [`ChallengesTickerPaused`] to `true` or `false`. - * - * Only callable by sudo. - **/ - setPaused: AugmentedSubmittable< - (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, - [bool] - >; - /** - * For a Provider to submit a proof. - * - * Checks that `provider` is a registered Provider. If none - * is provided, the proof submitter is considered to be the Provider. - * Relies on a Providers pallet to get the root for the Provider. - * Validates that the proof corresponds to a challenge that was made in the past, - * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the - * Provider should have submitted a proof is calculated based on the last tick they - * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for - * that Provider, which is a function of their stake. - * This extrinsic also checks that there hasn't been a checkpoint challenge round - * in between the last time the Provider submitted a proof for and the tick - * for which the proof is being submitted. If there has been, the Provider is - * subject to slashing. - * - * If valid: - * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number - * of ticks corresponding to the stake of the Provider. - * - Registers this tick as the last tick in which the Provider submitted a proof. - * - * Execution of this extrinsic should be refunded if the proof is valid. - **/ - submitProof: AugmentedSubmittable< - ( - proof: - | PalletProofsDealerProof - | { forestProof?: any; keyProofs?: any } - | string - | Uint8Array, - provider: Option | null | Uint8Array | H256 | string - ) => SubmittableExtrinsic, - [PalletProofsDealerProof, Option] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - providers: { - /** - * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to add a value proposition. - * - * Parameters: - * - `new_value_prop`: The value proposition that the MSP wants to add to its service. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has not reached the maximum amount of value propositions - * 4. Check that the value proposition is valid (size and any other relevant checks) - * 5. Update the MSPs storage to add the value proposition (with its identifier) - * - * Emits `ValuePropAdded` event when successful. - **/ - addValueProp: AugmentedSubmittable< - ( - newValueProp: - | PalletStorageProvidersValueProposition - | { identifier?: any; dataLimit?: any; protocols?: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [PalletStorageProvidersValueProposition] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Backup Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a BSP - * 3. Check that the BSP has no storage assigned to it - * 4. Update the BSPs storage, removing the signer as an BSP - * 5. Update the total capacity of all BSPs, removing the capacity of the signer - * 6. Return the deposit to the signer - * 7. Decrement the storage that holds total amount of BSPs currently in the system - * - * Emits `BspSignOffSuccess` event when successful. - **/ - bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer has requested to sign up as a SP - * 3. Delete the request from the Sign Up Requests storage - * 4. Return the deposit to the signer - * - * Emits `SignUpRequestCanceled` event when successful. - **/ - cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to change their amount of stored data - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to change its capacity. - * - * Parameters: - * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a SP - * 3. Check that enough time has passed since the last time the SP changed its capacity - * 4. Check that the new capacity is greater than the minimum required by the runtime - * 5. Check that the new capacity is greater than the data used by this SP - * 6. Calculate the new deposit needed for this new capacity - * 7. Check to see if the new deposit needed is greater or less than the current deposit - * a. If the new deposit is greater than the current deposit: - * i. Check that the signer has enough funds to pay this extra deposit - * ii. Hold the extra deposit from the signer - * b. If the new deposit is less than the current deposit, return the held difference to the signer - * 7. Update the SPs storage to change the total data - * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) - * - * Emits `CapacityChanged` event when successful. - **/ - changeCapacity: AugmentedSubmittable< - (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that requested to sign up as a Storage Provider, except when providing a - * `provider_account` parameter, in which case the origin can be any account. - * - * Parameters: - * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer - * will be considered the account that requested to sign up. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed - * 2. Check that the account received has requested to register as a SP - * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request - * 4. Check that the request has not expired - * 5. Register the signer as a MSP or BSP with the data provided in the request - * - * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. - * - * Notes: - * - This extrinsic could be called by the user itself or by a third party - * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP - * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating - **/ - confirmSignUp: AugmentedSubmittable< - ( - providerAccount: Option | null | Uint8Array | AccountId32 | string - ) => SubmittableExtrinsic, - [Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Backup Storage Provider. - * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the steps of: - * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. - **/ - forceBspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - bspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array, - weight: Option | null | Uint8Array | u32 | AnyNumber - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, AccountId32, Option] - >; - /** - * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. - * - * The dispatch origin for this call must be Root. - * The `who` parameter is the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. - * - * Parameters: - * - `who`: The account that wants to sign up as a Main Storage Provider. - * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the steps of: - * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) - * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) - * - * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. - **/ - forceMspSignUp: AugmentedSubmittable< - ( - who: AccountId32 | string | Uint8Array, - mspId: H256 | string | Uint8Array, - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { identifier?: any; dataLimit?: any; protocols?: any } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign off as a Main Storage Provider. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is registered as a MSP - * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) - * 4. Update the MSPs storage, removing the signer as an MSP - * 5. Return the deposit to the signer - * 6. Decrement the storage that holds total amount of MSPs currently in the system - * - * Emits `MspSignOffSuccess` event when successful. - **/ - mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Backup Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP - * - * Emits `BspRequestSignUpSuccess` event when successful. - **/ - requestBspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, AccountId32] - >; - /** - * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. - * - * The dispatch origin for this call must be Signed. - * The origin must be the account that wants to sign up as a Main Storage Provider. - * - * Funds proportional to the capacity requested are reserved (held) from the account. - * - * Parameters: - * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. - * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the - * [Multiaddr spec](https://github.com/multiformats/multiaddr)) - * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to - * users and wants to register on-chain. It could be data limits, communication protocols to access the user's - * data, and more. - * - * This extrinsic will perform the following checks and logic: - * 1. Check that the extrinsic was signed and get the signer. - * 2. Check that the signer is not already registered as either a MSP or BSP - * 3. Check that the multiaddress is valid - * 4. Check that the data to be stored is greater than the minimum required by the runtime. - * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store - * 6. Check that the signer has enough funds to pay the deposit - * 7. Hold the deposit from the signer - * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP - * - * Emits `MspRequestSignUpSuccess` event when successful. - **/ - requestMspSignUp: AugmentedSubmittable< - ( - capacity: u64 | AnyNumber | Uint8Array, - multiaddresses: Vec | (Bytes | string | Uint8Array)[], - valueProp: - | PalletStorageProvidersValueProposition - | { identifier?: any; dataLimit?: any; protocols?: any } - | string - | Uint8Array, - paymentAccount: AccountId32 | string | Uint8Array - ) => SubmittableExtrinsic, - [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] - >; - /** - * Dispatchable extrinsic to slash a _slashable_ Storage Provider. - * - * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. - * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. - **/ - slash: AugmentedSubmittable< - (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - randomness: { - /** - * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the - * relay chain into a variable that can then be used as a seed for commitments that happened during - * the previous relay chain epoch - **/ - setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - session: { - /** - * Removes any session key(s) of the function caller. - * - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be Signed and the account must be either be - * convertible to a validator ID using the chain's typical addressing system (this usually - * means being a controller account) or directly convertible into a validator ID (which - * usually means being a stash account). - * - * ## Complexity - * - `O(1)` in number of key types. Actual cost depends on the number of length of - * `T::Keys::key_ids()` which is fixed. - **/ - purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Sets the session key(s) of the function caller to `keys`. - * Allows an account to set its session key prior to becoming a validator. - * This doesn't take effect until the next session. - * - * The dispatch origin of this function must be signed. - * - * ## Complexity - * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is - * fixed. - **/ - setKeys: AugmentedSubmittable< - ( - keys: StorageHubRuntimeSessionKeys | { aura?: any } | string | Uint8Array, - proof: Bytes | string | Uint8Array - ) => SubmittableExtrinsic, - [StorageHubRuntimeSessionKeys, Bytes] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - sudo: { - /** - * Permanently removes the sudo key. - * - * **This cannot be un-done.** - **/ - removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo - * key. - **/ - setKey: AugmentedSubmittable< - ( - updated: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - **/ - sudo: AugmentedSubmittable< - (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, - [Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Signed` origin from - * a given account. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoAs: AugmentedSubmittable< - ( - who: - | MultiAddress - | { Id: any } - | { Index: any } - | { Raw: any } - | { Address32: any } - | { Address20: any } - | string - | Uint8Array, - call: Call | IMethod | string | Uint8Array - ) => SubmittableExtrinsic, - [MultiAddress, Call] - >; - /** - * Authenticates the sudo key and dispatches a function call with `Root` origin. - * This function does not check the weight of the call, and instead allows the - * Sudo user to specify the weight of the call. - * - * The dispatch origin for this call must be _Signed_. - **/ - sudoUncheckedWeight: AugmentedSubmittable< - ( - call: Call | IMethod | string | Uint8Array, - weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array - ) => SubmittableExtrinsic, - [Call, SpWeightsWeightV2Weight] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - system: { - /** - * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. - * - * If the authorization required a version check, this call will ensure the spec name - * remains unchanged and that the spec version has increased. - * - * Depending on the runtime's `OnSetCode` configuration, this function may directly apply - * the new `code` in the same block or attempt to schedule the upgrade. - * - * All origins are allowed. - **/ - applyAuthorizedUpgrade: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * This call requires Root origin. - **/ - authorizeUpgrade: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied - * later. - * - * WARNING: This authorizes an upgrade that will take place without any safety checks, for - * example that the spec name remains the same and that the version number increases. Not - * recommended for normal use. Use `authorize_upgrade` instead. - * - * This call requires Root origin. - **/ - authorizeUpgradeWithoutChecks: AugmentedSubmittable< - (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, - [H256] - >; - /** - * Kill all storage items with a key that starts with the given prefix. - * - * **NOTE:** We rely on the Root origin to provide us the number of subkeys under - * the prefix we are removing to accurately calculate the weight of this function. - **/ - killPrefix: AugmentedSubmittable< - ( - prefix: Bytes | string | Uint8Array, - subkeys: u32 | AnyNumber | Uint8Array - ) => SubmittableExtrinsic, - [Bytes, u32] - >; - /** - * Kill some items from storage. - **/ - killStorage: AugmentedSubmittable< - (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, - [Vec] - >; - /** - * Make some on-chain remark. - * - * Can be executed by every `origin`. - **/ - remark: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Make some on-chain remark and emit event. - **/ - remarkWithEvent: AugmentedSubmittable< - (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code. - **/ - setCode: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the new runtime code without doing any checks of the given `code`. - * - * Note that runtime upgrades will not run if this is called with a not-increasing spec - * version! - **/ - setCodeWithoutChecks: AugmentedSubmittable< - (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, - [Bytes] - >; - /** - * Set the number of pages in the WebAssembly environment's heap. - **/ - setHeapPages: AugmentedSubmittable< - (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u64] - >; - /** - * Set some items of storage. - **/ - setStorage: AugmentedSubmittable< - ( - items: - | Vec> - | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] - ) => SubmittableExtrinsic, - [Vec>] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - timestamp: { - /** - * Set the current time. - * - * This call should be invoked exactly once per block. It will panic at the finalization - * phase, if this call hasn't been invoked by that time. - * - * The timestamp should be greater than the previous one by the amount specified by - * [`Config::MinimumPeriod`]. - * - * The dispatch origin for this call must be _None_. - * - * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware - * that changing the complexity of this call could result exhausting the resources in a - * block to execute any other calls. - * - * ## Complexity - * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) - * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in - * `on_finalize`) - * - 1 event handler `on_timestamp_set`. Must be `O(1)`. - **/ - set: AugmentedSubmittable< - (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [Compact] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - xcmpQueue: { - /** - * Resumes all XCM executions for the XCMP queue. - * - * Note that this function doesn't change the status of the in/out bound channels. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. - * - * - `origin`: Must pass `ControllerOrigin`. - **/ - suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; - /** - * Overwrites the number of pages which must be in the queue after which we drop any - * further messages from the channel. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.drop_threshold` - **/ - updateDropThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which the queue must be reduced to before it signals - * that message sending may recommence after it has been suspended. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.resume_threshold` - **/ - updateResumeThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Overwrites the number of pages which must be in the queue for the other side to be - * told to suspend their sending. - * - * - `origin`: Must pass `Root`. - * - `new`: Desired value for `QueueConfigData.suspend_value` - **/ - updateSuspendThreshold: AugmentedSubmittable< - (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, - [u32] - >; - /** - * Generic tx - **/ - [key: string]: SubmittableExtrinsicFunction; - }; - } // AugmentedSubmittables -} // declare module +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/api-base/types/submittable"; + +import type { + ApiTypes, + AugmentedSubmittable, + SubmittableExtrinsic, + SubmittableExtrinsicFunction +} from "@polkadot/api-base/types"; +import type { Bytes, Compact, Option, Vec, bool, u128, u32, u64 } from "@polkadot/types-codec"; +import type { AnyNumber, IMethod, ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; +import type { + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + PalletBalancesAdjustmentDirection, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemMspStorageRequestResponse, + PalletNftsAttributeNamespace, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsDestroyWitness, + PalletNftsItemConfig, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintWitness, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceWithDirection, + PalletProofsDealerProof, + PalletStorageProvidersValueProposition, + ShpFileKeyVerifierFileKeyProof, + SpRuntimeMultiSignature, + SpTrieStorageProofCompactProof, + SpWeightsWeightV2Weight, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV4Location, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeSessionKeys, + XcmV3WeightLimit, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedXcm +} from "@polkadot/types/lookup"; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = + SubmittableExtrinsicFunction; + +declare module "@polkadot/api-base/types/submittable" { + interface AugmentedSubmittables { + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable< + ( + value: Compact | AnyNumber | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [Compact, bool] + >; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable< + ( + direction: + | PalletBalancesAdjustmentDirection + | "Increase" + | "Decrease" + | number + | Uint8Array, + delta: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [PalletBalancesAdjustmentDirection, Compact] + >; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable< + ( + who: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + newFree: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable< + ( + source: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, MultiAddress, Compact] + >; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable< + ( + who: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + amount: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, u128] + >; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + keepAlive: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, bool] + >; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable< + ( + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + value: Compact | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Compact] + >; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable< + ( + who: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bucketNfts: { + /** + * Share access to files within a bucket with another account. + * + * The `read_access_regex` parameter is optional and when set to `None` it means that the recipient will be denied access for any read request within the bucket. + **/ + shareAccess: AugmentedSubmittable< + ( + recipient: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [MultiAddress, H256, u32, Option] + >; + /** + * Update read access for an item. + **/ + updateReadAccess: AugmentedSubmittable< + ( + bucket: H256 | string | Uint8Array, + itemId: u32 | AnyNumber | Uint8Array, + readAccessRegex: Option | null | Uint8Array | Bytes | string + ) => SubmittableExtrinsic, + [H256, u32, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + collatorSelection: { + /** + * Add a new account `who` to the list of `Invulnerables` collators. `who` must have + * registered session keys. If `who` is a candidate, they will be removed. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + addInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Deregister `origin` as a collator candidate. Note that the collator can only leave on + * session change. The `CandidacyBond` will be unreserved immediately. + * + * This call will fail if the total number of candidates would drop below + * `MinEligibleCollators`. + **/ + leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register this account as a collator candidate. The account must (a) already have + * registered session keys and (b) be able to reserve the `CandidacyBond`. + * + * This call is not available to `Invulnerable` collators. + **/ + registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must + * be sorted. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + removeInvulnerable: AugmentedSubmittable< + (who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Set the candidacy bond amount. + * + * If the candidacy bond is increased by this call, all current candidates which have a + * deposit lower than the new bond will be kicked from the list and get their deposits + * back. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setCandidacyBond: AugmentedSubmittable< + (bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Set the ideal number of non-invulnerable collators. If lowering this number, then the + * number of running collators could be higher than this figure. Aside from that edge case, + * there should be no other way to have more candidates than the desired number. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setDesiredCandidates: AugmentedSubmittable< + (max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Set the list of invulnerable (fixed) collators. These collators must do some + * preparation, namely to have registered session keys. + * + * The call will remove any accounts that have not registered keys from the set. That is, + * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as + * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. + * + * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It + * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A + * `batch_all` can also be used to enforce atomicity. If any candidates are included in + * `new`, they should be removed with `remove_invulnerable_candidate` after execution. + * + * Must be called by the `UpdateOrigin`. + **/ + setInvulnerables: AugmentedSubmittable< + ( + updated: Vec | (AccountId32 | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * The caller `origin` replaces a candidate `target` in the collator candidate list by + * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than + * the existing bond of the target it is trying to replace. + * + * This call will fail if the caller is already a collator candidate or invulnerable, the + * caller does not have registered session keys, the target is not a collator candidate, + * and/or the `deposit` amount cannot be reserved. + **/ + takeCandidateSlot: AugmentedSubmittable< + ( + deposit: u128 | AnyNumber | Uint8Array, + target: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u128, AccountId32] + >; + /** + * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. + * + * Setting a `new_deposit` that is lower than the current deposit while `origin` is + * occupying a top-`DesiredCandidates` slot is not allowed. + * + * This call will fail if `origin` is not a collator candidate, the updated bond is lower + * than the minimum candidacy bond, and/or the amount cannot be reserved. + **/ + updateBond: AugmentedSubmittable< + (newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + cumulusXcm: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fileSystem: { + /** + * Add yourself as a data server for providing the files of the bucket requested to be moved. + **/ + bspAddDataServerForMoveBucketRequest: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Executed by a BSP to confirm to stop storing a file. + * + * It has to have previously opened a pending stop storing request using the `bsp_request_stop_storing` extrinsic. + * The minimum amount of blocks between the request and the confirmation is defined by the runtime, such that the + * BSP can't immediately stop storing a file it has previously lost when receiving a challenge for it. + **/ + bspConfirmStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to confirm they are storing data of a storage request. + **/ + bspConfirmStoring: AugmentedSubmittable< + ( + nonInclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array, + fileKeysAndProofs: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | ShpFileKeyVerifierFileKeyProof + | { fileMetadata?: any; proof?: any } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [SpTrieStorageProofCompactProof, Vec>] + >; + /** + * Executed by a BSP to request to stop storing a file. + * + * In the event when a storage request no longer exists for the data the BSP no longer stores, + * it is required that the BSP still has access to the metadata of the initial storage request. + * If they do not, they will at least need that metadata to reconstruct the File ID and from wherever + * the BSP gets that data is up to it. One example could be from the assigned MSP. + * This metadata is necessary since it is needed to reconstruct the leaf node key in the storage + * provider's Merkle Forest. + **/ + bspRequestStopStoring: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + canServe: bool | boolean | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, bool, SpTrieStorageProofCompactProof] + >; + /** + * Used by a BSP to volunteer for storing a file. + * + * The transaction will fail if the XOR between the file ID and the BSP ID is not below the threshold, + * so a BSP is strongly advised to check beforehand. Another reason for failure is + * if the maximum number of BSPs has been reached. A successful assignment as BSP means + * that some of the collateral tokens of that MSP are frozen. + **/ + bspVolunteer: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Create and associate a collection with a bucket. + **/ + createAndAssociateCollectionWithBucket: AugmentedSubmittable< + (bucketId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + createBucket: AugmentedSubmittable< + ( + mspId: H256 | string | Uint8Array, + name: Bytes | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, Bytes, bool] + >; + deleteFile: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + fingerprint: H256 | string | Uint8Array, + maybeInclusionForestProof: + | Option + | null + | Uint8Array + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + ) => SubmittableExtrinsic, + [H256, H256, Bytes, u64, H256, Option] + >; + /** + * Issue a new storage request for a file + **/ + issueStorageRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + mspId: H256 | string | Uint8Array, + peerIds: Vec | (Bytes | string | Uint8Array)[] + ) => SubmittableExtrinsic, + [H256, Bytes, H256, u64, H256, Vec] + >; + mspRespondMoveBucketRequest: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + response: + | PalletFileSystemBucketMoveRequestResponse + | "Accepted" + | "Rejected" + | number + | Uint8Array + ) => SubmittableExtrinsic, + [H256, PalletFileSystemBucketMoveRequestResponse] + >; + /** + * Used by a MSP to accept or decline storage requests in batches, grouped by bucket. + * + * This follows a best-effort strategy, meaning that all file keys will be processed and declared to have successfully be + * accepted, rejected or have failed to be processed in the results of the event emitted. + * + * The MSP has to provide a file proof for all the file keys that are being accepted and a non-inclusion proof for the file keys + * in the bucket's Merkle Patricia Forest. The file proofs for the file keys is necessary to verify that + * the MSP actually has the files, while the non-inclusion proof is necessary to verify that the MSP + * wasn't storing it before. + **/ + mspRespondStorageRequestsMultipleBuckets: AugmentedSubmittable< + ( + fileKeyResponsesInput: + | Vec> + | [ + H256 | string | Uint8Array, + ( + | PalletFileSystemMspStorageRequestResponse + | { accept?: any; reject?: any } + | string + | Uint8Array + ) + ][] + ) => SubmittableExtrinsic, + [Vec>] + >; + pendingFileDeletionRequestSubmitProof: AugmentedSubmittable< + ( + user: AccountId32 | string | Uint8Array, + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + forestProof: SpTrieStorageProofCompactProof | { encodedNodes?: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, H256, SpTrieStorageProofCompactProof] + >; + requestMoveBucket: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + newMspId: H256 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256] + >; + /** + * Revoke storage request + **/ + revokeStorageRequest: AugmentedSubmittable< + (fileKey: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + setGlobalParameters: AugmentedSubmittable< + ( + replicationTarget: Option | null | Uint8Array | u32 | AnyNumber, + tickRangeToMaximumThreshold: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option, Option] + >; + /** + * Executed by a SP to stop storing a file from an insolvent user. + * + * This is used when a user has become insolvent and the SP needs to stop storing the files of that user, since + * it won't be getting paid for it anymore. + * The validations are similar to the ones in the `bsp_request_stop_storing` and `bsp_confirm_stop_storing` extrinsics, but the SP doesn't need to + * wait for a minimum amount of blocks to confirm to stop storing the file nor it has to be a BSP. + **/ + stopStoringForInsolventUser: AugmentedSubmittable< + ( + fileKey: H256 | string | Uint8Array, + bucketId: H256 | string | Uint8Array, + location: Bytes | string | Uint8Array, + owner: AccountId32 | string | Uint8Array, + fingerprint: H256 | string | Uint8Array, + size: u64 | AnyNumber | Uint8Array, + inclusionForestProof: + | SpTrieStorageProofCompactProof + | { encodedNodes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [H256, H256, Bytes, AccountId32, H256, u64, SpTrieStorageProofCompactProof] + >; + updateBucketPrivacy: AugmentedSubmittable< + ( + bucketId: H256 | string | Uint8Array, + private: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { Here: any } + | { Parent: any } + | { Sibling: any } + | string + | Uint8Array, + page: u32 | AnyNumber | Uint8Array, + index: u32 | AnyNumber | Uint8Array, + weightLimit: + | SpWeightsWeightV2Weight + | { refTime?: any; proofSize?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, SpWeightsWeightV2Weight] + >; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable< + ( + messageOrigin: + | CumulusPrimitivesCoreAggregateMessageOrigin + | { Here: any } + | { Parent: any } + | { Sibling: any } + | string + | Uint8Array, + pageIndex: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesCoreAggregateMessageOrigin, u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + bidPrice: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u128] + >; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + delegate: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + witness: + | PalletNftsCancelAttributesApprovalWitness + | { accountAttributes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsCancelAttributesApprovalWitness] + >; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable< + ( + sendCollection: u32 | AnyNumber | Uint8Array, + sendItem: u32 | AnyNumber | Uint8Array, + receiveCollection: u32 | AnyNumber | Uint8Array, + receiveItem: u32 | AnyNumber | Uint8Array, + witnessPrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { amount?: any; direction?: any } + | string + ) => SubmittableExtrinsic, + [u32, u32, u32, u32, Option] + >; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + key: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes] + >; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable< + (collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable< + ( + admin: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { settings?: any; maxSupply?: any; mintSettings?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable< + ( + offeredCollection: u32 | AnyNumber | Uint8Array, + offeredItem: u32 | AnyNumber | Uint8Array, + desiredCollection: u32 | AnyNumber | Uint8Array, + maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, + maybePrice: + | Option + | null + | Uint8Array + | PalletNftsPriceWithDirection + | { amount?: any; direction?: any } + | string, + duration: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, u32, Option, Option, u32] + >; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + witness: + | PalletNftsDestroyWitness + | { itemMetadatas?: any; itemConfigs?: any; attributes?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsDestroyWitness] + >; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + config: + | PalletNftsCollectionConfig + | { settings?: any; maxSupply?: any; mintSettings?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsCollectionConfig] + >; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + owner: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable< + ( + owner: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + config: + | PalletNftsCollectionConfig + | { settings?: any; maxSupply?: any; mintSettings?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, PalletNftsCollectionConfig] + >; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + itemConfig: PalletNftsItemConfig | { settings?: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, PalletNftsItemConfig] + >; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable< + ( + setAs: Option | null | Uint8Array | AccountId32 | string, + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [Option, u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + lockSettings: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u64] + >; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + lockMetadata: bool | boolean | Uint8Array, + lockAttributes: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, bool, bool] + >; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + mintTo: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + witnessData: + | Option + | null + | Uint8Array + | PalletNftsMintWitness + | { ownedItem?: any; mintPrice?: any } + | string + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress, Option] + >; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable< + ( + mintData: + | PalletNftsPreSignedMint + | { + collection?: any; + item?: any; + attributes?: any; + metadata?: any; + onlyAccount?: any; + deadline?: any; + mintPrice?: any; + } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { Ed25519: any } + | { Sr25519: any } + | { Ecdsa: any } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedMint, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable< + ( + tips: + | Vec + | ( + | PalletNftsItemTip + | { collection?: any; item?: any; receiver?: any; amount?: any } + | string + | Uint8Array + )[] + ) => SubmittableExtrinsic, + [Vec] + >; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + items: Vec | (u32 | AnyNumber | Uint8Array)[] + ) => SubmittableExtrinsic, + [u32, Vec] + >; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable< + ( + maybeCollection: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maybeItem: Option | null | Uint8Array | u32 | AnyNumber, + namespace: + | PalletNftsAttributeNamespace + | { Pallet: any } + | { CollectionOwner: any } + | { ItemOwner: any } + | { Account: any } + | string + | Uint8Array, + key: Bytes | string | Uint8Array, + value: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Option, PalletNftsAttributeNamespace, Bytes, Bytes] + >; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable< + ( + data: + | PalletNftsPreSignedAttributes + | { collection?: any; item?: any; attributes?: any; namespace?: any; deadline?: any } + | string + | Uint8Array, + signature: + | SpRuntimeMultiSignature + | { Ed25519: any } + | { Sr25519: any } + | { Ecdsa: any } + | string + | Uint8Array, + signer: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [PalletNftsPreSignedAttributes, SpRuntimeMultiSignature, AccountId32] + >; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + maxSupply: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, Bytes] + >; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + data: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, Bytes] + >; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + price: Option | null | Uint8Array | u128 | AnyNumber, + whitelistedBuyer: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + ) => SubmittableExtrinsic, + [u32, u32, Option, Option] + >; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + issuer: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string, + admin: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string, + freezer: + | Option + | null + | Uint8Array + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + ) => SubmittableExtrinsic, + [u32, Option, Option, Option] + >; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array, + dest: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32, MultiAddress] + >; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + newOwner: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, MultiAddress] + >; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + item: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [u32, u32] + >; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable< + ( + collection: u32 | AnyNumber | Uint8Array, + mintSettings: + | PalletNftsMintSettings + | { + mintType?: any; + price?: any; + startBlock?: any; + endBlock?: any; + defaultItemSettings?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [u32, PalletNftsMintSettings] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainInfo: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainSystem: { + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * The `check_version` parameter sets a boolean flag for whether or not the runtime's spec + * version and name should be verified on upgrade. Since the authorization only has a hash, + * it cannot actually perform the verification. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + ( + codeHash: H256 | string | Uint8Array, + checkVersion: bool | boolean | Uint8Array + ) => SubmittableExtrinsic, + [H256, bool] + >; + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Note that this function will not apply the new `code`, but only attempt to schedule the + * upgrade with the Relay Chain. + * + * All origins are allowed. + **/ + enactAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the current validation data. + * + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. + * + * The dispatch origin for this call must be `Inherent` + * + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ + setValidationData: AugmentedSubmittable< + ( + data: + | CumulusPrimitivesParachainInherentParachainInherentData + | { + validationData?: any; + relayChainState?: any; + downwardMessages?: any; + horizontalMessages?: any; + } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [CumulusPrimitivesParachainInherentParachainInherentData] + >; + sudoSendUpwardMessage: AugmentedSubmittable< + (message: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable< + ( + keyValue: + | StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters + | { RuntimeConfig: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paymentStreams: { + /** + * Dispatchable extrinsic that allows Providers to charge a payment stream from a User. + * + * The dispatch origin for this call must be Signed. + * The origin must be the Provider that has at least one type of payment stream with the User. + * + * Parameters: + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that a payment stream between the signer (Provider) and the User exists + * 3. If there is a fixed-rate payment stream: + * 1. Get the rate of the payment stream + * 2. Get the difference between the last charged tick number and the last chargeable tick number of the stream + * 3. Calculate the amount to charge doing `rate * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the last charged tick number of the payment stream + * 4. If there is a dynamic-rate payment stream: + * 1. Get the amount provided by the Provider + * 2. Get the difference between price index when the stream was last charged and the price index at the last chargeable tick + * 3. Calculate the amount to charge doing `amount_provided * difference` + * 4. Charge the user (if the user does not have enough funds, it gets flagged and a `UserWithoutFunds` event is emitted) + * 5. Update the price index when the stream was last charged of the payment stream + * + * Emits a `PaymentStreamCharged` event when successful. + * + * Notes: a Provider could have both a fixed-rate and a dynamic-rate payment stream with a User. If that's the case, this extrinsic + * will try to charge both and the amount charged will be the sum of the amounts charged for each payment stream. + **/ + chargePaymentStreams: AugmentedSubmittable< + (userAccount: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, + [AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds long ago enough to clear this flag from its account, + * allowing it to begin contracting and paying for services again. If there's any outstanding debt, it will be charged and cleared. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Check that the cooldown period has passed since the user was flagged as without funds. + * 4. Check if there's any outstanding debt and charge it. This is done by: + * a. Releasing any remaining funds held as a deposit for each payment stream. + * b. Getting all payment streams of the user and charging them, paying the Providers for the services. + * c. Returning the User any remaining funds. + * d. Deleting all payment streams of the user. + * 5. Unflag the user as without funds. + * + * Emits a 'UserSolvent' event when successful. + * + * Notes: this extrinsic iterates over all remaining payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + clearInsolventFlag: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to add a dynamic-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `amount_provided`: The initial amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `DynamicRatePaymentStreamCreated` event when successful. + **/ + createDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + amountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to add a fixed-rate payment stream from a User to a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `rate`: The initial rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream does not already exist + * 3. Check that the User has enough funds to pay the deposit + * 4. Hold the deposit from the User + * 5. Update the Payment Streams storage to add the new payment stream + * + * Emits `FixedRatePaymentStreamCreated` event when successful. + **/ + createFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + rate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `DynamicRatePaymentStreamDeleted` event when successful. + **/ + deleteDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows root to delete an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to remove the payment stream + * + * Emits `FixedRatePaymentStreamDeleted` event when successful. + **/ + deleteFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32] + >; + /** + * Dispatchable extrinsic that allows a user flagged as without funds to pay all remaining payment streams to be able to recover + * its deposits. + * + * The dispatch origin for this call must be Signed. + * The origin must be the User that has been flagged as without funds. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the user has been flagged as without funds. + * 3. Release the user's funds that were held as a deposit for each payment stream. + * 4. Get all payment streams of the user and charge them, paying the Providers for the services. + * 5. Delete all payment streams of the user. + * + * Emits a 'UserPaidDebts' event when successful. + * + * Notes: this extrinsic iterates over all payment streams of the user and charges them, so it can be expensive in terms of weight. + * The fee to execute it should be high enough to compensate for the weight of the extrinsic, without being too high that the user + * finds more convenient to wait for Providers to get its deposits one by one instead. + **/ + payOutstandingDebt: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows root to update an existing dynamic-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_amount_provided`: The new amount provided by the Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `DynamicRatePaymentStreamUpdated` event when successful. + **/ + updateDynamicRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newAmountProvided: u64 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u64] + >; + /** + * Dispatchable extrinsic that allows root to update an existing fixed-rate payment stream between a User and a Provider. + * + * The dispatch origin for this call must be Root (Payment streams should only be added by traits in other pallets, + * this extrinsic is for manual testing). + * + * Parameters: + * - `provider_id`: The Provider ID that the payment stream is for. + * - `user_account`: The User Account ID that the payment stream is for. + * - `new_rate`: The new rate of the payment stream. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was executed by the root origin + * 2. Check that the payment stream exists + * 3. Update the Payment Streams storage to update the payment stream + * + * Emits `FixedRatePaymentStreamUpdated` event when successful. + **/ + updateFixedRatePaymentStream: AugmentedSubmittable< + ( + providerId: H256 | string | Uint8Array, + userAccount: AccountId32 | string | Uint8Array, + newRate: u128 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [H256, AccountId32, u128] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + polkadotXcm: { + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable< + ( + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedAssets, XcmVersionedLocation] + >; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable< + ( + message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array, + maxWeight: + | SpWeightsWeightV2Weight + | { refTime?: any; proofSize?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedXcm, SpWeightsWeightV2Weight] + >; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable< + ( + maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable< + (suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable< + ( + location: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation] + >; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable< + ( + location: StagingXcmV4Location | { parents?: any; interior?: any } | string | Uint8Array, + version: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [StagingXcmV4Location, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + send: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + message: XcmVersionedXcm | { V2: any } | { V3: any } | { V4: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedXcm] + >; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32] + >; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + beneficiary: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + feeAssetItem: u32 | AnyNumber | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit] + >; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable< + ( + dest: + | XcmVersionedLocation + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assets: + | XcmVersionedAssets + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + assetsTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { Teleport: any } + | { LocalReserve: any } + | { DestinationReserve: any } + | { RemoteReserve: any } + | string + | Uint8Array, + remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | string | Uint8Array, + feesTransferType: + | StagingXcmExecutorAssetTransferTransferType + | { Teleport: any } + | { LocalReserve: any } + | { DestinationReserve: any } + | { RemoteReserve: any } + | string + | Uint8Array, + customXcmOnDest: + | XcmVersionedXcm + | { V2: any } + | { V3: any } + | { V4: any } + | string + | Uint8Array, + weightLimit: + | XcmV3WeightLimit + | { Unlimited: any } + | { Limited: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [ + XcmVersionedLocation, + XcmVersionedAssets, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedAssetId, + StagingXcmExecutorAssetTransferTransferType, + XcmVersionedXcm, + XcmV3WeightLimit + ] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proofsDealer: { + /** + * Introduce a new challenge. + * + * This function allows anyone to add a new challenge to the `ChallengesQueue`. + * The challenge will be dispatched in the coming blocks. + * Users are charged a small fee for submitting a challenge, which + * goes to the Treasury. + **/ + challenge: AugmentedSubmittable< + (key: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Initialise a Provider's challenge cycle. + * + * Only callable by sudo. + * + * Sets the last tick the Provider submitted a proof for to the current tick, and sets the + * deadline for submitting a proof to the current tick + the Provider's period + the tolerance. + **/ + forceInitialiseChallengeCycle: AugmentedSubmittable< + (provider: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Set the [`ChallengesTickerPaused`] to `true` or `false`. + * + * Only callable by sudo. + **/ + setPaused: AugmentedSubmittable< + (paused: bool | boolean | Uint8Array) => SubmittableExtrinsic, + [bool] + >; + /** + * For a Provider to submit a proof. + * + * Checks that `provider` is a registered Provider. If none + * is provided, the proof submitter is considered to be the Provider. + * Relies on a Providers pallet to get the root for the Provider. + * Validates that the proof corresponds to a challenge that was made in the past, + * by checking the `TickToChallengesSeed` StorageMap. The challenge tick that the + * Provider should have submitted a proof is calculated based on the last tick they + * submitted a proof for ([`LastTickProviderSubmittedAProofFor`]), and the proving period for + * that Provider, which is a function of their stake. + * This extrinsic also checks that there hasn't been a checkpoint challenge round + * in between the last time the Provider submitted a proof for and the tick + * for which the proof is being submitted. If there has been, the Provider is + * subject to slashing. + * + * If valid: + * - Pushes forward the Provider in the [`TickToProvidersDeadlines`] StorageMap a number + * of ticks corresponding to the stake of the Provider. + * - Registers this tick as the last tick in which the Provider submitted a proof. + * + * Execution of this extrinsic should be refunded if the proof is valid. + **/ + submitProof: AugmentedSubmittable< + ( + proof: + | PalletProofsDealerProof + | { forestProof?: any; keyProofs?: any } + | string + | Uint8Array, + provider: Option | null | Uint8Array | H256 | string + ) => SubmittableExtrinsic, + [PalletProofsDealerProof, Option] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + providers: { + /** + * Dispatchable extrinsic only callable by an MSP that allows it to add a value proposition to its service + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to add a value proposition. + * + * Parameters: + * - `new_value_prop`: The value proposition that the MSP wants to add to its service. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has not reached the maximum amount of value propositions + * 4. Check that the value proposition is valid (size and any other relevant checks) + * 5. Update the MSPs storage to add the value proposition (with its identifier) + * + * Emits `ValuePropAdded` event when successful. + **/ + addValueProp: AugmentedSubmittable< + ( + newValueProp: + | PalletStorageProvidersValueProposition + | { identifier?: any; dataLimit?: any; protocols?: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [PalletStorageProvidersValueProposition] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Backup Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a BSP + * 3. Check that the BSP has no storage assigned to it + * 4. Update the BSPs storage, removing the signer as an BSP + * 5. Update the total capacity of all BSPs, removing the capacity of the signer + * 6. Return the deposit to the signer + * 7. Decrement the storage that holds total amount of BSPs currently in the system + * + * Emits `BspSignOffSuccess` event when successful. + **/ + bspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows a user with a pending Sign Up Request to cancel it, getting the deposit back. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer has requested to sign up as a SP + * 3. Delete the request from the Sign Up Requests storage + * 4. Return the deposit to the signer + * + * Emits `SignUpRequestCanceled` event when successful. + **/ + cancelSignUp: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to change their amount of stored data + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to change its capacity. + * + * Parameters: + * - `new_capacity`: The new total amount of data that the Storage Provider wants to be able to store. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a SP + * 3. Check that enough time has passed since the last time the SP changed its capacity + * 4. Check that the new capacity is greater than the minimum required by the runtime + * 5. Check that the new capacity is greater than the data used by this SP + * 6. Calculate the new deposit needed for this new capacity + * 7. Check to see if the new deposit needed is greater or less than the current deposit + * a. If the new deposit is greater than the current deposit: + * i. Check that the signer has enough funds to pay this extra deposit + * ii. Hold the extra deposit from the signer + * b. If the new deposit is less than the current deposit, return the held difference to the signer + * 7. Update the SPs storage to change the total data + * 8. If user is a BSP, update the total capacity of the network (sum of all capacities of BSPs) + * + * Emits `CapacityChanged` event when successful. + **/ + changeCapacity: AugmentedSubmittable< + (newCapacity: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Dispatchable extrinsic that allows users to confirm their sign up as a Storage Provider, either MSP or BSP. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that requested to sign up as a Storage Provider, except when providing a + * `provider_account` parameter, in which case the origin can be any account. + * + * Parameters: + * - `provider_account`: The account that requested to sign up as a Storage Provider. If not provided, the signer + * will be considered the account that requested to sign up. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed + * 2. Check that the account received has requested to register as a SP + * 3. Check that the current randomness is sufficiently fresh to be used as a salt for that request + * 4. Check that the request has not expired + * 5. Register the signer as a MSP or BSP with the data provided in the request + * + * Emits `MspSignUpSuccess` or `BspSignUpSuccess` event when successful, depending on the type of sign up. + * + * Notes: + * - This extrinsic could be called by the user itself or by a third party + * - The deposit that the user has to pay to register as a SP is held when the user requests to register as a SP + * - If this extrinsic is successful, it will be free for the caller, to incentive state debloating + **/ + confirmSignUp: AugmentedSubmittable< + ( + providerAccount: Option | null | Uint8Array | AccountId32 | string + ) => SubmittableExtrinsic, + [Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Backup Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Backup Storage Provider. + * - `bsp_id`: The Backup Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the steps of: + * 1. [request_bsp_sign_up](crate::dispatchables::request_bsp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `BspRequestSignUpSuccess` and `BspSignUpSuccess` events when successful. + **/ + forceBspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + bspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array, + weight: Option | null | Uint8Array | u32 | AnyNumber + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, AccountId32, Option] + >; + /** + * Dispatchable extrinsic that allows to forcefully and automatically sing up a Main Storage Provider. + * + * The dispatch origin for this call must be Root. + * The `who` parameter is the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account passed as the `who` parameter. + * + * Parameters: + * - `who`: The account that wants to sign up as a Main Storage Provider. + * - `msp_id`: The Main Storage Provider ID that the account passed as the `who` parameter is requesting to sign up as. + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the steps of: + * 1. [request_msp_sign_up](crate::dispatchables::request_msp_sign_up) + * 2. [confirm_sign_up](crate::dispatchables::confirm_sign_up) + * + * Emits `MspRequestSignUpSuccess` and `MspSignUpSuccess` events when successful. + **/ + forceMspSignUp: AugmentedSubmittable< + ( + who: AccountId32 | string | Uint8Array, + mspId: H256 | string | Uint8Array, + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { identifier?: any; dataLimit?: any; protocols?: any } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [AccountId32, H256, u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to sign off as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign off as a Main Storage Provider. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is registered as a MSP + * 3. Check that the MSP has no storage assigned to it (no buckets or data used by it) + * 4. Update the MSPs storage, removing the signer as an MSP + * 5. Return the deposit to the signer + * 6. Decrement the storage that holds total amount of MSPs currently in the system + * + * Emits `MspSignOffSuccess` event when successful. + **/ + mspSignOff: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatchable extrinsic that allows users to sign up as a Backup Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Backup Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Backup Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a BSP + * + * Emits `BspRequestSignUpSuccess` event when successful. + **/ + requestBspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, AccountId32] + >; + /** + * Dispatchable extrinsic that allows users to request to sign up as a Main Storage Provider. + * + * The dispatch origin for this call must be Signed. + * The origin must be the account that wants to sign up as a Main Storage Provider. + * + * Funds proportional to the capacity requested are reserved (held) from the account. + * + * Parameters: + * - `capacity`: The total amount of data that the Main Storage Provider will be able to store. + * - `multiaddresses`: The vector of multiaddresses that the signer wants to register (according to the + * [Multiaddr spec](https://github.com/multiformats/multiaddr)) + * - `value_prop`: The value proposition that the signer will provide as a Main Storage Provider to + * users and wants to register on-chain. It could be data limits, communication protocols to access the user's + * data, and more. + * + * This extrinsic will perform the following checks and logic: + * 1. Check that the extrinsic was signed and get the signer. + * 2. Check that the signer is not already registered as either a MSP or BSP + * 3. Check that the multiaddress is valid + * 4. Check that the data to be stored is greater than the minimum required by the runtime. + * 5. Calculate how much deposit will the signer have to pay using the amount of data it wants to store + * 6. Check that the signer has enough funds to pay the deposit + * 7. Hold the deposit from the signer + * 8. Update the Sign Up Requests storage to add the signer as requesting to sign up as a MSP + * + * Emits `MspRequestSignUpSuccess` event when successful. + **/ + requestMspSignUp: AugmentedSubmittable< + ( + capacity: u64 | AnyNumber | Uint8Array, + multiaddresses: Vec | (Bytes | string | Uint8Array)[], + valueProp: + | PalletStorageProvidersValueProposition + | { identifier?: any; dataLimit?: any; protocols?: any } + | string + | Uint8Array, + paymentAccount: AccountId32 | string | Uint8Array + ) => SubmittableExtrinsic, + [u64, Vec, PalletStorageProvidersValueProposition, AccountId32] + >; + /** + * Dispatchable extrinsic to slash a _slashable_ Storage Provider. + * + * A Storage Provider is _slashable_ iff it has failed to respond to challenges for providing proofs of storage. + * In the context of the StorageHub protocol, the proofs-dealer pallet marks a Storage Provider as _slashable_ when it fails to respond to challenges. + **/ + slash: AugmentedSubmittable< + (providerId: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + randomness: { + /** + * This inherent that must be included (DispatchClass::Mandatory) at each block saves the latest randomness available from the + * relay chain into a variable that can then be used as a seed for commitments that happened during + * the previous relay chain epoch + **/ + setBabeRandomness: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable< + ( + keys: StorageHubRuntimeSessionKeys | { aura?: any } | string | Uint8Array, + proof: Bytes | string | Uint8Array + ) => SubmittableExtrinsic, + [StorageHubRuntimeSessionKeys, Bytes] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + sudo: { + /** + * Permanently removes the sudo key. + * + * **This cannot be un-done.** + **/ + removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + **/ + setKey: AugmentedSubmittable< + ( + updated: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + **/ + sudo: AugmentedSubmittable< + (call: Call | IMethod | string | Uint8Array) => SubmittableExtrinsic, + [Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoAs: AugmentedSubmittable< + ( + who: + | MultiAddress + | { Id: any } + | { Index: any } + | { Raw: any } + | { Address32: any } + | { Address20: any } + | string + | Uint8Array, + call: Call | IMethod | string | Uint8Array + ) => SubmittableExtrinsic, + [MultiAddress, Call] + >; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoUncheckedWeight: AugmentedSubmittable< + ( + call: Call | IMethod | string | Uint8Array, + weight: SpWeightsWeightV2Weight | { refTime?: any; proofSize?: any } | string | Uint8Array + ) => SubmittableExtrinsic, + [Call, SpWeightsWeightV2Weight] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable< + (codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, + [H256] + >; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable< + ( + prefix: Bytes | string | Uint8Array, + subkeys: u32 | AnyNumber | Uint8Array + ) => SubmittableExtrinsic, + [Bytes, u32] + >; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable< + (keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, + [Vec] + >; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable< + (remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable< + (code: Bytes | string | Uint8Array) => SubmittableExtrinsic, + [Bytes] + >; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable< + (pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u64] + >; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable< + ( + items: + | Vec> + | [Bytes | string | Uint8Array, Bytes | string | Uint8Array][] + ) => SubmittableExtrinsic, + [Vec>] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable< + (now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [Compact] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmpQueue: { + /** + * Resumes all XCM executions for the XCMP queue. + * + * Note that this function doesn't change the status of the in/out bound channels. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.drop_threshold` + **/ + updateDropThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.resume_threshold` + **/ + updateResumeThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.suspend_value` + **/ + updateSuspendThreshold: AugmentedSubmittable< + (updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, + [u32] + >; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/api-augment/src/interfaces/augment-types.ts b/api-augment/src/interfaces/augment-types.ts index 9d7cc47ab..5f11d65bb 100644 --- a/api-augment/src/interfaces/augment-types.ts +++ b/api-augment/src/interfaces/augment-types.ts @@ -1,2631 +1,2628 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/types/types/registry"; - -import type { Data, StorageKey } from "@polkadot/types"; -import type { - BitVec, - Bool, - Bytes, - F32, - F64, - I128, - I16, - I256, - I32, - I64, - I8, - ISize, - Json, - Null, - OptionBool, - Raw, - Text, - Type, - U128, - U16, - U256, - U32, - U64, - U8, - USize, - bool, - f32, - f64, - i128, - i16, - i256, - i32, - i64, - i8, - isize, - u128, - u16, - u256, - u32, - u64, - u8, - usize -} from "@polkadot/types-codec"; -import type { TAssetConversion } from "@polkadot/types/interfaces/assetConversion"; -import type { - AssetApproval, - AssetApprovalKey, - AssetBalance, - AssetDestroyWitness, - AssetDetails, - AssetMetadata, - TAssetBalance, - TAssetDepositBalance -} from "@polkadot/types/interfaces/assets"; -import type { - BlockAttestations, - IncludedBlocks, - MoreAttestations -} from "@polkadot/types/interfaces/attestations"; -import type { RawAuraPreDigest } from "@polkadot/types/interfaces/aura"; -import type { ExtrinsicOrHash, ExtrinsicStatus } from "@polkadot/types/interfaces/author"; -import type { UncleEntryItem } from "@polkadot/types/interfaces/authorship"; -import type { - AllowedSlots, - BabeAuthorityWeight, - BabeBlockWeight, - BabeEpochConfiguration, - BabeEquivocationProof, - BabeGenesisConfiguration, - BabeGenesisConfigurationV1, - BabeWeight, - Epoch, - EpochAuthorship, - MaybeRandomness, - MaybeVrf, - NextConfigDescriptor, - NextConfigDescriptorV1, - OpaqueKeyOwnershipProof, - Randomness, - RawBabePreDigest, - RawBabePreDigestCompat, - RawBabePreDigestPrimary, - RawBabePreDigestPrimaryTo159, - RawBabePreDigestSecondaryPlain, - RawBabePreDigestSecondaryTo159, - RawBabePreDigestSecondaryVRF, - RawBabePreDigestTo159, - SlotNumber, - VrfData, - VrfOutput, - VrfProof -} from "@polkadot/types/interfaces/babe"; -import type { - AccountData, - BalanceLock, - BalanceLockTo212, - BalanceStatus, - Reasons, - ReserveData, - ReserveIdentifier, - VestingSchedule, - WithdrawReasons -} from "@polkadot/types/interfaces/balances"; -import type { - BeefyAuthoritySet, - BeefyCommitment, - BeefyCompactSignedCommitment, - BeefyEquivocationProof, - BeefyId, - BeefyNextAuthoritySet, - BeefyPayload, - BeefyPayloadId, - BeefySignedCommitment, - BeefyVersionedFinalityProof, - BeefyVoteMessage, - MmrRootHash, - ValidatorSet, - ValidatorSetId -} from "@polkadot/types/interfaces/beefy"; -import type { - BenchmarkBatch, - BenchmarkConfig, - BenchmarkList, - BenchmarkMetadata, - BenchmarkParameter, - BenchmarkResult -} from "@polkadot/types/interfaces/benchmark"; -import type { - CheckInherentsResult, - InherentData, - InherentIdentifier -} from "@polkadot/types/interfaces/blockbuilder"; -import type { - BridgeMessageId, - BridgedBlockHash, - BridgedBlockNumber, - BridgedHeader, - CallOrigin, - ChainId, - DeliveredMessages, - DispatchFeePayment, - InboundLaneData, - InboundRelayer, - InitializationData, - LaneId, - MessageData, - MessageKey, - MessageNonce, - MessagesDeliveryProofOf, - MessagesProofOf, - OperatingMode, - OutboundLaneData, - OutboundMessageFee, - OutboundPayload, - Parameter, - RelayerId, - UnrewardedRelayer, - UnrewardedRelayersState -} from "@polkadot/types/interfaces/bridges"; -import type { BlockHash } from "@polkadot/types/interfaces/chain"; -import type { PrefixedStorageKey } from "@polkadot/types/interfaces/childstate"; -import type { StatementKind } from "@polkadot/types/interfaces/claims"; -import type { - CollectiveOrigin, - MemberCount, - ProposalIndex, - Votes, - VotesTo230 -} from "@polkadot/types/interfaces/collective"; -import type { AuthorityId, RawVRFOutput } from "@polkadot/types/interfaces/consensus"; -import type { - AliveContractInfo, - CodeHash, - CodeSource, - CodeUploadRequest, - CodeUploadResult, - CodeUploadResultValue, - ContractCallFlags, - ContractCallRequest, - ContractExecResult, - ContractExecResultOk, - ContractExecResultResult, - ContractExecResultSuccessTo255, - ContractExecResultSuccessTo260, - ContractExecResultTo255, - ContractExecResultTo260, - ContractExecResultTo267, - ContractExecResultU64, - ContractInfo, - ContractInstantiateResult, - ContractInstantiateResultTo267, - ContractInstantiateResultTo299, - ContractInstantiateResultU64, - ContractReturnFlags, - ContractStorageKey, - DeletedContract, - ExecReturnValue, - Gas, - HostFnWeights, - HostFnWeightsTo264, - InstantiateRequest, - InstantiateRequestV1, - InstantiateRequestV2, - InstantiateReturnValue, - InstantiateReturnValueOk, - InstantiateReturnValueTo267, - InstructionWeights, - Limits, - LimitsTo264, - PrefabWasmModule, - RentProjection, - Schedule, - ScheduleTo212, - ScheduleTo258, - ScheduleTo264, - SeedOf, - StorageDeposit, - TombstoneContractInfo, - TrieId -} from "@polkadot/types/interfaces/contracts"; -import type { - ContractConstructorSpecLatest, - ContractConstructorSpecV0, - ContractConstructorSpecV1, - ContractConstructorSpecV2, - ContractConstructorSpecV3, - ContractConstructorSpecV4, - ContractContractSpecV0, - ContractContractSpecV1, - ContractContractSpecV2, - ContractContractSpecV3, - ContractContractSpecV4, - ContractContractSpecV5, - ContractCryptoHasher, - ContractDiscriminant, - ContractDisplayName, - ContractEnvironmentV4, - ContractEventParamSpecLatest, - ContractEventParamSpecV0, - ContractEventParamSpecV2, - ContractEventSpecLatest, - ContractEventSpecV0, - ContractEventSpecV1, - ContractEventSpecV2, - ContractEventSpecV3, - ContractLayoutArray, - ContractLayoutCell, - ContractLayoutEnum, - ContractLayoutHash, - ContractLayoutHashingStrategy, - ContractLayoutKey, - ContractLayoutStruct, - ContractLayoutStructField, - ContractMessageParamSpecLatest, - ContractMessageParamSpecV0, - ContractMessageParamSpecV2, - ContractMessageSpecLatest, - ContractMessageSpecV0, - ContractMessageSpecV1, - ContractMessageSpecV2, - ContractMessageSpecV3, - ContractMetadata, - ContractMetadataLatest, - ContractMetadataV0, - ContractMetadataV1, - ContractMetadataV2, - ContractMetadataV3, - ContractMetadataV4, - ContractMetadataV5, - ContractProject, - ContractProjectContract, - ContractProjectInfo, - ContractProjectSource, - ContractProjectV0, - ContractSelector, - ContractStorageLayout, - ContractTypeSpec -} from "@polkadot/types/interfaces/contractsAbi"; -import type { - FundIndex, - FundInfo, - LastContribution, - TrieIndex -} from "@polkadot/types/interfaces/crowdloan"; -import type { - CollationInfo, - CollationInfoV1, - ConfigData, - MessageId, - OverweightIndex, - PageCounter, - PageIndexData -} from "@polkadot/types/interfaces/cumulus"; -import type { - AccountVote, - AccountVoteSplit, - AccountVoteStandard, - Conviction, - Delegations, - PreimageStatus, - PreimageStatusAvailable, - PriorLock, - PropIndex, - Proposal, - ProxyState, - ReferendumIndex, - ReferendumInfo, - ReferendumInfoFinished, - ReferendumInfoTo239, - ReferendumStatus, - Tally, - Voting, - VotingDelegating, - VotingDirect, - VotingDirectVote -} from "@polkadot/types/interfaces/democracy"; -import type { BlockStats } from "@polkadot/types/interfaces/dev"; -import type { - CallDryRunEffects, - DispatchResultWithPostInfo, - PostDispatchInfo, - XcmDryRunApiError, - XcmDryRunEffects -} from "@polkadot/types/interfaces/dryRunApi"; -import type { - ApprovalFlag, - DefunctVoter, - Renouncing, - SetIndex, - Vote, - VoteIndex, - VoteThreshold, - VoterInfo -} from "@polkadot/types/interfaces/elections"; -import type { CreatedBlock, ImportedAux } from "@polkadot/types/interfaces/engine"; -import type { - BlockV0, - BlockV1, - BlockV2, - EIP1559Transaction, - EIP2930Transaction, - EthAccessList, - EthAccessListItem, - EthAccount, - EthAddress, - EthBlock, - EthBloom, - EthCallRequest, - EthFeeHistory, - EthFilter, - EthFilterAddress, - EthFilterChanges, - EthFilterTopic, - EthFilterTopicEntry, - EthFilterTopicInner, - EthHeader, - EthLog, - EthReceipt, - EthReceiptV0, - EthReceiptV3, - EthRichBlock, - EthRichHeader, - EthStorageProof, - EthSubKind, - EthSubParams, - EthSubResult, - EthSyncInfo, - EthSyncStatus, - EthTransaction, - EthTransactionAction, - EthTransactionCondition, - EthTransactionRequest, - EthTransactionSignature, - EthTransactionStatus, - EthWork, - EthereumAccountId, - EthereumAddress, - EthereumLookupSource, - EthereumSignature, - LegacyTransaction, - TransactionV0, - TransactionV1, - TransactionV2 -} from "@polkadot/types/interfaces/eth"; -import type { - EvmAccount, - EvmCallInfo, - EvmCallInfoV2, - EvmCreateInfo, - EvmCreateInfoV2, - EvmLog, - EvmVicinity, - EvmWeightInfo, - ExitError, - ExitFatal, - ExitReason, - ExitRevert, - ExitSucceed -} from "@polkadot/types/interfaces/evm"; -import type { - AnySignature, - EcdsaSignature, - Ed25519Signature, - Era, - Extrinsic, - ExtrinsicEra, - ExtrinsicPayload, - ExtrinsicPayloadUnknown, - ExtrinsicPayloadV4, - ExtrinsicPayloadV5, - ExtrinsicSignature, - ExtrinsicSignatureV4, - ExtrinsicSignatureV5, - ExtrinsicUnknown, - ExtrinsicV4, - ExtrinsicV5, - ImmortalEra, - MortalEra, - MultiSignature, - Signature, - SignerPayload, - Sr25519Signature -} from "@polkadot/types/interfaces/extrinsics"; -import type { FungiblesAccessError } from "@polkadot/types/interfaces/fungibles"; -import type { - AssetOptions, - Owner, - PermissionLatest, - PermissionVersions, - PermissionsV1 -} from "@polkadot/types/interfaces/genericAsset"; -import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; -import type { - ActiveGilt, - ActiveGiltsTotal, - ActiveIndex, - GiltBid -} from "@polkadot/types/interfaces/gilt"; -import type { - AuthorityIndex, - AuthorityList, - AuthoritySet, - AuthoritySetChange, - AuthoritySetChanges, - AuthorityWeight, - DelayKind, - DelayKindBest, - EncodedFinalityProofs, - ForkTreePendingChange, - ForkTreePendingChangeNode, - GrandpaCommit, - GrandpaEquivocation, - GrandpaEquivocationProof, - GrandpaEquivocationValue, - GrandpaJustification, - GrandpaPrecommit, - GrandpaPrevote, - GrandpaSignedPrecommit, - JustificationNotification, - KeyOwnerProof, - NextAuthority, - PendingChange, - PendingPause, - PendingResume, - Precommits, - Prevotes, - ReportedRoundStates, - RoundState, - SetId, - StoredPendingChange, - StoredState -} from "@polkadot/types/interfaces/grandpa"; -import type { - IdentityFields, - IdentityInfo, - IdentityInfoAdditional, - IdentityInfoTo198, - IdentityJudgement, - RegistrarIndex, - RegistrarInfo, - Registration, - RegistrationJudgement, - RegistrationTo198 -} from "@polkadot/types/interfaces/identity"; -import type { - AuthIndex, - AuthoritySignature, - Heartbeat, - HeartbeatTo244, - OpaqueMultiaddr, - OpaqueNetworkState, - OpaquePeerId -} from "@polkadot/types/interfaces/imOnline"; -import type { CallIndex, LotteryConfig } from "@polkadot/types/interfaces/lottery"; -import type { - CustomMetadata15, - CustomValueMetadata15, - ErrorMetadataLatest, - ErrorMetadataV10, - ErrorMetadataV11, - ErrorMetadataV12, - ErrorMetadataV13, - ErrorMetadataV14, - ErrorMetadataV9, - EventMetadataLatest, - EventMetadataV10, - EventMetadataV11, - EventMetadataV12, - EventMetadataV13, - EventMetadataV14, - EventMetadataV9, - ExtrinsicMetadataLatest, - ExtrinsicMetadataV11, - ExtrinsicMetadataV12, - ExtrinsicMetadataV13, - ExtrinsicMetadataV14, - ExtrinsicMetadataV15, - FunctionArgumentMetadataLatest, - FunctionArgumentMetadataV10, - FunctionArgumentMetadataV11, - FunctionArgumentMetadataV12, - FunctionArgumentMetadataV13, - FunctionArgumentMetadataV14, - FunctionArgumentMetadataV9, - FunctionMetadataLatest, - FunctionMetadataV10, - FunctionMetadataV11, - FunctionMetadataV12, - FunctionMetadataV13, - FunctionMetadataV14, - FunctionMetadataV9, - MetadataAll, - MetadataLatest, - MetadataV10, - MetadataV11, - MetadataV12, - MetadataV13, - MetadataV14, - MetadataV15, - MetadataV9, - ModuleConstantMetadataV10, - ModuleConstantMetadataV11, - ModuleConstantMetadataV12, - ModuleConstantMetadataV13, - ModuleConstantMetadataV9, - ModuleMetadataV10, - ModuleMetadataV11, - ModuleMetadataV12, - ModuleMetadataV13, - ModuleMetadataV9, - OpaqueMetadata, - OuterEnums15, - PalletCallMetadataLatest, - PalletCallMetadataV14, - PalletConstantMetadataLatest, - PalletConstantMetadataV14, - PalletErrorMetadataLatest, - PalletErrorMetadataV14, - PalletEventMetadataLatest, - PalletEventMetadataV14, - PalletMetadataLatest, - PalletMetadataV14, - PalletMetadataV15, - PalletStorageMetadataLatest, - PalletStorageMetadataV14, - PortableType, - PortableTypeV14, - RuntimeApiMetadataLatest, - RuntimeApiMetadataV15, - RuntimeApiMethodMetadataV15, - RuntimeApiMethodParamMetadataV15, - SignedExtensionMetadataLatest, - SignedExtensionMetadataV14, - StorageEntryMetadataLatest, - StorageEntryMetadataV10, - StorageEntryMetadataV11, - StorageEntryMetadataV12, - StorageEntryMetadataV13, - StorageEntryMetadataV14, - StorageEntryMetadataV9, - StorageEntryModifierLatest, - StorageEntryModifierV10, - StorageEntryModifierV11, - StorageEntryModifierV12, - StorageEntryModifierV13, - StorageEntryModifierV14, - StorageEntryModifierV9, - StorageEntryTypeLatest, - StorageEntryTypeV10, - StorageEntryTypeV11, - StorageEntryTypeV12, - StorageEntryTypeV13, - StorageEntryTypeV14, - StorageEntryTypeV9, - StorageHasher, - StorageHasherV10, - StorageHasherV11, - StorageHasherV12, - StorageHasherV13, - StorageHasherV14, - StorageHasherV9, - StorageMetadataV10, - StorageMetadataV11, - StorageMetadataV12, - StorageMetadataV13, - StorageMetadataV9 -} from "@polkadot/types/interfaces/metadata"; -import type { - Mixnode, - MixnodesErr, - SessionPhase, - SessionStatus -} from "@polkadot/types/interfaces/mixnet"; -import type { - MmrBatchProof, - MmrEncodableOpaqueLeaf, - MmrError, - MmrHash, - MmrLeafBatchProof, - MmrLeafIndex, - MmrLeafProof, - MmrNodeIndex, - MmrProof -} from "@polkadot/types/interfaces/mmr"; -import type { NftCollectionId, NftItemId } from "@polkadot/types/interfaces/nfts"; -import type { NpApiError, NpPoolId } from "@polkadot/types/interfaces/nompools"; -import type { StorageKind } from "@polkadot/types/interfaces/offchain"; -import type { - DeferredOffenceOf, - Kind, - OffenceDetails, - Offender, - OpaqueTimeSlot, - ReportIdOf, - Reporter -} from "@polkadot/types/interfaces/offences"; -import type { - AbridgedCandidateReceipt, - AbridgedHostConfiguration, - AbridgedHrmpChannel, - ApprovalVotingParams, - AssignmentId, - AssignmentKind, - AsyncBackingParams, - AttestedCandidate, - AuctionIndex, - AuthorityDiscoveryId, - AvailabilityBitfield, - AvailabilityBitfieldRecord, - BackedCandidate, - BackingState, - Bidder, - BufferedSessionChange, - CandidateCommitments, - CandidateDescriptor, - CandidateEvent, - CandidateHash, - CandidateInfo, - CandidatePendingAvailability, - CandidateReceipt, - CollatorId, - CollatorSignature, - CommittedCandidateReceipt, - Constraints, - CoreAssignment, - CoreIndex, - CoreOccupied, - CoreState, - DisputeLocation, - DisputeProof, - DisputeResult, - DisputeState, - DisputeStatement, - DisputeStatementSet, - DisputesTimeSlot, - DoubleVoteReport, - DownwardMessage, - ExecutorParam, - ExecutorParams, - ExecutorParamsHash, - ExplicitDisputeStatement, - GlobalValidationData, - GlobalValidationSchedule, - GroupIndex, - GroupRotationInfo, - HeadData, - HostConfiguration, - HrmpChannel, - HrmpChannelId, - HrmpOpenChannelRequest, - InboundDownwardMessage, - InboundHrmpLimitations, - InboundHrmpMessage, - InboundHrmpMessages, - IncomingParachain, - IncomingParachainDeploy, - IncomingParachainFixed, - InvalidDisputeStatementKind, - LeasePeriod, - LeasePeriodOf, - LocalValidationData, - MessageIngestionType, - MessageQueueChain, - MessagingStateSnapshot, - MessagingStateSnapshotEgressEntry, - MultiDisputeStatementSet, - NewBidder, - NodeFeatures, - OccupiedCore, - OccupiedCoreAssumption, - OldV1SessionInfo, - OutboundHrmpChannelLimitations, - OutboundHrmpMessage, - ParaGenesisArgs, - ParaId, - ParaInfo, - ParaLifecycle, - ParaPastCodeMeta, - ParaScheduling, - ParaValidatorIndex, - ParachainDispatchOrigin, - ParachainInherentData, - ParachainProposal, - ParachainsInherentData, - ParathreadClaim, - ParathreadClaimQueue, - ParathreadEntry, - PendingSlashes, - PersistedValidationData, - PvfCheckStatement, - PvfExecTimeoutKind, - PvfPrepTimeoutKind, - QueuedParathread, - RegisteredParachainInfo, - RelayBlockNumber, - RelayChainBlockNumber, - RelayChainHash, - RelayHash, - Remark, - ReplacementTimes, - Retriable, - ScheduledCore, - Scheduling, - ScrapedOnChainVotes, - ServiceQuality, - SessionInfo, - SessionInfoValidatorGroup, - SignedAvailabilityBitfield, - SignedAvailabilityBitfields, - SigningContext, - SlashingOffenceKind, - SlotRange, - SlotRange10, - Statement, - SubId, - SystemInherentData, - TransientValidationData, - UpgradeGoAhead, - UpgradeRestriction, - UpwardMessage, - ValidDisputeStatementKind, - ValidationCode, - ValidationCodeHash, - ValidationData, - ValidationDataType, - ValidationFunctionParams, - ValidatorSignature, - ValidityAttestation, - VecInboundHrmpMessage, - WinnersData, - WinnersData10, - WinnersDataTuple, - WinnersDataTuple10, - WinningData, - WinningData10, - WinningDataEntry -} from "@polkadot/types/interfaces/parachains"; -import type { - FeeDetails, - InclusionFee, - RuntimeDispatchInfo, - RuntimeDispatchInfoV1, - RuntimeDispatchInfoV2 -} from "@polkadot/types/interfaces/payment"; -import type { Approvals } from "@polkadot/types/interfaces/poll"; -import type { - ProxyAnnouncement, - ProxyDefinition, - ProxyType -} from "@polkadot/types/interfaces/proxy"; -import type { AccountStatus, AccountValidity } from "@polkadot/types/interfaces/purchase"; -import type { ActiveRecovery, RecoveryConfig } from "@polkadot/types/interfaces/recovery"; -import type { RpcMethods } from "@polkadot/types/interfaces/rpc"; -import type { - AccountId, - AccountId20, - AccountId32, - AccountId33, - AccountIdOf, - AccountIndex, - Address, - AssetId, - Balance, - BalanceOf, - Block, - BlockNumber, - BlockNumberFor, - BlockNumberOf, - Call, - CallHash, - CallHashOf, - ChangesTrieConfiguration, - ChangesTrieSignal, - CodecHash, - Consensus, - ConsensusEngineId, - CrateVersion, - Digest, - DigestItem, - EncodedJustification, - ExtrinsicInclusionMode, - ExtrinsicsWeight, - Fixed128, - Fixed64, - FixedI128, - FixedI64, - FixedU128, - FixedU64, - H1024, - H128, - H160, - H2048, - H256, - H32, - H512, - H64, - Hash, - Header, - HeaderPartial, - I32F32, - Index, - IndicesLookupSource, - Justification, - Justifications, - KeyTypeId, - KeyValue, - LockIdentifier, - LookupSource, - LookupTarget, - ModuleId, - Moment, - MultiAddress, - MultiSigner, - OpaqueCall, - Origin, - OriginCaller, - PalletId, - PalletVersion, - PalletsOrigin, - Pays, - PerU16, - Perbill, - Percent, - Permill, - Perquintill, - Phantom, - PhantomData, - PreRuntime, - Releases, - RuntimeCall, - RuntimeDbWeight, - RuntimeEvent, - Seal, - SealV0, - SignedBlock, - SignedBlockWithJustification, - SignedBlockWithJustifications, - Slot, - SlotDuration, - StorageData, - StorageInfo, - StorageProof, - TransactionInfo, - TransactionLongevity, - TransactionPriority, - TransactionStorageProof, - TransactionTag, - U32F32, - ValidatorId, - ValidatorIdOf, - Weight, - WeightMultiplier, - WeightV0, - WeightV1, - WeightV2 -} from "@polkadot/types/interfaces/runtime"; -import type { - Si0Field, - Si0LookupTypeId, - Si0Path, - Si0Type, - Si0TypeDef, - Si0TypeDefArray, - Si0TypeDefBitSequence, - Si0TypeDefCompact, - Si0TypeDefComposite, - Si0TypeDefPhantom, - Si0TypeDefPrimitive, - Si0TypeDefSequence, - Si0TypeDefTuple, - Si0TypeDefVariant, - Si0TypeParameter, - Si0Variant, - Si1Field, - Si1LookupTypeId, - Si1Path, - Si1Type, - Si1TypeDef, - Si1TypeDefArray, - Si1TypeDefBitSequence, - Si1TypeDefCompact, - Si1TypeDefComposite, - Si1TypeDefPrimitive, - Si1TypeDefSequence, - Si1TypeDefTuple, - Si1TypeDefVariant, - Si1TypeParameter, - Si1Variant, - SiField, - SiLookupTypeId, - SiPath, - SiType, - SiTypeDef, - SiTypeDefArray, - SiTypeDefBitSequence, - SiTypeDefCompact, - SiTypeDefComposite, - SiTypeDefPrimitive, - SiTypeDefSequence, - SiTypeDefTuple, - SiTypeDefVariant, - SiTypeParameter, - SiVariant -} from "@polkadot/types/interfaces/scaleInfo"; -import type { - Period, - Priority, - SchedulePeriod, - SchedulePriority, - Scheduled, - ScheduledTo254, - TaskAddress -} from "@polkadot/types/interfaces/scheduler"; -import type { - BeefyKey, - FullIdentification, - IdentificationTuple, - Keys, - MembershipProof, - SessionIndex, - SessionKeys1, - SessionKeys10, - SessionKeys10B, - SessionKeys2, - SessionKeys3, - SessionKeys4, - SessionKeys5, - SessionKeys6, - SessionKeys6B, - SessionKeys7, - SessionKeys7B, - SessionKeys8, - SessionKeys8B, - SessionKeys9, - SessionKeys9B, - ValidatorCount -} from "@polkadot/types/interfaces/session"; -import type { - Bid, - BidKind, - SocietyJudgement, - SocietyVote, - StrikeCount, - VouchingStatus -} from "@polkadot/types/interfaces/society"; -import type { - ActiveEraInfo, - CompactAssignments, - CompactAssignmentsTo257, - CompactAssignmentsTo265, - CompactAssignmentsWith16, - CompactAssignmentsWith24, - CompactScore, - CompactScoreCompact, - ElectionCompute, - ElectionPhase, - ElectionResult, - ElectionScore, - ElectionSize, - ElectionStatus, - EraIndex, - EraPoints, - EraRewardPoints, - EraRewards, - Exposure, - ExtendedBalance, - Forcing, - IndividualExposure, - KeyType, - MomentOf, - Nominations, - NominatorIndex, - NominatorIndexCompact, - OffchainAccuracy, - OffchainAccuracyCompact, - PhragmenScore, - Points, - RawSolution, - RawSolutionTo265, - RawSolutionWith16, - RawSolutionWith24, - ReadySolution, - RewardDestination, - RewardPoint, - RoundSnapshot, - SeatHolder, - SignedSubmission, - SignedSubmissionOf, - SignedSubmissionTo276, - SlashJournalEntry, - SlashingSpans, - SlashingSpansTo204, - SolutionOrSnapshotSize, - SolutionSupport, - SolutionSupports, - SpanIndex, - SpanRecord, - StakingLedger, - StakingLedgerTo223, - StakingLedgerTo240, - SubmissionIndicesOf, - Supports, - UnappliedSlash, - UnappliedSlashOther, - UnlockChunk, - ValidatorIndex, - ValidatorIndexCompact, - ValidatorPrefs, - ValidatorPrefsTo145, - ValidatorPrefsTo196, - ValidatorPrefsWithBlocked, - ValidatorPrefsWithCommission, - VoteWeight, - Voter -} from "@polkadot/types/interfaces/staking"; -import type { - ApiId, - BlockTrace, - BlockTraceEvent, - BlockTraceEventData, - BlockTraceSpan, - KeyValueOption, - MigrationStatusResult, - ReadProof, - RuntimeVersion, - RuntimeVersionApi, - RuntimeVersionPartial, - RuntimeVersionPre3, - RuntimeVersionPre4, - SpecVersion, - StorageChangeSet, - TraceBlockResponse, - TraceError -} from "@polkadot/types/interfaces/state"; -import type { - StatementStoreInvalidStatement, - StatementStoreStatementSource, - StatementStoreValidStatement -} from "@polkadot/types/interfaces/statement"; -import type { WeightToFeeCoefficient } from "@polkadot/types/interfaces/support"; -import type { - AccountInfo, - AccountInfoWithDualRefCount, - AccountInfoWithProviders, - AccountInfoWithRefCount, - AccountInfoWithRefCountU8, - AccountInfoWithTripleRefCount, - ApplyExtrinsicResult, - ApplyExtrinsicResultPre6, - ArithmeticError, - BlockLength, - BlockWeights, - ChainProperties, - ChainType, - ConsumedWeight, - DigestOf, - DispatchClass, - DispatchError, - DispatchErrorModule, - DispatchErrorModulePre6, - DispatchErrorModuleU8, - DispatchErrorModuleU8a, - DispatchErrorPre6, - DispatchErrorPre6First, - DispatchErrorTo198, - DispatchInfo, - DispatchInfoTo190, - DispatchInfoTo244, - DispatchOutcome, - DispatchOutcomePre6, - DispatchResult, - DispatchResultOf, - DispatchResultTo198, - Event, - EventId, - EventIndex, - EventRecord, - Health, - InvalidTransaction, - Key, - LastRuntimeUpgradeInfo, - NetworkState, - NetworkStatePeerset, - NetworkStatePeersetInfo, - NodeRole, - NotConnectedPeer, - Peer, - PeerEndpoint, - PeerEndpointAddr, - PeerInfo, - PeerPing, - PerDispatchClassU32, - PerDispatchClassWeight, - PerDispatchClassWeightsPerClass, - Phase, - RawOrigin, - RefCount, - RefCountTo259, - SyncState, - SystemOrigin, - TokenError, - TransactionValidityError, - TransactionalError, - UnknownTransaction, - WeightPerClass -} from "@polkadot/types/interfaces/system"; -import type { - Bounty, - BountyIndex, - BountyStatus, - BountyStatusActive, - BountyStatusCuratorProposed, - BountyStatusPendingPayout, - OpenTip, - OpenTipFinderTo225, - OpenTipTip, - OpenTipTo225, - TreasuryProposal -} from "@polkadot/types/interfaces/treasury"; -import type { Multiplier } from "@polkadot/types/interfaces/txpayment"; -import type { - TransactionSource, - TransactionValidity, - ValidTransaction -} from "@polkadot/types/interfaces/txqueue"; -import type { - ClassDetails, - ClassId, - ClassMetadata, - DepositBalance, - DepositBalanceOf, - DestroyWitness, - InstanceDetails, - InstanceId, - InstanceMetadata -} from "@polkadot/types/interfaces/uniques"; -import type { Multisig, Timepoint } from "@polkadot/types/interfaces/utility"; -import type { VestingInfo } from "@polkadot/types/interfaces/vesting"; -import type { - AssetIdV2, - AssetIdV3, - AssetIdV4, - AssetInstance, - AssetInstanceV0, - AssetInstanceV1, - AssetInstanceV2, - AssetInstanceV3, - AssetInstanceV4, - BodyId, - BodyIdV2, - BodyIdV3, - BodyPart, - BodyPartV2, - BodyPartV3, - DoubleEncodedCall, - Fungibility, - FungibilityV0, - FungibilityV1, - FungibilityV2, - FungibilityV3, - FungibilityV4, - InboundStatus, - InstructionV2, - InstructionV3, - InstructionV4, - InteriorMultiLocation, - InteriorMultiLocationV2, - InteriorMultiLocationV3, - Junction, - JunctionV0, - JunctionV1, - JunctionV2, - JunctionV3, - JunctionV4, - Junctions, - JunctionsV1, - JunctionsV2, - JunctionsV3, - JunctionsV4, - MaxPalletNameLen, - MaxPalletsInfo, - MaybeErrorCodeV3, - MultiAsset, - MultiAssetFilter, - MultiAssetFilterV1, - MultiAssetFilterV2, - MultiAssetFilterV3, - MultiAssetFilterV4, - MultiAssetV0, - MultiAssetV1, - MultiAssetV2, - MultiAssetV3, - MultiAssetV4, - MultiAssets, - MultiAssetsV1, - MultiAssetsV2, - MultiAssetsV3, - MultiAssetsV4, - MultiLocation, - MultiLocationV0, - MultiLocationV1, - MultiLocationV2, - MultiLocationV3, - MultiLocationV4, - NetworkId, - NetworkIdV2, - NetworkIdV3, - NetworkIdV4, - OriginKindV0, - OriginKindV1, - OriginKindV2, - OriginKindV3, - OriginKindV4, - OutboundStatus, - Outcome, - OutcomeV4, - PalletInfoV3, - PalletInfoV4, - QueryId, - QueryResponseInfoV3, - QueryResponseInfoV4, - QueryStatus, - QueueConfigData, - Response, - ResponseV0, - ResponseV1, - ResponseV2, - ResponseV2Error, - ResponseV3, - ResponseV3Error, - ResponseV3Result, - ResponseV4, - UncheckedFungibilityV4, - VersionMigrationStage, - VersionV3, - VersionV4, - VersionedMultiAsset, - VersionedMultiAssets, - VersionedMultiLocation, - VersionedResponse, - VersionedXcm, - WeightLimitV2, - WeightLimitV3, - WildFungibility, - WildFungibilityV0, - WildFungibilityV1, - WildFungibilityV2, - WildFungibilityV3, - WildFungibilityV4, - WildMultiAsset, - WildMultiAssetV1, - WildMultiAssetV2, - WildMultiAssetV3, - WildMultiAssetV4, - Xcm, - XcmAssetId, - XcmError, - XcmErrorV0, - XcmErrorV1, - XcmErrorV2, - XcmErrorV3, - XcmErrorV4, - XcmOrderV0, - XcmOrderV1, - XcmOrigin, - XcmOriginKind, - XcmV0, - XcmV1, - XcmV2, - XcmV3, - XcmV4, - XcmVersion, - XcmpMessageFormat -} from "@polkadot/types/interfaces/xcm"; -import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; -import type { Error } from "@polkadot/types/interfaces/xcmRuntimeApi"; -import type { - BackupStorageProvider, - BackupStorageProviderId, - ChunkId, - FileMetadata, - GetBspInfoError, - GetChallengePeriodError, - GetChallengeSeedError, - GetCheckpointChallengesError, - GetFileFromFileStorageResult, - GetLastTickProviderSubmittedProofError, - GetNextDeadlineTickError, - GetUsersWithDebtOverThresholdError, - IncompleteFileStatus, - MainStorageProviderId, - MerklePatriciaRoot, - ProviderId, - QueryAvailableStorageCapacityError, - QueryBspConfirmChunksToProveForFileError, - QueryConfirmChunksToProveForFileError, - QueryEarliestChangeCapacityBlockError, - QueryFileEarliestVolunteerBlockError, - QueryMspConfirmChunksToProveForFileError, - QueryMspIdOfBucketIdError, - QueryStorageProviderCapacityError, - RandomnessOutput, - SaveFileToDisk, - StorageDataUnit, - StorageProviderId, - TrieRemoveMutation -} from "@storagehub/api-augment/interfaces/storagehubclient"; - -declare module "@polkadot/types/types/registry" { - interface InterfaceTypes { - AbridgedCandidateReceipt: AbridgedCandidateReceipt; - AbridgedHostConfiguration: AbridgedHostConfiguration; - AbridgedHrmpChannel: AbridgedHrmpChannel; - AccountData: AccountData; - AccountId: AccountId; - AccountId20: AccountId20; - AccountId32: AccountId32; - AccountId33: AccountId33; - AccountIdOf: AccountIdOf; - AccountIndex: AccountIndex; - AccountInfo: AccountInfo; - AccountInfoWithDualRefCount: AccountInfoWithDualRefCount; - AccountInfoWithProviders: AccountInfoWithProviders; - AccountInfoWithRefCount: AccountInfoWithRefCount; - AccountInfoWithRefCountU8: AccountInfoWithRefCountU8; - AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount; - AccountStatus: AccountStatus; - AccountValidity: AccountValidity; - AccountVote: AccountVote; - AccountVoteSplit: AccountVoteSplit; - AccountVoteStandard: AccountVoteStandard; - ActiveEraInfo: ActiveEraInfo; - ActiveGilt: ActiveGilt; - ActiveGiltsTotal: ActiveGiltsTotal; - ActiveIndex: ActiveIndex; - ActiveRecovery: ActiveRecovery; - Address: Address; - AliveContractInfo: AliveContractInfo; - AllowedSlots: AllowedSlots; - AnySignature: AnySignature; - ApiId: ApiId; - ApplyExtrinsicResult: ApplyExtrinsicResult; - ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6; - ApprovalFlag: ApprovalFlag; - Approvals: Approvals; - ApprovalVotingParams: ApprovalVotingParams; - ArithmeticError: ArithmeticError; - AssetApproval: AssetApproval; - AssetApprovalKey: AssetApprovalKey; - AssetBalance: AssetBalance; - AssetDestroyWitness: AssetDestroyWitness; - AssetDetails: AssetDetails; - AssetId: AssetId; - AssetIdV2: AssetIdV2; - AssetIdV3: AssetIdV3; - AssetIdV4: AssetIdV4; - AssetInstance: AssetInstance; - AssetInstanceV0: AssetInstanceV0; - AssetInstanceV1: AssetInstanceV1; - AssetInstanceV2: AssetInstanceV2; - AssetInstanceV3: AssetInstanceV3; - AssetInstanceV4: AssetInstanceV4; - AssetMetadata: AssetMetadata; - AssetOptions: AssetOptions; - AssignmentId: AssignmentId; - AssignmentKind: AssignmentKind; - AsyncBackingParams: AsyncBackingParams; - AttestedCandidate: AttestedCandidate; - AuctionIndex: AuctionIndex; - AuthIndex: AuthIndex; - AuthorityDiscoveryId: AuthorityDiscoveryId; - AuthorityId: AuthorityId; - AuthorityIndex: AuthorityIndex; - AuthorityList: AuthorityList; - AuthoritySet: AuthoritySet; - AuthoritySetChange: AuthoritySetChange; - AuthoritySetChanges: AuthoritySetChanges; - AuthoritySignature: AuthoritySignature; - AuthorityWeight: AuthorityWeight; - AvailabilityBitfield: AvailabilityBitfield; - AvailabilityBitfieldRecord: AvailabilityBitfieldRecord; - BabeAuthorityWeight: BabeAuthorityWeight; - BabeBlockWeight: BabeBlockWeight; - BabeEpochConfiguration: BabeEpochConfiguration; - BabeEquivocationProof: BabeEquivocationProof; - BabeGenesisConfiguration: BabeGenesisConfiguration; - BabeGenesisConfigurationV1: BabeGenesisConfigurationV1; - BabeWeight: BabeWeight; - BackedCandidate: BackedCandidate; - BackingState: BackingState; - BackupStorageProvider: BackupStorageProvider; - BackupStorageProviderId: BackupStorageProviderId; - Balance: Balance; - BalanceLock: BalanceLock; - BalanceLockTo212: BalanceLockTo212; - BalanceOf: BalanceOf; - BalanceStatus: BalanceStatus; - BeefyAuthoritySet: BeefyAuthoritySet; - BeefyCommitment: BeefyCommitment; - BeefyCompactSignedCommitment: BeefyCompactSignedCommitment; - BeefyEquivocationProof: BeefyEquivocationProof; - BeefyId: BeefyId; - BeefyKey: BeefyKey; - BeefyNextAuthoritySet: BeefyNextAuthoritySet; - BeefyPayload: BeefyPayload; - BeefyPayloadId: BeefyPayloadId; - BeefySignedCommitment: BeefySignedCommitment; - BeefyVersionedFinalityProof: BeefyVersionedFinalityProof; - BeefyVoteMessage: BeefyVoteMessage; - BenchmarkBatch: BenchmarkBatch; - BenchmarkConfig: BenchmarkConfig; - BenchmarkList: BenchmarkList; - BenchmarkMetadata: BenchmarkMetadata; - BenchmarkParameter: BenchmarkParameter; - BenchmarkResult: BenchmarkResult; - Bid: Bid; - Bidder: Bidder; - BidKind: BidKind; - BitVec: BitVec; - Block: Block; - BlockAttestations: BlockAttestations; - BlockHash: BlockHash; - BlockLength: BlockLength; - BlockNumber: BlockNumber; - BlockNumberFor: BlockNumberFor; - BlockNumberOf: BlockNumberOf; - BlockStats: BlockStats; - BlockTrace: BlockTrace; - BlockTraceEvent: BlockTraceEvent; - BlockTraceEventData: BlockTraceEventData; - BlockTraceSpan: BlockTraceSpan; - BlockV0: BlockV0; - BlockV1: BlockV1; - BlockV2: BlockV2; - BlockWeights: BlockWeights; - BodyId: BodyId; - BodyIdV2: BodyIdV2; - BodyIdV3: BodyIdV3; - BodyPart: BodyPart; - BodyPartV2: BodyPartV2; - BodyPartV3: BodyPartV3; - bool: bool; - Bool: Bool; - Bounty: Bounty; - BountyIndex: BountyIndex; - BountyStatus: BountyStatus; - BountyStatusActive: BountyStatusActive; - BountyStatusCuratorProposed: BountyStatusCuratorProposed; - BountyStatusPendingPayout: BountyStatusPendingPayout; - BridgedBlockHash: BridgedBlockHash; - BridgedBlockNumber: BridgedBlockNumber; - BridgedHeader: BridgedHeader; - BridgeMessageId: BridgeMessageId; - BufferedSessionChange: BufferedSessionChange; - Bytes: Bytes; - Call: Call; - CallDryRunEffects: CallDryRunEffects; - CallHash: CallHash; - CallHashOf: CallHashOf; - CallIndex: CallIndex; - CallOrigin: CallOrigin; - CandidateCommitments: CandidateCommitments; - CandidateDescriptor: CandidateDescriptor; - CandidateEvent: CandidateEvent; - CandidateHash: CandidateHash; - CandidateInfo: CandidateInfo; - CandidatePendingAvailability: CandidatePendingAvailability; - CandidateReceipt: CandidateReceipt; - ChainId: ChainId; - ChainProperties: ChainProperties; - ChainType: ChainType; - ChangesTrieConfiguration: ChangesTrieConfiguration; - ChangesTrieSignal: ChangesTrieSignal; - CheckInherentsResult: CheckInherentsResult; - ChunkId: ChunkId; - ClassDetails: ClassDetails; - ClassId: ClassId; - ClassMetadata: ClassMetadata; - CodecHash: CodecHash; - CodeHash: CodeHash; - CodeSource: CodeSource; - CodeUploadRequest: CodeUploadRequest; - CodeUploadResult: CodeUploadResult; - CodeUploadResultValue: CodeUploadResultValue; - CollationInfo: CollationInfo; - CollationInfoV1: CollationInfoV1; - CollatorId: CollatorId; - CollatorSignature: CollatorSignature; - CollectiveOrigin: CollectiveOrigin; - CommittedCandidateReceipt: CommittedCandidateReceipt; - CompactAssignments: CompactAssignments; - CompactAssignmentsTo257: CompactAssignmentsTo257; - CompactAssignmentsTo265: CompactAssignmentsTo265; - CompactAssignmentsWith16: CompactAssignmentsWith16; - CompactAssignmentsWith24: CompactAssignmentsWith24; - CompactScore: CompactScore; - CompactScoreCompact: CompactScoreCompact; - ConfigData: ConfigData; - Consensus: Consensus; - ConsensusEngineId: ConsensusEngineId; - Constraints: Constraints; - ConsumedWeight: ConsumedWeight; - ContractCallFlags: ContractCallFlags; - ContractCallRequest: ContractCallRequest; - ContractConstructorSpecLatest: ContractConstructorSpecLatest; - ContractConstructorSpecV0: ContractConstructorSpecV0; - ContractConstructorSpecV1: ContractConstructorSpecV1; - ContractConstructorSpecV2: ContractConstructorSpecV2; - ContractConstructorSpecV3: ContractConstructorSpecV3; - ContractConstructorSpecV4: ContractConstructorSpecV4; - ContractContractSpecV0: ContractContractSpecV0; - ContractContractSpecV1: ContractContractSpecV1; - ContractContractSpecV2: ContractContractSpecV2; - ContractContractSpecV3: ContractContractSpecV3; - ContractContractSpecV4: ContractContractSpecV4; - ContractContractSpecV5: ContractContractSpecV5; - ContractCryptoHasher: ContractCryptoHasher; - ContractDiscriminant: ContractDiscriminant; - ContractDisplayName: ContractDisplayName; - ContractEnvironmentV4: ContractEnvironmentV4; - ContractEventParamSpecLatest: ContractEventParamSpecLatest; - ContractEventParamSpecV0: ContractEventParamSpecV0; - ContractEventParamSpecV2: ContractEventParamSpecV2; - ContractEventSpecLatest: ContractEventSpecLatest; - ContractEventSpecV0: ContractEventSpecV0; - ContractEventSpecV1: ContractEventSpecV1; - ContractEventSpecV2: ContractEventSpecV2; - ContractEventSpecV3: ContractEventSpecV3; - ContractExecResult: ContractExecResult; - ContractExecResultOk: ContractExecResultOk; - ContractExecResultResult: ContractExecResultResult; - ContractExecResultSuccessTo255: ContractExecResultSuccessTo255; - ContractExecResultSuccessTo260: ContractExecResultSuccessTo260; - ContractExecResultTo255: ContractExecResultTo255; - ContractExecResultTo260: ContractExecResultTo260; - ContractExecResultTo267: ContractExecResultTo267; - ContractExecResultU64: ContractExecResultU64; - ContractInfo: ContractInfo; - ContractInstantiateResult: ContractInstantiateResult; - ContractInstantiateResultTo267: ContractInstantiateResultTo267; - ContractInstantiateResultTo299: ContractInstantiateResultTo299; - ContractInstantiateResultU64: ContractInstantiateResultU64; - ContractLayoutArray: ContractLayoutArray; - ContractLayoutCell: ContractLayoutCell; - ContractLayoutEnum: ContractLayoutEnum; - ContractLayoutHash: ContractLayoutHash; - ContractLayoutHashingStrategy: ContractLayoutHashingStrategy; - ContractLayoutKey: ContractLayoutKey; - ContractLayoutStruct: ContractLayoutStruct; - ContractLayoutStructField: ContractLayoutStructField; - ContractMessageParamSpecLatest: ContractMessageParamSpecLatest; - ContractMessageParamSpecV0: ContractMessageParamSpecV0; - ContractMessageParamSpecV2: ContractMessageParamSpecV2; - ContractMessageSpecLatest: ContractMessageSpecLatest; - ContractMessageSpecV0: ContractMessageSpecV0; - ContractMessageSpecV1: ContractMessageSpecV1; - ContractMessageSpecV2: ContractMessageSpecV2; - ContractMessageSpecV3: ContractMessageSpecV3; - ContractMetadata: ContractMetadata; - ContractMetadataLatest: ContractMetadataLatest; - ContractMetadataV0: ContractMetadataV0; - ContractMetadataV1: ContractMetadataV1; - ContractMetadataV2: ContractMetadataV2; - ContractMetadataV3: ContractMetadataV3; - ContractMetadataV4: ContractMetadataV4; - ContractMetadataV5: ContractMetadataV5; - ContractProject: ContractProject; - ContractProjectContract: ContractProjectContract; - ContractProjectInfo: ContractProjectInfo; - ContractProjectSource: ContractProjectSource; - ContractProjectV0: ContractProjectV0; - ContractReturnFlags: ContractReturnFlags; - ContractSelector: ContractSelector; - ContractStorageKey: ContractStorageKey; - ContractStorageLayout: ContractStorageLayout; - ContractTypeSpec: ContractTypeSpec; - Conviction: Conviction; - CoreAssignment: CoreAssignment; - CoreIndex: CoreIndex; - CoreOccupied: CoreOccupied; - CoreState: CoreState; - CrateVersion: CrateVersion; - CreatedBlock: CreatedBlock; - CustomMetadata15: CustomMetadata15; - CustomValueMetadata15: CustomValueMetadata15; - Data: Data; - DeferredOffenceOf: DeferredOffenceOf; - DefunctVoter: DefunctVoter; - DelayKind: DelayKind; - DelayKindBest: DelayKindBest; - Delegations: Delegations; - DeletedContract: DeletedContract; - DeliveredMessages: DeliveredMessages; - DepositBalance: DepositBalance; - DepositBalanceOf: DepositBalanceOf; - DestroyWitness: DestroyWitness; - Digest: Digest; - DigestItem: DigestItem; - DigestOf: DigestOf; - DispatchClass: DispatchClass; - DispatchError: DispatchError; - DispatchErrorModule: DispatchErrorModule; - DispatchErrorModulePre6: DispatchErrorModulePre6; - DispatchErrorModuleU8: DispatchErrorModuleU8; - DispatchErrorModuleU8a: DispatchErrorModuleU8a; - DispatchErrorPre6: DispatchErrorPre6; - DispatchErrorPre6First: DispatchErrorPre6First; - DispatchErrorTo198: DispatchErrorTo198; - DispatchFeePayment: DispatchFeePayment; - DispatchInfo: DispatchInfo; - DispatchInfoTo190: DispatchInfoTo190; - DispatchInfoTo244: DispatchInfoTo244; - DispatchOutcome: DispatchOutcome; - DispatchOutcomePre6: DispatchOutcomePre6; - DispatchResult: DispatchResult; - DispatchResultOf: DispatchResultOf; - DispatchResultTo198: DispatchResultTo198; - DispatchResultWithPostInfo: DispatchResultWithPostInfo; - DisputeLocation: DisputeLocation; - DisputeProof: DisputeProof; - DisputeResult: DisputeResult; - DisputeState: DisputeState; - DisputeStatement: DisputeStatement; - DisputeStatementSet: DisputeStatementSet; - DisputesTimeSlot: DisputesTimeSlot; - DoubleEncodedCall: DoubleEncodedCall; - DoubleVoteReport: DoubleVoteReport; - DownwardMessage: DownwardMessage; - EcdsaSignature: EcdsaSignature; - Ed25519Signature: Ed25519Signature; - EIP1559Transaction: EIP1559Transaction; - EIP2930Transaction: EIP2930Transaction; - ElectionCompute: ElectionCompute; - ElectionPhase: ElectionPhase; - ElectionResult: ElectionResult; - ElectionScore: ElectionScore; - ElectionSize: ElectionSize; - ElectionStatus: ElectionStatus; - EncodedFinalityProofs: EncodedFinalityProofs; - EncodedJustification: EncodedJustification; - Epoch: Epoch; - EpochAuthorship: EpochAuthorship; - Era: Era; - EraIndex: EraIndex; - EraPoints: EraPoints; - EraRewardPoints: EraRewardPoints; - EraRewards: EraRewards; - Error: Error; - ErrorMetadataLatest: ErrorMetadataLatest; - ErrorMetadataV10: ErrorMetadataV10; - ErrorMetadataV11: ErrorMetadataV11; - ErrorMetadataV12: ErrorMetadataV12; - ErrorMetadataV13: ErrorMetadataV13; - ErrorMetadataV14: ErrorMetadataV14; - ErrorMetadataV9: ErrorMetadataV9; - EthAccessList: EthAccessList; - EthAccessListItem: EthAccessListItem; - EthAccount: EthAccount; - EthAddress: EthAddress; - EthBlock: EthBlock; - EthBloom: EthBloom; - EthCallRequest: EthCallRequest; - EthereumAccountId: EthereumAccountId; - EthereumAddress: EthereumAddress; - EthereumLookupSource: EthereumLookupSource; - EthereumSignature: EthereumSignature; - EthFeeHistory: EthFeeHistory; - EthFilter: EthFilter; - EthFilterAddress: EthFilterAddress; - EthFilterChanges: EthFilterChanges; - EthFilterTopic: EthFilterTopic; - EthFilterTopicEntry: EthFilterTopicEntry; - EthFilterTopicInner: EthFilterTopicInner; - EthHeader: EthHeader; - EthLog: EthLog; - EthReceipt: EthReceipt; - EthReceiptV0: EthReceiptV0; - EthReceiptV3: EthReceiptV3; - EthRichBlock: EthRichBlock; - EthRichHeader: EthRichHeader; - EthStorageProof: EthStorageProof; - EthSubKind: EthSubKind; - EthSubParams: EthSubParams; - EthSubResult: EthSubResult; - EthSyncInfo: EthSyncInfo; - EthSyncStatus: EthSyncStatus; - EthTransaction: EthTransaction; - EthTransactionAction: EthTransactionAction; - EthTransactionCondition: EthTransactionCondition; - EthTransactionRequest: EthTransactionRequest; - EthTransactionSignature: EthTransactionSignature; - EthTransactionStatus: EthTransactionStatus; - EthWork: EthWork; - Event: Event; - EventId: EventId; - EventIndex: EventIndex; - EventMetadataLatest: EventMetadataLatest; - EventMetadataV10: EventMetadataV10; - EventMetadataV11: EventMetadataV11; - EventMetadataV12: EventMetadataV12; - EventMetadataV13: EventMetadataV13; - EventMetadataV14: EventMetadataV14; - EventMetadataV9: EventMetadataV9; - EventRecord: EventRecord; - EvmAccount: EvmAccount; - EvmCallInfo: EvmCallInfo; - EvmCallInfoV2: EvmCallInfoV2; - EvmCreateInfo: EvmCreateInfo; - EvmCreateInfoV2: EvmCreateInfoV2; - EvmLog: EvmLog; - EvmVicinity: EvmVicinity; - EvmWeightInfo: EvmWeightInfo; - ExecReturnValue: ExecReturnValue; - ExecutorParam: ExecutorParam; - ExecutorParams: ExecutorParams; - ExecutorParamsHash: ExecutorParamsHash; - ExitError: ExitError; - ExitFatal: ExitFatal; - ExitReason: ExitReason; - ExitRevert: ExitRevert; - ExitSucceed: ExitSucceed; - ExplicitDisputeStatement: ExplicitDisputeStatement; - Exposure: Exposure; - ExtendedBalance: ExtendedBalance; - Extrinsic: Extrinsic; - ExtrinsicEra: ExtrinsicEra; - ExtrinsicInclusionMode: ExtrinsicInclusionMode; - ExtrinsicMetadataLatest: ExtrinsicMetadataLatest; - ExtrinsicMetadataV11: ExtrinsicMetadataV11; - ExtrinsicMetadataV12: ExtrinsicMetadataV12; - ExtrinsicMetadataV13: ExtrinsicMetadataV13; - ExtrinsicMetadataV14: ExtrinsicMetadataV14; - ExtrinsicMetadataV15: ExtrinsicMetadataV15; - ExtrinsicOrHash: ExtrinsicOrHash; - ExtrinsicPayload: ExtrinsicPayload; - ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; - ExtrinsicPayloadV4: ExtrinsicPayloadV4; - ExtrinsicPayloadV5: ExtrinsicPayloadV5; - ExtrinsicSignature: ExtrinsicSignature; - ExtrinsicSignatureV4: ExtrinsicSignatureV4; - ExtrinsicSignatureV5: ExtrinsicSignatureV5; - ExtrinsicStatus: ExtrinsicStatus; - ExtrinsicsWeight: ExtrinsicsWeight; - ExtrinsicUnknown: ExtrinsicUnknown; - ExtrinsicV4: ExtrinsicV4; - ExtrinsicV5: ExtrinsicV5; - f32: f32; - F32: F32; - f64: f64; - F64: F64; - FeeDetails: FeeDetails; - FileMetadata: FileMetadata; - Fixed128: Fixed128; - Fixed64: Fixed64; - FixedI128: FixedI128; - FixedI64: FixedI64; - FixedU128: FixedU128; - FixedU64: FixedU64; - Forcing: Forcing; - ForkTreePendingChange: ForkTreePendingChange; - ForkTreePendingChangeNode: ForkTreePendingChangeNode; - FullIdentification: FullIdentification; - FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest; - FunctionArgumentMetadataV10: FunctionArgumentMetadataV10; - FunctionArgumentMetadataV11: FunctionArgumentMetadataV11; - FunctionArgumentMetadataV12: FunctionArgumentMetadataV12; - FunctionArgumentMetadataV13: FunctionArgumentMetadataV13; - FunctionArgumentMetadataV14: FunctionArgumentMetadataV14; - FunctionArgumentMetadataV9: FunctionArgumentMetadataV9; - FunctionMetadataLatest: FunctionMetadataLatest; - FunctionMetadataV10: FunctionMetadataV10; - FunctionMetadataV11: FunctionMetadataV11; - FunctionMetadataV12: FunctionMetadataV12; - FunctionMetadataV13: FunctionMetadataV13; - FunctionMetadataV14: FunctionMetadataV14; - FunctionMetadataV9: FunctionMetadataV9; - FundIndex: FundIndex; - FundInfo: FundInfo; - Fungibility: Fungibility; - FungibilityV0: FungibilityV0; - FungibilityV1: FungibilityV1; - FungibilityV2: FungibilityV2; - FungibilityV3: FungibilityV3; - FungibilityV4: FungibilityV4; - FungiblesAccessError: FungiblesAccessError; - Gas: Gas; - GenesisBuildErr: GenesisBuildErr; - GetBspInfoError: GetBspInfoError; - GetChallengePeriodError: GetChallengePeriodError; - GetChallengeSeedError: GetChallengeSeedError; - GetCheckpointChallengesError: GetCheckpointChallengesError; - GetFileFromFileStorageResult: GetFileFromFileStorageResult; - GetLastTickProviderSubmittedProofError: GetLastTickProviderSubmittedProofError; - GetNextDeadlineTickError: GetNextDeadlineTickError; - GetUsersWithDebtOverThresholdError: GetUsersWithDebtOverThresholdError; - GiltBid: GiltBid; - GlobalValidationData: GlobalValidationData; - GlobalValidationSchedule: GlobalValidationSchedule; - GrandpaCommit: GrandpaCommit; - GrandpaEquivocation: GrandpaEquivocation; - GrandpaEquivocationProof: GrandpaEquivocationProof; - GrandpaEquivocationValue: GrandpaEquivocationValue; - GrandpaJustification: GrandpaJustification; - GrandpaPrecommit: GrandpaPrecommit; - GrandpaPrevote: GrandpaPrevote; - GrandpaSignedPrecommit: GrandpaSignedPrecommit; - GroupIndex: GroupIndex; - GroupRotationInfo: GroupRotationInfo; - H1024: H1024; - H128: H128; - H160: H160; - H2048: H2048; - H256: H256; - H32: H32; - H512: H512; - H64: H64; - Hash: Hash; - HeadData: HeadData; - Header: Header; - HeaderPartial: HeaderPartial; - Health: Health; - Heartbeat: Heartbeat; - HeartbeatTo244: HeartbeatTo244; - HostConfiguration: HostConfiguration; - HostFnWeights: HostFnWeights; - HostFnWeightsTo264: HostFnWeightsTo264; - HrmpChannel: HrmpChannel; - HrmpChannelId: HrmpChannelId; - HrmpOpenChannelRequest: HrmpOpenChannelRequest; - i128: i128; - I128: I128; - i16: i16; - I16: I16; - i256: i256; - I256: I256; - i32: i32; - I32: I32; - I32F32: I32F32; - i64: i64; - I64: I64; - i8: i8; - I8: I8; - IdentificationTuple: IdentificationTuple; - IdentityFields: IdentityFields; - IdentityInfo: IdentityInfo; - IdentityInfoAdditional: IdentityInfoAdditional; - IdentityInfoTo198: IdentityInfoTo198; - IdentityJudgement: IdentityJudgement; - ImmortalEra: ImmortalEra; - ImportedAux: ImportedAux; - InboundDownwardMessage: InboundDownwardMessage; - InboundHrmpLimitations: InboundHrmpLimitations; - InboundHrmpMessage: InboundHrmpMessage; - InboundHrmpMessages: InboundHrmpMessages; - InboundLaneData: InboundLaneData; - InboundRelayer: InboundRelayer; - InboundStatus: InboundStatus; - IncludedBlocks: IncludedBlocks; - InclusionFee: InclusionFee; - IncomingParachain: IncomingParachain; - IncomingParachainDeploy: IncomingParachainDeploy; - IncomingParachainFixed: IncomingParachainFixed; - IncompleteFileStatus: IncompleteFileStatus; - Index: Index; - IndicesLookupSource: IndicesLookupSource; - IndividualExposure: IndividualExposure; - InherentData: InherentData; - InherentIdentifier: InherentIdentifier; - InitializationData: InitializationData; - InstanceDetails: InstanceDetails; - InstanceId: InstanceId; - InstanceMetadata: InstanceMetadata; - InstantiateRequest: InstantiateRequest; - InstantiateRequestV1: InstantiateRequestV1; - InstantiateRequestV2: InstantiateRequestV2; - InstantiateReturnValue: InstantiateReturnValue; - InstantiateReturnValueOk: InstantiateReturnValueOk; - InstantiateReturnValueTo267: InstantiateReturnValueTo267; - InstructionV2: InstructionV2; - InstructionV3: InstructionV3; - InstructionV4: InstructionV4; - InstructionWeights: InstructionWeights; - InteriorMultiLocation: InteriorMultiLocation; - InteriorMultiLocationV2: InteriorMultiLocationV2; - InteriorMultiLocationV3: InteriorMultiLocationV3; - InvalidDisputeStatementKind: InvalidDisputeStatementKind; - InvalidTransaction: InvalidTransaction; - isize: isize; - ISize: ISize; - Json: Json; - Junction: Junction; - Junctions: Junctions; - JunctionsV1: JunctionsV1; - JunctionsV2: JunctionsV2; - JunctionsV3: JunctionsV3; - JunctionsV4: JunctionsV4; - JunctionV0: JunctionV0; - JunctionV1: JunctionV1; - JunctionV2: JunctionV2; - JunctionV3: JunctionV3; - JunctionV4: JunctionV4; - Justification: Justification; - JustificationNotification: JustificationNotification; - Justifications: Justifications; - Key: Key; - KeyOwnerProof: KeyOwnerProof; - Keys: Keys; - KeyType: KeyType; - KeyTypeId: KeyTypeId; - KeyValue: KeyValue; - KeyValueOption: KeyValueOption; - Kind: Kind; - LaneId: LaneId; - LastContribution: LastContribution; - LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo; - LeasePeriod: LeasePeriod; - LeasePeriodOf: LeasePeriodOf; - LegacyTransaction: LegacyTransaction; - Limits: Limits; - LimitsTo264: LimitsTo264; - LocalValidationData: LocalValidationData; - LockIdentifier: LockIdentifier; - LookupSource: LookupSource; - LookupTarget: LookupTarget; - LotteryConfig: LotteryConfig; - MainStorageProviderId: MainStorageProviderId; - MaxPalletNameLen: MaxPalletNameLen; - MaxPalletsInfo: MaxPalletsInfo; - MaybeErrorCodeV3: MaybeErrorCodeV3; - MaybeRandomness: MaybeRandomness; - MaybeVrf: MaybeVrf; - MemberCount: MemberCount; - MembershipProof: MembershipProof; - MerklePatriciaRoot: MerklePatriciaRoot; - MessageData: MessageData; - MessageId: MessageId; - MessageIngestionType: MessageIngestionType; - MessageKey: MessageKey; - MessageNonce: MessageNonce; - MessageQueueChain: MessageQueueChain; - MessagesDeliveryProofOf: MessagesDeliveryProofOf; - MessagesProofOf: MessagesProofOf; - MessagingStateSnapshot: MessagingStateSnapshot; - MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry; - MetadataAll: MetadataAll; - MetadataLatest: MetadataLatest; - MetadataV10: MetadataV10; - MetadataV11: MetadataV11; - MetadataV12: MetadataV12; - MetadataV13: MetadataV13; - MetadataV14: MetadataV14; - MetadataV15: MetadataV15; - MetadataV9: MetadataV9; - MigrationStatusResult: MigrationStatusResult; - Mixnode: Mixnode; - MixnodesErr: MixnodesErr; - MmrBatchProof: MmrBatchProof; - MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf; - MmrError: MmrError; - MmrHash: MmrHash; - MmrLeafBatchProof: MmrLeafBatchProof; - MmrLeafIndex: MmrLeafIndex; - MmrLeafProof: MmrLeafProof; - MmrNodeIndex: MmrNodeIndex; - MmrProof: MmrProof; - MmrRootHash: MmrRootHash; - ModuleConstantMetadataV10: ModuleConstantMetadataV10; - ModuleConstantMetadataV11: ModuleConstantMetadataV11; - ModuleConstantMetadataV12: ModuleConstantMetadataV12; - ModuleConstantMetadataV13: ModuleConstantMetadataV13; - ModuleConstantMetadataV9: ModuleConstantMetadataV9; - ModuleId: ModuleId; - ModuleMetadataV10: ModuleMetadataV10; - ModuleMetadataV11: ModuleMetadataV11; - ModuleMetadataV12: ModuleMetadataV12; - ModuleMetadataV13: ModuleMetadataV13; - ModuleMetadataV9: ModuleMetadataV9; - Moment: Moment; - MomentOf: MomentOf; - MoreAttestations: MoreAttestations; - MortalEra: MortalEra; - MultiAddress: MultiAddress; - MultiAsset: MultiAsset; - MultiAssetFilter: MultiAssetFilter; - MultiAssetFilterV1: MultiAssetFilterV1; - MultiAssetFilterV2: MultiAssetFilterV2; - MultiAssetFilterV3: MultiAssetFilterV3; - MultiAssetFilterV4: MultiAssetFilterV4; - MultiAssets: MultiAssets; - MultiAssetsV1: MultiAssetsV1; - MultiAssetsV2: MultiAssetsV2; - MultiAssetsV3: MultiAssetsV3; - MultiAssetsV4: MultiAssetsV4; - MultiAssetV0: MultiAssetV0; - MultiAssetV1: MultiAssetV1; - MultiAssetV2: MultiAssetV2; - MultiAssetV3: MultiAssetV3; - MultiAssetV4: MultiAssetV4; - MultiDisputeStatementSet: MultiDisputeStatementSet; - MultiLocation: MultiLocation; - MultiLocationV0: MultiLocationV0; - MultiLocationV1: MultiLocationV1; - MultiLocationV2: MultiLocationV2; - MultiLocationV3: MultiLocationV3; - MultiLocationV4: MultiLocationV4; - Multiplier: Multiplier; - Multisig: Multisig; - MultiSignature: MultiSignature; - MultiSigner: MultiSigner; - NetworkId: NetworkId; - NetworkIdV2: NetworkIdV2; - NetworkIdV3: NetworkIdV3; - NetworkIdV4: NetworkIdV4; - NetworkState: NetworkState; - NetworkStatePeerset: NetworkStatePeerset; - NetworkStatePeersetInfo: NetworkStatePeersetInfo; - NewBidder: NewBidder; - NextAuthority: NextAuthority; - NextConfigDescriptor: NextConfigDescriptor; - NextConfigDescriptorV1: NextConfigDescriptorV1; - NftCollectionId: NftCollectionId; - NftItemId: NftItemId; - NodeFeatures: NodeFeatures; - NodeRole: NodeRole; - Nominations: Nominations; - NominatorIndex: NominatorIndex; - NominatorIndexCompact: NominatorIndexCompact; - NotConnectedPeer: NotConnectedPeer; - NpApiError: NpApiError; - NpPoolId: NpPoolId; - Null: Null; - OccupiedCore: OccupiedCore; - OccupiedCoreAssumption: OccupiedCoreAssumption; - OffchainAccuracy: OffchainAccuracy; - OffchainAccuracyCompact: OffchainAccuracyCompact; - OffenceDetails: OffenceDetails; - Offender: Offender; - OldV1SessionInfo: OldV1SessionInfo; - OpaqueCall: OpaqueCall; - OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof; - OpaqueMetadata: OpaqueMetadata; - OpaqueMultiaddr: OpaqueMultiaddr; - OpaqueNetworkState: OpaqueNetworkState; - OpaquePeerId: OpaquePeerId; - OpaqueTimeSlot: OpaqueTimeSlot; - OpenTip: OpenTip; - OpenTipFinderTo225: OpenTipFinderTo225; - OpenTipTip: OpenTipTip; - OpenTipTo225: OpenTipTo225; - OperatingMode: OperatingMode; - OptionBool: OptionBool; - Origin: Origin; - OriginCaller: OriginCaller; - OriginKindV0: OriginKindV0; - OriginKindV1: OriginKindV1; - OriginKindV2: OriginKindV2; - OriginKindV3: OriginKindV3; - OriginKindV4: OriginKindV4; - OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; - OutboundHrmpMessage: OutboundHrmpMessage; - OutboundLaneData: OutboundLaneData; - OutboundMessageFee: OutboundMessageFee; - OutboundPayload: OutboundPayload; - OutboundStatus: OutboundStatus; - Outcome: Outcome; - OutcomeV4: OutcomeV4; - OuterEnums15: OuterEnums15; - OverweightIndex: OverweightIndex; - Owner: Owner; - PageCounter: PageCounter; - PageIndexData: PageIndexData; - PalletCallMetadataLatest: PalletCallMetadataLatest; - PalletCallMetadataV14: PalletCallMetadataV14; - PalletConstantMetadataLatest: PalletConstantMetadataLatest; - PalletConstantMetadataV14: PalletConstantMetadataV14; - PalletErrorMetadataLatest: PalletErrorMetadataLatest; - PalletErrorMetadataV14: PalletErrorMetadataV14; - PalletEventMetadataLatest: PalletEventMetadataLatest; - PalletEventMetadataV14: PalletEventMetadataV14; - PalletId: PalletId; - PalletInfoV3: PalletInfoV3; - PalletInfoV4: PalletInfoV4; - PalletMetadataLatest: PalletMetadataLatest; - PalletMetadataV14: PalletMetadataV14; - PalletMetadataV15: PalletMetadataV15; - PalletsOrigin: PalletsOrigin; - PalletStorageMetadataLatest: PalletStorageMetadataLatest; - PalletStorageMetadataV14: PalletStorageMetadataV14; - PalletVersion: PalletVersion; - ParachainDispatchOrigin: ParachainDispatchOrigin; - ParachainInherentData: ParachainInherentData; - ParachainProposal: ParachainProposal; - ParachainsInherentData: ParachainsInherentData; - ParaGenesisArgs: ParaGenesisArgs; - ParaId: ParaId; - ParaInfo: ParaInfo; - ParaLifecycle: ParaLifecycle; - Parameter: Parameter; - ParaPastCodeMeta: ParaPastCodeMeta; - ParaScheduling: ParaScheduling; - ParathreadClaim: ParathreadClaim; - ParathreadClaimQueue: ParathreadClaimQueue; - ParathreadEntry: ParathreadEntry; - ParaValidatorIndex: ParaValidatorIndex; - Pays: Pays; - Peer: Peer; - PeerEndpoint: PeerEndpoint; - PeerEndpointAddr: PeerEndpointAddr; - PeerInfo: PeerInfo; - PeerPing: PeerPing; - PendingChange: PendingChange; - PendingPause: PendingPause; - PendingResume: PendingResume; - PendingSlashes: PendingSlashes; - Perbill: Perbill; - Percent: Percent; - PerDispatchClassU32: PerDispatchClassU32; - PerDispatchClassWeight: PerDispatchClassWeight; - PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass; - Period: Period; - Permill: Permill; - PermissionLatest: PermissionLatest; - PermissionsV1: PermissionsV1; - PermissionVersions: PermissionVersions; - Perquintill: Perquintill; - PersistedValidationData: PersistedValidationData; - PerU16: PerU16; - Phantom: Phantom; - PhantomData: PhantomData; - Phase: Phase; - PhragmenScore: PhragmenScore; - Points: Points; - PortableType: PortableType; - PortableTypeV14: PortableTypeV14; - PostDispatchInfo: PostDispatchInfo; - Precommits: Precommits; - PrefabWasmModule: PrefabWasmModule; - PrefixedStorageKey: PrefixedStorageKey; - PreimageStatus: PreimageStatus; - PreimageStatusAvailable: PreimageStatusAvailable; - PreRuntime: PreRuntime; - Prevotes: Prevotes; - Priority: Priority; - PriorLock: PriorLock; - PropIndex: PropIndex; - Proposal: Proposal; - ProposalIndex: ProposalIndex; - ProviderId: ProviderId; - ProxyAnnouncement: ProxyAnnouncement; - ProxyDefinition: ProxyDefinition; - ProxyState: ProxyState; - ProxyType: ProxyType; - PvfCheckStatement: PvfCheckStatement; - PvfExecTimeoutKind: PvfExecTimeoutKind; - PvfPrepTimeoutKind: PvfPrepTimeoutKind; - QueryAvailableStorageCapacityError: QueryAvailableStorageCapacityError; - QueryBspConfirmChunksToProveForFileError: QueryBspConfirmChunksToProveForFileError; - QueryConfirmChunksToProveForFileError: QueryConfirmChunksToProveForFileError; - QueryEarliestChangeCapacityBlockError: QueryEarliestChangeCapacityBlockError; - QueryFileEarliestVolunteerBlockError: QueryFileEarliestVolunteerBlockError; - QueryId: QueryId; -<<<<<<< HEAD - QueryResponseInfoV3: QueryResponseInfoV3; - QueryResponseInfoV4: QueryResponseInfoV4; -======= - QueryMspConfirmChunksToProveForFileError: QueryMspConfirmChunksToProveForFileError; - QueryMspIdOfBucketIdError: QueryMspIdOfBucketIdError; ->>>>>>> main - QueryStatus: QueryStatus; - QueryStorageProviderCapacityError: QueryStorageProviderCapacityError; - QueueConfigData: QueueConfigData; - QueuedParathread: QueuedParathread; - Randomness: Randomness; - RandomnessOutput: RandomnessOutput; - Raw: Raw; - RawAuraPreDigest: RawAuraPreDigest; - RawBabePreDigest: RawBabePreDigest; - RawBabePreDigestCompat: RawBabePreDigestCompat; - RawBabePreDigestPrimary: RawBabePreDigestPrimary; - RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159; - RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain; - RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159; - RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF; - RawBabePreDigestTo159: RawBabePreDigestTo159; - RawOrigin: RawOrigin; - RawSolution: RawSolution; - RawSolutionTo265: RawSolutionTo265; - RawSolutionWith16: RawSolutionWith16; - RawSolutionWith24: RawSolutionWith24; - RawVRFOutput: RawVRFOutput; - ReadProof: ReadProof; - ReadySolution: ReadySolution; - Reasons: Reasons; - RecoveryConfig: RecoveryConfig; - RefCount: RefCount; - RefCountTo259: RefCountTo259; - ReferendumIndex: ReferendumIndex; - ReferendumInfo: ReferendumInfo; - ReferendumInfoFinished: ReferendumInfoFinished; - ReferendumInfoTo239: ReferendumInfoTo239; - ReferendumStatus: ReferendumStatus; - RegisteredParachainInfo: RegisteredParachainInfo; - RegistrarIndex: RegistrarIndex; - RegistrarInfo: RegistrarInfo; - Registration: Registration; - RegistrationJudgement: RegistrationJudgement; - RegistrationTo198: RegistrationTo198; - RelayBlockNumber: RelayBlockNumber; - RelayChainBlockNumber: RelayChainBlockNumber; - RelayChainHash: RelayChainHash; - RelayerId: RelayerId; - RelayHash: RelayHash; - Releases: Releases; - Remark: Remark; - Renouncing: Renouncing; - RentProjection: RentProjection; - ReplacementTimes: ReplacementTimes; - ReportedRoundStates: ReportedRoundStates; - Reporter: Reporter; - ReportIdOf: ReportIdOf; - ReserveData: ReserveData; - ReserveIdentifier: ReserveIdentifier; - Response: Response; - ResponseV0: ResponseV0; - ResponseV1: ResponseV1; - ResponseV2: ResponseV2; - ResponseV2Error: ResponseV2Error; - ResponseV3: ResponseV3; - ResponseV3Error: ResponseV3Error; - ResponseV3Result: ResponseV3Result; - ResponseV4: ResponseV4; - Retriable: Retriable; - RewardDestination: RewardDestination; - RewardPoint: RewardPoint; - RoundSnapshot: RoundSnapshot; - RoundState: RoundState; - RpcMethods: RpcMethods; - RuntimeApiMetadataLatest: RuntimeApiMetadataLatest; - RuntimeApiMetadataV15: RuntimeApiMetadataV15; - RuntimeApiMethodMetadataV15: RuntimeApiMethodMetadataV15; - RuntimeApiMethodParamMetadataV15: RuntimeApiMethodParamMetadataV15; - RuntimeCall: RuntimeCall; - RuntimeDbWeight: RuntimeDbWeight; - RuntimeDispatchInfo: RuntimeDispatchInfo; - RuntimeDispatchInfoV1: RuntimeDispatchInfoV1; - RuntimeDispatchInfoV2: RuntimeDispatchInfoV2; - RuntimeEvent: RuntimeEvent; - RuntimeVersion: RuntimeVersion; - RuntimeVersionApi: RuntimeVersionApi; - RuntimeVersionPartial: RuntimeVersionPartial; - RuntimeVersionPre3: RuntimeVersionPre3; - RuntimeVersionPre4: RuntimeVersionPre4; - SaveFileToDisk: SaveFileToDisk; - Schedule: Schedule; - Scheduled: Scheduled; - ScheduledCore: ScheduledCore; - ScheduledTo254: ScheduledTo254; - SchedulePeriod: SchedulePeriod; - SchedulePriority: SchedulePriority; - ScheduleTo212: ScheduleTo212; - ScheduleTo258: ScheduleTo258; - ScheduleTo264: ScheduleTo264; - Scheduling: Scheduling; - ScrapedOnChainVotes: ScrapedOnChainVotes; - Seal: Seal; - SealV0: SealV0; - SeatHolder: SeatHolder; - SeedOf: SeedOf; - ServiceQuality: ServiceQuality; - SessionIndex: SessionIndex; - SessionInfo: SessionInfo; - SessionInfoValidatorGroup: SessionInfoValidatorGroup; - SessionKeys1: SessionKeys1; - SessionKeys10: SessionKeys10; - SessionKeys10B: SessionKeys10B; - SessionKeys2: SessionKeys2; - SessionKeys3: SessionKeys3; - SessionKeys4: SessionKeys4; - SessionKeys5: SessionKeys5; - SessionKeys6: SessionKeys6; - SessionKeys6B: SessionKeys6B; - SessionKeys7: SessionKeys7; - SessionKeys7B: SessionKeys7B; - SessionKeys8: SessionKeys8; - SessionKeys8B: SessionKeys8B; - SessionKeys9: SessionKeys9; - SessionKeys9B: SessionKeys9B; - SessionPhase: SessionPhase; - SessionStatus: SessionStatus; - SetId: SetId; - SetIndex: SetIndex; - Si0Field: Si0Field; - Si0LookupTypeId: Si0LookupTypeId; - Si0Path: Si0Path; - Si0Type: Si0Type; - Si0TypeDef: Si0TypeDef; - Si0TypeDefArray: Si0TypeDefArray; - Si0TypeDefBitSequence: Si0TypeDefBitSequence; - Si0TypeDefCompact: Si0TypeDefCompact; - Si0TypeDefComposite: Si0TypeDefComposite; - Si0TypeDefPhantom: Si0TypeDefPhantom; - Si0TypeDefPrimitive: Si0TypeDefPrimitive; - Si0TypeDefSequence: Si0TypeDefSequence; - Si0TypeDefTuple: Si0TypeDefTuple; - Si0TypeDefVariant: Si0TypeDefVariant; - Si0TypeParameter: Si0TypeParameter; - Si0Variant: Si0Variant; - Si1Field: Si1Field; - Si1LookupTypeId: Si1LookupTypeId; - Si1Path: Si1Path; - Si1Type: Si1Type; - Si1TypeDef: Si1TypeDef; - Si1TypeDefArray: Si1TypeDefArray; - Si1TypeDefBitSequence: Si1TypeDefBitSequence; - Si1TypeDefCompact: Si1TypeDefCompact; - Si1TypeDefComposite: Si1TypeDefComposite; - Si1TypeDefPrimitive: Si1TypeDefPrimitive; - Si1TypeDefSequence: Si1TypeDefSequence; - Si1TypeDefTuple: Si1TypeDefTuple; - Si1TypeDefVariant: Si1TypeDefVariant; - Si1TypeParameter: Si1TypeParameter; - Si1Variant: Si1Variant; - SiField: SiField; - Signature: Signature; - SignedAvailabilityBitfield: SignedAvailabilityBitfield; - SignedAvailabilityBitfields: SignedAvailabilityBitfields; - SignedBlock: SignedBlock; - SignedBlockWithJustification: SignedBlockWithJustification; - SignedBlockWithJustifications: SignedBlockWithJustifications; - SignedExtensionMetadataLatest: SignedExtensionMetadataLatest; - SignedExtensionMetadataV14: SignedExtensionMetadataV14; - SignedSubmission: SignedSubmission; - SignedSubmissionOf: SignedSubmissionOf; - SignedSubmissionTo276: SignedSubmissionTo276; - SignerPayload: SignerPayload; - SigningContext: SigningContext; - SiLookupTypeId: SiLookupTypeId; - SiPath: SiPath; - SiType: SiType; - SiTypeDef: SiTypeDef; - SiTypeDefArray: SiTypeDefArray; - SiTypeDefBitSequence: SiTypeDefBitSequence; - SiTypeDefCompact: SiTypeDefCompact; - SiTypeDefComposite: SiTypeDefComposite; - SiTypeDefPrimitive: SiTypeDefPrimitive; - SiTypeDefSequence: SiTypeDefSequence; - SiTypeDefTuple: SiTypeDefTuple; - SiTypeDefVariant: SiTypeDefVariant; - SiTypeParameter: SiTypeParameter; - SiVariant: SiVariant; - SlashingOffenceKind: SlashingOffenceKind; - SlashingSpans: SlashingSpans; - SlashingSpansTo204: SlashingSpansTo204; - SlashJournalEntry: SlashJournalEntry; - Slot: Slot; - SlotDuration: SlotDuration; - SlotNumber: SlotNumber; - SlotRange: SlotRange; - SlotRange10: SlotRange10; - SocietyJudgement: SocietyJudgement; - SocietyVote: SocietyVote; - SolutionOrSnapshotSize: SolutionOrSnapshotSize; - SolutionSupport: SolutionSupport; - SolutionSupports: SolutionSupports; - SpanIndex: SpanIndex; - SpanRecord: SpanRecord; - SpecVersion: SpecVersion; - Sr25519Signature: Sr25519Signature; - StakingLedger: StakingLedger; - StakingLedgerTo223: StakingLedgerTo223; - StakingLedgerTo240: StakingLedgerTo240; - Statement: Statement; - StatementKind: StatementKind; - StatementStoreInvalidStatement: StatementStoreInvalidStatement; - StatementStoreStatementSource: StatementStoreStatementSource; - StatementStoreValidStatement: StatementStoreValidStatement; - StorageChangeSet: StorageChangeSet; - StorageData: StorageData; - StorageDataUnit: StorageDataUnit; - StorageDeposit: StorageDeposit; - StorageEntryMetadataLatest: StorageEntryMetadataLatest; - StorageEntryMetadataV10: StorageEntryMetadataV10; - StorageEntryMetadataV11: StorageEntryMetadataV11; - StorageEntryMetadataV12: StorageEntryMetadataV12; - StorageEntryMetadataV13: StorageEntryMetadataV13; - StorageEntryMetadataV14: StorageEntryMetadataV14; - StorageEntryMetadataV9: StorageEntryMetadataV9; - StorageEntryModifierLatest: StorageEntryModifierLatest; - StorageEntryModifierV10: StorageEntryModifierV10; - StorageEntryModifierV11: StorageEntryModifierV11; - StorageEntryModifierV12: StorageEntryModifierV12; - StorageEntryModifierV13: StorageEntryModifierV13; - StorageEntryModifierV14: StorageEntryModifierV14; - StorageEntryModifierV9: StorageEntryModifierV9; - StorageEntryTypeLatest: StorageEntryTypeLatest; - StorageEntryTypeV10: StorageEntryTypeV10; - StorageEntryTypeV11: StorageEntryTypeV11; - StorageEntryTypeV12: StorageEntryTypeV12; - StorageEntryTypeV13: StorageEntryTypeV13; - StorageEntryTypeV14: StorageEntryTypeV14; - StorageEntryTypeV9: StorageEntryTypeV9; - StorageHasher: StorageHasher; - StorageHasherV10: StorageHasherV10; - StorageHasherV11: StorageHasherV11; - StorageHasherV12: StorageHasherV12; - StorageHasherV13: StorageHasherV13; - StorageHasherV14: StorageHasherV14; - StorageHasherV9: StorageHasherV9; - StorageInfo: StorageInfo; - StorageKey: StorageKey; - StorageKind: StorageKind; - StorageMetadataV10: StorageMetadataV10; - StorageMetadataV11: StorageMetadataV11; - StorageMetadataV12: StorageMetadataV12; - StorageMetadataV13: StorageMetadataV13; - StorageMetadataV9: StorageMetadataV9; - StorageProof: StorageProof; - StorageProviderId: StorageProviderId; - StoredPendingChange: StoredPendingChange; - StoredState: StoredState; - StrikeCount: StrikeCount; - SubId: SubId; - SubmissionIndicesOf: SubmissionIndicesOf; - Supports: Supports; - SyncState: SyncState; - SystemInherentData: SystemInherentData; - SystemOrigin: SystemOrigin; - Tally: Tally; - TaskAddress: TaskAddress; - TAssetBalance: TAssetBalance; - TAssetConversion: TAssetConversion; - TAssetDepositBalance: TAssetDepositBalance; - Text: Text; - Timepoint: Timepoint; - TokenError: TokenError; - TombstoneContractInfo: TombstoneContractInfo; - TraceBlockResponse: TraceBlockResponse; - TraceError: TraceError; - TransactionalError: TransactionalError; - TransactionInfo: TransactionInfo; - TransactionLongevity: TransactionLongevity; - TransactionPriority: TransactionPriority; - TransactionSource: TransactionSource; - TransactionStorageProof: TransactionStorageProof; - TransactionTag: TransactionTag; - TransactionV0: TransactionV0; - TransactionV1: TransactionV1; - TransactionV2: TransactionV2; - TransactionValidity: TransactionValidity; - TransactionValidityError: TransactionValidityError; - TransientValidationData: TransientValidationData; - TreasuryProposal: TreasuryProposal; - TrieId: TrieId; - TrieIndex: TrieIndex; - TrieRemoveMutation: TrieRemoveMutation; - Type: Type; - u128: u128; - U128: U128; - u16: u16; - U16: U16; - u256: u256; - U256: U256; - u32: u32; - U32: U32; - U32F32: U32F32; - u64: u64; - U64: U64; - u8: u8; - U8: U8; - UnappliedSlash: UnappliedSlash; - UnappliedSlashOther: UnappliedSlashOther; - UncheckedFungibilityV4: UncheckedFungibilityV4; - UncleEntryItem: UncleEntryItem; - UnknownTransaction: UnknownTransaction; - UnlockChunk: UnlockChunk; - UnrewardedRelayer: UnrewardedRelayer; - UnrewardedRelayersState: UnrewardedRelayersState; - UpgradeGoAhead: UpgradeGoAhead; - UpgradeRestriction: UpgradeRestriction; - UpwardMessage: UpwardMessage; - usize: usize; - USize: USize; - ValidationCode: ValidationCode; - ValidationCodeHash: ValidationCodeHash; - ValidationData: ValidationData; - ValidationDataType: ValidationDataType; - ValidationFunctionParams: ValidationFunctionParams; - ValidatorCount: ValidatorCount; - ValidatorId: ValidatorId; - ValidatorIdOf: ValidatorIdOf; - ValidatorIndex: ValidatorIndex; - ValidatorIndexCompact: ValidatorIndexCompact; - ValidatorPrefs: ValidatorPrefs; - ValidatorPrefsTo145: ValidatorPrefsTo145; - ValidatorPrefsTo196: ValidatorPrefsTo196; - ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked; - ValidatorPrefsWithCommission: ValidatorPrefsWithCommission; - ValidatorSet: ValidatorSet; - ValidatorSetId: ValidatorSetId; - ValidatorSignature: ValidatorSignature; - ValidDisputeStatementKind: ValidDisputeStatementKind; - ValidityAttestation: ValidityAttestation; - ValidTransaction: ValidTransaction; - VecInboundHrmpMessage: VecInboundHrmpMessage; - VersionedMultiAsset: VersionedMultiAsset; - VersionedMultiAssets: VersionedMultiAssets; - VersionedMultiLocation: VersionedMultiLocation; - VersionedResponse: VersionedResponse; - VersionedXcm: VersionedXcm; - VersionMigrationStage: VersionMigrationStage; - VersionV3: VersionV3; - VersionV4: VersionV4; - VestingInfo: VestingInfo; - VestingSchedule: VestingSchedule; - Vote: Vote; - VoteIndex: VoteIndex; - Voter: Voter; - VoterInfo: VoterInfo; - Votes: Votes; - VotesTo230: VotesTo230; - VoteThreshold: VoteThreshold; - VoteWeight: VoteWeight; - Voting: Voting; - VotingDelegating: VotingDelegating; - VotingDirect: VotingDirect; - VotingDirectVote: VotingDirectVote; - VouchingStatus: VouchingStatus; - VrfData: VrfData; - VrfOutput: VrfOutput; - VrfProof: VrfProof; - Weight: Weight; - WeightLimitV2: WeightLimitV2; - WeightLimitV3: WeightLimitV3; - WeightMultiplier: WeightMultiplier; - WeightPerClass: WeightPerClass; - WeightToFeeCoefficient: WeightToFeeCoefficient; - WeightV0: WeightV0; - WeightV1: WeightV1; - WeightV2: WeightV2; - WildFungibility: WildFungibility; - WildFungibilityV0: WildFungibilityV0; - WildFungibilityV1: WildFungibilityV1; - WildFungibilityV2: WildFungibilityV2; - WildFungibilityV3: WildFungibilityV3; - WildFungibilityV4: WildFungibilityV4; - WildMultiAsset: WildMultiAsset; - WildMultiAssetV1: WildMultiAssetV1; - WildMultiAssetV2: WildMultiAssetV2; - WildMultiAssetV3: WildMultiAssetV3; - WildMultiAssetV4: WildMultiAssetV4; - WinnersData: WinnersData; - WinnersData10: WinnersData10; - WinnersDataTuple: WinnersDataTuple; - WinnersDataTuple10: WinnersDataTuple10; - WinningData: WinningData; - WinningData10: WinningData10; - WinningDataEntry: WinningDataEntry; - WithdrawReasons: WithdrawReasons; - Xcm: Xcm; - XcmAssetId: XcmAssetId; - XcmDryRunApiError: XcmDryRunApiError; - XcmDryRunEffects: XcmDryRunEffects; - XcmError: XcmError; - XcmErrorV0: XcmErrorV0; - XcmErrorV1: XcmErrorV1; - XcmErrorV2: XcmErrorV2; - XcmErrorV3: XcmErrorV3; - XcmErrorV4: XcmErrorV4; - XcmOrderV0: XcmOrderV0; - XcmOrderV1: XcmOrderV1; - XcmOrigin: XcmOrigin; - XcmOriginKind: XcmOriginKind; - XcmPaymentApiError: XcmPaymentApiError; - XcmpMessageFormat: XcmpMessageFormat; - XcmV0: XcmV0; - XcmV1: XcmV1; - XcmV2: XcmV2; - XcmV3: XcmV3; - XcmV4: XcmV4; - XcmVersion: XcmVersion; - } // InterfaceTypes -} // declare module +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/types/types/registry"; + +import type { Data, StorageKey } from "@polkadot/types"; +import type { + BitVec, + Bool, + Bytes, + F32, + F64, + I128, + I16, + I256, + I32, + I64, + I8, + ISize, + Json, + Null, + OptionBool, + Raw, + Text, + Type, + U128, + U16, + U256, + U32, + U64, + U8, + USize, + bool, + f32, + f64, + i128, + i16, + i256, + i32, + i64, + i8, + isize, + u128, + u16, + u256, + u32, + u64, + u8, + usize +} from "@polkadot/types-codec"; +import type { TAssetConversion } from "@polkadot/types/interfaces/assetConversion"; +import type { + AssetApproval, + AssetApprovalKey, + AssetBalance, + AssetDestroyWitness, + AssetDetails, + AssetMetadata, + TAssetBalance, + TAssetDepositBalance +} from "@polkadot/types/interfaces/assets"; +import type { + BlockAttestations, + IncludedBlocks, + MoreAttestations +} from "@polkadot/types/interfaces/attestations"; +import type { RawAuraPreDigest } from "@polkadot/types/interfaces/aura"; +import type { ExtrinsicOrHash, ExtrinsicStatus } from "@polkadot/types/interfaces/author"; +import type { UncleEntryItem } from "@polkadot/types/interfaces/authorship"; +import type { + AllowedSlots, + BabeAuthorityWeight, + BabeBlockWeight, + BabeEpochConfiguration, + BabeEquivocationProof, + BabeGenesisConfiguration, + BabeGenesisConfigurationV1, + BabeWeight, + Epoch, + EpochAuthorship, + MaybeRandomness, + MaybeVrf, + NextConfigDescriptor, + NextConfigDescriptorV1, + OpaqueKeyOwnershipProof, + Randomness, + RawBabePreDigest, + RawBabePreDigestCompat, + RawBabePreDigestPrimary, + RawBabePreDigestPrimaryTo159, + RawBabePreDigestSecondaryPlain, + RawBabePreDigestSecondaryTo159, + RawBabePreDigestSecondaryVRF, + RawBabePreDigestTo159, + SlotNumber, + VrfData, + VrfOutput, + VrfProof +} from "@polkadot/types/interfaces/babe"; +import type { + AccountData, + BalanceLock, + BalanceLockTo212, + BalanceStatus, + Reasons, + ReserveData, + ReserveIdentifier, + VestingSchedule, + WithdrawReasons +} from "@polkadot/types/interfaces/balances"; +import type { + BeefyAuthoritySet, + BeefyCommitment, + BeefyCompactSignedCommitment, + BeefyEquivocationProof, + BeefyId, + BeefyNextAuthoritySet, + BeefyPayload, + BeefyPayloadId, + BeefySignedCommitment, + BeefyVersionedFinalityProof, + BeefyVoteMessage, + MmrRootHash, + ValidatorSet, + ValidatorSetId +} from "@polkadot/types/interfaces/beefy"; +import type { + BenchmarkBatch, + BenchmarkConfig, + BenchmarkList, + BenchmarkMetadata, + BenchmarkParameter, + BenchmarkResult +} from "@polkadot/types/interfaces/benchmark"; +import type { + CheckInherentsResult, + InherentData, + InherentIdentifier +} from "@polkadot/types/interfaces/blockbuilder"; +import type { + BridgeMessageId, + BridgedBlockHash, + BridgedBlockNumber, + BridgedHeader, + CallOrigin, + ChainId, + DeliveredMessages, + DispatchFeePayment, + InboundLaneData, + InboundRelayer, + InitializationData, + LaneId, + MessageData, + MessageKey, + MessageNonce, + MessagesDeliveryProofOf, + MessagesProofOf, + OperatingMode, + OutboundLaneData, + OutboundMessageFee, + OutboundPayload, + Parameter, + RelayerId, + UnrewardedRelayer, + UnrewardedRelayersState +} from "@polkadot/types/interfaces/bridges"; +import type { BlockHash } from "@polkadot/types/interfaces/chain"; +import type { PrefixedStorageKey } from "@polkadot/types/interfaces/childstate"; +import type { StatementKind } from "@polkadot/types/interfaces/claims"; +import type { + CollectiveOrigin, + MemberCount, + ProposalIndex, + Votes, + VotesTo230 +} from "@polkadot/types/interfaces/collective"; +import type { AuthorityId, RawVRFOutput } from "@polkadot/types/interfaces/consensus"; +import type { + AliveContractInfo, + CodeHash, + CodeSource, + CodeUploadRequest, + CodeUploadResult, + CodeUploadResultValue, + ContractCallFlags, + ContractCallRequest, + ContractExecResult, + ContractExecResultOk, + ContractExecResultResult, + ContractExecResultSuccessTo255, + ContractExecResultSuccessTo260, + ContractExecResultTo255, + ContractExecResultTo260, + ContractExecResultTo267, + ContractExecResultU64, + ContractInfo, + ContractInstantiateResult, + ContractInstantiateResultTo267, + ContractInstantiateResultTo299, + ContractInstantiateResultU64, + ContractReturnFlags, + ContractStorageKey, + DeletedContract, + ExecReturnValue, + Gas, + HostFnWeights, + HostFnWeightsTo264, + InstantiateRequest, + InstantiateRequestV1, + InstantiateRequestV2, + InstantiateReturnValue, + InstantiateReturnValueOk, + InstantiateReturnValueTo267, + InstructionWeights, + Limits, + LimitsTo264, + PrefabWasmModule, + RentProjection, + Schedule, + ScheduleTo212, + ScheduleTo258, + ScheduleTo264, + SeedOf, + StorageDeposit, + TombstoneContractInfo, + TrieId +} from "@polkadot/types/interfaces/contracts"; +import type { + ContractConstructorSpecLatest, + ContractConstructorSpecV0, + ContractConstructorSpecV1, + ContractConstructorSpecV2, + ContractConstructorSpecV3, + ContractConstructorSpecV4, + ContractContractSpecV0, + ContractContractSpecV1, + ContractContractSpecV2, + ContractContractSpecV3, + ContractContractSpecV4, + ContractContractSpecV5, + ContractCryptoHasher, + ContractDiscriminant, + ContractDisplayName, + ContractEnvironmentV4, + ContractEventParamSpecLatest, + ContractEventParamSpecV0, + ContractEventParamSpecV2, + ContractEventSpecLatest, + ContractEventSpecV0, + ContractEventSpecV1, + ContractEventSpecV2, + ContractEventSpecV3, + ContractLayoutArray, + ContractLayoutCell, + ContractLayoutEnum, + ContractLayoutHash, + ContractLayoutHashingStrategy, + ContractLayoutKey, + ContractLayoutStruct, + ContractLayoutStructField, + ContractMessageParamSpecLatest, + ContractMessageParamSpecV0, + ContractMessageParamSpecV2, + ContractMessageSpecLatest, + ContractMessageSpecV0, + ContractMessageSpecV1, + ContractMessageSpecV2, + ContractMessageSpecV3, + ContractMetadata, + ContractMetadataLatest, + ContractMetadataV0, + ContractMetadataV1, + ContractMetadataV2, + ContractMetadataV3, + ContractMetadataV4, + ContractMetadataV5, + ContractProject, + ContractProjectContract, + ContractProjectInfo, + ContractProjectSource, + ContractProjectV0, + ContractSelector, + ContractStorageLayout, + ContractTypeSpec +} from "@polkadot/types/interfaces/contractsAbi"; +import type { + FundIndex, + FundInfo, + LastContribution, + TrieIndex +} from "@polkadot/types/interfaces/crowdloan"; +import type { + CollationInfo, + CollationInfoV1, + ConfigData, + MessageId, + OverweightIndex, + PageCounter, + PageIndexData +} from "@polkadot/types/interfaces/cumulus"; +import type { + AccountVote, + AccountVoteSplit, + AccountVoteStandard, + Conviction, + Delegations, + PreimageStatus, + PreimageStatusAvailable, + PriorLock, + PropIndex, + Proposal, + ProxyState, + ReferendumIndex, + ReferendumInfo, + ReferendumInfoFinished, + ReferendumInfoTo239, + ReferendumStatus, + Tally, + Voting, + VotingDelegating, + VotingDirect, + VotingDirectVote +} from "@polkadot/types/interfaces/democracy"; +import type { BlockStats } from "@polkadot/types/interfaces/dev"; +import type { + CallDryRunEffects, + DispatchResultWithPostInfo, + PostDispatchInfo, + XcmDryRunApiError, + XcmDryRunEffects +} from "@polkadot/types/interfaces/dryRunApi"; +import type { + ApprovalFlag, + DefunctVoter, + Renouncing, + SetIndex, + Vote, + VoteIndex, + VoteThreshold, + VoterInfo +} from "@polkadot/types/interfaces/elections"; +import type { CreatedBlock, ImportedAux } from "@polkadot/types/interfaces/engine"; +import type { + BlockV0, + BlockV1, + BlockV2, + EIP1559Transaction, + EIP2930Transaction, + EthAccessList, + EthAccessListItem, + EthAccount, + EthAddress, + EthBlock, + EthBloom, + EthCallRequest, + EthFeeHistory, + EthFilter, + EthFilterAddress, + EthFilterChanges, + EthFilterTopic, + EthFilterTopicEntry, + EthFilterTopicInner, + EthHeader, + EthLog, + EthReceipt, + EthReceiptV0, + EthReceiptV3, + EthRichBlock, + EthRichHeader, + EthStorageProof, + EthSubKind, + EthSubParams, + EthSubResult, + EthSyncInfo, + EthSyncStatus, + EthTransaction, + EthTransactionAction, + EthTransactionCondition, + EthTransactionRequest, + EthTransactionSignature, + EthTransactionStatus, + EthWork, + EthereumAccountId, + EthereumAddress, + EthereumLookupSource, + EthereumSignature, + LegacyTransaction, + TransactionV0, + TransactionV1, + TransactionV2 +} from "@polkadot/types/interfaces/eth"; +import type { + EvmAccount, + EvmCallInfo, + EvmCallInfoV2, + EvmCreateInfo, + EvmCreateInfoV2, + EvmLog, + EvmVicinity, + EvmWeightInfo, + ExitError, + ExitFatal, + ExitReason, + ExitRevert, + ExitSucceed +} from "@polkadot/types/interfaces/evm"; +import type { + AnySignature, + EcdsaSignature, + Ed25519Signature, + Era, + Extrinsic, + ExtrinsicEra, + ExtrinsicPayload, + ExtrinsicPayloadUnknown, + ExtrinsicPayloadV4, + ExtrinsicPayloadV5, + ExtrinsicSignature, + ExtrinsicSignatureV4, + ExtrinsicSignatureV5, + ExtrinsicUnknown, + ExtrinsicV4, + ExtrinsicV5, + ImmortalEra, + MortalEra, + MultiSignature, + Signature, + SignerPayload, + Sr25519Signature +} from "@polkadot/types/interfaces/extrinsics"; +import type { FungiblesAccessError } from "@polkadot/types/interfaces/fungibles"; +import type { + AssetOptions, + Owner, + PermissionLatest, + PermissionVersions, + PermissionsV1 +} from "@polkadot/types/interfaces/genericAsset"; +import type { GenesisBuildErr } from "@polkadot/types/interfaces/genesisBuilder"; +import type { + ActiveGilt, + ActiveGiltsTotal, + ActiveIndex, + GiltBid +} from "@polkadot/types/interfaces/gilt"; +import type { + AuthorityIndex, + AuthorityList, + AuthoritySet, + AuthoritySetChange, + AuthoritySetChanges, + AuthorityWeight, + DelayKind, + DelayKindBest, + EncodedFinalityProofs, + ForkTreePendingChange, + ForkTreePendingChangeNode, + GrandpaCommit, + GrandpaEquivocation, + GrandpaEquivocationProof, + GrandpaEquivocationValue, + GrandpaJustification, + GrandpaPrecommit, + GrandpaPrevote, + GrandpaSignedPrecommit, + JustificationNotification, + KeyOwnerProof, + NextAuthority, + PendingChange, + PendingPause, + PendingResume, + Precommits, + Prevotes, + ReportedRoundStates, + RoundState, + SetId, + StoredPendingChange, + StoredState +} from "@polkadot/types/interfaces/grandpa"; +import type { + IdentityFields, + IdentityInfo, + IdentityInfoAdditional, + IdentityInfoTo198, + IdentityJudgement, + RegistrarIndex, + RegistrarInfo, + Registration, + RegistrationJudgement, + RegistrationTo198 +} from "@polkadot/types/interfaces/identity"; +import type { + AuthIndex, + AuthoritySignature, + Heartbeat, + HeartbeatTo244, + OpaqueMultiaddr, + OpaqueNetworkState, + OpaquePeerId +} from "@polkadot/types/interfaces/imOnline"; +import type { CallIndex, LotteryConfig } from "@polkadot/types/interfaces/lottery"; +import type { + CustomMetadata15, + CustomValueMetadata15, + ErrorMetadataLatest, + ErrorMetadataV10, + ErrorMetadataV11, + ErrorMetadataV12, + ErrorMetadataV13, + ErrorMetadataV14, + ErrorMetadataV9, + EventMetadataLatest, + EventMetadataV10, + EventMetadataV11, + EventMetadataV12, + EventMetadataV13, + EventMetadataV14, + EventMetadataV9, + ExtrinsicMetadataLatest, + ExtrinsicMetadataV11, + ExtrinsicMetadataV12, + ExtrinsicMetadataV13, + ExtrinsicMetadataV14, + ExtrinsicMetadataV15, + FunctionArgumentMetadataLatest, + FunctionArgumentMetadataV10, + FunctionArgumentMetadataV11, + FunctionArgumentMetadataV12, + FunctionArgumentMetadataV13, + FunctionArgumentMetadataV14, + FunctionArgumentMetadataV9, + FunctionMetadataLatest, + FunctionMetadataV10, + FunctionMetadataV11, + FunctionMetadataV12, + FunctionMetadataV13, + FunctionMetadataV14, + FunctionMetadataV9, + MetadataAll, + MetadataLatest, + MetadataV10, + MetadataV11, + MetadataV12, + MetadataV13, + MetadataV14, + MetadataV15, + MetadataV9, + ModuleConstantMetadataV10, + ModuleConstantMetadataV11, + ModuleConstantMetadataV12, + ModuleConstantMetadataV13, + ModuleConstantMetadataV9, + ModuleMetadataV10, + ModuleMetadataV11, + ModuleMetadataV12, + ModuleMetadataV13, + ModuleMetadataV9, + OpaqueMetadata, + OuterEnums15, + PalletCallMetadataLatest, + PalletCallMetadataV14, + PalletConstantMetadataLatest, + PalletConstantMetadataV14, + PalletErrorMetadataLatest, + PalletErrorMetadataV14, + PalletEventMetadataLatest, + PalletEventMetadataV14, + PalletMetadataLatest, + PalletMetadataV14, + PalletMetadataV15, + PalletStorageMetadataLatest, + PalletStorageMetadataV14, + PortableType, + PortableTypeV14, + RuntimeApiMetadataLatest, + RuntimeApiMetadataV15, + RuntimeApiMethodMetadataV15, + RuntimeApiMethodParamMetadataV15, + SignedExtensionMetadataLatest, + SignedExtensionMetadataV14, + StorageEntryMetadataLatest, + StorageEntryMetadataV10, + StorageEntryMetadataV11, + StorageEntryMetadataV12, + StorageEntryMetadataV13, + StorageEntryMetadataV14, + StorageEntryMetadataV9, + StorageEntryModifierLatest, + StorageEntryModifierV10, + StorageEntryModifierV11, + StorageEntryModifierV12, + StorageEntryModifierV13, + StorageEntryModifierV14, + StorageEntryModifierV9, + StorageEntryTypeLatest, + StorageEntryTypeV10, + StorageEntryTypeV11, + StorageEntryTypeV12, + StorageEntryTypeV13, + StorageEntryTypeV14, + StorageEntryTypeV9, + StorageHasher, + StorageHasherV10, + StorageHasherV11, + StorageHasherV12, + StorageHasherV13, + StorageHasherV14, + StorageHasherV9, + StorageMetadataV10, + StorageMetadataV11, + StorageMetadataV12, + StorageMetadataV13, + StorageMetadataV9 +} from "@polkadot/types/interfaces/metadata"; +import type { + Mixnode, + MixnodesErr, + SessionPhase, + SessionStatus +} from "@polkadot/types/interfaces/mixnet"; +import type { + MmrBatchProof, + MmrEncodableOpaqueLeaf, + MmrError, + MmrHash, + MmrLeafBatchProof, + MmrLeafIndex, + MmrLeafProof, + MmrNodeIndex, + MmrProof +} from "@polkadot/types/interfaces/mmr"; +import type { NftCollectionId, NftItemId } from "@polkadot/types/interfaces/nfts"; +import type { NpApiError, NpPoolId } from "@polkadot/types/interfaces/nompools"; +import type { StorageKind } from "@polkadot/types/interfaces/offchain"; +import type { + DeferredOffenceOf, + Kind, + OffenceDetails, + Offender, + OpaqueTimeSlot, + ReportIdOf, + Reporter +} from "@polkadot/types/interfaces/offences"; +import type { + AbridgedCandidateReceipt, + AbridgedHostConfiguration, + AbridgedHrmpChannel, + ApprovalVotingParams, + AssignmentId, + AssignmentKind, + AsyncBackingParams, + AttestedCandidate, + AuctionIndex, + AuthorityDiscoveryId, + AvailabilityBitfield, + AvailabilityBitfieldRecord, + BackedCandidate, + BackingState, + Bidder, + BufferedSessionChange, + CandidateCommitments, + CandidateDescriptor, + CandidateEvent, + CandidateHash, + CandidateInfo, + CandidatePendingAvailability, + CandidateReceipt, + CollatorId, + CollatorSignature, + CommittedCandidateReceipt, + Constraints, + CoreAssignment, + CoreIndex, + CoreOccupied, + CoreState, + DisputeLocation, + DisputeProof, + DisputeResult, + DisputeState, + DisputeStatement, + DisputeStatementSet, + DisputesTimeSlot, + DoubleVoteReport, + DownwardMessage, + ExecutorParam, + ExecutorParams, + ExecutorParamsHash, + ExplicitDisputeStatement, + GlobalValidationData, + GlobalValidationSchedule, + GroupIndex, + GroupRotationInfo, + HeadData, + HostConfiguration, + HrmpChannel, + HrmpChannelId, + HrmpOpenChannelRequest, + InboundDownwardMessage, + InboundHrmpLimitations, + InboundHrmpMessage, + InboundHrmpMessages, + IncomingParachain, + IncomingParachainDeploy, + IncomingParachainFixed, + InvalidDisputeStatementKind, + LeasePeriod, + LeasePeriodOf, + LocalValidationData, + MessageIngestionType, + MessageQueueChain, + MessagingStateSnapshot, + MessagingStateSnapshotEgressEntry, + MultiDisputeStatementSet, + NewBidder, + NodeFeatures, + OccupiedCore, + OccupiedCoreAssumption, + OldV1SessionInfo, + OutboundHrmpChannelLimitations, + OutboundHrmpMessage, + ParaGenesisArgs, + ParaId, + ParaInfo, + ParaLifecycle, + ParaPastCodeMeta, + ParaScheduling, + ParaValidatorIndex, + ParachainDispatchOrigin, + ParachainInherentData, + ParachainProposal, + ParachainsInherentData, + ParathreadClaim, + ParathreadClaimQueue, + ParathreadEntry, + PendingSlashes, + PersistedValidationData, + PvfCheckStatement, + PvfExecTimeoutKind, + PvfPrepTimeoutKind, + QueuedParathread, + RegisteredParachainInfo, + RelayBlockNumber, + RelayChainBlockNumber, + RelayChainHash, + RelayHash, + Remark, + ReplacementTimes, + Retriable, + ScheduledCore, + Scheduling, + ScrapedOnChainVotes, + ServiceQuality, + SessionInfo, + SessionInfoValidatorGroup, + SignedAvailabilityBitfield, + SignedAvailabilityBitfields, + SigningContext, + SlashingOffenceKind, + SlotRange, + SlotRange10, + Statement, + SubId, + SystemInherentData, + TransientValidationData, + UpgradeGoAhead, + UpgradeRestriction, + UpwardMessage, + ValidDisputeStatementKind, + ValidationCode, + ValidationCodeHash, + ValidationData, + ValidationDataType, + ValidationFunctionParams, + ValidatorSignature, + ValidityAttestation, + VecInboundHrmpMessage, + WinnersData, + WinnersData10, + WinnersDataTuple, + WinnersDataTuple10, + WinningData, + WinningData10, + WinningDataEntry +} from "@polkadot/types/interfaces/parachains"; +import type { + FeeDetails, + InclusionFee, + RuntimeDispatchInfo, + RuntimeDispatchInfoV1, + RuntimeDispatchInfoV2 +} from "@polkadot/types/interfaces/payment"; +import type { Approvals } from "@polkadot/types/interfaces/poll"; +import type { + ProxyAnnouncement, + ProxyDefinition, + ProxyType +} from "@polkadot/types/interfaces/proxy"; +import type { AccountStatus, AccountValidity } from "@polkadot/types/interfaces/purchase"; +import type { ActiveRecovery, RecoveryConfig } from "@polkadot/types/interfaces/recovery"; +import type { RpcMethods } from "@polkadot/types/interfaces/rpc"; +import type { + AccountId, + AccountId20, + AccountId32, + AccountId33, + AccountIdOf, + AccountIndex, + Address, + AssetId, + Balance, + BalanceOf, + Block, + BlockNumber, + BlockNumberFor, + BlockNumberOf, + Call, + CallHash, + CallHashOf, + ChangesTrieConfiguration, + ChangesTrieSignal, + CodecHash, + Consensus, + ConsensusEngineId, + CrateVersion, + Digest, + DigestItem, + EncodedJustification, + ExtrinsicInclusionMode, + ExtrinsicsWeight, + Fixed128, + Fixed64, + FixedI128, + FixedI64, + FixedU128, + FixedU64, + H1024, + H128, + H160, + H2048, + H256, + H32, + H512, + H64, + Hash, + Header, + HeaderPartial, + I32F32, + Index, + IndicesLookupSource, + Justification, + Justifications, + KeyTypeId, + KeyValue, + LockIdentifier, + LookupSource, + LookupTarget, + ModuleId, + Moment, + MultiAddress, + MultiSigner, + OpaqueCall, + Origin, + OriginCaller, + PalletId, + PalletVersion, + PalletsOrigin, + Pays, + PerU16, + Perbill, + Percent, + Permill, + Perquintill, + Phantom, + PhantomData, + PreRuntime, + Releases, + RuntimeCall, + RuntimeDbWeight, + RuntimeEvent, + Seal, + SealV0, + SignedBlock, + SignedBlockWithJustification, + SignedBlockWithJustifications, + Slot, + SlotDuration, + StorageData, + StorageInfo, + StorageProof, + TransactionInfo, + TransactionLongevity, + TransactionPriority, + TransactionStorageProof, + TransactionTag, + U32F32, + ValidatorId, + ValidatorIdOf, + Weight, + WeightMultiplier, + WeightV0, + WeightV1, + WeightV2 +} from "@polkadot/types/interfaces/runtime"; +import type { + Si0Field, + Si0LookupTypeId, + Si0Path, + Si0Type, + Si0TypeDef, + Si0TypeDefArray, + Si0TypeDefBitSequence, + Si0TypeDefCompact, + Si0TypeDefComposite, + Si0TypeDefPhantom, + Si0TypeDefPrimitive, + Si0TypeDefSequence, + Si0TypeDefTuple, + Si0TypeDefVariant, + Si0TypeParameter, + Si0Variant, + Si1Field, + Si1LookupTypeId, + Si1Path, + Si1Type, + Si1TypeDef, + Si1TypeDefArray, + Si1TypeDefBitSequence, + Si1TypeDefCompact, + Si1TypeDefComposite, + Si1TypeDefPrimitive, + Si1TypeDefSequence, + Si1TypeDefTuple, + Si1TypeDefVariant, + Si1TypeParameter, + Si1Variant, + SiField, + SiLookupTypeId, + SiPath, + SiType, + SiTypeDef, + SiTypeDefArray, + SiTypeDefBitSequence, + SiTypeDefCompact, + SiTypeDefComposite, + SiTypeDefPrimitive, + SiTypeDefSequence, + SiTypeDefTuple, + SiTypeDefVariant, + SiTypeParameter, + SiVariant +} from "@polkadot/types/interfaces/scaleInfo"; +import type { + Period, + Priority, + SchedulePeriod, + SchedulePriority, + Scheduled, + ScheduledTo254, + TaskAddress +} from "@polkadot/types/interfaces/scheduler"; +import type { + BeefyKey, + FullIdentification, + IdentificationTuple, + Keys, + MembershipProof, + SessionIndex, + SessionKeys1, + SessionKeys10, + SessionKeys10B, + SessionKeys2, + SessionKeys3, + SessionKeys4, + SessionKeys5, + SessionKeys6, + SessionKeys6B, + SessionKeys7, + SessionKeys7B, + SessionKeys8, + SessionKeys8B, + SessionKeys9, + SessionKeys9B, + ValidatorCount +} from "@polkadot/types/interfaces/session"; +import type { + Bid, + BidKind, + SocietyJudgement, + SocietyVote, + StrikeCount, + VouchingStatus +} from "@polkadot/types/interfaces/society"; +import type { + ActiveEraInfo, + CompactAssignments, + CompactAssignmentsTo257, + CompactAssignmentsTo265, + CompactAssignmentsWith16, + CompactAssignmentsWith24, + CompactScore, + CompactScoreCompact, + ElectionCompute, + ElectionPhase, + ElectionResult, + ElectionScore, + ElectionSize, + ElectionStatus, + EraIndex, + EraPoints, + EraRewardPoints, + EraRewards, + Exposure, + ExtendedBalance, + Forcing, + IndividualExposure, + KeyType, + MomentOf, + Nominations, + NominatorIndex, + NominatorIndexCompact, + OffchainAccuracy, + OffchainAccuracyCompact, + PhragmenScore, + Points, + RawSolution, + RawSolutionTo265, + RawSolutionWith16, + RawSolutionWith24, + ReadySolution, + RewardDestination, + RewardPoint, + RoundSnapshot, + SeatHolder, + SignedSubmission, + SignedSubmissionOf, + SignedSubmissionTo276, + SlashJournalEntry, + SlashingSpans, + SlashingSpansTo204, + SolutionOrSnapshotSize, + SolutionSupport, + SolutionSupports, + SpanIndex, + SpanRecord, + StakingLedger, + StakingLedgerTo223, + StakingLedgerTo240, + SubmissionIndicesOf, + Supports, + UnappliedSlash, + UnappliedSlashOther, + UnlockChunk, + ValidatorIndex, + ValidatorIndexCompact, + ValidatorPrefs, + ValidatorPrefsTo145, + ValidatorPrefsTo196, + ValidatorPrefsWithBlocked, + ValidatorPrefsWithCommission, + VoteWeight, + Voter +} from "@polkadot/types/interfaces/staking"; +import type { + ApiId, + BlockTrace, + BlockTraceEvent, + BlockTraceEventData, + BlockTraceSpan, + KeyValueOption, + MigrationStatusResult, + ReadProof, + RuntimeVersion, + RuntimeVersionApi, + RuntimeVersionPartial, + RuntimeVersionPre3, + RuntimeVersionPre4, + SpecVersion, + StorageChangeSet, + TraceBlockResponse, + TraceError +} from "@polkadot/types/interfaces/state"; +import type { + StatementStoreInvalidStatement, + StatementStoreStatementSource, + StatementStoreValidStatement +} from "@polkadot/types/interfaces/statement"; +import type { WeightToFeeCoefficient } from "@polkadot/types/interfaces/support"; +import type { + AccountInfo, + AccountInfoWithDualRefCount, + AccountInfoWithProviders, + AccountInfoWithRefCount, + AccountInfoWithRefCountU8, + AccountInfoWithTripleRefCount, + ApplyExtrinsicResult, + ApplyExtrinsicResultPre6, + ArithmeticError, + BlockLength, + BlockWeights, + ChainProperties, + ChainType, + ConsumedWeight, + DigestOf, + DispatchClass, + DispatchError, + DispatchErrorModule, + DispatchErrorModulePre6, + DispatchErrorModuleU8, + DispatchErrorModuleU8a, + DispatchErrorPre6, + DispatchErrorPre6First, + DispatchErrorTo198, + DispatchInfo, + DispatchInfoTo190, + DispatchInfoTo244, + DispatchOutcome, + DispatchOutcomePre6, + DispatchResult, + DispatchResultOf, + DispatchResultTo198, + Event, + EventId, + EventIndex, + EventRecord, + Health, + InvalidTransaction, + Key, + LastRuntimeUpgradeInfo, + NetworkState, + NetworkStatePeerset, + NetworkStatePeersetInfo, + NodeRole, + NotConnectedPeer, + Peer, + PeerEndpoint, + PeerEndpointAddr, + PeerInfo, + PeerPing, + PerDispatchClassU32, + PerDispatchClassWeight, + PerDispatchClassWeightsPerClass, + Phase, + RawOrigin, + RefCount, + RefCountTo259, + SyncState, + SystemOrigin, + TokenError, + TransactionValidityError, + TransactionalError, + UnknownTransaction, + WeightPerClass +} from "@polkadot/types/interfaces/system"; +import type { + Bounty, + BountyIndex, + BountyStatus, + BountyStatusActive, + BountyStatusCuratorProposed, + BountyStatusPendingPayout, + OpenTip, + OpenTipFinderTo225, + OpenTipTip, + OpenTipTo225, + TreasuryProposal +} from "@polkadot/types/interfaces/treasury"; +import type { Multiplier } from "@polkadot/types/interfaces/txpayment"; +import type { + TransactionSource, + TransactionValidity, + ValidTransaction +} from "@polkadot/types/interfaces/txqueue"; +import type { + ClassDetails, + ClassId, + ClassMetadata, + DepositBalance, + DepositBalanceOf, + DestroyWitness, + InstanceDetails, + InstanceId, + InstanceMetadata +} from "@polkadot/types/interfaces/uniques"; +import type { Multisig, Timepoint } from "@polkadot/types/interfaces/utility"; +import type { VestingInfo } from "@polkadot/types/interfaces/vesting"; +import type { + AssetIdV2, + AssetIdV3, + AssetIdV4, + AssetInstance, + AssetInstanceV0, + AssetInstanceV1, + AssetInstanceV2, + AssetInstanceV3, + AssetInstanceV4, + BodyId, + BodyIdV2, + BodyIdV3, + BodyPart, + BodyPartV2, + BodyPartV3, + DoubleEncodedCall, + Fungibility, + FungibilityV0, + FungibilityV1, + FungibilityV2, + FungibilityV3, + FungibilityV4, + InboundStatus, + InstructionV2, + InstructionV3, + InstructionV4, + InteriorMultiLocation, + InteriorMultiLocationV2, + InteriorMultiLocationV3, + Junction, + JunctionV0, + JunctionV1, + JunctionV2, + JunctionV3, + JunctionV4, + Junctions, + JunctionsV1, + JunctionsV2, + JunctionsV3, + JunctionsV4, + MaxPalletNameLen, + MaxPalletsInfo, + MaybeErrorCodeV3, + MultiAsset, + MultiAssetFilter, + MultiAssetFilterV1, + MultiAssetFilterV2, + MultiAssetFilterV3, + MultiAssetFilterV4, + MultiAssetV0, + MultiAssetV1, + MultiAssetV2, + MultiAssetV3, + MultiAssetV4, + MultiAssets, + MultiAssetsV1, + MultiAssetsV2, + MultiAssetsV3, + MultiAssetsV4, + MultiLocation, + MultiLocationV0, + MultiLocationV1, + MultiLocationV2, + MultiLocationV3, + MultiLocationV4, + NetworkId, + NetworkIdV2, + NetworkIdV3, + NetworkIdV4, + OriginKindV0, + OriginKindV1, + OriginKindV2, + OriginKindV3, + OriginKindV4, + OutboundStatus, + Outcome, + OutcomeV4, + PalletInfoV3, + PalletInfoV4, + QueryId, + QueryResponseInfoV3, + QueryResponseInfoV4, + QueryStatus, + QueueConfigData, + Response, + ResponseV0, + ResponseV1, + ResponseV2, + ResponseV2Error, + ResponseV3, + ResponseV3Error, + ResponseV3Result, + ResponseV4, + UncheckedFungibilityV4, + VersionMigrationStage, + VersionV3, + VersionV4, + VersionedMultiAsset, + VersionedMultiAssets, + VersionedMultiLocation, + VersionedResponse, + VersionedXcm, + WeightLimitV2, + WeightLimitV3, + WildFungibility, + WildFungibilityV0, + WildFungibilityV1, + WildFungibilityV2, + WildFungibilityV3, + WildFungibilityV4, + WildMultiAsset, + WildMultiAssetV1, + WildMultiAssetV2, + WildMultiAssetV3, + WildMultiAssetV4, + Xcm, + XcmAssetId, + XcmError, + XcmErrorV0, + XcmErrorV1, + XcmErrorV2, + XcmErrorV3, + XcmErrorV4, + XcmOrderV0, + XcmOrderV1, + XcmOrigin, + XcmOriginKind, + XcmV0, + XcmV1, + XcmV2, + XcmV3, + XcmV4, + XcmVersion, + XcmpMessageFormat +} from "@polkadot/types/interfaces/xcm"; +import type { XcmPaymentApiError } from "@polkadot/types/interfaces/xcmPaymentApi"; +import type { Error } from "@polkadot/types/interfaces/xcmRuntimeApi"; +import type { + BackupStorageProvider, + BackupStorageProviderId, + ChunkId, + FileMetadata, + GetBspInfoError, + GetChallengePeriodError, + GetChallengeSeedError, + GetCheckpointChallengesError, + GetFileFromFileStorageResult, + GetLastTickProviderSubmittedProofError, + GetNextDeadlineTickError, + GetUsersWithDebtOverThresholdError, + IncompleteFileStatus, + MainStorageProviderId, + MerklePatriciaRoot, + ProviderId, + QueryAvailableStorageCapacityError, + QueryBspConfirmChunksToProveForFileError, + QueryConfirmChunksToProveForFileError, + QueryEarliestChangeCapacityBlockError, + QueryFileEarliestVolunteerBlockError, + QueryMspConfirmChunksToProveForFileError, + QueryMspIdOfBucketIdError, + QueryStorageProviderCapacityError, + RandomnessOutput, + SaveFileToDisk, + StorageDataUnit, + StorageProviderId, + TrieRemoveMutation +} from "@storagehub/api-augment/interfaces/storagehubclient"; + +declare module "@polkadot/types/types/registry" { + interface InterfaceTypes { + AbridgedCandidateReceipt: AbridgedCandidateReceipt; + AbridgedHostConfiguration: AbridgedHostConfiguration; + AbridgedHrmpChannel: AbridgedHrmpChannel; + AccountData: AccountData; + AccountId: AccountId; + AccountId20: AccountId20; + AccountId32: AccountId32; + AccountId33: AccountId33; + AccountIdOf: AccountIdOf; + AccountIndex: AccountIndex; + AccountInfo: AccountInfo; + AccountInfoWithDualRefCount: AccountInfoWithDualRefCount; + AccountInfoWithProviders: AccountInfoWithProviders; + AccountInfoWithRefCount: AccountInfoWithRefCount; + AccountInfoWithRefCountU8: AccountInfoWithRefCountU8; + AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount; + AccountStatus: AccountStatus; + AccountValidity: AccountValidity; + AccountVote: AccountVote; + AccountVoteSplit: AccountVoteSplit; + AccountVoteStandard: AccountVoteStandard; + ActiveEraInfo: ActiveEraInfo; + ActiveGilt: ActiveGilt; + ActiveGiltsTotal: ActiveGiltsTotal; + ActiveIndex: ActiveIndex; + ActiveRecovery: ActiveRecovery; + Address: Address; + AliveContractInfo: AliveContractInfo; + AllowedSlots: AllowedSlots; + AnySignature: AnySignature; + ApiId: ApiId; + ApplyExtrinsicResult: ApplyExtrinsicResult; + ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6; + ApprovalFlag: ApprovalFlag; + Approvals: Approvals; + ApprovalVotingParams: ApprovalVotingParams; + ArithmeticError: ArithmeticError; + AssetApproval: AssetApproval; + AssetApprovalKey: AssetApprovalKey; + AssetBalance: AssetBalance; + AssetDestroyWitness: AssetDestroyWitness; + AssetDetails: AssetDetails; + AssetId: AssetId; + AssetIdV2: AssetIdV2; + AssetIdV3: AssetIdV3; + AssetIdV4: AssetIdV4; + AssetInstance: AssetInstance; + AssetInstanceV0: AssetInstanceV0; + AssetInstanceV1: AssetInstanceV1; + AssetInstanceV2: AssetInstanceV2; + AssetInstanceV3: AssetInstanceV3; + AssetInstanceV4: AssetInstanceV4; + AssetMetadata: AssetMetadata; + AssetOptions: AssetOptions; + AssignmentId: AssignmentId; + AssignmentKind: AssignmentKind; + AsyncBackingParams: AsyncBackingParams; + AttestedCandidate: AttestedCandidate; + AuctionIndex: AuctionIndex; + AuthIndex: AuthIndex; + AuthorityDiscoveryId: AuthorityDiscoveryId; + AuthorityId: AuthorityId; + AuthorityIndex: AuthorityIndex; + AuthorityList: AuthorityList; + AuthoritySet: AuthoritySet; + AuthoritySetChange: AuthoritySetChange; + AuthoritySetChanges: AuthoritySetChanges; + AuthoritySignature: AuthoritySignature; + AuthorityWeight: AuthorityWeight; + AvailabilityBitfield: AvailabilityBitfield; + AvailabilityBitfieldRecord: AvailabilityBitfieldRecord; + BabeAuthorityWeight: BabeAuthorityWeight; + BabeBlockWeight: BabeBlockWeight; + BabeEpochConfiguration: BabeEpochConfiguration; + BabeEquivocationProof: BabeEquivocationProof; + BabeGenesisConfiguration: BabeGenesisConfiguration; + BabeGenesisConfigurationV1: BabeGenesisConfigurationV1; + BabeWeight: BabeWeight; + BackedCandidate: BackedCandidate; + BackingState: BackingState; + BackupStorageProvider: BackupStorageProvider; + BackupStorageProviderId: BackupStorageProviderId; + Balance: Balance; + BalanceLock: BalanceLock; + BalanceLockTo212: BalanceLockTo212; + BalanceOf: BalanceOf; + BalanceStatus: BalanceStatus; + BeefyAuthoritySet: BeefyAuthoritySet; + BeefyCommitment: BeefyCommitment; + BeefyCompactSignedCommitment: BeefyCompactSignedCommitment; + BeefyEquivocationProof: BeefyEquivocationProof; + BeefyId: BeefyId; + BeefyKey: BeefyKey; + BeefyNextAuthoritySet: BeefyNextAuthoritySet; + BeefyPayload: BeefyPayload; + BeefyPayloadId: BeefyPayloadId; + BeefySignedCommitment: BeefySignedCommitment; + BeefyVersionedFinalityProof: BeefyVersionedFinalityProof; + BeefyVoteMessage: BeefyVoteMessage; + BenchmarkBatch: BenchmarkBatch; + BenchmarkConfig: BenchmarkConfig; + BenchmarkList: BenchmarkList; + BenchmarkMetadata: BenchmarkMetadata; + BenchmarkParameter: BenchmarkParameter; + BenchmarkResult: BenchmarkResult; + Bid: Bid; + Bidder: Bidder; + BidKind: BidKind; + BitVec: BitVec; + Block: Block; + BlockAttestations: BlockAttestations; + BlockHash: BlockHash; + BlockLength: BlockLength; + BlockNumber: BlockNumber; + BlockNumberFor: BlockNumberFor; + BlockNumberOf: BlockNumberOf; + BlockStats: BlockStats; + BlockTrace: BlockTrace; + BlockTraceEvent: BlockTraceEvent; + BlockTraceEventData: BlockTraceEventData; + BlockTraceSpan: BlockTraceSpan; + BlockV0: BlockV0; + BlockV1: BlockV1; + BlockV2: BlockV2; + BlockWeights: BlockWeights; + BodyId: BodyId; + BodyIdV2: BodyIdV2; + BodyIdV3: BodyIdV3; + BodyPart: BodyPart; + BodyPartV2: BodyPartV2; + BodyPartV3: BodyPartV3; + bool: bool; + Bool: Bool; + Bounty: Bounty; + BountyIndex: BountyIndex; + BountyStatus: BountyStatus; + BountyStatusActive: BountyStatusActive; + BountyStatusCuratorProposed: BountyStatusCuratorProposed; + BountyStatusPendingPayout: BountyStatusPendingPayout; + BridgedBlockHash: BridgedBlockHash; + BridgedBlockNumber: BridgedBlockNumber; + BridgedHeader: BridgedHeader; + BridgeMessageId: BridgeMessageId; + BufferedSessionChange: BufferedSessionChange; + Bytes: Bytes; + Call: Call; + CallDryRunEffects: CallDryRunEffects; + CallHash: CallHash; + CallHashOf: CallHashOf; + CallIndex: CallIndex; + CallOrigin: CallOrigin; + CandidateCommitments: CandidateCommitments; + CandidateDescriptor: CandidateDescriptor; + CandidateEvent: CandidateEvent; + CandidateHash: CandidateHash; + CandidateInfo: CandidateInfo; + CandidatePendingAvailability: CandidatePendingAvailability; + CandidateReceipt: CandidateReceipt; + ChainId: ChainId; + ChainProperties: ChainProperties; + ChainType: ChainType; + ChangesTrieConfiguration: ChangesTrieConfiguration; + ChangesTrieSignal: ChangesTrieSignal; + CheckInherentsResult: CheckInherentsResult; + ChunkId: ChunkId; + ClassDetails: ClassDetails; + ClassId: ClassId; + ClassMetadata: ClassMetadata; + CodecHash: CodecHash; + CodeHash: CodeHash; + CodeSource: CodeSource; + CodeUploadRequest: CodeUploadRequest; + CodeUploadResult: CodeUploadResult; + CodeUploadResultValue: CodeUploadResultValue; + CollationInfo: CollationInfo; + CollationInfoV1: CollationInfoV1; + CollatorId: CollatorId; + CollatorSignature: CollatorSignature; + CollectiveOrigin: CollectiveOrigin; + CommittedCandidateReceipt: CommittedCandidateReceipt; + CompactAssignments: CompactAssignments; + CompactAssignmentsTo257: CompactAssignmentsTo257; + CompactAssignmentsTo265: CompactAssignmentsTo265; + CompactAssignmentsWith16: CompactAssignmentsWith16; + CompactAssignmentsWith24: CompactAssignmentsWith24; + CompactScore: CompactScore; + CompactScoreCompact: CompactScoreCompact; + ConfigData: ConfigData; + Consensus: Consensus; + ConsensusEngineId: ConsensusEngineId; + Constraints: Constraints; + ConsumedWeight: ConsumedWeight; + ContractCallFlags: ContractCallFlags; + ContractCallRequest: ContractCallRequest; + ContractConstructorSpecLatest: ContractConstructorSpecLatest; + ContractConstructorSpecV0: ContractConstructorSpecV0; + ContractConstructorSpecV1: ContractConstructorSpecV1; + ContractConstructorSpecV2: ContractConstructorSpecV2; + ContractConstructorSpecV3: ContractConstructorSpecV3; + ContractConstructorSpecV4: ContractConstructorSpecV4; + ContractContractSpecV0: ContractContractSpecV0; + ContractContractSpecV1: ContractContractSpecV1; + ContractContractSpecV2: ContractContractSpecV2; + ContractContractSpecV3: ContractContractSpecV3; + ContractContractSpecV4: ContractContractSpecV4; + ContractContractSpecV5: ContractContractSpecV5; + ContractCryptoHasher: ContractCryptoHasher; + ContractDiscriminant: ContractDiscriminant; + ContractDisplayName: ContractDisplayName; + ContractEnvironmentV4: ContractEnvironmentV4; + ContractEventParamSpecLatest: ContractEventParamSpecLatest; + ContractEventParamSpecV0: ContractEventParamSpecV0; + ContractEventParamSpecV2: ContractEventParamSpecV2; + ContractEventSpecLatest: ContractEventSpecLatest; + ContractEventSpecV0: ContractEventSpecV0; + ContractEventSpecV1: ContractEventSpecV1; + ContractEventSpecV2: ContractEventSpecV2; + ContractEventSpecV3: ContractEventSpecV3; + ContractExecResult: ContractExecResult; + ContractExecResultOk: ContractExecResultOk; + ContractExecResultResult: ContractExecResultResult; + ContractExecResultSuccessTo255: ContractExecResultSuccessTo255; + ContractExecResultSuccessTo260: ContractExecResultSuccessTo260; + ContractExecResultTo255: ContractExecResultTo255; + ContractExecResultTo260: ContractExecResultTo260; + ContractExecResultTo267: ContractExecResultTo267; + ContractExecResultU64: ContractExecResultU64; + ContractInfo: ContractInfo; + ContractInstantiateResult: ContractInstantiateResult; + ContractInstantiateResultTo267: ContractInstantiateResultTo267; + ContractInstantiateResultTo299: ContractInstantiateResultTo299; + ContractInstantiateResultU64: ContractInstantiateResultU64; + ContractLayoutArray: ContractLayoutArray; + ContractLayoutCell: ContractLayoutCell; + ContractLayoutEnum: ContractLayoutEnum; + ContractLayoutHash: ContractLayoutHash; + ContractLayoutHashingStrategy: ContractLayoutHashingStrategy; + ContractLayoutKey: ContractLayoutKey; + ContractLayoutStruct: ContractLayoutStruct; + ContractLayoutStructField: ContractLayoutStructField; + ContractMessageParamSpecLatest: ContractMessageParamSpecLatest; + ContractMessageParamSpecV0: ContractMessageParamSpecV0; + ContractMessageParamSpecV2: ContractMessageParamSpecV2; + ContractMessageSpecLatest: ContractMessageSpecLatest; + ContractMessageSpecV0: ContractMessageSpecV0; + ContractMessageSpecV1: ContractMessageSpecV1; + ContractMessageSpecV2: ContractMessageSpecV2; + ContractMessageSpecV3: ContractMessageSpecV3; + ContractMetadata: ContractMetadata; + ContractMetadataLatest: ContractMetadataLatest; + ContractMetadataV0: ContractMetadataV0; + ContractMetadataV1: ContractMetadataV1; + ContractMetadataV2: ContractMetadataV2; + ContractMetadataV3: ContractMetadataV3; + ContractMetadataV4: ContractMetadataV4; + ContractMetadataV5: ContractMetadataV5; + ContractProject: ContractProject; + ContractProjectContract: ContractProjectContract; + ContractProjectInfo: ContractProjectInfo; + ContractProjectSource: ContractProjectSource; + ContractProjectV0: ContractProjectV0; + ContractReturnFlags: ContractReturnFlags; + ContractSelector: ContractSelector; + ContractStorageKey: ContractStorageKey; + ContractStorageLayout: ContractStorageLayout; + ContractTypeSpec: ContractTypeSpec; + Conviction: Conviction; + CoreAssignment: CoreAssignment; + CoreIndex: CoreIndex; + CoreOccupied: CoreOccupied; + CoreState: CoreState; + CrateVersion: CrateVersion; + CreatedBlock: CreatedBlock; + CustomMetadata15: CustomMetadata15; + CustomValueMetadata15: CustomValueMetadata15; + Data: Data; + DeferredOffenceOf: DeferredOffenceOf; + DefunctVoter: DefunctVoter; + DelayKind: DelayKind; + DelayKindBest: DelayKindBest; + Delegations: Delegations; + DeletedContract: DeletedContract; + DeliveredMessages: DeliveredMessages; + DepositBalance: DepositBalance; + DepositBalanceOf: DepositBalanceOf; + DestroyWitness: DestroyWitness; + Digest: Digest; + DigestItem: DigestItem; + DigestOf: DigestOf; + DispatchClass: DispatchClass; + DispatchError: DispatchError; + DispatchErrorModule: DispatchErrorModule; + DispatchErrorModulePre6: DispatchErrorModulePre6; + DispatchErrorModuleU8: DispatchErrorModuleU8; + DispatchErrorModuleU8a: DispatchErrorModuleU8a; + DispatchErrorPre6: DispatchErrorPre6; + DispatchErrorPre6First: DispatchErrorPre6First; + DispatchErrorTo198: DispatchErrorTo198; + DispatchFeePayment: DispatchFeePayment; + DispatchInfo: DispatchInfo; + DispatchInfoTo190: DispatchInfoTo190; + DispatchInfoTo244: DispatchInfoTo244; + DispatchOutcome: DispatchOutcome; + DispatchOutcomePre6: DispatchOutcomePre6; + DispatchResult: DispatchResult; + DispatchResultOf: DispatchResultOf; + DispatchResultTo198: DispatchResultTo198; + DispatchResultWithPostInfo: DispatchResultWithPostInfo; + DisputeLocation: DisputeLocation; + DisputeProof: DisputeProof; + DisputeResult: DisputeResult; + DisputeState: DisputeState; + DisputeStatement: DisputeStatement; + DisputeStatementSet: DisputeStatementSet; + DisputesTimeSlot: DisputesTimeSlot; + DoubleEncodedCall: DoubleEncodedCall; + DoubleVoteReport: DoubleVoteReport; + DownwardMessage: DownwardMessage; + EcdsaSignature: EcdsaSignature; + Ed25519Signature: Ed25519Signature; + EIP1559Transaction: EIP1559Transaction; + EIP2930Transaction: EIP2930Transaction; + ElectionCompute: ElectionCompute; + ElectionPhase: ElectionPhase; + ElectionResult: ElectionResult; + ElectionScore: ElectionScore; + ElectionSize: ElectionSize; + ElectionStatus: ElectionStatus; + EncodedFinalityProofs: EncodedFinalityProofs; + EncodedJustification: EncodedJustification; + Epoch: Epoch; + EpochAuthorship: EpochAuthorship; + Era: Era; + EraIndex: EraIndex; + EraPoints: EraPoints; + EraRewardPoints: EraRewardPoints; + EraRewards: EraRewards; + Error: Error; + ErrorMetadataLatest: ErrorMetadataLatest; + ErrorMetadataV10: ErrorMetadataV10; + ErrorMetadataV11: ErrorMetadataV11; + ErrorMetadataV12: ErrorMetadataV12; + ErrorMetadataV13: ErrorMetadataV13; + ErrorMetadataV14: ErrorMetadataV14; + ErrorMetadataV9: ErrorMetadataV9; + EthAccessList: EthAccessList; + EthAccessListItem: EthAccessListItem; + EthAccount: EthAccount; + EthAddress: EthAddress; + EthBlock: EthBlock; + EthBloom: EthBloom; + EthCallRequest: EthCallRequest; + EthereumAccountId: EthereumAccountId; + EthereumAddress: EthereumAddress; + EthereumLookupSource: EthereumLookupSource; + EthereumSignature: EthereumSignature; + EthFeeHistory: EthFeeHistory; + EthFilter: EthFilter; + EthFilterAddress: EthFilterAddress; + EthFilterChanges: EthFilterChanges; + EthFilterTopic: EthFilterTopic; + EthFilterTopicEntry: EthFilterTopicEntry; + EthFilterTopicInner: EthFilterTopicInner; + EthHeader: EthHeader; + EthLog: EthLog; + EthReceipt: EthReceipt; + EthReceiptV0: EthReceiptV0; + EthReceiptV3: EthReceiptV3; + EthRichBlock: EthRichBlock; + EthRichHeader: EthRichHeader; + EthStorageProof: EthStorageProof; + EthSubKind: EthSubKind; + EthSubParams: EthSubParams; + EthSubResult: EthSubResult; + EthSyncInfo: EthSyncInfo; + EthSyncStatus: EthSyncStatus; + EthTransaction: EthTransaction; + EthTransactionAction: EthTransactionAction; + EthTransactionCondition: EthTransactionCondition; + EthTransactionRequest: EthTransactionRequest; + EthTransactionSignature: EthTransactionSignature; + EthTransactionStatus: EthTransactionStatus; + EthWork: EthWork; + Event: Event; + EventId: EventId; + EventIndex: EventIndex; + EventMetadataLatest: EventMetadataLatest; + EventMetadataV10: EventMetadataV10; + EventMetadataV11: EventMetadataV11; + EventMetadataV12: EventMetadataV12; + EventMetadataV13: EventMetadataV13; + EventMetadataV14: EventMetadataV14; + EventMetadataV9: EventMetadataV9; + EventRecord: EventRecord; + EvmAccount: EvmAccount; + EvmCallInfo: EvmCallInfo; + EvmCallInfoV2: EvmCallInfoV2; + EvmCreateInfo: EvmCreateInfo; + EvmCreateInfoV2: EvmCreateInfoV2; + EvmLog: EvmLog; + EvmVicinity: EvmVicinity; + EvmWeightInfo: EvmWeightInfo; + ExecReturnValue: ExecReturnValue; + ExecutorParam: ExecutorParam; + ExecutorParams: ExecutorParams; + ExecutorParamsHash: ExecutorParamsHash; + ExitError: ExitError; + ExitFatal: ExitFatal; + ExitReason: ExitReason; + ExitRevert: ExitRevert; + ExitSucceed: ExitSucceed; + ExplicitDisputeStatement: ExplicitDisputeStatement; + Exposure: Exposure; + ExtendedBalance: ExtendedBalance; + Extrinsic: Extrinsic; + ExtrinsicEra: ExtrinsicEra; + ExtrinsicInclusionMode: ExtrinsicInclusionMode; + ExtrinsicMetadataLatest: ExtrinsicMetadataLatest; + ExtrinsicMetadataV11: ExtrinsicMetadataV11; + ExtrinsicMetadataV12: ExtrinsicMetadataV12; + ExtrinsicMetadataV13: ExtrinsicMetadataV13; + ExtrinsicMetadataV14: ExtrinsicMetadataV14; + ExtrinsicMetadataV15: ExtrinsicMetadataV15; + ExtrinsicOrHash: ExtrinsicOrHash; + ExtrinsicPayload: ExtrinsicPayload; + ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; + ExtrinsicPayloadV4: ExtrinsicPayloadV4; + ExtrinsicPayloadV5: ExtrinsicPayloadV5; + ExtrinsicSignature: ExtrinsicSignature; + ExtrinsicSignatureV4: ExtrinsicSignatureV4; + ExtrinsicSignatureV5: ExtrinsicSignatureV5; + ExtrinsicStatus: ExtrinsicStatus; + ExtrinsicsWeight: ExtrinsicsWeight; + ExtrinsicUnknown: ExtrinsicUnknown; + ExtrinsicV4: ExtrinsicV4; + ExtrinsicV5: ExtrinsicV5; + f32: f32; + F32: F32; + f64: f64; + F64: F64; + FeeDetails: FeeDetails; + FileMetadata: FileMetadata; + Fixed128: Fixed128; + Fixed64: Fixed64; + FixedI128: FixedI128; + FixedI64: FixedI64; + FixedU128: FixedU128; + FixedU64: FixedU64; + Forcing: Forcing; + ForkTreePendingChange: ForkTreePendingChange; + ForkTreePendingChangeNode: ForkTreePendingChangeNode; + FullIdentification: FullIdentification; + FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest; + FunctionArgumentMetadataV10: FunctionArgumentMetadataV10; + FunctionArgumentMetadataV11: FunctionArgumentMetadataV11; + FunctionArgumentMetadataV12: FunctionArgumentMetadataV12; + FunctionArgumentMetadataV13: FunctionArgumentMetadataV13; + FunctionArgumentMetadataV14: FunctionArgumentMetadataV14; + FunctionArgumentMetadataV9: FunctionArgumentMetadataV9; + FunctionMetadataLatest: FunctionMetadataLatest; + FunctionMetadataV10: FunctionMetadataV10; + FunctionMetadataV11: FunctionMetadataV11; + FunctionMetadataV12: FunctionMetadataV12; + FunctionMetadataV13: FunctionMetadataV13; + FunctionMetadataV14: FunctionMetadataV14; + FunctionMetadataV9: FunctionMetadataV9; + FundIndex: FundIndex; + FundInfo: FundInfo; + Fungibility: Fungibility; + FungibilityV0: FungibilityV0; + FungibilityV1: FungibilityV1; + FungibilityV2: FungibilityV2; + FungibilityV3: FungibilityV3; + FungibilityV4: FungibilityV4; + FungiblesAccessError: FungiblesAccessError; + Gas: Gas; + GenesisBuildErr: GenesisBuildErr; + GetBspInfoError: GetBspInfoError; + GetChallengePeriodError: GetChallengePeriodError; + GetChallengeSeedError: GetChallengeSeedError; + GetCheckpointChallengesError: GetCheckpointChallengesError; + GetFileFromFileStorageResult: GetFileFromFileStorageResult; + GetLastTickProviderSubmittedProofError: GetLastTickProviderSubmittedProofError; + GetNextDeadlineTickError: GetNextDeadlineTickError; + GetUsersWithDebtOverThresholdError: GetUsersWithDebtOverThresholdError; + GiltBid: GiltBid; + GlobalValidationData: GlobalValidationData; + GlobalValidationSchedule: GlobalValidationSchedule; + GrandpaCommit: GrandpaCommit; + GrandpaEquivocation: GrandpaEquivocation; + GrandpaEquivocationProof: GrandpaEquivocationProof; + GrandpaEquivocationValue: GrandpaEquivocationValue; + GrandpaJustification: GrandpaJustification; + GrandpaPrecommit: GrandpaPrecommit; + GrandpaPrevote: GrandpaPrevote; + GrandpaSignedPrecommit: GrandpaSignedPrecommit; + GroupIndex: GroupIndex; + GroupRotationInfo: GroupRotationInfo; + H1024: H1024; + H128: H128; + H160: H160; + H2048: H2048; + H256: H256; + H32: H32; + H512: H512; + H64: H64; + Hash: Hash; + HeadData: HeadData; + Header: Header; + HeaderPartial: HeaderPartial; + Health: Health; + Heartbeat: Heartbeat; + HeartbeatTo244: HeartbeatTo244; + HostConfiguration: HostConfiguration; + HostFnWeights: HostFnWeights; + HostFnWeightsTo264: HostFnWeightsTo264; + HrmpChannel: HrmpChannel; + HrmpChannelId: HrmpChannelId; + HrmpOpenChannelRequest: HrmpOpenChannelRequest; + i128: i128; + I128: I128; + i16: i16; + I16: I16; + i256: i256; + I256: I256; + i32: i32; + I32: I32; + I32F32: I32F32; + i64: i64; + I64: I64; + i8: i8; + I8: I8; + IdentificationTuple: IdentificationTuple; + IdentityFields: IdentityFields; + IdentityInfo: IdentityInfo; + IdentityInfoAdditional: IdentityInfoAdditional; + IdentityInfoTo198: IdentityInfoTo198; + IdentityJudgement: IdentityJudgement; + ImmortalEra: ImmortalEra; + ImportedAux: ImportedAux; + InboundDownwardMessage: InboundDownwardMessage; + InboundHrmpLimitations: InboundHrmpLimitations; + InboundHrmpMessage: InboundHrmpMessage; + InboundHrmpMessages: InboundHrmpMessages; + InboundLaneData: InboundLaneData; + InboundRelayer: InboundRelayer; + InboundStatus: InboundStatus; + IncludedBlocks: IncludedBlocks; + InclusionFee: InclusionFee; + IncomingParachain: IncomingParachain; + IncomingParachainDeploy: IncomingParachainDeploy; + IncomingParachainFixed: IncomingParachainFixed; + IncompleteFileStatus: IncompleteFileStatus; + Index: Index; + IndicesLookupSource: IndicesLookupSource; + IndividualExposure: IndividualExposure; + InherentData: InherentData; + InherentIdentifier: InherentIdentifier; + InitializationData: InitializationData; + InstanceDetails: InstanceDetails; + InstanceId: InstanceId; + InstanceMetadata: InstanceMetadata; + InstantiateRequest: InstantiateRequest; + InstantiateRequestV1: InstantiateRequestV1; + InstantiateRequestV2: InstantiateRequestV2; + InstantiateReturnValue: InstantiateReturnValue; + InstantiateReturnValueOk: InstantiateReturnValueOk; + InstantiateReturnValueTo267: InstantiateReturnValueTo267; + InstructionV2: InstructionV2; + InstructionV3: InstructionV3; + InstructionV4: InstructionV4; + InstructionWeights: InstructionWeights; + InteriorMultiLocation: InteriorMultiLocation; + InteriorMultiLocationV2: InteriorMultiLocationV2; + InteriorMultiLocationV3: InteriorMultiLocationV3; + InvalidDisputeStatementKind: InvalidDisputeStatementKind; + InvalidTransaction: InvalidTransaction; + isize: isize; + ISize: ISize; + Json: Json; + Junction: Junction; + Junctions: Junctions; + JunctionsV1: JunctionsV1; + JunctionsV2: JunctionsV2; + JunctionsV3: JunctionsV3; + JunctionsV4: JunctionsV4; + JunctionV0: JunctionV0; + JunctionV1: JunctionV1; + JunctionV2: JunctionV2; + JunctionV3: JunctionV3; + JunctionV4: JunctionV4; + Justification: Justification; + JustificationNotification: JustificationNotification; + Justifications: Justifications; + Key: Key; + KeyOwnerProof: KeyOwnerProof; + Keys: Keys; + KeyType: KeyType; + KeyTypeId: KeyTypeId; + KeyValue: KeyValue; + KeyValueOption: KeyValueOption; + Kind: Kind; + LaneId: LaneId; + LastContribution: LastContribution; + LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo; + LeasePeriod: LeasePeriod; + LeasePeriodOf: LeasePeriodOf; + LegacyTransaction: LegacyTransaction; + Limits: Limits; + LimitsTo264: LimitsTo264; + LocalValidationData: LocalValidationData; + LockIdentifier: LockIdentifier; + LookupSource: LookupSource; + LookupTarget: LookupTarget; + LotteryConfig: LotteryConfig; + MainStorageProviderId: MainStorageProviderId; + MaxPalletNameLen: MaxPalletNameLen; + MaxPalletsInfo: MaxPalletsInfo; + MaybeErrorCodeV3: MaybeErrorCodeV3; + MaybeRandomness: MaybeRandomness; + MaybeVrf: MaybeVrf; + MemberCount: MemberCount; + MembershipProof: MembershipProof; + MerklePatriciaRoot: MerklePatriciaRoot; + MessageData: MessageData; + MessageId: MessageId; + MessageIngestionType: MessageIngestionType; + MessageKey: MessageKey; + MessageNonce: MessageNonce; + MessageQueueChain: MessageQueueChain; + MessagesDeliveryProofOf: MessagesDeliveryProofOf; + MessagesProofOf: MessagesProofOf; + MessagingStateSnapshot: MessagingStateSnapshot; + MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry; + MetadataAll: MetadataAll; + MetadataLatest: MetadataLatest; + MetadataV10: MetadataV10; + MetadataV11: MetadataV11; + MetadataV12: MetadataV12; + MetadataV13: MetadataV13; + MetadataV14: MetadataV14; + MetadataV15: MetadataV15; + MetadataV9: MetadataV9; + MigrationStatusResult: MigrationStatusResult; + Mixnode: Mixnode; + MixnodesErr: MixnodesErr; + MmrBatchProof: MmrBatchProof; + MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf; + MmrError: MmrError; + MmrHash: MmrHash; + MmrLeafBatchProof: MmrLeafBatchProof; + MmrLeafIndex: MmrLeafIndex; + MmrLeafProof: MmrLeafProof; + MmrNodeIndex: MmrNodeIndex; + MmrProof: MmrProof; + MmrRootHash: MmrRootHash; + ModuleConstantMetadataV10: ModuleConstantMetadataV10; + ModuleConstantMetadataV11: ModuleConstantMetadataV11; + ModuleConstantMetadataV12: ModuleConstantMetadataV12; + ModuleConstantMetadataV13: ModuleConstantMetadataV13; + ModuleConstantMetadataV9: ModuleConstantMetadataV9; + ModuleId: ModuleId; + ModuleMetadataV10: ModuleMetadataV10; + ModuleMetadataV11: ModuleMetadataV11; + ModuleMetadataV12: ModuleMetadataV12; + ModuleMetadataV13: ModuleMetadataV13; + ModuleMetadataV9: ModuleMetadataV9; + Moment: Moment; + MomentOf: MomentOf; + MoreAttestations: MoreAttestations; + MortalEra: MortalEra; + MultiAddress: MultiAddress; + MultiAsset: MultiAsset; + MultiAssetFilter: MultiAssetFilter; + MultiAssetFilterV1: MultiAssetFilterV1; + MultiAssetFilterV2: MultiAssetFilterV2; + MultiAssetFilterV3: MultiAssetFilterV3; + MultiAssetFilterV4: MultiAssetFilterV4; + MultiAssets: MultiAssets; + MultiAssetsV1: MultiAssetsV1; + MultiAssetsV2: MultiAssetsV2; + MultiAssetsV3: MultiAssetsV3; + MultiAssetsV4: MultiAssetsV4; + MultiAssetV0: MultiAssetV0; + MultiAssetV1: MultiAssetV1; + MultiAssetV2: MultiAssetV2; + MultiAssetV3: MultiAssetV3; + MultiAssetV4: MultiAssetV4; + MultiDisputeStatementSet: MultiDisputeStatementSet; + MultiLocation: MultiLocation; + MultiLocationV0: MultiLocationV0; + MultiLocationV1: MultiLocationV1; + MultiLocationV2: MultiLocationV2; + MultiLocationV3: MultiLocationV3; + MultiLocationV4: MultiLocationV4; + Multiplier: Multiplier; + Multisig: Multisig; + MultiSignature: MultiSignature; + MultiSigner: MultiSigner; + NetworkId: NetworkId; + NetworkIdV2: NetworkIdV2; + NetworkIdV3: NetworkIdV3; + NetworkIdV4: NetworkIdV4; + NetworkState: NetworkState; + NetworkStatePeerset: NetworkStatePeerset; + NetworkStatePeersetInfo: NetworkStatePeersetInfo; + NewBidder: NewBidder; + NextAuthority: NextAuthority; + NextConfigDescriptor: NextConfigDescriptor; + NextConfigDescriptorV1: NextConfigDescriptorV1; + NftCollectionId: NftCollectionId; + NftItemId: NftItemId; + NodeFeatures: NodeFeatures; + NodeRole: NodeRole; + Nominations: Nominations; + NominatorIndex: NominatorIndex; + NominatorIndexCompact: NominatorIndexCompact; + NotConnectedPeer: NotConnectedPeer; + NpApiError: NpApiError; + NpPoolId: NpPoolId; + Null: Null; + OccupiedCore: OccupiedCore; + OccupiedCoreAssumption: OccupiedCoreAssumption; + OffchainAccuracy: OffchainAccuracy; + OffchainAccuracyCompact: OffchainAccuracyCompact; + OffenceDetails: OffenceDetails; + Offender: Offender; + OldV1SessionInfo: OldV1SessionInfo; + OpaqueCall: OpaqueCall; + OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof; + OpaqueMetadata: OpaqueMetadata; + OpaqueMultiaddr: OpaqueMultiaddr; + OpaqueNetworkState: OpaqueNetworkState; + OpaquePeerId: OpaquePeerId; + OpaqueTimeSlot: OpaqueTimeSlot; + OpenTip: OpenTip; + OpenTipFinderTo225: OpenTipFinderTo225; + OpenTipTip: OpenTipTip; + OpenTipTo225: OpenTipTo225; + OperatingMode: OperatingMode; + OptionBool: OptionBool; + Origin: Origin; + OriginCaller: OriginCaller; + OriginKindV0: OriginKindV0; + OriginKindV1: OriginKindV1; + OriginKindV2: OriginKindV2; + OriginKindV3: OriginKindV3; + OriginKindV4: OriginKindV4; + OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; + OutboundHrmpMessage: OutboundHrmpMessage; + OutboundLaneData: OutboundLaneData; + OutboundMessageFee: OutboundMessageFee; + OutboundPayload: OutboundPayload; + OutboundStatus: OutboundStatus; + Outcome: Outcome; + OutcomeV4: OutcomeV4; + OuterEnums15: OuterEnums15; + OverweightIndex: OverweightIndex; + Owner: Owner; + PageCounter: PageCounter; + PageIndexData: PageIndexData; + PalletCallMetadataLatest: PalletCallMetadataLatest; + PalletCallMetadataV14: PalletCallMetadataV14; + PalletConstantMetadataLatest: PalletConstantMetadataLatest; + PalletConstantMetadataV14: PalletConstantMetadataV14; + PalletErrorMetadataLatest: PalletErrorMetadataLatest; + PalletErrorMetadataV14: PalletErrorMetadataV14; + PalletEventMetadataLatest: PalletEventMetadataLatest; + PalletEventMetadataV14: PalletEventMetadataV14; + PalletId: PalletId; + PalletInfoV3: PalletInfoV3; + PalletInfoV4: PalletInfoV4; + PalletMetadataLatest: PalletMetadataLatest; + PalletMetadataV14: PalletMetadataV14; + PalletMetadataV15: PalletMetadataV15; + PalletsOrigin: PalletsOrigin; + PalletStorageMetadataLatest: PalletStorageMetadataLatest; + PalletStorageMetadataV14: PalletStorageMetadataV14; + PalletVersion: PalletVersion; + ParachainDispatchOrigin: ParachainDispatchOrigin; + ParachainInherentData: ParachainInherentData; + ParachainProposal: ParachainProposal; + ParachainsInherentData: ParachainsInherentData; + ParaGenesisArgs: ParaGenesisArgs; + ParaId: ParaId; + ParaInfo: ParaInfo; + ParaLifecycle: ParaLifecycle; + Parameter: Parameter; + ParaPastCodeMeta: ParaPastCodeMeta; + ParaScheduling: ParaScheduling; + ParathreadClaim: ParathreadClaim; + ParathreadClaimQueue: ParathreadClaimQueue; + ParathreadEntry: ParathreadEntry; + ParaValidatorIndex: ParaValidatorIndex; + Pays: Pays; + Peer: Peer; + PeerEndpoint: PeerEndpoint; + PeerEndpointAddr: PeerEndpointAddr; + PeerInfo: PeerInfo; + PeerPing: PeerPing; + PendingChange: PendingChange; + PendingPause: PendingPause; + PendingResume: PendingResume; + PendingSlashes: PendingSlashes; + Perbill: Perbill; + Percent: Percent; + PerDispatchClassU32: PerDispatchClassU32; + PerDispatchClassWeight: PerDispatchClassWeight; + PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass; + Period: Period; + Permill: Permill; + PermissionLatest: PermissionLatest; + PermissionsV1: PermissionsV1; + PermissionVersions: PermissionVersions; + Perquintill: Perquintill; + PersistedValidationData: PersistedValidationData; + PerU16: PerU16; + Phantom: Phantom; + PhantomData: PhantomData; + Phase: Phase; + PhragmenScore: PhragmenScore; + Points: Points; + PortableType: PortableType; + PortableTypeV14: PortableTypeV14; + PostDispatchInfo: PostDispatchInfo; + Precommits: Precommits; + PrefabWasmModule: PrefabWasmModule; + PrefixedStorageKey: PrefixedStorageKey; + PreimageStatus: PreimageStatus; + PreimageStatusAvailable: PreimageStatusAvailable; + PreRuntime: PreRuntime; + Prevotes: Prevotes; + Priority: Priority; + PriorLock: PriorLock; + PropIndex: PropIndex; + Proposal: Proposal; + ProposalIndex: ProposalIndex; + ProviderId: ProviderId; + ProxyAnnouncement: ProxyAnnouncement; + ProxyDefinition: ProxyDefinition; + ProxyState: ProxyState; + ProxyType: ProxyType; + PvfCheckStatement: PvfCheckStatement; + PvfExecTimeoutKind: PvfExecTimeoutKind; + PvfPrepTimeoutKind: PvfPrepTimeoutKind; + QueryAvailableStorageCapacityError: QueryAvailableStorageCapacityError; + QueryBspConfirmChunksToProveForFileError: QueryBspConfirmChunksToProveForFileError; + QueryConfirmChunksToProveForFileError: QueryConfirmChunksToProveForFileError; + QueryEarliestChangeCapacityBlockError: QueryEarliestChangeCapacityBlockError; + QueryFileEarliestVolunteerBlockError: QueryFileEarliestVolunteerBlockError; + QueryId: QueryId; + QueryMspConfirmChunksToProveForFileError: QueryMspConfirmChunksToProveForFileError; + QueryMspIdOfBucketIdError: QueryMspIdOfBucketIdError; + QueryResponseInfoV3: QueryResponseInfoV3; + QueryResponseInfoV4: QueryResponseInfoV4; + QueryStatus: QueryStatus; + QueryStorageProviderCapacityError: QueryStorageProviderCapacityError; + QueueConfigData: QueueConfigData; + QueuedParathread: QueuedParathread; + Randomness: Randomness; + RandomnessOutput: RandomnessOutput; + Raw: Raw; + RawAuraPreDigest: RawAuraPreDigest; + RawBabePreDigest: RawBabePreDigest; + RawBabePreDigestCompat: RawBabePreDigestCompat; + RawBabePreDigestPrimary: RawBabePreDigestPrimary; + RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159; + RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain; + RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159; + RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF; + RawBabePreDigestTo159: RawBabePreDigestTo159; + RawOrigin: RawOrigin; + RawSolution: RawSolution; + RawSolutionTo265: RawSolutionTo265; + RawSolutionWith16: RawSolutionWith16; + RawSolutionWith24: RawSolutionWith24; + RawVRFOutput: RawVRFOutput; + ReadProof: ReadProof; + ReadySolution: ReadySolution; + Reasons: Reasons; + RecoveryConfig: RecoveryConfig; + RefCount: RefCount; + RefCountTo259: RefCountTo259; + ReferendumIndex: ReferendumIndex; + ReferendumInfo: ReferendumInfo; + ReferendumInfoFinished: ReferendumInfoFinished; + ReferendumInfoTo239: ReferendumInfoTo239; + ReferendumStatus: ReferendumStatus; + RegisteredParachainInfo: RegisteredParachainInfo; + RegistrarIndex: RegistrarIndex; + RegistrarInfo: RegistrarInfo; + Registration: Registration; + RegistrationJudgement: RegistrationJudgement; + RegistrationTo198: RegistrationTo198; + RelayBlockNumber: RelayBlockNumber; + RelayChainBlockNumber: RelayChainBlockNumber; + RelayChainHash: RelayChainHash; + RelayerId: RelayerId; + RelayHash: RelayHash; + Releases: Releases; + Remark: Remark; + Renouncing: Renouncing; + RentProjection: RentProjection; + ReplacementTimes: ReplacementTimes; + ReportedRoundStates: ReportedRoundStates; + Reporter: Reporter; + ReportIdOf: ReportIdOf; + ReserveData: ReserveData; + ReserveIdentifier: ReserveIdentifier; + Response: Response; + ResponseV0: ResponseV0; + ResponseV1: ResponseV1; + ResponseV2: ResponseV2; + ResponseV2Error: ResponseV2Error; + ResponseV3: ResponseV3; + ResponseV3Error: ResponseV3Error; + ResponseV3Result: ResponseV3Result; + ResponseV4: ResponseV4; + Retriable: Retriable; + RewardDestination: RewardDestination; + RewardPoint: RewardPoint; + RoundSnapshot: RoundSnapshot; + RoundState: RoundState; + RpcMethods: RpcMethods; + RuntimeApiMetadataLatest: RuntimeApiMetadataLatest; + RuntimeApiMetadataV15: RuntimeApiMetadataV15; + RuntimeApiMethodMetadataV15: RuntimeApiMethodMetadataV15; + RuntimeApiMethodParamMetadataV15: RuntimeApiMethodParamMetadataV15; + RuntimeCall: RuntimeCall; + RuntimeDbWeight: RuntimeDbWeight; + RuntimeDispatchInfo: RuntimeDispatchInfo; + RuntimeDispatchInfoV1: RuntimeDispatchInfoV1; + RuntimeDispatchInfoV2: RuntimeDispatchInfoV2; + RuntimeEvent: RuntimeEvent; + RuntimeVersion: RuntimeVersion; + RuntimeVersionApi: RuntimeVersionApi; + RuntimeVersionPartial: RuntimeVersionPartial; + RuntimeVersionPre3: RuntimeVersionPre3; + RuntimeVersionPre4: RuntimeVersionPre4; + SaveFileToDisk: SaveFileToDisk; + Schedule: Schedule; + Scheduled: Scheduled; + ScheduledCore: ScheduledCore; + ScheduledTo254: ScheduledTo254; + SchedulePeriod: SchedulePeriod; + SchedulePriority: SchedulePriority; + ScheduleTo212: ScheduleTo212; + ScheduleTo258: ScheduleTo258; + ScheduleTo264: ScheduleTo264; + Scheduling: Scheduling; + ScrapedOnChainVotes: ScrapedOnChainVotes; + Seal: Seal; + SealV0: SealV0; + SeatHolder: SeatHolder; + SeedOf: SeedOf; + ServiceQuality: ServiceQuality; + SessionIndex: SessionIndex; + SessionInfo: SessionInfo; + SessionInfoValidatorGroup: SessionInfoValidatorGroup; + SessionKeys1: SessionKeys1; + SessionKeys10: SessionKeys10; + SessionKeys10B: SessionKeys10B; + SessionKeys2: SessionKeys2; + SessionKeys3: SessionKeys3; + SessionKeys4: SessionKeys4; + SessionKeys5: SessionKeys5; + SessionKeys6: SessionKeys6; + SessionKeys6B: SessionKeys6B; + SessionKeys7: SessionKeys7; + SessionKeys7B: SessionKeys7B; + SessionKeys8: SessionKeys8; + SessionKeys8B: SessionKeys8B; + SessionKeys9: SessionKeys9; + SessionKeys9B: SessionKeys9B; + SessionPhase: SessionPhase; + SessionStatus: SessionStatus; + SetId: SetId; + SetIndex: SetIndex; + Si0Field: Si0Field; + Si0LookupTypeId: Si0LookupTypeId; + Si0Path: Si0Path; + Si0Type: Si0Type; + Si0TypeDef: Si0TypeDef; + Si0TypeDefArray: Si0TypeDefArray; + Si0TypeDefBitSequence: Si0TypeDefBitSequence; + Si0TypeDefCompact: Si0TypeDefCompact; + Si0TypeDefComposite: Si0TypeDefComposite; + Si0TypeDefPhantom: Si0TypeDefPhantom; + Si0TypeDefPrimitive: Si0TypeDefPrimitive; + Si0TypeDefSequence: Si0TypeDefSequence; + Si0TypeDefTuple: Si0TypeDefTuple; + Si0TypeDefVariant: Si0TypeDefVariant; + Si0TypeParameter: Si0TypeParameter; + Si0Variant: Si0Variant; + Si1Field: Si1Field; + Si1LookupTypeId: Si1LookupTypeId; + Si1Path: Si1Path; + Si1Type: Si1Type; + Si1TypeDef: Si1TypeDef; + Si1TypeDefArray: Si1TypeDefArray; + Si1TypeDefBitSequence: Si1TypeDefBitSequence; + Si1TypeDefCompact: Si1TypeDefCompact; + Si1TypeDefComposite: Si1TypeDefComposite; + Si1TypeDefPrimitive: Si1TypeDefPrimitive; + Si1TypeDefSequence: Si1TypeDefSequence; + Si1TypeDefTuple: Si1TypeDefTuple; + Si1TypeDefVariant: Si1TypeDefVariant; + Si1TypeParameter: Si1TypeParameter; + Si1Variant: Si1Variant; + SiField: SiField; + Signature: Signature; + SignedAvailabilityBitfield: SignedAvailabilityBitfield; + SignedAvailabilityBitfields: SignedAvailabilityBitfields; + SignedBlock: SignedBlock; + SignedBlockWithJustification: SignedBlockWithJustification; + SignedBlockWithJustifications: SignedBlockWithJustifications; + SignedExtensionMetadataLatest: SignedExtensionMetadataLatest; + SignedExtensionMetadataV14: SignedExtensionMetadataV14; + SignedSubmission: SignedSubmission; + SignedSubmissionOf: SignedSubmissionOf; + SignedSubmissionTo276: SignedSubmissionTo276; + SignerPayload: SignerPayload; + SigningContext: SigningContext; + SiLookupTypeId: SiLookupTypeId; + SiPath: SiPath; + SiType: SiType; + SiTypeDef: SiTypeDef; + SiTypeDefArray: SiTypeDefArray; + SiTypeDefBitSequence: SiTypeDefBitSequence; + SiTypeDefCompact: SiTypeDefCompact; + SiTypeDefComposite: SiTypeDefComposite; + SiTypeDefPrimitive: SiTypeDefPrimitive; + SiTypeDefSequence: SiTypeDefSequence; + SiTypeDefTuple: SiTypeDefTuple; + SiTypeDefVariant: SiTypeDefVariant; + SiTypeParameter: SiTypeParameter; + SiVariant: SiVariant; + SlashingOffenceKind: SlashingOffenceKind; + SlashingSpans: SlashingSpans; + SlashingSpansTo204: SlashingSpansTo204; + SlashJournalEntry: SlashJournalEntry; + Slot: Slot; + SlotDuration: SlotDuration; + SlotNumber: SlotNumber; + SlotRange: SlotRange; + SlotRange10: SlotRange10; + SocietyJudgement: SocietyJudgement; + SocietyVote: SocietyVote; + SolutionOrSnapshotSize: SolutionOrSnapshotSize; + SolutionSupport: SolutionSupport; + SolutionSupports: SolutionSupports; + SpanIndex: SpanIndex; + SpanRecord: SpanRecord; + SpecVersion: SpecVersion; + Sr25519Signature: Sr25519Signature; + StakingLedger: StakingLedger; + StakingLedgerTo223: StakingLedgerTo223; + StakingLedgerTo240: StakingLedgerTo240; + Statement: Statement; + StatementKind: StatementKind; + StatementStoreInvalidStatement: StatementStoreInvalidStatement; + StatementStoreStatementSource: StatementStoreStatementSource; + StatementStoreValidStatement: StatementStoreValidStatement; + StorageChangeSet: StorageChangeSet; + StorageData: StorageData; + StorageDataUnit: StorageDataUnit; + StorageDeposit: StorageDeposit; + StorageEntryMetadataLatest: StorageEntryMetadataLatest; + StorageEntryMetadataV10: StorageEntryMetadataV10; + StorageEntryMetadataV11: StorageEntryMetadataV11; + StorageEntryMetadataV12: StorageEntryMetadataV12; + StorageEntryMetadataV13: StorageEntryMetadataV13; + StorageEntryMetadataV14: StorageEntryMetadataV14; + StorageEntryMetadataV9: StorageEntryMetadataV9; + StorageEntryModifierLatest: StorageEntryModifierLatest; + StorageEntryModifierV10: StorageEntryModifierV10; + StorageEntryModifierV11: StorageEntryModifierV11; + StorageEntryModifierV12: StorageEntryModifierV12; + StorageEntryModifierV13: StorageEntryModifierV13; + StorageEntryModifierV14: StorageEntryModifierV14; + StorageEntryModifierV9: StorageEntryModifierV9; + StorageEntryTypeLatest: StorageEntryTypeLatest; + StorageEntryTypeV10: StorageEntryTypeV10; + StorageEntryTypeV11: StorageEntryTypeV11; + StorageEntryTypeV12: StorageEntryTypeV12; + StorageEntryTypeV13: StorageEntryTypeV13; + StorageEntryTypeV14: StorageEntryTypeV14; + StorageEntryTypeV9: StorageEntryTypeV9; + StorageHasher: StorageHasher; + StorageHasherV10: StorageHasherV10; + StorageHasherV11: StorageHasherV11; + StorageHasherV12: StorageHasherV12; + StorageHasherV13: StorageHasherV13; + StorageHasherV14: StorageHasherV14; + StorageHasherV9: StorageHasherV9; + StorageInfo: StorageInfo; + StorageKey: StorageKey; + StorageKind: StorageKind; + StorageMetadataV10: StorageMetadataV10; + StorageMetadataV11: StorageMetadataV11; + StorageMetadataV12: StorageMetadataV12; + StorageMetadataV13: StorageMetadataV13; + StorageMetadataV9: StorageMetadataV9; + StorageProof: StorageProof; + StorageProviderId: StorageProviderId; + StoredPendingChange: StoredPendingChange; + StoredState: StoredState; + StrikeCount: StrikeCount; + SubId: SubId; + SubmissionIndicesOf: SubmissionIndicesOf; + Supports: Supports; + SyncState: SyncState; + SystemInherentData: SystemInherentData; + SystemOrigin: SystemOrigin; + Tally: Tally; + TaskAddress: TaskAddress; + TAssetBalance: TAssetBalance; + TAssetConversion: TAssetConversion; + TAssetDepositBalance: TAssetDepositBalance; + Text: Text; + Timepoint: Timepoint; + TokenError: TokenError; + TombstoneContractInfo: TombstoneContractInfo; + TraceBlockResponse: TraceBlockResponse; + TraceError: TraceError; + TransactionalError: TransactionalError; + TransactionInfo: TransactionInfo; + TransactionLongevity: TransactionLongevity; + TransactionPriority: TransactionPriority; + TransactionSource: TransactionSource; + TransactionStorageProof: TransactionStorageProof; + TransactionTag: TransactionTag; + TransactionV0: TransactionV0; + TransactionV1: TransactionV1; + TransactionV2: TransactionV2; + TransactionValidity: TransactionValidity; + TransactionValidityError: TransactionValidityError; + TransientValidationData: TransientValidationData; + TreasuryProposal: TreasuryProposal; + TrieId: TrieId; + TrieIndex: TrieIndex; + TrieRemoveMutation: TrieRemoveMutation; + Type: Type; + u128: u128; + U128: U128; + u16: u16; + U16: U16; + u256: u256; + U256: U256; + u32: u32; + U32: U32; + U32F32: U32F32; + u64: u64; + U64: U64; + u8: u8; + U8: U8; + UnappliedSlash: UnappliedSlash; + UnappliedSlashOther: UnappliedSlashOther; + UncheckedFungibilityV4: UncheckedFungibilityV4; + UncleEntryItem: UncleEntryItem; + UnknownTransaction: UnknownTransaction; + UnlockChunk: UnlockChunk; + UnrewardedRelayer: UnrewardedRelayer; + UnrewardedRelayersState: UnrewardedRelayersState; + UpgradeGoAhead: UpgradeGoAhead; + UpgradeRestriction: UpgradeRestriction; + UpwardMessage: UpwardMessage; + usize: usize; + USize: USize; + ValidationCode: ValidationCode; + ValidationCodeHash: ValidationCodeHash; + ValidationData: ValidationData; + ValidationDataType: ValidationDataType; + ValidationFunctionParams: ValidationFunctionParams; + ValidatorCount: ValidatorCount; + ValidatorId: ValidatorId; + ValidatorIdOf: ValidatorIdOf; + ValidatorIndex: ValidatorIndex; + ValidatorIndexCompact: ValidatorIndexCompact; + ValidatorPrefs: ValidatorPrefs; + ValidatorPrefsTo145: ValidatorPrefsTo145; + ValidatorPrefsTo196: ValidatorPrefsTo196; + ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked; + ValidatorPrefsWithCommission: ValidatorPrefsWithCommission; + ValidatorSet: ValidatorSet; + ValidatorSetId: ValidatorSetId; + ValidatorSignature: ValidatorSignature; + ValidDisputeStatementKind: ValidDisputeStatementKind; + ValidityAttestation: ValidityAttestation; + ValidTransaction: ValidTransaction; + VecInboundHrmpMessage: VecInboundHrmpMessage; + VersionedMultiAsset: VersionedMultiAsset; + VersionedMultiAssets: VersionedMultiAssets; + VersionedMultiLocation: VersionedMultiLocation; + VersionedResponse: VersionedResponse; + VersionedXcm: VersionedXcm; + VersionMigrationStage: VersionMigrationStage; + VersionV3: VersionV3; + VersionV4: VersionV4; + VestingInfo: VestingInfo; + VestingSchedule: VestingSchedule; + Vote: Vote; + VoteIndex: VoteIndex; + Voter: Voter; + VoterInfo: VoterInfo; + Votes: Votes; + VotesTo230: VotesTo230; + VoteThreshold: VoteThreshold; + VoteWeight: VoteWeight; + Voting: Voting; + VotingDelegating: VotingDelegating; + VotingDirect: VotingDirect; + VotingDirectVote: VotingDirectVote; + VouchingStatus: VouchingStatus; + VrfData: VrfData; + VrfOutput: VrfOutput; + VrfProof: VrfProof; + Weight: Weight; + WeightLimitV2: WeightLimitV2; + WeightLimitV3: WeightLimitV3; + WeightMultiplier: WeightMultiplier; + WeightPerClass: WeightPerClass; + WeightToFeeCoefficient: WeightToFeeCoefficient; + WeightV0: WeightV0; + WeightV1: WeightV1; + WeightV2: WeightV2; + WildFungibility: WildFungibility; + WildFungibilityV0: WildFungibilityV0; + WildFungibilityV1: WildFungibilityV1; + WildFungibilityV2: WildFungibilityV2; + WildFungibilityV3: WildFungibilityV3; + WildFungibilityV4: WildFungibilityV4; + WildMultiAsset: WildMultiAsset; + WildMultiAssetV1: WildMultiAssetV1; + WildMultiAssetV2: WildMultiAssetV2; + WildMultiAssetV3: WildMultiAssetV3; + WildMultiAssetV4: WildMultiAssetV4; + WinnersData: WinnersData; + WinnersData10: WinnersData10; + WinnersDataTuple: WinnersDataTuple; + WinnersDataTuple10: WinnersDataTuple10; + WinningData: WinningData; + WinningData10: WinningData10; + WinningDataEntry: WinningDataEntry; + WithdrawReasons: WithdrawReasons; + Xcm: Xcm; + XcmAssetId: XcmAssetId; + XcmDryRunApiError: XcmDryRunApiError; + XcmDryRunEffects: XcmDryRunEffects; + XcmError: XcmError; + XcmErrorV0: XcmErrorV0; + XcmErrorV1: XcmErrorV1; + XcmErrorV2: XcmErrorV2; + XcmErrorV3: XcmErrorV3; + XcmErrorV4: XcmErrorV4; + XcmOrderV0: XcmOrderV0; + XcmOrderV1: XcmOrderV1; + XcmOrigin: XcmOrigin; + XcmOriginKind: XcmOriginKind; + XcmPaymentApiError: XcmPaymentApiError; + XcmpMessageFormat: XcmpMessageFormat; + XcmV0: XcmV0; + XcmV1: XcmV1; + XcmV2: XcmV2; + XcmV3: XcmV3; + XcmV4: XcmV4; + XcmVersion: XcmVersion; + } // InterfaceTypes +} // declare module diff --git a/api-augment/src/interfaces/lookup.ts b/api-augment/src/interfaces/lookup.ts index 0d5fb616c..9ff267b96 100644 --- a/api-augment/src/interfaces/lookup.ts +++ b/api-augment/src/interfaces/lookup.ts @@ -1,4724 +1,4504 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -/* eslint-disable sort-keys */ - -export default { - /** - * Lookup3: frame_system::AccountInfo> - **/ - FrameSystemAccountInfo: { - nonce: "u32", - consumers: "u32", - providers: "u32", - sufficients: "u32", - data: "PalletBalancesAccountData" - }, - /** - * Lookup5: pallet_balances::types::AccountData - **/ - PalletBalancesAccountData: { - free: "u128", - reserved: "u128", - frozen: "u128", - flags: "u128" - }, - /** - * Lookup9: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeight: { - normal: "SpWeightsWeightV2Weight", - operational: "SpWeightsWeightV2Weight", - mandatory: "SpWeightsWeightV2Weight" - }, - /** - * Lookup10: sp_weights::weight_v2::Weight - **/ - SpWeightsWeightV2Weight: { - refTime: "Compact", - proofSize: "Compact" - }, - /** - * Lookup15: sp_runtime::generic::digest::Digest - **/ - SpRuntimeDigest: { - logs: "Vec" - }, - /** - * Lookup17: sp_runtime::generic::digest::DigestItem - **/ - SpRuntimeDigestDigestItem: { - _enum: { - Other: "Bytes", - __Unused1: "Null", - __Unused2: "Null", - __Unused3: "Null", - Consensus: "([u8;4],Bytes)", - Seal: "([u8;4],Bytes)", - PreRuntime: "([u8;4],Bytes)", - __Unused7: "Null", - RuntimeEnvironmentUpdated: "Null" - } - }, - /** - * Lookup20: frame_system::EventRecord - **/ - FrameSystemEventRecord: { - phase: "FrameSystemPhase", - event: "Event", - topics: "Vec" - }, - /** - * Lookup22: frame_system::pallet::Event - **/ - FrameSystemEvent: { - _enum: { - ExtrinsicSuccess: { - dispatchInfo: "FrameSupportDispatchDispatchInfo" - }, - ExtrinsicFailed: { - dispatchError: "SpRuntimeDispatchError", - dispatchInfo: "FrameSupportDispatchDispatchInfo" - }, - CodeUpdated: "Null", - NewAccount: { - account: "AccountId32" - }, - KilledAccount: { - account: "AccountId32" - }, - Remarked: { - _alias: { - hash_: "hash" - }, - sender: "AccountId32", - hash_: "H256" - }, - UpgradeAuthorized: { - codeHash: "H256", - checkVersion: "bool" - } - } - }, - /** - * Lookup23: frame_support::dispatch::DispatchInfo - **/ - FrameSupportDispatchDispatchInfo: { - weight: "SpWeightsWeightV2Weight", - class: "FrameSupportDispatchDispatchClass", - paysFee: "FrameSupportDispatchPays" - }, - /** - * Lookup24: frame_support::dispatch::DispatchClass - **/ - FrameSupportDispatchDispatchClass: { - _enum: ["Normal", "Operational", "Mandatory"] - }, - /** - * Lookup25: frame_support::dispatch::Pays - **/ - FrameSupportDispatchPays: { - _enum: ["Yes", "No"] - }, - /** - * Lookup26: sp_runtime::DispatchError - **/ - SpRuntimeDispatchError: { - _enum: { - Other: "Null", - CannotLookup: "Null", - BadOrigin: "Null", - Module: "SpRuntimeModuleError", - ConsumerRemaining: "Null", - NoProviders: "Null", - TooManyConsumers: "Null", - Token: "SpRuntimeTokenError", - Arithmetic: "SpArithmeticArithmeticError", - Transactional: "SpRuntimeTransactionalError", - Exhausted: "Null", - Corruption: "Null", - Unavailable: "Null", - RootNotAllowed: "Null" - } - }, - /** - * Lookup27: sp_runtime::ModuleError - **/ - SpRuntimeModuleError: { - index: "u8", - error: "[u8;4]" - }, - /** - * Lookup28: sp_runtime::TokenError - **/ - SpRuntimeTokenError: { - _enum: [ - "FundsUnavailable", - "OnlyProvider", - "BelowMinimum", - "CannotCreate", - "UnknownAsset", - "Frozen", - "Unsupported", - "CannotCreateHold", - "NotExpendable", - "Blocked" - ] - }, - /** - * Lookup29: sp_arithmetic::ArithmeticError - **/ - SpArithmeticArithmeticError: { - _enum: ["Underflow", "Overflow", "DivisionByZero"] - }, - /** - * Lookup30: sp_runtime::TransactionalError - **/ - SpRuntimeTransactionalError: { - _enum: ["LimitReached", "NoLayer"] - }, - /** - * Lookup31: cumulus_pallet_parachain_system::pallet::Event - **/ - CumulusPalletParachainSystemEvent: { - _enum: { - ValidationFunctionStored: "Null", - ValidationFunctionApplied: { - relayChainBlockNum: "u32" - }, - ValidationFunctionDiscarded: "Null", - DownwardMessagesReceived: { - count: "u32" - }, - DownwardMessagesProcessed: { - weightUsed: "SpWeightsWeightV2Weight", - dmqHead: "H256" - }, - UpwardMessageSent: { - messageHash: "Option<[u8;32]>" - } - } - }, - /** - * Lookup33: pallet_balances::pallet::Event - **/ - PalletBalancesEvent: { - _enum: { - Endowed: { - account: "AccountId32", - freeBalance: "u128" - }, - DustLost: { - account: "AccountId32", - amount: "u128" - }, - Transfer: { - from: "AccountId32", - to: "AccountId32", - amount: "u128" - }, - BalanceSet: { - who: "AccountId32", - free: "u128" - }, - Reserved: { - who: "AccountId32", - amount: "u128" - }, - Unreserved: { - who: "AccountId32", - amount: "u128" - }, - ReserveRepatriated: { - from: "AccountId32", - to: "AccountId32", - amount: "u128", - destinationStatus: "FrameSupportTokensMiscBalanceStatus" - }, - Deposit: { - who: "AccountId32", - amount: "u128" - }, - Withdraw: { - who: "AccountId32", - amount: "u128" - }, - Slashed: { - who: "AccountId32", - amount: "u128" - }, - Minted: { - who: "AccountId32", - amount: "u128" - }, - Burned: { - who: "AccountId32", - amount: "u128" - }, - Suspended: { - who: "AccountId32", - amount: "u128" - }, - Restored: { - who: "AccountId32", - amount: "u128" - }, - Upgraded: { - who: "AccountId32" - }, - Issued: { - amount: "u128" - }, - Rescinded: { - amount: "u128" - }, - Locked: { - who: "AccountId32", - amount: "u128" - }, - Unlocked: { - who: "AccountId32", - amount: "u128" - }, - Frozen: { - who: "AccountId32", - amount: "u128" - }, - Thawed: { - who: "AccountId32", - amount: "u128" - }, - TotalIssuanceForced: { - _alias: { - new_: "new" - }, - old: "u128", - new_: "u128" - } - } - }, - /** - * Lookup34: frame_support::traits::tokens::misc::BalanceStatus - **/ - FrameSupportTokensMiscBalanceStatus: { - _enum: ["Free", "Reserved"] - }, - /** - * Lookup35: pallet_transaction_payment::pallet::Event - **/ - PalletTransactionPaymentEvent: { - _enum: { - TransactionFeePaid: { - who: "AccountId32", - actualFee: "u128", - tip: "u128" - } - } - }, - /** - * Lookup36: pallet_sudo::pallet::Event - **/ - PalletSudoEvent: { - _enum: { - Sudid: { - sudoResult: "Result" - }, - KeyChanged: { - _alias: { - new_: "new" - }, - old: "Option", - new_: "AccountId32" - }, - KeyRemoved: "Null", - SudoAsDone: { - sudoResult: "Result" - } - } - }, - /** - * Lookup40: pallet_collator_selection::pallet::Event - **/ - PalletCollatorSelectionEvent: { - _enum: { - NewInvulnerables: { - invulnerables: "Vec" - }, - InvulnerableAdded: { - accountId: "AccountId32" - }, - InvulnerableRemoved: { - accountId: "AccountId32" - }, - NewDesiredCandidates: { - desiredCandidates: "u32" - }, - NewCandidacyBond: { - bondAmount: "u128" - }, - CandidateAdded: { - accountId: "AccountId32", - deposit: "u128" - }, - CandidateBondUpdated: { - accountId: "AccountId32", - deposit: "u128" - }, - CandidateRemoved: { - accountId: "AccountId32" - }, - CandidateReplaced: { - _alias: { - new_: "new" - }, - old: "AccountId32", - new_: "AccountId32", - deposit: "u128" - }, - InvalidInvulnerableSkipped: { - accountId: "AccountId32" - } - } - }, - /** - * Lookup42: pallet_session::pallet::Event - **/ - PalletSessionEvent: { - _enum: { - NewSession: { - sessionIndex: "u32" - } - } - }, - /** - * Lookup43: cumulus_pallet_xcmp_queue::pallet::Event - **/ - CumulusPalletXcmpQueueEvent: { - _enum: { - XcmpMessageSent: { - messageHash: "[u8;32]" - } - } - }, - /** - * Lookup44: pallet_xcm::pallet::Event - **/ - PalletXcmEvent: { - _enum: { - Attempted: { - outcome: "StagingXcmV4TraitsOutcome" - }, - Sent: { - origin: "StagingXcmV4Location", - destination: "StagingXcmV4Location", - message: "StagingXcmV4Xcm", - messageId: "[u8;32]" - }, - UnexpectedResponse: { - origin: "StagingXcmV4Location", - queryId: "u64" - }, - ResponseReady: { - queryId: "u64", - response: "StagingXcmV4Response" - }, - Notified: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8" - }, - NotifyOverweight: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8", - actualWeight: "SpWeightsWeightV2Weight", - maxBudgetedWeight: "SpWeightsWeightV2Weight" - }, - NotifyDispatchError: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8" - }, - NotifyDecodeFailed: { - queryId: "u64", - palletIndex: "u8", - callIndex: "u8" - }, - InvalidResponder: { - origin: "StagingXcmV4Location", - queryId: "u64", - expectedLocation: "Option" - }, - InvalidResponderVersion: { - origin: "StagingXcmV4Location", - queryId: "u64" - }, - ResponseTaken: { - queryId: "u64" - }, - AssetsTrapped: { - _alias: { - hash_: "hash" - }, - hash_: "H256", - origin: "StagingXcmV4Location", - assets: "XcmVersionedAssets" - }, - VersionChangeNotified: { - destination: "StagingXcmV4Location", - result: "u32", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - SupportedVersionChanged: { - location: "StagingXcmV4Location", - version: "u32" - }, - NotifyTargetSendFail: { - location: "StagingXcmV4Location", - queryId: "u64", - error: "XcmV3TraitsError" - }, - NotifyTargetMigrationFail: { - location: "XcmVersionedLocation", - queryId: "u64" - }, - InvalidQuerierVersion: { - origin: "StagingXcmV4Location", - queryId: "u64" - }, - InvalidQuerier: { - origin: "StagingXcmV4Location", - queryId: "u64", - expectedQuerier: "StagingXcmV4Location", - maybeActualQuerier: "Option" - }, - VersionNotifyStarted: { - destination: "StagingXcmV4Location", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - VersionNotifyRequested: { - destination: "StagingXcmV4Location", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - VersionNotifyUnrequested: { - destination: "StagingXcmV4Location", - cost: "StagingXcmV4AssetAssets", - messageId: "[u8;32]" - }, - FeesPaid: { - paying: "StagingXcmV4Location", - fees: "StagingXcmV4AssetAssets" - }, - AssetsClaimed: { - _alias: { - hash_: "hash" - }, - hash_: "H256", - origin: "StagingXcmV4Location", - assets: "XcmVersionedAssets" - }, - VersionMigrationFinished: { - version: "u32" - } - } - }, - /** - * Lookup45: staging_xcm::v4::traits::Outcome - **/ - StagingXcmV4TraitsOutcome: { - _enum: { - Complete: { - used: "SpWeightsWeightV2Weight" - }, - Incomplete: { - used: "SpWeightsWeightV2Weight", - error: "XcmV3TraitsError" - }, - Error: { - error: "XcmV3TraitsError" - } - } - }, - /** - * Lookup46: xcm::v3::traits::Error - **/ - XcmV3TraitsError: { - _enum: { - Overflow: "Null", - Unimplemented: "Null", - UntrustedReserveLocation: "Null", - UntrustedTeleportLocation: "Null", - LocationFull: "Null", - LocationNotInvertible: "Null", - BadOrigin: "Null", - InvalidLocation: "Null", - AssetNotFound: "Null", - FailedToTransactAsset: "Null", - NotWithdrawable: "Null", - LocationCannotHold: "Null", - ExceedsMaxMessageSize: "Null", - DestinationUnsupported: "Null", - Transport: "Null", - Unroutable: "Null", - UnknownClaim: "Null", - FailedToDecode: "Null", - MaxWeightInvalid: "Null", - NotHoldingFees: "Null", - TooExpensive: "Null", - Trap: "u64", - ExpectationFalse: "Null", - PalletNotFound: "Null", - NameMismatch: "Null", - VersionIncompatible: "Null", - HoldingWouldOverflow: "Null", - ExportError: "Null", - ReanchorFailed: "Null", - NoDeal: "Null", - FeesNotMet: "Null", - LockError: "Null", - NoPermission: "Null", - Unanchored: "Null", - NotDepositable: "Null", - UnhandledXcmVersion: "Null", - WeightLimitReached: "SpWeightsWeightV2Weight", - Barrier: "Null", - WeightNotComputable: "Null", - ExceedsStackLimit: "Null" - } - }, - /** - * Lookup47: staging_xcm::v4::location::Location - **/ - StagingXcmV4Location: { - parents: "u8", - interior: "StagingXcmV4Junctions" - }, - /** - * Lookup48: staging_xcm::v4::junctions::Junctions - **/ - StagingXcmV4Junctions: { - _enum: { - Here: "Null", - X1: "[Lookup50;1]", - X2: "[Lookup50;2]", - X3: "[Lookup50;3]", - X4: "[Lookup50;4]", - X5: "[Lookup50;5]", - X6: "[Lookup50;6]", - X7: "[Lookup50;7]", - X8: "[Lookup50;8]" - } - }, - /** - * Lookup50: staging_xcm::v4::junction::Junction - **/ - StagingXcmV4Junction: { - _enum: { - Parachain: "Compact", - AccountId32: { - network: "Option", - id: "[u8;32]" - }, - AccountIndex64: { - network: "Option", - index: "Compact" - }, - AccountKey20: { - network: "Option", - key: "[u8;20]" - }, - PalletInstance: "u8", - GeneralIndex: "Compact", - GeneralKey: { - length: "u8", - data: "[u8;32]" - }, - OnlyChild: "Null", - Plurality: { - id: "XcmV3JunctionBodyId", - part: "XcmV3JunctionBodyPart" - }, - GlobalConsensus: "StagingXcmV4JunctionNetworkId" - } - }, - /** - * Lookup53: staging_xcm::v4::junction::NetworkId - **/ - StagingXcmV4JunctionNetworkId: { - _enum: { - ByGenesis: "[u8;32]", - ByFork: { - blockNumber: "u64", - blockHash: "[u8;32]" - }, - Polkadot: "Null", - Kusama: "Null", - Westend: "Null", - Rococo: "Null", - Wococo: "Null", - Ethereum: { - chainId: "Compact" - }, - BitcoinCore: "Null", - BitcoinCash: "Null", - PolkadotBulletin: "Null" - } - }, - /** - * Lookup56: xcm::v3::junction::BodyId - **/ - XcmV3JunctionBodyId: { - _enum: { - Unit: "Null", - Moniker: "[u8;4]", - Index: "Compact", - Executive: "Null", - Technical: "Null", - Legislative: "Null", - Judicial: "Null", - Defense: "Null", - Administration: "Null", - Treasury: "Null" - } - }, - /** - * Lookup57: xcm::v3::junction::BodyPart - **/ - XcmV3JunctionBodyPart: { - _enum: { - Voice: "Null", - Members: { - count: "Compact" - }, - Fraction: { - nom: "Compact", - denom: "Compact" - }, - AtLeastProportion: { - nom: "Compact", - denom: "Compact" - }, - MoreThanProportion: { - nom: "Compact", - denom: "Compact" - } - } - }, - /** - * Lookup65: staging_xcm::v4::Xcm - **/ - StagingXcmV4Xcm: "Vec", - /** - * Lookup67: staging_xcm::v4::Instruction - **/ - StagingXcmV4Instruction: { - _enum: { - WithdrawAsset: "StagingXcmV4AssetAssets", - ReserveAssetDeposited: "StagingXcmV4AssetAssets", - ReceiveTeleportedAsset: "StagingXcmV4AssetAssets", - QueryResponse: { - queryId: "Compact", - response: "StagingXcmV4Response", - maxWeight: "SpWeightsWeightV2Weight", - querier: "Option" - }, - TransferAsset: { - assets: "StagingXcmV4AssetAssets", - beneficiary: "StagingXcmV4Location" - }, - TransferReserveAsset: { - assets: "StagingXcmV4AssetAssets", - dest: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - Transact: { - originKind: "XcmV3OriginKind", - requireWeightAtMost: "SpWeightsWeightV2Weight", - call: "XcmDoubleEncoded" - }, - HrmpNewChannelOpenRequest: { - sender: "Compact", - maxMessageSize: "Compact", - maxCapacity: "Compact" - }, - HrmpChannelAccepted: { - recipient: "Compact" - }, - HrmpChannelClosing: { - initiator: "Compact", - sender: "Compact", - recipient: "Compact" - }, - ClearOrigin: "Null", - DescendOrigin: "StagingXcmV4Junctions", - ReportError: "StagingXcmV4QueryResponseInfo", - DepositAsset: { - assets: "StagingXcmV4AssetAssetFilter", - beneficiary: "StagingXcmV4Location" - }, - DepositReserveAsset: { - assets: "StagingXcmV4AssetAssetFilter", - dest: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - ExchangeAsset: { - give: "StagingXcmV4AssetAssetFilter", - want: "StagingXcmV4AssetAssets", - maximal: "bool" - }, - InitiateReserveWithdraw: { - assets: "StagingXcmV4AssetAssetFilter", - reserve: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - InitiateTeleport: { - assets: "StagingXcmV4AssetAssetFilter", - dest: "StagingXcmV4Location", - xcm: "StagingXcmV4Xcm" - }, - ReportHolding: { - responseInfo: "StagingXcmV4QueryResponseInfo", - assets: "StagingXcmV4AssetAssetFilter" - }, - BuyExecution: { - fees: "StagingXcmV4Asset", - weightLimit: "XcmV3WeightLimit" - }, - RefundSurplus: "Null", - SetErrorHandler: "StagingXcmV4Xcm", - SetAppendix: "StagingXcmV4Xcm", - ClearError: "Null", - ClaimAsset: { - assets: "StagingXcmV4AssetAssets", - ticket: "StagingXcmV4Location" - }, - Trap: "Compact", - SubscribeVersion: { - queryId: "Compact", - maxResponseWeight: "SpWeightsWeightV2Weight" - }, - UnsubscribeVersion: "Null", - BurnAsset: "StagingXcmV4AssetAssets", - ExpectAsset: "StagingXcmV4AssetAssets", - ExpectOrigin: "Option", - ExpectError: "Option<(u32,XcmV3TraitsError)>", - ExpectTransactStatus: "XcmV3MaybeErrorCode", - QueryPallet: { - moduleName: "Bytes", - responseInfo: "StagingXcmV4QueryResponseInfo" - }, - ExpectPallet: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - crateMajor: "Compact", - minCrateMinor: "Compact" - }, - ReportTransactStatus: "StagingXcmV4QueryResponseInfo", - ClearTransactStatus: "Null", - UniversalOrigin: "StagingXcmV4Junction", - ExportMessage: { - network: "StagingXcmV4JunctionNetworkId", - destination: "StagingXcmV4Junctions", - xcm: "StagingXcmV4Xcm" - }, - LockAsset: { - asset: "StagingXcmV4Asset", - unlocker: "StagingXcmV4Location" - }, - UnlockAsset: { - asset: "StagingXcmV4Asset", - target: "StagingXcmV4Location" - }, - NoteUnlockable: { - asset: "StagingXcmV4Asset", - owner: "StagingXcmV4Location" - }, - RequestUnlock: { - asset: "StagingXcmV4Asset", - locker: "StagingXcmV4Location" - }, - SetFeesMode: { - jitWithdraw: "bool" - }, - SetTopic: "[u8;32]", - ClearTopic: "Null", - AliasOrigin: "StagingXcmV4Location", - UnpaidExecution: { - weightLimit: "XcmV3WeightLimit", - checkOrigin: "Option" - } - } - }, - /** - * Lookup68: staging_xcm::v4::asset::Assets - **/ - StagingXcmV4AssetAssets: "Vec", - /** - * Lookup70: staging_xcm::v4::asset::Asset - **/ - StagingXcmV4Asset: { - id: "StagingXcmV4AssetAssetId", - fun: "StagingXcmV4AssetFungibility" - }, - /** - * Lookup71: staging_xcm::v4::asset::AssetId - **/ - StagingXcmV4AssetAssetId: "StagingXcmV4Location", - /** - * Lookup72: staging_xcm::v4::asset::Fungibility - **/ - StagingXcmV4AssetFungibility: { - _enum: { - Fungible: "Compact", - NonFungible: "StagingXcmV4AssetAssetInstance" - } - }, - /** - * Lookup73: staging_xcm::v4::asset::AssetInstance - **/ - StagingXcmV4AssetAssetInstance: { - _enum: { - Undefined: "Null", - Index: "Compact", - Array4: "[u8;4]", - Array8: "[u8;8]", - Array16: "[u8;16]", - Array32: "[u8;32]" - } - }, - /** - * Lookup76: staging_xcm::v4::Response - **/ - StagingXcmV4Response: { - _enum: { - Null: "Null", - Assets: "StagingXcmV4AssetAssets", - ExecutionResult: "Option<(u32,XcmV3TraitsError)>", - Version: "u32", - PalletsInfo: "Vec", - DispatchResult: "XcmV3MaybeErrorCode" - } - }, - /** - * Lookup80: staging_xcm::v4::PalletInfo - **/ - StagingXcmV4PalletInfo: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - major: "Compact", - minor: "Compact", - patch: "Compact" - }, - /** - * Lookup83: xcm::v3::MaybeErrorCode - **/ - XcmV3MaybeErrorCode: { - _enum: { - Success: "Null", - Error: "Bytes", - TruncatedError: "Bytes" - } - }, - /** - * Lookup86: xcm::v3::OriginKind - **/ - XcmV3OriginKind: { - _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] - }, - /** - * Lookup87: xcm::double_encoded::DoubleEncoded - **/ - XcmDoubleEncoded: { - encoded: "Bytes" - }, - /** - * Lookup88: staging_xcm::v4::QueryResponseInfo - **/ - StagingXcmV4QueryResponseInfo: { - destination: "StagingXcmV4Location", - queryId: "Compact", - maxWeight: "SpWeightsWeightV2Weight" - }, - /** - * Lookup89: staging_xcm::v4::asset::AssetFilter - **/ - StagingXcmV4AssetAssetFilter: { - _enum: { - Definite: "StagingXcmV4AssetAssets", - Wild: "StagingXcmV4AssetWildAsset" - } - }, - /** - * Lookup90: staging_xcm::v4::asset::WildAsset - **/ - StagingXcmV4AssetWildAsset: { - _enum: { - All: "Null", - AllOf: { - id: "StagingXcmV4AssetAssetId", - fun: "StagingXcmV4AssetWildFungibility" - }, - AllCounted: "Compact", - AllOfCounted: { - id: "StagingXcmV4AssetAssetId", - fun: "StagingXcmV4AssetWildFungibility", - count: "Compact" - } - } - }, - /** - * Lookup91: staging_xcm::v4::asset::WildFungibility - **/ - StagingXcmV4AssetWildFungibility: { - _enum: ["Fungible", "NonFungible"] - }, - /** - * Lookup92: xcm::v3::WeightLimit - **/ - XcmV3WeightLimit: { - _enum: { - Unlimited: "Null", - Limited: "SpWeightsWeightV2Weight" - } - }, - /** - * Lookup93: xcm::VersionedAssets - **/ - XcmVersionedAssets: { - _enum: { - __Unused0: "Null", - V2: "XcmV2MultiassetMultiAssets", - __Unused2: "Null", - V3: "XcmV3MultiassetMultiAssets", - V4: "StagingXcmV4AssetAssets" - } - }, - /** - * Lookup94: xcm::v2::multiasset::MultiAssets - **/ - XcmV2MultiassetMultiAssets: "Vec", - /** - * Lookup96: xcm::v2::multiasset::MultiAsset - **/ - XcmV2MultiAsset: { - id: "XcmV2MultiassetAssetId", - fun: "XcmV2MultiassetFungibility" - }, - /** - * Lookup97: xcm::v2::multiasset::AssetId - **/ - XcmV2MultiassetAssetId: { - _enum: { - Concrete: "XcmV2MultiLocation", - Abstract: "Bytes" - } - }, - /** - * Lookup98: xcm::v2::multilocation::MultiLocation - **/ - XcmV2MultiLocation: { - parents: "u8", - interior: "XcmV2MultilocationJunctions" - }, - /** - * Lookup99: xcm::v2::multilocation::Junctions - **/ - XcmV2MultilocationJunctions: { - _enum: { - Here: "Null", - X1: "XcmV2Junction", - X2: "(XcmV2Junction,XcmV2Junction)", - X3: "(XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X4: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X5: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X6: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X7: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", - X8: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)" - } - }, - /** - * Lookup100: xcm::v2::junction::Junction - **/ - XcmV2Junction: { - _enum: { - Parachain: "Compact", - AccountId32: { - network: "XcmV2NetworkId", - id: "[u8;32]" - }, - AccountIndex64: { - network: "XcmV2NetworkId", - index: "Compact" - }, - AccountKey20: { - network: "XcmV2NetworkId", - key: "[u8;20]" - }, - PalletInstance: "u8", - GeneralIndex: "Compact", - GeneralKey: "Bytes", - OnlyChild: "Null", - Plurality: { - id: "XcmV2BodyId", - part: "XcmV2BodyPart" - } - } - }, - /** - * Lookup101: xcm::v2::NetworkId - **/ - XcmV2NetworkId: { - _enum: { - Any: "Null", - Named: "Bytes", - Polkadot: "Null", - Kusama: "Null" - } - }, - /** - * Lookup103: xcm::v2::BodyId - **/ - XcmV2BodyId: { - _enum: { - Unit: "Null", - Named: "Bytes", - Index: "Compact", - Executive: "Null", - Technical: "Null", - Legislative: "Null", - Judicial: "Null", - Defense: "Null", - Administration: "Null", - Treasury: "Null" - } - }, - /** - * Lookup104: xcm::v2::BodyPart - **/ - XcmV2BodyPart: { - _enum: { - Voice: "Null", - Members: { - count: "Compact" - }, - Fraction: { - nom: "Compact", - denom: "Compact" - }, - AtLeastProportion: { - nom: "Compact", - denom: "Compact" - }, - MoreThanProportion: { - nom: "Compact", - denom: "Compact" - } - } - }, - /** - * Lookup105: xcm::v2::multiasset::Fungibility - **/ - XcmV2MultiassetFungibility: { - _enum: { - Fungible: "Compact", - NonFungible: "XcmV2MultiassetAssetInstance" - } - }, - /** - * Lookup106: xcm::v2::multiasset::AssetInstance - **/ - XcmV2MultiassetAssetInstance: { - _enum: { - Undefined: "Null", - Index: "Compact", - Array4: "[u8;4]", - Array8: "[u8;8]", - Array16: "[u8;16]", - Array32: "[u8;32]", - Blob: "Bytes" - } - }, - /** - * Lookup107: xcm::v3::multiasset::MultiAssets - **/ - XcmV3MultiassetMultiAssets: "Vec", - /** - * Lookup109: xcm::v3::multiasset::MultiAsset - **/ - XcmV3MultiAsset: { - id: "XcmV3MultiassetAssetId", - fun: "XcmV3MultiassetFungibility" - }, - /** - * Lookup110: xcm::v3::multiasset::AssetId - **/ - XcmV3MultiassetAssetId: { - _enum: { - Concrete: "StagingXcmV3MultiLocation", - Abstract: "[u8;32]" - } - }, - /** - * Lookup111: staging_xcm::v3::multilocation::MultiLocation - **/ - StagingXcmV3MultiLocation: { - parents: "u8", - interior: "XcmV3Junctions" - }, - /** - * Lookup112: xcm::v3::junctions::Junctions - **/ - XcmV3Junctions: { - _enum: { - Here: "Null", - X1: "XcmV3Junction", - X2: "(XcmV3Junction,XcmV3Junction)", - X3: "(XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X4: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X5: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X6: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X7: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", - X8: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)" - } - }, - /** - * Lookup113: xcm::v3::junction::Junction - **/ - XcmV3Junction: { - _enum: { - Parachain: "Compact", - AccountId32: { - network: "Option", - id: "[u8;32]" - }, - AccountIndex64: { - network: "Option", - index: "Compact" - }, - AccountKey20: { - network: "Option", - key: "[u8;20]" - }, - PalletInstance: "u8", - GeneralIndex: "Compact", - GeneralKey: { - length: "u8", - data: "[u8;32]" - }, - OnlyChild: "Null", - Plurality: { - id: "XcmV3JunctionBodyId", - part: "XcmV3JunctionBodyPart" - }, - GlobalConsensus: "XcmV3JunctionNetworkId" - } - }, - /** - * Lookup115: xcm::v3::junction::NetworkId - **/ - XcmV3JunctionNetworkId: { - _enum: { - ByGenesis: "[u8;32]", - ByFork: { - blockNumber: "u64", - blockHash: "[u8;32]" - }, - Polkadot: "Null", - Kusama: "Null", - Westend: "Null", - Rococo: "Null", - Wococo: "Null", - Ethereum: { - chainId: "Compact" - }, - BitcoinCore: "Null", - BitcoinCash: "Null", - PolkadotBulletin: "Null" - } - }, - /** - * Lookup116: xcm::v3::multiasset::Fungibility - **/ - XcmV3MultiassetFungibility: { - _enum: { - Fungible: "Compact", - NonFungible: "XcmV3MultiassetAssetInstance" - } - }, - /** - * Lookup117: xcm::v3::multiasset::AssetInstance - **/ - XcmV3MultiassetAssetInstance: { - _enum: { - Undefined: "Null", - Index: "Compact", - Array4: "[u8;4]", - Array8: "[u8;8]", - Array16: "[u8;16]", - Array32: "[u8;32]" - } - }, - /** - * Lookup118: xcm::VersionedLocation - **/ - XcmVersionedLocation: { - _enum: { - __Unused0: "Null", - V2: "XcmV2MultiLocation", - __Unused2: "Null", - V3: "StagingXcmV3MultiLocation", - V4: "StagingXcmV4Location" - } - }, - /** - * Lookup119: cumulus_pallet_xcm::pallet::Event - **/ - CumulusPalletXcmEvent: { - _enum: { - InvalidFormat: "[u8;32]", - UnsupportedVersion: "[u8;32]", - ExecutedDownward: "([u8;32],StagingXcmV4TraitsOutcome)" - } - }, - /** - * Lookup120: pallet_message_queue::pallet::Event - **/ - PalletMessageQueueEvent: { - _enum: { - ProcessingFailed: { - id: "H256", - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - error: "FrameSupportMessagesProcessMessageError" - }, - Processed: { - id: "H256", - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - weightUsed: "SpWeightsWeightV2Weight", - success: "bool" - }, - OverweightEnqueued: { - id: "[u8;32]", - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - pageIndex: "u32", - messageIndex: "u32" - }, - PageReaped: { - origin: "CumulusPrimitivesCoreAggregateMessageOrigin", - index: "u32" - } - } - }, - /** - * Lookup121: cumulus_primitives_core::AggregateMessageOrigin - **/ - CumulusPrimitivesCoreAggregateMessageOrigin: { - _enum: { - Here: "Null", - Parent: "Null", - Sibling: "u32" - } - }, - /** - * Lookup123: frame_support::traits::messages::ProcessMessageError - **/ - FrameSupportMessagesProcessMessageError: { - _enum: { - BadFormat: "Null", - Corrupt: "Null", - Unsupported: "Null", - Overweight: "SpWeightsWeightV2Weight", - Yield: "Null", - StackLimitReached: "Null" - } - }, - /** - * Lookup124: pallet_storage_providers::pallet::Event - **/ - PalletStorageProvidersEvent: { - _enum: { - MspRequestSignUpSuccess: { - who: "AccountId32", - multiaddresses: "Vec", - capacity: "u64", - valueProp: "PalletStorageProvidersValueProposition" - }, - MspSignUpSuccess: { - who: "AccountId32", - mspId: "H256", - multiaddresses: "Vec", - capacity: "u64", - valueProp: "PalletStorageProvidersValueProposition" - }, - BspRequestSignUpSuccess: { - who: "AccountId32", - multiaddresses: "Vec", - capacity: "u64" - }, - BspSignUpSuccess: { - who: "AccountId32", - bspId: "H256", - multiaddresses: "Vec", - capacity: "u64" - }, - SignUpRequestCanceled: { - who: "AccountId32" - }, - MspSignOffSuccess: { - who: "AccountId32", - mspId: "H256" - }, - BspSignOffSuccess: { - who: "AccountId32", - bspId: "H256" - }, - CapacityChanged: { - who: "AccountId32", - providerId: "PalletStorageProvidersStorageProviderId", - oldCapacity: "u64", - newCapacity: "u64", - nextBlockWhenChangeAllowed: "u32" - }, - Slashed: { - providerId: "H256", - amountSlashed: "u128" - } - } - }, - /** - * Lookup128: pallet_storage_providers::types::ValueProposition - **/ - PalletStorageProvidersValueProposition: { - identifier: "H256", - dataLimit: "u64", - protocols: "Vec" - }, - /** - * Lookup130: pallet_storage_providers::types::StorageProviderId - **/ - PalletStorageProvidersStorageProviderId: { - _enum: { - BackupStorageProvider: "H256", - MainStorageProvider: "H256" - } - }, - /** - * Lookup131: pallet_file_system::pallet::Event - **/ - PalletFileSystemEvent: { - _enum: { - NewBucket: { - who: "AccountId32", - mspId: "H256", - bucketId: "H256", - name: "Bytes", - collectionId: "Option", - private: "bool" - }, - MoveBucketRequested: { - who: "AccountId32", - bucketId: "H256", - newMspId: "H256" - }, - BucketPrivacyUpdated: { - who: "AccountId32", - bucketId: "H256", - collectionId: "Option", - private: "bool" - }, - NewCollectionAndAssociation: { - who: "AccountId32", - bucketId: "H256", - collectionId: "u32" - }, - NewStorageRequest: { - _alias: { - size_: "size" - }, - who: "AccountId32", - fileKey: "H256", - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - size_: "u64", - peerIds: "Vec" - }, - MspRespondedToStorageRequests: { - results: "PalletFileSystemMspRespondStorageRequestsResult" - }, - AcceptedBspVolunteer: { - _alias: { - size_: "size" - }, - bspId: "H256", - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - multiaddresses: "Vec", - owner: "AccountId32", - size_: "u64" - }, - BspConfirmedStoring: { - who: "AccountId32", - bspId: "H256", - fileKeys: "Vec", - newRoot: "H256" - }, - StorageRequestFulfilled: { - fileKey: "H256" - }, - StorageRequestExpired: { - fileKey: "H256" - }, - StorageRequestRevoked: { - fileKey: "H256" - }, - BspRequestedToStopStoring: { - bspId: "H256", - fileKey: "H256", - owner: "AccountId32", - location: "Bytes" - }, - BspConfirmStoppedStoring: { - bspId: "H256", - fileKey: "H256", - newRoot: "H256" - }, - PriorityChallengeForFileDeletionQueued: { - issuer: "PalletFileSystemEitherAccountIdOrMspId", - fileKey: "H256" - }, - SpStopStoringInsolventUser: { - spId: "H256", - fileKey: "H256", - owner: "AccountId32", - location: "Bytes", - newRoot: "H256" - }, - FailedToQueuePriorityChallenge: { - user: "AccountId32", - fileKey: "H256" - }, - FileDeletionRequest: { - user: "AccountId32", - fileKey: "H256", - bucketId: "H256", - mspId: "H256", - proofOfInclusion: "bool" - }, - ProofSubmittedForPendingFileDeletionRequest: { - mspId: "H256", - user: "AccountId32", - fileKey: "H256", - bucketId: "H256", - proofOfInclusion: "bool" - }, - BspChallengeCycleInitialised: { - who: "AccountId32", - bspId: "H256" - }, - MoveBucketRequestExpired: { - mspId: "H256", - bucketId: "H256" - }, - MoveBucketAccepted: { - bucketId: "H256", - mspId: "H256" - }, - MoveBucketRejected: { - bucketId: "H256", - mspId: "H256" - }, - DataServerRegisteredForMoveBucket: { - bspId: "H256", - bucketId: "H256" - } - } - }, - /** - * Lookup134: pallet_file_system::types::MspRespondStorageRequestsResult - **/ - PalletFileSystemMspRespondStorageRequestsResult: { - mspId: "H256", - responses: "Vec" - }, - /** - * Lookup136: pallet_file_system::types::BatchResponses - **/ - PalletFileSystemBatchResponses: { - _enum: { - Accepted: "PalletFileSystemMspAcceptedBatchStorageRequests", - Rejected: "PalletFileSystemMspRejectedBatchStorageRequests", - Failed: "PalletFileSystemMspFailedBatchStorageRequests" - } - }, - /** - * Lookup137: pallet_file_system::types::MspAcceptedBatchStorageRequests - **/ - PalletFileSystemMspAcceptedBatchStorageRequests: { - fileKeys: "Vec", - bucketId: "H256", - newBucketRoot: "H256", - owner: "AccountId32" - }, - /** - * Lookup140: pallet_file_system::types::MspRejectedBatchStorageRequests - **/ - PalletFileSystemMspRejectedBatchStorageRequests: { - fileKeys: "Vec<(H256,PalletFileSystemRejectedStorageRequestReason)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup143: pallet_file_system::types::RejectedStorageRequestReason - **/ - PalletFileSystemRejectedStorageRequestReason: { - _enum: ["ReachedMaximumCapacity", "ReceivedInvalidProof", "InternalError"] - }, - /** - * Lookup145: pallet_file_system::types::MspFailedBatchStorageRequests - **/ - PalletFileSystemMspFailedBatchStorageRequests: { - fileKeys: "Vec<(H256,SpRuntimeDispatchError)>", - bucketId: "H256", - owner: "AccountId32" - }, - /** - * Lookup150: pallet_file_system::types::EitherAccountIdOrMspId - **/ - PalletFileSystemEitherAccountIdOrMspId: { - _enum: { - AccountId: "AccountId32", - MspId: "H256" - } - }, - /** - * Lookup151: pallet_proofs_dealer::pallet::Event - **/ - PalletProofsDealerEvent: { - _enum: { - NewChallenge: { - who: "AccountId32", - keyChallenged: "H256" - }, - ProofAccepted: { - provider: "H256", - proof: "PalletProofsDealerProof" - }, - NewChallengeSeed: { - challengesTicker: "u32", - seed: "H256" - }, - NewCheckpointChallenge: { - challengesTicker: "u32", - challenges: "Vec<(H256,Option)>" - }, - SlashableProvider: { - provider: "H256", - nextChallengeDeadline: "u32" - }, - NoRecordOfLastSubmittedProof: { - provider: "H256" - }, - NewChallengeCycleInitialised: { - currentTick: "u32", - nextChallengeDeadline: "u32", - provider: "H256", - maybeProviderAccount: "Option" - }, - MutationsApplied: { - provider: "H256", - mutations: "Vec<(H256,ShpTraitsTrieRemoveMutation)>", - newRoot: "H256" - }, - ChallengesTickerSet: { - paused: "bool" - } - } - }, - /** - * Lookup152: pallet_proofs_dealer::types::Proof - **/ - PalletProofsDealerProof: { - forestProof: "SpTrieStorageProofCompactProof", - keyProofs: "BTreeMap" - }, - /** - * Lookup153: sp_trie::storage_proof::CompactProof - **/ - SpTrieStorageProofCompactProof: { - encodedNodes: "Vec" - }, - /** - * Lookup156: pallet_proofs_dealer::types::KeyProof - **/ - PalletProofsDealerKeyProof: { - proof: "ShpFileKeyVerifierFileKeyProof", - challengeCount: "u32" - }, - /** - * Lookup157: shp_file_key_verifier::types::FileKeyProof - **/ - ShpFileKeyVerifierFileKeyProof: { - fileMetadata: "ShpFileMetadataFileMetadata", - proof: "SpTrieStorageProofCompactProof" - }, - /** - * Lookup158: shp_file_metadata::FileMetadata - **/ - ShpFileMetadataFileMetadata: { - owner: "Bytes", - bucketId: "Bytes", - location: "Bytes", - fileSize: "Compact", - fingerprint: "ShpFileMetadataFingerprint" - }, - /** - * Lookup159: shp_file_metadata::Fingerprint - **/ - ShpFileMetadataFingerprint: "[u8;32]", - /** - * Lookup165: shp_traits::TrieRemoveMutation - **/ - ShpTraitsTrieRemoveMutation: "Null", - /** - * Lookup169: pallet_randomness::pallet::Event - **/ - PalletRandomnessEvent: { - _enum: { - NewOneEpochAgoRandomnessAvailable: { - randomnessSeed: "H256", - fromEpoch: "u64", - validUntilBlock: "u32" - } - } - }, - /** - * Lookup170: pallet_payment_streams::pallet::Event - **/ - PalletPaymentStreamsEvent: { - _enum: { - FixedRatePaymentStreamCreated: { - userAccount: "AccountId32", - providerId: "H256", - rate: "u128" - }, - FixedRatePaymentStreamUpdated: { - userAccount: "AccountId32", - providerId: "H256", - newRate: "u128" - }, - FixedRatePaymentStreamDeleted: { - userAccount: "AccountId32", - providerId: "H256" - }, - DynamicRatePaymentStreamCreated: { - userAccount: "AccountId32", - providerId: "H256", - amountProvided: "u64" - }, - DynamicRatePaymentStreamUpdated: { - userAccount: "AccountId32", - providerId: "H256", - newAmountProvided: "u64" - }, - DynamicRatePaymentStreamDeleted: { - userAccount: "AccountId32", - providerId: "H256" - }, - PaymentStreamCharged: { - userAccount: "AccountId32", - providerId: "H256", - amount: "u128" - }, - LastChargeableInfoUpdated: { - providerId: "H256", - lastChargeableTick: "u32", - lastChargeablePriceIndex: "u128" - }, - UserWithoutFunds: { - who: "AccountId32" - }, - UserPaidDebts: { - who: "AccountId32" - }, - UserSolvent: { - who: "AccountId32" - } - } - }, - /** - * Lookup171: pallet_bucket_nfts::pallet::Event - **/ - PalletBucketNftsEvent: { - _enum: { - AccessShared: { - issuer: "AccountId32", - recipient: "AccountId32" - }, - ItemReadAccessUpdated: { - admin: "AccountId32", - bucket: "H256", - itemId: "u32" - }, - ItemBurned: { - account: "AccountId32", - bucket: "H256", - itemId: "u32" - } - } - }, - /** - * Lookup172: pallet_nfts::pallet::Event - **/ - PalletNftsEvent: { - _enum: { - Created: { - collection: "u32", - creator: "AccountId32", - owner: "AccountId32" - }, - ForceCreated: { - collection: "u32", - owner: "AccountId32" - }, - Destroyed: { - collection: "u32" - }, - Issued: { - collection: "u32", - item: "u32", - owner: "AccountId32" - }, - Transferred: { - collection: "u32", - item: "u32", - from: "AccountId32", - to: "AccountId32" - }, - Burned: { - collection: "u32", - item: "u32", - owner: "AccountId32" - }, - ItemTransferLocked: { - collection: "u32", - item: "u32" - }, - ItemTransferUnlocked: { - collection: "u32", - item: "u32" - }, - ItemPropertiesLocked: { - collection: "u32", - item: "u32", - lockMetadata: "bool", - lockAttributes: "bool" - }, - CollectionLocked: { - collection: "u32" - }, - OwnerChanged: { - collection: "u32", - newOwner: "AccountId32" - }, - TeamChanged: { - collection: "u32", - issuer: "Option", - admin: "Option", - freezer: "Option" - }, - TransferApproved: { - collection: "u32", - item: "u32", - owner: "AccountId32", - delegate: "AccountId32", - deadline: "Option" - }, - ApprovalCancelled: { - collection: "u32", - item: "u32", - owner: "AccountId32", - delegate: "AccountId32" - }, - AllApprovalsCancelled: { - collection: "u32", - item: "u32", - owner: "AccountId32" - }, - CollectionConfigChanged: { - collection: "u32" - }, - CollectionMetadataSet: { - collection: "u32", - data: "Bytes" - }, - CollectionMetadataCleared: { - collection: "u32" - }, - ItemMetadataSet: { - collection: "u32", - item: "u32", - data: "Bytes" - }, - ItemMetadataCleared: { - collection: "u32", - item: "u32" - }, - Redeposited: { - collection: "u32", - successfulItems: "Vec" - }, - AttributeSet: { - collection: "u32", - maybeItem: "Option", - key: "Bytes", - value: "Bytes", - namespace: "PalletNftsAttributeNamespace" - }, - AttributeCleared: { - collection: "u32", - maybeItem: "Option", - key: "Bytes", - namespace: "PalletNftsAttributeNamespace" - }, - ItemAttributesApprovalAdded: { - collection: "u32", - item: "u32", - delegate: "AccountId32" - }, - ItemAttributesApprovalRemoved: { - collection: "u32", - item: "u32", - delegate: "AccountId32" - }, - OwnershipAcceptanceChanged: { - who: "AccountId32", - maybeCollection: "Option" - }, - CollectionMaxSupplySet: { - collection: "u32", - maxSupply: "u32" - }, - CollectionMintSettingsUpdated: { - collection: "u32" - }, - NextCollectionIdIncremented: { - nextId: "Option" - }, - ItemPriceSet: { - collection: "u32", - item: "u32", - price: "u128", - whitelistedBuyer: "Option" - }, - ItemPriceRemoved: { - collection: "u32", - item: "u32" - }, - ItemBought: { - collection: "u32", - item: "u32", - price: "u128", - seller: "AccountId32", - buyer: "AccountId32" - }, - TipSent: { - collection: "u32", - item: "u32", - sender: "AccountId32", - receiver: "AccountId32", - amount: "u128" - }, - SwapCreated: { - offeredCollection: "u32", - offeredItem: "u32", - desiredCollection: "u32", - desiredItem: "Option", - price: "Option", - deadline: "u32" - }, - SwapCancelled: { - offeredCollection: "u32", - offeredItem: "u32", - desiredCollection: "u32", - desiredItem: "Option", - price: "Option", - deadline: "u32" - }, - SwapClaimed: { - sentCollection: "u32", - sentItem: "u32", - sentItemOwner: "AccountId32", - receivedCollection: "u32", - receivedItem: "u32", - receivedItemOwner: "AccountId32", - price: "Option", - deadline: "u32" - }, - PreSignedAttributesSet: { - collection: "u32", - item: "u32", - namespace: "PalletNftsAttributeNamespace" - }, - PalletAttributeSet: { - collection: "u32", - item: "Option", - attribute: "PalletNftsPalletAttributes", - value: "Bytes" - } - } - }, - /** - * Lookup176: pallet_nfts::types::AttributeNamespace - **/ - PalletNftsAttributeNamespace: { - _enum: { - Pallet: "Null", - CollectionOwner: "Null", - ItemOwner: "Null", - Account: "AccountId32" - } - }, - /** - * Lookup178: pallet_nfts::types::PriceWithDirection - **/ - PalletNftsPriceWithDirection: { - amount: "u128", - direction: "PalletNftsPriceDirection" - }, - /** - * Lookup179: pallet_nfts::types::PriceDirection - **/ - PalletNftsPriceDirection: { - _enum: ["Send", "Receive"] - }, - /** - * Lookup180: pallet_nfts::types::PalletAttributes - **/ - PalletNftsPalletAttributes: { - _enum: { - UsedToClaim: "u32", - TransferDisabled: "Null" - } - }, - /** - * Lookup181: pallet_parameters::pallet::Event - **/ - PalletParametersEvent: { - _enum: { - Updated: { - key: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey", - oldValue: "Option", - newValue: "Option" - } - } - }, - /** - * Lookup182: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { - _enum: { - RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey" - } - }, - /** - * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { - _enum: [ - "SlashAmountPerMaxFileSize", - "StakeToChallengePeriod", - "CheckpointChallengePeriod", - "MinChallengePeriod" - ] - }, - /** - * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: "Null", - /** - * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: "Null", - /** - * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: "Null", - /** - * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: "Null", - /** - * Lookup189: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { - _enum: { - RuntimeConfig: - "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue" - } - }, - /** - * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { - _enum: { - SlashAmountPerMaxFileSize: "u128", - StakeToChallengePeriod: "u128", - CheckpointChallengePeriod: "u32", - MinChallengePeriod: "u32" - } - }, - /** - * Lookup191: frame_system::Phase - **/ - FrameSystemPhase: { - _enum: { - ApplyExtrinsic: "u32", - Finalization: "Null", - Initialization: "Null" - } - }, - /** - * Lookup194: frame_system::LastRuntimeUpgradeInfo - **/ - FrameSystemLastRuntimeUpgradeInfo: { - specVersion: "Compact", - specName: "Text" - }, - /** - * Lookup196: frame_system::CodeUpgradeAuthorization - **/ - FrameSystemCodeUpgradeAuthorization: { - codeHash: "H256", - checkVersion: "bool" - }, - /** - * Lookup197: frame_system::pallet::Call - **/ - FrameSystemCall: { - _enum: { - remark: { - remark: "Bytes" - }, - set_heap_pages: { - pages: "u64" - }, - set_code: { - code: "Bytes" - }, - set_code_without_checks: { - code: "Bytes" - }, - set_storage: { - items: "Vec<(Bytes,Bytes)>" - }, - kill_storage: { - _alias: { - keys_: "keys" - }, - keys_: "Vec" - }, - kill_prefix: { - prefix: "Bytes", - subkeys: "u32" - }, - remark_with_event: { - remark: "Bytes" - }, - __Unused8: "Null", - authorize_upgrade: { - codeHash: "H256" - }, - authorize_upgrade_without_checks: { - codeHash: "H256" - }, - apply_authorized_upgrade: { - code: "Bytes" - } - } - }, - /** - * Lookup200: frame_system::limits::BlockWeights - **/ - FrameSystemLimitsBlockWeights: { - baseBlock: "SpWeightsWeightV2Weight", - maxBlock: "SpWeightsWeightV2Weight", - perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass" - }, - /** - * Lookup201: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassWeightsPerClass: { - normal: "FrameSystemLimitsWeightsPerClass", - operational: "FrameSystemLimitsWeightsPerClass", - mandatory: "FrameSystemLimitsWeightsPerClass" - }, - /** - * Lookup202: frame_system::limits::WeightsPerClass - **/ - FrameSystemLimitsWeightsPerClass: { - baseExtrinsic: "SpWeightsWeightV2Weight", - maxExtrinsic: "Option", - maxTotal: "Option", - reserved: "Option" - }, - /** - * Lookup204: frame_system::limits::BlockLength - **/ - FrameSystemLimitsBlockLength: { - max: "FrameSupportDispatchPerDispatchClassU32" - }, - /** - * Lookup205: frame_support::dispatch::PerDispatchClass - **/ - FrameSupportDispatchPerDispatchClassU32: { - normal: "u32", - operational: "u32", - mandatory: "u32" - }, - /** - * Lookup206: sp_weights::RuntimeDbWeight - **/ - SpWeightsRuntimeDbWeight: { - read: "u64", - write: "u64" - }, - /** - * Lookup207: sp_version::RuntimeVersion - **/ - SpVersionRuntimeVersion: { - specName: "Text", - implName: "Text", - authoringVersion: "u32", - specVersion: "u32", - implVersion: "u32", - apis: "Vec<([u8;8],u32)>", - transactionVersion: "u32", - stateVersion: "u8" - }, - /** - * Lookup212: frame_system::pallet::Error - **/ - FrameSystemError: { - _enum: [ - "InvalidSpecName", - "SpecVersionNeedsToIncrease", - "FailedToExtractRuntimeVersion", - "NonDefaultComposite", - "NonZeroRefCount", - "CallFiltered", - "MultiBlockMigrationsOngoing", - "NothingAuthorized", - "Unauthorized" - ] - }, - /** - * Lookup214: cumulus_pallet_parachain_system::unincluded_segment::Ancestor - **/ - CumulusPalletParachainSystemUnincludedSegmentAncestor: { - usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", - paraHeadHash: "Option", - consumedGoAheadSignal: "Option" - }, - /** - * Lookup215: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth - **/ - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { - umpMsgCount: "u32", - umpTotalBytes: "u32", - hrmpOutgoing: "BTreeMap" - }, - /** - * Lookup217: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate - **/ - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { - msgCount: "u32", - totalBytes: "u32" - }, - /** -<<<<<<< HEAD - * Lookup197: polkadot_primitives::v7::UpgradeGoAhead -======= - * Lookup222: polkadot_primitives::v7::UpgradeGoAhead ->>>>>>> main - **/ - PolkadotPrimitivesV7UpgradeGoAhead: { - _enum: ["Abort", "GoAhead"] - }, - /** - * Lookup223: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker - **/ - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { - usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", - hrmpWatermark: "Option", - consumedGoAheadSignal: "Option" - }, - /** -<<<<<<< HEAD - * Lookup199: polkadot_primitives::v7::PersistedValidationData -======= - * Lookup224: polkadot_primitives::v7::PersistedValidationData ->>>>>>> main - **/ - PolkadotPrimitivesV7PersistedValidationData: { - parentHead: "Bytes", - relayParentNumber: "u32", - relayParentStorageRoot: "H256", - maxPovSize: "u32" - }, - /** -<<<<<<< HEAD - * Lookup202: polkadot_primitives::v7::UpgradeRestriction -======= - * Lookup227: polkadot_primitives::v7::UpgradeRestriction ->>>>>>> main - **/ - PolkadotPrimitivesV7UpgradeRestriction: { - _enum: ["Present"] - }, - /** - * Lookup228: sp_trie::storage_proof::StorageProof - **/ - SpTrieStorageProof: { - trieNodes: "BTreeSet" - }, - /** - * Lookup230: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot - **/ - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { - dmqMqcHead: "H256", - relayDispatchQueueRemainingCapacity: - "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", - ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", - egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" - }, - /** - * Lookup231: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity - **/ - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { - remainingCount: "u32", - remainingSize: "u32" - }, - /** -<<<<<<< HEAD - * Lookup209: polkadot_primitives::v7::AbridgedHrmpChannel -======= - * Lookup234: polkadot_primitives::v7::AbridgedHrmpChannel ->>>>>>> main - **/ - PolkadotPrimitivesV7AbridgedHrmpChannel: { - maxCapacity: "u32", - maxTotalSize: "u32", - maxMessageSize: "u32", - msgCount: "u32", - totalSize: "u32", - mqcHead: "Option" - }, - /** -<<<<<<< HEAD - * Lookup210: polkadot_primitives::v7::AbridgedHostConfiguration -======= - * Lookup235: polkadot_primitives::v7::AbridgedHostConfiguration ->>>>>>> main - **/ - PolkadotPrimitivesV7AbridgedHostConfiguration: { - maxCodeSize: "u32", - maxHeadDataSize: "u32", - maxUpwardQueueCount: "u32", - maxUpwardQueueSize: "u32", - maxUpwardMessageSize: "u32", - maxUpwardMessageNumPerCandidate: "u32", - hrmpMaxMessageNumPerCandidate: "u32", - validationUpgradeCooldown: "u32", - validationUpgradeDelay: "u32", - asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" - }, - /** -<<<<<<< HEAD - * Lookup211: polkadot_primitives::v7::async_backing::AsyncBackingParams -======= - * Lookup236: polkadot_primitives::v7::async_backing::AsyncBackingParams ->>>>>>> main - **/ - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { - maxCandidateDepth: "u32", - allowedAncestryLen: "u32" - }, - /** - * Lookup242: polkadot_core_primitives::OutboundHrmpMessage - **/ - PolkadotCorePrimitivesOutboundHrmpMessage: { - recipient: "u32", - data: "Bytes" - }, - /** - * Lookup244: cumulus_pallet_parachain_system::pallet::Call - **/ - CumulusPalletParachainSystemCall: { - _enum: { - set_validation_data: { - data: "CumulusPrimitivesParachainInherentParachainInherentData" - }, - sudo_send_upward_message: { - message: "Bytes" - }, - authorize_upgrade: { - codeHash: "H256", - checkVersion: "bool" - }, - enact_authorized_upgrade: { - code: "Bytes" - } - } - }, - /** - * Lookup245: cumulus_primitives_parachain_inherent::ParachainInherentData - **/ - CumulusPrimitivesParachainInherentParachainInherentData: { - validationData: "PolkadotPrimitivesV7PersistedValidationData", - relayChainState: "SpTrieStorageProof", - downwardMessages: "Vec", - horizontalMessages: "BTreeMap>" - }, - /** - * Lookup247: polkadot_core_primitives::InboundDownwardMessage - **/ - PolkadotCorePrimitivesInboundDownwardMessage: { - sentAt: "u32", - msg: "Bytes" - }, - /** - * Lookup250: polkadot_core_primitives::InboundHrmpMessage - **/ - PolkadotCorePrimitivesInboundHrmpMessage: { - sentAt: "u32", - data: "Bytes" - }, - /** - * Lookup253: cumulus_pallet_parachain_system::pallet::Error - **/ - CumulusPalletParachainSystemError: { - _enum: [ - "OverlappingUpgrades", - "ProhibitedByPolkadot", - "TooBig", - "ValidationDataNotAvailable", - "HostConfigurationNotAvailable", - "NotScheduled", - "NothingAuthorized", - "Unauthorized" - ] - }, - /** - * Lookup254: pallet_timestamp::pallet::Call - **/ - PalletTimestampCall: { - _enum: { - set: { - now: "Compact" - } - } - }, - /** - * Lookup255: staging_parachain_info::pallet::Call - **/ - StagingParachainInfoCall: "Null", - /** - * Lookup257: pallet_balances::types::BalanceLock - **/ - PalletBalancesBalanceLock: { - id: "[u8;8]", - amount: "u128", - reasons: "PalletBalancesReasons" - }, - /** - * Lookup258: pallet_balances::types::Reasons - **/ - PalletBalancesReasons: { - _enum: ["Fee", "Misc", "All"] - }, - /** - * Lookup261: pallet_balances::types::ReserveData - **/ - PalletBalancesReserveData: { - id: "[u8;8]", - amount: "u128" - }, - /** - * Lookup265: storage_hub_runtime::RuntimeHoldReason - **/ - StorageHubRuntimeRuntimeHoldReason: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - __Unused3: "Null", - __Unused4: "Null", - __Unused5: "Null", - __Unused6: "Null", - __Unused7: "Null", - __Unused8: "Null", - __Unused9: "Null", - __Unused10: "Null", - __Unused11: "Null", - __Unused12: "Null", - __Unused13: "Null", - __Unused14: "Null", - __Unused15: "Null", - __Unused16: "Null", - __Unused17: "Null", - __Unused18: "Null", - __Unused19: "Null", - __Unused20: "Null", - __Unused21: "Null", - __Unused22: "Null", - __Unused23: "Null", - __Unused24: "Null", - __Unused25: "Null", - __Unused26: "Null", - __Unused27: "Null", - __Unused28: "Null", - __Unused29: "Null", - __Unused30: "Null", - __Unused31: "Null", - __Unused32: "Null", - __Unused33: "Null", - __Unused34: "Null", - __Unused35: "Null", - __Unused36: "Null", - __Unused37: "Null", - __Unused38: "Null", - __Unused39: "Null", - Providers: "PalletStorageProvidersHoldReason", - __Unused41: "Null", - __Unused42: "Null", - __Unused43: "Null", - PaymentStreams: "PalletPaymentStreamsHoldReason" - } - }, - /** - * Lookup266: pallet_storage_providers::pallet::HoldReason - **/ - PalletStorageProvidersHoldReason: { - _enum: ["StorageProviderDeposit", "BucketDeposit"] - }, - /** - * Lookup267: pallet_payment_streams::pallet::HoldReason - **/ - PalletPaymentStreamsHoldReason: { - _enum: ["PaymentStreamDeposit"] - }, - /** - * Lookup270: pallet_balances::types::IdAmount - **/ - PalletBalancesIdAmount: { - id: "Null", - amount: "u128" - }, - /** - * Lookup272: pallet_balances::pallet::Call - **/ - PalletBalancesCall: { - _enum: { - transfer_allow_death: { - dest: "MultiAddress", - value: "Compact" - }, - __Unused1: "Null", - force_transfer: { - source: "MultiAddress", - dest: "MultiAddress", - value: "Compact" - }, - transfer_keep_alive: { - dest: "MultiAddress", - value: "Compact" - }, - transfer_all: { - dest: "MultiAddress", - keepAlive: "bool" - }, - force_unreserve: { - who: "MultiAddress", - amount: "u128" - }, - upgrade_accounts: { - who: "Vec" - }, - __Unused7: "Null", - force_set_balance: { - who: "MultiAddress", - newFree: "Compact" - }, - force_adjust_total_issuance: { - direction: "PalletBalancesAdjustmentDirection", - delta: "Compact" - }, - burn: { - value: "Compact", - keepAlive: "bool" - } - } - }, - /** - * Lookup275: pallet_balances::types::AdjustmentDirection - **/ - PalletBalancesAdjustmentDirection: { - _enum: ["Increase", "Decrease"] - }, - /** - * Lookup276: pallet_balances::pallet::Error - **/ - PalletBalancesError: { - _enum: [ - "VestingBalance", - "LiquidityRestrictions", - "InsufficientBalance", - "ExistentialDeposit", - "Expendability", - "ExistingVestingSchedule", - "DeadAccount", - "TooManyReserves", - "TooManyHolds", - "TooManyFreezes", - "IssuanceDeactivated", - "DeltaZero" - ] - }, - /** - * Lookup277: pallet_transaction_payment::Releases - **/ - PalletTransactionPaymentReleases: { - _enum: ["V1Ancient", "V2"] - }, - /** - * Lookup278: pallet_sudo::pallet::Call - **/ - PalletSudoCall: { - _enum: { - sudo: { - call: "Call" - }, - sudo_unchecked_weight: { - call: "Call", - weight: "SpWeightsWeightV2Weight" - }, - set_key: { - _alias: { - new_: "new" - }, - new_: "MultiAddress" - }, - sudo_as: { - who: "MultiAddress", - call: "Call" - }, - remove_key: "Null" - } - }, - /** - * Lookup280: pallet_collator_selection::pallet::Call - **/ - PalletCollatorSelectionCall: { - _enum: { - set_invulnerables: { - _alias: { - new_: "new" - }, - new_: "Vec" - }, - set_desired_candidates: { - max: "u32" - }, - set_candidacy_bond: { - bond: "u128" - }, - register_as_candidate: "Null", - leave_intent: "Null", - add_invulnerable: { - who: "AccountId32" - }, - remove_invulnerable: { - who: "AccountId32" - }, - update_bond: { - newDeposit: "u128" - }, - take_candidate_slot: { - deposit: "u128", - target: "AccountId32" - } - } - }, - /** - * Lookup281: pallet_session::pallet::Call - **/ - PalletSessionCall: { - _enum: { - set_keys: { - _alias: { - keys_: "keys" - }, - keys_: "StorageHubRuntimeSessionKeys", - proof: "Bytes" - }, - purge_keys: "Null" - } - }, - /** - * Lookup282: storage_hub_runtime::SessionKeys - **/ - StorageHubRuntimeSessionKeys: { - aura: "SpConsensusAuraSr25519AppSr25519Public" - }, - /** - * Lookup283: sp_consensus_aura::sr25519::app_sr25519::Public - **/ - SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", - /** -<<<<<<< HEAD - * Lookup259: cumulus_pallet_xcmp_queue::pallet::Call -======= - * Lookup284: cumulus_pallet_xcmp_queue::pallet::Call ->>>>>>> main - **/ - CumulusPalletXcmpQueueCall: { - _enum: { - __Unused0: "Null", - suspend_xcm_execution: "Null", - resume_xcm_execution: "Null", - update_suspend_threshold: { - _alias: { - new_: "new" - }, - new_: "u32" - }, - update_drop_threshold: { - _alias: { - new_: "new" - }, - new_: "u32" - }, - update_resume_threshold: { - _alias: { - new_: "new" - }, - new_: "u32" - } - } - }, - /** -<<<<<<< HEAD - * Lookup260: pallet_xcm::pallet::Call -======= - * Lookup285: pallet_xcm::pallet::Call ->>>>>>> main - **/ - PalletXcmCall: { - _enum: { - send: { - dest: "XcmVersionedLocation", - message: "XcmVersionedXcm" - }, - teleport_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32" - }, - reserve_transfer_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32" - }, - execute: { - message: "XcmVersionedXcm", - maxWeight: "SpWeightsWeightV2Weight" - }, - force_xcm_version: { - location: "StagingXcmV4Location", - version: "u32" - }, - force_default_xcm_version: { - maybeXcmVersion: "Option" - }, - force_subscribe_version_notify: { - location: "XcmVersionedLocation" - }, - force_unsubscribe_version_notify: { - location: "XcmVersionedLocation" - }, - limited_reserve_transfer_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32", - weightLimit: "XcmV3WeightLimit" - }, - limited_teleport_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32", - weightLimit: "XcmV3WeightLimit" - }, - force_suspension: { - suspended: "bool" - }, - transfer_assets: { - dest: "XcmVersionedLocation", - beneficiary: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - feeAssetItem: "u32", - weightLimit: "XcmV3WeightLimit" - }, - claim_assets: { - assets: "XcmVersionedAssets", - beneficiary: "XcmVersionedLocation" - }, - transfer_assets_using_type_and_then: { - dest: "XcmVersionedLocation", - assets: "XcmVersionedAssets", - assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", - remoteFeesId: "XcmVersionedAssetId", - feesTransferType: "StagingXcmExecutorAssetTransferTransferType", - customXcmOnDest: "XcmVersionedXcm", - weightLimit: "XcmV3WeightLimit" - } - } - }, - /** -<<<<<<< HEAD - * Lookup261: xcm::VersionedXcm -======= - * Lookup286: xcm::VersionedXcm ->>>>>>> main - **/ - XcmVersionedXcm: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - V2: "XcmV2Xcm", - V3: "XcmV3Xcm", - V4: "StagingXcmV4Xcm" - } - }, - /** -<<<<<<< HEAD - * Lookup262: xcm::v2::Xcm - **/ - XcmV2Xcm: "Vec", - /** - * Lookup264: xcm::v2::Instruction -======= - * Lookup287: xcm::v2::Xcm - **/ - XcmV2Xcm: "Vec", - /** - * Lookup289: xcm::v2::Instruction ->>>>>>> main - **/ - XcmV2Instruction: { - _enum: { - WithdrawAsset: "XcmV2MultiassetMultiAssets", - ReserveAssetDeposited: "XcmV2MultiassetMultiAssets", - ReceiveTeleportedAsset: "XcmV2MultiassetMultiAssets", - QueryResponse: { - queryId: "Compact", - response: "XcmV2Response", - maxWeight: "Compact" - }, - TransferAsset: { - assets: "XcmV2MultiassetMultiAssets", - beneficiary: "XcmV2MultiLocation" - }, - TransferReserveAsset: { - assets: "XcmV2MultiassetMultiAssets", - dest: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - Transact: { - originType: "XcmV2OriginKind", - requireWeightAtMost: "Compact", - call: "XcmDoubleEncoded" - }, - HrmpNewChannelOpenRequest: { - sender: "Compact", - maxMessageSize: "Compact", - maxCapacity: "Compact" - }, - HrmpChannelAccepted: { - recipient: "Compact" - }, - HrmpChannelClosing: { - initiator: "Compact", - sender: "Compact", - recipient: "Compact" - }, - ClearOrigin: "Null", - DescendOrigin: "XcmV2MultilocationJunctions", - ReportError: { - queryId: "Compact", - dest: "XcmV2MultiLocation", - maxResponseWeight: "Compact" - }, - DepositAsset: { - assets: "XcmV2MultiassetMultiAssetFilter", - maxAssets: "Compact", - beneficiary: "XcmV2MultiLocation" - }, - DepositReserveAsset: { - assets: "XcmV2MultiassetMultiAssetFilter", - maxAssets: "Compact", - dest: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - ExchangeAsset: { - give: "XcmV2MultiassetMultiAssetFilter", - receive: "XcmV2MultiassetMultiAssets" - }, - InitiateReserveWithdraw: { - assets: "XcmV2MultiassetMultiAssetFilter", - reserve: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - InitiateTeleport: { - assets: "XcmV2MultiassetMultiAssetFilter", - dest: "XcmV2MultiLocation", - xcm: "XcmV2Xcm" - }, - QueryHolding: { - queryId: "Compact", - dest: "XcmV2MultiLocation", - assets: "XcmV2MultiassetMultiAssetFilter", - maxResponseWeight: "Compact" - }, - BuyExecution: { - fees: "XcmV2MultiAsset", - weightLimit: "XcmV2WeightLimit" - }, - RefundSurplus: "Null", - SetErrorHandler: "XcmV2Xcm", - SetAppendix: "XcmV2Xcm", - ClearError: "Null", - ClaimAsset: { - assets: "XcmV2MultiassetMultiAssets", - ticket: "XcmV2MultiLocation" - }, - Trap: "Compact", - SubscribeVersion: { - queryId: "Compact", - maxResponseWeight: "Compact" - }, - UnsubscribeVersion: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup265: xcm::v2::Response -======= - * Lookup290: xcm::v2::Response ->>>>>>> main - **/ - XcmV2Response: { - _enum: { - Null: "Null", - Assets: "XcmV2MultiassetMultiAssets", - ExecutionResult: "Option<(u32,XcmV2TraitsError)>", - Version: "u32" - } - }, - /** -<<<<<<< HEAD - * Lookup268: xcm::v2::traits::Error -======= - * Lookup293: xcm::v2::traits::Error ->>>>>>> main - **/ - XcmV2TraitsError: { - _enum: { - Overflow: "Null", - Unimplemented: "Null", - UntrustedReserveLocation: "Null", - UntrustedTeleportLocation: "Null", - MultiLocationFull: "Null", - MultiLocationNotInvertible: "Null", - BadOrigin: "Null", - InvalidLocation: "Null", - AssetNotFound: "Null", - FailedToTransactAsset: "Null", - NotWithdrawable: "Null", - LocationCannotHold: "Null", - ExceedsMaxMessageSize: "Null", - DestinationUnsupported: "Null", - Transport: "Null", - Unroutable: "Null", - UnknownClaim: "Null", - FailedToDecode: "Null", - MaxWeightInvalid: "Null", - NotHoldingFees: "Null", - TooExpensive: "Null", - Trap: "u64", - UnhandledXcmVersion: "Null", - WeightLimitReached: "u64", - Barrier: "Null", - WeightNotComputable: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup269: xcm::v2::OriginKind - **/ - XcmV2OriginKind: { - _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] - }, - /** - * Lookup270: xcm::v2::multiasset::MultiAssetFilter -======= - * Lookup294: xcm::v2::multiasset::MultiAssetFilter ->>>>>>> main - **/ - XcmV2MultiassetMultiAssetFilter: { - _enum: { - Definite: "XcmV2MultiassetMultiAssets", - Wild: "XcmV2MultiassetWildMultiAsset" - } - }, - /** - * Lookup295: xcm::v2::multiasset::WildMultiAsset - **/ - XcmV2MultiassetWildMultiAsset: { - _enum: { - All: "Null", - AllOf: { - id: "XcmV2MultiassetAssetId", - fun: "XcmV2MultiassetWildFungibility" - } - } - }, - /** - * Lookup296: xcm::v2::multiasset::WildFungibility - **/ - XcmV2MultiassetWildFungibility: { - _enum: ["Fungible", "NonFungible"] - }, - /** - * Lookup297: xcm::v2::WeightLimit - **/ - XcmV2WeightLimit: { - _enum: { - Unlimited: "Null", - Limited: "Compact" - } - }, - /** - * Lookup298: xcm::v3::Xcm - **/ - XcmV3Xcm: "Vec", - /** - * Lookup300: xcm::v3::Instruction - **/ - XcmV3Instruction: { - _enum: { - WithdrawAsset: "XcmV3MultiassetMultiAssets", - ReserveAssetDeposited: "XcmV3MultiassetMultiAssets", - ReceiveTeleportedAsset: "XcmV3MultiassetMultiAssets", - QueryResponse: { - queryId: "Compact", - response: "XcmV3Response", - maxWeight: "SpWeightsWeightV2Weight", - querier: "Option" - }, - TransferAsset: { - assets: "XcmV3MultiassetMultiAssets", - beneficiary: "StagingXcmV3MultiLocation" - }, - TransferReserveAsset: { - assets: "XcmV3MultiassetMultiAssets", - dest: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - Transact: { - originKind: "XcmV3OriginKind", - requireWeightAtMost: "SpWeightsWeightV2Weight", - call: "XcmDoubleEncoded" - }, - HrmpNewChannelOpenRequest: { - sender: "Compact", - maxMessageSize: "Compact", - maxCapacity: "Compact" - }, - HrmpChannelAccepted: { - recipient: "Compact" - }, - HrmpChannelClosing: { - initiator: "Compact", - sender: "Compact", - recipient: "Compact" - }, - ClearOrigin: "Null", - DescendOrigin: "XcmV3Junctions", - ReportError: "XcmV3QueryResponseInfo", - DepositAsset: { - assets: "XcmV3MultiassetMultiAssetFilter", - beneficiary: "StagingXcmV3MultiLocation" - }, - DepositReserveAsset: { - assets: "XcmV3MultiassetMultiAssetFilter", - dest: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - ExchangeAsset: { - give: "XcmV3MultiassetMultiAssetFilter", - want: "XcmV3MultiassetMultiAssets", - maximal: "bool" - }, - InitiateReserveWithdraw: { - assets: "XcmV3MultiassetMultiAssetFilter", - reserve: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - InitiateTeleport: { - assets: "XcmV3MultiassetMultiAssetFilter", - dest: "StagingXcmV3MultiLocation", - xcm: "XcmV3Xcm" - }, - ReportHolding: { - responseInfo: "XcmV3QueryResponseInfo", - assets: "XcmV3MultiassetMultiAssetFilter" - }, - BuyExecution: { - fees: "XcmV3MultiAsset", - weightLimit: "XcmV3WeightLimit" - }, - RefundSurplus: "Null", - SetErrorHandler: "XcmV3Xcm", - SetAppendix: "XcmV3Xcm", - ClearError: "Null", - ClaimAsset: { - assets: "XcmV3MultiassetMultiAssets", - ticket: "StagingXcmV3MultiLocation" - }, - Trap: "Compact", - SubscribeVersion: { - queryId: "Compact", - maxResponseWeight: "SpWeightsWeightV2Weight" - }, - UnsubscribeVersion: "Null", - BurnAsset: "XcmV3MultiassetMultiAssets", - ExpectAsset: "XcmV3MultiassetMultiAssets", - ExpectOrigin: "Option", - ExpectError: "Option<(u32,XcmV3TraitsError)>", - ExpectTransactStatus: "XcmV3MaybeErrorCode", - QueryPallet: { - moduleName: "Bytes", - responseInfo: "XcmV3QueryResponseInfo" - }, - ExpectPallet: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - crateMajor: "Compact", - minCrateMinor: "Compact" - }, - ReportTransactStatus: "XcmV3QueryResponseInfo", - ClearTransactStatus: "Null", - UniversalOrigin: "XcmV3Junction", - ExportMessage: { - network: "XcmV3JunctionNetworkId", - destination: "XcmV3Junctions", - xcm: "XcmV3Xcm" - }, - LockAsset: { - asset: "XcmV3MultiAsset", - unlocker: "StagingXcmV3MultiLocation" - }, - UnlockAsset: { - asset: "XcmV3MultiAsset", - target: "StagingXcmV3MultiLocation" - }, - NoteUnlockable: { - asset: "XcmV3MultiAsset", - owner: "StagingXcmV3MultiLocation" - }, - RequestUnlock: { - asset: "XcmV3MultiAsset", - locker: "StagingXcmV3MultiLocation" - }, - SetFeesMode: { - jitWithdraw: "bool" - }, - SetTopic: "[u8;32]", - ClearTopic: "Null", - AliasOrigin: "StagingXcmV3MultiLocation", - UnpaidExecution: { - weightLimit: "XcmV3WeightLimit", - checkOrigin: "Option" - } - } - }, - /** - * Lookup301: xcm::v3::Response - **/ - XcmV3Response: { - _enum: { - Null: "Null", - Assets: "XcmV3MultiassetMultiAssets", - ExecutionResult: "Option<(u32,XcmV3TraitsError)>", - Version: "u32", - PalletsInfo: "Vec", - DispatchResult: "XcmV3MaybeErrorCode" - } - }, - /** - * Lookup303: xcm::v3::PalletInfo - **/ - XcmV3PalletInfo: { - index: "Compact", - name: "Bytes", - moduleName: "Bytes", - major: "Compact", - minor: "Compact", - patch: "Compact" - }, - /** - * Lookup307: xcm::v3::QueryResponseInfo - **/ - XcmV3QueryResponseInfo: { - destination: "StagingXcmV3MultiLocation", - queryId: "Compact", - maxWeight: "SpWeightsWeightV2Weight" - }, - /** - * Lookup308: xcm::v3::multiasset::MultiAssetFilter - **/ - XcmV3MultiassetMultiAssetFilter: { - _enum: { - Definite: "XcmV3MultiassetMultiAssets", - Wild: "XcmV3MultiassetWildMultiAsset" - } - }, - /** - * Lookup309: xcm::v3::multiasset::WildMultiAsset - **/ - XcmV3MultiassetWildMultiAsset: { - _enum: { - All: "Null", - AllOf: { - id: "XcmV3MultiassetAssetId", - fun: "XcmV3MultiassetWildFungibility" - }, - AllCounted: "Compact", - AllOfCounted: { - id: "XcmV3MultiassetAssetId", - fun: "XcmV3MultiassetWildFungibility", - count: "Compact" - } - } - }, - /** - * Lookup310: xcm::v3::multiasset::WildFungibility - **/ - XcmV3MultiassetWildFungibility: { - _enum: ["Fungible", "NonFungible"] - }, - /** -<<<<<<< HEAD - * Lookup298: staging_xcm_executor::traits::asset_transfer::TransferType -======= - * Lookup322: staging_xcm_executor::traits::asset_transfer::TransferType ->>>>>>> main - **/ - StagingXcmExecutorAssetTransferTransferType: { - _enum: { - Teleport: "Null", - LocalReserve: "Null", - DestinationReserve: "Null", - RemoteReserve: "XcmVersionedLocation" - } - }, - /** -<<<<<<< HEAD - * Lookup299: xcm::VersionedAssetId -======= - * Lookup323: xcm::VersionedAssetId ->>>>>>> main - **/ - XcmVersionedAssetId: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - __Unused2: "Null", - V3: "XcmV3MultiassetAssetId", - V4: "StagingXcmV4AssetAssetId" - } - }, - /** -<<<<<<< HEAD - * Lookup300: cumulus_pallet_xcm::pallet::Call - **/ - CumulusPalletXcmCall: "Null", - /** - * Lookup301: pallet_message_queue::pallet::Call -======= - * Lookup324: cumulus_pallet_xcm::pallet::Call - **/ - CumulusPalletXcmCall: "Null", - /** - * Lookup325: pallet_message_queue::pallet::Call ->>>>>>> main - **/ - PalletMessageQueueCall: { - _enum: { - reap_page: { - messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", - pageIndex: "u32" - }, - execute_overweight: { - messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", - page: "u32", - index: "u32", - weightLimit: "SpWeightsWeightV2Weight" - } - } - }, - /** -<<<<<<< HEAD - * Lookup302: pallet_storage_providers::pallet::Call -======= - * Lookup326: pallet_storage_providers::pallet::Call ->>>>>>> main - **/ - PalletStorageProvidersCall: { - _enum: { - request_msp_sign_up: { - capacity: "u64", - multiaddresses: "Vec", - valueProp: "PalletStorageProvidersValueProposition", - paymentAccount: "AccountId32" - }, - request_bsp_sign_up: { - capacity: "u64", - multiaddresses: "Vec", - paymentAccount: "AccountId32" - }, - confirm_sign_up: { - providerAccount: "Option" - }, - cancel_sign_up: "Null", - msp_sign_off: "Null", - bsp_sign_off: "Null", - change_capacity: { - newCapacity: "u64" - }, - add_value_prop: { - newValueProp: "PalletStorageProvidersValueProposition" - }, - force_msp_sign_up: { - who: "AccountId32", - mspId: "H256", - capacity: "u64", - multiaddresses: "Vec", - valueProp: "PalletStorageProvidersValueProposition", - paymentAccount: "AccountId32" - }, - force_bsp_sign_up: { - who: "AccountId32", - bspId: "H256", - capacity: "u64", - multiaddresses: "Vec", - paymentAccount: "AccountId32", - weight: "Option" - }, - slash: { - providerId: "H256" - } - } - }, - /** -<<<<<<< HEAD - * Lookup303: pallet_file_system::pallet::Call -======= - * Lookup327: pallet_file_system::pallet::Call ->>>>>>> main - **/ - PalletFileSystemCall: { - _enum: { - create_bucket: { - mspId: "H256", - name: "Bytes", - private: "bool" - }, - request_move_bucket: { - bucketId: "H256", - newMspId: "H256" - }, - msp_respond_move_bucket_request: { - bucketId: "H256", - response: "PalletFileSystemBucketMoveRequestResponse" - }, - update_bucket_privacy: { - bucketId: "H256", - private: "bool" - }, - create_and_associate_collection_with_bucket: { - bucketId: "H256" - }, - issue_storage_request: { - _alias: { - size_: "size" - }, - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - size_: "u64", - mspId: "H256", - peerIds: "Vec" - }, - revoke_storage_request: { - fileKey: "H256" - }, - bsp_add_data_server_for_move_bucket_request: { - bucketId: "H256" - }, - msp_respond_storage_requests_multiple_buckets: { - fileKeyResponsesInput: "Vec<(H256,PalletFileSystemMspStorageRequestResponse)>" - }, - bsp_volunteer: { - fileKey: "H256" - }, - bsp_confirm_storing: { - nonInclusionForestProof: "SpTrieStorageProofCompactProof", - fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>" - }, - bsp_request_stop_storing: { - _alias: { - size_: "size" - }, - fileKey: "H256", - bucketId: "H256", - location: "Bytes", - owner: "AccountId32", - fingerprint: "H256", - size_: "u64", - canServe: "bool", - inclusionForestProof: "SpTrieStorageProofCompactProof" - }, - bsp_confirm_stop_storing: { - fileKey: "H256", - inclusionForestProof: "SpTrieStorageProofCompactProof" - }, - stop_storing_for_insolvent_user: { - _alias: { - size_: "size" - }, - fileKey: "H256", - bucketId: "H256", - location: "Bytes", - owner: "AccountId32", - fingerprint: "H256", - size_: "u64", - inclusionForestProof: "SpTrieStorageProofCompactProof" - }, - delete_file: { - _alias: { - size_: "size" - }, - bucketId: "H256", - fileKey: "H256", - location: "Bytes", - size_: "u64", - fingerprint: "H256", - maybeInclusionForestProof: "Option" - }, - pending_file_deletion_request_submit_proof: { - user: "AccountId32", - fileKey: "H256", - bucketId: "H256", - forestProof: "SpTrieStorageProofCompactProof" - }, - set_global_parameters: { - replicationTarget: "Option", - tickRangeToMaximumThreshold: "Option" - } - } - }, - /** -<<<<<<< HEAD - * Lookup304: pallet_file_system::types::BucketMoveRequestResponse -======= - * Lookup328: pallet_file_system::types::BucketMoveRequestResponse ->>>>>>> main - **/ - PalletFileSystemBucketMoveRequestResponse: { - _enum: ["Accepted", "Rejected"] - }, - /** -<<<<<<< HEAD - * Lookup309: pallet_proofs_dealer::pallet::Call -======= - * Lookup331: pallet_file_system::types::MspStorageRequestResponse - **/ - PalletFileSystemMspStorageRequestResponse: { - accept: "Option", - reject: "Option>" - }, - /** - * Lookup333: pallet_file_system::types::AcceptedStorageRequestParameters - **/ - PalletFileSystemAcceptedStorageRequestParameters: { - fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>", - nonInclusionForestProof: "SpTrieStorageProofCompactProof" - }, - /** - * Lookup340: pallet_proofs_dealer::pallet::Call ->>>>>>> main - **/ - PalletProofsDealerCall: { - _enum: { - challenge: { - key: "H256" - }, - submit_proof: { - proof: "PalletProofsDealerProof", - provider: "Option" - }, - force_initialise_challenge_cycle: { - provider: "H256" - }, - set_paused: { - paused: "bool" - } - } - }, - /** -<<<<<<< HEAD - * Lookup310: pallet_randomness::pallet::Call -======= - * Lookup341: pallet_randomness::pallet::Call ->>>>>>> main - **/ - PalletRandomnessCall: { - _enum: ["set_babe_randomness"] - }, - /** -<<<<<<< HEAD - * Lookup311: pallet_payment_streams::pallet::Call -======= - * Lookup342: pallet_payment_streams::pallet::Call ->>>>>>> main - **/ - PalletPaymentStreamsCall: { - _enum: { - create_fixed_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - rate: "u128" - }, - update_fixed_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - newRate: "u128" - }, - delete_fixed_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32" - }, - create_dynamic_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - amountProvided: "u64" - }, - update_dynamic_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32", - newAmountProvided: "u64" - }, - delete_dynamic_rate_payment_stream: { - providerId: "H256", - userAccount: "AccountId32" - }, - charge_payment_streams: { - userAccount: "AccountId32" - }, - pay_outstanding_debt: "Null", - clear_insolvent_flag: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup312: pallet_bucket_nfts::pallet::Call -======= - * Lookup343: pallet_bucket_nfts::pallet::Call ->>>>>>> main - **/ - PalletBucketNftsCall: { - _enum: { - share_access: { - recipient: "MultiAddress", - bucket: "H256", - itemId: "u32", - readAccessRegex: "Option" - }, - update_read_access: { - bucket: "H256", - itemId: "u32", - readAccessRegex: "Option" - } - } - }, - /** -<<<<<<< HEAD - * Lookup314: pallet_nfts::pallet::Call -======= - * Lookup345: pallet_nfts::pallet::Call ->>>>>>> main - **/ - PalletNftsCall: { - _enum: { - create: { - admin: "MultiAddress", - config: "PalletNftsCollectionConfig" - }, - force_create: { - owner: "MultiAddress", - config: "PalletNftsCollectionConfig" - }, - destroy: { - collection: "u32", - witness: "PalletNftsDestroyWitness" - }, - mint: { - collection: "u32", - item: "u32", - mintTo: "MultiAddress", - witnessData: "Option" - }, - force_mint: { - collection: "u32", - item: "u32", - mintTo: "MultiAddress", - itemConfig: "PalletNftsItemConfig" - }, - burn: { - collection: "u32", - item: "u32" - }, - transfer: { - collection: "u32", - item: "u32", - dest: "MultiAddress" - }, - redeposit: { - collection: "u32", - items: "Vec" - }, - lock_item_transfer: { - collection: "u32", - item: "u32" - }, - unlock_item_transfer: { - collection: "u32", - item: "u32" - }, - lock_collection: { - collection: "u32", - lockSettings: "u64" - }, - transfer_ownership: { - collection: "u32", - newOwner: "MultiAddress" - }, - set_team: { - collection: "u32", - issuer: "Option", - admin: "Option", - freezer: "Option" - }, - force_collection_owner: { - collection: "u32", - owner: "MultiAddress" - }, - force_collection_config: { - collection: "u32", - config: "PalletNftsCollectionConfig" - }, - approve_transfer: { - collection: "u32", - item: "u32", - delegate: "MultiAddress", - maybeDeadline: "Option" - }, - cancel_approval: { - collection: "u32", - item: "u32", - delegate: "MultiAddress" - }, - clear_all_transfer_approvals: { - collection: "u32", - item: "u32" - }, - lock_item_properties: { - collection: "u32", - item: "u32", - lockMetadata: "bool", - lockAttributes: "bool" - }, - set_attribute: { - collection: "u32", - maybeItem: "Option", - namespace: "PalletNftsAttributeNamespace", - key: "Bytes", - value: "Bytes" - }, - force_set_attribute: { - setAs: "Option", - collection: "u32", - maybeItem: "Option", - namespace: "PalletNftsAttributeNamespace", - key: "Bytes", - value: "Bytes" - }, - clear_attribute: { - collection: "u32", - maybeItem: "Option", - namespace: "PalletNftsAttributeNamespace", - key: "Bytes" - }, - approve_item_attributes: { - collection: "u32", - item: "u32", - delegate: "MultiAddress" - }, - cancel_item_attributes_approval: { - collection: "u32", - item: "u32", - delegate: "MultiAddress", - witness: "PalletNftsCancelAttributesApprovalWitness" - }, - set_metadata: { - collection: "u32", - item: "u32", - data: "Bytes" - }, - clear_metadata: { - collection: "u32", - item: "u32" - }, - set_collection_metadata: { - collection: "u32", - data: "Bytes" - }, - clear_collection_metadata: { - collection: "u32" - }, - set_accept_ownership: { - maybeCollection: "Option" - }, - set_collection_max_supply: { - collection: "u32", - maxSupply: "u32" - }, - update_mint_settings: { - collection: "u32", - mintSettings: "PalletNftsMintSettings" - }, - set_price: { - collection: "u32", - item: "u32", - price: "Option", - whitelistedBuyer: "Option" - }, - buy_item: { - collection: "u32", - item: "u32", - bidPrice: "u128" - }, - pay_tips: { - tips: "Vec" - }, - create_swap: { - offeredCollection: "u32", - offeredItem: "u32", - desiredCollection: "u32", - maybeDesiredItem: "Option", - maybePrice: "Option", - duration: "u32" - }, - cancel_swap: { - offeredCollection: "u32", - offeredItem: "u32" - }, - claim_swap: { - sendCollection: "u32", - sendItem: "u32", - receiveCollection: "u32", - receiveItem: "u32", - witnessPrice: "Option" - }, - mint_pre_signed: { - mintData: "PalletNftsPreSignedMint", - signature: "SpRuntimeMultiSignature", - signer: "AccountId32" - }, - set_attributes_pre_signed: { - data: "PalletNftsPreSignedAttributes", - signature: "SpRuntimeMultiSignature", - signer: "AccountId32" - } - } - }, - /** -<<<<<<< HEAD - * Lookup315: pallet_nfts::types::CollectionConfig -======= - * Lookup346: pallet_nfts::types::CollectionConfig ->>>>>>> main - **/ - PalletNftsCollectionConfig: { - settings: "u64", - maxSupply: "Option", - mintSettings: "PalletNftsMintSettings" - }, - /** -<<<<<<< HEAD - * Lookup317: pallet_nfts::types::CollectionSetting -======= - * Lookup348: pallet_nfts::types::CollectionSetting ->>>>>>> main - **/ - PalletNftsCollectionSetting: { - _enum: [ - "__Unused0", - "TransferableItems", - "UnlockedMetadata", - "__Unused3", - "UnlockedAttributes", - "__Unused5", - "__Unused6", - "__Unused7", - "UnlockedMaxSupply", - "__Unused9", - "__Unused10", - "__Unused11", - "__Unused12", - "__Unused13", - "__Unused14", - "__Unused15", - "DepositRequired" - ] - }, - /** -<<<<<<< HEAD - * Lookup318: pallet_nfts::types::MintSettings -======= - * Lookup349: pallet_nfts::types::MintSettings ->>>>>>> main - **/ - PalletNftsMintSettings: { - mintType: "PalletNftsMintType", - price: "Option", - startBlock: "Option", - endBlock: "Option", - defaultItemSettings: "u64" - }, - /** -<<<<<<< HEAD - * Lookup319: pallet_nfts::types::MintType -======= - * Lookup350: pallet_nfts::types::MintType ->>>>>>> main - **/ - PalletNftsMintType: { - _enum: { - Issuer: "Null", - Public: "Null", - HolderOf: "u32" - } - }, - /** -<<<<<<< HEAD - * Lookup322: pallet_nfts::types::ItemSetting -======= - * Lookup353: pallet_nfts::types::ItemSetting ->>>>>>> main - **/ - PalletNftsItemSetting: { - _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] - }, - /** -<<<<<<< HEAD - * Lookup323: pallet_nfts::types::DestroyWitness -======= - * Lookup354: pallet_nfts::types::DestroyWitness ->>>>>>> main - **/ - PalletNftsDestroyWitness: { - itemMetadatas: "Compact", - itemConfigs: "Compact", - attributes: "Compact" - }, - /** -<<<<<<< HEAD - * Lookup325: pallet_nfts::types::MintWitness -======= - * Lookup356: pallet_nfts::types::MintWitness ->>>>>>> main - **/ - PalletNftsMintWitness: { - ownedItem: "Option", - mintPrice: "Option" - }, - /** -<<<<<<< HEAD - * Lookup326: pallet_nfts::types::ItemConfig -======= - * Lookup357: pallet_nfts::types::ItemConfig ->>>>>>> main - **/ - PalletNftsItemConfig: { - settings: "u64" - }, - /** -<<<<<<< HEAD - * Lookup328: pallet_nfts::types::CancelAttributesApprovalWitness -======= - * Lookup359: pallet_nfts::types::CancelAttributesApprovalWitness ->>>>>>> main - **/ - PalletNftsCancelAttributesApprovalWitness: { - accountAttributes: "u32" - }, - /** -<<<<<<< HEAD - * Lookup330: pallet_nfts::types::ItemTip -======= - * Lookup361: pallet_nfts::types::ItemTip ->>>>>>> main - **/ - PalletNftsItemTip: { - collection: "u32", - item: "u32", - receiver: "AccountId32", - amount: "u128" - }, - /** -<<<<<<< HEAD - * Lookup332: pallet_nfts::types::PreSignedMint -======= - * Lookup363: pallet_nfts::types::PreSignedMint ->>>>>>> main - **/ - PalletNftsPreSignedMint: { - collection: "u32", - item: "u32", - attributes: "Vec<(Bytes,Bytes)>", - metadata: "Bytes", - onlyAccount: "Option", - deadline: "u32", - mintPrice: "Option" - }, - /** -<<<<<<< HEAD - * Lookup333: sp_runtime::MultiSignature -======= - * Lookup364: sp_runtime::MultiSignature ->>>>>>> main - **/ - SpRuntimeMultiSignature: { - _enum: { - Ed25519: "[u8;64]", - Sr25519: "[u8;64]", - Ecdsa: "[u8;65]" - } - }, - /** -<<<<<<< HEAD - * Lookup336: pallet_nfts::types::PreSignedAttributes -======= - * Lookup367: pallet_nfts::types::PreSignedAttributes ->>>>>>> main - **/ - PalletNftsPreSignedAttributes: { - collection: "u32", - item: "u32", - attributes: "Vec<(Bytes,Bytes)>", - namespace: "PalletNftsAttributeNamespace", - deadline: "u32" - }, - /** -<<<<<<< HEAD - * Lookup337: pallet_sudo::pallet::Error -======= - * Lookup368: pallet_parameters::pallet::Call - **/ - PalletParametersCall: { - _enum: { - set_parameter: { - keyValue: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters" - } - } - }, - /** - * Lookup369: storage_hub_runtime::configs::runtime_params::RuntimeParameters - **/ - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { - _enum: { - RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters" - } - }, - /** - * Lookup370: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters - **/ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { - _enum: { - SlashAmountPerMaxFileSize: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize,Option)", - StakeToChallengePeriod: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod,Option)", - CheckpointChallengePeriod: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod,Option)", - MinChallengePeriod: - "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod,Option)" - } - }, - /** - * Lookup371: pallet_sudo::pallet::Error ->>>>>>> main - **/ - PalletSudoError: { - _enum: ["RequireSudo"] - }, - /** -<<<<<<< HEAD - * Lookup340: pallet_collator_selection::pallet::CandidateInfo -======= - * Lookup374: pallet_collator_selection::pallet::CandidateInfo ->>>>>>> main - **/ - PalletCollatorSelectionCandidateInfo: { - who: "AccountId32", - deposit: "u128" - }, - /** -<<<<<<< HEAD - * Lookup342: pallet_collator_selection::pallet::Error -======= - * Lookup376: pallet_collator_selection::pallet::Error ->>>>>>> main - **/ - PalletCollatorSelectionError: { - _enum: [ - "TooManyCandidates", - "TooFewEligibleCollators", - "AlreadyCandidate", - "NotCandidate", - "TooManyInvulnerables", - "AlreadyInvulnerable", - "NotInvulnerable", - "NoAssociatedValidatorId", - "ValidatorNotRegistered", - "InsertToCandidateListFailed", - "RemoveFromCandidateListFailed", - "DepositTooLow", - "UpdateCandidateListFailed", - "InsufficientBond", - "TargetIsNotCandidate", - "IdenticalDeposit", - "InvalidUnreserve" - ] - }, - /** -<<<<<<< HEAD - * Lookup346: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: "[u8;4]", - /** - * Lookup347: pallet_session::pallet::Error -======= - * Lookup380: sp_core::crypto::KeyTypeId - **/ - SpCoreCryptoKeyTypeId: "[u8;4]", - /** - * Lookup381: pallet_session::pallet::Error ->>>>>>> main - **/ - PalletSessionError: { - _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] - }, - /** -<<<<<<< HEAD - * Lookup356: cumulus_pallet_xcmp_queue::OutboundChannelDetails -======= - * Lookup390: cumulus_pallet_xcmp_queue::OutboundChannelDetails ->>>>>>> main - **/ - CumulusPalletXcmpQueueOutboundChannelDetails: { - recipient: "u32", - state: "CumulusPalletXcmpQueueOutboundState", - signalsExist: "bool", - firstIndex: "u16", - lastIndex: "u16" - }, - /** -<<<<<<< HEAD - * Lookup357: cumulus_pallet_xcmp_queue::OutboundState -======= - * Lookup391: cumulus_pallet_xcmp_queue::OutboundState ->>>>>>> main - **/ - CumulusPalletXcmpQueueOutboundState: { - _enum: ["Ok", "Suspended"] - }, - /** -<<<<<<< HEAD - * Lookup361: cumulus_pallet_xcmp_queue::QueueConfigData -======= - * Lookup393: cumulus_pallet_xcmp_queue::QueueConfigData ->>>>>>> main - **/ - CumulusPalletXcmpQueueQueueConfigData: { - suspendThreshold: "u32", - dropThreshold: "u32", - resumeThreshold: "u32" - }, - /** -<<<<<<< HEAD - * Lookup362: cumulus_pallet_xcmp_queue::pallet::Error -======= - * Lookup394: cumulus_pallet_xcmp_queue::pallet::Error ->>>>>>> main - **/ - CumulusPalletXcmpQueueError: { - _enum: [ - "BadQueueConfig", - "AlreadySuspended", - "AlreadyResumed", - "TooManyActiveOutboundChannels", - "TooBig" - ] - }, - /** -<<<<<<< HEAD - * Lookup363: pallet_xcm::pallet::QueryStatus -======= - * Lookup395: pallet_xcm::pallet::QueryStatus ->>>>>>> main - **/ - PalletXcmQueryStatus: { - _enum: { - Pending: { - responder: "XcmVersionedLocation", - maybeMatchQuerier: "Option", - maybeNotify: "Option<(u8,u8)>", - timeout: "u32" - }, - VersionNotifier: { - origin: "XcmVersionedLocation", - isActive: "bool" - }, - Ready: { - response: "XcmVersionedResponse", - at: "u32" - } - } - }, - /** -<<<<<<< HEAD - * Lookup367: xcm::VersionedResponse -======= - * Lookup399: xcm::VersionedResponse ->>>>>>> main - **/ - XcmVersionedResponse: { - _enum: { - __Unused0: "Null", - __Unused1: "Null", - V2: "XcmV2Response", - V3: "XcmV3Response", - V4: "StagingXcmV4Response" - } - }, - /** -<<<<<<< HEAD - * Lookup373: pallet_xcm::pallet::VersionMigrationStage -======= - * Lookup405: pallet_xcm::pallet::VersionMigrationStage ->>>>>>> main - **/ - PalletXcmVersionMigrationStage: { - _enum: { - MigrateSupportedVersion: "Null", - MigrateVersionNotifiers: "Null", - NotifyCurrentTargets: "Option", - MigrateAndNotifyOldTargets: "Null" - } - }, - /** -<<<<<<< HEAD - * Lookup376: pallet_xcm::pallet::RemoteLockedFungibleRecord -======= - * Lookup408: pallet_xcm::pallet::RemoteLockedFungibleRecord ->>>>>>> main - **/ - PalletXcmRemoteLockedFungibleRecord: { - amount: "u128", - owner: "XcmVersionedLocation", - locker: "XcmVersionedLocation", - consumers: "Vec<(Null,u128)>" - }, - /** - * Lookup415: pallet_xcm::pallet::Error - **/ - PalletXcmError: { - _enum: [ - "Unreachable", - "SendFailure", - "Filtered", - "UnweighableMessage", - "DestinationNotInvertible", - "Empty", - "CannotReanchor", - "TooManyAssets", - "InvalidOrigin", - "BadVersion", - "BadLocation", - "NoSubscription", - "AlreadySubscribed", - "CannotCheckOutTeleport", - "LowBalance", - "TooManyLocks", - "AccountNotSovereign", - "FeesNotMet", - "LockNotFound", - "InUse", - "__Unused20", - "InvalidAssetUnknownReserve", - "InvalidAssetUnsupportedReserve", - "TooManyReserves", - "LocalExecutionIncomplete" - ] - }, - /** - * Lookup416: pallet_message_queue::BookState - **/ - PalletMessageQueueBookState: { - _alias: { - size_: "size" - }, - begin: "u32", - end: "u32", - count: "u32", - readyNeighbours: "Option", - messageCount: "u64", - size_: "u64" - }, - /** - * Lookup418: pallet_message_queue::Neighbours - **/ - PalletMessageQueueNeighbours: { - prev: "CumulusPrimitivesCoreAggregateMessageOrigin", - next: "CumulusPrimitivesCoreAggregateMessageOrigin" - }, - /** - * Lookup420: pallet_message_queue::Page - **/ - PalletMessageQueuePage: { - remaining: "u32", - remainingSize: "u32", - firstIndex: "u32", - first: "u32", - last: "u32", - heap: "Bytes" - }, - /** - * Lookup422: pallet_message_queue::pallet::Error - **/ - PalletMessageQueueError: { - _enum: [ - "NotReapable", - "NoPage", - "NoMessage", - "AlreadyProcessed", - "Queued", - "InsufficientWeight", - "TemporarilyUnprocessable", - "QueuePaused", - "RecursiveDisallowed" - ] - }, - /** - * Lookup424: pallet_storage_providers::types::StorageProvider - **/ - PalletStorageProvidersStorageProvider: { - _enum: { - BackupStorageProvider: "PalletStorageProvidersBackupStorageProvider", - MainStorageProvider: "PalletStorageProvidersMainStorageProvider" - } - }, - /** - * Lookup425: pallet_storage_providers::types::BackupStorageProvider - **/ - PalletStorageProvidersBackupStorageProvider: { - capacity: "u64", - capacityUsed: "u64", - multiaddresses: "Vec", - root: "H256", - lastCapacityChange: "u32", - ownerAccount: "AccountId32", - paymentAccount: "AccountId32", - reputationWeight: "u32" - }, - /** - * Lookup426: pallet_storage_providers::types::MainStorageProvider - **/ - PalletStorageProvidersMainStorageProvider: { - buckets: "Vec", - capacity: "u64", - capacityUsed: "u64", - multiaddresses: "Vec", - valueProp: "PalletStorageProvidersValueProposition", - lastCapacityChange: "u32", - ownerAccount: "AccountId32", - paymentAccount: "AccountId32" - }, - /** - * Lookup428: pallet_storage_providers::types::Bucket - **/ - PalletStorageProvidersBucket: { - _alias: { - size_: "size" - }, - root: "H256", - userId: "AccountId32", - mspId: "H256", - private: "bool", - readAccessGroupId: "Option", - size_: "u64" - }, - /** - * Lookup431: pallet_storage_providers::pallet::Error - **/ - PalletStorageProvidersError: { - _enum: [ - "AlreadyRegistered", - "SignUpNotRequested", - "SignUpRequestPending", - "NoMultiAddress", - "InvalidMultiAddress", - "StorageTooLow", - "NotEnoughBalance", - "CannotHoldDeposit", - "StorageStillInUse", - "RandomnessNotValidYet", - "SignUpRequestExpired", - "NewCapacityLessThanUsedStorage", - "NewCapacityEqualsCurrentCapacity", - "NewCapacityCantBeZero", - "NotEnoughTimePassed", - "NewUsedCapacityExceedsStorageCapacity", - "NotRegistered", - "NoUserId", - "NoBucketId", - "SpRegisteredButDataNotFound", - "BucketNotFound", - "BucketAlreadyExists", - "AppendBucketToMspFailed", - "ProviderNotSlashable", - "InvalidEncodedFileMetadata", - "InvalidEncodedAccountId", - "PaymentStreamNotFound" - ] - }, - /** - * Lookup432: pallet_file_system::types::StorageRequestMetadata - **/ - PalletFileSystemStorageRequestMetadata: { - _alias: { - size_: "size" - }, - requestedAt: "u32", - owner: "AccountId32", - bucketId: "H256", - location: "Bytes", - fingerprint: "H256", - size_: "u64", - msp: "Option<(H256,bool)>", - userPeerIds: "Vec", - dataServerSps: "Vec", - bspsRequired: "u32", - bspsConfirmed: "u32", - bspsVolunteered: "u32" - }, - /** - * Lookup437: pallet_file_system::types::StorageRequestBspsMetadata - **/ - PalletFileSystemStorageRequestBspsMetadata: { - confirmed: "bool" - }, - /** - * Lookup446: pallet_file_system::types::MoveBucketRequestMetadata - **/ - PalletFileSystemMoveBucketRequestMetadata: { - requester: "AccountId32" - }, - /** - * Lookup447: pallet_file_system::pallet::Error - **/ - PalletFileSystemError: { - _enum: [ - "StorageRequestAlreadyRegistered", - "StorageRequestNotFound", - "StorageRequestNotRevoked", - "StorageRequestExists", - "ReplicationTargetCannotBeZero", - "BspsRequiredExceedsTarget", - "NotABsp", - "NotAMsp", - "NotASp", - "BspNotVolunteered", - "BspNotConfirmed", - "BspAlreadyConfirmed", - "StorageRequestBspsRequiredFulfilled", - "BspAlreadyVolunteered", - "InsufficientAvailableCapacity", - "UnexpectedNumberOfRemovedVolunteeredBsps", - "StorageRequestExpiredNoSlotAvailable", - "StorageRequestNotAuthorized", - "MaxBlockNumberReached", - "FailedToEncodeBsp", - "FailedToEncodeFingerprint", - "FailedToDecodeThreshold", - "AboveThreshold", - "ThresholdArithmeticError", - "FailedTypeConversion", - "DividedByZero", - "ImpossibleFailedToGetValue", - "BucketIsNotPrivate", - "BucketNotFound", - "NotBucketOwner", - "ProviderRootNotFound", - "ExpectedNonInclusionProof", - "ExpectedInclusionProof", - "InvalidFileKeyMetadata", - "ThresholdBelowAsymptote", - "NotFileOwner", - "FileKeyAlreadyPendingDeletion", - "MaxUserPendingDeletionRequestsReached", - "MspNotStoringBucket", - "FileKeyNotPendingDeletion", - "FileSizeCannotBeZero", - "NoGlobalReputationWeightSet", - "MaximumThresholdCannotBeZero", - "TickRangeToMaximumThresholdCannotBeZero", - "PendingStopStoringRequestNotFound", - "MinWaitForStopStoringNotReached", - "PendingStopStoringRequestAlreadyExists", - "UserNotInsolvent", - "NotSelectedMsp", - "MspAlreadyConfirmed", - "RequestWithoutMsp", - "MspAlreadyStoringBucket", - "MoveBucketRequestNotFound", - "BucketIsBeingMoved", - "BspAlreadyDataServer", - "BspDataServersExceeded", - "FileMetadataProcessingQueueFull", - "TooManyBatchResponses", - "TooManyStorageRequestResponses", - "InvalidBucketIdFileKeyPair", - "InconsistentStateKeyAlreadyExists" - ] - }, - /** - * Lookup454: pallet_proofs_dealer::pallet::Error - **/ - PalletProofsDealerError: { - _enum: [ - "NotProvider", - "ChallengesQueueOverflow", - "PriorityChallengesQueueOverflow", - "FeeChargeFailed", - "EmptyKeyProofs", - "ProviderRootNotFound", - "ZeroRoot", - "NoRecordOfLastSubmittedProof", - "ProviderStakeNotFound", - "ZeroStake", - "StakeCouldNotBeConverted", - "ChallengesTickNotReached", - "ChallengesTickTooOld", - "ChallengesTickTooLate", - "SeedNotFound", - "CheckpointChallengesNotFound", - "ForestProofVerificationFailed", - "KeyProofNotFound", - "KeyProofVerificationFailed", - "FailedToApplyDelta", - "FailedToUpdateProviderAfterKeyRemoval", - "TooManyValidProofSubmitters" - ] - }, - /** - * Lookup457: pallet_payment_streams::types::FixedRatePaymentStream - **/ - PalletPaymentStreamsFixedRatePaymentStream: { - rate: "u128", - lastChargedTick: "u32", - userDeposit: "u128", - outOfFundsTick: "Option" - }, - /** - * Lookup458: pallet_payment_streams::types::DynamicRatePaymentStream - **/ - PalletPaymentStreamsDynamicRatePaymentStream: { - amountProvided: "u64", - priceIndexWhenLastCharged: "u128", - userDeposit: "u128", - outOfFundsTick: "Option" - }, - /** - * Lookup459: pallet_payment_streams::types::ProviderLastChargeableInfo - **/ - PalletPaymentStreamsProviderLastChargeableInfo: { - lastChargeableTick: "u32", - priceIndex: "u128" - }, - /** - * Lookup460: pallet_payment_streams::pallet::Error - **/ - PalletPaymentStreamsError: { - _enum: [ - "PaymentStreamAlreadyExists", - "PaymentStreamNotFound", - "NotAProvider", - "ProviderInconsistencyError", - "CannotHoldDeposit", - "UpdateRateToSameRate", - "UpdateAmountToSameAmount", - "RateCantBeZero", - "AmountProvidedCantBeZero", - "LastChargedGreaterThanLastChargeable", - "InvalidLastChargeableBlockNumber", - "InvalidLastChargeablePriceIndex", - "ChargeOverflow", - "UserWithoutFunds", - "UserNotFlaggedAsWithoutFunds", - "CooldownPeriodNotPassed" - ] - }, - /** - * Lookup461: pallet_bucket_nfts::pallet::Error - **/ - PalletBucketNftsError: { - _enum: [ - "BucketIsNotPrivate", - "NotBucketOwner", - "NoCorrespondingCollection", - "ConvertBytesToBoundedVec" - ] - }, - /** - * Lookup462: pallet_nfts::types::CollectionDetails - **/ - PalletNftsCollectionDetails: { - owner: "AccountId32", - ownerDeposit: "u128", - items: "u32", - itemMetadatas: "u32", - itemConfigs: "u32", - attributes: "u32" - }, - /** - * Lookup467: pallet_nfts::types::CollectionRole - **/ - PalletNftsCollectionRole: { - _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] - }, - /** - * Lookup468: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> - **/ - PalletNftsItemDetails: { - owner: "AccountId32", - approvals: "BTreeMap>", - deposit: "PalletNftsItemDeposit" - }, - /** - * Lookup469: pallet_nfts::types::ItemDeposit - **/ - PalletNftsItemDeposit: { - account: "AccountId32", - amount: "u128" - }, - /** - * Lookup474: pallet_nfts::types::CollectionMetadata - **/ - PalletNftsCollectionMetadata: { - deposit: "u128", - data: "Bytes" - }, - /** - * Lookup475: pallet_nfts::types::ItemMetadata, StringLimit> - **/ - PalletNftsItemMetadata: { - deposit: "PalletNftsItemMetadataDeposit", - data: "Bytes" - }, - /** - * Lookup476: pallet_nfts::types::ItemMetadataDeposit - **/ - PalletNftsItemMetadataDeposit: { - account: "Option", - amount: "u128" - }, - /** - * Lookup479: pallet_nfts::types::AttributeDeposit - **/ - PalletNftsAttributeDeposit: { - account: "Option", - amount: "u128" - }, - /** - * Lookup483: pallet_nfts::types::PendingSwap, Deadline> - **/ - PalletNftsPendingSwap: { - desiredCollection: "u32", - desiredItem: "Option", - price: "Option", - deadline: "u32" - }, - /** - * Lookup485: pallet_nfts::types::PalletFeature - **/ - PalletNftsPalletFeature: { - _enum: [ - "__Unused0", - "Trading", - "Attributes", - "__Unused3", - "Approvals", - "__Unused5", - "__Unused6", - "__Unused7", - "Swaps" - ] - }, - /** - * Lookup486: pallet_nfts::pallet::Error - **/ - PalletNftsError: { - _enum: [ - "NoPermission", - "UnknownCollection", - "AlreadyExists", - "ApprovalExpired", - "WrongOwner", - "BadWitness", - "CollectionIdInUse", - "ItemsNonTransferable", - "NotDelegate", - "WrongDelegate", - "Unapproved", - "Unaccepted", - "ItemLocked", - "LockedItemAttributes", - "LockedCollectionAttributes", - "LockedItemMetadata", - "LockedCollectionMetadata", - "MaxSupplyReached", - "MaxSupplyLocked", - "MaxSupplyTooSmall", - "UnknownItem", - "UnknownSwap", - "MetadataNotFound", - "AttributeNotFound", - "NotForSale", - "BidTooLow", - "ReachedApprovalLimit", - "DeadlineExpired", - "WrongDuration", - "MethodDisabled", - "WrongSetting", - "InconsistentItemConfig", - "NoConfig", - "RolesNotCleared", - "MintNotStarted", - "MintEnded", - "AlreadyClaimed", - "IncorrectData", - "WrongOrigin", - "WrongSignature", - "IncorrectMetadata", - "MaxAttributesLimitReached", - "WrongNamespace", - "CollectionNotEmpty", - "WitnessRequired" - ] - }, - /** - * Lookup489: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender - **/ - FrameSystemExtensionsCheckNonZeroSender: "Null", - /** - * Lookup490: frame_system::extensions::check_spec_version::CheckSpecVersion - **/ - FrameSystemExtensionsCheckSpecVersion: "Null", - /** - * Lookup491: frame_system::extensions::check_tx_version::CheckTxVersion - **/ - FrameSystemExtensionsCheckTxVersion: "Null", - /** - * Lookup492: frame_system::extensions::check_genesis::CheckGenesis - **/ - FrameSystemExtensionsCheckGenesis: "Null", - /** - * Lookup495: frame_system::extensions::check_nonce::CheckNonce - **/ - FrameSystemExtensionsCheckNonce: "Compact", - /** - * Lookup496: frame_system::extensions::check_weight::CheckWeight - **/ - FrameSystemExtensionsCheckWeight: "Null", - /** - * Lookup497: pallet_transaction_payment::ChargeTransactionPayment - **/ - PalletTransactionPaymentChargeTransactionPayment: "Compact", - /** - * Lookup498: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim - **/ - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", - /** -<<<<<<< HEAD - * Lookup467: frame_metadata_hash_extension::CheckMetadataHash -======= - * Lookup499: frame_metadata_hash_extension::CheckMetadataHash ->>>>>>> main - **/ - FrameMetadataHashExtensionCheckMetadataHash: { - mode: "FrameMetadataHashExtensionMode" - }, - /** -<<<<<<< HEAD - * Lookup468: frame_metadata_hash_extension::Mode -======= - * Lookup500: frame_metadata_hash_extension::Mode ->>>>>>> main - **/ - FrameMetadataHashExtensionMode: { - _enum: ["Disabled", "Enabled"] - }, - /** -<<<<<<< HEAD - * Lookup469: storage_hub_runtime::Runtime -======= - * Lookup501: storage_hub_runtime::Runtime ->>>>>>> main - **/ - StorageHubRuntimeRuntime: "Null" -}; +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +/* eslint-disable sort-keys */ + +export default { + /** + * Lookup3: frame_system::AccountInfo> + **/ + FrameSystemAccountInfo: { + nonce: "u32", + consumers: "u32", + providers: "u32", + sufficients: "u32", + data: "PalletBalancesAccountData" + }, + /** + * Lookup5: pallet_balances::types::AccountData + **/ + PalletBalancesAccountData: { + free: "u128", + reserved: "u128", + frozen: "u128", + flags: "u128" + }, + /** + * Lookup9: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeight: { + normal: "SpWeightsWeightV2Weight", + operational: "SpWeightsWeightV2Weight", + mandatory: "SpWeightsWeightV2Weight" + }, + /** + * Lookup10: sp_weights::weight_v2::Weight + **/ + SpWeightsWeightV2Weight: { + refTime: "Compact", + proofSize: "Compact" + }, + /** + * Lookup15: sp_runtime::generic::digest::Digest + **/ + SpRuntimeDigest: { + logs: "Vec" + }, + /** + * Lookup17: sp_runtime::generic::digest::DigestItem + **/ + SpRuntimeDigestDigestItem: { + _enum: { + Other: "Bytes", + __Unused1: "Null", + __Unused2: "Null", + __Unused3: "Null", + Consensus: "([u8;4],Bytes)", + Seal: "([u8;4],Bytes)", + PreRuntime: "([u8;4],Bytes)", + __Unused7: "Null", + RuntimeEnvironmentUpdated: "Null" + } + }, + /** + * Lookup20: frame_system::EventRecord + **/ + FrameSystemEventRecord: { + phase: "FrameSystemPhase", + event: "Event", + topics: "Vec" + }, + /** + * Lookup22: frame_system::pallet::Event + **/ + FrameSystemEvent: { + _enum: { + ExtrinsicSuccess: { + dispatchInfo: "FrameSupportDispatchDispatchInfo" + }, + ExtrinsicFailed: { + dispatchError: "SpRuntimeDispatchError", + dispatchInfo: "FrameSupportDispatchDispatchInfo" + }, + CodeUpdated: "Null", + NewAccount: { + account: "AccountId32" + }, + KilledAccount: { + account: "AccountId32" + }, + Remarked: { + _alias: { + hash_: "hash" + }, + sender: "AccountId32", + hash_: "H256" + }, + UpgradeAuthorized: { + codeHash: "H256", + checkVersion: "bool" + } + } + }, + /** + * Lookup23: frame_support::dispatch::DispatchInfo + **/ + FrameSupportDispatchDispatchInfo: { + weight: "SpWeightsWeightV2Weight", + class: "FrameSupportDispatchDispatchClass", + paysFee: "FrameSupportDispatchPays" + }, + /** + * Lookup24: frame_support::dispatch::DispatchClass + **/ + FrameSupportDispatchDispatchClass: { + _enum: ["Normal", "Operational", "Mandatory"] + }, + /** + * Lookup25: frame_support::dispatch::Pays + **/ + FrameSupportDispatchPays: { + _enum: ["Yes", "No"] + }, + /** + * Lookup26: sp_runtime::DispatchError + **/ + SpRuntimeDispatchError: { + _enum: { + Other: "Null", + CannotLookup: "Null", + BadOrigin: "Null", + Module: "SpRuntimeModuleError", + ConsumerRemaining: "Null", + NoProviders: "Null", + TooManyConsumers: "Null", + Token: "SpRuntimeTokenError", + Arithmetic: "SpArithmeticArithmeticError", + Transactional: "SpRuntimeTransactionalError", + Exhausted: "Null", + Corruption: "Null", + Unavailable: "Null", + RootNotAllowed: "Null" + } + }, + /** + * Lookup27: sp_runtime::ModuleError + **/ + SpRuntimeModuleError: { + index: "u8", + error: "[u8;4]" + }, + /** + * Lookup28: sp_runtime::TokenError + **/ + SpRuntimeTokenError: { + _enum: [ + "FundsUnavailable", + "OnlyProvider", + "BelowMinimum", + "CannotCreate", + "UnknownAsset", + "Frozen", + "Unsupported", + "CannotCreateHold", + "NotExpendable", + "Blocked" + ] + }, + /** + * Lookup29: sp_arithmetic::ArithmeticError + **/ + SpArithmeticArithmeticError: { + _enum: ["Underflow", "Overflow", "DivisionByZero"] + }, + /** + * Lookup30: sp_runtime::TransactionalError + **/ + SpRuntimeTransactionalError: { + _enum: ["LimitReached", "NoLayer"] + }, + /** + * Lookup31: cumulus_pallet_parachain_system::pallet::Event + **/ + CumulusPalletParachainSystemEvent: { + _enum: { + ValidationFunctionStored: "Null", + ValidationFunctionApplied: { + relayChainBlockNum: "u32" + }, + ValidationFunctionDiscarded: "Null", + DownwardMessagesReceived: { + count: "u32" + }, + DownwardMessagesProcessed: { + weightUsed: "SpWeightsWeightV2Weight", + dmqHead: "H256" + }, + UpwardMessageSent: { + messageHash: "Option<[u8;32]>" + } + } + }, + /** + * Lookup33: pallet_balances::pallet::Event + **/ + PalletBalancesEvent: { + _enum: { + Endowed: { + account: "AccountId32", + freeBalance: "u128" + }, + DustLost: { + account: "AccountId32", + amount: "u128" + }, + Transfer: { + from: "AccountId32", + to: "AccountId32", + amount: "u128" + }, + BalanceSet: { + who: "AccountId32", + free: "u128" + }, + Reserved: { + who: "AccountId32", + amount: "u128" + }, + Unreserved: { + who: "AccountId32", + amount: "u128" + }, + ReserveRepatriated: { + from: "AccountId32", + to: "AccountId32", + amount: "u128", + destinationStatus: "FrameSupportTokensMiscBalanceStatus" + }, + Deposit: { + who: "AccountId32", + amount: "u128" + }, + Withdraw: { + who: "AccountId32", + amount: "u128" + }, + Slashed: { + who: "AccountId32", + amount: "u128" + }, + Minted: { + who: "AccountId32", + amount: "u128" + }, + Burned: { + who: "AccountId32", + amount: "u128" + }, + Suspended: { + who: "AccountId32", + amount: "u128" + }, + Restored: { + who: "AccountId32", + amount: "u128" + }, + Upgraded: { + who: "AccountId32" + }, + Issued: { + amount: "u128" + }, + Rescinded: { + amount: "u128" + }, + Locked: { + who: "AccountId32", + amount: "u128" + }, + Unlocked: { + who: "AccountId32", + amount: "u128" + }, + Frozen: { + who: "AccountId32", + amount: "u128" + }, + Thawed: { + who: "AccountId32", + amount: "u128" + }, + TotalIssuanceForced: { + _alias: { + new_: "new" + }, + old: "u128", + new_: "u128" + } + } + }, + /** + * Lookup34: frame_support::traits::tokens::misc::BalanceStatus + **/ + FrameSupportTokensMiscBalanceStatus: { + _enum: ["Free", "Reserved"] + }, + /** + * Lookup35: pallet_transaction_payment::pallet::Event + **/ + PalletTransactionPaymentEvent: { + _enum: { + TransactionFeePaid: { + who: "AccountId32", + actualFee: "u128", + tip: "u128" + } + } + }, + /** + * Lookup36: pallet_sudo::pallet::Event + **/ + PalletSudoEvent: { + _enum: { + Sudid: { + sudoResult: "Result" + }, + KeyChanged: { + _alias: { + new_: "new" + }, + old: "Option", + new_: "AccountId32" + }, + KeyRemoved: "Null", + SudoAsDone: { + sudoResult: "Result" + } + } + }, + /** + * Lookup40: pallet_collator_selection::pallet::Event + **/ + PalletCollatorSelectionEvent: { + _enum: { + NewInvulnerables: { + invulnerables: "Vec" + }, + InvulnerableAdded: { + accountId: "AccountId32" + }, + InvulnerableRemoved: { + accountId: "AccountId32" + }, + NewDesiredCandidates: { + desiredCandidates: "u32" + }, + NewCandidacyBond: { + bondAmount: "u128" + }, + CandidateAdded: { + accountId: "AccountId32", + deposit: "u128" + }, + CandidateBondUpdated: { + accountId: "AccountId32", + deposit: "u128" + }, + CandidateRemoved: { + accountId: "AccountId32" + }, + CandidateReplaced: { + _alias: { + new_: "new" + }, + old: "AccountId32", + new_: "AccountId32", + deposit: "u128" + }, + InvalidInvulnerableSkipped: { + accountId: "AccountId32" + } + } + }, + /** + * Lookup42: pallet_session::pallet::Event + **/ + PalletSessionEvent: { + _enum: { + NewSession: { + sessionIndex: "u32" + } + } + }, + /** + * Lookup43: cumulus_pallet_xcmp_queue::pallet::Event + **/ + CumulusPalletXcmpQueueEvent: { + _enum: { + XcmpMessageSent: { + messageHash: "[u8;32]" + } + } + }, + /** + * Lookup44: pallet_xcm::pallet::Event + **/ + PalletXcmEvent: { + _enum: { + Attempted: { + outcome: "StagingXcmV4TraitsOutcome" + }, + Sent: { + origin: "StagingXcmV4Location", + destination: "StagingXcmV4Location", + message: "StagingXcmV4Xcm", + messageId: "[u8;32]" + }, + UnexpectedResponse: { + origin: "StagingXcmV4Location", + queryId: "u64" + }, + ResponseReady: { + queryId: "u64", + response: "StagingXcmV4Response" + }, + Notified: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8" + }, + NotifyOverweight: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8", + actualWeight: "SpWeightsWeightV2Weight", + maxBudgetedWeight: "SpWeightsWeightV2Weight" + }, + NotifyDispatchError: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8" + }, + NotifyDecodeFailed: { + queryId: "u64", + palletIndex: "u8", + callIndex: "u8" + }, + InvalidResponder: { + origin: "StagingXcmV4Location", + queryId: "u64", + expectedLocation: "Option" + }, + InvalidResponderVersion: { + origin: "StagingXcmV4Location", + queryId: "u64" + }, + ResponseTaken: { + queryId: "u64" + }, + AssetsTrapped: { + _alias: { + hash_: "hash" + }, + hash_: "H256", + origin: "StagingXcmV4Location", + assets: "XcmVersionedAssets" + }, + VersionChangeNotified: { + destination: "StagingXcmV4Location", + result: "u32", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + SupportedVersionChanged: { + location: "StagingXcmV4Location", + version: "u32" + }, + NotifyTargetSendFail: { + location: "StagingXcmV4Location", + queryId: "u64", + error: "XcmV3TraitsError" + }, + NotifyTargetMigrationFail: { + location: "XcmVersionedLocation", + queryId: "u64" + }, + InvalidQuerierVersion: { + origin: "StagingXcmV4Location", + queryId: "u64" + }, + InvalidQuerier: { + origin: "StagingXcmV4Location", + queryId: "u64", + expectedQuerier: "StagingXcmV4Location", + maybeActualQuerier: "Option" + }, + VersionNotifyStarted: { + destination: "StagingXcmV4Location", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + VersionNotifyRequested: { + destination: "StagingXcmV4Location", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + VersionNotifyUnrequested: { + destination: "StagingXcmV4Location", + cost: "StagingXcmV4AssetAssets", + messageId: "[u8;32]" + }, + FeesPaid: { + paying: "StagingXcmV4Location", + fees: "StagingXcmV4AssetAssets" + }, + AssetsClaimed: { + _alias: { + hash_: "hash" + }, + hash_: "H256", + origin: "StagingXcmV4Location", + assets: "XcmVersionedAssets" + }, + VersionMigrationFinished: { + version: "u32" + } + } + }, + /** + * Lookup45: staging_xcm::v4::traits::Outcome + **/ + StagingXcmV4TraitsOutcome: { + _enum: { + Complete: { + used: "SpWeightsWeightV2Weight" + }, + Incomplete: { + used: "SpWeightsWeightV2Weight", + error: "XcmV3TraitsError" + }, + Error: { + error: "XcmV3TraitsError" + } + } + }, + /** + * Lookup46: xcm::v3::traits::Error + **/ + XcmV3TraitsError: { + _enum: { + Overflow: "Null", + Unimplemented: "Null", + UntrustedReserveLocation: "Null", + UntrustedTeleportLocation: "Null", + LocationFull: "Null", + LocationNotInvertible: "Null", + BadOrigin: "Null", + InvalidLocation: "Null", + AssetNotFound: "Null", + FailedToTransactAsset: "Null", + NotWithdrawable: "Null", + LocationCannotHold: "Null", + ExceedsMaxMessageSize: "Null", + DestinationUnsupported: "Null", + Transport: "Null", + Unroutable: "Null", + UnknownClaim: "Null", + FailedToDecode: "Null", + MaxWeightInvalid: "Null", + NotHoldingFees: "Null", + TooExpensive: "Null", + Trap: "u64", + ExpectationFalse: "Null", + PalletNotFound: "Null", + NameMismatch: "Null", + VersionIncompatible: "Null", + HoldingWouldOverflow: "Null", + ExportError: "Null", + ReanchorFailed: "Null", + NoDeal: "Null", + FeesNotMet: "Null", + LockError: "Null", + NoPermission: "Null", + Unanchored: "Null", + NotDepositable: "Null", + UnhandledXcmVersion: "Null", + WeightLimitReached: "SpWeightsWeightV2Weight", + Barrier: "Null", + WeightNotComputable: "Null", + ExceedsStackLimit: "Null" + } + }, + /** + * Lookup47: staging_xcm::v4::location::Location + **/ + StagingXcmV4Location: { + parents: "u8", + interior: "StagingXcmV4Junctions" + }, + /** + * Lookup48: staging_xcm::v4::junctions::Junctions + **/ + StagingXcmV4Junctions: { + _enum: { + Here: "Null", + X1: "[Lookup50;1]", + X2: "[Lookup50;2]", + X3: "[Lookup50;3]", + X4: "[Lookup50;4]", + X5: "[Lookup50;5]", + X6: "[Lookup50;6]", + X7: "[Lookup50;7]", + X8: "[Lookup50;8]" + } + }, + /** + * Lookup50: staging_xcm::v4::junction::Junction + **/ + StagingXcmV4Junction: { + _enum: { + Parachain: "Compact", + AccountId32: { + network: "Option", + id: "[u8;32]" + }, + AccountIndex64: { + network: "Option", + index: "Compact" + }, + AccountKey20: { + network: "Option", + key: "[u8;20]" + }, + PalletInstance: "u8", + GeneralIndex: "Compact", + GeneralKey: { + length: "u8", + data: "[u8;32]" + }, + OnlyChild: "Null", + Plurality: { + id: "XcmV3JunctionBodyId", + part: "XcmV3JunctionBodyPart" + }, + GlobalConsensus: "StagingXcmV4JunctionNetworkId" + } + }, + /** + * Lookup53: staging_xcm::v4::junction::NetworkId + **/ + StagingXcmV4JunctionNetworkId: { + _enum: { + ByGenesis: "[u8;32]", + ByFork: { + blockNumber: "u64", + blockHash: "[u8;32]" + }, + Polkadot: "Null", + Kusama: "Null", + Westend: "Null", + Rococo: "Null", + Wococo: "Null", + Ethereum: { + chainId: "Compact" + }, + BitcoinCore: "Null", + BitcoinCash: "Null", + PolkadotBulletin: "Null" + } + }, + /** + * Lookup56: xcm::v3::junction::BodyId + **/ + XcmV3JunctionBodyId: { + _enum: { + Unit: "Null", + Moniker: "[u8;4]", + Index: "Compact", + Executive: "Null", + Technical: "Null", + Legislative: "Null", + Judicial: "Null", + Defense: "Null", + Administration: "Null", + Treasury: "Null" + } + }, + /** + * Lookup57: xcm::v3::junction::BodyPart + **/ + XcmV3JunctionBodyPart: { + _enum: { + Voice: "Null", + Members: { + count: "Compact" + }, + Fraction: { + nom: "Compact", + denom: "Compact" + }, + AtLeastProportion: { + nom: "Compact", + denom: "Compact" + }, + MoreThanProportion: { + nom: "Compact", + denom: "Compact" + } + } + }, + /** + * Lookup65: staging_xcm::v4::Xcm + **/ + StagingXcmV4Xcm: "Vec", + /** + * Lookup67: staging_xcm::v4::Instruction + **/ + StagingXcmV4Instruction: { + _enum: { + WithdrawAsset: "StagingXcmV4AssetAssets", + ReserveAssetDeposited: "StagingXcmV4AssetAssets", + ReceiveTeleportedAsset: "StagingXcmV4AssetAssets", + QueryResponse: { + queryId: "Compact", + response: "StagingXcmV4Response", + maxWeight: "SpWeightsWeightV2Weight", + querier: "Option" + }, + TransferAsset: { + assets: "StagingXcmV4AssetAssets", + beneficiary: "StagingXcmV4Location" + }, + TransferReserveAsset: { + assets: "StagingXcmV4AssetAssets", + dest: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + Transact: { + originKind: "XcmV3OriginKind", + requireWeightAtMost: "SpWeightsWeightV2Weight", + call: "XcmDoubleEncoded" + }, + HrmpNewChannelOpenRequest: { + sender: "Compact", + maxMessageSize: "Compact", + maxCapacity: "Compact" + }, + HrmpChannelAccepted: { + recipient: "Compact" + }, + HrmpChannelClosing: { + initiator: "Compact", + sender: "Compact", + recipient: "Compact" + }, + ClearOrigin: "Null", + DescendOrigin: "StagingXcmV4Junctions", + ReportError: "StagingXcmV4QueryResponseInfo", + DepositAsset: { + assets: "StagingXcmV4AssetAssetFilter", + beneficiary: "StagingXcmV4Location" + }, + DepositReserveAsset: { + assets: "StagingXcmV4AssetAssetFilter", + dest: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + ExchangeAsset: { + give: "StagingXcmV4AssetAssetFilter", + want: "StagingXcmV4AssetAssets", + maximal: "bool" + }, + InitiateReserveWithdraw: { + assets: "StagingXcmV4AssetAssetFilter", + reserve: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + InitiateTeleport: { + assets: "StagingXcmV4AssetAssetFilter", + dest: "StagingXcmV4Location", + xcm: "StagingXcmV4Xcm" + }, + ReportHolding: { + responseInfo: "StagingXcmV4QueryResponseInfo", + assets: "StagingXcmV4AssetAssetFilter" + }, + BuyExecution: { + fees: "StagingXcmV4Asset", + weightLimit: "XcmV3WeightLimit" + }, + RefundSurplus: "Null", + SetErrorHandler: "StagingXcmV4Xcm", + SetAppendix: "StagingXcmV4Xcm", + ClearError: "Null", + ClaimAsset: { + assets: "StagingXcmV4AssetAssets", + ticket: "StagingXcmV4Location" + }, + Trap: "Compact", + SubscribeVersion: { + queryId: "Compact", + maxResponseWeight: "SpWeightsWeightV2Weight" + }, + UnsubscribeVersion: "Null", + BurnAsset: "StagingXcmV4AssetAssets", + ExpectAsset: "StagingXcmV4AssetAssets", + ExpectOrigin: "Option", + ExpectError: "Option<(u32,XcmV3TraitsError)>", + ExpectTransactStatus: "XcmV3MaybeErrorCode", + QueryPallet: { + moduleName: "Bytes", + responseInfo: "StagingXcmV4QueryResponseInfo" + }, + ExpectPallet: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + crateMajor: "Compact", + minCrateMinor: "Compact" + }, + ReportTransactStatus: "StagingXcmV4QueryResponseInfo", + ClearTransactStatus: "Null", + UniversalOrigin: "StagingXcmV4Junction", + ExportMessage: { + network: "StagingXcmV4JunctionNetworkId", + destination: "StagingXcmV4Junctions", + xcm: "StagingXcmV4Xcm" + }, + LockAsset: { + asset: "StagingXcmV4Asset", + unlocker: "StagingXcmV4Location" + }, + UnlockAsset: { + asset: "StagingXcmV4Asset", + target: "StagingXcmV4Location" + }, + NoteUnlockable: { + asset: "StagingXcmV4Asset", + owner: "StagingXcmV4Location" + }, + RequestUnlock: { + asset: "StagingXcmV4Asset", + locker: "StagingXcmV4Location" + }, + SetFeesMode: { + jitWithdraw: "bool" + }, + SetTopic: "[u8;32]", + ClearTopic: "Null", + AliasOrigin: "StagingXcmV4Location", + UnpaidExecution: { + weightLimit: "XcmV3WeightLimit", + checkOrigin: "Option" + } + } + }, + /** + * Lookup68: staging_xcm::v4::asset::Assets + **/ + StagingXcmV4AssetAssets: "Vec", + /** + * Lookup70: staging_xcm::v4::asset::Asset + **/ + StagingXcmV4Asset: { + id: "StagingXcmV4AssetAssetId", + fun: "StagingXcmV4AssetFungibility" + }, + /** + * Lookup71: staging_xcm::v4::asset::AssetId + **/ + StagingXcmV4AssetAssetId: "StagingXcmV4Location", + /** + * Lookup72: staging_xcm::v4::asset::Fungibility + **/ + StagingXcmV4AssetFungibility: { + _enum: { + Fungible: "Compact", + NonFungible: "StagingXcmV4AssetAssetInstance" + } + }, + /** + * Lookup73: staging_xcm::v4::asset::AssetInstance + **/ + StagingXcmV4AssetAssetInstance: { + _enum: { + Undefined: "Null", + Index: "Compact", + Array4: "[u8;4]", + Array8: "[u8;8]", + Array16: "[u8;16]", + Array32: "[u8;32]" + } + }, + /** + * Lookup76: staging_xcm::v4::Response + **/ + StagingXcmV4Response: { + _enum: { + Null: "Null", + Assets: "StagingXcmV4AssetAssets", + ExecutionResult: "Option<(u32,XcmV3TraitsError)>", + Version: "u32", + PalletsInfo: "Vec", + DispatchResult: "XcmV3MaybeErrorCode" + } + }, + /** + * Lookup80: staging_xcm::v4::PalletInfo + **/ + StagingXcmV4PalletInfo: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + major: "Compact", + minor: "Compact", + patch: "Compact" + }, + /** + * Lookup83: xcm::v3::MaybeErrorCode + **/ + XcmV3MaybeErrorCode: { + _enum: { + Success: "Null", + Error: "Bytes", + TruncatedError: "Bytes" + } + }, + /** + * Lookup86: xcm::v3::OriginKind + **/ + XcmV3OriginKind: { + _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] + }, + /** + * Lookup87: xcm::double_encoded::DoubleEncoded + **/ + XcmDoubleEncoded: { + encoded: "Bytes" + }, + /** + * Lookup88: staging_xcm::v4::QueryResponseInfo + **/ + StagingXcmV4QueryResponseInfo: { + destination: "StagingXcmV4Location", + queryId: "Compact", + maxWeight: "SpWeightsWeightV2Weight" + }, + /** + * Lookup89: staging_xcm::v4::asset::AssetFilter + **/ + StagingXcmV4AssetAssetFilter: { + _enum: { + Definite: "StagingXcmV4AssetAssets", + Wild: "StagingXcmV4AssetWildAsset" + } + }, + /** + * Lookup90: staging_xcm::v4::asset::WildAsset + **/ + StagingXcmV4AssetWildAsset: { + _enum: { + All: "Null", + AllOf: { + id: "StagingXcmV4AssetAssetId", + fun: "StagingXcmV4AssetWildFungibility" + }, + AllCounted: "Compact", + AllOfCounted: { + id: "StagingXcmV4AssetAssetId", + fun: "StagingXcmV4AssetWildFungibility", + count: "Compact" + } + } + }, + /** + * Lookup91: staging_xcm::v4::asset::WildFungibility + **/ + StagingXcmV4AssetWildFungibility: { + _enum: ["Fungible", "NonFungible"] + }, + /** + * Lookup92: xcm::v3::WeightLimit + **/ + XcmV3WeightLimit: { + _enum: { + Unlimited: "Null", + Limited: "SpWeightsWeightV2Weight" + } + }, + /** + * Lookup93: xcm::VersionedAssets + **/ + XcmVersionedAssets: { + _enum: { + __Unused0: "Null", + V2: "XcmV2MultiassetMultiAssets", + __Unused2: "Null", + V3: "XcmV3MultiassetMultiAssets", + V4: "StagingXcmV4AssetAssets" + } + }, + /** + * Lookup94: xcm::v2::multiasset::MultiAssets + **/ + XcmV2MultiassetMultiAssets: "Vec", + /** + * Lookup96: xcm::v2::multiasset::MultiAsset + **/ + XcmV2MultiAsset: { + id: "XcmV2MultiassetAssetId", + fun: "XcmV2MultiassetFungibility" + }, + /** + * Lookup97: xcm::v2::multiasset::AssetId + **/ + XcmV2MultiassetAssetId: { + _enum: { + Concrete: "XcmV2MultiLocation", + Abstract: "Bytes" + } + }, + /** + * Lookup98: xcm::v2::multilocation::MultiLocation + **/ + XcmV2MultiLocation: { + parents: "u8", + interior: "XcmV2MultilocationJunctions" + }, + /** + * Lookup99: xcm::v2::multilocation::Junctions + **/ + XcmV2MultilocationJunctions: { + _enum: { + Here: "Null", + X1: "XcmV2Junction", + X2: "(XcmV2Junction,XcmV2Junction)", + X3: "(XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X4: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X5: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X6: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X7: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)", + X8: "(XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction,XcmV2Junction)" + } + }, + /** + * Lookup100: xcm::v2::junction::Junction + **/ + XcmV2Junction: { + _enum: { + Parachain: "Compact", + AccountId32: { + network: "XcmV2NetworkId", + id: "[u8;32]" + }, + AccountIndex64: { + network: "XcmV2NetworkId", + index: "Compact" + }, + AccountKey20: { + network: "XcmV2NetworkId", + key: "[u8;20]" + }, + PalletInstance: "u8", + GeneralIndex: "Compact", + GeneralKey: "Bytes", + OnlyChild: "Null", + Plurality: { + id: "XcmV2BodyId", + part: "XcmV2BodyPart" + } + } + }, + /** + * Lookup101: xcm::v2::NetworkId + **/ + XcmV2NetworkId: { + _enum: { + Any: "Null", + Named: "Bytes", + Polkadot: "Null", + Kusama: "Null" + } + }, + /** + * Lookup103: xcm::v2::BodyId + **/ + XcmV2BodyId: { + _enum: { + Unit: "Null", + Named: "Bytes", + Index: "Compact", + Executive: "Null", + Technical: "Null", + Legislative: "Null", + Judicial: "Null", + Defense: "Null", + Administration: "Null", + Treasury: "Null" + } + }, + /** + * Lookup104: xcm::v2::BodyPart + **/ + XcmV2BodyPart: { + _enum: { + Voice: "Null", + Members: { + count: "Compact" + }, + Fraction: { + nom: "Compact", + denom: "Compact" + }, + AtLeastProportion: { + nom: "Compact", + denom: "Compact" + }, + MoreThanProportion: { + nom: "Compact", + denom: "Compact" + } + } + }, + /** + * Lookup105: xcm::v2::multiasset::Fungibility + **/ + XcmV2MultiassetFungibility: { + _enum: { + Fungible: "Compact", + NonFungible: "XcmV2MultiassetAssetInstance" + } + }, + /** + * Lookup106: xcm::v2::multiasset::AssetInstance + **/ + XcmV2MultiassetAssetInstance: { + _enum: { + Undefined: "Null", + Index: "Compact", + Array4: "[u8;4]", + Array8: "[u8;8]", + Array16: "[u8;16]", + Array32: "[u8;32]", + Blob: "Bytes" + } + }, + /** + * Lookup107: xcm::v3::multiasset::MultiAssets + **/ + XcmV3MultiassetMultiAssets: "Vec", + /** + * Lookup109: xcm::v3::multiasset::MultiAsset + **/ + XcmV3MultiAsset: { + id: "XcmV3MultiassetAssetId", + fun: "XcmV3MultiassetFungibility" + }, + /** + * Lookup110: xcm::v3::multiasset::AssetId + **/ + XcmV3MultiassetAssetId: { + _enum: { + Concrete: "StagingXcmV3MultiLocation", + Abstract: "[u8;32]" + } + }, + /** + * Lookup111: staging_xcm::v3::multilocation::MultiLocation + **/ + StagingXcmV3MultiLocation: { + parents: "u8", + interior: "XcmV3Junctions" + }, + /** + * Lookup112: xcm::v3::junctions::Junctions + **/ + XcmV3Junctions: { + _enum: { + Here: "Null", + X1: "XcmV3Junction", + X2: "(XcmV3Junction,XcmV3Junction)", + X3: "(XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X4: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X5: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X6: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X7: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)", + X8: "(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)" + } + }, + /** + * Lookup113: xcm::v3::junction::Junction + **/ + XcmV3Junction: { + _enum: { + Parachain: "Compact", + AccountId32: { + network: "Option", + id: "[u8;32]" + }, + AccountIndex64: { + network: "Option", + index: "Compact" + }, + AccountKey20: { + network: "Option", + key: "[u8;20]" + }, + PalletInstance: "u8", + GeneralIndex: "Compact", + GeneralKey: { + length: "u8", + data: "[u8;32]" + }, + OnlyChild: "Null", + Plurality: { + id: "XcmV3JunctionBodyId", + part: "XcmV3JunctionBodyPart" + }, + GlobalConsensus: "XcmV3JunctionNetworkId" + } + }, + /** + * Lookup115: xcm::v3::junction::NetworkId + **/ + XcmV3JunctionNetworkId: { + _enum: { + ByGenesis: "[u8;32]", + ByFork: { + blockNumber: "u64", + blockHash: "[u8;32]" + }, + Polkadot: "Null", + Kusama: "Null", + Westend: "Null", + Rococo: "Null", + Wococo: "Null", + Ethereum: { + chainId: "Compact" + }, + BitcoinCore: "Null", + BitcoinCash: "Null", + PolkadotBulletin: "Null" + } + }, + /** + * Lookup116: xcm::v3::multiasset::Fungibility + **/ + XcmV3MultiassetFungibility: { + _enum: { + Fungible: "Compact", + NonFungible: "XcmV3MultiassetAssetInstance" + } + }, + /** + * Lookup117: xcm::v3::multiasset::AssetInstance + **/ + XcmV3MultiassetAssetInstance: { + _enum: { + Undefined: "Null", + Index: "Compact", + Array4: "[u8;4]", + Array8: "[u8;8]", + Array16: "[u8;16]", + Array32: "[u8;32]" + } + }, + /** + * Lookup118: xcm::VersionedLocation + **/ + XcmVersionedLocation: { + _enum: { + __Unused0: "Null", + V2: "XcmV2MultiLocation", + __Unused2: "Null", + V3: "StagingXcmV3MultiLocation", + V4: "StagingXcmV4Location" + } + }, + /** + * Lookup119: cumulus_pallet_xcm::pallet::Event + **/ + CumulusPalletXcmEvent: { + _enum: { + InvalidFormat: "[u8;32]", + UnsupportedVersion: "[u8;32]", + ExecutedDownward: "([u8;32],StagingXcmV4TraitsOutcome)" + } + }, + /** + * Lookup120: pallet_message_queue::pallet::Event + **/ + PalletMessageQueueEvent: { + _enum: { + ProcessingFailed: { + id: "H256", + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + error: "FrameSupportMessagesProcessMessageError" + }, + Processed: { + id: "H256", + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + weightUsed: "SpWeightsWeightV2Weight", + success: "bool" + }, + OverweightEnqueued: { + id: "[u8;32]", + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + pageIndex: "u32", + messageIndex: "u32" + }, + PageReaped: { + origin: "CumulusPrimitivesCoreAggregateMessageOrigin", + index: "u32" + } + } + }, + /** + * Lookup121: cumulus_primitives_core::AggregateMessageOrigin + **/ + CumulusPrimitivesCoreAggregateMessageOrigin: { + _enum: { + Here: "Null", + Parent: "Null", + Sibling: "u32" + } + }, + /** + * Lookup123: frame_support::traits::messages::ProcessMessageError + **/ + FrameSupportMessagesProcessMessageError: { + _enum: { + BadFormat: "Null", + Corrupt: "Null", + Unsupported: "Null", + Overweight: "SpWeightsWeightV2Weight", + Yield: "Null", + StackLimitReached: "Null" + } + }, + /** + * Lookup124: pallet_storage_providers::pallet::Event + **/ + PalletStorageProvidersEvent: { + _enum: { + MspRequestSignUpSuccess: { + who: "AccountId32", + multiaddresses: "Vec", + capacity: "u64", + valueProp: "PalletStorageProvidersValueProposition" + }, + MspSignUpSuccess: { + who: "AccountId32", + mspId: "H256", + multiaddresses: "Vec", + capacity: "u64", + valueProp: "PalletStorageProvidersValueProposition" + }, + BspRequestSignUpSuccess: { + who: "AccountId32", + multiaddresses: "Vec", + capacity: "u64" + }, + BspSignUpSuccess: { + who: "AccountId32", + bspId: "H256", + multiaddresses: "Vec", + capacity: "u64" + }, + SignUpRequestCanceled: { + who: "AccountId32" + }, + MspSignOffSuccess: { + who: "AccountId32", + mspId: "H256" + }, + BspSignOffSuccess: { + who: "AccountId32", + bspId: "H256" + }, + CapacityChanged: { + who: "AccountId32", + providerId: "PalletStorageProvidersStorageProviderId", + oldCapacity: "u64", + newCapacity: "u64", + nextBlockWhenChangeAllowed: "u32" + }, + Slashed: { + providerId: "H256", + amountSlashed: "u128" + } + } + }, + /** + * Lookup128: pallet_storage_providers::types::ValueProposition + **/ + PalletStorageProvidersValueProposition: { + identifier: "H256", + dataLimit: "u64", + protocols: "Vec" + }, + /** + * Lookup130: pallet_storage_providers::types::StorageProviderId + **/ + PalletStorageProvidersStorageProviderId: { + _enum: { + BackupStorageProvider: "H256", + MainStorageProvider: "H256" + } + }, + /** + * Lookup131: pallet_file_system::pallet::Event + **/ + PalletFileSystemEvent: { + _enum: { + NewBucket: { + who: "AccountId32", + mspId: "H256", + bucketId: "H256", + name: "Bytes", + collectionId: "Option", + private: "bool" + }, + MoveBucketRequested: { + who: "AccountId32", + bucketId: "H256", + newMspId: "H256" + }, + BucketPrivacyUpdated: { + who: "AccountId32", + bucketId: "H256", + collectionId: "Option", + private: "bool" + }, + NewCollectionAndAssociation: { + who: "AccountId32", + bucketId: "H256", + collectionId: "u32" + }, + NewStorageRequest: { + _alias: { + size_: "size" + }, + who: "AccountId32", + fileKey: "H256", + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + size_: "u64", + peerIds: "Vec" + }, + MspRespondedToStorageRequests: { + results: "PalletFileSystemMspRespondStorageRequestsResult" + }, + AcceptedBspVolunteer: { + _alias: { + size_: "size" + }, + bspId: "H256", + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + multiaddresses: "Vec", + owner: "AccountId32", + size_: "u64" + }, + BspConfirmedStoring: { + who: "AccountId32", + bspId: "H256", + fileKeys: "Vec", + newRoot: "H256" + }, + StorageRequestFulfilled: { + fileKey: "H256" + }, + StorageRequestExpired: { + fileKey: "H256" + }, + StorageRequestRevoked: { + fileKey: "H256" + }, + BspRequestedToStopStoring: { + bspId: "H256", + fileKey: "H256", + owner: "AccountId32", + location: "Bytes" + }, + BspConfirmStoppedStoring: { + bspId: "H256", + fileKey: "H256", + newRoot: "H256" + }, + PriorityChallengeForFileDeletionQueued: { + issuer: "PalletFileSystemEitherAccountIdOrMspId", + fileKey: "H256" + }, + SpStopStoringInsolventUser: { + spId: "H256", + fileKey: "H256", + owner: "AccountId32", + location: "Bytes", + newRoot: "H256" + }, + FailedToQueuePriorityChallenge: { + user: "AccountId32", + fileKey: "H256" + }, + FileDeletionRequest: { + user: "AccountId32", + fileKey: "H256", + bucketId: "H256", + mspId: "H256", + proofOfInclusion: "bool" + }, + ProofSubmittedForPendingFileDeletionRequest: { + mspId: "H256", + user: "AccountId32", + fileKey: "H256", + bucketId: "H256", + proofOfInclusion: "bool" + }, + BspChallengeCycleInitialised: { + who: "AccountId32", + bspId: "H256" + }, + MoveBucketRequestExpired: { + mspId: "H256", + bucketId: "H256" + }, + MoveBucketAccepted: { + bucketId: "H256", + mspId: "H256" + }, + MoveBucketRejected: { + bucketId: "H256", + mspId: "H256" + }, + DataServerRegisteredForMoveBucket: { + bspId: "H256", + bucketId: "H256" + } + } + }, + /** + * Lookup134: pallet_file_system::types::MspRespondStorageRequestsResult + **/ + PalletFileSystemMspRespondStorageRequestsResult: { + mspId: "H256", + responses: "Vec" + }, + /** + * Lookup136: pallet_file_system::types::BatchResponses + **/ + PalletFileSystemBatchResponses: { + _enum: { + Accepted: "PalletFileSystemMspAcceptedBatchStorageRequests", + Rejected: "PalletFileSystemMspRejectedBatchStorageRequests", + Failed: "PalletFileSystemMspFailedBatchStorageRequests" + } + }, + /** + * Lookup137: pallet_file_system::types::MspAcceptedBatchStorageRequests + **/ + PalletFileSystemMspAcceptedBatchStorageRequests: { + fileKeys: "Vec", + bucketId: "H256", + newBucketRoot: "H256", + owner: "AccountId32" + }, + /** + * Lookup140: pallet_file_system::types::MspRejectedBatchStorageRequests + **/ + PalletFileSystemMspRejectedBatchStorageRequests: { + fileKeys: "Vec<(H256,PalletFileSystemRejectedStorageRequestReason)>", + bucketId: "H256", + owner: "AccountId32" + }, + /** + * Lookup143: pallet_file_system::types::RejectedStorageRequestReason + **/ + PalletFileSystemRejectedStorageRequestReason: { + _enum: ["ReachedMaximumCapacity", "ReceivedInvalidProof", "InternalError"] + }, + /** + * Lookup145: pallet_file_system::types::MspFailedBatchStorageRequests + **/ + PalletFileSystemMspFailedBatchStorageRequests: { + fileKeys: "Vec<(H256,SpRuntimeDispatchError)>", + bucketId: "H256", + owner: "AccountId32" + }, + /** + * Lookup150: pallet_file_system::types::EitherAccountIdOrMspId + **/ + PalletFileSystemEitherAccountIdOrMspId: { + _enum: { + AccountId: "AccountId32", + MspId: "H256" + } + }, + /** + * Lookup151: pallet_proofs_dealer::pallet::Event + **/ + PalletProofsDealerEvent: { + _enum: { + NewChallenge: { + who: "AccountId32", + keyChallenged: "H256" + }, + ProofAccepted: { + provider: "H256", + proof: "PalletProofsDealerProof" + }, + NewChallengeSeed: { + challengesTicker: "u32", + seed: "H256" + }, + NewCheckpointChallenge: { + challengesTicker: "u32", + challenges: "Vec<(H256,Option)>" + }, + SlashableProvider: { + provider: "H256", + nextChallengeDeadline: "u32" + }, + NoRecordOfLastSubmittedProof: { + provider: "H256" + }, + NewChallengeCycleInitialised: { + currentTick: "u32", + nextChallengeDeadline: "u32", + provider: "H256", + maybeProviderAccount: "Option" + }, + MutationsApplied: { + provider: "H256", + mutations: "Vec<(H256,ShpTraitsTrieRemoveMutation)>", + newRoot: "H256" + }, + ChallengesTickerSet: { + paused: "bool" + } + } + }, + /** + * Lookup152: pallet_proofs_dealer::types::Proof + **/ + PalletProofsDealerProof: { + forestProof: "SpTrieStorageProofCompactProof", + keyProofs: "BTreeMap" + }, + /** + * Lookup153: sp_trie::storage_proof::CompactProof + **/ + SpTrieStorageProofCompactProof: { + encodedNodes: "Vec" + }, + /** + * Lookup156: pallet_proofs_dealer::types::KeyProof + **/ + PalletProofsDealerKeyProof: { + proof: "ShpFileKeyVerifierFileKeyProof", + challengeCount: "u32" + }, + /** + * Lookup157: shp_file_key_verifier::types::FileKeyProof + **/ + ShpFileKeyVerifierFileKeyProof: { + fileMetadata: "ShpFileMetadataFileMetadata", + proof: "SpTrieStorageProofCompactProof" + }, + /** + * Lookup158: shp_file_metadata::FileMetadata + **/ + ShpFileMetadataFileMetadata: { + owner: "Bytes", + bucketId: "Bytes", + location: "Bytes", + fileSize: "Compact", + fingerprint: "ShpFileMetadataFingerprint" + }, + /** + * Lookup159: shp_file_metadata::Fingerprint + **/ + ShpFileMetadataFingerprint: "[u8;32]", + /** + * Lookup165: shp_traits::TrieRemoveMutation + **/ + ShpTraitsTrieRemoveMutation: "Null", + /** + * Lookup169: pallet_randomness::pallet::Event + **/ + PalletRandomnessEvent: { + _enum: { + NewOneEpochAgoRandomnessAvailable: { + randomnessSeed: "H256", + fromEpoch: "u64", + validUntilBlock: "u32" + } + } + }, + /** + * Lookup170: pallet_payment_streams::pallet::Event + **/ + PalletPaymentStreamsEvent: { + _enum: { + FixedRatePaymentStreamCreated: { + userAccount: "AccountId32", + providerId: "H256", + rate: "u128" + }, + FixedRatePaymentStreamUpdated: { + userAccount: "AccountId32", + providerId: "H256", + newRate: "u128" + }, + FixedRatePaymentStreamDeleted: { + userAccount: "AccountId32", + providerId: "H256" + }, + DynamicRatePaymentStreamCreated: { + userAccount: "AccountId32", + providerId: "H256", + amountProvided: "u64" + }, + DynamicRatePaymentStreamUpdated: { + userAccount: "AccountId32", + providerId: "H256", + newAmountProvided: "u64" + }, + DynamicRatePaymentStreamDeleted: { + userAccount: "AccountId32", + providerId: "H256" + }, + PaymentStreamCharged: { + userAccount: "AccountId32", + providerId: "H256", + amount: "u128" + }, + LastChargeableInfoUpdated: { + providerId: "H256", + lastChargeableTick: "u32", + lastChargeablePriceIndex: "u128" + }, + UserWithoutFunds: { + who: "AccountId32" + }, + UserPaidDebts: { + who: "AccountId32" + }, + UserSolvent: { + who: "AccountId32" + } + } + }, + /** + * Lookup171: pallet_bucket_nfts::pallet::Event + **/ + PalletBucketNftsEvent: { + _enum: { + AccessShared: { + issuer: "AccountId32", + recipient: "AccountId32" + }, + ItemReadAccessUpdated: { + admin: "AccountId32", + bucket: "H256", + itemId: "u32" + }, + ItemBurned: { + account: "AccountId32", + bucket: "H256", + itemId: "u32" + } + } + }, + /** + * Lookup172: pallet_nfts::pallet::Event + **/ + PalletNftsEvent: { + _enum: { + Created: { + collection: "u32", + creator: "AccountId32", + owner: "AccountId32" + }, + ForceCreated: { + collection: "u32", + owner: "AccountId32" + }, + Destroyed: { + collection: "u32" + }, + Issued: { + collection: "u32", + item: "u32", + owner: "AccountId32" + }, + Transferred: { + collection: "u32", + item: "u32", + from: "AccountId32", + to: "AccountId32" + }, + Burned: { + collection: "u32", + item: "u32", + owner: "AccountId32" + }, + ItemTransferLocked: { + collection: "u32", + item: "u32" + }, + ItemTransferUnlocked: { + collection: "u32", + item: "u32" + }, + ItemPropertiesLocked: { + collection: "u32", + item: "u32", + lockMetadata: "bool", + lockAttributes: "bool" + }, + CollectionLocked: { + collection: "u32" + }, + OwnerChanged: { + collection: "u32", + newOwner: "AccountId32" + }, + TeamChanged: { + collection: "u32", + issuer: "Option", + admin: "Option", + freezer: "Option" + }, + TransferApproved: { + collection: "u32", + item: "u32", + owner: "AccountId32", + delegate: "AccountId32", + deadline: "Option" + }, + ApprovalCancelled: { + collection: "u32", + item: "u32", + owner: "AccountId32", + delegate: "AccountId32" + }, + AllApprovalsCancelled: { + collection: "u32", + item: "u32", + owner: "AccountId32" + }, + CollectionConfigChanged: { + collection: "u32" + }, + CollectionMetadataSet: { + collection: "u32", + data: "Bytes" + }, + CollectionMetadataCleared: { + collection: "u32" + }, + ItemMetadataSet: { + collection: "u32", + item: "u32", + data: "Bytes" + }, + ItemMetadataCleared: { + collection: "u32", + item: "u32" + }, + Redeposited: { + collection: "u32", + successfulItems: "Vec" + }, + AttributeSet: { + collection: "u32", + maybeItem: "Option", + key: "Bytes", + value: "Bytes", + namespace: "PalletNftsAttributeNamespace" + }, + AttributeCleared: { + collection: "u32", + maybeItem: "Option", + key: "Bytes", + namespace: "PalletNftsAttributeNamespace" + }, + ItemAttributesApprovalAdded: { + collection: "u32", + item: "u32", + delegate: "AccountId32" + }, + ItemAttributesApprovalRemoved: { + collection: "u32", + item: "u32", + delegate: "AccountId32" + }, + OwnershipAcceptanceChanged: { + who: "AccountId32", + maybeCollection: "Option" + }, + CollectionMaxSupplySet: { + collection: "u32", + maxSupply: "u32" + }, + CollectionMintSettingsUpdated: { + collection: "u32" + }, + NextCollectionIdIncremented: { + nextId: "Option" + }, + ItemPriceSet: { + collection: "u32", + item: "u32", + price: "u128", + whitelistedBuyer: "Option" + }, + ItemPriceRemoved: { + collection: "u32", + item: "u32" + }, + ItemBought: { + collection: "u32", + item: "u32", + price: "u128", + seller: "AccountId32", + buyer: "AccountId32" + }, + TipSent: { + collection: "u32", + item: "u32", + sender: "AccountId32", + receiver: "AccountId32", + amount: "u128" + }, + SwapCreated: { + offeredCollection: "u32", + offeredItem: "u32", + desiredCollection: "u32", + desiredItem: "Option", + price: "Option", + deadline: "u32" + }, + SwapCancelled: { + offeredCollection: "u32", + offeredItem: "u32", + desiredCollection: "u32", + desiredItem: "Option", + price: "Option", + deadline: "u32" + }, + SwapClaimed: { + sentCollection: "u32", + sentItem: "u32", + sentItemOwner: "AccountId32", + receivedCollection: "u32", + receivedItem: "u32", + receivedItemOwner: "AccountId32", + price: "Option", + deadline: "u32" + }, + PreSignedAttributesSet: { + collection: "u32", + item: "u32", + namespace: "PalletNftsAttributeNamespace" + }, + PalletAttributeSet: { + collection: "u32", + item: "Option", + attribute: "PalletNftsPalletAttributes", + value: "Bytes" + } + } + }, + /** + * Lookup176: pallet_nfts::types::AttributeNamespace + **/ + PalletNftsAttributeNamespace: { + _enum: { + Pallet: "Null", + CollectionOwner: "Null", + ItemOwner: "Null", + Account: "AccountId32" + } + }, + /** + * Lookup178: pallet_nfts::types::PriceWithDirection + **/ + PalletNftsPriceWithDirection: { + amount: "u128", + direction: "PalletNftsPriceDirection" + }, + /** + * Lookup179: pallet_nfts::types::PriceDirection + **/ + PalletNftsPriceDirection: { + _enum: ["Send", "Receive"] + }, + /** + * Lookup180: pallet_nfts::types::PalletAttributes + **/ + PalletNftsPalletAttributes: { + _enum: { + UsedToClaim: "u32", + TransferDisabled: "Null" + } + }, + /** + * Lookup181: pallet_parameters::pallet::Event + **/ + PalletParametersEvent: { + _enum: { + Updated: { + key: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey", + oldValue: "Option", + newValue: "Option" + } + } + }, + /** + * Lookup182: storage_hub_runtime::configs::runtime_params::RuntimeParametersKey + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: { + _enum: { + RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey" + } + }, + /** + * Lookup183: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersKey + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: { + _enum: [ + "SlashAmountPerMaxFileSize", + "StakeToChallengePeriod", + "CheckpointChallengePeriod", + "MinChallengePeriod" + ] + }, + /** + * Lookup184: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::SlashAmountPerMaxFileSize + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: "Null", + /** + * Lookup185: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::StakeToChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: "Null", + /** + * Lookup186: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::CheckpointChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: "Null", + /** + * Lookup187: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::MinChallengePeriod + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: "Null", + /** + * Lookup189: storage_hub_runtime::configs::runtime_params::RuntimeParametersValue + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: { + _enum: { + RuntimeConfig: + "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue" + } + }, + /** + * Lookup190: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::ParametersValue + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: { + _enum: { + SlashAmountPerMaxFileSize: "u128", + StakeToChallengePeriod: "u128", + CheckpointChallengePeriod: "u32", + MinChallengePeriod: "u32" + } + }, + /** + * Lookup191: frame_system::Phase + **/ + FrameSystemPhase: { + _enum: { + ApplyExtrinsic: "u32", + Finalization: "Null", + Initialization: "Null" + } + }, + /** + * Lookup194: frame_system::LastRuntimeUpgradeInfo + **/ + FrameSystemLastRuntimeUpgradeInfo: { + specVersion: "Compact", + specName: "Text" + }, + /** + * Lookup196: frame_system::CodeUpgradeAuthorization + **/ + FrameSystemCodeUpgradeAuthorization: { + codeHash: "H256", + checkVersion: "bool" + }, + /** + * Lookup197: frame_system::pallet::Call + **/ + FrameSystemCall: { + _enum: { + remark: { + remark: "Bytes" + }, + set_heap_pages: { + pages: "u64" + }, + set_code: { + code: "Bytes" + }, + set_code_without_checks: { + code: "Bytes" + }, + set_storage: { + items: "Vec<(Bytes,Bytes)>" + }, + kill_storage: { + _alias: { + keys_: "keys" + }, + keys_: "Vec" + }, + kill_prefix: { + prefix: "Bytes", + subkeys: "u32" + }, + remark_with_event: { + remark: "Bytes" + }, + __Unused8: "Null", + authorize_upgrade: { + codeHash: "H256" + }, + authorize_upgrade_without_checks: { + codeHash: "H256" + }, + apply_authorized_upgrade: { + code: "Bytes" + } + } + }, + /** + * Lookup200: frame_system::limits::BlockWeights + **/ + FrameSystemLimitsBlockWeights: { + baseBlock: "SpWeightsWeightV2Weight", + maxBlock: "SpWeightsWeightV2Weight", + perClass: "FrameSupportDispatchPerDispatchClassWeightsPerClass" + }, + /** + * Lookup201: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassWeightsPerClass: { + normal: "FrameSystemLimitsWeightsPerClass", + operational: "FrameSystemLimitsWeightsPerClass", + mandatory: "FrameSystemLimitsWeightsPerClass" + }, + /** + * Lookup202: frame_system::limits::WeightsPerClass + **/ + FrameSystemLimitsWeightsPerClass: { + baseExtrinsic: "SpWeightsWeightV2Weight", + maxExtrinsic: "Option", + maxTotal: "Option", + reserved: "Option" + }, + /** + * Lookup204: frame_system::limits::BlockLength + **/ + FrameSystemLimitsBlockLength: { + max: "FrameSupportDispatchPerDispatchClassU32" + }, + /** + * Lookup205: frame_support::dispatch::PerDispatchClass + **/ + FrameSupportDispatchPerDispatchClassU32: { + normal: "u32", + operational: "u32", + mandatory: "u32" + }, + /** + * Lookup206: sp_weights::RuntimeDbWeight + **/ + SpWeightsRuntimeDbWeight: { + read: "u64", + write: "u64" + }, + /** + * Lookup207: sp_version::RuntimeVersion + **/ + SpVersionRuntimeVersion: { + specName: "Text", + implName: "Text", + authoringVersion: "u32", + specVersion: "u32", + implVersion: "u32", + apis: "Vec<([u8;8],u32)>", + transactionVersion: "u32", + stateVersion: "u8" + }, + /** + * Lookup212: frame_system::pallet::Error + **/ + FrameSystemError: { + _enum: [ + "InvalidSpecName", + "SpecVersionNeedsToIncrease", + "FailedToExtractRuntimeVersion", + "NonDefaultComposite", + "NonZeroRefCount", + "CallFiltered", + "MultiBlockMigrationsOngoing", + "NothingAuthorized", + "Unauthorized" + ] + }, + /** + * Lookup214: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + **/ + CumulusPalletParachainSystemUnincludedSegmentAncestor: { + usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", + paraHeadHash: "Option", + consumedGoAheadSignal: "Option" + }, + /** + * Lookup215: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + **/ + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: { + umpMsgCount: "u32", + umpTotalBytes: "u32", + hrmpOutgoing: "BTreeMap" + }, + /** + * Lookup217: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + **/ + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: { + msgCount: "u32", + totalBytes: "u32" + }, + /** + * Lookup222: polkadot_primitives::v7::UpgradeGoAhead + **/ + PolkadotPrimitivesV7UpgradeGoAhead: { + _enum: ["Abort", "GoAhead"] + }, + /** + * Lookup223: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + **/ + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: { + usedBandwidth: "CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth", + hrmpWatermark: "Option", + consumedGoAheadSignal: "Option" + }, + /** + * Lookup224: polkadot_primitives::v7::PersistedValidationData + **/ + PolkadotPrimitivesV7PersistedValidationData: { + parentHead: "Bytes", + relayParentNumber: "u32", + relayParentStorageRoot: "H256", + maxPovSize: "u32" + }, + /** + * Lookup227: polkadot_primitives::v7::UpgradeRestriction + **/ + PolkadotPrimitivesV7UpgradeRestriction: { + _enum: ["Present"] + }, + /** + * Lookup228: sp_trie::storage_proof::StorageProof + **/ + SpTrieStorageProof: { + trieNodes: "BTreeSet" + }, + /** + * Lookup230: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + **/ + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: { + dmqMqcHead: "H256", + relayDispatchQueueRemainingCapacity: + "CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity", + ingressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>", + egressChannels: "Vec<(u32,PolkadotPrimitivesV7AbridgedHrmpChannel)>" + }, + /** + * Lookup231: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + **/ + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { + remainingCount: "u32", + remainingSize: "u32" + }, + /** + * Lookup234: polkadot_primitives::v7::AbridgedHrmpChannel + **/ + PolkadotPrimitivesV7AbridgedHrmpChannel: { + maxCapacity: "u32", + maxTotalSize: "u32", + maxMessageSize: "u32", + msgCount: "u32", + totalSize: "u32", + mqcHead: "Option" + }, + /** + * Lookup235: polkadot_primitives::v7::AbridgedHostConfiguration + **/ + PolkadotPrimitivesV7AbridgedHostConfiguration: { + maxCodeSize: "u32", + maxHeadDataSize: "u32", + maxUpwardQueueCount: "u32", + maxUpwardQueueSize: "u32", + maxUpwardMessageSize: "u32", + maxUpwardMessageNumPerCandidate: "u32", + hrmpMaxMessageNumPerCandidate: "u32", + validationUpgradeCooldown: "u32", + validationUpgradeDelay: "u32", + asyncBackingParams: "PolkadotPrimitivesV7AsyncBackingAsyncBackingParams" + }, + /** + * Lookup236: polkadot_primitives::v7::async_backing::AsyncBackingParams + **/ + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: { + maxCandidateDepth: "u32", + allowedAncestryLen: "u32" + }, + /** + * Lookup242: polkadot_core_primitives::OutboundHrmpMessage + **/ + PolkadotCorePrimitivesOutboundHrmpMessage: { + recipient: "u32", + data: "Bytes" + }, + /** + * Lookup244: cumulus_pallet_parachain_system::pallet::Call + **/ + CumulusPalletParachainSystemCall: { + _enum: { + set_validation_data: { + data: "CumulusPrimitivesParachainInherentParachainInherentData" + }, + sudo_send_upward_message: { + message: "Bytes" + }, + authorize_upgrade: { + codeHash: "H256", + checkVersion: "bool" + }, + enact_authorized_upgrade: { + code: "Bytes" + } + } + }, + /** + * Lookup245: cumulus_primitives_parachain_inherent::ParachainInherentData + **/ + CumulusPrimitivesParachainInherentParachainInherentData: { + validationData: "PolkadotPrimitivesV7PersistedValidationData", + relayChainState: "SpTrieStorageProof", + downwardMessages: "Vec", + horizontalMessages: "BTreeMap>" + }, + /** + * Lookup247: polkadot_core_primitives::InboundDownwardMessage + **/ + PolkadotCorePrimitivesInboundDownwardMessage: { + sentAt: "u32", + msg: "Bytes" + }, + /** + * Lookup250: polkadot_core_primitives::InboundHrmpMessage + **/ + PolkadotCorePrimitivesInboundHrmpMessage: { + sentAt: "u32", + data: "Bytes" + }, + /** + * Lookup253: cumulus_pallet_parachain_system::pallet::Error + **/ + CumulusPalletParachainSystemError: { + _enum: [ + "OverlappingUpgrades", + "ProhibitedByPolkadot", + "TooBig", + "ValidationDataNotAvailable", + "HostConfigurationNotAvailable", + "NotScheduled", + "NothingAuthorized", + "Unauthorized" + ] + }, + /** + * Lookup254: pallet_timestamp::pallet::Call + **/ + PalletTimestampCall: { + _enum: { + set: { + now: "Compact" + } + } + }, + /** + * Lookup255: staging_parachain_info::pallet::Call + **/ + StagingParachainInfoCall: "Null", + /** + * Lookup257: pallet_balances::types::BalanceLock + **/ + PalletBalancesBalanceLock: { + id: "[u8;8]", + amount: "u128", + reasons: "PalletBalancesReasons" + }, + /** + * Lookup258: pallet_balances::types::Reasons + **/ + PalletBalancesReasons: { + _enum: ["Fee", "Misc", "All"] + }, + /** + * Lookup261: pallet_balances::types::ReserveData + **/ + PalletBalancesReserveData: { + id: "[u8;8]", + amount: "u128" + }, + /** + * Lookup265: storage_hub_runtime::RuntimeHoldReason + **/ + StorageHubRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + __Unused3: "Null", + __Unused4: "Null", + __Unused5: "Null", + __Unused6: "Null", + __Unused7: "Null", + __Unused8: "Null", + __Unused9: "Null", + __Unused10: "Null", + __Unused11: "Null", + __Unused12: "Null", + __Unused13: "Null", + __Unused14: "Null", + __Unused15: "Null", + __Unused16: "Null", + __Unused17: "Null", + __Unused18: "Null", + __Unused19: "Null", + __Unused20: "Null", + __Unused21: "Null", + __Unused22: "Null", + __Unused23: "Null", + __Unused24: "Null", + __Unused25: "Null", + __Unused26: "Null", + __Unused27: "Null", + __Unused28: "Null", + __Unused29: "Null", + __Unused30: "Null", + __Unused31: "Null", + __Unused32: "Null", + __Unused33: "Null", + __Unused34: "Null", + __Unused35: "Null", + __Unused36: "Null", + __Unused37: "Null", + __Unused38: "Null", + __Unused39: "Null", + Providers: "PalletStorageProvidersHoldReason", + __Unused41: "Null", + __Unused42: "Null", + __Unused43: "Null", + PaymentStreams: "PalletPaymentStreamsHoldReason" + } + }, + /** + * Lookup266: pallet_storage_providers::pallet::HoldReason + **/ + PalletStorageProvidersHoldReason: { + _enum: ["StorageProviderDeposit", "BucketDeposit"] + }, + /** + * Lookup267: pallet_payment_streams::pallet::HoldReason + **/ + PalletPaymentStreamsHoldReason: { + _enum: ["PaymentStreamDeposit"] + }, + /** + * Lookup270: pallet_balances::types::IdAmount + **/ + PalletBalancesIdAmount: { + id: "Null", + amount: "u128" + }, + /** + * Lookup272: pallet_balances::pallet::Call + **/ + PalletBalancesCall: { + _enum: { + transfer_allow_death: { + dest: "MultiAddress", + value: "Compact" + }, + __Unused1: "Null", + force_transfer: { + source: "MultiAddress", + dest: "MultiAddress", + value: "Compact" + }, + transfer_keep_alive: { + dest: "MultiAddress", + value: "Compact" + }, + transfer_all: { + dest: "MultiAddress", + keepAlive: "bool" + }, + force_unreserve: { + who: "MultiAddress", + amount: "u128" + }, + upgrade_accounts: { + who: "Vec" + }, + __Unused7: "Null", + force_set_balance: { + who: "MultiAddress", + newFree: "Compact" + }, + force_adjust_total_issuance: { + direction: "PalletBalancesAdjustmentDirection", + delta: "Compact" + }, + burn: { + value: "Compact", + keepAlive: "bool" + } + } + }, + /** + * Lookup275: pallet_balances::types::AdjustmentDirection + **/ + PalletBalancesAdjustmentDirection: { + _enum: ["Increase", "Decrease"] + }, + /** + * Lookup276: pallet_balances::pallet::Error + **/ + PalletBalancesError: { + _enum: [ + "VestingBalance", + "LiquidityRestrictions", + "InsufficientBalance", + "ExistentialDeposit", + "Expendability", + "ExistingVestingSchedule", + "DeadAccount", + "TooManyReserves", + "TooManyHolds", + "TooManyFreezes", + "IssuanceDeactivated", + "DeltaZero" + ] + }, + /** + * Lookup277: pallet_transaction_payment::Releases + **/ + PalletTransactionPaymentReleases: { + _enum: ["V1Ancient", "V2"] + }, + /** + * Lookup278: pallet_sudo::pallet::Call + **/ + PalletSudoCall: { + _enum: { + sudo: { + call: "Call" + }, + sudo_unchecked_weight: { + call: "Call", + weight: "SpWeightsWeightV2Weight" + }, + set_key: { + _alias: { + new_: "new" + }, + new_: "MultiAddress" + }, + sudo_as: { + who: "MultiAddress", + call: "Call" + }, + remove_key: "Null" + } + }, + /** + * Lookup280: pallet_collator_selection::pallet::Call + **/ + PalletCollatorSelectionCall: { + _enum: { + set_invulnerables: { + _alias: { + new_: "new" + }, + new_: "Vec" + }, + set_desired_candidates: { + max: "u32" + }, + set_candidacy_bond: { + bond: "u128" + }, + register_as_candidate: "Null", + leave_intent: "Null", + add_invulnerable: { + who: "AccountId32" + }, + remove_invulnerable: { + who: "AccountId32" + }, + update_bond: { + newDeposit: "u128" + }, + take_candidate_slot: { + deposit: "u128", + target: "AccountId32" + } + } + }, + /** + * Lookup281: pallet_session::pallet::Call + **/ + PalletSessionCall: { + _enum: { + set_keys: { + _alias: { + keys_: "keys" + }, + keys_: "StorageHubRuntimeSessionKeys", + proof: "Bytes" + }, + purge_keys: "Null" + } + }, + /** + * Lookup282: storage_hub_runtime::SessionKeys + **/ + StorageHubRuntimeSessionKeys: { + aura: "SpConsensusAuraSr25519AppSr25519Public" + }, + /** + * Lookup283: sp_consensus_aura::sr25519::app_sr25519::Public + **/ + SpConsensusAuraSr25519AppSr25519Public: "[u8;32]", + /** + * Lookup284: cumulus_pallet_xcmp_queue::pallet::Call + **/ + CumulusPalletXcmpQueueCall: { + _enum: { + __Unused0: "Null", + suspend_xcm_execution: "Null", + resume_xcm_execution: "Null", + update_suspend_threshold: { + _alias: { + new_: "new" + }, + new_: "u32" + }, + update_drop_threshold: { + _alias: { + new_: "new" + }, + new_: "u32" + }, + update_resume_threshold: { + _alias: { + new_: "new" + }, + new_: "u32" + } + } + }, + /** + * Lookup285: pallet_xcm::pallet::Call + **/ + PalletXcmCall: { + _enum: { + send: { + dest: "XcmVersionedLocation", + message: "XcmVersionedXcm" + }, + teleport_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32" + }, + reserve_transfer_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32" + }, + execute: { + message: "XcmVersionedXcm", + maxWeight: "SpWeightsWeightV2Weight" + }, + force_xcm_version: { + location: "StagingXcmV4Location", + version: "u32" + }, + force_default_xcm_version: { + maybeXcmVersion: "Option" + }, + force_subscribe_version_notify: { + location: "XcmVersionedLocation" + }, + force_unsubscribe_version_notify: { + location: "XcmVersionedLocation" + }, + limited_reserve_transfer_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32", + weightLimit: "XcmV3WeightLimit" + }, + limited_teleport_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32", + weightLimit: "XcmV3WeightLimit" + }, + force_suspension: { + suspended: "bool" + }, + transfer_assets: { + dest: "XcmVersionedLocation", + beneficiary: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + feeAssetItem: "u32", + weightLimit: "XcmV3WeightLimit" + }, + claim_assets: { + assets: "XcmVersionedAssets", + beneficiary: "XcmVersionedLocation" + }, + transfer_assets_using_type_and_then: { + dest: "XcmVersionedLocation", + assets: "XcmVersionedAssets", + assetsTransferType: "StagingXcmExecutorAssetTransferTransferType", + remoteFeesId: "XcmVersionedAssetId", + feesTransferType: "StagingXcmExecutorAssetTransferTransferType", + customXcmOnDest: "XcmVersionedXcm", + weightLimit: "XcmV3WeightLimit" + } + } + }, + /** + * Lookup286: xcm::VersionedXcm + **/ + XcmVersionedXcm: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + V2: "XcmV2Xcm", + V3: "XcmV3Xcm", + V4: "StagingXcmV4Xcm" + } + }, + /** + * Lookup287: xcm::v2::Xcm + **/ + XcmV2Xcm: "Vec", + /** + * Lookup289: xcm::v2::Instruction + **/ + XcmV2Instruction: { + _enum: { + WithdrawAsset: "XcmV2MultiassetMultiAssets", + ReserveAssetDeposited: "XcmV2MultiassetMultiAssets", + ReceiveTeleportedAsset: "XcmV2MultiassetMultiAssets", + QueryResponse: { + queryId: "Compact", + response: "XcmV2Response", + maxWeight: "Compact" + }, + TransferAsset: { + assets: "XcmV2MultiassetMultiAssets", + beneficiary: "XcmV2MultiLocation" + }, + TransferReserveAsset: { + assets: "XcmV2MultiassetMultiAssets", + dest: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + Transact: { + originType: "XcmV2OriginKind", + requireWeightAtMost: "Compact", + call: "XcmDoubleEncoded" + }, + HrmpNewChannelOpenRequest: { + sender: "Compact", + maxMessageSize: "Compact", + maxCapacity: "Compact" + }, + HrmpChannelAccepted: { + recipient: "Compact" + }, + HrmpChannelClosing: { + initiator: "Compact", + sender: "Compact", + recipient: "Compact" + }, + ClearOrigin: "Null", + DescendOrigin: "XcmV2MultilocationJunctions", + ReportError: { + queryId: "Compact", + dest: "XcmV2MultiLocation", + maxResponseWeight: "Compact" + }, + DepositAsset: { + assets: "XcmV2MultiassetMultiAssetFilter", + maxAssets: "Compact", + beneficiary: "XcmV2MultiLocation" + }, + DepositReserveAsset: { + assets: "XcmV2MultiassetMultiAssetFilter", + maxAssets: "Compact", + dest: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + ExchangeAsset: { + give: "XcmV2MultiassetMultiAssetFilter", + receive: "XcmV2MultiassetMultiAssets" + }, + InitiateReserveWithdraw: { + assets: "XcmV2MultiassetMultiAssetFilter", + reserve: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + InitiateTeleport: { + assets: "XcmV2MultiassetMultiAssetFilter", + dest: "XcmV2MultiLocation", + xcm: "XcmV2Xcm" + }, + QueryHolding: { + queryId: "Compact", + dest: "XcmV2MultiLocation", + assets: "XcmV2MultiassetMultiAssetFilter", + maxResponseWeight: "Compact" + }, + BuyExecution: { + fees: "XcmV2MultiAsset", + weightLimit: "XcmV2WeightLimit" + }, + RefundSurplus: "Null", + SetErrorHandler: "XcmV2Xcm", + SetAppendix: "XcmV2Xcm", + ClearError: "Null", + ClaimAsset: { + assets: "XcmV2MultiassetMultiAssets", + ticket: "XcmV2MultiLocation" + }, + Trap: "Compact", + SubscribeVersion: { + queryId: "Compact", + maxResponseWeight: "Compact" + }, + UnsubscribeVersion: "Null" + } + }, + /** + * Lookup290: xcm::v2::Response + **/ + XcmV2Response: { + _enum: { + Null: "Null", + Assets: "XcmV2MultiassetMultiAssets", + ExecutionResult: "Option<(u32,XcmV2TraitsError)>", + Version: "u32" + } + }, + /** + * Lookup293: xcm::v2::traits::Error + **/ + XcmV2TraitsError: { + _enum: { + Overflow: "Null", + Unimplemented: "Null", + UntrustedReserveLocation: "Null", + UntrustedTeleportLocation: "Null", + MultiLocationFull: "Null", + MultiLocationNotInvertible: "Null", + BadOrigin: "Null", + InvalidLocation: "Null", + AssetNotFound: "Null", + FailedToTransactAsset: "Null", + NotWithdrawable: "Null", + LocationCannotHold: "Null", + ExceedsMaxMessageSize: "Null", + DestinationUnsupported: "Null", + Transport: "Null", + Unroutable: "Null", + UnknownClaim: "Null", + FailedToDecode: "Null", + MaxWeightInvalid: "Null", + NotHoldingFees: "Null", + TooExpensive: "Null", + Trap: "u64", + UnhandledXcmVersion: "Null", + WeightLimitReached: "u64", + Barrier: "Null", + WeightNotComputable: "Null" + } + }, + /** + * Lookup294: xcm::v2::OriginKind + **/ + XcmV2OriginKind: { + _enum: ["Native", "SovereignAccount", "Superuser", "Xcm"] + }, + /** + * Lookup295: xcm::v2::multiasset::MultiAssetFilter + **/ + XcmV2MultiassetMultiAssetFilter: { + _enum: { + Definite: "XcmV2MultiassetMultiAssets", + Wild: "XcmV2MultiassetWildMultiAsset" + } + }, + /** + * Lookup296: xcm::v2::multiasset::WildMultiAsset + **/ + XcmV2MultiassetWildMultiAsset: { + _enum: { + All: "Null", + AllOf: { + id: "XcmV2MultiassetAssetId", + fun: "XcmV2MultiassetWildFungibility" + } + } + }, + /** + * Lookup297: xcm::v2::multiasset::WildFungibility + **/ + XcmV2MultiassetWildFungibility: { + _enum: ["Fungible", "NonFungible"] + }, + /** + * Lookup298: xcm::v2::WeightLimit + **/ + XcmV2WeightLimit: { + _enum: { + Unlimited: "Null", + Limited: "Compact" + } + }, + /** + * Lookup299: xcm::v3::Xcm + **/ + XcmV3Xcm: "Vec", + /** + * Lookup301: xcm::v3::Instruction + **/ + XcmV3Instruction: { + _enum: { + WithdrawAsset: "XcmV3MultiassetMultiAssets", + ReserveAssetDeposited: "XcmV3MultiassetMultiAssets", + ReceiveTeleportedAsset: "XcmV3MultiassetMultiAssets", + QueryResponse: { + queryId: "Compact", + response: "XcmV3Response", + maxWeight: "SpWeightsWeightV2Weight", + querier: "Option" + }, + TransferAsset: { + assets: "XcmV3MultiassetMultiAssets", + beneficiary: "StagingXcmV3MultiLocation" + }, + TransferReserveAsset: { + assets: "XcmV3MultiassetMultiAssets", + dest: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + Transact: { + originKind: "XcmV3OriginKind", + requireWeightAtMost: "SpWeightsWeightV2Weight", + call: "XcmDoubleEncoded" + }, + HrmpNewChannelOpenRequest: { + sender: "Compact", + maxMessageSize: "Compact", + maxCapacity: "Compact" + }, + HrmpChannelAccepted: { + recipient: "Compact" + }, + HrmpChannelClosing: { + initiator: "Compact", + sender: "Compact", + recipient: "Compact" + }, + ClearOrigin: "Null", + DescendOrigin: "XcmV3Junctions", + ReportError: "XcmV3QueryResponseInfo", + DepositAsset: { + assets: "XcmV3MultiassetMultiAssetFilter", + beneficiary: "StagingXcmV3MultiLocation" + }, + DepositReserveAsset: { + assets: "XcmV3MultiassetMultiAssetFilter", + dest: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + ExchangeAsset: { + give: "XcmV3MultiassetMultiAssetFilter", + want: "XcmV3MultiassetMultiAssets", + maximal: "bool" + }, + InitiateReserveWithdraw: { + assets: "XcmV3MultiassetMultiAssetFilter", + reserve: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + InitiateTeleport: { + assets: "XcmV3MultiassetMultiAssetFilter", + dest: "StagingXcmV3MultiLocation", + xcm: "XcmV3Xcm" + }, + ReportHolding: { + responseInfo: "XcmV3QueryResponseInfo", + assets: "XcmV3MultiassetMultiAssetFilter" + }, + BuyExecution: { + fees: "XcmV3MultiAsset", + weightLimit: "XcmV3WeightLimit" + }, + RefundSurplus: "Null", + SetErrorHandler: "XcmV3Xcm", + SetAppendix: "XcmV3Xcm", + ClearError: "Null", + ClaimAsset: { + assets: "XcmV3MultiassetMultiAssets", + ticket: "StagingXcmV3MultiLocation" + }, + Trap: "Compact", + SubscribeVersion: { + queryId: "Compact", + maxResponseWeight: "SpWeightsWeightV2Weight" + }, + UnsubscribeVersion: "Null", + BurnAsset: "XcmV3MultiassetMultiAssets", + ExpectAsset: "XcmV3MultiassetMultiAssets", + ExpectOrigin: "Option", + ExpectError: "Option<(u32,XcmV3TraitsError)>", + ExpectTransactStatus: "XcmV3MaybeErrorCode", + QueryPallet: { + moduleName: "Bytes", + responseInfo: "XcmV3QueryResponseInfo" + }, + ExpectPallet: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + crateMajor: "Compact", + minCrateMinor: "Compact" + }, + ReportTransactStatus: "XcmV3QueryResponseInfo", + ClearTransactStatus: "Null", + UniversalOrigin: "XcmV3Junction", + ExportMessage: { + network: "XcmV3JunctionNetworkId", + destination: "XcmV3Junctions", + xcm: "XcmV3Xcm" + }, + LockAsset: { + asset: "XcmV3MultiAsset", + unlocker: "StagingXcmV3MultiLocation" + }, + UnlockAsset: { + asset: "XcmV3MultiAsset", + target: "StagingXcmV3MultiLocation" + }, + NoteUnlockable: { + asset: "XcmV3MultiAsset", + owner: "StagingXcmV3MultiLocation" + }, + RequestUnlock: { + asset: "XcmV3MultiAsset", + locker: "StagingXcmV3MultiLocation" + }, + SetFeesMode: { + jitWithdraw: "bool" + }, + SetTopic: "[u8;32]", + ClearTopic: "Null", + AliasOrigin: "StagingXcmV3MultiLocation", + UnpaidExecution: { + weightLimit: "XcmV3WeightLimit", + checkOrigin: "Option" + } + } + }, + /** + * Lookup302: xcm::v3::Response + **/ + XcmV3Response: { + _enum: { + Null: "Null", + Assets: "XcmV3MultiassetMultiAssets", + ExecutionResult: "Option<(u32,XcmV3TraitsError)>", + Version: "u32", + PalletsInfo: "Vec", + DispatchResult: "XcmV3MaybeErrorCode" + } + }, + /** + * Lookup304: xcm::v3::PalletInfo + **/ + XcmV3PalletInfo: { + index: "Compact", + name: "Bytes", + moduleName: "Bytes", + major: "Compact", + minor: "Compact", + patch: "Compact" + }, + /** + * Lookup308: xcm::v3::QueryResponseInfo + **/ + XcmV3QueryResponseInfo: { + destination: "StagingXcmV3MultiLocation", + queryId: "Compact", + maxWeight: "SpWeightsWeightV2Weight" + }, + /** + * Lookup309: xcm::v3::multiasset::MultiAssetFilter + **/ + XcmV3MultiassetMultiAssetFilter: { + _enum: { + Definite: "XcmV3MultiassetMultiAssets", + Wild: "XcmV3MultiassetWildMultiAsset" + } + }, + /** + * Lookup310: xcm::v3::multiasset::WildMultiAsset + **/ + XcmV3MultiassetWildMultiAsset: { + _enum: { + All: "Null", + AllOf: { + id: "XcmV3MultiassetAssetId", + fun: "XcmV3MultiassetWildFungibility" + }, + AllCounted: "Compact", + AllOfCounted: { + id: "XcmV3MultiassetAssetId", + fun: "XcmV3MultiassetWildFungibility", + count: "Compact" + } + } + }, + /** + * Lookup311: xcm::v3::multiasset::WildFungibility + **/ + XcmV3MultiassetWildFungibility: { + _enum: ["Fungible", "NonFungible"] + }, + /** + * Lookup323: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: "Null", + LocalReserve: "Null", + DestinationReserve: "Null", + RemoteReserve: "XcmVersionedLocation" + } + }, + /** + * Lookup324: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + __Unused2: "Null", + V3: "XcmV3MultiassetAssetId", + V4: "StagingXcmV4AssetAssetId" + } + }, + /** + * Lookup325: cumulus_pallet_xcm::pallet::Call + **/ + CumulusPalletXcmCall: "Null", + /** + * Lookup326: pallet_message_queue::pallet::Call + **/ + PalletMessageQueueCall: { + _enum: { + reap_page: { + messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", + pageIndex: "u32" + }, + execute_overweight: { + messageOrigin: "CumulusPrimitivesCoreAggregateMessageOrigin", + page: "u32", + index: "u32", + weightLimit: "SpWeightsWeightV2Weight" + } + } + }, + /** + * Lookup327: pallet_storage_providers::pallet::Call + **/ + PalletStorageProvidersCall: { + _enum: { + request_msp_sign_up: { + capacity: "u64", + multiaddresses: "Vec", + valueProp: "PalletStorageProvidersValueProposition", + paymentAccount: "AccountId32" + }, + request_bsp_sign_up: { + capacity: "u64", + multiaddresses: "Vec", + paymentAccount: "AccountId32" + }, + confirm_sign_up: { + providerAccount: "Option" + }, + cancel_sign_up: "Null", + msp_sign_off: "Null", + bsp_sign_off: "Null", + change_capacity: { + newCapacity: "u64" + }, + add_value_prop: { + newValueProp: "PalletStorageProvidersValueProposition" + }, + force_msp_sign_up: { + who: "AccountId32", + mspId: "H256", + capacity: "u64", + multiaddresses: "Vec", + valueProp: "PalletStorageProvidersValueProposition", + paymentAccount: "AccountId32" + }, + force_bsp_sign_up: { + who: "AccountId32", + bspId: "H256", + capacity: "u64", + multiaddresses: "Vec", + paymentAccount: "AccountId32", + weight: "Option" + }, + slash: { + providerId: "H256" + } + } + }, + /** + * Lookup328: pallet_file_system::pallet::Call + **/ + PalletFileSystemCall: { + _enum: { + create_bucket: { + mspId: "H256", + name: "Bytes", + private: "bool" + }, + request_move_bucket: { + bucketId: "H256", + newMspId: "H256" + }, + msp_respond_move_bucket_request: { + bucketId: "H256", + response: "PalletFileSystemBucketMoveRequestResponse" + }, + update_bucket_privacy: { + bucketId: "H256", + private: "bool" + }, + create_and_associate_collection_with_bucket: { + bucketId: "H256" + }, + issue_storage_request: { + _alias: { + size_: "size" + }, + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + size_: "u64", + mspId: "H256", + peerIds: "Vec" + }, + revoke_storage_request: { + fileKey: "H256" + }, + bsp_add_data_server_for_move_bucket_request: { + bucketId: "H256" + }, + msp_respond_storage_requests_multiple_buckets: { + fileKeyResponsesInput: "Vec<(H256,PalletFileSystemMspStorageRequestResponse)>" + }, + bsp_volunteer: { + fileKey: "H256" + }, + bsp_confirm_storing: { + nonInclusionForestProof: "SpTrieStorageProofCompactProof", + fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>" + }, + bsp_request_stop_storing: { + _alias: { + size_: "size" + }, + fileKey: "H256", + bucketId: "H256", + location: "Bytes", + owner: "AccountId32", + fingerprint: "H256", + size_: "u64", + canServe: "bool", + inclusionForestProof: "SpTrieStorageProofCompactProof" + }, + bsp_confirm_stop_storing: { + fileKey: "H256", + inclusionForestProof: "SpTrieStorageProofCompactProof" + }, + stop_storing_for_insolvent_user: { + _alias: { + size_: "size" + }, + fileKey: "H256", + bucketId: "H256", + location: "Bytes", + owner: "AccountId32", + fingerprint: "H256", + size_: "u64", + inclusionForestProof: "SpTrieStorageProofCompactProof" + }, + delete_file: { + _alias: { + size_: "size" + }, + bucketId: "H256", + fileKey: "H256", + location: "Bytes", + size_: "u64", + fingerprint: "H256", + maybeInclusionForestProof: "Option" + }, + pending_file_deletion_request_submit_proof: { + user: "AccountId32", + fileKey: "H256", + bucketId: "H256", + forestProof: "SpTrieStorageProofCompactProof" + }, + set_global_parameters: { + replicationTarget: "Option", + tickRangeToMaximumThreshold: "Option" + } + } + }, + /** + * Lookup329: pallet_file_system::types::BucketMoveRequestResponse + **/ + PalletFileSystemBucketMoveRequestResponse: { + _enum: ["Accepted", "Rejected"] + }, + /** + * Lookup332: pallet_file_system::types::MspStorageRequestResponse + **/ + PalletFileSystemMspStorageRequestResponse: { + accept: "Option", + reject: "Option>" + }, + /** + * Lookup334: pallet_file_system::types::AcceptedStorageRequestParameters + **/ + PalletFileSystemAcceptedStorageRequestParameters: { + fileKeysAndProofs: "Vec<(H256,ShpFileKeyVerifierFileKeyProof)>", + nonInclusionForestProof: "SpTrieStorageProofCompactProof" + }, + /** + * Lookup341: pallet_proofs_dealer::pallet::Call + **/ + PalletProofsDealerCall: { + _enum: { + challenge: { + key: "H256" + }, + submit_proof: { + proof: "PalletProofsDealerProof", + provider: "Option" + }, + force_initialise_challenge_cycle: { + provider: "H256" + }, + set_paused: { + paused: "bool" + } + } + }, + /** + * Lookup342: pallet_randomness::pallet::Call + **/ + PalletRandomnessCall: { + _enum: ["set_babe_randomness"] + }, + /** + * Lookup343: pallet_payment_streams::pallet::Call + **/ + PalletPaymentStreamsCall: { + _enum: { + create_fixed_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + rate: "u128" + }, + update_fixed_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + newRate: "u128" + }, + delete_fixed_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32" + }, + create_dynamic_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + amountProvided: "u64" + }, + update_dynamic_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32", + newAmountProvided: "u64" + }, + delete_dynamic_rate_payment_stream: { + providerId: "H256", + userAccount: "AccountId32" + }, + charge_payment_streams: { + userAccount: "AccountId32" + }, + pay_outstanding_debt: "Null", + clear_insolvent_flag: "Null" + } + }, + /** + * Lookup344: pallet_bucket_nfts::pallet::Call + **/ + PalletBucketNftsCall: { + _enum: { + share_access: { + recipient: "MultiAddress", + bucket: "H256", + itemId: "u32", + readAccessRegex: "Option" + }, + update_read_access: { + bucket: "H256", + itemId: "u32", + readAccessRegex: "Option" + } + } + }, + /** + * Lookup346: pallet_nfts::pallet::Call + **/ + PalletNftsCall: { + _enum: { + create: { + admin: "MultiAddress", + config: "PalletNftsCollectionConfig" + }, + force_create: { + owner: "MultiAddress", + config: "PalletNftsCollectionConfig" + }, + destroy: { + collection: "u32", + witness: "PalletNftsDestroyWitness" + }, + mint: { + collection: "u32", + item: "u32", + mintTo: "MultiAddress", + witnessData: "Option" + }, + force_mint: { + collection: "u32", + item: "u32", + mintTo: "MultiAddress", + itemConfig: "PalletNftsItemConfig" + }, + burn: { + collection: "u32", + item: "u32" + }, + transfer: { + collection: "u32", + item: "u32", + dest: "MultiAddress" + }, + redeposit: { + collection: "u32", + items: "Vec" + }, + lock_item_transfer: { + collection: "u32", + item: "u32" + }, + unlock_item_transfer: { + collection: "u32", + item: "u32" + }, + lock_collection: { + collection: "u32", + lockSettings: "u64" + }, + transfer_ownership: { + collection: "u32", + newOwner: "MultiAddress" + }, + set_team: { + collection: "u32", + issuer: "Option", + admin: "Option", + freezer: "Option" + }, + force_collection_owner: { + collection: "u32", + owner: "MultiAddress" + }, + force_collection_config: { + collection: "u32", + config: "PalletNftsCollectionConfig" + }, + approve_transfer: { + collection: "u32", + item: "u32", + delegate: "MultiAddress", + maybeDeadline: "Option" + }, + cancel_approval: { + collection: "u32", + item: "u32", + delegate: "MultiAddress" + }, + clear_all_transfer_approvals: { + collection: "u32", + item: "u32" + }, + lock_item_properties: { + collection: "u32", + item: "u32", + lockMetadata: "bool", + lockAttributes: "bool" + }, + set_attribute: { + collection: "u32", + maybeItem: "Option", + namespace: "PalletNftsAttributeNamespace", + key: "Bytes", + value: "Bytes" + }, + force_set_attribute: { + setAs: "Option", + collection: "u32", + maybeItem: "Option", + namespace: "PalletNftsAttributeNamespace", + key: "Bytes", + value: "Bytes" + }, + clear_attribute: { + collection: "u32", + maybeItem: "Option", + namespace: "PalletNftsAttributeNamespace", + key: "Bytes" + }, + approve_item_attributes: { + collection: "u32", + item: "u32", + delegate: "MultiAddress" + }, + cancel_item_attributes_approval: { + collection: "u32", + item: "u32", + delegate: "MultiAddress", + witness: "PalletNftsCancelAttributesApprovalWitness" + }, + set_metadata: { + collection: "u32", + item: "u32", + data: "Bytes" + }, + clear_metadata: { + collection: "u32", + item: "u32" + }, + set_collection_metadata: { + collection: "u32", + data: "Bytes" + }, + clear_collection_metadata: { + collection: "u32" + }, + set_accept_ownership: { + maybeCollection: "Option" + }, + set_collection_max_supply: { + collection: "u32", + maxSupply: "u32" + }, + update_mint_settings: { + collection: "u32", + mintSettings: "PalletNftsMintSettings" + }, + set_price: { + collection: "u32", + item: "u32", + price: "Option", + whitelistedBuyer: "Option" + }, + buy_item: { + collection: "u32", + item: "u32", + bidPrice: "u128" + }, + pay_tips: { + tips: "Vec" + }, + create_swap: { + offeredCollection: "u32", + offeredItem: "u32", + desiredCollection: "u32", + maybeDesiredItem: "Option", + maybePrice: "Option", + duration: "u32" + }, + cancel_swap: { + offeredCollection: "u32", + offeredItem: "u32" + }, + claim_swap: { + sendCollection: "u32", + sendItem: "u32", + receiveCollection: "u32", + receiveItem: "u32", + witnessPrice: "Option" + }, + mint_pre_signed: { + mintData: "PalletNftsPreSignedMint", + signature: "SpRuntimeMultiSignature", + signer: "AccountId32" + }, + set_attributes_pre_signed: { + data: "PalletNftsPreSignedAttributes", + signature: "SpRuntimeMultiSignature", + signer: "AccountId32" + } + } + }, + /** + * Lookup347: pallet_nfts::types::CollectionConfig + **/ + PalletNftsCollectionConfig: { + settings: "u64", + maxSupply: "Option", + mintSettings: "PalletNftsMintSettings" + }, + /** + * Lookup349: pallet_nfts::types::CollectionSetting + **/ + PalletNftsCollectionSetting: { + _enum: [ + "__Unused0", + "TransferableItems", + "UnlockedMetadata", + "__Unused3", + "UnlockedAttributes", + "__Unused5", + "__Unused6", + "__Unused7", + "UnlockedMaxSupply", + "__Unused9", + "__Unused10", + "__Unused11", + "__Unused12", + "__Unused13", + "__Unused14", + "__Unused15", + "DepositRequired" + ] + }, + /** + * Lookup350: pallet_nfts::types::MintSettings + **/ + PalletNftsMintSettings: { + mintType: "PalletNftsMintType", + price: "Option", + startBlock: "Option", + endBlock: "Option", + defaultItemSettings: "u64" + }, + /** + * Lookup351: pallet_nfts::types::MintType + **/ + PalletNftsMintType: { + _enum: { + Issuer: "Null", + Public: "Null", + HolderOf: "u32" + } + }, + /** + * Lookup354: pallet_nfts::types::ItemSetting + **/ + PalletNftsItemSetting: { + _enum: ["__Unused0", "Transferable", "UnlockedMetadata", "__Unused3", "UnlockedAttributes"] + }, + /** + * Lookup355: pallet_nfts::types::DestroyWitness + **/ + PalletNftsDestroyWitness: { + itemMetadatas: "Compact", + itemConfigs: "Compact", + attributes: "Compact" + }, + /** + * Lookup357: pallet_nfts::types::MintWitness + **/ + PalletNftsMintWitness: { + ownedItem: "Option", + mintPrice: "Option" + }, + /** + * Lookup358: pallet_nfts::types::ItemConfig + **/ + PalletNftsItemConfig: { + settings: "u64" + }, + /** + * Lookup360: pallet_nfts::types::CancelAttributesApprovalWitness + **/ + PalletNftsCancelAttributesApprovalWitness: { + accountAttributes: "u32" + }, + /** + * Lookup362: pallet_nfts::types::ItemTip + **/ + PalletNftsItemTip: { + collection: "u32", + item: "u32", + receiver: "AccountId32", + amount: "u128" + }, + /** + * Lookup364: pallet_nfts::types::PreSignedMint + **/ + PalletNftsPreSignedMint: { + collection: "u32", + item: "u32", + attributes: "Vec<(Bytes,Bytes)>", + metadata: "Bytes", + onlyAccount: "Option", + deadline: "u32", + mintPrice: "Option" + }, + /** + * Lookup365: sp_runtime::MultiSignature + **/ + SpRuntimeMultiSignature: { + _enum: { + Ed25519: "[u8;64]", + Sr25519: "[u8;64]", + Ecdsa: "[u8;65]" + } + }, + /** + * Lookup368: pallet_nfts::types::PreSignedAttributes + **/ + PalletNftsPreSignedAttributes: { + collection: "u32", + item: "u32", + attributes: "Vec<(Bytes,Bytes)>", + namespace: "PalletNftsAttributeNamespace", + deadline: "u32" + }, + /** + * Lookup369: pallet_parameters::pallet::Call + **/ + PalletParametersCall: { + _enum: { + set_parameter: { + keyValue: "StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters" + } + } + }, + /** + * Lookup370: storage_hub_runtime::configs::runtime_params::RuntimeParameters + **/ + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: { + _enum: { + RuntimeConfig: "StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters" + } + }, + /** + * Lookup371: storage_hub_runtime::configs::runtime_params::dynamic_params::runtime_config::Parameters + **/ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: { + _enum: { + SlashAmountPerMaxFileSize: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize,Option)", + StakeToChallengePeriod: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod,Option)", + CheckpointChallengePeriod: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod,Option)", + MinChallengePeriod: + "(StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod,Option)" + } + }, + /** + * Lookup372: pallet_sudo::pallet::Error + **/ + PalletSudoError: { + _enum: ["RequireSudo"] + }, + /** + * Lookup375: pallet_collator_selection::pallet::CandidateInfo + **/ + PalletCollatorSelectionCandidateInfo: { + who: "AccountId32", + deposit: "u128" + }, + /** + * Lookup377: pallet_collator_selection::pallet::Error + **/ + PalletCollatorSelectionError: { + _enum: [ + "TooManyCandidates", + "TooFewEligibleCollators", + "AlreadyCandidate", + "NotCandidate", + "TooManyInvulnerables", + "AlreadyInvulnerable", + "NotInvulnerable", + "NoAssociatedValidatorId", + "ValidatorNotRegistered", + "InsertToCandidateListFailed", + "RemoveFromCandidateListFailed", + "DepositTooLow", + "UpdateCandidateListFailed", + "InsufficientBond", + "TargetIsNotCandidate", + "IdenticalDeposit", + "InvalidUnreserve" + ] + }, + /** + * Lookup381: sp_core::crypto::KeyTypeId + **/ + SpCoreCryptoKeyTypeId: "[u8;4]", + /** + * Lookup382: pallet_session::pallet::Error + **/ + PalletSessionError: { + _enum: ["InvalidProof", "NoAssociatedValidatorId", "DuplicatedKey", "NoKeys", "NoAccount"] + }, + /** + * Lookup391: cumulus_pallet_xcmp_queue::OutboundChannelDetails + **/ + CumulusPalletXcmpQueueOutboundChannelDetails: { + recipient: "u32", + state: "CumulusPalletXcmpQueueOutboundState", + signalsExist: "bool", + firstIndex: "u16", + lastIndex: "u16" + }, + /** + * Lookup392: cumulus_pallet_xcmp_queue::OutboundState + **/ + CumulusPalletXcmpQueueOutboundState: { + _enum: ["Ok", "Suspended"] + }, + /** + * Lookup396: cumulus_pallet_xcmp_queue::QueueConfigData + **/ + CumulusPalletXcmpQueueQueueConfigData: { + suspendThreshold: "u32", + dropThreshold: "u32", + resumeThreshold: "u32" + }, + /** + * Lookup397: cumulus_pallet_xcmp_queue::pallet::Error + **/ + CumulusPalletXcmpQueueError: { + _enum: [ + "BadQueueConfig", + "AlreadySuspended", + "AlreadyResumed", + "TooManyActiveOutboundChannels", + "TooBig" + ] + }, + /** + * Lookup398: pallet_xcm::pallet::QueryStatus + **/ + PalletXcmQueryStatus: { + _enum: { + Pending: { + responder: "XcmVersionedLocation", + maybeMatchQuerier: "Option", + maybeNotify: "Option<(u8,u8)>", + timeout: "u32" + }, + VersionNotifier: { + origin: "XcmVersionedLocation", + isActive: "bool" + }, + Ready: { + response: "XcmVersionedResponse", + at: "u32" + } + } + }, + /** + * Lookup402: xcm::VersionedResponse + **/ + XcmVersionedResponse: { + _enum: { + __Unused0: "Null", + __Unused1: "Null", + V2: "XcmV2Response", + V3: "XcmV3Response", + V4: "StagingXcmV4Response" + } + }, + /** + * Lookup408: pallet_xcm::pallet::VersionMigrationStage + **/ + PalletXcmVersionMigrationStage: { + _enum: { + MigrateSupportedVersion: "Null", + MigrateVersionNotifiers: "Null", + NotifyCurrentTargets: "Option", + MigrateAndNotifyOldTargets: "Null" + } + }, + /** + * Lookup411: pallet_xcm::pallet::RemoteLockedFungibleRecord + **/ + PalletXcmRemoteLockedFungibleRecord: { + amount: "u128", + owner: "XcmVersionedLocation", + locker: "XcmVersionedLocation", + consumers: "Vec<(Null,u128)>" + }, + /** + * Lookup418: pallet_xcm::pallet::Error + **/ + PalletXcmError: { + _enum: [ + "Unreachable", + "SendFailure", + "Filtered", + "UnweighableMessage", + "DestinationNotInvertible", + "Empty", + "CannotReanchor", + "TooManyAssets", + "InvalidOrigin", + "BadVersion", + "BadLocation", + "NoSubscription", + "AlreadySubscribed", + "CannotCheckOutTeleport", + "LowBalance", + "TooManyLocks", + "AccountNotSovereign", + "FeesNotMet", + "LockNotFound", + "InUse", + "__Unused20", + "InvalidAssetUnknownReserve", + "InvalidAssetUnsupportedReserve", + "TooManyReserves", + "LocalExecutionIncomplete" + ] + }, + /** + * Lookup419: pallet_message_queue::BookState + **/ + PalletMessageQueueBookState: { + _alias: { + size_: "size" + }, + begin: "u32", + end: "u32", + count: "u32", + readyNeighbours: "Option", + messageCount: "u64", + size_: "u64" + }, + /** + * Lookup421: pallet_message_queue::Neighbours + **/ + PalletMessageQueueNeighbours: { + prev: "CumulusPrimitivesCoreAggregateMessageOrigin", + next: "CumulusPrimitivesCoreAggregateMessageOrigin" + }, + /** + * Lookup423: pallet_message_queue::Page + **/ + PalletMessageQueuePage: { + remaining: "u32", + remainingSize: "u32", + firstIndex: "u32", + first: "u32", + last: "u32", + heap: "Bytes" + }, + /** + * Lookup425: pallet_message_queue::pallet::Error + **/ + PalletMessageQueueError: { + _enum: [ + "NotReapable", + "NoPage", + "NoMessage", + "AlreadyProcessed", + "Queued", + "InsufficientWeight", + "TemporarilyUnprocessable", + "QueuePaused", + "RecursiveDisallowed" + ] + }, + /** + * Lookup427: pallet_storage_providers::types::StorageProvider + **/ + PalletStorageProvidersStorageProvider: { + _enum: { + BackupStorageProvider: "PalletStorageProvidersBackupStorageProvider", + MainStorageProvider: "PalletStorageProvidersMainStorageProvider" + } + }, + /** + * Lookup428: pallet_storage_providers::types::BackupStorageProvider + **/ + PalletStorageProvidersBackupStorageProvider: { + capacity: "u64", + capacityUsed: "u64", + multiaddresses: "Vec", + root: "H256", + lastCapacityChange: "u32", + ownerAccount: "AccountId32", + paymentAccount: "AccountId32", + reputationWeight: "u32" + }, + /** + * Lookup429: pallet_storage_providers::types::MainStorageProvider + **/ + PalletStorageProvidersMainStorageProvider: { + buckets: "Vec", + capacity: "u64", + capacityUsed: "u64", + multiaddresses: "Vec", + valueProp: "PalletStorageProvidersValueProposition", + lastCapacityChange: "u32", + ownerAccount: "AccountId32", + paymentAccount: "AccountId32" + }, + /** + * Lookup431: pallet_storage_providers::types::Bucket + **/ + PalletStorageProvidersBucket: { + _alias: { + size_: "size" + }, + root: "H256", + userId: "AccountId32", + mspId: "H256", + private: "bool", + readAccessGroupId: "Option", + size_: "u64" + }, + /** + * Lookup434: pallet_storage_providers::pallet::Error + **/ + PalletStorageProvidersError: { + _enum: [ + "AlreadyRegistered", + "SignUpNotRequested", + "SignUpRequestPending", + "NoMultiAddress", + "InvalidMultiAddress", + "StorageTooLow", + "NotEnoughBalance", + "CannotHoldDeposit", + "StorageStillInUse", + "RandomnessNotValidYet", + "SignUpRequestExpired", + "NewCapacityLessThanUsedStorage", + "NewCapacityEqualsCurrentCapacity", + "NewCapacityCantBeZero", + "NotEnoughTimePassed", + "NewUsedCapacityExceedsStorageCapacity", + "NotRegistered", + "NoUserId", + "NoBucketId", + "SpRegisteredButDataNotFound", + "BucketNotFound", + "BucketAlreadyExists", + "AppendBucketToMspFailed", + "ProviderNotSlashable", + "InvalidEncodedFileMetadata", + "InvalidEncodedAccountId", + "PaymentStreamNotFound" + ] + }, + /** + * Lookup435: pallet_file_system::types::StorageRequestMetadata + **/ + PalletFileSystemStorageRequestMetadata: { + _alias: { + size_: "size" + }, + requestedAt: "u32", + owner: "AccountId32", + bucketId: "H256", + location: "Bytes", + fingerprint: "H256", + size_: "u64", + msp: "Option<(H256,bool)>", + userPeerIds: "Vec", + dataServerSps: "Vec", + bspsRequired: "u32", + bspsConfirmed: "u32", + bspsVolunteered: "u32" + }, + /** + * Lookup440: pallet_file_system::types::StorageRequestBspsMetadata + **/ + PalletFileSystemStorageRequestBspsMetadata: { + confirmed: "bool" + }, + /** + * Lookup449: pallet_file_system::types::MoveBucketRequestMetadata + **/ + PalletFileSystemMoveBucketRequestMetadata: { + requester: "AccountId32" + }, + /** + * Lookup450: pallet_file_system::pallet::Error + **/ + PalletFileSystemError: { + _enum: [ + "StorageRequestAlreadyRegistered", + "StorageRequestNotFound", + "StorageRequestNotRevoked", + "StorageRequestExists", + "ReplicationTargetCannotBeZero", + "BspsRequiredExceedsTarget", + "NotABsp", + "NotAMsp", + "NotASp", + "BspNotVolunteered", + "BspNotConfirmed", + "BspAlreadyConfirmed", + "StorageRequestBspsRequiredFulfilled", + "BspAlreadyVolunteered", + "InsufficientAvailableCapacity", + "UnexpectedNumberOfRemovedVolunteeredBsps", + "StorageRequestExpiredNoSlotAvailable", + "StorageRequestNotAuthorized", + "MaxBlockNumberReached", + "FailedToEncodeBsp", + "FailedToEncodeFingerprint", + "FailedToDecodeThreshold", + "AboveThreshold", + "ThresholdArithmeticError", + "FailedTypeConversion", + "DividedByZero", + "ImpossibleFailedToGetValue", + "BucketIsNotPrivate", + "BucketNotFound", + "NotBucketOwner", + "ProviderRootNotFound", + "ExpectedNonInclusionProof", + "ExpectedInclusionProof", + "InvalidFileKeyMetadata", + "ThresholdBelowAsymptote", + "NotFileOwner", + "FileKeyAlreadyPendingDeletion", + "MaxUserPendingDeletionRequestsReached", + "MspNotStoringBucket", + "FileKeyNotPendingDeletion", + "FileSizeCannotBeZero", + "NoGlobalReputationWeightSet", + "MaximumThresholdCannotBeZero", + "TickRangeToMaximumThresholdCannotBeZero", + "PendingStopStoringRequestNotFound", + "MinWaitForStopStoringNotReached", + "PendingStopStoringRequestAlreadyExists", + "UserNotInsolvent", + "NotSelectedMsp", + "MspAlreadyConfirmed", + "RequestWithoutMsp", + "MspAlreadyStoringBucket", + "MoveBucketRequestNotFound", + "BucketIsBeingMoved", + "BspAlreadyDataServer", + "BspDataServersExceeded", + "FileMetadataProcessingQueueFull", + "TooManyBatchResponses", + "TooManyStorageRequestResponses", + "InvalidBucketIdFileKeyPair", + "InconsistentStateKeyAlreadyExists" + ] + }, + /** + * Lookup457: pallet_proofs_dealer::pallet::Error + **/ + PalletProofsDealerError: { + _enum: [ + "NotProvider", + "ChallengesQueueOverflow", + "PriorityChallengesQueueOverflow", + "FeeChargeFailed", + "EmptyKeyProofs", + "ProviderRootNotFound", + "ZeroRoot", + "NoRecordOfLastSubmittedProof", + "ProviderStakeNotFound", + "ZeroStake", + "StakeCouldNotBeConverted", + "ChallengesTickNotReached", + "ChallengesTickTooOld", + "ChallengesTickTooLate", + "SeedNotFound", + "CheckpointChallengesNotFound", + "ForestProofVerificationFailed", + "KeyProofNotFound", + "KeyProofVerificationFailed", + "FailedToApplyDelta", + "FailedToUpdateProviderAfterKeyRemoval", + "TooManyValidProofSubmitters" + ] + }, + /** + * Lookup460: pallet_payment_streams::types::FixedRatePaymentStream + **/ + PalletPaymentStreamsFixedRatePaymentStream: { + rate: "u128", + lastChargedTick: "u32", + userDeposit: "u128", + outOfFundsTick: "Option" + }, + /** + * Lookup461: pallet_payment_streams::types::DynamicRatePaymentStream + **/ + PalletPaymentStreamsDynamicRatePaymentStream: { + amountProvided: "u64", + priceIndexWhenLastCharged: "u128", + userDeposit: "u128", + outOfFundsTick: "Option" + }, + /** + * Lookup462: pallet_payment_streams::types::ProviderLastChargeableInfo + **/ + PalletPaymentStreamsProviderLastChargeableInfo: { + lastChargeableTick: "u32", + priceIndex: "u128" + }, + /** + * Lookup463: pallet_payment_streams::pallet::Error + **/ + PalletPaymentStreamsError: { + _enum: [ + "PaymentStreamAlreadyExists", + "PaymentStreamNotFound", + "NotAProvider", + "ProviderInconsistencyError", + "CannotHoldDeposit", + "UpdateRateToSameRate", + "UpdateAmountToSameAmount", + "RateCantBeZero", + "AmountProvidedCantBeZero", + "LastChargedGreaterThanLastChargeable", + "InvalidLastChargeableBlockNumber", + "InvalidLastChargeablePriceIndex", + "ChargeOverflow", + "UserWithoutFunds", + "UserNotFlaggedAsWithoutFunds", + "CooldownPeriodNotPassed" + ] + }, + /** + * Lookup464: pallet_bucket_nfts::pallet::Error + **/ + PalletBucketNftsError: { + _enum: [ + "BucketIsNotPrivate", + "NotBucketOwner", + "NoCorrespondingCollection", + "ConvertBytesToBoundedVec" + ] + }, + /** + * Lookup465: pallet_nfts::types::CollectionDetails + **/ + PalletNftsCollectionDetails: { + owner: "AccountId32", + ownerDeposit: "u128", + items: "u32", + itemMetadatas: "u32", + itemConfigs: "u32", + attributes: "u32" + }, + /** + * Lookup470: pallet_nfts::types::CollectionRole + **/ + PalletNftsCollectionRole: { + _enum: ["__Unused0", "Issuer", "Freezer", "__Unused3", "Admin"] + }, + /** + * Lookup471: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + **/ + PalletNftsItemDetails: { + owner: "AccountId32", + approvals: "BTreeMap>", + deposit: "PalletNftsItemDeposit" + }, + /** + * Lookup472: pallet_nfts::types::ItemDeposit + **/ + PalletNftsItemDeposit: { + account: "AccountId32", + amount: "u128" + }, + /** + * Lookup477: pallet_nfts::types::CollectionMetadata + **/ + PalletNftsCollectionMetadata: { + deposit: "u128", + data: "Bytes" + }, + /** + * Lookup478: pallet_nfts::types::ItemMetadata, StringLimit> + **/ + PalletNftsItemMetadata: { + deposit: "PalletNftsItemMetadataDeposit", + data: "Bytes" + }, + /** + * Lookup479: pallet_nfts::types::ItemMetadataDeposit + **/ + PalletNftsItemMetadataDeposit: { + account: "Option", + amount: "u128" + }, + /** + * Lookup482: pallet_nfts::types::AttributeDeposit + **/ + PalletNftsAttributeDeposit: { + account: "Option", + amount: "u128" + }, + /** + * Lookup486: pallet_nfts::types::PendingSwap, Deadline> + **/ + PalletNftsPendingSwap: { + desiredCollection: "u32", + desiredItem: "Option", + price: "Option", + deadline: "u32" + }, + /** + * Lookup488: pallet_nfts::types::PalletFeature + **/ + PalletNftsPalletFeature: { + _enum: [ + "__Unused0", + "Trading", + "Attributes", + "__Unused3", + "Approvals", + "__Unused5", + "__Unused6", + "__Unused7", + "Swaps" + ] + }, + /** + * Lookup489: pallet_nfts::pallet::Error + **/ + PalletNftsError: { + _enum: [ + "NoPermission", + "UnknownCollection", + "AlreadyExists", + "ApprovalExpired", + "WrongOwner", + "BadWitness", + "CollectionIdInUse", + "ItemsNonTransferable", + "NotDelegate", + "WrongDelegate", + "Unapproved", + "Unaccepted", + "ItemLocked", + "LockedItemAttributes", + "LockedCollectionAttributes", + "LockedItemMetadata", + "LockedCollectionMetadata", + "MaxSupplyReached", + "MaxSupplyLocked", + "MaxSupplyTooSmall", + "UnknownItem", + "UnknownSwap", + "MetadataNotFound", + "AttributeNotFound", + "NotForSale", + "BidTooLow", + "ReachedApprovalLimit", + "DeadlineExpired", + "WrongDuration", + "MethodDisabled", + "WrongSetting", + "InconsistentItemConfig", + "NoConfig", + "RolesNotCleared", + "MintNotStarted", + "MintEnded", + "AlreadyClaimed", + "IncorrectData", + "WrongOrigin", + "WrongSignature", + "IncorrectMetadata", + "MaxAttributesLimitReached", + "WrongNamespace", + "CollectionNotEmpty", + "WitnessRequired" + ] + }, + /** + * Lookup492: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + **/ + FrameSystemExtensionsCheckNonZeroSender: "Null", + /** + * Lookup493: frame_system::extensions::check_spec_version::CheckSpecVersion + **/ + FrameSystemExtensionsCheckSpecVersion: "Null", + /** + * Lookup494: frame_system::extensions::check_tx_version::CheckTxVersion + **/ + FrameSystemExtensionsCheckTxVersion: "Null", + /** + * Lookup495: frame_system::extensions::check_genesis::CheckGenesis + **/ + FrameSystemExtensionsCheckGenesis: "Null", + /** + * Lookup498: frame_system::extensions::check_nonce::CheckNonce + **/ + FrameSystemExtensionsCheckNonce: "Compact", + /** + * Lookup499: frame_system::extensions::check_weight::CheckWeight + **/ + FrameSystemExtensionsCheckWeight: "Null", + /** + * Lookup500: pallet_transaction_payment::ChargeTransactionPayment + **/ + PalletTransactionPaymentChargeTransactionPayment: "Compact", + /** + * Lookup501: cumulus_primitives_storage_weight_reclaim::StorageWeightReclaim + **/ + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: "Null", + /** + * Lookup502: frame_metadata_hash_extension::CheckMetadataHash + **/ + FrameMetadataHashExtensionCheckMetadataHash: { + mode: "FrameMetadataHashExtensionMode" + }, + /** + * Lookup503: frame_metadata_hash_extension::Mode + **/ + FrameMetadataHashExtensionMode: { + _enum: ["Disabled", "Enabled"] + }, + /** + * Lookup504: storage_hub_runtime::Runtime + **/ + StorageHubRuntimeRuntime: "Null" +}; diff --git a/api-augment/src/interfaces/registry.ts b/api-augment/src/interfaces/registry.ts index 8e309a887..ca45806ab 100644 --- a/api-augment/src/interfaces/registry.ts +++ b/api-augment/src/interfaces/registry.ts @@ -1,546 +1,546 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/types/types/registry"; - -import type { - CumulusPalletParachainSystemCall, - CumulusPalletParachainSystemError, - CumulusPalletParachainSystemEvent, - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, - CumulusPalletParachainSystemUnincludedSegmentAncestor, - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, - CumulusPalletXcmCall, - CumulusPalletXcmEvent, - CumulusPalletXcmpQueueCall, - CumulusPalletXcmpQueueError, - CumulusPalletXcmpQueueEvent, - CumulusPalletXcmpQueueOutboundChannelDetails, - CumulusPalletXcmpQueueOutboundState, - CumulusPalletXcmpQueueQueueConfigData, - CumulusPrimitivesCoreAggregateMessageOrigin, - CumulusPrimitivesParachainInherentParachainInherentData, - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, - FrameMetadataHashExtensionCheckMetadataHash, - FrameMetadataHashExtensionMode, - FrameSupportDispatchDispatchClass, - FrameSupportDispatchDispatchInfo, - FrameSupportDispatchPays, - FrameSupportDispatchPerDispatchClassU32, - FrameSupportDispatchPerDispatchClassWeight, - FrameSupportDispatchPerDispatchClassWeightsPerClass, - FrameSupportMessagesProcessMessageError, - FrameSupportTokensMiscBalanceStatus, - FrameSystemAccountInfo, - FrameSystemCall, - FrameSystemCodeUpgradeAuthorization, - FrameSystemError, - FrameSystemEvent, - FrameSystemEventRecord, - FrameSystemExtensionsCheckGenesis, - FrameSystemExtensionsCheckNonZeroSender, - FrameSystemExtensionsCheckNonce, - FrameSystemExtensionsCheckSpecVersion, - FrameSystemExtensionsCheckTxVersion, - FrameSystemExtensionsCheckWeight, - FrameSystemLastRuntimeUpgradeInfo, - FrameSystemLimitsBlockLength, - FrameSystemLimitsBlockWeights, - FrameSystemLimitsWeightsPerClass, - FrameSystemPhase, - PalletBalancesAccountData, - PalletBalancesAdjustmentDirection, - PalletBalancesBalanceLock, - PalletBalancesCall, - PalletBalancesError, - PalletBalancesEvent, - PalletBalancesIdAmount, - PalletBalancesReasons, - PalletBalancesReserveData, - PalletBucketNftsCall, - PalletBucketNftsError, - PalletBucketNftsEvent, - PalletCollatorSelectionCall, - PalletCollatorSelectionCandidateInfo, - PalletCollatorSelectionError, - PalletCollatorSelectionEvent, - PalletFileSystemAcceptedStorageRequestParameters, - PalletFileSystemBatchResponses, - PalletFileSystemBucketMoveRequestResponse, - PalletFileSystemCall, - PalletFileSystemEitherAccountIdOrMspId, - PalletFileSystemError, - PalletFileSystemEvent, - PalletFileSystemMoveBucketRequestMetadata, - PalletFileSystemMspAcceptedBatchStorageRequests, - PalletFileSystemMspFailedBatchStorageRequests, - PalletFileSystemMspRejectedBatchStorageRequests, - PalletFileSystemMspRespondStorageRequestsResult, - PalletFileSystemMspStorageRequestResponse, - PalletFileSystemRejectedStorageRequestReason, - PalletFileSystemStorageRequestBspsMetadata, - PalletFileSystemStorageRequestMetadata, - PalletMessageQueueBookState, - PalletMessageQueueCall, - PalletMessageQueueError, - PalletMessageQueueEvent, - PalletMessageQueueNeighbours, - PalletMessageQueuePage, - PalletNftsAttributeDeposit, - PalletNftsAttributeNamespace, - PalletNftsCall, - PalletNftsCancelAttributesApprovalWitness, - PalletNftsCollectionConfig, - PalletNftsCollectionDetails, - PalletNftsCollectionMetadata, - PalletNftsCollectionRole, - PalletNftsCollectionSetting, - PalletNftsDestroyWitness, - PalletNftsError, - PalletNftsEvent, - PalletNftsItemConfig, - PalletNftsItemDeposit, - PalletNftsItemDetails, - PalletNftsItemMetadata, - PalletNftsItemMetadataDeposit, - PalletNftsItemSetting, - PalletNftsItemTip, - PalletNftsMintSettings, - PalletNftsMintType, - PalletNftsMintWitness, - PalletNftsPalletAttributes, - PalletNftsPalletFeature, - PalletNftsPendingSwap, - PalletNftsPreSignedAttributes, - PalletNftsPreSignedMint, - PalletNftsPriceDirection, - PalletNftsPriceWithDirection, - PalletParametersCall, - PalletParametersEvent, - PalletPaymentStreamsCall, - PalletPaymentStreamsDynamicRatePaymentStream, - PalletPaymentStreamsError, - PalletPaymentStreamsEvent, - PalletPaymentStreamsFixedRatePaymentStream, - PalletPaymentStreamsHoldReason, - PalletPaymentStreamsProviderLastChargeableInfo, - PalletProofsDealerCall, - PalletProofsDealerError, - PalletProofsDealerEvent, - PalletProofsDealerKeyProof, - PalletProofsDealerProof, - PalletRandomnessCall, - PalletRandomnessEvent, - PalletSessionCall, - PalletSessionError, - PalletSessionEvent, - PalletStorageProvidersBackupStorageProvider, - PalletStorageProvidersBucket, - PalletStorageProvidersCall, - PalletStorageProvidersError, - PalletStorageProvidersEvent, - PalletStorageProvidersHoldReason, - PalletStorageProvidersMainStorageProvider, - PalletStorageProvidersStorageProvider, - PalletStorageProvidersStorageProviderId, - PalletStorageProvidersValueProposition, - PalletSudoCall, - PalletSudoError, - PalletSudoEvent, - PalletTimestampCall, - PalletTransactionPaymentChargeTransactionPayment, - PalletTransactionPaymentEvent, - PalletTransactionPaymentReleases, - PalletXcmCall, - PalletXcmError, - PalletXcmEvent, - PalletXcmQueryStatus, - PalletXcmRemoteLockedFungibleRecord, - PalletXcmVersionMigrationStage, - PolkadotCorePrimitivesInboundDownwardMessage, - PolkadotCorePrimitivesInboundHrmpMessage, - PolkadotCorePrimitivesOutboundHrmpMessage, - PolkadotPrimitivesV7AbridgedHostConfiguration, - PolkadotPrimitivesV7AbridgedHrmpChannel, - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, - PolkadotPrimitivesV7PersistedValidationData, - PolkadotPrimitivesV7UpgradeGoAhead, - PolkadotPrimitivesV7UpgradeRestriction, - ShpFileKeyVerifierFileKeyProof, - ShpFileMetadataFileMetadata, - ShpFileMetadataFingerprint, - ShpTraitsTrieRemoveMutation, - SpArithmeticArithmeticError, - SpConsensusAuraSr25519AppSr25519Public, - SpCoreCryptoKeyTypeId, - SpRuntimeDigest, - SpRuntimeDigestDigestItem, - SpRuntimeDispatchError, - SpRuntimeModuleError, - SpRuntimeMultiSignature, - SpRuntimeTokenError, - SpRuntimeTransactionalError, - SpTrieStorageProof, - SpTrieStorageProofCompactProof, - SpVersionRuntimeVersion, - SpWeightsRuntimeDbWeight, - SpWeightsWeightV2Weight, - StagingParachainInfoCall, - StagingXcmExecutorAssetTransferTransferType, - StagingXcmV3MultiLocation, - StagingXcmV4Asset, - StagingXcmV4AssetAssetFilter, - StagingXcmV4AssetAssetId, - StagingXcmV4AssetAssetInstance, - StagingXcmV4AssetAssets, - StagingXcmV4AssetFungibility, - StagingXcmV4AssetWildAsset, - StagingXcmV4AssetWildFungibility, - StagingXcmV4Instruction, - StagingXcmV4Junction, - StagingXcmV4JunctionNetworkId, - StagingXcmV4Junctions, - StagingXcmV4Location, - StagingXcmV4PalletInfo, - StagingXcmV4QueryResponseInfo, - StagingXcmV4Response, - StagingXcmV4TraitsOutcome, - StagingXcmV4Xcm, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, - StorageHubRuntimeRuntime, - StorageHubRuntimeRuntimeHoldReason, - StorageHubRuntimeSessionKeys, - XcmDoubleEncoded, - XcmV2BodyId, - XcmV2BodyPart, - XcmV2Instruction, - XcmV2Junction, - XcmV2MultiAsset, - XcmV2MultiLocation, - XcmV2MultiassetAssetId, - XcmV2MultiassetAssetInstance, - XcmV2MultiassetFungibility, - XcmV2MultiassetMultiAssetFilter, - XcmV2MultiassetMultiAssets, - XcmV2MultiassetWildFungibility, - XcmV2MultiassetWildMultiAsset, - XcmV2MultilocationJunctions, - XcmV2NetworkId, - XcmV2OriginKind, - XcmV2Response, - XcmV2TraitsError, - XcmV2WeightLimit, - XcmV2Xcm, - XcmV3Instruction, - XcmV3Junction, - XcmV3JunctionBodyId, - XcmV3JunctionBodyPart, - XcmV3JunctionNetworkId, - XcmV3Junctions, - XcmV3MaybeErrorCode, - XcmV3MultiAsset, - XcmV3MultiassetAssetId, - XcmV3MultiassetAssetInstance, - XcmV3MultiassetFungibility, - XcmV3MultiassetMultiAssetFilter, - XcmV3MultiassetMultiAssets, - XcmV3MultiassetWildFungibility, - XcmV3MultiassetWildMultiAsset, - XcmV3OriginKind, - XcmV3PalletInfo, - XcmV3QueryResponseInfo, - XcmV3Response, - XcmV3TraitsError, - XcmV3WeightLimit, - XcmV3Xcm, - XcmVersionedAssetId, - XcmVersionedAssets, - XcmVersionedLocation, - XcmVersionedResponse, - XcmVersionedXcm -} from "@polkadot/types/lookup"; - -declare module "@polkadot/types/types/registry" { - interface InterfaceTypes { - CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; - CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; - CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; - CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; - CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; - CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; - CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - CumulusPalletXcmCall: CumulusPalletXcmCall; - CumulusPalletXcmEvent: CumulusPalletXcmEvent; - CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; - CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; - CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; - CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; - CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; - CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; - CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; - CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; - FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; - FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; - FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; - FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; - FrameSupportDispatchPays: FrameSupportDispatchPays; - FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; - FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; - FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; - FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; - FrameSystemAccountInfo: FrameSystemAccountInfo; - FrameSystemCall: FrameSystemCall; - FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; - FrameSystemError: FrameSystemError; - FrameSystemEvent: FrameSystemEvent; - FrameSystemEventRecord: FrameSystemEventRecord; - FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; - FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; - FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; - FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; - FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; - FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; - FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; - FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; - FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; - FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; - FrameSystemPhase: FrameSystemPhase; - PalletBalancesAccountData: PalletBalancesAccountData; - PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; - PalletBalancesBalanceLock: PalletBalancesBalanceLock; - PalletBalancesCall: PalletBalancesCall; - PalletBalancesError: PalletBalancesError; - PalletBalancesEvent: PalletBalancesEvent; - PalletBalancesIdAmount: PalletBalancesIdAmount; - PalletBalancesReasons: PalletBalancesReasons; - PalletBalancesReserveData: PalletBalancesReserveData; - PalletBucketNftsCall: PalletBucketNftsCall; - PalletBucketNftsError: PalletBucketNftsError; - PalletBucketNftsEvent: PalletBucketNftsEvent; - PalletCollatorSelectionCall: PalletCollatorSelectionCall; - PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; - PalletCollatorSelectionError: PalletCollatorSelectionError; - PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; - PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; - PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; - PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; - PalletFileSystemCall: PalletFileSystemCall; - PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; - PalletFileSystemError: PalletFileSystemError; - PalletFileSystemEvent: PalletFileSystemEvent; - PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; - PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; - PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; - PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; - PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; - PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; - PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; - PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; - PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; - PalletMessageQueueBookState: PalletMessageQueueBookState; - PalletMessageQueueCall: PalletMessageQueueCall; - PalletMessageQueueError: PalletMessageQueueError; - PalletMessageQueueEvent: PalletMessageQueueEvent; - PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; - PalletMessageQueuePage: PalletMessageQueuePage; - PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; - PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; - PalletNftsCall: PalletNftsCall; - PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; - PalletNftsCollectionConfig: PalletNftsCollectionConfig; - PalletNftsCollectionDetails: PalletNftsCollectionDetails; - PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; - PalletNftsCollectionRole: PalletNftsCollectionRole; - PalletNftsCollectionSetting: PalletNftsCollectionSetting; - PalletNftsDestroyWitness: PalletNftsDestroyWitness; - PalletNftsError: PalletNftsError; - PalletNftsEvent: PalletNftsEvent; - PalletNftsItemConfig: PalletNftsItemConfig; - PalletNftsItemDeposit: PalletNftsItemDeposit; - PalletNftsItemDetails: PalletNftsItemDetails; - PalletNftsItemMetadata: PalletNftsItemMetadata; - PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; - PalletNftsItemSetting: PalletNftsItemSetting; - PalletNftsItemTip: PalletNftsItemTip; - PalletNftsMintSettings: PalletNftsMintSettings; - PalletNftsMintType: PalletNftsMintType; - PalletNftsMintWitness: PalletNftsMintWitness; - PalletNftsPalletAttributes: PalletNftsPalletAttributes; - PalletNftsPalletFeature: PalletNftsPalletFeature; - PalletNftsPendingSwap: PalletNftsPendingSwap; - PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; - PalletNftsPreSignedMint: PalletNftsPreSignedMint; - PalletNftsPriceDirection: PalletNftsPriceDirection; - PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; - PalletParametersCall: PalletParametersCall; - PalletParametersEvent: PalletParametersEvent; - PalletPaymentStreamsCall: PalletPaymentStreamsCall; - PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; - PalletPaymentStreamsError: PalletPaymentStreamsError; - PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; - PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; - PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; - PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; - PalletProofsDealerCall: PalletProofsDealerCall; - PalletProofsDealerError: PalletProofsDealerError; - PalletProofsDealerEvent: PalletProofsDealerEvent; - PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; - PalletProofsDealerProof: PalletProofsDealerProof; - PalletRandomnessCall: PalletRandomnessCall; - PalletRandomnessEvent: PalletRandomnessEvent; - PalletSessionCall: PalletSessionCall; - PalletSessionError: PalletSessionError; - PalletSessionEvent: PalletSessionEvent; - PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; - PalletStorageProvidersBucket: PalletStorageProvidersBucket; - PalletStorageProvidersCall: PalletStorageProvidersCall; - PalletStorageProvidersError: PalletStorageProvidersError; - PalletStorageProvidersEvent: PalletStorageProvidersEvent; - PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; - PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; - PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; - PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; - PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; - PalletSudoCall: PalletSudoCall; - PalletSudoError: PalletSudoError; - PalletSudoEvent: PalletSudoEvent; - PalletTimestampCall: PalletTimestampCall; - PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; - PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; - PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; - PalletXcmCall: PalletXcmCall; - PalletXcmError: PalletXcmError; - PalletXcmEvent: PalletXcmEvent; - PalletXcmQueryStatus: PalletXcmQueryStatus; - PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; - PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; - PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; - PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; - PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; - PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; - PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; - PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; - PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; - PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; - PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; - ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; - ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; - ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; - ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; - SpArithmeticArithmeticError: SpArithmeticArithmeticError; - SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; - SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; - SpRuntimeDigest: SpRuntimeDigest; - SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; - SpRuntimeDispatchError: SpRuntimeDispatchError; - SpRuntimeModuleError: SpRuntimeModuleError; - SpRuntimeMultiSignature: SpRuntimeMultiSignature; - SpRuntimeTokenError: SpRuntimeTokenError; - SpRuntimeTransactionalError: SpRuntimeTransactionalError; - SpTrieStorageProof: SpTrieStorageProof; - SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; - SpVersionRuntimeVersion: SpVersionRuntimeVersion; - SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; - SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; - StagingParachainInfoCall: StagingParachainInfoCall; - StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; - StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; - StagingXcmV4Asset: StagingXcmV4Asset; - StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; - StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; - StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; - StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; - StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; - StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; - StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; - StagingXcmV4Instruction: StagingXcmV4Instruction; - StagingXcmV4Junction: StagingXcmV4Junction; - StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; - StagingXcmV4Junctions: StagingXcmV4Junctions; - StagingXcmV4Location: StagingXcmV4Location; - StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; - StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; - StagingXcmV4Response: StagingXcmV4Response; - StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; - StagingXcmV4Xcm: StagingXcmV4Xcm; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; - StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; - StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; - StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; - XcmDoubleEncoded: XcmDoubleEncoded; - XcmV2BodyId: XcmV2BodyId; - XcmV2BodyPart: XcmV2BodyPart; - XcmV2Instruction: XcmV2Instruction; - XcmV2Junction: XcmV2Junction; - XcmV2MultiAsset: XcmV2MultiAsset; - XcmV2MultiLocation: XcmV2MultiLocation; - XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; - XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; - XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; - XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; - XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; - XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; - XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; - XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; - XcmV2NetworkId: XcmV2NetworkId; - XcmV2OriginKind: XcmV2OriginKind; - XcmV2Response: XcmV2Response; - XcmV2TraitsError: XcmV2TraitsError; - XcmV2WeightLimit: XcmV2WeightLimit; - XcmV2Xcm: XcmV2Xcm; - XcmV3Instruction: XcmV3Instruction; - XcmV3Junction: XcmV3Junction; - XcmV3JunctionBodyId: XcmV3JunctionBodyId; - XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; - XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; - XcmV3Junctions: XcmV3Junctions; - XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; - XcmV3MultiAsset: XcmV3MultiAsset; - XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; - XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; - XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; - XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; - XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; - XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; - XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; - XcmV3OriginKind: XcmV3OriginKind; - XcmV3PalletInfo: XcmV3PalletInfo; - XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; - XcmV3Response: XcmV3Response; - XcmV3TraitsError: XcmV3TraitsError; - XcmV3WeightLimit: XcmV3WeightLimit; - XcmV3Xcm: XcmV3Xcm; - XcmVersionedAssetId: XcmVersionedAssetId; - XcmVersionedAssets: XcmVersionedAssets; - XcmVersionedLocation: XcmVersionedLocation; - XcmVersionedResponse: XcmVersionedResponse; - XcmVersionedXcm: XcmVersionedXcm; - } // InterfaceTypes -} // declare module +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/types/types/registry"; + +import type { + CumulusPalletParachainSystemCall, + CumulusPalletParachainSystemError, + CumulusPalletParachainSystemEvent, + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot, + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, + CumulusPalletParachainSystemUnincludedSegmentAncestor, + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate, + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker, + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth, + CumulusPalletXcmCall, + CumulusPalletXcmEvent, + CumulusPalletXcmpQueueCall, + CumulusPalletXcmpQueueError, + CumulusPalletXcmpQueueEvent, + CumulusPalletXcmpQueueOutboundChannelDetails, + CumulusPalletXcmpQueueOutboundState, + CumulusPalletXcmpQueueQueueConfigData, + CumulusPrimitivesCoreAggregateMessageOrigin, + CumulusPrimitivesParachainInherentParachainInherentData, + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim, + FrameMetadataHashExtensionCheckMetadataHash, + FrameMetadataHashExtensionMode, + FrameSupportDispatchDispatchClass, + FrameSupportDispatchDispatchInfo, + FrameSupportDispatchPays, + FrameSupportDispatchPerDispatchClassU32, + FrameSupportDispatchPerDispatchClassWeight, + FrameSupportDispatchPerDispatchClassWeightsPerClass, + FrameSupportMessagesProcessMessageError, + FrameSupportTokensMiscBalanceStatus, + FrameSystemAccountInfo, + FrameSystemCall, + FrameSystemCodeUpgradeAuthorization, + FrameSystemError, + FrameSystemEvent, + FrameSystemEventRecord, + FrameSystemExtensionsCheckGenesis, + FrameSystemExtensionsCheckNonZeroSender, + FrameSystemExtensionsCheckNonce, + FrameSystemExtensionsCheckSpecVersion, + FrameSystemExtensionsCheckTxVersion, + FrameSystemExtensionsCheckWeight, + FrameSystemLastRuntimeUpgradeInfo, + FrameSystemLimitsBlockLength, + FrameSystemLimitsBlockWeights, + FrameSystemLimitsWeightsPerClass, + FrameSystemPhase, + PalletBalancesAccountData, + PalletBalancesAdjustmentDirection, + PalletBalancesBalanceLock, + PalletBalancesCall, + PalletBalancesError, + PalletBalancesEvent, + PalletBalancesIdAmount, + PalletBalancesReasons, + PalletBalancesReserveData, + PalletBucketNftsCall, + PalletBucketNftsError, + PalletBucketNftsEvent, + PalletCollatorSelectionCall, + PalletCollatorSelectionCandidateInfo, + PalletCollatorSelectionError, + PalletCollatorSelectionEvent, + PalletFileSystemAcceptedStorageRequestParameters, + PalletFileSystemBatchResponses, + PalletFileSystemBucketMoveRequestResponse, + PalletFileSystemCall, + PalletFileSystemEitherAccountIdOrMspId, + PalletFileSystemError, + PalletFileSystemEvent, + PalletFileSystemMoveBucketRequestMetadata, + PalletFileSystemMspAcceptedBatchStorageRequests, + PalletFileSystemMspFailedBatchStorageRequests, + PalletFileSystemMspRejectedBatchStorageRequests, + PalletFileSystemMspRespondStorageRequestsResult, + PalletFileSystemMspStorageRequestResponse, + PalletFileSystemRejectedStorageRequestReason, + PalletFileSystemStorageRequestBspsMetadata, + PalletFileSystemStorageRequestMetadata, + PalletMessageQueueBookState, + PalletMessageQueueCall, + PalletMessageQueueError, + PalletMessageQueueEvent, + PalletMessageQueueNeighbours, + PalletMessageQueuePage, + PalletNftsAttributeDeposit, + PalletNftsAttributeNamespace, + PalletNftsCall, + PalletNftsCancelAttributesApprovalWitness, + PalletNftsCollectionConfig, + PalletNftsCollectionDetails, + PalletNftsCollectionMetadata, + PalletNftsCollectionRole, + PalletNftsCollectionSetting, + PalletNftsDestroyWitness, + PalletNftsError, + PalletNftsEvent, + PalletNftsItemConfig, + PalletNftsItemDeposit, + PalletNftsItemDetails, + PalletNftsItemMetadata, + PalletNftsItemMetadataDeposit, + PalletNftsItemSetting, + PalletNftsItemTip, + PalletNftsMintSettings, + PalletNftsMintType, + PalletNftsMintWitness, + PalletNftsPalletAttributes, + PalletNftsPalletFeature, + PalletNftsPendingSwap, + PalletNftsPreSignedAttributes, + PalletNftsPreSignedMint, + PalletNftsPriceDirection, + PalletNftsPriceWithDirection, + PalletParametersCall, + PalletParametersEvent, + PalletPaymentStreamsCall, + PalletPaymentStreamsDynamicRatePaymentStream, + PalletPaymentStreamsError, + PalletPaymentStreamsEvent, + PalletPaymentStreamsFixedRatePaymentStream, + PalletPaymentStreamsHoldReason, + PalletPaymentStreamsProviderLastChargeableInfo, + PalletProofsDealerCall, + PalletProofsDealerError, + PalletProofsDealerEvent, + PalletProofsDealerKeyProof, + PalletProofsDealerProof, + PalletRandomnessCall, + PalletRandomnessEvent, + PalletSessionCall, + PalletSessionError, + PalletSessionEvent, + PalletStorageProvidersBackupStorageProvider, + PalletStorageProvidersBucket, + PalletStorageProvidersCall, + PalletStorageProvidersError, + PalletStorageProvidersEvent, + PalletStorageProvidersHoldReason, + PalletStorageProvidersMainStorageProvider, + PalletStorageProvidersStorageProvider, + PalletStorageProvidersStorageProviderId, + PalletStorageProvidersValueProposition, + PalletSudoCall, + PalletSudoError, + PalletSudoEvent, + PalletTimestampCall, + PalletTransactionPaymentChargeTransactionPayment, + PalletTransactionPaymentEvent, + PalletTransactionPaymentReleases, + PalletXcmCall, + PalletXcmError, + PalletXcmEvent, + PalletXcmQueryStatus, + PalletXcmRemoteLockedFungibleRecord, + PalletXcmVersionMigrationStage, + PolkadotCorePrimitivesInboundDownwardMessage, + PolkadotCorePrimitivesInboundHrmpMessage, + PolkadotCorePrimitivesOutboundHrmpMessage, + PolkadotPrimitivesV7AbridgedHostConfiguration, + PolkadotPrimitivesV7AbridgedHrmpChannel, + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams, + PolkadotPrimitivesV7PersistedValidationData, + PolkadotPrimitivesV7UpgradeGoAhead, + PolkadotPrimitivesV7UpgradeRestriction, + ShpFileKeyVerifierFileKeyProof, + ShpFileMetadataFileMetadata, + ShpFileMetadataFingerprint, + ShpTraitsTrieRemoveMutation, + SpArithmeticArithmeticError, + SpConsensusAuraSr25519AppSr25519Public, + SpCoreCryptoKeyTypeId, + SpRuntimeDigest, + SpRuntimeDigestDigestItem, + SpRuntimeDispatchError, + SpRuntimeModuleError, + SpRuntimeMultiSignature, + SpRuntimeTokenError, + SpRuntimeTransactionalError, + SpTrieStorageProof, + SpTrieStorageProofCompactProof, + SpVersionRuntimeVersion, + SpWeightsRuntimeDbWeight, + SpWeightsWeightV2Weight, + StagingParachainInfoCall, + StagingXcmExecutorAssetTransferTransferType, + StagingXcmV3MultiLocation, + StagingXcmV4Asset, + StagingXcmV4AssetAssetFilter, + StagingXcmV4AssetAssetId, + StagingXcmV4AssetAssetInstance, + StagingXcmV4AssetAssets, + StagingXcmV4AssetFungibility, + StagingXcmV4AssetWildAsset, + StagingXcmV4AssetWildFungibility, + StagingXcmV4Instruction, + StagingXcmV4Junction, + StagingXcmV4JunctionNetworkId, + StagingXcmV4Junctions, + StagingXcmV4Location, + StagingXcmV4PalletInfo, + StagingXcmV4QueryResponseInfo, + StagingXcmV4Response, + StagingXcmV4TraitsOutcome, + StagingXcmV4Xcm, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey, + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue, + StorageHubRuntimeRuntime, + StorageHubRuntimeRuntimeHoldReason, + StorageHubRuntimeSessionKeys, + XcmDoubleEncoded, + XcmV2BodyId, + XcmV2BodyPart, + XcmV2Instruction, + XcmV2Junction, + XcmV2MultiAsset, + XcmV2MultiLocation, + XcmV2MultiassetAssetId, + XcmV2MultiassetAssetInstance, + XcmV2MultiassetFungibility, + XcmV2MultiassetMultiAssetFilter, + XcmV2MultiassetMultiAssets, + XcmV2MultiassetWildFungibility, + XcmV2MultiassetWildMultiAsset, + XcmV2MultilocationJunctions, + XcmV2NetworkId, + XcmV2OriginKind, + XcmV2Response, + XcmV2TraitsError, + XcmV2WeightLimit, + XcmV2Xcm, + XcmV3Instruction, + XcmV3Junction, + XcmV3JunctionBodyId, + XcmV3JunctionBodyPart, + XcmV3JunctionNetworkId, + XcmV3Junctions, + XcmV3MaybeErrorCode, + XcmV3MultiAsset, + XcmV3MultiassetAssetId, + XcmV3MultiassetAssetInstance, + XcmV3MultiassetFungibility, + XcmV3MultiassetMultiAssetFilter, + XcmV3MultiassetMultiAssets, + XcmV3MultiassetWildFungibility, + XcmV3MultiassetWildMultiAsset, + XcmV3OriginKind, + XcmV3PalletInfo, + XcmV3QueryResponseInfo, + XcmV3Response, + XcmV3TraitsError, + XcmV3WeightLimit, + XcmV3Xcm, + XcmVersionedAssetId, + XcmVersionedAssets, + XcmVersionedLocation, + XcmVersionedResponse, + XcmVersionedXcm +} from "@polkadot/types/lookup"; + +declare module "@polkadot/types/types/registry" { + interface InterfaceTypes { + CumulusPalletParachainSystemCall: CumulusPalletParachainSystemCall; + CumulusPalletParachainSystemError: CumulusPalletParachainSystemError; + CumulusPalletParachainSystemEvent: CumulusPalletParachainSystemEvent; + CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot: CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot; + CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + CumulusPalletParachainSystemUnincludedSegmentAncestor: CumulusPalletParachainSystemUnincludedSegmentAncestor; + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate: CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate; + CumulusPalletParachainSystemUnincludedSegmentSegmentTracker: CumulusPalletParachainSystemUnincludedSegmentSegmentTracker; + CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + CumulusPalletXcmCall: CumulusPalletXcmCall; + CumulusPalletXcmEvent: CumulusPalletXcmEvent; + CumulusPalletXcmpQueueCall: CumulusPalletXcmpQueueCall; + CumulusPalletXcmpQueueError: CumulusPalletXcmpQueueError; + CumulusPalletXcmpQueueEvent: CumulusPalletXcmpQueueEvent; + CumulusPalletXcmpQueueOutboundChannelDetails: CumulusPalletXcmpQueueOutboundChannelDetails; + CumulusPalletXcmpQueueOutboundState: CumulusPalletXcmpQueueOutboundState; + CumulusPalletXcmpQueueQueueConfigData: CumulusPalletXcmpQueueQueueConfigData; + CumulusPrimitivesCoreAggregateMessageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + CumulusPrimitivesParachainInherentParachainInherentData: CumulusPrimitivesParachainInherentParachainInherentData; + CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim: CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim; + FrameMetadataHashExtensionCheckMetadataHash: FrameMetadataHashExtensionCheckMetadataHash; + FrameMetadataHashExtensionMode: FrameMetadataHashExtensionMode; + FrameSupportDispatchDispatchClass: FrameSupportDispatchDispatchClass; + FrameSupportDispatchDispatchInfo: FrameSupportDispatchDispatchInfo; + FrameSupportDispatchPays: FrameSupportDispatchPays; + FrameSupportDispatchPerDispatchClassU32: FrameSupportDispatchPerDispatchClassU32; + FrameSupportDispatchPerDispatchClassWeight: FrameSupportDispatchPerDispatchClassWeight; + FrameSupportDispatchPerDispatchClassWeightsPerClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + FrameSupportMessagesProcessMessageError: FrameSupportMessagesProcessMessageError; + FrameSupportTokensMiscBalanceStatus: FrameSupportTokensMiscBalanceStatus; + FrameSystemAccountInfo: FrameSystemAccountInfo; + FrameSystemCall: FrameSystemCall; + FrameSystemCodeUpgradeAuthorization: FrameSystemCodeUpgradeAuthorization; + FrameSystemError: FrameSystemError; + FrameSystemEvent: FrameSystemEvent; + FrameSystemEventRecord: FrameSystemEventRecord; + FrameSystemExtensionsCheckGenesis: FrameSystemExtensionsCheckGenesis; + FrameSystemExtensionsCheckNonZeroSender: FrameSystemExtensionsCheckNonZeroSender; + FrameSystemExtensionsCheckNonce: FrameSystemExtensionsCheckNonce; + FrameSystemExtensionsCheckSpecVersion: FrameSystemExtensionsCheckSpecVersion; + FrameSystemExtensionsCheckTxVersion: FrameSystemExtensionsCheckTxVersion; + FrameSystemExtensionsCheckWeight: FrameSystemExtensionsCheckWeight; + FrameSystemLastRuntimeUpgradeInfo: FrameSystemLastRuntimeUpgradeInfo; + FrameSystemLimitsBlockLength: FrameSystemLimitsBlockLength; + FrameSystemLimitsBlockWeights: FrameSystemLimitsBlockWeights; + FrameSystemLimitsWeightsPerClass: FrameSystemLimitsWeightsPerClass; + FrameSystemPhase: FrameSystemPhase; + PalletBalancesAccountData: PalletBalancesAccountData; + PalletBalancesAdjustmentDirection: PalletBalancesAdjustmentDirection; + PalletBalancesBalanceLock: PalletBalancesBalanceLock; + PalletBalancesCall: PalletBalancesCall; + PalletBalancesError: PalletBalancesError; + PalletBalancesEvent: PalletBalancesEvent; + PalletBalancesIdAmount: PalletBalancesIdAmount; + PalletBalancesReasons: PalletBalancesReasons; + PalletBalancesReserveData: PalletBalancesReserveData; + PalletBucketNftsCall: PalletBucketNftsCall; + PalletBucketNftsError: PalletBucketNftsError; + PalletBucketNftsEvent: PalletBucketNftsEvent; + PalletCollatorSelectionCall: PalletCollatorSelectionCall; + PalletCollatorSelectionCandidateInfo: PalletCollatorSelectionCandidateInfo; + PalletCollatorSelectionError: PalletCollatorSelectionError; + PalletCollatorSelectionEvent: PalletCollatorSelectionEvent; + PalletFileSystemAcceptedStorageRequestParameters: PalletFileSystemAcceptedStorageRequestParameters; + PalletFileSystemBatchResponses: PalletFileSystemBatchResponses; + PalletFileSystemBucketMoveRequestResponse: PalletFileSystemBucketMoveRequestResponse; + PalletFileSystemCall: PalletFileSystemCall; + PalletFileSystemEitherAccountIdOrMspId: PalletFileSystemEitherAccountIdOrMspId; + PalletFileSystemError: PalletFileSystemError; + PalletFileSystemEvent: PalletFileSystemEvent; + PalletFileSystemMoveBucketRequestMetadata: PalletFileSystemMoveBucketRequestMetadata; + PalletFileSystemMspAcceptedBatchStorageRequests: PalletFileSystemMspAcceptedBatchStorageRequests; + PalletFileSystemMspFailedBatchStorageRequests: PalletFileSystemMspFailedBatchStorageRequests; + PalletFileSystemMspRejectedBatchStorageRequests: PalletFileSystemMspRejectedBatchStorageRequests; + PalletFileSystemMspRespondStorageRequestsResult: PalletFileSystemMspRespondStorageRequestsResult; + PalletFileSystemMspStorageRequestResponse: PalletFileSystemMspStorageRequestResponse; + PalletFileSystemRejectedStorageRequestReason: PalletFileSystemRejectedStorageRequestReason; + PalletFileSystemStorageRequestBspsMetadata: PalletFileSystemStorageRequestBspsMetadata; + PalletFileSystemStorageRequestMetadata: PalletFileSystemStorageRequestMetadata; + PalletMessageQueueBookState: PalletMessageQueueBookState; + PalletMessageQueueCall: PalletMessageQueueCall; + PalletMessageQueueError: PalletMessageQueueError; + PalletMessageQueueEvent: PalletMessageQueueEvent; + PalletMessageQueueNeighbours: PalletMessageQueueNeighbours; + PalletMessageQueuePage: PalletMessageQueuePage; + PalletNftsAttributeDeposit: PalletNftsAttributeDeposit; + PalletNftsAttributeNamespace: PalletNftsAttributeNamespace; + PalletNftsCall: PalletNftsCall; + PalletNftsCancelAttributesApprovalWitness: PalletNftsCancelAttributesApprovalWitness; + PalletNftsCollectionConfig: PalletNftsCollectionConfig; + PalletNftsCollectionDetails: PalletNftsCollectionDetails; + PalletNftsCollectionMetadata: PalletNftsCollectionMetadata; + PalletNftsCollectionRole: PalletNftsCollectionRole; + PalletNftsCollectionSetting: PalletNftsCollectionSetting; + PalletNftsDestroyWitness: PalletNftsDestroyWitness; + PalletNftsError: PalletNftsError; + PalletNftsEvent: PalletNftsEvent; + PalletNftsItemConfig: PalletNftsItemConfig; + PalletNftsItemDeposit: PalletNftsItemDeposit; + PalletNftsItemDetails: PalletNftsItemDetails; + PalletNftsItemMetadata: PalletNftsItemMetadata; + PalletNftsItemMetadataDeposit: PalletNftsItemMetadataDeposit; + PalletNftsItemSetting: PalletNftsItemSetting; + PalletNftsItemTip: PalletNftsItemTip; + PalletNftsMintSettings: PalletNftsMintSettings; + PalletNftsMintType: PalletNftsMintType; + PalletNftsMintWitness: PalletNftsMintWitness; + PalletNftsPalletAttributes: PalletNftsPalletAttributes; + PalletNftsPalletFeature: PalletNftsPalletFeature; + PalletNftsPendingSwap: PalletNftsPendingSwap; + PalletNftsPreSignedAttributes: PalletNftsPreSignedAttributes; + PalletNftsPreSignedMint: PalletNftsPreSignedMint; + PalletNftsPriceDirection: PalletNftsPriceDirection; + PalletNftsPriceWithDirection: PalletNftsPriceWithDirection; + PalletParametersCall: PalletParametersCall; + PalletParametersEvent: PalletParametersEvent; + PalletPaymentStreamsCall: PalletPaymentStreamsCall; + PalletPaymentStreamsDynamicRatePaymentStream: PalletPaymentStreamsDynamicRatePaymentStream; + PalletPaymentStreamsError: PalletPaymentStreamsError; + PalletPaymentStreamsEvent: PalletPaymentStreamsEvent; + PalletPaymentStreamsFixedRatePaymentStream: PalletPaymentStreamsFixedRatePaymentStream; + PalletPaymentStreamsHoldReason: PalletPaymentStreamsHoldReason; + PalletPaymentStreamsProviderLastChargeableInfo: PalletPaymentStreamsProviderLastChargeableInfo; + PalletProofsDealerCall: PalletProofsDealerCall; + PalletProofsDealerError: PalletProofsDealerError; + PalletProofsDealerEvent: PalletProofsDealerEvent; + PalletProofsDealerKeyProof: PalletProofsDealerKeyProof; + PalletProofsDealerProof: PalletProofsDealerProof; + PalletRandomnessCall: PalletRandomnessCall; + PalletRandomnessEvent: PalletRandomnessEvent; + PalletSessionCall: PalletSessionCall; + PalletSessionError: PalletSessionError; + PalletSessionEvent: PalletSessionEvent; + PalletStorageProvidersBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; + PalletStorageProvidersBucket: PalletStorageProvidersBucket; + PalletStorageProvidersCall: PalletStorageProvidersCall; + PalletStorageProvidersError: PalletStorageProvidersError; + PalletStorageProvidersEvent: PalletStorageProvidersEvent; + PalletStorageProvidersHoldReason: PalletStorageProvidersHoldReason; + PalletStorageProvidersMainStorageProvider: PalletStorageProvidersMainStorageProvider; + PalletStorageProvidersStorageProvider: PalletStorageProvidersStorageProvider; + PalletStorageProvidersStorageProviderId: PalletStorageProvidersStorageProviderId; + PalletStorageProvidersValueProposition: PalletStorageProvidersValueProposition; + PalletSudoCall: PalletSudoCall; + PalletSudoError: PalletSudoError; + PalletSudoEvent: PalletSudoEvent; + PalletTimestampCall: PalletTimestampCall; + PalletTransactionPaymentChargeTransactionPayment: PalletTransactionPaymentChargeTransactionPayment; + PalletTransactionPaymentEvent: PalletTransactionPaymentEvent; + PalletTransactionPaymentReleases: PalletTransactionPaymentReleases; + PalletXcmCall: PalletXcmCall; + PalletXcmError: PalletXcmError; + PalletXcmEvent: PalletXcmEvent; + PalletXcmQueryStatus: PalletXcmQueryStatus; + PalletXcmRemoteLockedFungibleRecord: PalletXcmRemoteLockedFungibleRecord; + PalletXcmVersionMigrationStage: PalletXcmVersionMigrationStage; + PolkadotCorePrimitivesInboundDownwardMessage: PolkadotCorePrimitivesInboundDownwardMessage; + PolkadotCorePrimitivesInboundHrmpMessage: PolkadotCorePrimitivesInboundHrmpMessage; + PolkadotCorePrimitivesOutboundHrmpMessage: PolkadotCorePrimitivesOutboundHrmpMessage; + PolkadotPrimitivesV7AbridgedHostConfiguration: PolkadotPrimitivesV7AbridgedHostConfiguration; + PolkadotPrimitivesV7AbridgedHrmpChannel: PolkadotPrimitivesV7AbridgedHrmpChannel; + PolkadotPrimitivesV7AsyncBackingAsyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + PolkadotPrimitivesV7PersistedValidationData: PolkadotPrimitivesV7PersistedValidationData; + PolkadotPrimitivesV7UpgradeGoAhead: PolkadotPrimitivesV7UpgradeGoAhead; + PolkadotPrimitivesV7UpgradeRestriction: PolkadotPrimitivesV7UpgradeRestriction; + ShpFileKeyVerifierFileKeyProof: ShpFileKeyVerifierFileKeyProof; + ShpFileMetadataFileMetadata: ShpFileMetadataFileMetadata; + ShpFileMetadataFingerprint: ShpFileMetadataFingerprint; + ShpTraitsTrieRemoveMutation: ShpTraitsTrieRemoveMutation; + SpArithmeticArithmeticError: SpArithmeticArithmeticError; + SpConsensusAuraSr25519AppSr25519Public: SpConsensusAuraSr25519AppSr25519Public; + SpCoreCryptoKeyTypeId: SpCoreCryptoKeyTypeId; + SpRuntimeDigest: SpRuntimeDigest; + SpRuntimeDigestDigestItem: SpRuntimeDigestDigestItem; + SpRuntimeDispatchError: SpRuntimeDispatchError; + SpRuntimeModuleError: SpRuntimeModuleError; + SpRuntimeMultiSignature: SpRuntimeMultiSignature; + SpRuntimeTokenError: SpRuntimeTokenError; + SpRuntimeTransactionalError: SpRuntimeTransactionalError; + SpTrieStorageProof: SpTrieStorageProof; + SpTrieStorageProofCompactProof: SpTrieStorageProofCompactProof; + SpVersionRuntimeVersion: SpVersionRuntimeVersion; + SpWeightsRuntimeDbWeight: SpWeightsRuntimeDbWeight; + SpWeightsWeightV2Weight: SpWeightsWeightV2Weight; + StagingParachainInfoCall: StagingParachainInfoCall; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; + StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; + StagingXcmV4Asset: StagingXcmV4Asset; + StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; + StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; + StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; + StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; + StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; + StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; + StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; + StagingXcmV4Instruction: StagingXcmV4Instruction; + StagingXcmV4Junction: StagingXcmV4Junction; + StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; + StagingXcmV4Junctions: StagingXcmV4Junctions; + StagingXcmV4Location: StagingXcmV4Location; + StagingXcmV4PalletInfo: StagingXcmV4PalletInfo; + StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; + StagingXcmV4Response: StagingXcmV4Response; + StagingXcmV4TraitsOutcome: StagingXcmV4TraitsOutcome; + StagingXcmV4Xcm: StagingXcmV4Xcm; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize; + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue; + StorageHubRuntimeRuntime: StorageHubRuntimeRuntime; + StorageHubRuntimeRuntimeHoldReason: StorageHubRuntimeRuntimeHoldReason; + StorageHubRuntimeSessionKeys: StorageHubRuntimeSessionKeys; + XcmDoubleEncoded: XcmDoubleEncoded; + XcmV2BodyId: XcmV2BodyId; + XcmV2BodyPart: XcmV2BodyPart; + XcmV2Instruction: XcmV2Instruction; + XcmV2Junction: XcmV2Junction; + XcmV2MultiAsset: XcmV2MultiAsset; + XcmV2MultiLocation: XcmV2MultiLocation; + XcmV2MultiassetAssetId: XcmV2MultiassetAssetId; + XcmV2MultiassetAssetInstance: XcmV2MultiassetAssetInstance; + XcmV2MultiassetFungibility: XcmV2MultiassetFungibility; + XcmV2MultiassetMultiAssetFilter: XcmV2MultiassetMultiAssetFilter; + XcmV2MultiassetMultiAssets: XcmV2MultiassetMultiAssets; + XcmV2MultiassetWildFungibility: XcmV2MultiassetWildFungibility; + XcmV2MultiassetWildMultiAsset: XcmV2MultiassetWildMultiAsset; + XcmV2MultilocationJunctions: XcmV2MultilocationJunctions; + XcmV2NetworkId: XcmV2NetworkId; + XcmV2OriginKind: XcmV2OriginKind; + XcmV2Response: XcmV2Response; + XcmV2TraitsError: XcmV2TraitsError; + XcmV2WeightLimit: XcmV2WeightLimit; + XcmV2Xcm: XcmV2Xcm; + XcmV3Instruction: XcmV3Instruction; + XcmV3Junction: XcmV3Junction; + XcmV3JunctionBodyId: XcmV3JunctionBodyId; + XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; + XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; + XcmV3Junctions: XcmV3Junctions; + XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; + XcmV3MultiAsset: XcmV3MultiAsset; + XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; + XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; + XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; + XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; + XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; + XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; + XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; + XcmV3PalletInfo: XcmV3PalletInfo; + XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; + XcmV3Response: XcmV3Response; + XcmV3TraitsError: XcmV3TraitsError; + XcmV3WeightLimit: XcmV3WeightLimit; + XcmV3Xcm: XcmV3Xcm; + XcmVersionedAssetId: XcmVersionedAssetId; + XcmVersionedAssets: XcmVersionedAssets; + XcmVersionedLocation: XcmVersionedLocation; + XcmVersionedResponse: XcmVersionedResponse; + XcmVersionedXcm: XcmVersionedXcm; + } // InterfaceTypes +} // declare module diff --git a/api-augment/src/interfaces/storagehubclient/types.ts b/api-augment/src/interfaces/storagehubclient/types.ts index 2d4a108ec..596ce1587 100644 --- a/api-augment/src/interfaces/storagehubclient/types.ts +++ b/api-augment/src/interfaces/storagehubclient/types.ts @@ -1,231 +1,231 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; -import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; - -/** @name BackupStorageProvider */ -export interface BackupStorageProvider extends Struct { - readonly capacity: StorageData; - readonly data_used: StorageData; - readonly multiaddresses: Bytes; - readonly root: MerklePatriciaRoot; - readonly last_capacity_change: BlockNumber; - readonly owner_account: AccountId; - readonly payment_account: AccountId; -} - -/** @name BackupStorageProviderId */ -export interface BackupStorageProviderId extends H256 {} - -/** @name ChunkId */ -export interface ChunkId extends u64 {} - -/** @name FileMetadata */ -export interface FileMetadata extends Struct { - readonly owner: Bytes; - readonly bucket_id: Bytes; - readonly location: Bytes; - readonly file_size: u64; - readonly fingerprint: U8aFixed; -} - -/** @name GetBspInfoError */ -export interface GetBspInfoError extends Enum { - readonly isBspNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "BspNotRegistered" | "InternalApiError"; -} - -/** @name GetChallengePeriodError */ -export interface GetChallengePeriodError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name GetChallengeSeedError */ -export interface GetChallengeSeedError extends Enum { - readonly isTickBeyondLastSeedStored: boolean; - readonly isTickIsInTheFuture: boolean; - readonly isInternalApiError: boolean; - readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; -} - -/** @name GetCheckpointChallengesError */ -export interface GetCheckpointChallengesError extends Enum { - readonly isTickGreaterThanLastCheckpointTick: boolean; - readonly isNoCheckpointChallengesInTick: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "TickGreaterThanLastCheckpointTick" - | "NoCheckpointChallengesInTick" - | "InternalApiError"; -} - -/** @name GetFileFromFileStorageResult */ -export interface GetFileFromFileStorageResult extends Enum { - readonly isFileNotFound: boolean; - readonly isFileFound: boolean; - readonly asFileFound: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly isFileFoundWithInconsistency: boolean; - readonly asFileFoundWithInconsistency: FileMetadata; - readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; -} - -/** @name GetLastTickProviderSubmittedProofError */ -export interface GetLastTickProviderSubmittedProofError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNeverSubmittedProof: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; -} - -/** @name GetNextDeadlineTickError */ -export interface GetNextDeadlineTickError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderNotInitialised: boolean; - readonly isArithmeticOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderNotInitialised" - | "ArithmeticOverflow" - | "InternalApiError"; -} - -/** @name GetUsersWithDebtOverThresholdError */ -export interface GetUsersWithDebtOverThresholdError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isProviderWithoutPaymentStreams: boolean; - readonly isAmountToChargeOverflow: boolean; - readonly isDebtOverflow: boolean; - readonly isInternalApiError: boolean; - readonly type: - | "ProviderNotRegistered" - | "ProviderWithoutPaymentStreams" - | "AmountToChargeOverflow" - | "DebtOverflow" - | "InternalApiError"; -} - -/** @name IncompleteFileStatus */ -export interface IncompleteFileStatus extends Struct { - readonly file_metadata: FileMetadata; - readonly stored_chunks: u64; - readonly total_chunks: u64; -} - -/** @name Key */ -export interface Key extends H256 {} - -/** @name MainStorageProviderId */ -export interface MainStorageProviderId extends H256 {} - -/** @name MerklePatriciaRoot */ -export interface MerklePatriciaRoot extends H256 {} - -/** @name ProviderId */ -export interface ProviderId extends H256 {} - -/** @name QueryAvailableStorageCapacityError */ -export interface QueryAvailableStorageCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name QueryBspConfirmChunksToProveForFileError */ -export interface QueryBspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} - -/** @name QueryConfirmChunksToProveForFileError */ -export interface QueryConfirmChunksToProveForFileError extends Enum { - readonly isChallengedChunkToChunkIdError: boolean; - readonly type: "ChallengedChunkToChunkIdError"; -} - -/** @name QueryEarliestChangeCapacityBlockError */ -export interface QueryEarliestChangeCapacityBlockError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name QueryFileEarliestVolunteerBlockError */ -export interface QueryFileEarliestVolunteerBlockError extends Enum { - readonly isFailedToEncodeFingerprint: boolean; - readonly isFailedToEncodeBsp: boolean; - readonly isThresholdArithmeticError: boolean; - readonly isStorageRequestNotFound: boolean; - readonly isInternalError: boolean; - readonly type: - | "FailedToEncodeFingerprint" - | "FailedToEncodeBsp" - | "ThresholdArithmeticError" - | "StorageRequestNotFound" - | "InternalError"; -} - -/** @name QueryMspConfirmChunksToProveForFileError */ -export interface QueryMspConfirmChunksToProveForFileError extends Enum { - readonly isStorageRequestNotFound: boolean; - readonly isConfirmChunks: boolean; - readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; - readonly isInternalError: boolean; - readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; -} - -/** @name QueryMspIdOfBucketIdError */ -export interface QueryMspIdOfBucketIdError extends Enum { - readonly isBucketNotFound: boolean; - readonly isInternalApiError: boolean; - readonly type: "BucketNotFound" | "InternalApiError"; -} - -/** @name QueryStorageProviderCapacityError */ -export interface QueryStorageProviderCapacityError extends Enum { - readonly isProviderNotRegistered: boolean; - readonly isInternalApiError: boolean; - readonly type: "ProviderNotRegistered" | "InternalApiError"; -} - -/** @name RandomnessOutput */ -export interface RandomnessOutput extends H256 {} - -/** @name SaveFileToDisk */ -export interface SaveFileToDisk extends Enum { - readonly isFileNotFound: boolean; - readonly isSuccess: boolean; - readonly asSuccess: FileMetadata; - readonly isIncompleteFile: boolean; - readonly asIncompleteFile: IncompleteFileStatus; - readonly type: "FileNotFound" | "Success" | "IncompleteFile"; -} - -/** @name StorageData */ -export interface StorageData extends u32 {} - -/** @name StorageDataUnit */ -export interface StorageDataUnit extends u32 {} - -/** @name StorageProviderId */ -export interface StorageProviderId extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: BackupStorageProviderId; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: MainStorageProviderId; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; -} - -/** @name TrieRemoveMutation */ -export interface TrieRemoveMutation extends Struct {} - -export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Struct, U8aFixed, u32, u64 } from "@polkadot/types-codec"; +import type { AccountId, BlockNumber, H256 } from "@polkadot/types/interfaces/runtime"; + +/** @name BackupStorageProvider */ +export interface BackupStorageProvider extends Struct { + readonly capacity: StorageData; + readonly data_used: StorageData; + readonly multiaddresses: Bytes; + readonly root: MerklePatriciaRoot; + readonly last_capacity_change: BlockNumber; + readonly owner_account: AccountId; + readonly payment_account: AccountId; +} + +/** @name BackupStorageProviderId */ +export interface BackupStorageProviderId extends H256 {} + +/** @name ChunkId */ +export interface ChunkId extends u64 {} + +/** @name FileMetadata */ +export interface FileMetadata extends Struct { + readonly owner: Bytes; + readonly bucket_id: Bytes; + readonly location: Bytes; + readonly file_size: u64; + readonly fingerprint: U8aFixed; +} + +/** @name GetBspInfoError */ +export interface GetBspInfoError extends Enum { + readonly isBspNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "BspNotRegistered" | "InternalApiError"; +} + +/** @name GetChallengePeriodError */ +export interface GetChallengePeriodError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name GetChallengeSeedError */ +export interface GetChallengeSeedError extends Enum { + readonly isTickBeyondLastSeedStored: boolean; + readonly isTickIsInTheFuture: boolean; + readonly isInternalApiError: boolean; + readonly type: "TickBeyondLastSeedStored" | "TickIsInTheFuture" | "InternalApiError"; +} + +/** @name GetCheckpointChallengesError */ +export interface GetCheckpointChallengesError extends Enum { + readonly isTickGreaterThanLastCheckpointTick: boolean; + readonly isNoCheckpointChallengesInTick: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "TickGreaterThanLastCheckpointTick" + | "NoCheckpointChallengesInTick" + | "InternalApiError"; +} + +/** @name GetFileFromFileStorageResult */ +export interface GetFileFromFileStorageResult extends Enum { + readonly isFileNotFound: boolean; + readonly isFileFound: boolean; + readonly asFileFound: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly isFileFoundWithInconsistency: boolean; + readonly asFileFoundWithInconsistency: FileMetadata; + readonly type: "FileNotFound" | "FileFound" | "IncompleteFile" | "FileFoundWithInconsistency"; +} + +/** @name GetLastTickProviderSubmittedProofError */ +export interface GetLastTickProviderSubmittedProofError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNeverSubmittedProof: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "ProviderNeverSubmittedProof" | "InternalApiError"; +} + +/** @name GetNextDeadlineTickError */ +export interface GetNextDeadlineTickError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderNotInitialised: boolean; + readonly isArithmeticOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderNotInitialised" + | "ArithmeticOverflow" + | "InternalApiError"; +} + +/** @name GetUsersWithDebtOverThresholdError */ +export interface GetUsersWithDebtOverThresholdError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isProviderWithoutPaymentStreams: boolean; + readonly isAmountToChargeOverflow: boolean; + readonly isDebtOverflow: boolean; + readonly isInternalApiError: boolean; + readonly type: + | "ProviderNotRegistered" + | "ProviderWithoutPaymentStreams" + | "AmountToChargeOverflow" + | "DebtOverflow" + | "InternalApiError"; +} + +/** @name IncompleteFileStatus */ +export interface IncompleteFileStatus extends Struct { + readonly file_metadata: FileMetadata; + readonly stored_chunks: u64; + readonly total_chunks: u64; +} + +/** @name Key */ +export interface Key extends H256 {} + +/** @name MainStorageProviderId */ +export interface MainStorageProviderId extends H256 {} + +/** @name MerklePatriciaRoot */ +export interface MerklePatriciaRoot extends H256 {} + +/** @name ProviderId */ +export interface ProviderId extends H256 {} + +/** @name QueryAvailableStorageCapacityError */ +export interface QueryAvailableStorageCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name QueryBspConfirmChunksToProveForFileError */ +export interface QueryBspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} + +/** @name QueryConfirmChunksToProveForFileError */ +export interface QueryConfirmChunksToProveForFileError extends Enum { + readonly isChallengedChunkToChunkIdError: boolean; + readonly type: "ChallengedChunkToChunkIdError"; +} + +/** @name QueryEarliestChangeCapacityBlockError */ +export interface QueryEarliestChangeCapacityBlockError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name QueryFileEarliestVolunteerBlockError */ +export interface QueryFileEarliestVolunteerBlockError extends Enum { + readonly isFailedToEncodeFingerprint: boolean; + readonly isFailedToEncodeBsp: boolean; + readonly isThresholdArithmeticError: boolean; + readonly isStorageRequestNotFound: boolean; + readonly isInternalError: boolean; + readonly type: + | "FailedToEncodeFingerprint" + | "FailedToEncodeBsp" + | "ThresholdArithmeticError" + | "StorageRequestNotFound" + | "InternalError"; +} + +/** @name QueryMspConfirmChunksToProveForFileError */ +export interface QueryMspConfirmChunksToProveForFileError extends Enum { + readonly isStorageRequestNotFound: boolean; + readonly isConfirmChunks: boolean; + readonly asConfirmChunks: QueryConfirmChunksToProveForFileError; + readonly isInternalError: boolean; + readonly type: "StorageRequestNotFound" | "ConfirmChunks" | "InternalError"; +} + +/** @name QueryMspIdOfBucketIdError */ +export interface QueryMspIdOfBucketIdError extends Enum { + readonly isBucketNotFound: boolean; + readonly isInternalApiError: boolean; + readonly type: "BucketNotFound" | "InternalApiError"; +} + +/** @name QueryStorageProviderCapacityError */ +export interface QueryStorageProviderCapacityError extends Enum { + readonly isProviderNotRegistered: boolean; + readonly isInternalApiError: boolean; + readonly type: "ProviderNotRegistered" | "InternalApiError"; +} + +/** @name RandomnessOutput */ +export interface RandomnessOutput extends H256 {} + +/** @name SaveFileToDisk */ +export interface SaveFileToDisk extends Enum { + readonly isFileNotFound: boolean; + readonly isSuccess: boolean; + readonly asSuccess: FileMetadata; + readonly isIncompleteFile: boolean; + readonly asIncompleteFile: IncompleteFileStatus; + readonly type: "FileNotFound" | "Success" | "IncompleteFile"; +} + +/** @name StorageData */ +export interface StorageData extends u32 {} + +/** @name StorageDataUnit */ +export interface StorageDataUnit extends u32 {} + +/** @name StorageProviderId */ +export interface StorageProviderId extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: BackupStorageProviderId; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: MainStorageProviderId; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; +} + +/** @name TrieRemoveMutation */ +export interface TrieRemoveMutation extends Struct {} + +export type PHANTOM_STORAGEHUBCLIENT = "storagehubclient"; diff --git a/api-augment/src/interfaces/types-lookup.ts b/api-augment/src/interfaces/types-lookup.ts index 59d289c75..5db82791e 100644 --- a/api-augment/src/interfaces/types-lookup.ts +++ b/api-augment/src/interfaces/types-lookup.ts @@ -1,5836 +1,5616 @@ -// Auto-generated via `yarn polkadot-types-from-defs`, do not edit -/* eslint-disable */ - -// import type lookup before we augment - in some environments -// this is required to allow for ambient/previous definitions -import "@polkadot/types/lookup"; - -import type { - BTreeMap, - BTreeSet, - Bytes, - Compact, - Enum, - Null, - Option, - Result, - Struct, - Text, - U8aFixed, - Vec, - bool, - u128, - u16, - u32, - u64, - u8 -} from "@polkadot/types-codec"; -import type { ITuple } from "@polkadot/types-codec/types"; -import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; -import type { Event } from "@polkadot/types/interfaces/system"; - -declare module "@polkadot/types/lookup" { - /** @name FrameSystemAccountInfo (3) */ - interface FrameSystemAccountInfo extends Struct { - readonly nonce: u32; - readonly consumers: u32; - readonly providers: u32; - readonly sufficients: u32; - readonly data: PalletBalancesAccountData; - } - - /** @name PalletBalancesAccountData (5) */ - interface PalletBalancesAccountData extends Struct { - readonly free: u128; - readonly reserved: u128; - readonly frozen: u128; - readonly flags: u128; - } - - /** @name FrameSupportDispatchPerDispatchClassWeight (9) */ - interface FrameSupportDispatchPerDispatchClassWeight extends Struct { - readonly normal: SpWeightsWeightV2Weight; - readonly operational: SpWeightsWeightV2Weight; - readonly mandatory: SpWeightsWeightV2Weight; - } - - /** @name SpWeightsWeightV2Weight (10) */ - interface SpWeightsWeightV2Weight extends Struct { - readonly refTime: Compact; - readonly proofSize: Compact; - } - - /** @name SpRuntimeDigest (15) */ - interface SpRuntimeDigest extends Struct { - readonly logs: Vec; - } - - /** @name SpRuntimeDigestDigestItem (17) */ - interface SpRuntimeDigestDigestItem extends Enum { - readonly isOther: boolean; - readonly asOther: Bytes; - readonly isConsensus: boolean; - readonly asConsensus: ITuple<[U8aFixed, Bytes]>; - readonly isSeal: boolean; - readonly asSeal: ITuple<[U8aFixed, Bytes]>; - readonly isPreRuntime: boolean; - readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>; - readonly isRuntimeEnvironmentUpdated: boolean; - readonly type: "Other" | "Consensus" | "Seal" | "PreRuntime" | "RuntimeEnvironmentUpdated"; - } - - /** @name FrameSystemEventRecord (20) */ - interface FrameSystemEventRecord extends Struct { - readonly phase: FrameSystemPhase; - readonly event: Event; - readonly topics: Vec; - } - - /** @name FrameSystemEvent (22) */ - interface FrameSystemEvent extends Enum { - readonly isExtrinsicSuccess: boolean; - readonly asExtrinsicSuccess: { - readonly dispatchInfo: FrameSupportDispatchDispatchInfo; - } & Struct; - readonly isExtrinsicFailed: boolean; - readonly asExtrinsicFailed: { - readonly dispatchError: SpRuntimeDispatchError; - readonly dispatchInfo: FrameSupportDispatchDispatchInfo; - } & Struct; - readonly isCodeUpdated: boolean; - readonly isNewAccount: boolean; - readonly asNewAccount: { - readonly account: AccountId32; - } & Struct; - readonly isKilledAccount: boolean; - readonly asKilledAccount: { - readonly account: AccountId32; - } & Struct; - readonly isRemarked: boolean; - readonly asRemarked: { - readonly sender: AccountId32; - readonly hash_: H256; - } & Struct; - readonly isUpgradeAuthorized: boolean; - readonly asUpgradeAuthorized: { - readonly codeHash: H256; - readonly checkVersion: bool; - } & Struct; - readonly type: - | "ExtrinsicSuccess" - | "ExtrinsicFailed" - | "CodeUpdated" - | "NewAccount" - | "KilledAccount" - | "Remarked" - | "UpgradeAuthorized"; - } - - /** @name FrameSupportDispatchDispatchInfo (23) */ - interface FrameSupportDispatchDispatchInfo extends Struct { - readonly weight: SpWeightsWeightV2Weight; - readonly class: FrameSupportDispatchDispatchClass; - readonly paysFee: FrameSupportDispatchPays; - } - - /** @name FrameSupportDispatchDispatchClass (24) */ - interface FrameSupportDispatchDispatchClass extends Enum { - readonly isNormal: boolean; - readonly isOperational: boolean; - readonly isMandatory: boolean; - readonly type: "Normal" | "Operational" | "Mandatory"; - } - - /** @name FrameSupportDispatchPays (25) */ - interface FrameSupportDispatchPays extends Enum { - readonly isYes: boolean; - readonly isNo: boolean; - readonly type: "Yes" | "No"; - } - - /** @name SpRuntimeDispatchError (26) */ - interface SpRuntimeDispatchError extends Enum { - readonly isOther: boolean; - readonly isCannotLookup: boolean; - readonly isBadOrigin: boolean; - readonly isModule: boolean; - readonly asModule: SpRuntimeModuleError; - readonly isConsumerRemaining: boolean; - readonly isNoProviders: boolean; - readonly isTooManyConsumers: boolean; - readonly isToken: boolean; - readonly asToken: SpRuntimeTokenError; - readonly isArithmetic: boolean; - readonly asArithmetic: SpArithmeticArithmeticError; - readonly isTransactional: boolean; - readonly asTransactional: SpRuntimeTransactionalError; - readonly isExhausted: boolean; - readonly isCorruption: boolean; - readonly isUnavailable: boolean; - readonly isRootNotAllowed: boolean; - readonly type: - | "Other" - | "CannotLookup" - | "BadOrigin" - | "Module" - | "ConsumerRemaining" - | "NoProviders" - | "TooManyConsumers" - | "Token" - | "Arithmetic" - | "Transactional" - | "Exhausted" - | "Corruption" - | "Unavailable" - | "RootNotAllowed"; - } - - /** @name SpRuntimeModuleError (27) */ - interface SpRuntimeModuleError extends Struct { - readonly index: u8; - readonly error: U8aFixed; - } - - /** @name SpRuntimeTokenError (28) */ - interface SpRuntimeTokenError extends Enum { - readonly isFundsUnavailable: boolean; - readonly isOnlyProvider: boolean; - readonly isBelowMinimum: boolean; - readonly isCannotCreate: boolean; - readonly isUnknownAsset: boolean; - readonly isFrozen: boolean; - readonly isUnsupported: boolean; - readonly isCannotCreateHold: boolean; - readonly isNotExpendable: boolean; - readonly isBlocked: boolean; - readonly type: - | "FundsUnavailable" - | "OnlyProvider" - | "BelowMinimum" - | "CannotCreate" - | "UnknownAsset" - | "Frozen" - | "Unsupported" - | "CannotCreateHold" - | "NotExpendable" - | "Blocked"; - } - - /** @name SpArithmeticArithmeticError (29) */ - interface SpArithmeticArithmeticError extends Enum { - readonly isUnderflow: boolean; - readonly isOverflow: boolean; - readonly isDivisionByZero: boolean; - readonly type: "Underflow" | "Overflow" | "DivisionByZero"; - } - - /** @name SpRuntimeTransactionalError (30) */ - interface SpRuntimeTransactionalError extends Enum { - readonly isLimitReached: boolean; - readonly isNoLayer: boolean; - readonly type: "LimitReached" | "NoLayer"; - } - - /** @name CumulusPalletParachainSystemEvent (31) */ - interface CumulusPalletParachainSystemEvent extends Enum { - readonly isValidationFunctionStored: boolean; - readonly isValidationFunctionApplied: boolean; - readonly asValidationFunctionApplied: { - readonly relayChainBlockNum: u32; - } & Struct; - readonly isValidationFunctionDiscarded: boolean; - readonly isDownwardMessagesReceived: boolean; - readonly asDownwardMessagesReceived: { - readonly count: u32; - } & Struct; - readonly isDownwardMessagesProcessed: boolean; - readonly asDownwardMessagesProcessed: { - readonly weightUsed: SpWeightsWeightV2Weight; - readonly dmqHead: H256; - } & Struct; - readonly isUpwardMessageSent: boolean; - readonly asUpwardMessageSent: { - readonly messageHash: Option; - } & Struct; - readonly type: - | "ValidationFunctionStored" - | "ValidationFunctionApplied" - | "ValidationFunctionDiscarded" - | "DownwardMessagesReceived" - | "DownwardMessagesProcessed" - | "UpwardMessageSent"; - } - - /** @name PalletBalancesEvent (33) */ - interface PalletBalancesEvent extends Enum { - readonly isEndowed: boolean; - readonly asEndowed: { - readonly account: AccountId32; - readonly freeBalance: u128; - } & Struct; - readonly isDustLost: boolean; - readonly asDustLost: { - readonly account: AccountId32; - readonly amount: u128; - } & Struct; - readonly isTransfer: boolean; - readonly asTransfer: { - readonly from: AccountId32; - readonly to: AccountId32; - readonly amount: u128; - } & Struct; - readonly isBalanceSet: boolean; - readonly asBalanceSet: { - readonly who: AccountId32; - readonly free: u128; - } & Struct; - readonly isReserved: boolean; - readonly asReserved: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isUnreserved: boolean; - readonly asUnreserved: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isReserveRepatriated: boolean; - readonly asReserveRepatriated: { - readonly from: AccountId32; - readonly to: AccountId32; - readonly amount: u128; - readonly destinationStatus: FrameSupportTokensMiscBalanceStatus; - } & Struct; - readonly isDeposit: boolean; - readonly asDeposit: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isWithdraw: boolean; - readonly asWithdraw: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isSlashed: boolean; - readonly asSlashed: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isMinted: boolean; - readonly asMinted: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isBurned: boolean; - readonly asBurned: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isSuspended: boolean; - readonly asSuspended: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isRestored: boolean; - readonly asRestored: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isUpgraded: boolean; - readonly asUpgraded: { - readonly who: AccountId32; - } & Struct; - readonly isIssued: boolean; - readonly asIssued: { - readonly amount: u128; - } & Struct; - readonly isRescinded: boolean; - readonly asRescinded: { - readonly amount: u128; - } & Struct; - readonly isLocked: boolean; - readonly asLocked: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isUnlocked: boolean; - readonly asUnlocked: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isFrozen: boolean; - readonly asFrozen: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isThawed: boolean; - readonly asThawed: { - readonly who: AccountId32; - readonly amount: u128; - } & Struct; - readonly isTotalIssuanceForced: boolean; - readonly asTotalIssuanceForced: { - readonly old: u128; - readonly new_: u128; - } & Struct; - readonly type: - | "Endowed" - | "DustLost" - | "Transfer" - | "BalanceSet" - | "Reserved" - | "Unreserved" - | "ReserveRepatriated" - | "Deposit" - | "Withdraw" - | "Slashed" - | "Minted" - | "Burned" - | "Suspended" - | "Restored" - | "Upgraded" - | "Issued" - | "Rescinded" - | "Locked" - | "Unlocked" - | "Frozen" - | "Thawed" - | "TotalIssuanceForced"; - } - - /** @name FrameSupportTokensMiscBalanceStatus (34) */ - interface FrameSupportTokensMiscBalanceStatus extends Enum { - readonly isFree: boolean; - readonly isReserved: boolean; - readonly type: "Free" | "Reserved"; - } - - /** @name PalletTransactionPaymentEvent (35) */ - interface PalletTransactionPaymentEvent extends Enum { - readonly isTransactionFeePaid: boolean; - readonly asTransactionFeePaid: { - readonly who: AccountId32; - readonly actualFee: u128; - readonly tip: u128; - } & Struct; - readonly type: "TransactionFeePaid"; - } - - /** @name PalletSudoEvent (36) */ - interface PalletSudoEvent extends Enum { - readonly isSudid: boolean; - readonly asSudid: { - readonly sudoResult: Result; - } & Struct; - readonly isKeyChanged: boolean; - readonly asKeyChanged: { - readonly old: Option; - readonly new_: AccountId32; - } & Struct; - readonly isKeyRemoved: boolean; - readonly isSudoAsDone: boolean; - readonly asSudoAsDone: { - readonly sudoResult: Result; - } & Struct; - readonly type: "Sudid" | "KeyChanged" | "KeyRemoved" | "SudoAsDone"; - } - - /** @name PalletCollatorSelectionEvent (40) */ - interface PalletCollatorSelectionEvent extends Enum { - readonly isNewInvulnerables: boolean; - readonly asNewInvulnerables: { - readonly invulnerables: Vec; - } & Struct; - readonly isInvulnerableAdded: boolean; - readonly asInvulnerableAdded: { - readonly accountId: AccountId32; - } & Struct; - readonly isInvulnerableRemoved: boolean; - readonly asInvulnerableRemoved: { - readonly accountId: AccountId32; - } & Struct; - readonly isNewDesiredCandidates: boolean; - readonly asNewDesiredCandidates: { - readonly desiredCandidates: u32; - } & Struct; - readonly isNewCandidacyBond: boolean; - readonly asNewCandidacyBond: { - readonly bondAmount: u128; - } & Struct; - readonly isCandidateAdded: boolean; - readonly asCandidateAdded: { - readonly accountId: AccountId32; - readonly deposit: u128; - } & Struct; - readonly isCandidateBondUpdated: boolean; - readonly asCandidateBondUpdated: { - readonly accountId: AccountId32; - readonly deposit: u128; - } & Struct; - readonly isCandidateRemoved: boolean; - readonly asCandidateRemoved: { - readonly accountId: AccountId32; - } & Struct; - readonly isCandidateReplaced: boolean; - readonly asCandidateReplaced: { - readonly old: AccountId32; - readonly new_: AccountId32; - readonly deposit: u128; - } & Struct; - readonly isInvalidInvulnerableSkipped: boolean; - readonly asInvalidInvulnerableSkipped: { - readonly accountId: AccountId32; - } & Struct; - readonly type: - | "NewInvulnerables" - | "InvulnerableAdded" - | "InvulnerableRemoved" - | "NewDesiredCandidates" - | "NewCandidacyBond" - | "CandidateAdded" - | "CandidateBondUpdated" - | "CandidateRemoved" - | "CandidateReplaced" - | "InvalidInvulnerableSkipped"; - } - - /** @name PalletSessionEvent (42) */ - interface PalletSessionEvent extends Enum { - readonly isNewSession: boolean; - readonly asNewSession: { - readonly sessionIndex: u32; - } & Struct; - readonly type: "NewSession"; - } - - /** @name CumulusPalletXcmpQueueEvent (43) */ - interface CumulusPalletXcmpQueueEvent extends Enum { - readonly isXcmpMessageSent: boolean; - readonly asXcmpMessageSent: { - readonly messageHash: U8aFixed; - } & Struct; - readonly type: "XcmpMessageSent"; - } - - /** @name PalletXcmEvent (44) */ - interface PalletXcmEvent extends Enum { - readonly isAttempted: boolean; - readonly asAttempted: { - readonly outcome: StagingXcmV4TraitsOutcome; - } & Struct; - readonly isSent: boolean; - readonly asSent: { - readonly origin: StagingXcmV4Location; - readonly destination: StagingXcmV4Location; - readonly message: StagingXcmV4Xcm; - readonly messageId: U8aFixed; - } & Struct; - readonly isUnexpectedResponse: boolean; - readonly asUnexpectedResponse: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - } & Struct; - readonly isResponseReady: boolean; - readonly asResponseReady: { - readonly queryId: u64; - readonly response: StagingXcmV4Response; - } & Struct; - readonly isNotified: boolean; - readonly asNotified: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - } & Struct; - readonly isNotifyOverweight: boolean; - readonly asNotifyOverweight: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - readonly actualWeight: SpWeightsWeightV2Weight; - readonly maxBudgetedWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isNotifyDispatchError: boolean; - readonly asNotifyDispatchError: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - } & Struct; - readonly isNotifyDecodeFailed: boolean; - readonly asNotifyDecodeFailed: { - readonly queryId: u64; - readonly palletIndex: u8; - readonly callIndex: u8; - } & Struct; - readonly isInvalidResponder: boolean; - readonly asInvalidResponder: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - readonly expectedLocation: Option; - } & Struct; - readonly isInvalidResponderVersion: boolean; - readonly asInvalidResponderVersion: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - } & Struct; - readonly isResponseTaken: boolean; - readonly asResponseTaken: { - readonly queryId: u64; - } & Struct; - readonly isAssetsTrapped: boolean; - readonly asAssetsTrapped: { - readonly hash_: H256; - readonly origin: StagingXcmV4Location; - readonly assets: XcmVersionedAssets; - } & Struct; - readonly isVersionChangeNotified: boolean; - readonly asVersionChangeNotified: { - readonly destination: StagingXcmV4Location; - readonly result: u32; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isSupportedVersionChanged: boolean; - readonly asSupportedVersionChanged: { - readonly location: StagingXcmV4Location; - readonly version: u32; - } & Struct; - readonly isNotifyTargetSendFail: boolean; - readonly asNotifyTargetSendFail: { - readonly location: StagingXcmV4Location; - readonly queryId: u64; - readonly error: XcmV3TraitsError; - } & Struct; - readonly isNotifyTargetMigrationFail: boolean; - readonly asNotifyTargetMigrationFail: { - readonly location: XcmVersionedLocation; - readonly queryId: u64; - } & Struct; - readonly isInvalidQuerierVersion: boolean; - readonly asInvalidQuerierVersion: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - } & Struct; - readonly isInvalidQuerier: boolean; - readonly asInvalidQuerier: { - readonly origin: StagingXcmV4Location; - readonly queryId: u64; - readonly expectedQuerier: StagingXcmV4Location; - readonly maybeActualQuerier: Option; - } & Struct; - readonly isVersionNotifyStarted: boolean; - readonly asVersionNotifyStarted: { - readonly destination: StagingXcmV4Location; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isVersionNotifyRequested: boolean; - readonly asVersionNotifyRequested: { - readonly destination: StagingXcmV4Location; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isVersionNotifyUnrequested: boolean; - readonly asVersionNotifyUnrequested: { - readonly destination: StagingXcmV4Location; - readonly cost: StagingXcmV4AssetAssets; - readonly messageId: U8aFixed; - } & Struct; - readonly isFeesPaid: boolean; - readonly asFeesPaid: { - readonly paying: StagingXcmV4Location; - readonly fees: StagingXcmV4AssetAssets; - } & Struct; - readonly isAssetsClaimed: boolean; - readonly asAssetsClaimed: { - readonly hash_: H256; - readonly origin: StagingXcmV4Location; - readonly assets: XcmVersionedAssets; - } & Struct; - readonly isVersionMigrationFinished: boolean; - readonly asVersionMigrationFinished: { - readonly version: u32; - } & Struct; - readonly type: - | "Attempted" - | "Sent" - | "UnexpectedResponse" - | "ResponseReady" - | "Notified" - | "NotifyOverweight" - | "NotifyDispatchError" - | "NotifyDecodeFailed" - | "InvalidResponder" - | "InvalidResponderVersion" - | "ResponseTaken" - | "AssetsTrapped" - | "VersionChangeNotified" - | "SupportedVersionChanged" - | "NotifyTargetSendFail" - | "NotifyTargetMigrationFail" - | "InvalidQuerierVersion" - | "InvalidQuerier" - | "VersionNotifyStarted" - | "VersionNotifyRequested" - | "VersionNotifyUnrequested" - | "FeesPaid" - | "AssetsClaimed" - | "VersionMigrationFinished"; - } - - /** @name StagingXcmV4TraitsOutcome (45) */ - interface StagingXcmV4TraitsOutcome extends Enum { - readonly isComplete: boolean; - readonly asComplete: { - readonly used: SpWeightsWeightV2Weight; - } & Struct; - readonly isIncomplete: boolean; - readonly asIncomplete: { - readonly used: SpWeightsWeightV2Weight; - readonly error: XcmV3TraitsError; - } & Struct; - readonly isError: boolean; - readonly asError: { - readonly error: XcmV3TraitsError; - } & Struct; - readonly type: "Complete" | "Incomplete" | "Error"; - } - - /** @name XcmV3TraitsError (46) */ - interface XcmV3TraitsError extends Enum { - readonly isOverflow: boolean; - readonly isUnimplemented: boolean; - readonly isUntrustedReserveLocation: boolean; - readonly isUntrustedTeleportLocation: boolean; - readonly isLocationFull: boolean; - readonly isLocationNotInvertible: boolean; - readonly isBadOrigin: boolean; - readonly isInvalidLocation: boolean; - readonly isAssetNotFound: boolean; - readonly isFailedToTransactAsset: boolean; - readonly isNotWithdrawable: boolean; - readonly isLocationCannotHold: boolean; - readonly isExceedsMaxMessageSize: boolean; - readonly isDestinationUnsupported: boolean; - readonly isTransport: boolean; - readonly isUnroutable: boolean; - readonly isUnknownClaim: boolean; - readonly isFailedToDecode: boolean; - readonly isMaxWeightInvalid: boolean; - readonly isNotHoldingFees: boolean; - readonly isTooExpensive: boolean; - readonly isTrap: boolean; - readonly asTrap: u64; - readonly isExpectationFalse: boolean; - readonly isPalletNotFound: boolean; - readonly isNameMismatch: boolean; - readonly isVersionIncompatible: boolean; - readonly isHoldingWouldOverflow: boolean; - readonly isExportError: boolean; - readonly isReanchorFailed: boolean; - readonly isNoDeal: boolean; - readonly isFeesNotMet: boolean; - readonly isLockError: boolean; - readonly isNoPermission: boolean; - readonly isUnanchored: boolean; - readonly isNotDepositable: boolean; - readonly isUnhandledXcmVersion: boolean; - readonly isWeightLimitReached: boolean; - readonly asWeightLimitReached: SpWeightsWeightV2Weight; - readonly isBarrier: boolean; - readonly isWeightNotComputable: boolean; - readonly isExceedsStackLimit: boolean; - readonly type: - | "Overflow" - | "Unimplemented" - | "UntrustedReserveLocation" - | "UntrustedTeleportLocation" - | "LocationFull" - | "LocationNotInvertible" - | "BadOrigin" - | "InvalidLocation" - | "AssetNotFound" - | "FailedToTransactAsset" - | "NotWithdrawable" - | "LocationCannotHold" - | "ExceedsMaxMessageSize" - | "DestinationUnsupported" - | "Transport" - | "Unroutable" - | "UnknownClaim" - | "FailedToDecode" - | "MaxWeightInvalid" - | "NotHoldingFees" - | "TooExpensive" - | "Trap" - | "ExpectationFalse" - | "PalletNotFound" - | "NameMismatch" - | "VersionIncompatible" - | "HoldingWouldOverflow" - | "ExportError" - | "ReanchorFailed" - | "NoDeal" - | "FeesNotMet" - | "LockError" - | "NoPermission" - | "Unanchored" - | "NotDepositable" - | "UnhandledXcmVersion" - | "WeightLimitReached" - | "Barrier" - | "WeightNotComputable" - | "ExceedsStackLimit"; - } - - /** @name StagingXcmV4Location (47) */ - interface StagingXcmV4Location extends Struct { - readonly parents: u8; - readonly interior: StagingXcmV4Junctions; - } - - /** @name StagingXcmV4Junctions (48) */ - interface StagingXcmV4Junctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: StagingXcmV4Junction; - readonly isX2: boolean; - readonly asX2: StagingXcmV4Junction; - readonly isX3: boolean; - readonly asX3: StagingXcmV4Junction; - readonly isX4: boolean; - readonly asX4: StagingXcmV4Junction; - readonly isX5: boolean; - readonly asX5: StagingXcmV4Junction; - readonly isX6: boolean; - readonly asX6: StagingXcmV4Junction; - readonly isX7: boolean; - readonly asX7: StagingXcmV4Junction; - readonly isX8: boolean; - readonly asX8: StagingXcmV4Junction; - readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; - } - - /** @name StagingXcmV4Junction (50) */ - interface StagingXcmV4Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: Option; - readonly id: U8aFixed; - } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: Option; - readonly index: Compact; - } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: Option; - readonly key: U8aFixed; - } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: { - readonly length: u8; - readonly data: U8aFixed; - } & Struct; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV3JunctionBodyId; - readonly part: XcmV3JunctionBodyPart; - } & Struct; - readonly isGlobalConsensus: boolean; - readonly asGlobalConsensus: StagingXcmV4JunctionNetworkId; - readonly type: - | "Parachain" - | "AccountId32" - | "AccountIndex64" - | "AccountKey20" - | "PalletInstance" - | "GeneralIndex" - | "GeneralKey" - | "OnlyChild" - | "Plurality" - | "GlobalConsensus"; - } - - /** @name StagingXcmV4JunctionNetworkId (53) */ - interface StagingXcmV4JunctionNetworkId extends Enum { - readonly isByGenesis: boolean; - readonly asByGenesis: U8aFixed; - readonly isByFork: boolean; - readonly asByFork: { - readonly blockNumber: u64; - readonly blockHash: U8aFixed; - } & Struct; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly isWestend: boolean; - readonly isRococo: boolean; - readonly isWococo: boolean; - readonly isEthereum: boolean; - readonly asEthereum: { - readonly chainId: Compact; - } & Struct; - readonly isBitcoinCore: boolean; - readonly isBitcoinCash: boolean; - readonly isPolkadotBulletin: boolean; - readonly type: - | "ByGenesis" - | "ByFork" - | "Polkadot" - | "Kusama" - | "Westend" - | "Rococo" - | "Wococo" - | "Ethereum" - | "BitcoinCore" - | "BitcoinCash" - | "PolkadotBulletin"; - } - - /** @name XcmV3JunctionBodyId (56) */ - interface XcmV3JunctionBodyId extends Enum { - readonly isUnit: boolean; - readonly isMoniker: boolean; - readonly asMoniker: U8aFixed; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isExecutive: boolean; - readonly isTechnical: boolean; - readonly isLegislative: boolean; - readonly isJudicial: boolean; - readonly isDefense: boolean; - readonly isAdministration: boolean; - readonly isTreasury: boolean; - readonly type: - | "Unit" - | "Moniker" - | "Index" - | "Executive" - | "Technical" - | "Legislative" - | "Judicial" - | "Defense" - | "Administration" - | "Treasury"; - } - - /** @name XcmV3JunctionBodyPart (57) */ - interface XcmV3JunctionBodyPart extends Enum { - readonly isVoice: boolean; - readonly isMembers: boolean; - readonly asMembers: { - readonly count: Compact; - } & Struct; - readonly isFraction: boolean; - readonly asFraction: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isAtLeastProportion: boolean; - readonly asAtLeastProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isMoreThanProportion: boolean; - readonly asMoreThanProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; - } - - /** @name StagingXcmV4Xcm (65) */ - interface StagingXcmV4Xcm extends Vec {} - - /** @name StagingXcmV4Instruction (67) */ - interface StagingXcmV4Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: StagingXcmV4AssetAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: StagingXcmV4AssetAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: StagingXcmV4AssetAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: StagingXcmV4Response; - readonly maxWeight: SpWeightsWeightV2Weight; - readonly querier: Option; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: StagingXcmV4AssetAssets; - readonly beneficiary: StagingXcmV4Location; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: StagingXcmV4AssetAssets; - readonly dest: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originKind: XcmV3OriginKind; - readonly requireWeightAtMost: SpWeightsWeightV2Weight; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: StagingXcmV4Junctions; - readonly isReportError: boolean; - readonly asReportError: StagingXcmV4QueryResponseInfo; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly beneficiary: StagingXcmV4Location; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly dest: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: StagingXcmV4AssetAssetFilter; - readonly want: StagingXcmV4AssetAssets; - readonly maximal: bool; - } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly reserve: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: StagingXcmV4AssetAssetFilter; - readonly dest: StagingXcmV4Location; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isReportHolding: boolean; - readonly asReportHolding: { - readonly responseInfo: StagingXcmV4QueryResponseInfo; - readonly assets: StagingXcmV4AssetAssetFilter; - } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: StagingXcmV4Asset; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: StagingXcmV4Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: StagingXcmV4Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: StagingXcmV4AssetAssets; - readonly ticket: StagingXcmV4Location; - } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly isBurnAsset: boolean; - readonly asBurnAsset: StagingXcmV4AssetAssets; - readonly isExpectAsset: boolean; - readonly asExpectAsset: StagingXcmV4AssetAssets; - readonly isExpectOrigin: boolean; - readonly asExpectOrigin: Option; - readonly isExpectError: boolean; - readonly asExpectError: Option>; - readonly isExpectTransactStatus: boolean; - readonly asExpectTransactStatus: XcmV3MaybeErrorCode; - readonly isQueryPallet: boolean; - readonly asQueryPallet: { - readonly moduleName: Bytes; - readonly responseInfo: StagingXcmV4QueryResponseInfo; - } & Struct; - readonly isExpectPallet: boolean; - readonly asExpectPallet: { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly crateMajor: Compact; - readonly minCrateMinor: Compact; - } & Struct; - readonly isReportTransactStatus: boolean; - readonly asReportTransactStatus: StagingXcmV4QueryResponseInfo; - readonly isClearTransactStatus: boolean; - readonly isUniversalOrigin: boolean; - readonly asUniversalOrigin: StagingXcmV4Junction; - readonly isExportMessage: boolean; - readonly asExportMessage: { - readonly network: StagingXcmV4JunctionNetworkId; - readonly destination: StagingXcmV4Junctions; - readonly xcm: StagingXcmV4Xcm; - } & Struct; - readonly isLockAsset: boolean; - readonly asLockAsset: { - readonly asset: StagingXcmV4Asset; - readonly unlocker: StagingXcmV4Location; - } & Struct; - readonly isUnlockAsset: boolean; - readonly asUnlockAsset: { - readonly asset: StagingXcmV4Asset; - readonly target: StagingXcmV4Location; - } & Struct; - readonly isNoteUnlockable: boolean; - readonly asNoteUnlockable: { - readonly asset: StagingXcmV4Asset; - readonly owner: StagingXcmV4Location; - } & Struct; - readonly isRequestUnlock: boolean; - readonly asRequestUnlock: { - readonly asset: StagingXcmV4Asset; - readonly locker: StagingXcmV4Location; - } & Struct; - readonly isSetFeesMode: boolean; - readonly asSetFeesMode: { - readonly jitWithdraw: bool; - } & Struct; - readonly isSetTopic: boolean; - readonly asSetTopic: U8aFixed; - readonly isClearTopic: boolean; - readonly isAliasOrigin: boolean; - readonly asAliasOrigin: StagingXcmV4Location; - readonly isUnpaidExecution: boolean; - readonly asUnpaidExecution: { - readonly weightLimit: XcmV3WeightLimit; - readonly checkOrigin: Option; - } & Struct; - readonly type: - | "WithdrawAsset" - | "ReserveAssetDeposited" - | "ReceiveTeleportedAsset" - | "QueryResponse" - | "TransferAsset" - | "TransferReserveAsset" - | "Transact" - | "HrmpNewChannelOpenRequest" - | "HrmpChannelAccepted" - | "HrmpChannelClosing" - | "ClearOrigin" - | "DescendOrigin" - | "ReportError" - | "DepositAsset" - | "DepositReserveAsset" - | "ExchangeAsset" - | "InitiateReserveWithdraw" - | "InitiateTeleport" - | "ReportHolding" - | "BuyExecution" - | "RefundSurplus" - | "SetErrorHandler" - | "SetAppendix" - | "ClearError" - | "ClaimAsset" - | "Trap" - | "SubscribeVersion" - | "UnsubscribeVersion" - | "BurnAsset" - | "ExpectAsset" - | "ExpectOrigin" - | "ExpectError" - | "ExpectTransactStatus" - | "QueryPallet" - | "ExpectPallet" - | "ReportTransactStatus" - | "ClearTransactStatus" - | "UniversalOrigin" - | "ExportMessage" - | "LockAsset" - | "UnlockAsset" - | "NoteUnlockable" - | "RequestUnlock" - | "SetFeesMode" - | "SetTopic" - | "ClearTopic" - | "AliasOrigin" - | "UnpaidExecution"; - } - - /** @name StagingXcmV4AssetAssets (68) */ - interface StagingXcmV4AssetAssets extends Vec {} - - /** @name StagingXcmV4Asset (70) */ - interface StagingXcmV4Asset extends Struct { - readonly id: StagingXcmV4AssetAssetId; - readonly fun: StagingXcmV4AssetFungibility; - } - - /** @name StagingXcmV4AssetAssetId (71) */ - interface StagingXcmV4AssetAssetId extends StagingXcmV4Location {} - - /** @name StagingXcmV4AssetFungibility (72) */ - interface StagingXcmV4AssetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: StagingXcmV4AssetAssetInstance; - readonly type: "Fungible" | "NonFungible"; - } - - /** @name StagingXcmV4AssetAssetInstance (73) */ - interface StagingXcmV4AssetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; - } - - /** @name StagingXcmV4Response (76) */ - interface StagingXcmV4Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: StagingXcmV4AssetAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly isPalletsInfo: boolean; - readonly asPalletsInfo: Vec; - readonly isDispatchResult: boolean; - readonly asDispatchResult: XcmV3MaybeErrorCode; - readonly type: - | "Null" - | "Assets" - | "ExecutionResult" - | "Version" - | "PalletsInfo" - | "DispatchResult"; - } - - /** @name StagingXcmV4PalletInfo (80) */ - interface StagingXcmV4PalletInfo extends Struct { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly major: Compact; - readonly minor: Compact; - readonly patch: Compact; - } - - /** @name XcmV3MaybeErrorCode (83) */ - interface XcmV3MaybeErrorCode extends Enum { - readonly isSuccess: boolean; - readonly isError: boolean; - readonly asError: Bytes; - readonly isTruncatedError: boolean; - readonly asTruncatedError: Bytes; - readonly type: "Success" | "Error" | "TruncatedError"; - } - - /** @name XcmV3OriginKind (86) */ - interface XcmV3OriginKind extends Enum { - readonly isNative: boolean; - readonly isSovereignAccount: boolean; - readonly isSuperuser: boolean; - readonly isXcm: boolean; - readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; - } - - /** @name XcmDoubleEncoded (87) */ - interface XcmDoubleEncoded extends Struct { - readonly encoded: Bytes; - } - - /** @name StagingXcmV4QueryResponseInfo (88) */ - interface StagingXcmV4QueryResponseInfo extends Struct { - readonly destination: StagingXcmV4Location; - readonly queryId: Compact; - readonly maxWeight: SpWeightsWeightV2Weight; - } - - /** @name StagingXcmV4AssetAssetFilter (89) */ - interface StagingXcmV4AssetAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: StagingXcmV4AssetAssets; - readonly isWild: boolean; - readonly asWild: StagingXcmV4AssetWildAsset; - readonly type: "Definite" | "Wild"; - } - - /** @name StagingXcmV4AssetWildAsset (90) */ - interface StagingXcmV4AssetWildAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: StagingXcmV4AssetAssetId; - readonly fun: StagingXcmV4AssetWildFungibility; - } & Struct; - readonly isAllCounted: boolean; - readonly asAllCounted: Compact; - readonly isAllOfCounted: boolean; - readonly asAllOfCounted: { - readonly id: StagingXcmV4AssetAssetId; - readonly fun: StagingXcmV4AssetWildFungibility; - readonly count: Compact; - } & Struct; - readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; - } - - /** @name StagingXcmV4AssetWildFungibility (91) */ - interface StagingXcmV4AssetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: "Fungible" | "NonFungible"; - } - - /** @name XcmV3WeightLimit (92) */ - interface XcmV3WeightLimit extends Enum { - readonly isUnlimited: boolean; - readonly isLimited: boolean; - readonly asLimited: SpWeightsWeightV2Weight; - readonly type: "Unlimited" | "Limited"; - } - - /** @name XcmVersionedAssets (93) */ - interface XcmVersionedAssets extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2MultiassetMultiAssets; - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetMultiAssets; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssets; - readonly type: "V2" | "V3" | "V4"; - } - - /** @name XcmV2MultiassetMultiAssets (94) */ - interface XcmV2MultiassetMultiAssets extends Vec {} - - /** @name XcmV2MultiAsset (96) */ - interface XcmV2MultiAsset extends Struct { - readonly id: XcmV2MultiassetAssetId; - readonly fun: XcmV2MultiassetFungibility; - } - - /** @name XcmV2MultiassetAssetId (97) */ - interface XcmV2MultiassetAssetId extends Enum { - readonly isConcrete: boolean; - readonly asConcrete: XcmV2MultiLocation; - readonly isAbstract: boolean; - readonly asAbstract: Bytes; - readonly type: "Concrete" | "Abstract"; - } - - /** @name XcmV2MultiLocation (98) */ - interface XcmV2MultiLocation extends Struct { - readonly parents: u8; - readonly interior: XcmV2MultilocationJunctions; - } - - /** @name XcmV2MultilocationJunctions (99) */ - interface XcmV2MultilocationJunctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: XcmV2Junction; - readonly isX2: boolean; - readonly asX2: ITuple<[XcmV2Junction, XcmV2Junction]>; - readonly isX3: boolean; - readonly asX3: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX4: boolean; - readonly asX4: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; - readonly isX5: boolean; - readonly asX5: ITuple< - [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] - >; - readonly isX6: boolean; - readonly asX6: ITuple< - [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] - >; - readonly isX7: boolean; - readonly asX7: ITuple< - [ - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction - ] - >; - readonly isX8: boolean; - readonly asX8: ITuple< - [ - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction, - XcmV2Junction - ] - >; - readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; - } - - /** @name XcmV2Junction (100) */ - interface XcmV2Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: XcmV2NetworkId; - readonly id: U8aFixed; - } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: XcmV2NetworkId; - readonly index: Compact; - } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: XcmV2NetworkId; - readonly key: U8aFixed; - } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: Bytes; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV2BodyId; - readonly part: XcmV2BodyPart; - } & Struct; - readonly type: - | "Parachain" - | "AccountId32" - | "AccountIndex64" - | "AccountKey20" - | "PalletInstance" - | "GeneralIndex" - | "GeneralKey" - | "OnlyChild" - | "Plurality"; - } - - /** @name XcmV2NetworkId (101) */ - interface XcmV2NetworkId extends Enum { - readonly isAny: boolean; - readonly isNamed: boolean; - readonly asNamed: Bytes; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly type: "Any" | "Named" | "Polkadot" | "Kusama"; - } - - /** @name XcmV2BodyId (103) */ - interface XcmV2BodyId extends Enum { - readonly isUnit: boolean; - readonly isNamed: boolean; - readonly asNamed: Bytes; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isExecutive: boolean; - readonly isTechnical: boolean; - readonly isLegislative: boolean; - readonly isJudicial: boolean; - readonly isDefense: boolean; - readonly isAdministration: boolean; - readonly isTreasury: boolean; - readonly type: - | "Unit" - | "Named" - | "Index" - | "Executive" - | "Technical" - | "Legislative" - | "Judicial" - | "Defense" - | "Administration" - | "Treasury"; - } - - /** @name XcmV2BodyPart (104) */ - interface XcmV2BodyPart extends Enum { - readonly isVoice: boolean; - readonly isMembers: boolean; - readonly asMembers: { - readonly count: Compact; - } & Struct; - readonly isFraction: boolean; - readonly asFraction: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isAtLeastProportion: boolean; - readonly asAtLeastProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly isMoreThanProportion: boolean; - readonly asMoreThanProportion: { - readonly nom: Compact; - readonly denom: Compact; - } & Struct; - readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; - } - - /** @name XcmV2MultiassetFungibility (105) */ - interface XcmV2MultiassetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: XcmV2MultiassetAssetInstance; - readonly type: "Fungible" | "NonFungible"; - } - - /** @name XcmV2MultiassetAssetInstance (106) */ - interface XcmV2MultiassetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly isBlob: boolean; - readonly asBlob: Bytes; - readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32" | "Blob"; - } - - /** @name XcmV3MultiassetMultiAssets (107) */ - interface XcmV3MultiassetMultiAssets extends Vec {} - - /** @name XcmV3MultiAsset (109) */ - interface XcmV3MultiAsset extends Struct { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetFungibility; - } - - /** @name XcmV3MultiassetAssetId (110) */ - interface XcmV3MultiassetAssetId extends Enum { - readonly isConcrete: boolean; - readonly asConcrete: StagingXcmV3MultiLocation; - readonly isAbstract: boolean; - readonly asAbstract: U8aFixed; - readonly type: "Concrete" | "Abstract"; - } - - /** @name StagingXcmV3MultiLocation (111) */ - interface StagingXcmV3MultiLocation extends Struct { - readonly parents: u8; - readonly interior: XcmV3Junctions; - } - - /** @name XcmV3Junctions (112) */ - interface XcmV3Junctions extends Enum { - readonly isHere: boolean; - readonly isX1: boolean; - readonly asX1: XcmV3Junction; - readonly isX2: boolean; - readonly asX2: ITuple<[XcmV3Junction, XcmV3Junction]>; - readonly isX3: boolean; - readonly asX3: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction]>; - readonly isX4: boolean; - readonly asX4: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; - readonly isX5: boolean; - readonly asX5: ITuple< - [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] - >; - readonly isX6: boolean; - readonly asX6: ITuple< - [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] - >; - readonly isX7: boolean; - readonly asX7: ITuple< - [ - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction - ] - >; - readonly isX8: boolean; - readonly asX8: ITuple< - [ - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction, - XcmV3Junction - ] - >; - readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; - } - - /** @name XcmV3Junction (113) */ - interface XcmV3Junction extends Enum { - readonly isParachain: boolean; - readonly asParachain: Compact; - readonly isAccountId32: boolean; - readonly asAccountId32: { - readonly network: Option; - readonly id: U8aFixed; - } & Struct; - readonly isAccountIndex64: boolean; - readonly asAccountIndex64: { - readonly network: Option; - readonly index: Compact; - } & Struct; - readonly isAccountKey20: boolean; - readonly asAccountKey20: { - readonly network: Option; - readonly key: U8aFixed; - } & Struct; - readonly isPalletInstance: boolean; - readonly asPalletInstance: u8; - readonly isGeneralIndex: boolean; - readonly asGeneralIndex: Compact; - readonly isGeneralKey: boolean; - readonly asGeneralKey: { - readonly length: u8; - readonly data: U8aFixed; - } & Struct; - readonly isOnlyChild: boolean; - readonly isPlurality: boolean; - readonly asPlurality: { - readonly id: XcmV3JunctionBodyId; - readonly part: XcmV3JunctionBodyPart; - } & Struct; - readonly isGlobalConsensus: boolean; - readonly asGlobalConsensus: XcmV3JunctionNetworkId; - readonly type: - | "Parachain" - | "AccountId32" - | "AccountIndex64" - | "AccountKey20" - | "PalletInstance" - | "GeneralIndex" - | "GeneralKey" - | "OnlyChild" - | "Plurality" - | "GlobalConsensus"; - } - - /** @name XcmV3JunctionNetworkId (115) */ - interface XcmV3JunctionNetworkId extends Enum { - readonly isByGenesis: boolean; - readonly asByGenesis: U8aFixed; - readonly isByFork: boolean; - readonly asByFork: { - readonly blockNumber: u64; - readonly blockHash: U8aFixed; - } & Struct; - readonly isPolkadot: boolean; - readonly isKusama: boolean; - readonly isWestend: boolean; - readonly isRococo: boolean; - readonly isWococo: boolean; - readonly isEthereum: boolean; - readonly asEthereum: { - readonly chainId: Compact; - } & Struct; - readonly isBitcoinCore: boolean; - readonly isBitcoinCash: boolean; - readonly isPolkadotBulletin: boolean; - readonly type: - | "ByGenesis" - | "ByFork" - | "Polkadot" - | "Kusama" - | "Westend" - | "Rococo" - | "Wococo" - | "Ethereum" - | "BitcoinCore" - | "BitcoinCash" - | "PolkadotBulletin"; - } - - /** @name XcmV3MultiassetFungibility (116) */ - interface XcmV3MultiassetFungibility extends Enum { - readonly isFungible: boolean; - readonly asFungible: Compact; - readonly isNonFungible: boolean; - readonly asNonFungible: XcmV3MultiassetAssetInstance; - readonly type: "Fungible" | "NonFungible"; - } - - /** @name XcmV3MultiassetAssetInstance (117) */ - interface XcmV3MultiassetAssetInstance extends Enum { - readonly isUndefined: boolean; - readonly isIndex: boolean; - readonly asIndex: Compact; - readonly isArray4: boolean; - readonly asArray4: U8aFixed; - readonly isArray8: boolean; - readonly asArray8: U8aFixed; - readonly isArray16: boolean; - readonly asArray16: U8aFixed; - readonly isArray32: boolean; - readonly asArray32: U8aFixed; - readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; - } - - /** @name XcmVersionedLocation (118) */ - interface XcmVersionedLocation extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2MultiLocation; - readonly isV3: boolean; - readonly asV3: StagingXcmV3MultiLocation; - readonly isV4: boolean; - readonly asV4: StagingXcmV4Location; - readonly type: "V2" | "V3" | "V4"; - } - - /** @name CumulusPalletXcmEvent (119) */ - interface CumulusPalletXcmEvent extends Enum { - readonly isInvalidFormat: boolean; - readonly asInvalidFormat: U8aFixed; - readonly isUnsupportedVersion: boolean; - readonly asUnsupportedVersion: U8aFixed; - readonly isExecutedDownward: boolean; - readonly asExecutedDownward: ITuple<[U8aFixed, StagingXcmV4TraitsOutcome]>; - readonly type: "InvalidFormat" | "UnsupportedVersion" | "ExecutedDownward"; - } - - /** @name PalletMessageQueueEvent (120) */ - interface PalletMessageQueueEvent extends Enum { - readonly isProcessingFailed: boolean; - readonly asProcessingFailed: { - readonly id: H256; - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly error: FrameSupportMessagesProcessMessageError; - } & Struct; - readonly isProcessed: boolean; - readonly asProcessed: { - readonly id: H256; - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly weightUsed: SpWeightsWeightV2Weight; - readonly success: bool; - } & Struct; - readonly isOverweightEnqueued: boolean; - readonly asOverweightEnqueued: { - readonly id: U8aFixed; - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly pageIndex: u32; - readonly messageIndex: u32; - } & Struct; - readonly isPageReaped: boolean; - readonly asPageReaped: { - readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly index: u32; - } & Struct; - readonly type: "ProcessingFailed" | "Processed" | "OverweightEnqueued" | "PageReaped"; - } - - /** @name CumulusPrimitivesCoreAggregateMessageOrigin (121) */ - interface CumulusPrimitivesCoreAggregateMessageOrigin extends Enum { - readonly isHere: boolean; - readonly isParent: boolean; - readonly isSibling: boolean; - readonly asSibling: u32; - readonly type: "Here" | "Parent" | "Sibling"; - } - - /** @name FrameSupportMessagesProcessMessageError (123) */ - interface FrameSupportMessagesProcessMessageError extends Enum { - readonly isBadFormat: boolean; - readonly isCorrupt: boolean; - readonly isUnsupported: boolean; - readonly isOverweight: boolean; - readonly asOverweight: SpWeightsWeightV2Weight; - readonly isYield: boolean; - readonly isStackLimitReached: boolean; - readonly type: - | "BadFormat" - | "Corrupt" - | "Unsupported" - | "Overweight" - | "Yield" - | "StackLimitReached"; - } - - /** @name PalletStorageProvidersEvent (124) */ - interface PalletStorageProvidersEvent extends Enum { - readonly isMspRequestSignUpSuccess: boolean; - readonly asMspRequestSignUpSuccess: { - readonly who: AccountId32; - readonly multiaddresses: Vec; - readonly capacity: u64; - readonly valueProp: PalletStorageProvidersValueProposition; - } & Struct; - readonly isMspSignUpSuccess: boolean; - readonly asMspSignUpSuccess: { - readonly who: AccountId32; - readonly mspId: H256; - readonly multiaddresses: Vec; - readonly capacity: u64; - readonly valueProp: PalletStorageProvidersValueProposition; - } & Struct; - readonly isBspRequestSignUpSuccess: boolean; - readonly asBspRequestSignUpSuccess: { - readonly who: AccountId32; - readonly multiaddresses: Vec; - readonly capacity: u64; - } & Struct; - readonly isBspSignUpSuccess: boolean; - readonly asBspSignUpSuccess: { - readonly who: AccountId32; - readonly bspId: H256; - readonly multiaddresses: Vec; - readonly capacity: u64; - } & Struct; - readonly isSignUpRequestCanceled: boolean; - readonly asSignUpRequestCanceled: { - readonly who: AccountId32; - } & Struct; - readonly isMspSignOffSuccess: boolean; - readonly asMspSignOffSuccess: { - readonly who: AccountId32; - readonly mspId: H256; - } & Struct; - readonly isBspSignOffSuccess: boolean; - readonly asBspSignOffSuccess: { - readonly who: AccountId32; - readonly bspId: H256; - } & Struct; - readonly isCapacityChanged: boolean; - readonly asCapacityChanged: { - readonly who: AccountId32; - readonly providerId: PalletStorageProvidersStorageProviderId; - readonly oldCapacity: u64; - readonly newCapacity: u64; - readonly nextBlockWhenChangeAllowed: u32; - } & Struct; - readonly isSlashed: boolean; - readonly asSlashed: { - readonly providerId: H256; - readonly amountSlashed: u128; - } & Struct; - readonly type: - | "MspRequestSignUpSuccess" - | "MspSignUpSuccess" - | "BspRequestSignUpSuccess" - | "BspSignUpSuccess" - | "SignUpRequestCanceled" - | "MspSignOffSuccess" - | "BspSignOffSuccess" - | "CapacityChanged" - | "Slashed"; - } - - /** @name PalletStorageProvidersValueProposition (128) */ - interface PalletStorageProvidersValueProposition extends Struct { - readonly identifier: H256; - readonly dataLimit: u64; - readonly protocols: Vec; - } - - /** @name PalletStorageProvidersStorageProviderId (130) */ - interface PalletStorageProvidersStorageProviderId extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: H256; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: H256; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; - } - - /** @name PalletFileSystemEvent (131) */ - interface PalletFileSystemEvent extends Enum { - readonly isNewBucket: boolean; - readonly asNewBucket: { - readonly who: AccountId32; - readonly mspId: H256; - readonly bucketId: H256; - readonly name: Bytes; - readonly collectionId: Option; - readonly private: bool; - } & Struct; - readonly isMoveBucketRequested: boolean; - readonly asMoveBucketRequested: { - readonly who: AccountId32; - readonly bucketId: H256; - readonly newMspId: H256; - } & Struct; - readonly isBucketPrivacyUpdated: boolean; - readonly asBucketPrivacyUpdated: { - readonly who: AccountId32; - readonly bucketId: H256; - readonly collectionId: Option; - readonly private: bool; - } & Struct; - readonly isNewCollectionAndAssociation: boolean; - readonly asNewCollectionAndAssociation: { - readonly who: AccountId32; - readonly bucketId: H256; - readonly collectionId: u32; - } & Struct; - readonly isNewStorageRequest: boolean; - readonly asNewStorageRequest: { - readonly who: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly size_: u64; - readonly peerIds: Vec; - } & Struct; - readonly isMspRespondedToStorageRequests: boolean; - readonly asMspRespondedToStorageRequests: { - readonly results: PalletFileSystemMspRespondStorageRequestsResult; - } & Struct; - readonly isAcceptedBspVolunteer: boolean; - readonly asAcceptedBspVolunteer: { - readonly bspId: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly multiaddresses: Vec; - readonly owner: AccountId32; - readonly size_: u64; - } & Struct; - readonly isBspConfirmedStoring: boolean; - readonly asBspConfirmedStoring: { - readonly who: AccountId32; - readonly bspId: H256; - readonly fileKeys: Vec; - readonly newRoot: H256; - } & Struct; - readonly isStorageRequestFulfilled: boolean; - readonly asStorageRequestFulfilled: { - readonly fileKey: H256; - } & Struct; - readonly isStorageRequestExpired: boolean; - readonly asStorageRequestExpired: { - readonly fileKey: H256; - } & Struct; - readonly isStorageRequestRevoked: boolean; - readonly asStorageRequestRevoked: { - readonly fileKey: H256; - } & Struct; - readonly isBspRequestedToStopStoring: boolean; - readonly asBspRequestedToStopStoring: { - readonly bspId: H256; - readonly fileKey: H256; - readonly owner: AccountId32; - readonly location: Bytes; - } & Struct; - readonly isBspConfirmStoppedStoring: boolean; - readonly asBspConfirmStoppedStoring: { - readonly bspId: H256; - readonly fileKey: H256; - readonly newRoot: H256; - } & Struct; - readonly isPriorityChallengeForFileDeletionQueued: boolean; - readonly asPriorityChallengeForFileDeletionQueued: { - readonly issuer: PalletFileSystemEitherAccountIdOrMspId; - readonly fileKey: H256; - } & Struct; - readonly isSpStopStoringInsolventUser: boolean; - readonly asSpStopStoringInsolventUser: { - readonly spId: H256; - readonly fileKey: H256; - readonly owner: AccountId32; - readonly location: Bytes; - readonly newRoot: H256; - } & Struct; - readonly isFailedToQueuePriorityChallenge: boolean; - readonly asFailedToQueuePriorityChallenge: { - readonly user: AccountId32; - readonly fileKey: H256; - } & Struct; - readonly isFileDeletionRequest: boolean; - readonly asFileDeletionRequest: { - readonly user: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly mspId: H256; - readonly proofOfInclusion: bool; - } & Struct; - readonly isProofSubmittedForPendingFileDeletionRequest: boolean; - readonly asProofSubmittedForPendingFileDeletionRequest: { - readonly mspId: H256; - readonly user: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly proofOfInclusion: bool; - } & Struct; - readonly isBspChallengeCycleInitialised: boolean; - readonly asBspChallengeCycleInitialised: { - readonly who: AccountId32; - readonly bspId: H256; - } & Struct; - readonly isMoveBucketRequestExpired: boolean; - readonly asMoveBucketRequestExpired: { - readonly mspId: H256; - readonly bucketId: H256; - } & Struct; - readonly isMoveBucketAccepted: boolean; - readonly asMoveBucketAccepted: { - readonly bucketId: H256; - readonly mspId: H256; - } & Struct; - readonly isMoveBucketRejected: boolean; - readonly asMoveBucketRejected: { - readonly bucketId: H256; - readonly mspId: H256; - } & Struct; - readonly isDataServerRegisteredForMoveBucket: boolean; - readonly asDataServerRegisteredForMoveBucket: { - readonly bspId: H256; - readonly bucketId: H256; - } & Struct; - readonly type: - | "NewBucket" - | "MoveBucketRequested" - | "BucketPrivacyUpdated" - | "NewCollectionAndAssociation" - | "NewStorageRequest" - | "MspRespondedToStorageRequests" - | "AcceptedBspVolunteer" - | "BspConfirmedStoring" - | "StorageRequestFulfilled" - | "StorageRequestExpired" - | "StorageRequestRevoked" - | "BspRequestedToStopStoring" - | "BspConfirmStoppedStoring" - | "PriorityChallengeForFileDeletionQueued" - | "SpStopStoringInsolventUser" - | "FailedToQueuePriorityChallenge" - | "FileDeletionRequest" - | "ProofSubmittedForPendingFileDeletionRequest" - | "BspChallengeCycleInitialised" - | "MoveBucketRequestExpired" - | "MoveBucketAccepted" - | "MoveBucketRejected" - | "DataServerRegisteredForMoveBucket"; - } - - /** @name PalletFileSystemMspRespondStorageRequestsResult (134) */ - interface PalletFileSystemMspRespondStorageRequestsResult extends Struct { - readonly mspId: H256; - readonly responses: Vec; - } - - /** @name PalletFileSystemBatchResponses (136) */ - interface PalletFileSystemBatchResponses extends Enum { - readonly isAccepted: boolean; - readonly asAccepted: PalletFileSystemMspAcceptedBatchStorageRequests; - readonly isRejected: boolean; - readonly asRejected: PalletFileSystemMspRejectedBatchStorageRequests; - readonly isFailed: boolean; - readonly asFailed: PalletFileSystemMspFailedBatchStorageRequests; - readonly type: "Accepted" | "Rejected" | "Failed"; - } - - /** @name PalletFileSystemMspAcceptedBatchStorageRequests (137) */ - interface PalletFileSystemMspAcceptedBatchStorageRequests extends Struct { - readonly fileKeys: Vec; - readonly bucketId: H256; - readonly newBucketRoot: H256; - readonly owner: AccountId32; - } - - /** @name PalletFileSystemMspRejectedBatchStorageRequests (140) */ - interface PalletFileSystemMspRejectedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - - /** @name PalletFileSystemRejectedStorageRequestReason (143) */ - interface PalletFileSystemRejectedStorageRequestReason extends Enum { - readonly isReachedMaximumCapacity: boolean; - readonly isReceivedInvalidProof: boolean; - readonly isInternalError: boolean; - readonly type: "ReachedMaximumCapacity" | "ReceivedInvalidProof" | "InternalError"; - } - - /** @name PalletFileSystemMspFailedBatchStorageRequests (145) */ - interface PalletFileSystemMspFailedBatchStorageRequests extends Struct { - readonly fileKeys: Vec>; - readonly bucketId: H256; - readonly owner: AccountId32; - } - - /** @name PalletFileSystemEitherAccountIdOrMspId (150) */ - interface PalletFileSystemEitherAccountIdOrMspId extends Enum { - readonly isAccountId: boolean; - readonly asAccountId: AccountId32; - readonly isMspId: boolean; - readonly asMspId: H256; - readonly type: "AccountId" | "MspId"; - } - - /** @name PalletProofsDealerEvent (151) */ - interface PalletProofsDealerEvent extends Enum { - readonly isNewChallenge: boolean; - readonly asNewChallenge: { - readonly who: AccountId32; - readonly keyChallenged: H256; - } & Struct; - readonly isProofAccepted: boolean; - readonly asProofAccepted: { - readonly provider: H256; - readonly proof: PalletProofsDealerProof; - } & Struct; - readonly isNewChallengeSeed: boolean; - readonly asNewChallengeSeed: { - readonly challengesTicker: u32; - readonly seed: H256; - } & Struct; - readonly isNewCheckpointChallenge: boolean; - readonly asNewCheckpointChallenge: { - readonly challengesTicker: u32; - readonly challenges: Vec]>>; - } & Struct; - readonly isSlashableProvider: boolean; - readonly asSlashableProvider: { - readonly provider: H256; - readonly nextChallengeDeadline: u32; - } & Struct; - readonly isNoRecordOfLastSubmittedProof: boolean; - readonly asNoRecordOfLastSubmittedProof: { - readonly provider: H256; - } & Struct; - readonly isNewChallengeCycleInitialised: boolean; - readonly asNewChallengeCycleInitialised: { - readonly currentTick: u32; - readonly nextChallengeDeadline: u32; - readonly provider: H256; - readonly maybeProviderAccount: Option; - } & Struct; - readonly isMutationsApplied: boolean; - readonly asMutationsApplied: { - readonly provider: H256; - readonly mutations: Vec>; - readonly newRoot: H256; - } & Struct; - readonly isChallengesTickerSet: boolean; - readonly asChallengesTickerSet: { - readonly paused: bool; - } & Struct; - readonly type: - | "NewChallenge" - | "ProofAccepted" - | "NewChallengeSeed" - | "NewCheckpointChallenge" - | "SlashableProvider" - | "NoRecordOfLastSubmittedProof" - | "NewChallengeCycleInitialised" - | "MutationsApplied" - | "ChallengesTickerSet"; - } - - /** @name PalletProofsDealerProof (152) */ - interface PalletProofsDealerProof extends Struct { - readonly forestProof: SpTrieStorageProofCompactProof; - readonly keyProofs: BTreeMap; - } - - /** @name SpTrieStorageProofCompactProof (153) */ - interface SpTrieStorageProofCompactProof extends Struct { - readonly encodedNodes: Vec; - } - - /** @name PalletProofsDealerKeyProof (156) */ - interface PalletProofsDealerKeyProof extends Struct { - readonly proof: ShpFileKeyVerifierFileKeyProof; - readonly challengeCount: u32; - } - - /** @name ShpFileKeyVerifierFileKeyProof (157) */ - interface ShpFileKeyVerifierFileKeyProof extends Struct { - readonly fileMetadata: ShpFileMetadataFileMetadata; - readonly proof: SpTrieStorageProofCompactProof; - } - - /** @name ShpFileMetadataFileMetadata (158) */ - interface ShpFileMetadataFileMetadata extends Struct { - readonly owner: Bytes; - readonly bucketId: Bytes; - readonly location: Bytes; - readonly fileSize: Compact; - readonly fingerprint: ShpFileMetadataFingerprint; - } - - /** @name ShpFileMetadataFingerprint (159) */ - interface ShpFileMetadataFingerprint extends U8aFixed {} - - /** @name ShpTraitsTrieRemoveMutation (165) */ - type ShpTraitsTrieRemoveMutation = Null; - - /** @name PalletRandomnessEvent (169) */ - interface PalletRandomnessEvent extends Enum { - readonly isNewOneEpochAgoRandomnessAvailable: boolean; - readonly asNewOneEpochAgoRandomnessAvailable: { - readonly randomnessSeed: H256; - readonly fromEpoch: u64; - readonly validUntilBlock: u32; - } & Struct; - readonly type: "NewOneEpochAgoRandomnessAvailable"; - } - - /** @name PalletPaymentStreamsEvent (170) */ - interface PalletPaymentStreamsEvent extends Enum { - readonly isFixedRatePaymentStreamCreated: boolean; - readonly asFixedRatePaymentStreamCreated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly rate: u128; - } & Struct; - readonly isFixedRatePaymentStreamUpdated: boolean; - readonly asFixedRatePaymentStreamUpdated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly newRate: u128; - } & Struct; - readonly isFixedRatePaymentStreamDeleted: boolean; - readonly asFixedRatePaymentStreamDeleted: { - readonly userAccount: AccountId32; - readonly providerId: H256; - } & Struct; - readonly isDynamicRatePaymentStreamCreated: boolean; - readonly asDynamicRatePaymentStreamCreated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly amountProvided: u64; - } & Struct; - readonly isDynamicRatePaymentStreamUpdated: boolean; - readonly asDynamicRatePaymentStreamUpdated: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly newAmountProvided: u64; - } & Struct; - readonly isDynamicRatePaymentStreamDeleted: boolean; - readonly asDynamicRatePaymentStreamDeleted: { - readonly userAccount: AccountId32; - readonly providerId: H256; - } & Struct; - readonly isPaymentStreamCharged: boolean; - readonly asPaymentStreamCharged: { - readonly userAccount: AccountId32; - readonly providerId: H256; - readonly amount: u128; - } & Struct; - readonly isLastChargeableInfoUpdated: boolean; - readonly asLastChargeableInfoUpdated: { - readonly providerId: H256; - readonly lastChargeableTick: u32; - readonly lastChargeablePriceIndex: u128; - } & Struct; - readonly isUserWithoutFunds: boolean; - readonly asUserWithoutFunds: { - readonly who: AccountId32; - } & Struct; - readonly isUserPaidDebts: boolean; - readonly asUserPaidDebts: { - readonly who: AccountId32; - } & Struct; - readonly isUserSolvent: boolean; - readonly asUserSolvent: { - readonly who: AccountId32; - } & Struct; - readonly type: - | "FixedRatePaymentStreamCreated" - | "FixedRatePaymentStreamUpdated" - | "FixedRatePaymentStreamDeleted" - | "DynamicRatePaymentStreamCreated" - | "DynamicRatePaymentStreamUpdated" - | "DynamicRatePaymentStreamDeleted" - | "PaymentStreamCharged" - | "LastChargeableInfoUpdated" - | "UserWithoutFunds" - | "UserPaidDebts" - | "UserSolvent"; - } - - /** @name PalletBucketNftsEvent (171) */ - interface PalletBucketNftsEvent extends Enum { - readonly isAccessShared: boolean; - readonly asAccessShared: { - readonly issuer: AccountId32; - readonly recipient: AccountId32; - } & Struct; - readonly isItemReadAccessUpdated: boolean; - readonly asItemReadAccessUpdated: { - readonly admin: AccountId32; - readonly bucket: H256; - readonly itemId: u32; - } & Struct; - readonly isItemBurned: boolean; - readonly asItemBurned: { - readonly account: AccountId32; - readonly bucket: H256; - readonly itemId: u32; - } & Struct; - readonly type: "AccessShared" | "ItemReadAccessUpdated" | "ItemBurned"; - } - - /** @name PalletNftsEvent (172) */ - interface PalletNftsEvent extends Enum { - readonly isCreated: boolean; - readonly asCreated: { - readonly collection: u32; - readonly creator: AccountId32; - readonly owner: AccountId32; - } & Struct; - readonly isForceCreated: boolean; - readonly asForceCreated: { - readonly collection: u32; - readonly owner: AccountId32; - } & Struct; - readonly isDestroyed: boolean; - readonly asDestroyed: { - readonly collection: u32; - } & Struct; - readonly isIssued: boolean; - readonly asIssued: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - } & Struct; - readonly isTransferred: boolean; - readonly asTransferred: { - readonly collection: u32; - readonly item: u32; - readonly from: AccountId32; - readonly to: AccountId32; - } & Struct; - readonly isBurned: boolean; - readonly asBurned: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - } & Struct; - readonly isItemTransferLocked: boolean; - readonly asItemTransferLocked: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isItemTransferUnlocked: boolean; - readonly asItemTransferUnlocked: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isItemPropertiesLocked: boolean; - readonly asItemPropertiesLocked: { - readonly collection: u32; - readonly item: u32; - readonly lockMetadata: bool; - readonly lockAttributes: bool; - } & Struct; - readonly isCollectionLocked: boolean; - readonly asCollectionLocked: { - readonly collection: u32; - } & Struct; - readonly isOwnerChanged: boolean; - readonly asOwnerChanged: { - readonly collection: u32; - readonly newOwner: AccountId32; - } & Struct; - readonly isTeamChanged: boolean; - readonly asTeamChanged: { - readonly collection: u32; - readonly issuer: Option; - readonly admin: Option; - readonly freezer: Option; - } & Struct; - readonly isTransferApproved: boolean; - readonly asTransferApproved: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - readonly delegate: AccountId32; - readonly deadline: Option; - } & Struct; - readonly isApprovalCancelled: boolean; - readonly asApprovalCancelled: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - readonly delegate: AccountId32; - } & Struct; - readonly isAllApprovalsCancelled: boolean; - readonly asAllApprovalsCancelled: { - readonly collection: u32; - readonly item: u32; - readonly owner: AccountId32; - } & Struct; - readonly isCollectionConfigChanged: boolean; - readonly asCollectionConfigChanged: { - readonly collection: u32; - } & Struct; - readonly isCollectionMetadataSet: boolean; - readonly asCollectionMetadataSet: { - readonly collection: u32; - readonly data: Bytes; - } & Struct; - readonly isCollectionMetadataCleared: boolean; - readonly asCollectionMetadataCleared: { - readonly collection: u32; - } & Struct; - readonly isItemMetadataSet: boolean; - readonly asItemMetadataSet: { - readonly collection: u32; - readonly item: u32; - readonly data: Bytes; - } & Struct; - readonly isItemMetadataCleared: boolean; - readonly asItemMetadataCleared: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isRedeposited: boolean; - readonly asRedeposited: { - readonly collection: u32; - readonly successfulItems: Vec; - } & Struct; - readonly isAttributeSet: boolean; - readonly asAttributeSet: { - readonly collection: u32; - readonly maybeItem: Option; - readonly key: Bytes; - readonly value: Bytes; - readonly namespace: PalletNftsAttributeNamespace; - } & Struct; - readonly isAttributeCleared: boolean; - readonly asAttributeCleared: { - readonly collection: u32; - readonly maybeItem: Option; - readonly key: Bytes; - readonly namespace: PalletNftsAttributeNamespace; - } & Struct; - readonly isItemAttributesApprovalAdded: boolean; - readonly asItemAttributesApprovalAdded: { - readonly collection: u32; - readonly item: u32; - readonly delegate: AccountId32; - } & Struct; - readonly isItemAttributesApprovalRemoved: boolean; - readonly asItemAttributesApprovalRemoved: { - readonly collection: u32; - readonly item: u32; - readonly delegate: AccountId32; - } & Struct; - readonly isOwnershipAcceptanceChanged: boolean; - readonly asOwnershipAcceptanceChanged: { - readonly who: AccountId32; - readonly maybeCollection: Option; - } & Struct; - readonly isCollectionMaxSupplySet: boolean; - readonly asCollectionMaxSupplySet: { - readonly collection: u32; - readonly maxSupply: u32; - } & Struct; - readonly isCollectionMintSettingsUpdated: boolean; - readonly asCollectionMintSettingsUpdated: { - readonly collection: u32; - } & Struct; - readonly isNextCollectionIdIncremented: boolean; - readonly asNextCollectionIdIncremented: { - readonly nextId: Option; - } & Struct; - readonly isItemPriceSet: boolean; - readonly asItemPriceSet: { - readonly collection: u32; - readonly item: u32; - readonly price: u128; - readonly whitelistedBuyer: Option; - } & Struct; - readonly isItemPriceRemoved: boolean; - readonly asItemPriceRemoved: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isItemBought: boolean; - readonly asItemBought: { - readonly collection: u32; - readonly item: u32; - readonly price: u128; - readonly seller: AccountId32; - readonly buyer: AccountId32; - } & Struct; - readonly isTipSent: boolean; - readonly asTipSent: { - readonly collection: u32; - readonly item: u32; - readonly sender: AccountId32; - readonly receiver: AccountId32; - readonly amount: u128; - } & Struct; - readonly isSwapCreated: boolean; - readonly asSwapCreated: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - readonly desiredCollection: u32; - readonly desiredItem: Option; - readonly price: Option; - readonly deadline: u32; - } & Struct; - readonly isSwapCancelled: boolean; - readonly asSwapCancelled: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - readonly desiredCollection: u32; - readonly desiredItem: Option; - readonly price: Option; - readonly deadline: u32; - } & Struct; - readonly isSwapClaimed: boolean; - readonly asSwapClaimed: { - readonly sentCollection: u32; - readonly sentItem: u32; - readonly sentItemOwner: AccountId32; - readonly receivedCollection: u32; - readonly receivedItem: u32; - readonly receivedItemOwner: AccountId32; - readonly price: Option; - readonly deadline: u32; - } & Struct; - readonly isPreSignedAttributesSet: boolean; - readonly asPreSignedAttributesSet: { - readonly collection: u32; - readonly item: u32; - readonly namespace: PalletNftsAttributeNamespace; - } & Struct; - readonly isPalletAttributeSet: boolean; - readonly asPalletAttributeSet: { - readonly collection: u32; - readonly item: Option; - readonly attribute: PalletNftsPalletAttributes; - readonly value: Bytes; - } & Struct; - readonly type: - | "Created" - | "ForceCreated" - | "Destroyed" - | "Issued" - | "Transferred" - | "Burned" - | "ItemTransferLocked" - | "ItemTransferUnlocked" - | "ItemPropertiesLocked" - | "CollectionLocked" - | "OwnerChanged" - | "TeamChanged" - | "TransferApproved" - | "ApprovalCancelled" - | "AllApprovalsCancelled" - | "CollectionConfigChanged" - | "CollectionMetadataSet" - | "CollectionMetadataCleared" - | "ItemMetadataSet" - | "ItemMetadataCleared" - | "Redeposited" - | "AttributeSet" - | "AttributeCleared" - | "ItemAttributesApprovalAdded" - | "ItemAttributesApprovalRemoved" - | "OwnershipAcceptanceChanged" - | "CollectionMaxSupplySet" - | "CollectionMintSettingsUpdated" - | "NextCollectionIdIncremented" - | "ItemPriceSet" - | "ItemPriceRemoved" - | "ItemBought" - | "TipSent" - | "SwapCreated" - | "SwapCancelled" - | "SwapClaimed" - | "PreSignedAttributesSet" - | "PalletAttributeSet"; - } - - /** @name PalletNftsAttributeNamespace (176) */ - interface PalletNftsAttributeNamespace extends Enum { - readonly isPallet: boolean; - readonly isCollectionOwner: boolean; - readonly isItemOwner: boolean; - readonly isAccount: boolean; - readonly asAccount: AccountId32; - readonly type: "Pallet" | "CollectionOwner" | "ItemOwner" | "Account"; - } - - /** @name PalletNftsPriceWithDirection (178) */ - interface PalletNftsPriceWithDirection extends Struct { - readonly amount: u128; - readonly direction: PalletNftsPriceDirection; - } - - /** @name PalletNftsPriceDirection (179) */ - interface PalletNftsPriceDirection extends Enum { - readonly isSend: boolean; - readonly isReceive: boolean; - readonly type: "Send" | "Receive"; - } - - /** @name PalletNftsPalletAttributes (180) */ - interface PalletNftsPalletAttributes extends Enum { - readonly isUsedToClaim: boolean; - readonly asUsedToClaim: u32; - readonly isTransferDisabled: boolean; - readonly type: "UsedToClaim" | "TransferDisabled"; - } - - /** @name PalletParametersEvent (181) */ - interface PalletParametersEvent extends Enum { - readonly isUpdated: boolean; - readonly asUpdated: { - readonly key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; - readonly oldValue: Option; - readonly newValue: Option; - } & Struct; - readonly type: "Updated"; - } - - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (182) */ - interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey extends Enum { - readonly isRuntimeConfig: boolean; - readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; - readonly type: "RuntimeConfig"; - } - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (183) */ - interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey - extends Enum { - readonly isSlashAmountPerMaxFileSize: boolean; - readonly isStakeToChallengePeriod: boolean; - readonly isCheckpointChallengePeriod: boolean; - readonly isMinChallengePeriod: boolean; - readonly type: - | "SlashAmountPerMaxFileSize" - | "StakeToChallengePeriod" - | "CheckpointChallengePeriod" - | "MinChallengePeriod"; - } - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (184) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize = - Null; - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (185) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod = Null; - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (186) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod = - Null; - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (187) */ - type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod = Null; - - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (189) */ - interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue extends Enum { - readonly isRuntimeConfig: boolean; - readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; - readonly type: "RuntimeConfig"; - } - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (190) */ - interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue - extends Enum { - readonly isSlashAmountPerMaxFileSize: boolean; - readonly asSlashAmountPerMaxFileSize: u128; - readonly isStakeToChallengePeriod: boolean; - readonly asStakeToChallengePeriod: u128; - readonly isCheckpointChallengePeriod: boolean; - readonly asCheckpointChallengePeriod: u32; - readonly isMinChallengePeriod: boolean; - readonly asMinChallengePeriod: u32; - readonly type: - | "SlashAmountPerMaxFileSize" - | "StakeToChallengePeriod" - | "CheckpointChallengePeriod" - | "MinChallengePeriod"; - } - - /** @name FrameSystemPhase (191) */ - interface FrameSystemPhase extends Enum { - readonly isApplyExtrinsic: boolean; - readonly asApplyExtrinsic: u32; - readonly isFinalization: boolean; - readonly isInitialization: boolean; - readonly type: "ApplyExtrinsic" | "Finalization" | "Initialization"; - } - - /** @name FrameSystemLastRuntimeUpgradeInfo (194) */ - interface FrameSystemLastRuntimeUpgradeInfo extends Struct { - readonly specVersion: Compact; - readonly specName: Text; - } - - /** @name FrameSystemCodeUpgradeAuthorization (196) */ - interface FrameSystemCodeUpgradeAuthorization extends Struct { - readonly codeHash: H256; - readonly checkVersion: bool; - } - - /** @name FrameSystemCall (197) */ - interface FrameSystemCall extends Enum { - readonly isRemark: boolean; - readonly asRemark: { - readonly remark: Bytes; - } & Struct; - readonly isSetHeapPages: boolean; - readonly asSetHeapPages: { - readonly pages: u64; - } & Struct; - readonly isSetCode: boolean; - readonly asSetCode: { - readonly code: Bytes; - } & Struct; - readonly isSetCodeWithoutChecks: boolean; - readonly asSetCodeWithoutChecks: { - readonly code: Bytes; - } & Struct; - readonly isSetStorage: boolean; - readonly asSetStorage: { - readonly items: Vec>; - } & Struct; - readonly isKillStorage: boolean; - readonly asKillStorage: { - readonly keys_: Vec; - } & Struct; - readonly isKillPrefix: boolean; - readonly asKillPrefix: { - readonly prefix: Bytes; - readonly subkeys: u32; - } & Struct; - readonly isRemarkWithEvent: boolean; - readonly asRemarkWithEvent: { - readonly remark: Bytes; - } & Struct; - readonly isAuthorizeUpgrade: boolean; - readonly asAuthorizeUpgrade: { - readonly codeHash: H256; - } & Struct; - readonly isAuthorizeUpgradeWithoutChecks: boolean; - readonly asAuthorizeUpgradeWithoutChecks: { - readonly codeHash: H256; - } & Struct; - readonly isApplyAuthorizedUpgrade: boolean; - readonly asApplyAuthorizedUpgrade: { - readonly code: Bytes; - } & Struct; - readonly type: - | "Remark" - | "SetHeapPages" - | "SetCode" - | "SetCodeWithoutChecks" - | "SetStorage" - | "KillStorage" - | "KillPrefix" - | "RemarkWithEvent" - | "AuthorizeUpgrade" - | "AuthorizeUpgradeWithoutChecks" - | "ApplyAuthorizedUpgrade"; - } - - /** @name FrameSystemLimitsBlockWeights (200) */ - interface FrameSystemLimitsBlockWeights extends Struct { - readonly baseBlock: SpWeightsWeightV2Weight; - readonly maxBlock: SpWeightsWeightV2Weight; - readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; - } - - /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (201) */ - interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { - readonly normal: FrameSystemLimitsWeightsPerClass; - readonly operational: FrameSystemLimitsWeightsPerClass; - readonly mandatory: FrameSystemLimitsWeightsPerClass; - } - - /** @name FrameSystemLimitsWeightsPerClass (202) */ - interface FrameSystemLimitsWeightsPerClass extends Struct { - readonly baseExtrinsic: SpWeightsWeightV2Weight; - readonly maxExtrinsic: Option; - readonly maxTotal: Option; - readonly reserved: Option; - } - - /** @name FrameSystemLimitsBlockLength (204) */ - interface FrameSystemLimitsBlockLength extends Struct { - readonly max: FrameSupportDispatchPerDispatchClassU32; - } - - /** @name FrameSupportDispatchPerDispatchClassU32 (205) */ - interface FrameSupportDispatchPerDispatchClassU32 extends Struct { - readonly normal: u32; - readonly operational: u32; - readonly mandatory: u32; - } - - /** @name SpWeightsRuntimeDbWeight (206) */ - interface SpWeightsRuntimeDbWeight extends Struct { - readonly read: u64; - readonly write: u64; - } - - /** @name SpVersionRuntimeVersion (207) */ - interface SpVersionRuntimeVersion extends Struct { - readonly specName: Text; - readonly implName: Text; - readonly authoringVersion: u32; - readonly specVersion: u32; - readonly implVersion: u32; - readonly apis: Vec>; - readonly transactionVersion: u32; - readonly stateVersion: u8; - } - - /** @name FrameSystemError (212) */ - interface FrameSystemError extends Enum { - readonly isInvalidSpecName: boolean; - readonly isSpecVersionNeedsToIncrease: boolean; - readonly isFailedToExtractRuntimeVersion: boolean; - readonly isNonDefaultComposite: boolean; - readonly isNonZeroRefCount: boolean; - readonly isCallFiltered: boolean; - readonly isMultiBlockMigrationsOngoing: boolean; - readonly isNothingAuthorized: boolean; - readonly isUnauthorized: boolean; - readonly type: - | "InvalidSpecName" - | "SpecVersionNeedsToIncrease" - | "FailedToExtractRuntimeVersion" - | "NonDefaultComposite" - | "NonZeroRefCount" - | "CallFiltered" - | "MultiBlockMigrationsOngoing" - | "NothingAuthorized" - | "Unauthorized"; - } - - /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (214) */ - interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { - readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - readonly paraHeadHash: Option; - readonly consumedGoAheadSignal: Option; - } - - /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (215) */ - interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { - readonly umpMsgCount: u32; - readonly umpTotalBytes: u32; - readonly hrmpOutgoing: BTreeMap< - u32, - CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate - >; - } - - /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (217) */ - interface CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { - readonly msgCount: u32; - readonly totalBytes: u32; - } - -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7UpgradeGoAhead (197) */ -======= - /** @name PolkadotPrimitivesV7UpgradeGoAhead (222) */ ->>>>>>> main - interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { - readonly isAbort: boolean; - readonly isGoAhead: boolean; - readonly type: "Abort" | "GoAhead"; - } - - /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (223) */ - interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { - readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; - readonly hrmpWatermark: Option; - readonly consumedGoAheadSignal: Option; - } - -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7PersistedValidationData (199) */ -======= - /** @name PolkadotPrimitivesV7PersistedValidationData (224) */ ->>>>>>> main - interface PolkadotPrimitivesV7PersistedValidationData extends Struct { - readonly parentHead: Bytes; - readonly relayParentNumber: u32; - readonly relayParentStorageRoot: H256; - readonly maxPovSize: u32; - } - -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7UpgradeRestriction (202) */ -======= - /** @name PolkadotPrimitivesV7UpgradeRestriction (227) */ ->>>>>>> main - interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { - readonly isPresent: boolean; - readonly type: "Present"; - } - - /** @name SpTrieStorageProof (228) */ - interface SpTrieStorageProof extends Struct { - readonly trieNodes: BTreeSet; - } - - /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (230) */ - interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { - readonly dmqMqcHead: H256; - readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; - readonly ingressChannels: Vec>; - readonly egressChannels: Vec>; - } - - /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (231) */ - interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity - extends Struct { - readonly remainingCount: u32; - readonly remainingSize: u32; - } - -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (209) */ -======= - /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (234) */ ->>>>>>> main - interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { - readonly maxCapacity: u32; - readonly maxTotalSize: u32; - readonly maxMessageSize: u32; - readonly msgCount: u32; - readonly totalSize: u32; - readonly mqcHead: Option; - } - -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (210) */ -======= - /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (235) */ ->>>>>>> main - interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { - readonly maxCodeSize: u32; - readonly maxHeadDataSize: u32; - readonly maxUpwardQueueCount: u32; - readonly maxUpwardQueueSize: u32; - readonly maxUpwardMessageSize: u32; - readonly maxUpwardMessageNumPerCandidate: u32; - readonly hrmpMaxMessageNumPerCandidate: u32; - readonly validationUpgradeCooldown: u32; - readonly validationUpgradeDelay: u32; - readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; - } - -<<<<<<< HEAD - /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (211) */ -======= - /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (236) */ ->>>>>>> main - interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { - readonly maxCandidateDepth: u32; - readonly allowedAncestryLen: u32; - } - - /** @name PolkadotCorePrimitivesOutboundHrmpMessage (242) */ - interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { - readonly recipient: u32; - readonly data: Bytes; - } - - /** @name CumulusPalletParachainSystemCall (244) */ - interface CumulusPalletParachainSystemCall extends Enum { - readonly isSetValidationData: boolean; - readonly asSetValidationData: { - readonly data: CumulusPrimitivesParachainInherentParachainInherentData; - } & Struct; - readonly isSudoSendUpwardMessage: boolean; - readonly asSudoSendUpwardMessage: { - readonly message: Bytes; - } & Struct; - readonly isAuthorizeUpgrade: boolean; - readonly asAuthorizeUpgrade: { - readonly codeHash: H256; - readonly checkVersion: bool; - } & Struct; - readonly isEnactAuthorizedUpgrade: boolean; - readonly asEnactAuthorizedUpgrade: { - readonly code: Bytes; - } & Struct; - readonly type: - | "SetValidationData" - | "SudoSendUpwardMessage" - | "AuthorizeUpgrade" - | "EnactAuthorizedUpgrade"; - } - - /** @name CumulusPrimitivesParachainInherentParachainInherentData (245) */ - interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { - readonly validationData: PolkadotPrimitivesV7PersistedValidationData; - readonly relayChainState: SpTrieStorageProof; - readonly downwardMessages: Vec; - readonly horizontalMessages: BTreeMap>; - } - - /** @name PolkadotCorePrimitivesInboundDownwardMessage (247) */ - interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { - readonly sentAt: u32; - readonly msg: Bytes; - } - - /** @name PolkadotCorePrimitivesInboundHrmpMessage (250) */ - interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { - readonly sentAt: u32; - readonly data: Bytes; - } - - /** @name CumulusPalletParachainSystemError (253) */ - interface CumulusPalletParachainSystemError extends Enum { - readonly isOverlappingUpgrades: boolean; - readonly isProhibitedByPolkadot: boolean; - readonly isTooBig: boolean; - readonly isValidationDataNotAvailable: boolean; - readonly isHostConfigurationNotAvailable: boolean; - readonly isNotScheduled: boolean; - readonly isNothingAuthorized: boolean; - readonly isUnauthorized: boolean; - readonly type: - | "OverlappingUpgrades" - | "ProhibitedByPolkadot" - | "TooBig" - | "ValidationDataNotAvailable" - | "HostConfigurationNotAvailable" - | "NotScheduled" - | "NothingAuthorized" - | "Unauthorized"; - } - - /** @name PalletTimestampCall (254) */ - interface PalletTimestampCall extends Enum { - readonly isSet: boolean; - readonly asSet: { - readonly now: Compact; - } & Struct; - readonly type: "Set"; - } - - /** @name StagingParachainInfoCall (255) */ - type StagingParachainInfoCall = Null; - - /** @name PalletBalancesBalanceLock (257) */ - interface PalletBalancesBalanceLock extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - readonly reasons: PalletBalancesReasons; - } - - /** @name PalletBalancesReasons (258) */ - interface PalletBalancesReasons extends Enum { - readonly isFee: boolean; - readonly isMisc: boolean; - readonly isAll: boolean; - readonly type: "Fee" | "Misc" | "All"; - } - - /** @name PalletBalancesReserveData (261) */ - interface PalletBalancesReserveData extends Struct { - readonly id: U8aFixed; - readonly amount: u128; - } - - /** @name StorageHubRuntimeRuntimeHoldReason (265) */ - interface StorageHubRuntimeRuntimeHoldReason extends Enum { - readonly isProviders: boolean; - readonly asProviders: PalletStorageProvidersHoldReason; - readonly isPaymentStreams: boolean; - readonly asPaymentStreams: PalletPaymentStreamsHoldReason; - readonly type: "Providers" | "PaymentStreams"; - } - - /** @name PalletStorageProvidersHoldReason (266) */ - interface PalletStorageProvidersHoldReason extends Enum { - readonly isStorageProviderDeposit: boolean; - readonly isBucketDeposit: boolean; - readonly type: "StorageProviderDeposit" | "BucketDeposit"; - } - - /** @name PalletPaymentStreamsHoldReason (267) */ - interface PalletPaymentStreamsHoldReason extends Enum { - readonly isPaymentStreamDeposit: boolean; - readonly type: "PaymentStreamDeposit"; - } - - /** @name PalletBalancesIdAmount (270) */ - interface PalletBalancesIdAmount extends Struct { - readonly id: Null; - readonly amount: u128; - } - - /** @name PalletBalancesCall (272) */ - interface PalletBalancesCall extends Enum { - readonly isTransferAllowDeath: boolean; - readonly asTransferAllowDeath: { - readonly dest: MultiAddress; - readonly value: Compact; - } & Struct; - readonly isForceTransfer: boolean; - readonly asForceTransfer: { - readonly source: MultiAddress; - readonly dest: MultiAddress; - readonly value: Compact; - } & Struct; - readonly isTransferKeepAlive: boolean; - readonly asTransferKeepAlive: { - readonly dest: MultiAddress; - readonly value: Compact; - } & Struct; - readonly isTransferAll: boolean; - readonly asTransferAll: { - readonly dest: MultiAddress; - readonly keepAlive: bool; - } & Struct; - readonly isForceUnreserve: boolean; - readonly asForceUnreserve: { - readonly who: MultiAddress; - readonly amount: u128; - } & Struct; - readonly isUpgradeAccounts: boolean; - readonly asUpgradeAccounts: { - readonly who: Vec; - } & Struct; - readonly isForceSetBalance: boolean; - readonly asForceSetBalance: { - readonly who: MultiAddress; - readonly newFree: Compact; - } & Struct; - readonly isForceAdjustTotalIssuance: boolean; - readonly asForceAdjustTotalIssuance: { - readonly direction: PalletBalancesAdjustmentDirection; - readonly delta: Compact; - } & Struct; - readonly isBurn: boolean; - readonly asBurn: { - readonly value: Compact; - readonly keepAlive: bool; - } & Struct; - readonly type: - | "TransferAllowDeath" - | "ForceTransfer" - | "TransferKeepAlive" - | "TransferAll" - | "ForceUnreserve" - | "UpgradeAccounts" - | "ForceSetBalance" - | "ForceAdjustTotalIssuance" - | "Burn"; - } - - /** @name PalletBalancesAdjustmentDirection (275) */ - interface PalletBalancesAdjustmentDirection extends Enum { - readonly isIncrease: boolean; - readonly isDecrease: boolean; - readonly type: "Increase" | "Decrease"; - } - - /** @name PalletBalancesError (276) */ - interface PalletBalancesError extends Enum { - readonly isVestingBalance: boolean; - readonly isLiquidityRestrictions: boolean; - readonly isInsufficientBalance: boolean; - readonly isExistentialDeposit: boolean; - readonly isExpendability: boolean; - readonly isExistingVestingSchedule: boolean; - readonly isDeadAccount: boolean; - readonly isTooManyReserves: boolean; - readonly isTooManyHolds: boolean; - readonly isTooManyFreezes: boolean; - readonly isIssuanceDeactivated: boolean; - readonly isDeltaZero: boolean; - readonly type: - | "VestingBalance" - | "LiquidityRestrictions" - | "InsufficientBalance" - | "ExistentialDeposit" - | "Expendability" - | "ExistingVestingSchedule" - | "DeadAccount" - | "TooManyReserves" - | "TooManyHolds" - | "TooManyFreezes" - | "IssuanceDeactivated" - | "DeltaZero"; - } - - /** @name PalletTransactionPaymentReleases (277) */ - interface PalletTransactionPaymentReleases extends Enum { - readonly isV1Ancient: boolean; - readonly isV2: boolean; - readonly type: "V1Ancient" | "V2"; - } - - /** @name PalletSudoCall (278) */ - interface PalletSudoCall extends Enum { - readonly isSudo: boolean; - readonly asSudo: { - readonly call: Call; - } & Struct; - readonly isSudoUncheckedWeight: boolean; - readonly asSudoUncheckedWeight: { - readonly call: Call; - readonly weight: SpWeightsWeightV2Weight; - } & Struct; - readonly isSetKey: boolean; - readonly asSetKey: { - readonly new_: MultiAddress; - } & Struct; - readonly isSudoAs: boolean; - readonly asSudoAs: { - readonly who: MultiAddress; - readonly call: Call; - } & Struct; - readonly isRemoveKey: boolean; - readonly type: "Sudo" | "SudoUncheckedWeight" | "SetKey" | "SudoAs" | "RemoveKey"; - } - - /** @name PalletCollatorSelectionCall (280) */ - interface PalletCollatorSelectionCall extends Enum { - readonly isSetInvulnerables: boolean; - readonly asSetInvulnerables: { - readonly new_: Vec; - } & Struct; - readonly isSetDesiredCandidates: boolean; - readonly asSetDesiredCandidates: { - readonly max: u32; - } & Struct; - readonly isSetCandidacyBond: boolean; - readonly asSetCandidacyBond: { - readonly bond: u128; - } & Struct; - readonly isRegisterAsCandidate: boolean; - readonly isLeaveIntent: boolean; - readonly isAddInvulnerable: boolean; - readonly asAddInvulnerable: { - readonly who: AccountId32; - } & Struct; - readonly isRemoveInvulnerable: boolean; - readonly asRemoveInvulnerable: { - readonly who: AccountId32; - } & Struct; - readonly isUpdateBond: boolean; - readonly asUpdateBond: { - readonly newDeposit: u128; - } & Struct; - readonly isTakeCandidateSlot: boolean; - readonly asTakeCandidateSlot: { - readonly deposit: u128; - readonly target: AccountId32; - } & Struct; - readonly type: - | "SetInvulnerables" - | "SetDesiredCandidates" - | "SetCandidacyBond" - | "RegisterAsCandidate" - | "LeaveIntent" - | "AddInvulnerable" - | "RemoveInvulnerable" - | "UpdateBond" - | "TakeCandidateSlot"; - } - - /** @name PalletSessionCall (281) */ - interface PalletSessionCall extends Enum { - readonly isSetKeys: boolean; - readonly asSetKeys: { - readonly keys_: StorageHubRuntimeSessionKeys; - readonly proof: Bytes; - } & Struct; - readonly isPurgeKeys: boolean; - readonly type: "SetKeys" | "PurgeKeys"; - } - - /** @name StorageHubRuntimeSessionKeys (282) */ - interface StorageHubRuntimeSessionKeys extends Struct { - readonly aura: SpConsensusAuraSr25519AppSr25519Public; - } - -<<<<<<< HEAD - /** @name SpConsensusAuraSr25519AppSr25519Public (258) */ - interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - - /** @name CumulusPalletXcmpQueueCall (259) */ -======= - /** @name SpConsensusAuraSr25519AppSr25519Public (283) */ - interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} - - /** @name CumulusPalletXcmpQueueCall (284) */ ->>>>>>> main - interface CumulusPalletXcmpQueueCall extends Enum { - readonly isSuspendXcmExecution: boolean; - readonly isResumeXcmExecution: boolean; - readonly isUpdateSuspendThreshold: boolean; - readonly asUpdateSuspendThreshold: { - readonly new_: u32; - } & Struct; - readonly isUpdateDropThreshold: boolean; - readonly asUpdateDropThreshold: { - readonly new_: u32; - } & Struct; - readonly isUpdateResumeThreshold: boolean; - readonly asUpdateResumeThreshold: { - readonly new_: u32; - } & Struct; - readonly type: - | "SuspendXcmExecution" - | "ResumeXcmExecution" - | "UpdateSuspendThreshold" - | "UpdateDropThreshold" - | "UpdateResumeThreshold"; - } - -<<<<<<< HEAD - /** @name PalletXcmCall (260) */ -======= - /** @name PalletXcmCall (285) */ ->>>>>>> main - interface PalletXcmCall extends Enum { - readonly isSend: boolean; - readonly asSend: { - readonly dest: XcmVersionedLocation; - readonly message: XcmVersionedXcm; - } & Struct; - readonly isTeleportAssets: boolean; - readonly asTeleportAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - } & Struct; - readonly isReserveTransferAssets: boolean; - readonly asReserveTransferAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - } & Struct; - readonly isExecute: boolean; - readonly asExecute: { - readonly message: XcmVersionedXcm; - readonly maxWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isForceXcmVersion: boolean; - readonly asForceXcmVersion: { - readonly location: StagingXcmV4Location; - readonly version: u32; - } & Struct; - readonly isForceDefaultXcmVersion: boolean; - readonly asForceDefaultXcmVersion: { - readonly maybeXcmVersion: Option; - } & Struct; - readonly isForceSubscribeVersionNotify: boolean; - readonly asForceSubscribeVersionNotify: { - readonly location: XcmVersionedLocation; - } & Struct; - readonly isForceUnsubscribeVersionNotify: boolean; - readonly asForceUnsubscribeVersionNotify: { - readonly location: XcmVersionedLocation; - } & Struct; - readonly isLimitedReserveTransferAssets: boolean; - readonly asLimitedReserveTransferAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isLimitedTeleportAssets: boolean; - readonly asLimitedTeleportAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isForceSuspension: boolean; - readonly asForceSuspension: { - readonly suspended: bool; - } & Struct; - readonly isTransferAssets: boolean; - readonly asTransferAssets: { - readonly dest: XcmVersionedLocation; - readonly beneficiary: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly feeAssetItem: u32; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isClaimAssets: boolean; - readonly asClaimAssets: { - readonly assets: XcmVersionedAssets; - readonly beneficiary: XcmVersionedLocation; - } & Struct; - readonly isTransferAssetsUsingTypeAndThen: boolean; - readonly asTransferAssetsUsingTypeAndThen: { - readonly dest: XcmVersionedLocation; - readonly assets: XcmVersionedAssets; - readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; - readonly remoteFeesId: XcmVersionedAssetId; - readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; - readonly customXcmOnDest: XcmVersionedXcm; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly type: - | "Send" - | "TeleportAssets" - | "ReserveTransferAssets" - | "Execute" - | "ForceXcmVersion" - | "ForceDefaultXcmVersion" - | "ForceSubscribeVersionNotify" - | "ForceUnsubscribeVersionNotify" - | "LimitedReserveTransferAssets" - | "LimitedTeleportAssets" - | "ForceSuspension" - | "TransferAssets" - | "ClaimAssets" - | "TransferAssetsUsingTypeAndThen"; - } - -<<<<<<< HEAD - /** @name XcmVersionedXcm (261) */ -======= - /** @name XcmVersionedXcm (286) */ ->>>>>>> main - interface XcmVersionedXcm extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2Xcm; - readonly isV3: boolean; - readonly asV3: XcmV3Xcm; - readonly isV4: boolean; - readonly asV4: StagingXcmV4Xcm; - readonly type: "V2" | "V3" | "V4"; - } - -<<<<<<< HEAD - /** @name XcmV2Xcm (262) */ - interface XcmV2Xcm extends Vec {} - - /** @name XcmV2Instruction (264) */ -======= - /** @name XcmV2Xcm (287) */ - interface XcmV2Xcm extends Vec {} - - /** @name XcmV2Instruction (289) */ ->>>>>>> main - interface XcmV2Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: XcmV2MultiassetMultiAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: XcmV2MultiassetMultiAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: XcmV2Response; - readonly maxWeight: Compact; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: XcmV2MultiassetMultiAssets; - readonly beneficiary: XcmV2MultiLocation; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: XcmV2MultiassetMultiAssets; - readonly dest: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originType: XcmV2OriginKind; - readonly requireWeightAtMost: Compact; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: XcmV2MultilocationJunctions; - readonly isReportError: boolean; - readonly asReportError: { - readonly queryId: Compact; - readonly dest: XcmV2MultiLocation; - readonly maxResponseWeight: Compact; - } & Struct; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly maxAssets: Compact; - readonly beneficiary: XcmV2MultiLocation; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly maxAssets: Compact; - readonly dest: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: XcmV2MultiassetMultiAssetFilter; - readonly receive: XcmV2MultiassetMultiAssets; - } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly reserve: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly dest: XcmV2MultiLocation; - readonly xcm: XcmV2Xcm; - } & Struct; - readonly isQueryHolding: boolean; - readonly asQueryHolding: { - readonly queryId: Compact; - readonly dest: XcmV2MultiLocation; - readonly assets: XcmV2MultiassetMultiAssetFilter; - readonly maxResponseWeight: Compact; - } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: XcmV2MultiAsset; - readonly weightLimit: XcmV2WeightLimit; - } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: XcmV2Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: XcmV2Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: XcmV2MultiassetMultiAssets; - readonly ticket: XcmV2MultiLocation; - } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: Compact; - } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly type: - | "WithdrawAsset" - | "ReserveAssetDeposited" - | "ReceiveTeleportedAsset" - | "QueryResponse" - | "TransferAsset" - | "TransferReserveAsset" - | "Transact" - | "HrmpNewChannelOpenRequest" - | "HrmpChannelAccepted" - | "HrmpChannelClosing" - | "ClearOrigin" - | "DescendOrigin" - | "ReportError" - | "DepositAsset" - | "DepositReserveAsset" - | "ExchangeAsset" - | "InitiateReserveWithdraw" - | "InitiateTeleport" - | "QueryHolding" - | "BuyExecution" - | "RefundSurplus" - | "SetErrorHandler" - | "SetAppendix" - | "ClearError" - | "ClaimAsset" - | "Trap" - | "SubscribeVersion" - | "UnsubscribeVersion"; - } - -<<<<<<< HEAD - /** @name XcmV2Response (265) */ -======= - /** @name XcmV2Response (290) */ ->>>>>>> main - interface XcmV2Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: XcmV2MultiassetMultiAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; - } - -<<<<<<< HEAD - /** @name XcmV2TraitsError (268) */ -======= - /** @name XcmV2TraitsError (293) */ ->>>>>>> main - interface XcmV2TraitsError extends Enum { - readonly isOverflow: boolean; - readonly isUnimplemented: boolean; - readonly isUntrustedReserveLocation: boolean; - readonly isUntrustedTeleportLocation: boolean; - readonly isMultiLocationFull: boolean; - readonly isMultiLocationNotInvertible: boolean; - readonly isBadOrigin: boolean; - readonly isInvalidLocation: boolean; - readonly isAssetNotFound: boolean; - readonly isFailedToTransactAsset: boolean; - readonly isNotWithdrawable: boolean; - readonly isLocationCannotHold: boolean; - readonly isExceedsMaxMessageSize: boolean; - readonly isDestinationUnsupported: boolean; - readonly isTransport: boolean; - readonly isUnroutable: boolean; - readonly isUnknownClaim: boolean; - readonly isFailedToDecode: boolean; - readonly isMaxWeightInvalid: boolean; - readonly isNotHoldingFees: boolean; - readonly isTooExpensive: boolean; - readonly isTrap: boolean; - readonly asTrap: u64; - readonly isUnhandledXcmVersion: boolean; - readonly isWeightLimitReached: boolean; - readonly asWeightLimitReached: u64; - readonly isBarrier: boolean; - readonly isWeightNotComputable: boolean; - readonly type: - | "Overflow" - | "Unimplemented" - | "UntrustedReserveLocation" - | "UntrustedTeleportLocation" - | "MultiLocationFull" - | "MultiLocationNotInvertible" - | "BadOrigin" - | "InvalidLocation" - | "AssetNotFound" - | "FailedToTransactAsset" - | "NotWithdrawable" - | "LocationCannotHold" - | "ExceedsMaxMessageSize" - | "DestinationUnsupported" - | "Transport" - | "Unroutable" - | "UnknownClaim" - | "FailedToDecode" - | "MaxWeightInvalid" - | "NotHoldingFees" - | "TooExpensive" - | "Trap" - | "UnhandledXcmVersion" - | "WeightLimitReached" - | "Barrier" - | "WeightNotComputable"; - } - -<<<<<<< HEAD - /** @name XcmV2OriginKind (269) */ - interface XcmV2OriginKind extends Enum { - readonly isNative: boolean; - readonly isSovereignAccount: boolean; - readonly isSuperuser: boolean; - readonly isXcm: boolean; - readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; - } - - /** @name XcmV2MultiassetMultiAssetFilter (270) */ -======= - /** @name XcmV2MultiassetMultiAssetFilter (294) */ ->>>>>>> main - interface XcmV2MultiassetMultiAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: XcmV2MultiassetMultiAssets; - readonly isWild: boolean; - readonly asWild: XcmV2MultiassetWildMultiAsset; - readonly type: "Definite" | "Wild"; - } - - /** @name XcmV2MultiassetWildMultiAsset (295) */ - interface XcmV2MultiassetWildMultiAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: XcmV2MultiassetAssetId; - readonly fun: XcmV2MultiassetWildFungibility; - } & Struct; - readonly type: "All" | "AllOf"; - } - - /** @name XcmV2MultiassetWildFungibility (296) */ - interface XcmV2MultiassetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: "Fungible" | "NonFungible"; - } - - /** @name XcmV2WeightLimit (297) */ - interface XcmV2WeightLimit extends Enum { - readonly isUnlimited: boolean; - readonly isLimited: boolean; - readonly asLimited: Compact; - readonly type: "Unlimited" | "Limited"; - } - - /** @name XcmV3Xcm (298) */ - interface XcmV3Xcm extends Vec {} - - /** @name XcmV3Instruction (300) */ - interface XcmV3Instruction extends Enum { - readonly isWithdrawAsset: boolean; - readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; - readonly isReserveAssetDeposited: boolean; - readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; - readonly isReceiveTeleportedAsset: boolean; - readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; - readonly isQueryResponse: boolean; - readonly asQueryResponse: { - readonly queryId: Compact; - readonly response: XcmV3Response; - readonly maxWeight: SpWeightsWeightV2Weight; - readonly querier: Option; - } & Struct; - readonly isTransferAsset: boolean; - readonly asTransferAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly beneficiary: StagingXcmV3MultiLocation; - } & Struct; - readonly isTransferReserveAsset: boolean; - readonly asTransferReserveAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly dest: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isTransact: boolean; - readonly asTransact: { - readonly originKind: XcmV3OriginKind; - readonly requireWeightAtMost: SpWeightsWeightV2Weight; - readonly call: XcmDoubleEncoded; - } & Struct; - readonly isHrmpNewChannelOpenRequest: boolean; - readonly asHrmpNewChannelOpenRequest: { - readonly sender: Compact; - readonly maxMessageSize: Compact; - readonly maxCapacity: Compact; - } & Struct; - readonly isHrmpChannelAccepted: boolean; - readonly asHrmpChannelAccepted: { - readonly recipient: Compact; - } & Struct; - readonly isHrmpChannelClosing: boolean; - readonly asHrmpChannelClosing: { - readonly initiator: Compact; - readonly sender: Compact; - readonly recipient: Compact; - } & Struct; - readonly isClearOrigin: boolean; - readonly isDescendOrigin: boolean; - readonly asDescendOrigin: XcmV3Junctions; - readonly isReportError: boolean; - readonly asReportError: XcmV3QueryResponseInfo; - readonly isDepositAsset: boolean; - readonly asDepositAsset: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly beneficiary: StagingXcmV3MultiLocation; - } & Struct; - readonly isDepositReserveAsset: boolean; - readonly asDepositReserveAsset: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly dest: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isExchangeAsset: boolean; - readonly asExchangeAsset: { - readonly give: XcmV3MultiassetMultiAssetFilter; - readonly want: XcmV3MultiassetMultiAssets; - readonly maximal: bool; - } & Struct; - readonly isInitiateReserveWithdraw: boolean; - readonly asInitiateReserveWithdraw: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly reserve: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isInitiateTeleport: boolean; - readonly asInitiateTeleport: { - readonly assets: XcmV3MultiassetMultiAssetFilter; - readonly dest: StagingXcmV3MultiLocation; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isReportHolding: boolean; - readonly asReportHolding: { - readonly responseInfo: XcmV3QueryResponseInfo; - readonly assets: XcmV3MultiassetMultiAssetFilter; - } & Struct; - readonly isBuyExecution: boolean; - readonly asBuyExecution: { - readonly fees: XcmV3MultiAsset; - readonly weightLimit: XcmV3WeightLimit; - } & Struct; - readonly isRefundSurplus: boolean; - readonly isSetErrorHandler: boolean; - readonly asSetErrorHandler: XcmV3Xcm; - readonly isSetAppendix: boolean; - readonly asSetAppendix: XcmV3Xcm; - readonly isClearError: boolean; - readonly isClaimAsset: boolean; - readonly asClaimAsset: { - readonly assets: XcmV3MultiassetMultiAssets; - readonly ticket: StagingXcmV3MultiLocation; - } & Struct; - readonly isTrap: boolean; - readonly asTrap: Compact; - readonly isSubscribeVersion: boolean; - readonly asSubscribeVersion: { - readonly queryId: Compact; - readonly maxResponseWeight: SpWeightsWeightV2Weight; - } & Struct; - readonly isUnsubscribeVersion: boolean; - readonly isBurnAsset: boolean; - readonly asBurnAsset: XcmV3MultiassetMultiAssets; - readonly isExpectAsset: boolean; - readonly asExpectAsset: XcmV3MultiassetMultiAssets; - readonly isExpectOrigin: boolean; - readonly asExpectOrigin: Option; - readonly isExpectError: boolean; - readonly asExpectError: Option>; - readonly isExpectTransactStatus: boolean; - readonly asExpectTransactStatus: XcmV3MaybeErrorCode; - readonly isQueryPallet: boolean; - readonly asQueryPallet: { - readonly moduleName: Bytes; - readonly responseInfo: XcmV3QueryResponseInfo; - } & Struct; - readonly isExpectPallet: boolean; - readonly asExpectPallet: { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly crateMajor: Compact; - readonly minCrateMinor: Compact; - } & Struct; - readonly isReportTransactStatus: boolean; - readonly asReportTransactStatus: XcmV3QueryResponseInfo; - readonly isClearTransactStatus: boolean; - readonly isUniversalOrigin: boolean; - readonly asUniversalOrigin: XcmV3Junction; - readonly isExportMessage: boolean; - readonly asExportMessage: { - readonly network: XcmV3JunctionNetworkId; - readonly destination: XcmV3Junctions; - readonly xcm: XcmV3Xcm; - } & Struct; - readonly isLockAsset: boolean; - readonly asLockAsset: { - readonly asset: XcmV3MultiAsset; - readonly unlocker: StagingXcmV3MultiLocation; - } & Struct; - readonly isUnlockAsset: boolean; - readonly asUnlockAsset: { - readonly asset: XcmV3MultiAsset; - readonly target: StagingXcmV3MultiLocation; - } & Struct; - readonly isNoteUnlockable: boolean; - readonly asNoteUnlockable: { - readonly asset: XcmV3MultiAsset; - readonly owner: StagingXcmV3MultiLocation; - } & Struct; - readonly isRequestUnlock: boolean; - readonly asRequestUnlock: { - readonly asset: XcmV3MultiAsset; - readonly locker: StagingXcmV3MultiLocation; - } & Struct; - readonly isSetFeesMode: boolean; - readonly asSetFeesMode: { - readonly jitWithdraw: bool; - } & Struct; - readonly isSetTopic: boolean; - readonly asSetTopic: U8aFixed; - readonly isClearTopic: boolean; - readonly isAliasOrigin: boolean; - readonly asAliasOrigin: StagingXcmV3MultiLocation; - readonly isUnpaidExecution: boolean; - readonly asUnpaidExecution: { - readonly weightLimit: XcmV3WeightLimit; - readonly checkOrigin: Option; - } & Struct; - readonly type: - | "WithdrawAsset" - | "ReserveAssetDeposited" - | "ReceiveTeleportedAsset" - | "QueryResponse" - | "TransferAsset" - | "TransferReserveAsset" - | "Transact" - | "HrmpNewChannelOpenRequest" - | "HrmpChannelAccepted" - | "HrmpChannelClosing" - | "ClearOrigin" - | "DescendOrigin" - | "ReportError" - | "DepositAsset" - | "DepositReserveAsset" - | "ExchangeAsset" - | "InitiateReserveWithdraw" - | "InitiateTeleport" - | "ReportHolding" - | "BuyExecution" - | "RefundSurplus" - | "SetErrorHandler" - | "SetAppendix" - | "ClearError" - | "ClaimAsset" - | "Trap" - | "SubscribeVersion" - | "UnsubscribeVersion" - | "BurnAsset" - | "ExpectAsset" - | "ExpectOrigin" - | "ExpectError" - | "ExpectTransactStatus" - | "QueryPallet" - | "ExpectPallet" - | "ReportTransactStatus" - | "ClearTransactStatus" - | "UniversalOrigin" - | "ExportMessage" - | "LockAsset" - | "UnlockAsset" - | "NoteUnlockable" - | "RequestUnlock" - | "SetFeesMode" - | "SetTopic" - | "ClearTopic" - | "AliasOrigin" - | "UnpaidExecution"; - } - - /** @name XcmV3Response (301) */ - interface XcmV3Response extends Enum { - readonly isNull: boolean; - readonly isAssets: boolean; - readonly asAssets: XcmV3MultiassetMultiAssets; - readonly isExecutionResult: boolean; - readonly asExecutionResult: Option>; - readonly isVersion: boolean; - readonly asVersion: u32; - readonly isPalletsInfo: boolean; - readonly asPalletsInfo: Vec; - readonly isDispatchResult: boolean; - readonly asDispatchResult: XcmV3MaybeErrorCode; - readonly type: - | "Null" - | "Assets" - | "ExecutionResult" - | "Version" - | "PalletsInfo" - | "DispatchResult"; - } - - /** @name XcmV3PalletInfo (303) */ - interface XcmV3PalletInfo extends Struct { - readonly index: Compact; - readonly name: Bytes; - readonly moduleName: Bytes; - readonly major: Compact; - readonly minor: Compact; - readonly patch: Compact; - } - - /** @name XcmV3QueryResponseInfo (307) */ - interface XcmV3QueryResponseInfo extends Struct { - readonly destination: StagingXcmV3MultiLocation; - readonly queryId: Compact; - readonly maxWeight: SpWeightsWeightV2Weight; - } - - /** @name XcmV3MultiassetMultiAssetFilter (308) */ - interface XcmV3MultiassetMultiAssetFilter extends Enum { - readonly isDefinite: boolean; - readonly asDefinite: XcmV3MultiassetMultiAssets; - readonly isWild: boolean; - readonly asWild: XcmV3MultiassetWildMultiAsset; - readonly type: "Definite" | "Wild"; - } - - /** @name XcmV3MultiassetWildMultiAsset (309) */ - interface XcmV3MultiassetWildMultiAsset extends Enum { - readonly isAll: boolean; - readonly isAllOf: boolean; - readonly asAllOf: { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetWildFungibility; - } & Struct; - readonly isAllCounted: boolean; - readonly asAllCounted: Compact; - readonly isAllOfCounted: boolean; - readonly asAllOfCounted: { - readonly id: XcmV3MultiassetAssetId; - readonly fun: XcmV3MultiassetWildFungibility; - readonly count: Compact; - } & Struct; - readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; - } - - /** @name XcmV3MultiassetWildFungibility (310) */ - interface XcmV3MultiassetWildFungibility extends Enum { - readonly isFungible: boolean; - readonly isNonFungible: boolean; - readonly type: "Fungible" | "NonFungible"; - } - -<<<<<<< HEAD - /** @name StagingXcmExecutorAssetTransferTransferType (298) */ -======= - /** @name StagingXcmExecutorAssetTransferTransferType (322) */ ->>>>>>> main - interface StagingXcmExecutorAssetTransferTransferType extends Enum { - readonly isTeleport: boolean; - readonly isLocalReserve: boolean; - readonly isDestinationReserve: boolean; - readonly isRemoteReserve: boolean; - readonly asRemoteReserve: XcmVersionedLocation; - readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; - } - -<<<<<<< HEAD - /** @name XcmVersionedAssetId (299) */ -======= - /** @name XcmVersionedAssetId (323) */ ->>>>>>> main - interface XcmVersionedAssetId extends Enum { - readonly isV3: boolean; - readonly asV3: XcmV3MultiassetAssetId; - readonly isV4: boolean; - readonly asV4: StagingXcmV4AssetAssetId; - readonly type: "V3" | "V4"; - } - -<<<<<<< HEAD - /** @name CumulusPalletXcmCall (300) */ - type CumulusPalletXcmCall = Null; - - /** @name PalletMessageQueueCall (301) */ -======= - /** @name CumulusPalletXcmCall (324) */ - type CumulusPalletXcmCall = Null; - - /** @name PalletMessageQueueCall (325) */ ->>>>>>> main - interface PalletMessageQueueCall extends Enum { - readonly isReapPage: boolean; - readonly asReapPage: { - readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly pageIndex: u32; - } & Struct; - readonly isExecuteOverweight: boolean; - readonly asExecuteOverweight: { - readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly page: u32; - readonly index: u32; - readonly weightLimit: SpWeightsWeightV2Weight; - } & Struct; - readonly type: "ReapPage" | "ExecuteOverweight"; - } - -<<<<<<< HEAD - /** @name PalletStorageProvidersCall (302) */ -======= - /** @name PalletStorageProvidersCall (326) */ ->>>>>>> main - interface PalletStorageProvidersCall extends Enum { - readonly isRequestMspSignUp: boolean; - readonly asRequestMspSignUp: { - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly valueProp: PalletStorageProvidersValueProposition; - readonly paymentAccount: AccountId32; - } & Struct; - readonly isRequestBspSignUp: boolean; - readonly asRequestBspSignUp: { - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly paymentAccount: AccountId32; - } & Struct; - readonly isConfirmSignUp: boolean; - readonly asConfirmSignUp: { - readonly providerAccount: Option; - } & Struct; - readonly isCancelSignUp: boolean; - readonly isMspSignOff: boolean; - readonly isBspSignOff: boolean; - readonly isChangeCapacity: boolean; - readonly asChangeCapacity: { - readonly newCapacity: u64; - } & Struct; - readonly isAddValueProp: boolean; - readonly asAddValueProp: { - readonly newValueProp: PalletStorageProvidersValueProposition; - } & Struct; - readonly isForceMspSignUp: boolean; - readonly asForceMspSignUp: { - readonly who: AccountId32; - readonly mspId: H256; - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly valueProp: PalletStorageProvidersValueProposition; - readonly paymentAccount: AccountId32; - } & Struct; - readonly isForceBspSignUp: boolean; - readonly asForceBspSignUp: { - readonly who: AccountId32; - readonly bspId: H256; - readonly capacity: u64; - readonly multiaddresses: Vec; - readonly paymentAccount: AccountId32; - readonly weight: Option; - } & Struct; - readonly isSlash: boolean; - readonly asSlash: { - readonly providerId: H256; - } & Struct; - readonly type: - | "RequestMspSignUp" - | "RequestBspSignUp" - | "ConfirmSignUp" - | "CancelSignUp" - | "MspSignOff" - | "BspSignOff" - | "ChangeCapacity" - | "AddValueProp" - | "ForceMspSignUp" - | "ForceBspSignUp" - | "Slash"; - } - -<<<<<<< HEAD - /** @name PalletFileSystemCall (303) */ -======= - /** @name PalletFileSystemCall (327) */ ->>>>>>> main - interface PalletFileSystemCall extends Enum { - readonly isCreateBucket: boolean; - readonly asCreateBucket: { - readonly mspId: H256; - readonly name: Bytes; - readonly private: bool; - } & Struct; - readonly isRequestMoveBucket: boolean; - readonly asRequestMoveBucket: { - readonly bucketId: H256; - readonly newMspId: H256; - } & Struct; - readonly isMspRespondMoveBucketRequest: boolean; - readonly asMspRespondMoveBucketRequest: { - readonly bucketId: H256; - readonly response: PalletFileSystemBucketMoveRequestResponse; - } & Struct; - readonly isUpdateBucketPrivacy: boolean; - readonly asUpdateBucketPrivacy: { - readonly bucketId: H256; - readonly private: bool; - } & Struct; - readonly isCreateAndAssociateCollectionWithBucket: boolean; - readonly asCreateAndAssociateCollectionWithBucket: { - readonly bucketId: H256; - } & Struct; - readonly isIssueStorageRequest: boolean; - readonly asIssueStorageRequest: { - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly size_: u64; - readonly mspId: H256; - readonly peerIds: Vec; - } & Struct; - readonly isRevokeStorageRequest: boolean; - readonly asRevokeStorageRequest: { - readonly fileKey: H256; - } & Struct; - readonly isBspAddDataServerForMoveBucketRequest: boolean; - readonly asBspAddDataServerForMoveBucketRequest: { - readonly bucketId: H256; - } & Struct; - readonly isMspRespondStorageRequestsMultipleBuckets: boolean; - readonly asMspRespondStorageRequestsMultipleBuckets: { - readonly fileKeyResponsesInput: Vec< - ITuple<[H256, PalletFileSystemMspStorageRequestResponse]> - >; - } & Struct; - readonly isBspVolunteer: boolean; - readonly asBspVolunteer: { - readonly fileKey: H256; - } & Struct; - readonly isBspConfirmStoring: boolean; - readonly asBspConfirmStoring: { - readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; - readonly fileKeysAndProofs: Vec>; - } & Struct; - readonly isBspRequestStopStoring: boolean; - readonly asBspRequestStopStoring: { - readonly fileKey: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly owner: AccountId32; - readonly fingerprint: H256; - readonly size_: u64; - readonly canServe: bool; - readonly inclusionForestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isBspConfirmStopStoring: boolean; - readonly asBspConfirmStopStoring: { - readonly fileKey: H256; - readonly inclusionForestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isStopStoringForInsolventUser: boolean; - readonly asStopStoringForInsolventUser: { - readonly fileKey: H256; - readonly bucketId: H256; - readonly location: Bytes; - readonly owner: AccountId32; - readonly fingerprint: H256; - readonly size_: u64; - readonly inclusionForestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isDeleteFile: boolean; - readonly asDeleteFile: { - readonly bucketId: H256; - readonly fileKey: H256; - readonly location: Bytes; - readonly size_: u64; - readonly fingerprint: H256; - readonly maybeInclusionForestProof: Option; - } & Struct; - readonly isPendingFileDeletionRequestSubmitProof: boolean; - readonly asPendingFileDeletionRequestSubmitProof: { - readonly user: AccountId32; - readonly fileKey: H256; - readonly bucketId: H256; - readonly forestProof: SpTrieStorageProofCompactProof; - } & Struct; - readonly isSetGlobalParameters: boolean; - readonly asSetGlobalParameters: { - readonly replicationTarget: Option; - readonly tickRangeToMaximumThreshold: Option; - } & Struct; - readonly type: - | "CreateBucket" - | "RequestMoveBucket" - | "MspRespondMoveBucketRequest" - | "UpdateBucketPrivacy" - | "CreateAndAssociateCollectionWithBucket" - | "IssueStorageRequest" - | "RevokeStorageRequest" - | "BspAddDataServerForMoveBucketRequest" - | "MspRespondStorageRequestsMultipleBuckets" - | "BspVolunteer" - | "BspConfirmStoring" - | "BspRequestStopStoring" - | "BspConfirmStopStoring" - | "StopStoringForInsolventUser" - | "DeleteFile" - | "PendingFileDeletionRequestSubmitProof" - | "SetGlobalParameters"; - } - -<<<<<<< HEAD - /** @name PalletFileSystemBucketMoveRequestResponse (304) */ -======= - /** @name PalletFileSystemBucketMoveRequestResponse (328) */ ->>>>>>> main - interface PalletFileSystemBucketMoveRequestResponse extends Enum { - readonly isAccepted: boolean; - readonly isRejected: boolean; - readonly type: "Accepted" | "Rejected"; - } - -<<<<<<< HEAD - /** @name PalletProofsDealerCall (309) */ -======= - /** @name PalletFileSystemMspStorageRequestResponse (331) */ - interface PalletFileSystemMspStorageRequestResponse extends Struct { - readonly accept: Option; - readonly reject: Option>>; - } - - /** @name PalletFileSystemAcceptedStorageRequestParameters (333) */ - interface PalletFileSystemAcceptedStorageRequestParameters extends Struct { - readonly fileKeysAndProofs: Vec>; - readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; - } - - /** @name PalletProofsDealerCall (340) */ ->>>>>>> main - interface PalletProofsDealerCall extends Enum { - readonly isChallenge: boolean; - readonly asChallenge: { - readonly key: H256; - } & Struct; - readonly isSubmitProof: boolean; - readonly asSubmitProof: { - readonly proof: PalletProofsDealerProof; - readonly provider: Option; - } & Struct; - readonly isForceInitialiseChallengeCycle: boolean; - readonly asForceInitialiseChallengeCycle: { - readonly provider: H256; - } & Struct; - readonly isSetPaused: boolean; - readonly asSetPaused: { - readonly paused: bool; - } & Struct; - readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; - } - -<<<<<<< HEAD - /** @name PalletRandomnessCall (310) */ -======= - /** @name PalletRandomnessCall (341) */ ->>>>>>> main - interface PalletRandomnessCall extends Enum { - readonly isSetBabeRandomness: boolean; - readonly type: "SetBabeRandomness"; - } - -<<<<<<< HEAD - /** @name PalletPaymentStreamsCall (311) */ -======= - /** @name PalletPaymentStreamsCall (342) */ ->>>>>>> main - interface PalletPaymentStreamsCall extends Enum { - readonly isCreateFixedRatePaymentStream: boolean; - readonly asCreateFixedRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly rate: u128; - } & Struct; - readonly isUpdateFixedRatePaymentStream: boolean; - readonly asUpdateFixedRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly newRate: u128; - } & Struct; - readonly isDeleteFixedRatePaymentStream: boolean; - readonly asDeleteFixedRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - } & Struct; - readonly isCreateDynamicRatePaymentStream: boolean; - readonly asCreateDynamicRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly amountProvided: u64; - } & Struct; - readonly isUpdateDynamicRatePaymentStream: boolean; - readonly asUpdateDynamicRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - readonly newAmountProvided: u64; - } & Struct; - readonly isDeleteDynamicRatePaymentStream: boolean; - readonly asDeleteDynamicRatePaymentStream: { - readonly providerId: H256; - readonly userAccount: AccountId32; - } & Struct; - readonly isChargePaymentStreams: boolean; - readonly asChargePaymentStreams: { - readonly userAccount: AccountId32; - } & Struct; - readonly isPayOutstandingDebt: boolean; - readonly isClearInsolventFlag: boolean; - readonly type: - | "CreateFixedRatePaymentStream" - | "UpdateFixedRatePaymentStream" - | "DeleteFixedRatePaymentStream" - | "CreateDynamicRatePaymentStream" - | "UpdateDynamicRatePaymentStream" - | "DeleteDynamicRatePaymentStream" - | "ChargePaymentStreams" - | "PayOutstandingDebt" - | "ClearInsolventFlag"; - } - -<<<<<<< HEAD - /** @name PalletBucketNftsCall (312) */ -======= - /** @name PalletBucketNftsCall (343) */ ->>>>>>> main - interface PalletBucketNftsCall extends Enum { - readonly isShareAccess: boolean; - readonly asShareAccess: { - readonly recipient: MultiAddress; - readonly bucket: H256; - readonly itemId: u32; - readonly readAccessRegex: Option; - } & Struct; - readonly isUpdateReadAccess: boolean; - readonly asUpdateReadAccess: { - readonly bucket: H256; - readonly itemId: u32; - readonly readAccessRegex: Option; - } & Struct; - readonly type: "ShareAccess" | "UpdateReadAccess"; - } - -<<<<<<< HEAD - /** @name PalletNftsCall (314) */ -======= - /** @name PalletNftsCall (345) */ ->>>>>>> main - interface PalletNftsCall extends Enum { - readonly isCreate: boolean; - readonly asCreate: { - readonly admin: MultiAddress; - readonly config: PalletNftsCollectionConfig; - } & Struct; - readonly isForceCreate: boolean; - readonly asForceCreate: { - readonly owner: MultiAddress; - readonly config: PalletNftsCollectionConfig; - } & Struct; - readonly isDestroy: boolean; - readonly asDestroy: { - readonly collection: u32; - readonly witness: PalletNftsDestroyWitness; - } & Struct; - readonly isMint: boolean; - readonly asMint: { - readonly collection: u32; - readonly item: u32; - readonly mintTo: MultiAddress; - readonly witnessData: Option; - } & Struct; - readonly isForceMint: boolean; - readonly asForceMint: { - readonly collection: u32; - readonly item: u32; - readonly mintTo: MultiAddress; - readonly itemConfig: PalletNftsItemConfig; - } & Struct; - readonly isBurn: boolean; - readonly asBurn: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isTransfer: boolean; - readonly asTransfer: { - readonly collection: u32; - readonly item: u32; - readonly dest: MultiAddress; - } & Struct; - readonly isRedeposit: boolean; - readonly asRedeposit: { - readonly collection: u32; - readonly items: Vec; - } & Struct; - readonly isLockItemTransfer: boolean; - readonly asLockItemTransfer: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isUnlockItemTransfer: boolean; - readonly asUnlockItemTransfer: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isLockCollection: boolean; - readonly asLockCollection: { - readonly collection: u32; - readonly lockSettings: u64; - } & Struct; - readonly isTransferOwnership: boolean; - readonly asTransferOwnership: { - readonly collection: u32; - readonly newOwner: MultiAddress; - } & Struct; - readonly isSetTeam: boolean; - readonly asSetTeam: { - readonly collection: u32; - readonly issuer: Option; - readonly admin: Option; - readonly freezer: Option; - } & Struct; - readonly isForceCollectionOwner: boolean; - readonly asForceCollectionOwner: { - readonly collection: u32; - readonly owner: MultiAddress; - } & Struct; - readonly isForceCollectionConfig: boolean; - readonly asForceCollectionConfig: { - readonly collection: u32; - readonly config: PalletNftsCollectionConfig; - } & Struct; - readonly isApproveTransfer: boolean; - readonly asApproveTransfer: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - readonly maybeDeadline: Option; - } & Struct; - readonly isCancelApproval: boolean; - readonly asCancelApproval: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - } & Struct; - readonly isClearAllTransferApprovals: boolean; - readonly asClearAllTransferApprovals: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isLockItemProperties: boolean; - readonly asLockItemProperties: { - readonly collection: u32; - readonly item: u32; - readonly lockMetadata: bool; - readonly lockAttributes: bool; - } & Struct; - readonly isSetAttribute: boolean; - readonly asSetAttribute: { - readonly collection: u32; - readonly maybeItem: Option; - readonly namespace: PalletNftsAttributeNamespace; - readonly key: Bytes; - readonly value: Bytes; - } & Struct; - readonly isForceSetAttribute: boolean; - readonly asForceSetAttribute: { - readonly setAs: Option; - readonly collection: u32; - readonly maybeItem: Option; - readonly namespace: PalletNftsAttributeNamespace; - readonly key: Bytes; - readonly value: Bytes; - } & Struct; - readonly isClearAttribute: boolean; - readonly asClearAttribute: { - readonly collection: u32; - readonly maybeItem: Option; - readonly namespace: PalletNftsAttributeNamespace; - readonly key: Bytes; - } & Struct; - readonly isApproveItemAttributes: boolean; - readonly asApproveItemAttributes: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - } & Struct; - readonly isCancelItemAttributesApproval: boolean; - readonly asCancelItemAttributesApproval: { - readonly collection: u32; - readonly item: u32; - readonly delegate: MultiAddress; - readonly witness: PalletNftsCancelAttributesApprovalWitness; - } & Struct; - readonly isSetMetadata: boolean; - readonly asSetMetadata: { - readonly collection: u32; - readonly item: u32; - readonly data: Bytes; - } & Struct; - readonly isClearMetadata: boolean; - readonly asClearMetadata: { - readonly collection: u32; - readonly item: u32; - } & Struct; - readonly isSetCollectionMetadata: boolean; - readonly asSetCollectionMetadata: { - readonly collection: u32; - readonly data: Bytes; - } & Struct; - readonly isClearCollectionMetadata: boolean; - readonly asClearCollectionMetadata: { - readonly collection: u32; - } & Struct; - readonly isSetAcceptOwnership: boolean; - readonly asSetAcceptOwnership: { - readonly maybeCollection: Option; - } & Struct; - readonly isSetCollectionMaxSupply: boolean; - readonly asSetCollectionMaxSupply: { - readonly collection: u32; - readonly maxSupply: u32; - } & Struct; - readonly isUpdateMintSettings: boolean; - readonly asUpdateMintSettings: { - readonly collection: u32; - readonly mintSettings: PalletNftsMintSettings; - } & Struct; - readonly isSetPrice: boolean; - readonly asSetPrice: { - readonly collection: u32; - readonly item: u32; - readonly price: Option; - readonly whitelistedBuyer: Option; - } & Struct; - readonly isBuyItem: boolean; - readonly asBuyItem: { - readonly collection: u32; - readonly item: u32; - readonly bidPrice: u128; - } & Struct; - readonly isPayTips: boolean; - readonly asPayTips: { - readonly tips: Vec; - } & Struct; - readonly isCreateSwap: boolean; - readonly asCreateSwap: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - readonly desiredCollection: u32; - readonly maybeDesiredItem: Option; - readonly maybePrice: Option; - readonly duration: u32; - } & Struct; - readonly isCancelSwap: boolean; - readonly asCancelSwap: { - readonly offeredCollection: u32; - readonly offeredItem: u32; - } & Struct; - readonly isClaimSwap: boolean; - readonly asClaimSwap: { - readonly sendCollection: u32; - readonly sendItem: u32; - readonly receiveCollection: u32; - readonly receiveItem: u32; - readonly witnessPrice: Option; - } & Struct; - readonly isMintPreSigned: boolean; - readonly asMintPreSigned: { - readonly mintData: PalletNftsPreSignedMint; - readonly signature: SpRuntimeMultiSignature; - readonly signer: AccountId32; - } & Struct; - readonly isSetAttributesPreSigned: boolean; - readonly asSetAttributesPreSigned: { - readonly data: PalletNftsPreSignedAttributes; - readonly signature: SpRuntimeMultiSignature; - readonly signer: AccountId32; - } & Struct; - readonly type: - | "Create" - | "ForceCreate" - | "Destroy" - | "Mint" - | "ForceMint" - | "Burn" - | "Transfer" - | "Redeposit" - | "LockItemTransfer" - | "UnlockItemTransfer" - | "LockCollection" - | "TransferOwnership" - | "SetTeam" - | "ForceCollectionOwner" - | "ForceCollectionConfig" - | "ApproveTransfer" - | "CancelApproval" - | "ClearAllTransferApprovals" - | "LockItemProperties" - | "SetAttribute" - | "ForceSetAttribute" - | "ClearAttribute" - | "ApproveItemAttributes" - | "CancelItemAttributesApproval" - | "SetMetadata" - | "ClearMetadata" - | "SetCollectionMetadata" - | "ClearCollectionMetadata" - | "SetAcceptOwnership" - | "SetCollectionMaxSupply" - | "UpdateMintSettings" - | "SetPrice" - | "BuyItem" - | "PayTips" - | "CreateSwap" - | "CancelSwap" - | "ClaimSwap" - | "MintPreSigned" - | "SetAttributesPreSigned"; - } - -<<<<<<< HEAD - /** @name PalletNftsCollectionConfig (315) */ -======= - /** @name PalletNftsCollectionConfig (346) */ ->>>>>>> main - interface PalletNftsCollectionConfig extends Struct { - readonly settings: u64; - readonly maxSupply: Option; - readonly mintSettings: PalletNftsMintSettings; - } - -<<<<<<< HEAD - /** @name PalletNftsCollectionSetting (317) */ -======= - /** @name PalletNftsCollectionSetting (348) */ ->>>>>>> main - interface PalletNftsCollectionSetting extends Enum { - readonly isTransferableItems: boolean; - readonly isUnlockedMetadata: boolean; - readonly isUnlockedAttributes: boolean; - readonly isUnlockedMaxSupply: boolean; - readonly isDepositRequired: boolean; - readonly type: - | "TransferableItems" - | "UnlockedMetadata" - | "UnlockedAttributes" - | "UnlockedMaxSupply" - | "DepositRequired"; - } - -<<<<<<< HEAD - /** @name PalletNftsMintSettings (318) */ -======= - /** @name PalletNftsMintSettings (349) */ ->>>>>>> main - interface PalletNftsMintSettings extends Struct { - readonly mintType: PalletNftsMintType; - readonly price: Option; - readonly startBlock: Option; - readonly endBlock: Option; - readonly defaultItemSettings: u64; - } - -<<<<<<< HEAD - /** @name PalletNftsMintType (319) */ -======= - /** @name PalletNftsMintType (350) */ ->>>>>>> main - interface PalletNftsMintType extends Enum { - readonly isIssuer: boolean; - readonly isPublic: boolean; - readonly isHolderOf: boolean; - readonly asHolderOf: u32; - readonly type: "Issuer" | "Public" | "HolderOf"; - } - -<<<<<<< HEAD - /** @name PalletNftsItemSetting (322) */ -======= - /** @name PalletNftsItemSetting (353) */ ->>>>>>> main - interface PalletNftsItemSetting extends Enum { - readonly isTransferable: boolean; - readonly isUnlockedMetadata: boolean; - readonly isUnlockedAttributes: boolean; - readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; - } - -<<<<<<< HEAD - /** @name PalletNftsDestroyWitness (323) */ -======= - /** @name PalletNftsDestroyWitness (354) */ ->>>>>>> main - interface PalletNftsDestroyWitness extends Struct { - readonly itemMetadatas: Compact; - readonly itemConfigs: Compact; - readonly attributes: Compact; - } - -<<<<<<< HEAD - /** @name PalletNftsMintWitness (325) */ -======= - /** @name PalletNftsMintWitness (356) */ ->>>>>>> main - interface PalletNftsMintWitness extends Struct { - readonly ownedItem: Option; - readonly mintPrice: Option; - } - -<<<<<<< HEAD - /** @name PalletNftsItemConfig (326) */ -======= - /** @name PalletNftsItemConfig (357) */ ->>>>>>> main - interface PalletNftsItemConfig extends Struct { - readonly settings: u64; - } - -<<<<<<< HEAD - /** @name PalletNftsCancelAttributesApprovalWitness (328) */ -======= - /** @name PalletNftsCancelAttributesApprovalWitness (359) */ ->>>>>>> main - interface PalletNftsCancelAttributesApprovalWitness extends Struct { - readonly accountAttributes: u32; - } - -<<<<<<< HEAD - /** @name PalletNftsItemTip (330) */ -======= - /** @name PalletNftsItemTip (361) */ ->>>>>>> main - interface PalletNftsItemTip extends Struct { - readonly collection: u32; - readonly item: u32; - readonly receiver: AccountId32; - readonly amount: u128; - } - -<<<<<<< HEAD - /** @name PalletNftsPreSignedMint (332) */ -======= - /** @name PalletNftsPreSignedMint (363) */ ->>>>>>> main - interface PalletNftsPreSignedMint extends Struct { - readonly collection: u32; - readonly item: u32; - readonly attributes: Vec>; - readonly metadata: Bytes; - readonly onlyAccount: Option; - readonly deadline: u32; - readonly mintPrice: Option; - } - -<<<<<<< HEAD - /** @name SpRuntimeMultiSignature (333) */ -======= - /** @name SpRuntimeMultiSignature (364) */ ->>>>>>> main - interface SpRuntimeMultiSignature extends Enum { - readonly isEd25519: boolean; - readonly asEd25519: U8aFixed; - readonly isSr25519: boolean; - readonly asSr25519: U8aFixed; - readonly isEcdsa: boolean; - readonly asEcdsa: U8aFixed; - readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; - } - -<<<<<<< HEAD - /** @name PalletNftsPreSignedAttributes (336) */ -======= - /** @name PalletNftsPreSignedAttributes (367) */ ->>>>>>> main - interface PalletNftsPreSignedAttributes extends Struct { - readonly collection: u32; - readonly item: u32; - readonly attributes: Vec>; - readonly namespace: PalletNftsAttributeNamespace; - readonly deadline: u32; - } - -<<<<<<< HEAD - /** @name PalletSudoError (337) */ -======= - /** @name PalletParametersCall (368) */ - interface PalletParametersCall extends Enum { - readonly isSetParameter: boolean; - readonly asSetParameter: { - readonly keyValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; - } & Struct; - readonly type: "SetParameter"; - } - - /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (369) */ - interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters extends Enum { - readonly isRuntimeConfig: boolean; - readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; - readonly type: "RuntimeConfig"; - } - - /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (370) */ - interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters extends Enum { - readonly isSlashAmountPerMaxFileSize: boolean; - readonly asSlashAmountPerMaxFileSize: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, - Option - ] - >; - readonly isStakeToChallengePeriod: boolean; - readonly asStakeToChallengePeriod: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, - Option - ] - >; - readonly isCheckpointChallengePeriod: boolean; - readonly asCheckpointChallengePeriod: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, - Option - ] - >; - readonly isMinChallengePeriod: boolean; - readonly asMinChallengePeriod: ITuple< - [ - StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, - Option - ] - >; - readonly type: - | "SlashAmountPerMaxFileSize" - | "StakeToChallengePeriod" - | "CheckpointChallengePeriod" - | "MinChallengePeriod"; - } - - /** @name PalletSudoError (371) */ ->>>>>>> main - interface PalletSudoError extends Enum { - readonly isRequireSudo: boolean; - readonly type: "RequireSudo"; - } - -<<<<<<< HEAD - /** @name PalletCollatorSelectionCandidateInfo (340) */ -======= - /** @name PalletCollatorSelectionCandidateInfo (374) */ ->>>>>>> main - interface PalletCollatorSelectionCandidateInfo extends Struct { - readonly who: AccountId32; - readonly deposit: u128; - } - -<<<<<<< HEAD - /** @name PalletCollatorSelectionError (342) */ -======= - /** @name PalletCollatorSelectionError (376) */ ->>>>>>> main - interface PalletCollatorSelectionError extends Enum { - readonly isTooManyCandidates: boolean; - readonly isTooFewEligibleCollators: boolean; - readonly isAlreadyCandidate: boolean; - readonly isNotCandidate: boolean; - readonly isTooManyInvulnerables: boolean; - readonly isAlreadyInvulnerable: boolean; - readonly isNotInvulnerable: boolean; - readonly isNoAssociatedValidatorId: boolean; - readonly isValidatorNotRegistered: boolean; - readonly isInsertToCandidateListFailed: boolean; - readonly isRemoveFromCandidateListFailed: boolean; - readonly isDepositTooLow: boolean; - readonly isUpdateCandidateListFailed: boolean; - readonly isInsufficientBond: boolean; - readonly isTargetIsNotCandidate: boolean; - readonly isIdenticalDeposit: boolean; - readonly isInvalidUnreserve: boolean; - readonly type: - | "TooManyCandidates" - | "TooFewEligibleCollators" - | "AlreadyCandidate" - | "NotCandidate" - | "TooManyInvulnerables" - | "AlreadyInvulnerable" - | "NotInvulnerable" - | "NoAssociatedValidatorId" - | "ValidatorNotRegistered" - | "InsertToCandidateListFailed" - | "RemoveFromCandidateListFailed" - | "DepositTooLow" - | "UpdateCandidateListFailed" - | "InsufficientBond" - | "TargetIsNotCandidate" - | "IdenticalDeposit" - | "InvalidUnreserve"; - } - -<<<<<<< HEAD - /** @name SpCoreCryptoKeyTypeId (346) */ - interface SpCoreCryptoKeyTypeId extends U8aFixed {} - - /** @name PalletSessionError (347) */ -======= - /** @name SpCoreCryptoKeyTypeId (380) */ - interface SpCoreCryptoKeyTypeId extends U8aFixed {} - - /** @name PalletSessionError (381) */ ->>>>>>> main - interface PalletSessionError extends Enum { - readonly isInvalidProof: boolean; - readonly isNoAssociatedValidatorId: boolean; - readonly isDuplicatedKey: boolean; - readonly isNoKeys: boolean; - readonly isNoAccount: boolean; - readonly type: - | "InvalidProof" - | "NoAssociatedValidatorId" - | "DuplicatedKey" - | "NoKeys" - | "NoAccount"; - } - -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (356) */ -======= - /** @name CumulusPalletXcmpQueueOutboundChannelDetails (390) */ ->>>>>>> main - interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { - readonly recipient: u32; - readonly state: CumulusPalletXcmpQueueOutboundState; - readonly signalsExist: bool; - readonly firstIndex: u16; - readonly lastIndex: u16; - } - -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueOutboundState (357) */ -======= - /** @name CumulusPalletXcmpQueueOutboundState (391) */ ->>>>>>> main - interface CumulusPalletXcmpQueueOutboundState extends Enum { - readonly isOk: boolean; - readonly isSuspended: boolean; - readonly type: "Ok" | "Suspended"; - } - -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueQueueConfigData (361) */ -======= - /** @name CumulusPalletXcmpQueueQueueConfigData (393) */ ->>>>>>> main - interface CumulusPalletXcmpQueueQueueConfigData extends Struct { - readonly suspendThreshold: u32; - readonly dropThreshold: u32; - readonly resumeThreshold: u32; - } - -<<<<<<< HEAD - /** @name CumulusPalletXcmpQueueError (362) */ -======= - /** @name CumulusPalletXcmpQueueError (394) */ ->>>>>>> main - interface CumulusPalletXcmpQueueError extends Enum { - readonly isBadQueueConfig: boolean; - readonly isAlreadySuspended: boolean; - readonly isAlreadyResumed: boolean; - readonly isTooManyActiveOutboundChannels: boolean; - readonly isTooBig: boolean; - readonly type: - | "BadQueueConfig" - | "AlreadySuspended" - | "AlreadyResumed" - | "TooManyActiveOutboundChannels" - | "TooBig"; - } - -<<<<<<< HEAD - /** @name PalletXcmQueryStatus (363) */ -======= - /** @name PalletXcmQueryStatus (395) */ ->>>>>>> main - interface PalletXcmQueryStatus extends Enum { - readonly isPending: boolean; - readonly asPending: { - readonly responder: XcmVersionedLocation; - readonly maybeMatchQuerier: Option; - readonly maybeNotify: Option>; - readonly timeout: u32; - } & Struct; - readonly isVersionNotifier: boolean; - readonly asVersionNotifier: { - readonly origin: XcmVersionedLocation; - readonly isActive: bool; - } & Struct; - readonly isReady: boolean; - readonly asReady: { - readonly response: XcmVersionedResponse; - readonly at: u32; - } & Struct; - readonly type: "Pending" | "VersionNotifier" | "Ready"; - } - -<<<<<<< HEAD - /** @name XcmVersionedResponse (367) */ -======= - /** @name XcmVersionedResponse (399) */ ->>>>>>> main - interface XcmVersionedResponse extends Enum { - readonly isV2: boolean; - readonly asV2: XcmV2Response; - readonly isV3: boolean; - readonly asV3: XcmV3Response; - readonly isV4: boolean; - readonly asV4: StagingXcmV4Response; - readonly type: "V2" | "V3" | "V4"; - } - -<<<<<<< HEAD - /** @name PalletXcmVersionMigrationStage (373) */ -======= - /** @name PalletXcmVersionMigrationStage (405) */ ->>>>>>> main - interface PalletXcmVersionMigrationStage extends Enum { - readonly isMigrateSupportedVersion: boolean; - readonly isMigrateVersionNotifiers: boolean; - readonly isNotifyCurrentTargets: boolean; - readonly asNotifyCurrentTargets: Option; - readonly isMigrateAndNotifyOldTargets: boolean; - readonly type: - | "MigrateSupportedVersion" - | "MigrateVersionNotifiers" - | "NotifyCurrentTargets" - | "MigrateAndNotifyOldTargets"; - } - -<<<<<<< HEAD - /** @name PalletXcmRemoteLockedFungibleRecord (376) */ -======= - /** @name PalletXcmRemoteLockedFungibleRecord (408) */ ->>>>>>> main - interface PalletXcmRemoteLockedFungibleRecord extends Struct { - readonly amount: u128; - readonly owner: XcmVersionedLocation; - readonly locker: XcmVersionedLocation; - readonly consumers: Vec>; - } - - /** @name PalletXcmError (415) */ - interface PalletXcmError extends Enum { - readonly isUnreachable: boolean; - readonly isSendFailure: boolean; - readonly isFiltered: boolean; - readonly isUnweighableMessage: boolean; - readonly isDestinationNotInvertible: boolean; - readonly isEmpty: boolean; - readonly isCannotReanchor: boolean; - readonly isTooManyAssets: boolean; - readonly isInvalidOrigin: boolean; - readonly isBadVersion: boolean; - readonly isBadLocation: boolean; - readonly isNoSubscription: boolean; - readonly isAlreadySubscribed: boolean; - readonly isCannotCheckOutTeleport: boolean; - readonly isLowBalance: boolean; - readonly isTooManyLocks: boolean; - readonly isAccountNotSovereign: boolean; - readonly isFeesNotMet: boolean; - readonly isLockNotFound: boolean; - readonly isInUse: boolean; - readonly isInvalidAssetUnknownReserve: boolean; - readonly isInvalidAssetUnsupportedReserve: boolean; - readonly isTooManyReserves: boolean; - readonly isLocalExecutionIncomplete: boolean; - readonly type: - | "Unreachable" - | "SendFailure" - | "Filtered" - | "UnweighableMessage" - | "DestinationNotInvertible" - | "Empty" - | "CannotReanchor" - | "TooManyAssets" - | "InvalidOrigin" - | "BadVersion" - | "BadLocation" - | "NoSubscription" - | "AlreadySubscribed" - | "CannotCheckOutTeleport" - | "LowBalance" - | "TooManyLocks" - | "AccountNotSovereign" - | "FeesNotMet" - | "LockNotFound" - | "InUse" - | "InvalidAssetUnknownReserve" - | "InvalidAssetUnsupportedReserve" - | "TooManyReserves" - | "LocalExecutionIncomplete"; - } - - /** @name PalletMessageQueueBookState (416) */ - interface PalletMessageQueueBookState extends Struct { - readonly begin: u32; - readonly end: u32; - readonly count: u32; - readonly readyNeighbours: Option; - readonly messageCount: u64; - readonly size_: u64; - } - - /** @name PalletMessageQueueNeighbours (418) */ - interface PalletMessageQueueNeighbours extends Struct { - readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; - readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; - } - - /** @name PalletMessageQueuePage (420) */ - interface PalletMessageQueuePage extends Struct { - readonly remaining: u32; - readonly remainingSize: u32; - readonly firstIndex: u32; - readonly first: u32; - readonly last: u32; - readonly heap: Bytes; - } - - /** @name PalletMessageQueueError (422) */ - interface PalletMessageQueueError extends Enum { - readonly isNotReapable: boolean; - readonly isNoPage: boolean; - readonly isNoMessage: boolean; - readonly isAlreadyProcessed: boolean; - readonly isQueued: boolean; - readonly isInsufficientWeight: boolean; - readonly isTemporarilyUnprocessable: boolean; - readonly isQueuePaused: boolean; - readonly isRecursiveDisallowed: boolean; - readonly type: - | "NotReapable" - | "NoPage" - | "NoMessage" - | "AlreadyProcessed" - | "Queued" - | "InsufficientWeight" - | "TemporarilyUnprocessable" - | "QueuePaused" - | "RecursiveDisallowed"; - } - - /** @name PalletStorageProvidersStorageProvider (424) */ - interface PalletStorageProvidersStorageProvider extends Enum { - readonly isBackupStorageProvider: boolean; - readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; - readonly isMainStorageProvider: boolean; - readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; - readonly type: "BackupStorageProvider" | "MainStorageProvider"; - } - - /** @name PalletStorageProvidersBackupStorageProvider (425) */ - interface PalletStorageProvidersBackupStorageProvider extends Struct { - readonly capacity: u64; - readonly capacityUsed: u64; - readonly multiaddresses: Vec; - readonly root: H256; - readonly lastCapacityChange: u32; - readonly ownerAccount: AccountId32; - readonly paymentAccount: AccountId32; - readonly reputationWeight: u32; - } - - /** @name PalletStorageProvidersMainStorageProvider (426) */ - interface PalletStorageProvidersMainStorageProvider extends Struct { - readonly buckets: Vec; - readonly capacity: u64; - readonly capacityUsed: u64; - readonly multiaddresses: Vec; - readonly valueProp: PalletStorageProvidersValueProposition; - readonly lastCapacityChange: u32; - readonly ownerAccount: AccountId32; - readonly paymentAccount: AccountId32; - } - - /** @name PalletStorageProvidersBucket (428) */ - interface PalletStorageProvidersBucket extends Struct { - readonly root: H256; - readonly userId: AccountId32; - readonly mspId: H256; - readonly private: bool; - readonly readAccessGroupId: Option; - readonly size_: u64; - } - - /** @name PalletStorageProvidersError (431) */ - interface PalletStorageProvidersError extends Enum { - readonly isAlreadyRegistered: boolean; - readonly isSignUpNotRequested: boolean; - readonly isSignUpRequestPending: boolean; - readonly isNoMultiAddress: boolean; - readonly isInvalidMultiAddress: boolean; - readonly isStorageTooLow: boolean; - readonly isNotEnoughBalance: boolean; - readonly isCannotHoldDeposit: boolean; - readonly isStorageStillInUse: boolean; - readonly isRandomnessNotValidYet: boolean; - readonly isSignUpRequestExpired: boolean; - readonly isNewCapacityLessThanUsedStorage: boolean; - readonly isNewCapacityEqualsCurrentCapacity: boolean; - readonly isNewCapacityCantBeZero: boolean; - readonly isNotEnoughTimePassed: boolean; - readonly isNewUsedCapacityExceedsStorageCapacity: boolean; - readonly isNotRegistered: boolean; - readonly isNoUserId: boolean; - readonly isNoBucketId: boolean; - readonly isSpRegisteredButDataNotFound: boolean; - readonly isBucketNotFound: boolean; - readonly isBucketAlreadyExists: boolean; - readonly isAppendBucketToMspFailed: boolean; - readonly isProviderNotSlashable: boolean; - readonly isInvalidEncodedFileMetadata: boolean; - readonly isInvalidEncodedAccountId: boolean; - readonly isPaymentStreamNotFound: boolean; - readonly type: - | "AlreadyRegistered" - | "SignUpNotRequested" - | "SignUpRequestPending" - | "NoMultiAddress" - | "InvalidMultiAddress" - | "StorageTooLow" - | "NotEnoughBalance" - | "CannotHoldDeposit" - | "StorageStillInUse" - | "RandomnessNotValidYet" - | "SignUpRequestExpired" - | "NewCapacityLessThanUsedStorage" - | "NewCapacityEqualsCurrentCapacity" - | "NewCapacityCantBeZero" - | "NotEnoughTimePassed" - | "NewUsedCapacityExceedsStorageCapacity" - | "NotRegistered" - | "NoUserId" - | "NoBucketId" - | "SpRegisteredButDataNotFound" - | "BucketNotFound" - | "BucketAlreadyExists" - | "AppendBucketToMspFailed" - | "ProviderNotSlashable" - | "InvalidEncodedFileMetadata" - | "InvalidEncodedAccountId" - | "PaymentStreamNotFound"; - } - - /** @name PalletFileSystemStorageRequestMetadata (432) */ - interface PalletFileSystemStorageRequestMetadata extends Struct { - readonly requestedAt: u32; - readonly owner: AccountId32; - readonly bucketId: H256; - readonly location: Bytes; - readonly fingerprint: H256; - readonly size_: u64; - readonly msp: Option>; - readonly userPeerIds: Vec; - readonly dataServerSps: Vec; - readonly bspsRequired: u32; - readonly bspsConfirmed: u32; - readonly bspsVolunteered: u32; - } - - /** @name PalletFileSystemStorageRequestBspsMetadata (437) */ - interface PalletFileSystemStorageRequestBspsMetadata extends Struct { - readonly confirmed: bool; - } - - /** @name PalletFileSystemMoveBucketRequestMetadata (446) */ - interface PalletFileSystemMoveBucketRequestMetadata extends Struct { - readonly requester: AccountId32; - } - - /** @name PalletFileSystemError (447) */ - interface PalletFileSystemError extends Enum { - readonly isStorageRequestAlreadyRegistered: boolean; - readonly isStorageRequestNotFound: boolean; - readonly isStorageRequestNotRevoked: boolean; - readonly isStorageRequestExists: boolean; - readonly isReplicationTargetCannotBeZero: boolean; - readonly isBspsRequiredExceedsTarget: boolean; - readonly isNotABsp: boolean; - readonly isNotAMsp: boolean; - readonly isNotASp: boolean; - readonly isBspNotVolunteered: boolean; - readonly isBspNotConfirmed: boolean; - readonly isBspAlreadyConfirmed: boolean; - readonly isStorageRequestBspsRequiredFulfilled: boolean; - readonly isBspAlreadyVolunteered: boolean; - readonly isInsufficientAvailableCapacity: boolean; - readonly isUnexpectedNumberOfRemovedVolunteeredBsps: boolean; - readonly isStorageRequestExpiredNoSlotAvailable: boolean; - readonly isStorageRequestNotAuthorized: boolean; - readonly isMaxBlockNumberReached: boolean; - readonly isFailedToEncodeBsp: boolean; - readonly isFailedToEncodeFingerprint: boolean; - readonly isFailedToDecodeThreshold: boolean; - readonly isAboveThreshold: boolean; - readonly isThresholdArithmeticError: boolean; - readonly isFailedTypeConversion: boolean; - readonly isDividedByZero: boolean; - readonly isImpossibleFailedToGetValue: boolean; - readonly isBucketIsNotPrivate: boolean; - readonly isBucketNotFound: boolean; - readonly isNotBucketOwner: boolean; - readonly isProviderRootNotFound: boolean; - readonly isExpectedNonInclusionProof: boolean; - readonly isExpectedInclusionProof: boolean; - readonly isInvalidFileKeyMetadata: boolean; - readonly isThresholdBelowAsymptote: boolean; - readonly isNotFileOwner: boolean; - readonly isFileKeyAlreadyPendingDeletion: boolean; - readonly isMaxUserPendingDeletionRequestsReached: boolean; - readonly isMspNotStoringBucket: boolean; - readonly isFileKeyNotPendingDeletion: boolean; - readonly isFileSizeCannotBeZero: boolean; - readonly isNoGlobalReputationWeightSet: boolean; - readonly isMaximumThresholdCannotBeZero: boolean; - readonly isTickRangeToMaximumThresholdCannotBeZero: boolean; - readonly isPendingStopStoringRequestNotFound: boolean; - readonly isMinWaitForStopStoringNotReached: boolean; - readonly isPendingStopStoringRequestAlreadyExists: boolean; - readonly isUserNotInsolvent: boolean; - readonly isNotSelectedMsp: boolean; - readonly isMspAlreadyConfirmed: boolean; - readonly isRequestWithoutMsp: boolean; - readonly isMspAlreadyStoringBucket: boolean; - readonly isMoveBucketRequestNotFound: boolean; - readonly isBucketIsBeingMoved: boolean; - readonly isBspAlreadyDataServer: boolean; - readonly isBspDataServersExceeded: boolean; - readonly isFileMetadataProcessingQueueFull: boolean; - readonly isTooManyBatchResponses: boolean; - readonly isTooManyStorageRequestResponses: boolean; - readonly isInvalidBucketIdFileKeyPair: boolean; - readonly isInconsistentStateKeyAlreadyExists: boolean; - readonly type: - | "StorageRequestAlreadyRegistered" - | "StorageRequestNotFound" - | "StorageRequestNotRevoked" - | "StorageRequestExists" - | "ReplicationTargetCannotBeZero" - | "BspsRequiredExceedsTarget" - | "NotABsp" - | "NotAMsp" - | "NotASp" - | "BspNotVolunteered" - | "BspNotConfirmed" - | "BspAlreadyConfirmed" - | "StorageRequestBspsRequiredFulfilled" - | "BspAlreadyVolunteered" - | "InsufficientAvailableCapacity" - | "UnexpectedNumberOfRemovedVolunteeredBsps" - | "StorageRequestExpiredNoSlotAvailable" - | "StorageRequestNotAuthorized" - | "MaxBlockNumberReached" - | "FailedToEncodeBsp" - | "FailedToEncodeFingerprint" - | "FailedToDecodeThreshold" - | "AboveThreshold" - | "ThresholdArithmeticError" - | "FailedTypeConversion" - | "DividedByZero" - | "ImpossibleFailedToGetValue" - | "BucketIsNotPrivate" - | "BucketNotFound" - | "NotBucketOwner" - | "ProviderRootNotFound" - | "ExpectedNonInclusionProof" - | "ExpectedInclusionProof" - | "InvalidFileKeyMetadata" - | "ThresholdBelowAsymptote" - | "NotFileOwner" - | "FileKeyAlreadyPendingDeletion" - | "MaxUserPendingDeletionRequestsReached" - | "MspNotStoringBucket" - | "FileKeyNotPendingDeletion" - | "FileSizeCannotBeZero" - | "NoGlobalReputationWeightSet" - | "MaximumThresholdCannotBeZero" - | "TickRangeToMaximumThresholdCannotBeZero" - | "PendingStopStoringRequestNotFound" - | "MinWaitForStopStoringNotReached" - | "PendingStopStoringRequestAlreadyExists" - | "UserNotInsolvent" - | "NotSelectedMsp" - | "MspAlreadyConfirmed" - | "RequestWithoutMsp" - | "MspAlreadyStoringBucket" - | "MoveBucketRequestNotFound" - | "BucketIsBeingMoved" - | "BspAlreadyDataServer" - | "BspDataServersExceeded" - | "FileMetadataProcessingQueueFull" - | "TooManyBatchResponses" - | "TooManyStorageRequestResponses" - | "InvalidBucketIdFileKeyPair" - | "InconsistentStateKeyAlreadyExists"; - } - - /** @name PalletProofsDealerError (454) */ - interface PalletProofsDealerError extends Enum { - readonly isNotProvider: boolean; - readonly isChallengesQueueOverflow: boolean; - readonly isPriorityChallengesQueueOverflow: boolean; - readonly isFeeChargeFailed: boolean; - readonly isEmptyKeyProofs: boolean; - readonly isProviderRootNotFound: boolean; - readonly isZeroRoot: boolean; - readonly isNoRecordOfLastSubmittedProof: boolean; - readonly isProviderStakeNotFound: boolean; - readonly isZeroStake: boolean; - readonly isStakeCouldNotBeConverted: boolean; - readonly isChallengesTickNotReached: boolean; - readonly isChallengesTickTooOld: boolean; - readonly isChallengesTickTooLate: boolean; - readonly isSeedNotFound: boolean; - readonly isCheckpointChallengesNotFound: boolean; - readonly isForestProofVerificationFailed: boolean; - readonly isKeyProofNotFound: boolean; - readonly isKeyProofVerificationFailed: boolean; - readonly isFailedToApplyDelta: boolean; - readonly isFailedToUpdateProviderAfterKeyRemoval: boolean; - readonly isTooManyValidProofSubmitters: boolean; - readonly type: - | "NotProvider" - | "ChallengesQueueOverflow" - | "PriorityChallengesQueueOverflow" - | "FeeChargeFailed" - | "EmptyKeyProofs" - | "ProviderRootNotFound" - | "ZeroRoot" - | "NoRecordOfLastSubmittedProof" - | "ProviderStakeNotFound" - | "ZeroStake" - | "StakeCouldNotBeConverted" - | "ChallengesTickNotReached" - | "ChallengesTickTooOld" - | "ChallengesTickTooLate" - | "SeedNotFound" - | "CheckpointChallengesNotFound" - | "ForestProofVerificationFailed" - | "KeyProofNotFound" - | "KeyProofVerificationFailed" - | "FailedToApplyDelta" - | "FailedToUpdateProviderAfterKeyRemoval" - | "TooManyValidProofSubmitters"; - } - - /** @name PalletPaymentStreamsFixedRatePaymentStream (457) */ - interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { - readonly rate: u128; - readonly lastChargedTick: u32; - readonly userDeposit: u128; - readonly outOfFundsTick: Option; - } - - /** @name PalletPaymentStreamsDynamicRatePaymentStream (458) */ - interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { - readonly amountProvided: u64; - readonly priceIndexWhenLastCharged: u128; - readonly userDeposit: u128; - readonly outOfFundsTick: Option; - } - - /** @name PalletPaymentStreamsProviderLastChargeableInfo (459) */ - interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { - readonly lastChargeableTick: u32; - readonly priceIndex: u128; - } - - /** @name PalletPaymentStreamsError (460) */ - interface PalletPaymentStreamsError extends Enum { - readonly isPaymentStreamAlreadyExists: boolean; - readonly isPaymentStreamNotFound: boolean; - readonly isNotAProvider: boolean; - readonly isProviderInconsistencyError: boolean; - readonly isCannotHoldDeposit: boolean; - readonly isUpdateRateToSameRate: boolean; - readonly isUpdateAmountToSameAmount: boolean; - readonly isRateCantBeZero: boolean; - readonly isAmountProvidedCantBeZero: boolean; - readonly isLastChargedGreaterThanLastChargeable: boolean; - readonly isInvalidLastChargeableBlockNumber: boolean; - readonly isInvalidLastChargeablePriceIndex: boolean; - readonly isChargeOverflow: boolean; - readonly isUserWithoutFunds: boolean; - readonly isUserNotFlaggedAsWithoutFunds: boolean; - readonly isCooldownPeriodNotPassed: boolean; - readonly type: - | "PaymentStreamAlreadyExists" - | "PaymentStreamNotFound" - | "NotAProvider" - | "ProviderInconsistencyError" - | "CannotHoldDeposit" - | "UpdateRateToSameRate" - | "UpdateAmountToSameAmount" - | "RateCantBeZero" - | "AmountProvidedCantBeZero" - | "LastChargedGreaterThanLastChargeable" - | "InvalidLastChargeableBlockNumber" - | "InvalidLastChargeablePriceIndex" - | "ChargeOverflow" - | "UserWithoutFunds" - | "UserNotFlaggedAsWithoutFunds" - | "CooldownPeriodNotPassed"; - } - - /** @name PalletBucketNftsError (461) */ - interface PalletBucketNftsError extends Enum { - readonly isBucketIsNotPrivate: boolean; - readonly isNotBucketOwner: boolean; - readonly isNoCorrespondingCollection: boolean; - readonly isConvertBytesToBoundedVec: boolean; - readonly type: - | "BucketIsNotPrivate" - | "NotBucketOwner" - | "NoCorrespondingCollection" - | "ConvertBytesToBoundedVec"; - } - - /** @name PalletNftsCollectionDetails (462) */ - interface PalletNftsCollectionDetails extends Struct { - readonly owner: AccountId32; - readonly ownerDeposit: u128; - readonly items: u32; - readonly itemMetadatas: u32; - readonly itemConfigs: u32; - readonly attributes: u32; - } - - /** @name PalletNftsCollectionRole (467) */ - interface PalletNftsCollectionRole extends Enum { - readonly isIssuer: boolean; - readonly isFreezer: boolean; - readonly isAdmin: boolean; - readonly type: "Issuer" | "Freezer" | "Admin"; - } - - /** @name PalletNftsItemDetails (468) */ - interface PalletNftsItemDetails extends Struct { - readonly owner: AccountId32; - readonly approvals: BTreeMap>; - readonly deposit: PalletNftsItemDeposit; - } - - /** @name PalletNftsItemDeposit (469) */ - interface PalletNftsItemDeposit extends Struct { - readonly account: AccountId32; - readonly amount: u128; - } - - /** @name PalletNftsCollectionMetadata (474) */ - interface PalletNftsCollectionMetadata extends Struct { - readonly deposit: u128; - readonly data: Bytes; - } - - /** @name PalletNftsItemMetadata (475) */ - interface PalletNftsItemMetadata extends Struct { - readonly deposit: PalletNftsItemMetadataDeposit; - readonly data: Bytes; - } - - /** @name PalletNftsItemMetadataDeposit (476) */ - interface PalletNftsItemMetadataDeposit extends Struct { - readonly account: Option; - readonly amount: u128; - } - - /** @name PalletNftsAttributeDeposit (479) */ - interface PalletNftsAttributeDeposit extends Struct { - readonly account: Option; - readonly amount: u128; - } - - /** @name PalletNftsPendingSwap (483) */ - interface PalletNftsPendingSwap extends Struct { - readonly desiredCollection: u32; - readonly desiredItem: Option; - readonly price: Option; - readonly deadline: u32; - } - - /** @name PalletNftsPalletFeature (485) */ - interface PalletNftsPalletFeature extends Enum { - readonly isTrading: boolean; - readonly isAttributes: boolean; - readonly isApprovals: boolean; - readonly isSwaps: boolean; - readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; - } - - /** @name PalletNftsError (486) */ - interface PalletNftsError extends Enum { - readonly isNoPermission: boolean; - readonly isUnknownCollection: boolean; - readonly isAlreadyExists: boolean; - readonly isApprovalExpired: boolean; - readonly isWrongOwner: boolean; - readonly isBadWitness: boolean; - readonly isCollectionIdInUse: boolean; - readonly isItemsNonTransferable: boolean; - readonly isNotDelegate: boolean; - readonly isWrongDelegate: boolean; - readonly isUnapproved: boolean; - readonly isUnaccepted: boolean; - readonly isItemLocked: boolean; - readonly isLockedItemAttributes: boolean; - readonly isLockedCollectionAttributes: boolean; - readonly isLockedItemMetadata: boolean; - readonly isLockedCollectionMetadata: boolean; - readonly isMaxSupplyReached: boolean; - readonly isMaxSupplyLocked: boolean; - readonly isMaxSupplyTooSmall: boolean; - readonly isUnknownItem: boolean; - readonly isUnknownSwap: boolean; - readonly isMetadataNotFound: boolean; - readonly isAttributeNotFound: boolean; - readonly isNotForSale: boolean; - readonly isBidTooLow: boolean; - readonly isReachedApprovalLimit: boolean; - readonly isDeadlineExpired: boolean; - readonly isWrongDuration: boolean; - readonly isMethodDisabled: boolean; - readonly isWrongSetting: boolean; - readonly isInconsistentItemConfig: boolean; - readonly isNoConfig: boolean; - readonly isRolesNotCleared: boolean; - readonly isMintNotStarted: boolean; - readonly isMintEnded: boolean; - readonly isAlreadyClaimed: boolean; - readonly isIncorrectData: boolean; - readonly isWrongOrigin: boolean; - readonly isWrongSignature: boolean; - readonly isIncorrectMetadata: boolean; - readonly isMaxAttributesLimitReached: boolean; - readonly isWrongNamespace: boolean; - readonly isCollectionNotEmpty: boolean; - readonly isWitnessRequired: boolean; - readonly type: - | "NoPermission" - | "UnknownCollection" - | "AlreadyExists" - | "ApprovalExpired" - | "WrongOwner" - | "BadWitness" - | "CollectionIdInUse" - | "ItemsNonTransferable" - | "NotDelegate" - | "WrongDelegate" - | "Unapproved" - | "Unaccepted" - | "ItemLocked" - | "LockedItemAttributes" - | "LockedCollectionAttributes" - | "LockedItemMetadata" - | "LockedCollectionMetadata" - | "MaxSupplyReached" - | "MaxSupplyLocked" - | "MaxSupplyTooSmall" - | "UnknownItem" - | "UnknownSwap" - | "MetadataNotFound" - | "AttributeNotFound" - | "NotForSale" - | "BidTooLow" - | "ReachedApprovalLimit" - | "DeadlineExpired" - | "WrongDuration" - | "MethodDisabled" - | "WrongSetting" - | "InconsistentItemConfig" - | "NoConfig" - | "RolesNotCleared" - | "MintNotStarted" - | "MintEnded" - | "AlreadyClaimed" - | "IncorrectData" - | "WrongOrigin" - | "WrongSignature" - | "IncorrectMetadata" - | "MaxAttributesLimitReached" - | "WrongNamespace" - | "CollectionNotEmpty" - | "WitnessRequired"; - } - - /** @name FrameSystemExtensionsCheckNonZeroSender (489) */ - type FrameSystemExtensionsCheckNonZeroSender = Null; - - /** @name FrameSystemExtensionsCheckSpecVersion (490) */ - type FrameSystemExtensionsCheckSpecVersion = Null; - - /** @name FrameSystemExtensionsCheckTxVersion (491) */ - type FrameSystemExtensionsCheckTxVersion = Null; - - /** @name FrameSystemExtensionsCheckGenesis (492) */ - type FrameSystemExtensionsCheckGenesis = Null; - - /** @name FrameSystemExtensionsCheckNonce (495) */ - interface FrameSystemExtensionsCheckNonce extends Compact {} - - /** @name FrameSystemExtensionsCheckWeight (496) */ - type FrameSystemExtensionsCheckWeight = Null; - - /** @name PalletTransactionPaymentChargeTransactionPayment (497) */ - interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} - - /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (498) */ - type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; - -<<<<<<< HEAD - /** @name FrameMetadataHashExtensionCheckMetadataHash (467) */ -======= - /** @name FrameMetadataHashExtensionCheckMetadataHash (499) */ ->>>>>>> main - interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { - readonly mode: FrameMetadataHashExtensionMode; - } - -<<<<<<< HEAD - /** @name FrameMetadataHashExtensionMode (468) */ -======= - /** @name FrameMetadataHashExtensionMode (500) */ ->>>>>>> main - interface FrameMetadataHashExtensionMode extends Enum { - readonly isDisabled: boolean; - readonly isEnabled: boolean; - readonly type: "Disabled" | "Enabled"; - } - -<<<<<<< HEAD - /** @name StorageHubRuntimeRuntime (469) */ -======= - /** @name StorageHubRuntimeRuntime (501) */ ->>>>>>> main - type StorageHubRuntimeRuntime = Null; -} // declare module +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import "@polkadot/types/lookup"; + +import type { + BTreeMap, + BTreeSet, + Bytes, + Compact, + Enum, + Null, + Option, + Result, + Struct, + Text, + U8aFixed, + Vec, + bool, + u128, + u16, + u32, + u64, + u8 +} from "@polkadot/types-codec"; +import type { ITuple } from "@polkadot/types-codec/types"; +import type { AccountId32, Call, H256, MultiAddress } from "@polkadot/types/interfaces/runtime"; +import type { Event } from "@polkadot/types/interfaces/system"; + +declare module "@polkadot/types/lookup" { + /** @name FrameSystemAccountInfo (3) */ + interface FrameSystemAccountInfo extends Struct { + readonly nonce: u32; + readonly consumers: u32; + readonly providers: u32; + readonly sufficients: u32; + readonly data: PalletBalancesAccountData; + } + + /** @name PalletBalancesAccountData (5) */ + interface PalletBalancesAccountData extends Struct { + readonly free: u128; + readonly reserved: u128; + readonly frozen: u128; + readonly flags: u128; + } + + /** @name FrameSupportDispatchPerDispatchClassWeight (9) */ + interface FrameSupportDispatchPerDispatchClassWeight extends Struct { + readonly normal: SpWeightsWeightV2Weight; + readonly operational: SpWeightsWeightV2Weight; + readonly mandatory: SpWeightsWeightV2Weight; + } + + /** @name SpWeightsWeightV2Weight (10) */ + interface SpWeightsWeightV2Weight extends Struct { + readonly refTime: Compact; + readonly proofSize: Compact; + } + + /** @name SpRuntimeDigest (15) */ + interface SpRuntimeDigest extends Struct { + readonly logs: Vec; + } + + /** @name SpRuntimeDigestDigestItem (17) */ + interface SpRuntimeDigestDigestItem extends Enum { + readonly isOther: boolean; + readonly asOther: Bytes; + readonly isConsensus: boolean; + readonly asConsensus: ITuple<[U8aFixed, Bytes]>; + readonly isSeal: boolean; + readonly asSeal: ITuple<[U8aFixed, Bytes]>; + readonly isPreRuntime: boolean; + readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>; + readonly isRuntimeEnvironmentUpdated: boolean; + readonly type: "Other" | "Consensus" | "Seal" | "PreRuntime" | "RuntimeEnvironmentUpdated"; + } + + /** @name FrameSystemEventRecord (20) */ + interface FrameSystemEventRecord extends Struct { + readonly phase: FrameSystemPhase; + readonly event: Event; + readonly topics: Vec; + } + + /** @name FrameSystemEvent (22) */ + interface FrameSystemEvent extends Enum { + readonly isExtrinsicSuccess: boolean; + readonly asExtrinsicSuccess: { + readonly dispatchInfo: FrameSupportDispatchDispatchInfo; + } & Struct; + readonly isExtrinsicFailed: boolean; + readonly asExtrinsicFailed: { + readonly dispatchError: SpRuntimeDispatchError; + readonly dispatchInfo: FrameSupportDispatchDispatchInfo; + } & Struct; + readonly isCodeUpdated: boolean; + readonly isNewAccount: boolean; + readonly asNewAccount: { + readonly account: AccountId32; + } & Struct; + readonly isKilledAccount: boolean; + readonly asKilledAccount: { + readonly account: AccountId32; + } & Struct; + readonly isRemarked: boolean; + readonly asRemarked: { + readonly sender: AccountId32; + readonly hash_: H256; + } & Struct; + readonly isUpgradeAuthorized: boolean; + readonly asUpgradeAuthorized: { + readonly codeHash: H256; + readonly checkVersion: bool; + } & Struct; + readonly type: + | "ExtrinsicSuccess" + | "ExtrinsicFailed" + | "CodeUpdated" + | "NewAccount" + | "KilledAccount" + | "Remarked" + | "UpgradeAuthorized"; + } + + /** @name FrameSupportDispatchDispatchInfo (23) */ + interface FrameSupportDispatchDispatchInfo extends Struct { + readonly weight: SpWeightsWeightV2Weight; + readonly class: FrameSupportDispatchDispatchClass; + readonly paysFee: FrameSupportDispatchPays; + } + + /** @name FrameSupportDispatchDispatchClass (24) */ + interface FrameSupportDispatchDispatchClass extends Enum { + readonly isNormal: boolean; + readonly isOperational: boolean; + readonly isMandatory: boolean; + readonly type: "Normal" | "Operational" | "Mandatory"; + } + + /** @name FrameSupportDispatchPays (25) */ + interface FrameSupportDispatchPays extends Enum { + readonly isYes: boolean; + readonly isNo: boolean; + readonly type: "Yes" | "No"; + } + + /** @name SpRuntimeDispatchError (26) */ + interface SpRuntimeDispatchError extends Enum { + readonly isOther: boolean; + readonly isCannotLookup: boolean; + readonly isBadOrigin: boolean; + readonly isModule: boolean; + readonly asModule: SpRuntimeModuleError; + readonly isConsumerRemaining: boolean; + readonly isNoProviders: boolean; + readonly isTooManyConsumers: boolean; + readonly isToken: boolean; + readonly asToken: SpRuntimeTokenError; + readonly isArithmetic: boolean; + readonly asArithmetic: SpArithmeticArithmeticError; + readonly isTransactional: boolean; + readonly asTransactional: SpRuntimeTransactionalError; + readonly isExhausted: boolean; + readonly isCorruption: boolean; + readonly isUnavailable: boolean; + readonly isRootNotAllowed: boolean; + readonly type: + | "Other" + | "CannotLookup" + | "BadOrigin" + | "Module" + | "ConsumerRemaining" + | "NoProviders" + | "TooManyConsumers" + | "Token" + | "Arithmetic" + | "Transactional" + | "Exhausted" + | "Corruption" + | "Unavailable" + | "RootNotAllowed"; + } + + /** @name SpRuntimeModuleError (27) */ + interface SpRuntimeModuleError extends Struct { + readonly index: u8; + readonly error: U8aFixed; + } + + /** @name SpRuntimeTokenError (28) */ + interface SpRuntimeTokenError extends Enum { + readonly isFundsUnavailable: boolean; + readonly isOnlyProvider: boolean; + readonly isBelowMinimum: boolean; + readonly isCannotCreate: boolean; + readonly isUnknownAsset: boolean; + readonly isFrozen: boolean; + readonly isUnsupported: boolean; + readonly isCannotCreateHold: boolean; + readonly isNotExpendable: boolean; + readonly isBlocked: boolean; + readonly type: + | "FundsUnavailable" + | "OnlyProvider" + | "BelowMinimum" + | "CannotCreate" + | "UnknownAsset" + | "Frozen" + | "Unsupported" + | "CannotCreateHold" + | "NotExpendable" + | "Blocked"; + } + + /** @name SpArithmeticArithmeticError (29) */ + interface SpArithmeticArithmeticError extends Enum { + readonly isUnderflow: boolean; + readonly isOverflow: boolean; + readonly isDivisionByZero: boolean; + readonly type: "Underflow" | "Overflow" | "DivisionByZero"; + } + + /** @name SpRuntimeTransactionalError (30) */ + interface SpRuntimeTransactionalError extends Enum { + readonly isLimitReached: boolean; + readonly isNoLayer: boolean; + readonly type: "LimitReached" | "NoLayer"; + } + + /** @name CumulusPalletParachainSystemEvent (31) */ + interface CumulusPalletParachainSystemEvent extends Enum { + readonly isValidationFunctionStored: boolean; + readonly isValidationFunctionApplied: boolean; + readonly asValidationFunctionApplied: { + readonly relayChainBlockNum: u32; + } & Struct; + readonly isValidationFunctionDiscarded: boolean; + readonly isDownwardMessagesReceived: boolean; + readonly asDownwardMessagesReceived: { + readonly count: u32; + } & Struct; + readonly isDownwardMessagesProcessed: boolean; + readonly asDownwardMessagesProcessed: { + readonly weightUsed: SpWeightsWeightV2Weight; + readonly dmqHead: H256; + } & Struct; + readonly isUpwardMessageSent: boolean; + readonly asUpwardMessageSent: { + readonly messageHash: Option; + } & Struct; + readonly type: + | "ValidationFunctionStored" + | "ValidationFunctionApplied" + | "ValidationFunctionDiscarded" + | "DownwardMessagesReceived" + | "DownwardMessagesProcessed" + | "UpwardMessageSent"; + } + + /** @name PalletBalancesEvent (33) */ + interface PalletBalancesEvent extends Enum { + readonly isEndowed: boolean; + readonly asEndowed: { + readonly account: AccountId32; + readonly freeBalance: u128; + } & Struct; + readonly isDustLost: boolean; + readonly asDustLost: { + readonly account: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBalanceSet: boolean; + readonly asBalanceSet: { + readonly who: AccountId32; + readonly free: u128; + } & Struct; + readonly isReserved: boolean; + readonly asReserved: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnreserved: boolean; + readonly asUnreserved: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isReserveRepatriated: boolean; + readonly asReserveRepatriated: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + readonly destinationStatus: FrameSupportTokensMiscBalanceStatus; + } & Struct; + readonly isDeposit: boolean; + readonly asDeposit: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isWithdraw: boolean; + readonly asWithdraw: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isMinted: boolean; + readonly asMinted: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSuspended: boolean; + readonly asSuspended: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isRestored: boolean; + readonly asRestored: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUpgraded: boolean; + readonly asUpgraded: { + readonly who: AccountId32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly amount: u128; + } & Struct; + readonly isRescinded: boolean; + readonly asRescinded: { + readonly amount: u128; + } & Struct; + readonly isLocked: boolean; + readonly asLocked: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnlocked: boolean; + readonly asUnlocked: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isFrozen: boolean; + readonly asFrozen: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTotalIssuanceForced: boolean; + readonly asTotalIssuanceForced: { + readonly old: u128; + readonly new_: u128; + } & Struct; + readonly type: + | "Endowed" + | "DustLost" + | "Transfer" + | "BalanceSet" + | "Reserved" + | "Unreserved" + | "ReserveRepatriated" + | "Deposit" + | "Withdraw" + | "Slashed" + | "Minted" + | "Burned" + | "Suspended" + | "Restored" + | "Upgraded" + | "Issued" + | "Rescinded" + | "Locked" + | "Unlocked" + | "Frozen" + | "Thawed" + | "TotalIssuanceForced"; + } + + /** @name FrameSupportTokensMiscBalanceStatus (34) */ + interface FrameSupportTokensMiscBalanceStatus extends Enum { + readonly isFree: boolean; + readonly isReserved: boolean; + readonly type: "Free" | "Reserved"; + } + + /** @name PalletTransactionPaymentEvent (35) */ + interface PalletTransactionPaymentEvent extends Enum { + readonly isTransactionFeePaid: boolean; + readonly asTransactionFeePaid: { + readonly who: AccountId32; + readonly actualFee: u128; + readonly tip: u128; + } & Struct; + readonly type: "TransactionFeePaid"; + } + + /** @name PalletSudoEvent (36) */ + interface PalletSudoEvent extends Enum { + readonly isSudid: boolean; + readonly asSudid: { + readonly sudoResult: Result; + } & Struct; + readonly isKeyChanged: boolean; + readonly asKeyChanged: { + readonly old: Option; + readonly new_: AccountId32; + } & Struct; + readonly isKeyRemoved: boolean; + readonly isSudoAsDone: boolean; + readonly asSudoAsDone: { + readonly sudoResult: Result; + } & Struct; + readonly type: "Sudid" | "KeyChanged" | "KeyRemoved" | "SudoAsDone"; + } + + /** @name PalletCollatorSelectionEvent (40) */ + interface PalletCollatorSelectionEvent extends Enum { + readonly isNewInvulnerables: boolean; + readonly asNewInvulnerables: { + readonly invulnerables: Vec; + } & Struct; + readonly isInvulnerableAdded: boolean; + readonly asInvulnerableAdded: { + readonly accountId: AccountId32; + } & Struct; + readonly isInvulnerableRemoved: boolean; + readonly asInvulnerableRemoved: { + readonly accountId: AccountId32; + } & Struct; + readonly isNewDesiredCandidates: boolean; + readonly asNewDesiredCandidates: { + readonly desiredCandidates: u32; + } & Struct; + readonly isNewCandidacyBond: boolean; + readonly asNewCandidacyBond: { + readonly bondAmount: u128; + } & Struct; + readonly isCandidateAdded: boolean; + readonly asCandidateAdded: { + readonly accountId: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isCandidateBondUpdated: boolean; + readonly asCandidateBondUpdated: { + readonly accountId: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isCandidateRemoved: boolean; + readonly asCandidateRemoved: { + readonly accountId: AccountId32; + } & Struct; + readonly isCandidateReplaced: boolean; + readonly asCandidateReplaced: { + readonly old: AccountId32; + readonly new_: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isInvalidInvulnerableSkipped: boolean; + readonly asInvalidInvulnerableSkipped: { + readonly accountId: AccountId32; + } & Struct; + readonly type: + | "NewInvulnerables" + | "InvulnerableAdded" + | "InvulnerableRemoved" + | "NewDesiredCandidates" + | "NewCandidacyBond" + | "CandidateAdded" + | "CandidateBondUpdated" + | "CandidateRemoved" + | "CandidateReplaced" + | "InvalidInvulnerableSkipped"; + } + + /** @name PalletSessionEvent (42) */ + interface PalletSessionEvent extends Enum { + readonly isNewSession: boolean; + readonly asNewSession: { + readonly sessionIndex: u32; + } & Struct; + readonly type: "NewSession"; + } + + /** @name CumulusPalletXcmpQueueEvent (43) */ + interface CumulusPalletXcmpQueueEvent extends Enum { + readonly isXcmpMessageSent: boolean; + readonly asXcmpMessageSent: { + readonly messageHash: U8aFixed; + } & Struct; + readonly type: "XcmpMessageSent"; + } + + /** @name PalletXcmEvent (44) */ + interface PalletXcmEvent extends Enum { + readonly isAttempted: boolean; + readonly asAttempted: { + readonly outcome: StagingXcmV4TraitsOutcome; + } & Struct; + readonly isSent: boolean; + readonly asSent: { + readonly origin: StagingXcmV4Location; + readonly destination: StagingXcmV4Location; + readonly message: StagingXcmV4Xcm; + readonly messageId: U8aFixed; + } & Struct; + readonly isUnexpectedResponse: boolean; + readonly asUnexpectedResponse: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + } & Struct; + readonly isResponseReady: boolean; + readonly asResponseReady: { + readonly queryId: u64; + readonly response: StagingXcmV4Response; + } & Struct; + readonly isNotified: boolean; + readonly asNotified: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isNotifyOverweight: boolean; + readonly asNotifyOverweight: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + readonly actualWeight: SpWeightsWeightV2Weight; + readonly maxBudgetedWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isNotifyDispatchError: boolean; + readonly asNotifyDispatchError: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isNotifyDecodeFailed: boolean; + readonly asNotifyDecodeFailed: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isInvalidResponder: boolean; + readonly asInvalidResponder: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + readonly expectedLocation: Option; + } & Struct; + readonly isInvalidResponderVersion: boolean; + readonly asInvalidResponderVersion: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + } & Struct; + readonly isResponseTaken: boolean; + readonly asResponseTaken: { + readonly queryId: u64; + } & Struct; + readonly isAssetsTrapped: boolean; + readonly asAssetsTrapped: { + readonly hash_: H256; + readonly origin: StagingXcmV4Location; + readonly assets: XcmVersionedAssets; + } & Struct; + readonly isVersionChangeNotified: boolean; + readonly asVersionChangeNotified: { + readonly destination: StagingXcmV4Location; + readonly result: u32; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isSupportedVersionChanged: boolean; + readonly asSupportedVersionChanged: { + readonly location: StagingXcmV4Location; + readonly version: u32; + } & Struct; + readonly isNotifyTargetSendFail: boolean; + readonly asNotifyTargetSendFail: { + readonly location: StagingXcmV4Location; + readonly queryId: u64; + readonly error: XcmV3TraitsError; + } & Struct; + readonly isNotifyTargetMigrationFail: boolean; + readonly asNotifyTargetMigrationFail: { + readonly location: XcmVersionedLocation; + readonly queryId: u64; + } & Struct; + readonly isInvalidQuerierVersion: boolean; + readonly asInvalidQuerierVersion: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + } & Struct; + readonly isInvalidQuerier: boolean; + readonly asInvalidQuerier: { + readonly origin: StagingXcmV4Location; + readonly queryId: u64; + readonly expectedQuerier: StagingXcmV4Location; + readonly maybeActualQuerier: Option; + } & Struct; + readonly isVersionNotifyStarted: boolean; + readonly asVersionNotifyStarted: { + readonly destination: StagingXcmV4Location; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isVersionNotifyRequested: boolean; + readonly asVersionNotifyRequested: { + readonly destination: StagingXcmV4Location; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isVersionNotifyUnrequested: boolean; + readonly asVersionNotifyUnrequested: { + readonly destination: StagingXcmV4Location; + readonly cost: StagingXcmV4AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isFeesPaid: boolean; + readonly asFeesPaid: { + readonly paying: StagingXcmV4Location; + readonly fees: StagingXcmV4AssetAssets; + } & Struct; + readonly isAssetsClaimed: boolean; + readonly asAssetsClaimed: { + readonly hash_: H256; + readonly origin: StagingXcmV4Location; + readonly assets: XcmVersionedAssets; + } & Struct; + readonly isVersionMigrationFinished: boolean; + readonly asVersionMigrationFinished: { + readonly version: u32; + } & Struct; + readonly type: + | "Attempted" + | "Sent" + | "UnexpectedResponse" + | "ResponseReady" + | "Notified" + | "NotifyOverweight" + | "NotifyDispatchError" + | "NotifyDecodeFailed" + | "InvalidResponder" + | "InvalidResponderVersion" + | "ResponseTaken" + | "AssetsTrapped" + | "VersionChangeNotified" + | "SupportedVersionChanged" + | "NotifyTargetSendFail" + | "NotifyTargetMigrationFail" + | "InvalidQuerierVersion" + | "InvalidQuerier" + | "VersionNotifyStarted" + | "VersionNotifyRequested" + | "VersionNotifyUnrequested" + | "FeesPaid" + | "AssetsClaimed" + | "VersionMigrationFinished"; + } + + /** @name StagingXcmV4TraitsOutcome (45) */ + interface StagingXcmV4TraitsOutcome extends Enum { + readonly isComplete: boolean; + readonly asComplete: { + readonly used: SpWeightsWeightV2Weight; + } & Struct; + readonly isIncomplete: boolean; + readonly asIncomplete: { + readonly used: SpWeightsWeightV2Weight; + readonly error: XcmV3TraitsError; + } & Struct; + readonly isError: boolean; + readonly asError: { + readonly error: XcmV3TraitsError; + } & Struct; + readonly type: "Complete" | "Incomplete" | "Error"; + } + + /** @name XcmV3TraitsError (46) */ + interface XcmV3TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: SpWeightsWeightV2Weight; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: + | "Overflow" + | "Unimplemented" + | "UntrustedReserveLocation" + | "UntrustedTeleportLocation" + | "LocationFull" + | "LocationNotInvertible" + | "BadOrigin" + | "InvalidLocation" + | "AssetNotFound" + | "FailedToTransactAsset" + | "NotWithdrawable" + | "LocationCannotHold" + | "ExceedsMaxMessageSize" + | "DestinationUnsupported" + | "Transport" + | "Unroutable" + | "UnknownClaim" + | "FailedToDecode" + | "MaxWeightInvalid" + | "NotHoldingFees" + | "TooExpensive" + | "Trap" + | "ExpectationFalse" + | "PalletNotFound" + | "NameMismatch" + | "VersionIncompatible" + | "HoldingWouldOverflow" + | "ExportError" + | "ReanchorFailed" + | "NoDeal" + | "FeesNotMet" + | "LockError" + | "NoPermission" + | "Unanchored" + | "NotDepositable" + | "UnhandledXcmVersion" + | "WeightLimitReached" + | "Barrier" + | "WeightNotComputable" + | "ExceedsStackLimit"; + } + + /** @name StagingXcmV4Location (47) */ + interface StagingXcmV4Location extends Struct { + readonly parents: u8; + readonly interior: StagingXcmV4Junctions; + } + + /** @name StagingXcmV4Junctions (48) */ + interface StagingXcmV4Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: StagingXcmV4Junction; + readonly isX2: boolean; + readonly asX2: StagingXcmV4Junction; + readonly isX3: boolean; + readonly asX3: StagingXcmV4Junction; + readonly isX4: boolean; + readonly asX4: StagingXcmV4Junction; + readonly isX5: boolean; + readonly asX5: StagingXcmV4Junction; + readonly isX6: boolean; + readonly asX6: StagingXcmV4Junction; + readonly isX7: boolean; + readonly asX7: StagingXcmV4Junction; + readonly isX8: boolean; + readonly asX8: StagingXcmV4Junction; + readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; + } + + /** @name StagingXcmV4Junction (50) */ + interface StagingXcmV4Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: StagingXcmV4JunctionNetworkId; + readonly type: + | "Parachain" + | "AccountId32" + | "AccountIndex64" + | "AccountKey20" + | "PalletInstance" + | "GeneralIndex" + | "GeneralKey" + | "OnlyChild" + | "Plurality" + | "GlobalConsensus"; + } + + /** @name StagingXcmV4JunctionNetworkId (53) */ + interface StagingXcmV4JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: + | "ByGenesis" + | "ByFork" + | "Polkadot" + | "Kusama" + | "Westend" + | "Rococo" + | "Wococo" + | "Ethereum" + | "BitcoinCore" + | "BitcoinCash" + | "PolkadotBulletin"; + } + + /** @name XcmV3JunctionBodyId (56) */ + interface XcmV3JunctionBodyId extends Enum { + readonly isUnit: boolean; + readonly isMoniker: boolean; + readonly asMoniker: U8aFixed; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: + | "Unit" + | "Moniker" + | "Index" + | "Executive" + | "Technical" + | "Legislative" + | "Judicial" + | "Defense" + | "Administration" + | "Treasury"; + } + + /** @name XcmV3JunctionBodyPart (57) */ + interface XcmV3JunctionBodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; + } + + /** @name StagingXcmV4Xcm (65) */ + interface StagingXcmV4Xcm extends Vec {} + + /** @name StagingXcmV4Instruction (67) */ + interface StagingXcmV4Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: StagingXcmV4AssetAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: StagingXcmV4AssetAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: StagingXcmV4AssetAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: StagingXcmV4Response; + readonly maxWeight: SpWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly beneficiary: StagingXcmV4Location; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly requireWeightAtMost: SpWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: StagingXcmV4Junctions; + readonly isReportError: boolean; + readonly asReportError: StagingXcmV4QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly beneficiary: StagingXcmV4Location; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: StagingXcmV4AssetAssetFilter; + readonly want: StagingXcmV4AssetAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly reserve: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: StagingXcmV4QueryResponseInfo; + readonly assets: StagingXcmV4AssetAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: StagingXcmV4Asset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: StagingXcmV4Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: StagingXcmV4Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly ticket: StagingXcmV4Location; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: StagingXcmV4AssetAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: StagingXcmV4AssetAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: StagingXcmV4QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: StagingXcmV4QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: StagingXcmV4Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: StagingXcmV4JunctionNetworkId; + readonly destination: StagingXcmV4Junctions; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: StagingXcmV4Asset; + readonly unlocker: StagingXcmV4Location; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: StagingXcmV4Asset; + readonly target: StagingXcmV4Location; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: StagingXcmV4Asset; + readonly owner: StagingXcmV4Location; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: StagingXcmV4Asset; + readonly locker: StagingXcmV4Location; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV4Location; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: + | "WithdrawAsset" + | "ReserveAssetDeposited" + | "ReceiveTeleportedAsset" + | "QueryResponse" + | "TransferAsset" + | "TransferReserveAsset" + | "Transact" + | "HrmpNewChannelOpenRequest" + | "HrmpChannelAccepted" + | "HrmpChannelClosing" + | "ClearOrigin" + | "DescendOrigin" + | "ReportError" + | "DepositAsset" + | "DepositReserveAsset" + | "ExchangeAsset" + | "InitiateReserveWithdraw" + | "InitiateTeleport" + | "ReportHolding" + | "BuyExecution" + | "RefundSurplus" + | "SetErrorHandler" + | "SetAppendix" + | "ClearError" + | "ClaimAsset" + | "Trap" + | "SubscribeVersion" + | "UnsubscribeVersion" + | "BurnAsset" + | "ExpectAsset" + | "ExpectOrigin" + | "ExpectError" + | "ExpectTransactStatus" + | "QueryPallet" + | "ExpectPallet" + | "ReportTransactStatus" + | "ClearTransactStatus" + | "UniversalOrigin" + | "ExportMessage" + | "LockAsset" + | "UnlockAsset" + | "NoteUnlockable" + | "RequestUnlock" + | "SetFeesMode" + | "SetTopic" + | "ClearTopic" + | "AliasOrigin" + | "UnpaidExecution"; + } + + /** @name StagingXcmV4AssetAssets (68) */ + interface StagingXcmV4AssetAssets extends Vec {} + + /** @name StagingXcmV4Asset (70) */ + interface StagingXcmV4Asset extends Struct { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetFungibility; + } + + /** @name StagingXcmV4AssetAssetId (71) */ + interface StagingXcmV4AssetAssetId extends StagingXcmV4Location {} + + /** @name StagingXcmV4AssetFungibility (72) */ + interface StagingXcmV4AssetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: StagingXcmV4AssetAssetInstance; + readonly type: "Fungible" | "NonFungible"; + } + + /** @name StagingXcmV4AssetAssetInstance (73) */ + interface StagingXcmV4AssetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; + } + + /** @name StagingXcmV4Response (76) */ + interface StagingXcmV4Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: StagingXcmV4AssetAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: + | "Null" + | "Assets" + | "ExecutionResult" + | "Version" + | "PalletsInfo" + | "DispatchResult"; + } + + /** @name StagingXcmV4PalletInfo (80) */ + interface StagingXcmV4PalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + + /** @name XcmV3MaybeErrorCode (83) */ + interface XcmV3MaybeErrorCode extends Enum { + readonly isSuccess: boolean; + readonly isError: boolean; + readonly asError: Bytes; + readonly isTruncatedError: boolean; + readonly asTruncatedError: Bytes; + readonly type: "Success" | "Error" | "TruncatedError"; + } + + /** @name XcmV3OriginKind (86) */ + interface XcmV3OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; + } + + /** @name XcmDoubleEncoded (87) */ + interface XcmDoubleEncoded extends Struct { + readonly encoded: Bytes; + } + + /** @name StagingXcmV4QueryResponseInfo (88) */ + interface StagingXcmV4QueryResponseInfo extends Struct { + readonly destination: StagingXcmV4Location; + readonly queryId: Compact; + readonly maxWeight: SpWeightsWeightV2Weight; + } + + /** @name StagingXcmV4AssetAssetFilter (89) */ + interface StagingXcmV4AssetAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: StagingXcmV4AssetAssets; + readonly isWild: boolean; + readonly asWild: StagingXcmV4AssetWildAsset; + readonly type: "Definite" | "Wild"; + } + + /** @name StagingXcmV4AssetWildAsset (90) */ + interface StagingXcmV4AssetWildAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; + } + + /** @name StagingXcmV4AssetWildFungibility (91) */ + interface StagingXcmV4AssetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: "Fungible" | "NonFungible"; + } + + /** @name XcmV3WeightLimit (92) */ + interface XcmV3WeightLimit extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: SpWeightsWeightV2Weight; + readonly type: "Unlimited" | "Limited"; + } + + /** @name XcmVersionedAssets (93) */ + interface XcmVersionedAssets extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2MultiassetMultiAssets; + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetMultiAssets; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssets; + readonly type: "V2" | "V3" | "V4"; + } + + /** @name XcmV2MultiassetMultiAssets (94) */ + interface XcmV2MultiassetMultiAssets extends Vec {} + + /** @name XcmV2MultiAsset (96) */ + interface XcmV2MultiAsset extends Struct { + readonly id: XcmV2MultiassetAssetId; + readonly fun: XcmV2MultiassetFungibility; + } + + /** @name XcmV2MultiassetAssetId (97) */ + interface XcmV2MultiassetAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: XcmV2MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: "Concrete" | "Abstract"; + } + + /** @name XcmV2MultiLocation (98) */ + interface XcmV2MultiLocation extends Struct { + readonly parents: u8; + readonly interior: XcmV2MultilocationJunctions; + } + + /** @name XcmV2MultilocationJunctions (99) */ + interface XcmV2MultilocationJunctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: XcmV2Junction; + readonly isX2: boolean; + readonly asX2: ITuple<[XcmV2Junction, XcmV2Junction]>; + readonly isX3: boolean; + readonly asX3: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX4: boolean; + readonly asX4: ITuple<[XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction]>; + readonly isX5: boolean; + readonly asX5: ITuple< + [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] + >; + readonly isX6: boolean; + readonly asX6: ITuple< + [XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction, XcmV2Junction] + >; + readonly isX7: boolean; + readonly asX7: ITuple< + [ + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction + ] + >; + readonly isX8: boolean; + readonly asX8: ITuple< + [ + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction, + XcmV2Junction + ] + >; + readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; + } + + /** @name XcmV2Junction (100) */ + interface XcmV2Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: XcmV2NetworkId; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: XcmV2NetworkId; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: XcmV2NetworkId; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV2BodyId; + readonly part: XcmV2BodyPart; + } & Struct; + readonly type: + | "Parachain" + | "AccountId32" + | "AccountIndex64" + | "AccountKey20" + | "PalletInstance" + | "GeneralIndex" + | "GeneralKey" + | "OnlyChild" + | "Plurality"; + } + + /** @name XcmV2NetworkId (101) */ + interface XcmV2NetworkId extends Enum { + readonly isAny: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly type: "Any" | "Named" | "Polkadot" | "Kusama"; + } + + /** @name XcmV2BodyId (103) */ + interface XcmV2BodyId extends Enum { + readonly isUnit: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: + | "Unit" + | "Named" + | "Index" + | "Executive" + | "Technical" + | "Legislative" + | "Judicial" + | "Defense" + | "Administration" + | "Treasury"; + } + + /** @name XcmV2BodyPart (104) */ + interface XcmV2BodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: "Voice" | "Members" | "Fraction" | "AtLeastProportion" | "MoreThanProportion"; + } + + /** @name XcmV2MultiassetFungibility (105) */ + interface XcmV2MultiassetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: XcmV2MultiassetAssetInstance; + readonly type: "Fungible" | "NonFungible"; + } + + /** @name XcmV2MultiassetAssetInstance (106) */ + interface XcmV2MultiassetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32" | "Blob"; + } + + /** @name XcmV3MultiassetMultiAssets (107) */ + interface XcmV3MultiassetMultiAssets extends Vec {} + + /** @name XcmV3MultiAsset (109) */ + interface XcmV3MultiAsset extends Struct { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetFungibility; + } + + /** @name XcmV3MultiassetAssetId (110) */ + interface XcmV3MultiassetAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: StagingXcmV3MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: U8aFixed; + readonly type: "Concrete" | "Abstract"; + } + + /** @name StagingXcmV3MultiLocation (111) */ + interface StagingXcmV3MultiLocation extends Struct { + readonly parents: u8; + readonly interior: XcmV3Junctions; + } + + /** @name XcmV3Junctions (112) */ + interface XcmV3Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: XcmV3Junction; + readonly isX2: boolean; + readonly asX2: ITuple<[XcmV3Junction, XcmV3Junction]>; + readonly isX3: boolean; + readonly asX3: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX4: boolean; + readonly asX4: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX5: boolean; + readonly asX5: ITuple< + [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] + >; + readonly isX6: boolean; + readonly asX6: ITuple< + [XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction] + >; + readonly isX7: boolean; + readonly asX7: ITuple< + [ + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction + ] + >; + readonly isX8: boolean; + readonly asX8: ITuple< + [ + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction, + XcmV3Junction + ] + >; + readonly type: "Here" | "X1" | "X2" | "X3" | "X4" | "X5" | "X6" | "X7" | "X8"; + } + + /** @name XcmV3Junction (113) */ + interface XcmV3Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: XcmV3JunctionNetworkId; + readonly type: + | "Parachain" + | "AccountId32" + | "AccountIndex64" + | "AccountKey20" + | "PalletInstance" + | "GeneralIndex" + | "GeneralKey" + | "OnlyChild" + | "Plurality" + | "GlobalConsensus"; + } + + /** @name XcmV3JunctionNetworkId (115) */ + interface XcmV3JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: + | "ByGenesis" + | "ByFork" + | "Polkadot" + | "Kusama" + | "Westend" + | "Rococo" + | "Wococo" + | "Ethereum" + | "BitcoinCore" + | "BitcoinCash" + | "PolkadotBulletin"; + } + + /** @name XcmV3MultiassetFungibility (116) */ + interface XcmV3MultiassetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: XcmV3MultiassetAssetInstance; + readonly type: "Fungible" | "NonFungible"; + } + + /** @name XcmV3MultiassetAssetInstance (117) */ + interface XcmV3MultiassetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: "Undefined" | "Index" | "Array4" | "Array8" | "Array16" | "Array32"; + } + + /** @name XcmVersionedLocation (118) */ + interface XcmVersionedLocation extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2MultiLocation; + readonly isV3: boolean; + readonly asV3: StagingXcmV3MultiLocation; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Location; + readonly type: "V2" | "V3" | "V4"; + } + + /** @name CumulusPalletXcmEvent (119) */ + interface CumulusPalletXcmEvent extends Enum { + readonly isInvalidFormat: boolean; + readonly asInvalidFormat: U8aFixed; + readonly isUnsupportedVersion: boolean; + readonly asUnsupportedVersion: U8aFixed; + readonly isExecutedDownward: boolean; + readonly asExecutedDownward: ITuple<[U8aFixed, StagingXcmV4TraitsOutcome]>; + readonly type: "InvalidFormat" | "UnsupportedVersion" | "ExecutedDownward"; + } + + /** @name PalletMessageQueueEvent (120) */ + interface PalletMessageQueueEvent extends Enum { + readonly isProcessingFailed: boolean; + readonly asProcessingFailed: { + readonly id: H256; + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly error: FrameSupportMessagesProcessMessageError; + } & Struct; + readonly isProcessed: boolean; + readonly asProcessed: { + readonly id: H256; + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly weightUsed: SpWeightsWeightV2Weight; + readonly success: bool; + } & Struct; + readonly isOverweightEnqueued: boolean; + readonly asOverweightEnqueued: { + readonly id: U8aFixed; + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly pageIndex: u32; + readonly messageIndex: u32; + } & Struct; + readonly isPageReaped: boolean; + readonly asPageReaped: { + readonly origin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly index: u32; + } & Struct; + readonly type: "ProcessingFailed" | "Processed" | "OverweightEnqueued" | "PageReaped"; + } + + /** @name CumulusPrimitivesCoreAggregateMessageOrigin (121) */ + interface CumulusPrimitivesCoreAggregateMessageOrigin extends Enum { + readonly isHere: boolean; + readonly isParent: boolean; + readonly isSibling: boolean; + readonly asSibling: u32; + readonly type: "Here" | "Parent" | "Sibling"; + } + + /** @name FrameSupportMessagesProcessMessageError (123) */ + interface FrameSupportMessagesProcessMessageError extends Enum { + readonly isBadFormat: boolean; + readonly isCorrupt: boolean; + readonly isUnsupported: boolean; + readonly isOverweight: boolean; + readonly asOverweight: SpWeightsWeightV2Weight; + readonly isYield: boolean; + readonly isStackLimitReached: boolean; + readonly type: + | "BadFormat" + | "Corrupt" + | "Unsupported" + | "Overweight" + | "Yield" + | "StackLimitReached"; + } + + /** @name PalletStorageProvidersEvent (124) */ + interface PalletStorageProvidersEvent extends Enum { + readonly isMspRequestSignUpSuccess: boolean; + readonly asMspRequestSignUpSuccess: { + readonly who: AccountId32; + readonly multiaddresses: Vec; + readonly capacity: u64; + readonly valueProp: PalletStorageProvidersValueProposition; + } & Struct; + readonly isMspSignUpSuccess: boolean; + readonly asMspSignUpSuccess: { + readonly who: AccountId32; + readonly mspId: H256; + readonly multiaddresses: Vec; + readonly capacity: u64; + readonly valueProp: PalletStorageProvidersValueProposition; + } & Struct; + readonly isBspRequestSignUpSuccess: boolean; + readonly asBspRequestSignUpSuccess: { + readonly who: AccountId32; + readonly multiaddresses: Vec; + readonly capacity: u64; + } & Struct; + readonly isBspSignUpSuccess: boolean; + readonly asBspSignUpSuccess: { + readonly who: AccountId32; + readonly bspId: H256; + readonly multiaddresses: Vec; + readonly capacity: u64; + } & Struct; + readonly isSignUpRequestCanceled: boolean; + readonly asSignUpRequestCanceled: { + readonly who: AccountId32; + } & Struct; + readonly isMspSignOffSuccess: boolean; + readonly asMspSignOffSuccess: { + readonly who: AccountId32; + readonly mspId: H256; + } & Struct; + readonly isBspSignOffSuccess: boolean; + readonly asBspSignOffSuccess: { + readonly who: AccountId32; + readonly bspId: H256; + } & Struct; + readonly isCapacityChanged: boolean; + readonly asCapacityChanged: { + readonly who: AccountId32; + readonly providerId: PalletStorageProvidersStorageProviderId; + readonly oldCapacity: u64; + readonly newCapacity: u64; + readonly nextBlockWhenChangeAllowed: u32; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly providerId: H256; + readonly amountSlashed: u128; + } & Struct; + readonly type: + | "MspRequestSignUpSuccess" + | "MspSignUpSuccess" + | "BspRequestSignUpSuccess" + | "BspSignUpSuccess" + | "SignUpRequestCanceled" + | "MspSignOffSuccess" + | "BspSignOffSuccess" + | "CapacityChanged" + | "Slashed"; + } + + /** @name PalletStorageProvidersValueProposition (128) */ + interface PalletStorageProvidersValueProposition extends Struct { + readonly identifier: H256; + readonly dataLimit: u64; + readonly protocols: Vec; + } + + /** @name PalletStorageProvidersStorageProviderId (130) */ + interface PalletStorageProvidersStorageProviderId extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: H256; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: H256; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; + } + + /** @name PalletFileSystemEvent (131) */ + interface PalletFileSystemEvent extends Enum { + readonly isNewBucket: boolean; + readonly asNewBucket: { + readonly who: AccountId32; + readonly mspId: H256; + readonly bucketId: H256; + readonly name: Bytes; + readonly collectionId: Option; + readonly private: bool; + } & Struct; + readonly isMoveBucketRequested: boolean; + readonly asMoveBucketRequested: { + readonly who: AccountId32; + readonly bucketId: H256; + readonly newMspId: H256; + } & Struct; + readonly isBucketPrivacyUpdated: boolean; + readonly asBucketPrivacyUpdated: { + readonly who: AccountId32; + readonly bucketId: H256; + readonly collectionId: Option; + readonly private: bool; + } & Struct; + readonly isNewCollectionAndAssociation: boolean; + readonly asNewCollectionAndAssociation: { + readonly who: AccountId32; + readonly bucketId: H256; + readonly collectionId: u32; + } & Struct; + readonly isNewStorageRequest: boolean; + readonly asNewStorageRequest: { + readonly who: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly size_: u64; + readonly peerIds: Vec; + } & Struct; + readonly isMspRespondedToStorageRequests: boolean; + readonly asMspRespondedToStorageRequests: { + readonly results: PalletFileSystemMspRespondStorageRequestsResult; + } & Struct; + readonly isAcceptedBspVolunteer: boolean; + readonly asAcceptedBspVolunteer: { + readonly bspId: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly multiaddresses: Vec; + readonly owner: AccountId32; + readonly size_: u64; + } & Struct; + readonly isBspConfirmedStoring: boolean; + readonly asBspConfirmedStoring: { + readonly who: AccountId32; + readonly bspId: H256; + readonly fileKeys: Vec; + readonly newRoot: H256; + } & Struct; + readonly isStorageRequestFulfilled: boolean; + readonly asStorageRequestFulfilled: { + readonly fileKey: H256; + } & Struct; + readonly isStorageRequestExpired: boolean; + readonly asStorageRequestExpired: { + readonly fileKey: H256; + } & Struct; + readonly isStorageRequestRevoked: boolean; + readonly asStorageRequestRevoked: { + readonly fileKey: H256; + } & Struct; + readonly isBspRequestedToStopStoring: boolean; + readonly asBspRequestedToStopStoring: { + readonly bspId: H256; + readonly fileKey: H256; + readonly owner: AccountId32; + readonly location: Bytes; + } & Struct; + readonly isBspConfirmStoppedStoring: boolean; + readonly asBspConfirmStoppedStoring: { + readonly bspId: H256; + readonly fileKey: H256; + readonly newRoot: H256; + } & Struct; + readonly isPriorityChallengeForFileDeletionQueued: boolean; + readonly asPriorityChallengeForFileDeletionQueued: { + readonly issuer: PalletFileSystemEitherAccountIdOrMspId; + readonly fileKey: H256; + } & Struct; + readonly isSpStopStoringInsolventUser: boolean; + readonly asSpStopStoringInsolventUser: { + readonly spId: H256; + readonly fileKey: H256; + readonly owner: AccountId32; + readonly location: Bytes; + readonly newRoot: H256; + } & Struct; + readonly isFailedToQueuePriorityChallenge: boolean; + readonly asFailedToQueuePriorityChallenge: { + readonly user: AccountId32; + readonly fileKey: H256; + } & Struct; + readonly isFileDeletionRequest: boolean; + readonly asFileDeletionRequest: { + readonly user: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly mspId: H256; + readonly proofOfInclusion: bool; + } & Struct; + readonly isProofSubmittedForPendingFileDeletionRequest: boolean; + readonly asProofSubmittedForPendingFileDeletionRequest: { + readonly mspId: H256; + readonly user: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly proofOfInclusion: bool; + } & Struct; + readonly isBspChallengeCycleInitialised: boolean; + readonly asBspChallengeCycleInitialised: { + readonly who: AccountId32; + readonly bspId: H256; + } & Struct; + readonly isMoveBucketRequestExpired: boolean; + readonly asMoveBucketRequestExpired: { + readonly mspId: H256; + readonly bucketId: H256; + } & Struct; + readonly isMoveBucketAccepted: boolean; + readonly asMoveBucketAccepted: { + readonly bucketId: H256; + readonly mspId: H256; + } & Struct; + readonly isMoveBucketRejected: boolean; + readonly asMoveBucketRejected: { + readonly bucketId: H256; + readonly mspId: H256; + } & Struct; + readonly isDataServerRegisteredForMoveBucket: boolean; + readonly asDataServerRegisteredForMoveBucket: { + readonly bspId: H256; + readonly bucketId: H256; + } & Struct; + readonly type: + | "NewBucket" + | "MoveBucketRequested" + | "BucketPrivacyUpdated" + | "NewCollectionAndAssociation" + | "NewStorageRequest" + | "MspRespondedToStorageRequests" + | "AcceptedBspVolunteer" + | "BspConfirmedStoring" + | "StorageRequestFulfilled" + | "StorageRequestExpired" + | "StorageRequestRevoked" + | "BspRequestedToStopStoring" + | "BspConfirmStoppedStoring" + | "PriorityChallengeForFileDeletionQueued" + | "SpStopStoringInsolventUser" + | "FailedToQueuePriorityChallenge" + | "FileDeletionRequest" + | "ProofSubmittedForPendingFileDeletionRequest" + | "BspChallengeCycleInitialised" + | "MoveBucketRequestExpired" + | "MoveBucketAccepted" + | "MoveBucketRejected" + | "DataServerRegisteredForMoveBucket"; + } + + /** @name PalletFileSystemMspRespondStorageRequestsResult (134) */ + interface PalletFileSystemMspRespondStorageRequestsResult extends Struct { + readonly mspId: H256; + readonly responses: Vec; + } + + /** @name PalletFileSystemBatchResponses (136) */ + interface PalletFileSystemBatchResponses extends Enum { + readonly isAccepted: boolean; + readonly asAccepted: PalletFileSystemMspAcceptedBatchStorageRequests; + readonly isRejected: boolean; + readonly asRejected: PalletFileSystemMspRejectedBatchStorageRequests; + readonly isFailed: boolean; + readonly asFailed: PalletFileSystemMspFailedBatchStorageRequests; + readonly type: "Accepted" | "Rejected" | "Failed"; + } + + /** @name PalletFileSystemMspAcceptedBatchStorageRequests (137) */ + interface PalletFileSystemMspAcceptedBatchStorageRequests extends Struct { + readonly fileKeys: Vec; + readonly bucketId: H256; + readonly newBucketRoot: H256; + readonly owner: AccountId32; + } + + /** @name PalletFileSystemMspRejectedBatchStorageRequests (140) */ + interface PalletFileSystemMspRejectedBatchStorageRequests extends Struct { + readonly fileKeys: Vec>; + readonly bucketId: H256; + readonly owner: AccountId32; + } + + /** @name PalletFileSystemRejectedStorageRequestReason (143) */ + interface PalletFileSystemRejectedStorageRequestReason extends Enum { + readonly isReachedMaximumCapacity: boolean; + readonly isReceivedInvalidProof: boolean; + readonly isInternalError: boolean; + readonly type: "ReachedMaximumCapacity" | "ReceivedInvalidProof" | "InternalError"; + } + + /** @name PalletFileSystemMspFailedBatchStorageRequests (145) */ + interface PalletFileSystemMspFailedBatchStorageRequests extends Struct { + readonly fileKeys: Vec>; + readonly bucketId: H256; + readonly owner: AccountId32; + } + + /** @name PalletFileSystemEitherAccountIdOrMspId (150) */ + interface PalletFileSystemEitherAccountIdOrMspId extends Enum { + readonly isAccountId: boolean; + readonly asAccountId: AccountId32; + readonly isMspId: boolean; + readonly asMspId: H256; + readonly type: "AccountId" | "MspId"; + } + + /** @name PalletProofsDealerEvent (151) */ + interface PalletProofsDealerEvent extends Enum { + readonly isNewChallenge: boolean; + readonly asNewChallenge: { + readonly who: AccountId32; + readonly keyChallenged: H256; + } & Struct; + readonly isProofAccepted: boolean; + readonly asProofAccepted: { + readonly provider: H256; + readonly proof: PalletProofsDealerProof; + } & Struct; + readonly isNewChallengeSeed: boolean; + readonly asNewChallengeSeed: { + readonly challengesTicker: u32; + readonly seed: H256; + } & Struct; + readonly isNewCheckpointChallenge: boolean; + readonly asNewCheckpointChallenge: { + readonly challengesTicker: u32; + readonly challenges: Vec]>>; + } & Struct; + readonly isSlashableProvider: boolean; + readonly asSlashableProvider: { + readonly provider: H256; + readonly nextChallengeDeadline: u32; + } & Struct; + readonly isNoRecordOfLastSubmittedProof: boolean; + readonly asNoRecordOfLastSubmittedProof: { + readonly provider: H256; + } & Struct; + readonly isNewChallengeCycleInitialised: boolean; + readonly asNewChallengeCycleInitialised: { + readonly currentTick: u32; + readonly nextChallengeDeadline: u32; + readonly provider: H256; + readonly maybeProviderAccount: Option; + } & Struct; + readonly isMutationsApplied: boolean; + readonly asMutationsApplied: { + readonly provider: H256; + readonly mutations: Vec>; + readonly newRoot: H256; + } & Struct; + readonly isChallengesTickerSet: boolean; + readonly asChallengesTickerSet: { + readonly paused: bool; + } & Struct; + readonly type: + | "NewChallenge" + | "ProofAccepted" + | "NewChallengeSeed" + | "NewCheckpointChallenge" + | "SlashableProvider" + | "NoRecordOfLastSubmittedProof" + | "NewChallengeCycleInitialised" + | "MutationsApplied" + | "ChallengesTickerSet"; + } + + /** @name PalletProofsDealerProof (152) */ + interface PalletProofsDealerProof extends Struct { + readonly forestProof: SpTrieStorageProofCompactProof; + readonly keyProofs: BTreeMap; + } + + /** @name SpTrieStorageProofCompactProof (153) */ + interface SpTrieStorageProofCompactProof extends Struct { + readonly encodedNodes: Vec; + } + + /** @name PalletProofsDealerKeyProof (156) */ + interface PalletProofsDealerKeyProof extends Struct { + readonly proof: ShpFileKeyVerifierFileKeyProof; + readonly challengeCount: u32; + } + + /** @name ShpFileKeyVerifierFileKeyProof (157) */ + interface ShpFileKeyVerifierFileKeyProof extends Struct { + readonly fileMetadata: ShpFileMetadataFileMetadata; + readonly proof: SpTrieStorageProofCompactProof; + } + + /** @name ShpFileMetadataFileMetadata (158) */ + interface ShpFileMetadataFileMetadata extends Struct { + readonly owner: Bytes; + readonly bucketId: Bytes; + readonly location: Bytes; + readonly fileSize: Compact; + readonly fingerprint: ShpFileMetadataFingerprint; + } + + /** @name ShpFileMetadataFingerprint (159) */ + interface ShpFileMetadataFingerprint extends U8aFixed {} + + /** @name ShpTraitsTrieRemoveMutation (165) */ + type ShpTraitsTrieRemoveMutation = Null; + + /** @name PalletRandomnessEvent (169) */ + interface PalletRandomnessEvent extends Enum { + readonly isNewOneEpochAgoRandomnessAvailable: boolean; + readonly asNewOneEpochAgoRandomnessAvailable: { + readonly randomnessSeed: H256; + readonly fromEpoch: u64; + readonly validUntilBlock: u32; + } & Struct; + readonly type: "NewOneEpochAgoRandomnessAvailable"; + } + + /** @name PalletPaymentStreamsEvent (170) */ + interface PalletPaymentStreamsEvent extends Enum { + readonly isFixedRatePaymentStreamCreated: boolean; + readonly asFixedRatePaymentStreamCreated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly rate: u128; + } & Struct; + readonly isFixedRatePaymentStreamUpdated: boolean; + readonly asFixedRatePaymentStreamUpdated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly newRate: u128; + } & Struct; + readonly isFixedRatePaymentStreamDeleted: boolean; + readonly asFixedRatePaymentStreamDeleted: { + readonly userAccount: AccountId32; + readonly providerId: H256; + } & Struct; + readonly isDynamicRatePaymentStreamCreated: boolean; + readonly asDynamicRatePaymentStreamCreated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly amountProvided: u64; + } & Struct; + readonly isDynamicRatePaymentStreamUpdated: boolean; + readonly asDynamicRatePaymentStreamUpdated: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly newAmountProvided: u64; + } & Struct; + readonly isDynamicRatePaymentStreamDeleted: boolean; + readonly asDynamicRatePaymentStreamDeleted: { + readonly userAccount: AccountId32; + readonly providerId: H256; + } & Struct; + readonly isPaymentStreamCharged: boolean; + readonly asPaymentStreamCharged: { + readonly userAccount: AccountId32; + readonly providerId: H256; + readonly amount: u128; + } & Struct; + readonly isLastChargeableInfoUpdated: boolean; + readonly asLastChargeableInfoUpdated: { + readonly providerId: H256; + readonly lastChargeableTick: u32; + readonly lastChargeablePriceIndex: u128; + } & Struct; + readonly isUserWithoutFunds: boolean; + readonly asUserWithoutFunds: { + readonly who: AccountId32; + } & Struct; + readonly isUserPaidDebts: boolean; + readonly asUserPaidDebts: { + readonly who: AccountId32; + } & Struct; + readonly isUserSolvent: boolean; + readonly asUserSolvent: { + readonly who: AccountId32; + } & Struct; + readonly type: + | "FixedRatePaymentStreamCreated" + | "FixedRatePaymentStreamUpdated" + | "FixedRatePaymentStreamDeleted" + | "DynamicRatePaymentStreamCreated" + | "DynamicRatePaymentStreamUpdated" + | "DynamicRatePaymentStreamDeleted" + | "PaymentStreamCharged" + | "LastChargeableInfoUpdated" + | "UserWithoutFunds" + | "UserPaidDebts" + | "UserSolvent"; + } + + /** @name PalletBucketNftsEvent (171) */ + interface PalletBucketNftsEvent extends Enum { + readonly isAccessShared: boolean; + readonly asAccessShared: { + readonly issuer: AccountId32; + readonly recipient: AccountId32; + } & Struct; + readonly isItemReadAccessUpdated: boolean; + readonly asItemReadAccessUpdated: { + readonly admin: AccountId32; + readonly bucket: H256; + readonly itemId: u32; + } & Struct; + readonly isItemBurned: boolean; + readonly asItemBurned: { + readonly account: AccountId32; + readonly bucket: H256; + readonly itemId: u32; + } & Struct; + readonly type: "AccessShared" | "ItemReadAccessUpdated" | "ItemBurned"; + } + + /** @name PalletNftsEvent (172) */ + interface PalletNftsEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly collection: u32; + readonly creator: AccountId32; + readonly owner: AccountId32; + } & Struct; + readonly isForceCreated: boolean; + readonly asForceCreated: { + readonly collection: u32; + readonly owner: AccountId32; + } & Struct; + readonly isDestroyed: boolean; + readonly asDestroyed: { + readonly collection: u32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly collection: u32; + readonly item: u32; + readonly from: AccountId32; + readonly to: AccountId32; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isItemTransferLocked: boolean; + readonly asItemTransferLocked: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemTransferUnlocked: boolean; + readonly asItemTransferUnlocked: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemPropertiesLocked: boolean; + readonly asItemPropertiesLocked: { + readonly collection: u32; + readonly item: u32; + readonly lockMetadata: bool; + readonly lockAttributes: bool; + } & Struct; + readonly isCollectionLocked: boolean; + readonly asCollectionLocked: { + readonly collection: u32; + } & Struct; + readonly isOwnerChanged: boolean; + readonly asOwnerChanged: { + readonly collection: u32; + readonly newOwner: AccountId32; + } & Struct; + readonly isTeamChanged: boolean; + readonly asTeamChanged: { + readonly collection: u32; + readonly issuer: Option; + readonly admin: Option; + readonly freezer: Option; + } & Struct; + readonly isTransferApproved: boolean; + readonly asTransferApproved: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + readonly deadline: Option; + } & Struct; + readonly isApprovalCancelled: boolean; + readonly asApprovalCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + } & Struct; + readonly isAllApprovalsCancelled: boolean; + readonly asAllApprovalsCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isCollectionConfigChanged: boolean; + readonly asCollectionConfigChanged: { + readonly collection: u32; + } & Struct; + readonly isCollectionMetadataSet: boolean; + readonly asCollectionMetadataSet: { + readonly collection: u32; + readonly data: Bytes; + } & Struct; + readonly isCollectionMetadataCleared: boolean; + readonly asCollectionMetadataCleared: { + readonly collection: u32; + } & Struct; + readonly isItemMetadataSet: boolean; + readonly asItemMetadataSet: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + } & Struct; + readonly isItemMetadataCleared: boolean; + readonly asItemMetadataCleared: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isRedeposited: boolean; + readonly asRedeposited: { + readonly collection: u32; + readonly successfulItems: Vec; + } & Struct; + readonly isAttributeSet: boolean; + readonly asAttributeSet: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly value: Bytes; + readonly namespace: PalletNftsAttributeNamespace; + } & Struct; + readonly isAttributeCleared: boolean; + readonly asAttributeCleared: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly namespace: PalletNftsAttributeNamespace; + } & Struct; + readonly isItemAttributesApprovalAdded: boolean; + readonly asItemAttributesApprovalAdded: { + readonly collection: u32; + readonly item: u32; + readonly delegate: AccountId32; + } & Struct; + readonly isItemAttributesApprovalRemoved: boolean; + readonly asItemAttributesApprovalRemoved: { + readonly collection: u32; + readonly item: u32; + readonly delegate: AccountId32; + } & Struct; + readonly isOwnershipAcceptanceChanged: boolean; + readonly asOwnershipAcceptanceChanged: { + readonly who: AccountId32; + readonly maybeCollection: Option; + } & Struct; + readonly isCollectionMaxSupplySet: boolean; + readonly asCollectionMaxSupplySet: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isCollectionMintSettingsUpdated: boolean; + readonly asCollectionMintSettingsUpdated: { + readonly collection: u32; + } & Struct; + readonly isNextCollectionIdIncremented: boolean; + readonly asNextCollectionIdIncremented: { + readonly nextId: Option; + } & Struct; + readonly isItemPriceSet: boolean; + readonly asItemPriceSet: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isItemPriceRemoved: boolean; + readonly asItemPriceRemoved: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemBought: boolean; + readonly asItemBought: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly seller: AccountId32; + readonly buyer: AccountId32; + } & Struct; + readonly isTipSent: boolean; + readonly asTipSent: { + readonly collection: u32; + readonly item: u32; + readonly sender: AccountId32; + readonly receiver: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSwapCreated: boolean; + readonly asSwapCreated: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isSwapCancelled: boolean; + readonly asSwapCancelled: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isSwapClaimed: boolean; + readonly asSwapClaimed: { + readonly sentCollection: u32; + readonly sentItem: u32; + readonly sentItemOwner: AccountId32; + readonly receivedCollection: u32; + readonly receivedItem: u32; + readonly receivedItemOwner: AccountId32; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isPreSignedAttributesSet: boolean; + readonly asPreSignedAttributesSet: { + readonly collection: u32; + readonly item: u32; + readonly namespace: PalletNftsAttributeNamespace; + } & Struct; + readonly isPalletAttributeSet: boolean; + readonly asPalletAttributeSet: { + readonly collection: u32; + readonly item: Option; + readonly attribute: PalletNftsPalletAttributes; + readonly value: Bytes; + } & Struct; + readonly type: + | "Created" + | "ForceCreated" + | "Destroyed" + | "Issued" + | "Transferred" + | "Burned" + | "ItemTransferLocked" + | "ItemTransferUnlocked" + | "ItemPropertiesLocked" + | "CollectionLocked" + | "OwnerChanged" + | "TeamChanged" + | "TransferApproved" + | "ApprovalCancelled" + | "AllApprovalsCancelled" + | "CollectionConfigChanged" + | "CollectionMetadataSet" + | "CollectionMetadataCleared" + | "ItemMetadataSet" + | "ItemMetadataCleared" + | "Redeposited" + | "AttributeSet" + | "AttributeCleared" + | "ItemAttributesApprovalAdded" + | "ItemAttributesApprovalRemoved" + | "OwnershipAcceptanceChanged" + | "CollectionMaxSupplySet" + | "CollectionMintSettingsUpdated" + | "NextCollectionIdIncremented" + | "ItemPriceSet" + | "ItemPriceRemoved" + | "ItemBought" + | "TipSent" + | "SwapCreated" + | "SwapCancelled" + | "SwapClaimed" + | "PreSignedAttributesSet" + | "PalletAttributeSet"; + } + + /** @name PalletNftsAttributeNamespace (176) */ + interface PalletNftsAttributeNamespace extends Enum { + readonly isPallet: boolean; + readonly isCollectionOwner: boolean; + readonly isItemOwner: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly type: "Pallet" | "CollectionOwner" | "ItemOwner" | "Account"; + } + + /** @name PalletNftsPriceWithDirection (178) */ + interface PalletNftsPriceWithDirection extends Struct { + readonly amount: u128; + readonly direction: PalletNftsPriceDirection; + } + + /** @name PalletNftsPriceDirection (179) */ + interface PalletNftsPriceDirection extends Enum { + readonly isSend: boolean; + readonly isReceive: boolean; + readonly type: "Send" | "Receive"; + } + + /** @name PalletNftsPalletAttributes (180) */ + interface PalletNftsPalletAttributes extends Enum { + readonly isUsedToClaim: boolean; + readonly asUsedToClaim: u32; + readonly isTransferDisabled: boolean; + readonly type: "UsedToClaim" | "TransferDisabled"; + } + + /** @name PalletParametersEvent (181) */ + interface PalletParametersEvent extends Enum { + readonly isUpdated: boolean; + readonly asUpdated: { + readonly key: StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey; + readonly oldValue: Option; + readonly newValue: Option; + } & Struct; + readonly type: "Updated"; + } + + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey (182) */ + interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersKey extends Enum { + readonly isRuntimeConfig: boolean; + readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey; + readonly type: "RuntimeConfig"; + } + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey (183) */ + interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersKey + extends Enum { + readonly isSlashAmountPerMaxFileSize: boolean; + readonly isStakeToChallengePeriod: boolean; + readonly isCheckpointChallengePeriod: boolean; + readonly isMinChallengePeriod: boolean; + readonly type: + | "SlashAmountPerMaxFileSize" + | "StakeToChallengePeriod" + | "CheckpointChallengePeriod" + | "MinChallengePeriod"; + } + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize (184) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize = + Null; + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod (185) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod = Null; + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod (186) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod = + Null; + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod (187) */ + type StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod = Null; + + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue (189) */ + interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParametersValue extends Enum { + readonly isRuntimeConfig: boolean; + readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue; + readonly type: "RuntimeConfig"; + } + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue (190) */ + interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParametersValue + extends Enum { + readonly isSlashAmountPerMaxFileSize: boolean; + readonly asSlashAmountPerMaxFileSize: u128; + readonly isStakeToChallengePeriod: boolean; + readonly asStakeToChallengePeriod: u128; + readonly isCheckpointChallengePeriod: boolean; + readonly asCheckpointChallengePeriod: u32; + readonly isMinChallengePeriod: boolean; + readonly asMinChallengePeriod: u32; + readonly type: + | "SlashAmountPerMaxFileSize" + | "StakeToChallengePeriod" + | "CheckpointChallengePeriod" + | "MinChallengePeriod"; + } + + /** @name FrameSystemPhase (191) */ + interface FrameSystemPhase extends Enum { + readonly isApplyExtrinsic: boolean; + readonly asApplyExtrinsic: u32; + readonly isFinalization: boolean; + readonly isInitialization: boolean; + readonly type: "ApplyExtrinsic" | "Finalization" | "Initialization"; + } + + /** @name FrameSystemLastRuntimeUpgradeInfo (194) */ + interface FrameSystemLastRuntimeUpgradeInfo extends Struct { + readonly specVersion: Compact; + readonly specName: Text; + } + + /** @name FrameSystemCodeUpgradeAuthorization (196) */ + interface FrameSystemCodeUpgradeAuthorization extends Struct { + readonly codeHash: H256; + readonly checkVersion: bool; + } + + /** @name FrameSystemCall (197) */ + interface FrameSystemCall extends Enum { + readonly isRemark: boolean; + readonly asRemark: { + readonly remark: Bytes; + } & Struct; + readonly isSetHeapPages: boolean; + readonly asSetHeapPages: { + readonly pages: u64; + } & Struct; + readonly isSetCode: boolean; + readonly asSetCode: { + readonly code: Bytes; + } & Struct; + readonly isSetCodeWithoutChecks: boolean; + readonly asSetCodeWithoutChecks: { + readonly code: Bytes; + } & Struct; + readonly isSetStorage: boolean; + readonly asSetStorage: { + readonly items: Vec>; + } & Struct; + readonly isKillStorage: boolean; + readonly asKillStorage: { + readonly keys_: Vec; + } & Struct; + readonly isKillPrefix: boolean; + readonly asKillPrefix: { + readonly prefix: Bytes; + readonly subkeys: u32; + } & Struct; + readonly isRemarkWithEvent: boolean; + readonly asRemarkWithEvent: { + readonly remark: Bytes; + } & Struct; + readonly isAuthorizeUpgrade: boolean; + readonly asAuthorizeUpgrade: { + readonly codeHash: H256; + } & Struct; + readonly isAuthorizeUpgradeWithoutChecks: boolean; + readonly asAuthorizeUpgradeWithoutChecks: { + readonly codeHash: H256; + } & Struct; + readonly isApplyAuthorizedUpgrade: boolean; + readonly asApplyAuthorizedUpgrade: { + readonly code: Bytes; + } & Struct; + readonly type: + | "Remark" + | "SetHeapPages" + | "SetCode" + | "SetCodeWithoutChecks" + | "SetStorage" + | "KillStorage" + | "KillPrefix" + | "RemarkWithEvent" + | "AuthorizeUpgrade" + | "AuthorizeUpgradeWithoutChecks" + | "ApplyAuthorizedUpgrade"; + } + + /** @name FrameSystemLimitsBlockWeights (200) */ + interface FrameSystemLimitsBlockWeights extends Struct { + readonly baseBlock: SpWeightsWeightV2Weight; + readonly maxBlock: SpWeightsWeightV2Weight; + readonly perClass: FrameSupportDispatchPerDispatchClassWeightsPerClass; + } + + /** @name FrameSupportDispatchPerDispatchClassWeightsPerClass (201) */ + interface FrameSupportDispatchPerDispatchClassWeightsPerClass extends Struct { + readonly normal: FrameSystemLimitsWeightsPerClass; + readonly operational: FrameSystemLimitsWeightsPerClass; + readonly mandatory: FrameSystemLimitsWeightsPerClass; + } + + /** @name FrameSystemLimitsWeightsPerClass (202) */ + interface FrameSystemLimitsWeightsPerClass extends Struct { + readonly baseExtrinsic: SpWeightsWeightV2Weight; + readonly maxExtrinsic: Option; + readonly maxTotal: Option; + readonly reserved: Option; + } + + /** @name FrameSystemLimitsBlockLength (204) */ + interface FrameSystemLimitsBlockLength extends Struct { + readonly max: FrameSupportDispatchPerDispatchClassU32; + } + + /** @name FrameSupportDispatchPerDispatchClassU32 (205) */ + interface FrameSupportDispatchPerDispatchClassU32 extends Struct { + readonly normal: u32; + readonly operational: u32; + readonly mandatory: u32; + } + + /** @name SpWeightsRuntimeDbWeight (206) */ + interface SpWeightsRuntimeDbWeight extends Struct { + readonly read: u64; + readonly write: u64; + } + + /** @name SpVersionRuntimeVersion (207) */ + interface SpVersionRuntimeVersion extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec>; + readonly transactionVersion: u32; + readonly stateVersion: u8; + } + + /** @name FrameSystemError (212) */ + interface FrameSystemError extends Enum { + readonly isInvalidSpecName: boolean; + readonly isSpecVersionNeedsToIncrease: boolean; + readonly isFailedToExtractRuntimeVersion: boolean; + readonly isNonDefaultComposite: boolean; + readonly isNonZeroRefCount: boolean; + readonly isCallFiltered: boolean; + readonly isMultiBlockMigrationsOngoing: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly type: + | "InvalidSpecName" + | "SpecVersionNeedsToIncrease" + | "FailedToExtractRuntimeVersion" + | "NonDefaultComposite" + | "NonZeroRefCount" + | "CallFiltered" + | "MultiBlockMigrationsOngoing" + | "NothingAuthorized" + | "Unauthorized"; + } + + /** @name CumulusPalletParachainSystemUnincludedSegmentAncestor (214) */ + interface CumulusPalletParachainSystemUnincludedSegmentAncestor extends Struct { + readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + readonly paraHeadHash: Option; + readonly consumedGoAheadSignal: Option; + } + + /** @name CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth (215) */ + interface CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth extends Struct { + readonly umpMsgCount: u32; + readonly umpTotalBytes: u32; + readonly hrmpOutgoing: BTreeMap< + u32, + CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate + >; + } + + /** @name CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate (217) */ + interface CumulusPalletParachainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { + readonly msgCount: u32; + readonly totalBytes: u32; + } + + /** @name PolkadotPrimitivesV7UpgradeGoAhead (222) */ + interface PolkadotPrimitivesV7UpgradeGoAhead extends Enum { + readonly isAbort: boolean; + readonly isGoAhead: boolean; + readonly type: "Abort" | "GoAhead"; + } + + /** @name CumulusPalletParachainSystemUnincludedSegmentSegmentTracker (223) */ + interface CumulusPalletParachainSystemUnincludedSegmentSegmentTracker extends Struct { + readonly usedBandwidth: CumulusPalletParachainSystemUnincludedSegmentUsedBandwidth; + readonly hrmpWatermark: Option; + readonly consumedGoAheadSignal: Option; + } + + /** @name PolkadotPrimitivesV7PersistedValidationData (224) */ + interface PolkadotPrimitivesV7PersistedValidationData extends Struct { + readonly parentHead: Bytes; + readonly relayParentNumber: u32; + readonly relayParentStorageRoot: H256; + readonly maxPovSize: u32; + } + + /** @name PolkadotPrimitivesV7UpgradeRestriction (227) */ + interface PolkadotPrimitivesV7UpgradeRestriction extends Enum { + readonly isPresent: boolean; + readonly type: "Present"; + } + + /** @name SpTrieStorageProof (228) */ + interface SpTrieStorageProof extends Struct { + readonly trieNodes: BTreeSet; + } + + /** @name CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot (230) */ + interface CumulusPalletParachainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { + readonly dmqMqcHead: H256; + readonly relayDispatchQueueRemainingCapacity: CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; + } + + /** @name CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (231) */ + interface CumulusPalletParachainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity + extends Struct { + readonly remainingCount: u32; + readonly remainingSize: u32; + } + + /** @name PolkadotPrimitivesV7AbridgedHrmpChannel (234) */ + interface PolkadotPrimitivesV7AbridgedHrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; + } + + /** @name PolkadotPrimitivesV7AbridgedHostConfiguration (235) */ + interface PolkadotPrimitivesV7AbridgedHostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeCooldown: u32; + readonly validationUpgradeDelay: u32; + readonly asyncBackingParams: PolkadotPrimitivesV7AsyncBackingAsyncBackingParams; + } + + /** @name PolkadotPrimitivesV7AsyncBackingAsyncBackingParams (236) */ + interface PolkadotPrimitivesV7AsyncBackingAsyncBackingParams extends Struct { + readonly maxCandidateDepth: u32; + readonly allowedAncestryLen: u32; + } + + /** @name PolkadotCorePrimitivesOutboundHrmpMessage (242) */ + interface PolkadotCorePrimitivesOutboundHrmpMessage extends Struct { + readonly recipient: u32; + readonly data: Bytes; + } + + /** @name CumulusPalletParachainSystemCall (244) */ + interface CumulusPalletParachainSystemCall extends Enum { + readonly isSetValidationData: boolean; + readonly asSetValidationData: { + readonly data: CumulusPrimitivesParachainInherentParachainInherentData; + } & Struct; + readonly isSudoSendUpwardMessage: boolean; + readonly asSudoSendUpwardMessage: { + readonly message: Bytes; + } & Struct; + readonly isAuthorizeUpgrade: boolean; + readonly asAuthorizeUpgrade: { + readonly codeHash: H256; + readonly checkVersion: bool; + } & Struct; + readonly isEnactAuthorizedUpgrade: boolean; + readonly asEnactAuthorizedUpgrade: { + readonly code: Bytes; + } & Struct; + readonly type: + | "SetValidationData" + | "SudoSendUpwardMessage" + | "AuthorizeUpgrade" + | "EnactAuthorizedUpgrade"; + } + + /** @name CumulusPrimitivesParachainInherentParachainInherentData (245) */ + interface CumulusPrimitivesParachainInherentParachainInherentData extends Struct { + readonly validationData: PolkadotPrimitivesV7PersistedValidationData; + readonly relayChainState: SpTrieStorageProof; + readonly downwardMessages: Vec; + readonly horizontalMessages: BTreeMap>; + } + + /** @name PolkadotCorePrimitivesInboundDownwardMessage (247) */ + interface PolkadotCorePrimitivesInboundDownwardMessage extends Struct { + readonly sentAt: u32; + readonly msg: Bytes; + } + + /** @name PolkadotCorePrimitivesInboundHrmpMessage (250) */ + interface PolkadotCorePrimitivesInboundHrmpMessage extends Struct { + readonly sentAt: u32; + readonly data: Bytes; + } + + /** @name CumulusPalletParachainSystemError (253) */ + interface CumulusPalletParachainSystemError extends Enum { + readonly isOverlappingUpgrades: boolean; + readonly isProhibitedByPolkadot: boolean; + readonly isTooBig: boolean; + readonly isValidationDataNotAvailable: boolean; + readonly isHostConfigurationNotAvailable: boolean; + readonly isNotScheduled: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly type: + | "OverlappingUpgrades" + | "ProhibitedByPolkadot" + | "TooBig" + | "ValidationDataNotAvailable" + | "HostConfigurationNotAvailable" + | "NotScheduled" + | "NothingAuthorized" + | "Unauthorized"; + } + + /** @name PalletTimestampCall (254) */ + interface PalletTimestampCall extends Enum { + readonly isSet: boolean; + readonly asSet: { + readonly now: Compact; + } & Struct; + readonly type: "Set"; + } + + /** @name StagingParachainInfoCall (255) */ + type StagingParachainInfoCall = Null; + + /** @name PalletBalancesBalanceLock (257) */ + interface PalletBalancesBalanceLock extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + readonly reasons: PalletBalancesReasons; + } + + /** @name PalletBalancesReasons (258) */ + interface PalletBalancesReasons extends Enum { + readonly isFee: boolean; + readonly isMisc: boolean; + readonly isAll: boolean; + readonly type: "Fee" | "Misc" | "All"; + } + + /** @name PalletBalancesReserveData (261) */ + interface PalletBalancesReserveData extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + } + + /** @name StorageHubRuntimeRuntimeHoldReason (265) */ + interface StorageHubRuntimeRuntimeHoldReason extends Enum { + readonly isProviders: boolean; + readonly asProviders: PalletStorageProvidersHoldReason; + readonly isPaymentStreams: boolean; + readonly asPaymentStreams: PalletPaymentStreamsHoldReason; + readonly type: "Providers" | "PaymentStreams"; + } + + /** @name PalletStorageProvidersHoldReason (266) */ + interface PalletStorageProvidersHoldReason extends Enum { + readonly isStorageProviderDeposit: boolean; + readonly isBucketDeposit: boolean; + readonly type: "StorageProviderDeposit" | "BucketDeposit"; + } + + /** @name PalletPaymentStreamsHoldReason (267) */ + interface PalletPaymentStreamsHoldReason extends Enum { + readonly isPaymentStreamDeposit: boolean; + readonly type: "PaymentStreamDeposit"; + } + + /** @name PalletBalancesIdAmount (270) */ + interface PalletBalancesIdAmount extends Struct { + readonly id: Null; + readonly amount: u128; + } + + /** @name PalletBalancesCall (272) */ + interface PalletBalancesCall extends Enum { + readonly isTransferAllowDeath: boolean; + readonly asTransferAllowDeath: { + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isForceTransfer: boolean; + readonly asForceTransfer: { + readonly source: MultiAddress; + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isTransferKeepAlive: boolean; + readonly asTransferKeepAlive: { + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isTransferAll: boolean; + readonly asTransferAll: { + readonly dest: MultiAddress; + readonly keepAlive: bool; + } & Struct; + readonly isForceUnreserve: boolean; + readonly asForceUnreserve: { + readonly who: MultiAddress; + readonly amount: u128; + } & Struct; + readonly isUpgradeAccounts: boolean; + readonly asUpgradeAccounts: { + readonly who: Vec; + } & Struct; + readonly isForceSetBalance: boolean; + readonly asForceSetBalance: { + readonly who: MultiAddress; + readonly newFree: Compact; + } & Struct; + readonly isForceAdjustTotalIssuance: boolean; + readonly asForceAdjustTotalIssuance: { + readonly direction: PalletBalancesAdjustmentDirection; + readonly delta: Compact; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly value: Compact; + readonly keepAlive: bool; + } & Struct; + readonly type: + | "TransferAllowDeath" + | "ForceTransfer" + | "TransferKeepAlive" + | "TransferAll" + | "ForceUnreserve" + | "UpgradeAccounts" + | "ForceSetBalance" + | "ForceAdjustTotalIssuance" + | "Burn"; + } + + /** @name PalletBalancesAdjustmentDirection (275) */ + interface PalletBalancesAdjustmentDirection extends Enum { + readonly isIncrease: boolean; + readonly isDecrease: boolean; + readonly type: "Increase" | "Decrease"; + } + + /** @name PalletBalancesError (276) */ + interface PalletBalancesError extends Enum { + readonly isVestingBalance: boolean; + readonly isLiquidityRestrictions: boolean; + readonly isInsufficientBalance: boolean; + readonly isExistentialDeposit: boolean; + readonly isExpendability: boolean; + readonly isExistingVestingSchedule: boolean; + readonly isDeadAccount: boolean; + readonly isTooManyReserves: boolean; + readonly isTooManyHolds: boolean; + readonly isTooManyFreezes: boolean; + readonly isIssuanceDeactivated: boolean; + readonly isDeltaZero: boolean; + readonly type: + | "VestingBalance" + | "LiquidityRestrictions" + | "InsufficientBalance" + | "ExistentialDeposit" + | "Expendability" + | "ExistingVestingSchedule" + | "DeadAccount" + | "TooManyReserves" + | "TooManyHolds" + | "TooManyFreezes" + | "IssuanceDeactivated" + | "DeltaZero"; + } + + /** @name PalletTransactionPaymentReleases (277) */ + interface PalletTransactionPaymentReleases extends Enum { + readonly isV1Ancient: boolean; + readonly isV2: boolean; + readonly type: "V1Ancient" | "V2"; + } + + /** @name PalletSudoCall (278) */ + interface PalletSudoCall extends Enum { + readonly isSudo: boolean; + readonly asSudo: { + readonly call: Call; + } & Struct; + readonly isSudoUncheckedWeight: boolean; + readonly asSudoUncheckedWeight: { + readonly call: Call; + readonly weight: SpWeightsWeightV2Weight; + } & Struct; + readonly isSetKey: boolean; + readonly asSetKey: { + readonly new_: MultiAddress; + } & Struct; + readonly isSudoAs: boolean; + readonly asSudoAs: { + readonly who: MultiAddress; + readonly call: Call; + } & Struct; + readonly isRemoveKey: boolean; + readonly type: "Sudo" | "SudoUncheckedWeight" | "SetKey" | "SudoAs" | "RemoveKey"; + } + + /** @name PalletCollatorSelectionCall (280) */ + interface PalletCollatorSelectionCall extends Enum { + readonly isSetInvulnerables: boolean; + readonly asSetInvulnerables: { + readonly new_: Vec; + } & Struct; + readonly isSetDesiredCandidates: boolean; + readonly asSetDesiredCandidates: { + readonly max: u32; + } & Struct; + readonly isSetCandidacyBond: boolean; + readonly asSetCandidacyBond: { + readonly bond: u128; + } & Struct; + readonly isRegisterAsCandidate: boolean; + readonly isLeaveIntent: boolean; + readonly isAddInvulnerable: boolean; + readonly asAddInvulnerable: { + readonly who: AccountId32; + } & Struct; + readonly isRemoveInvulnerable: boolean; + readonly asRemoveInvulnerable: { + readonly who: AccountId32; + } & Struct; + readonly isUpdateBond: boolean; + readonly asUpdateBond: { + readonly newDeposit: u128; + } & Struct; + readonly isTakeCandidateSlot: boolean; + readonly asTakeCandidateSlot: { + readonly deposit: u128; + readonly target: AccountId32; + } & Struct; + readonly type: + | "SetInvulnerables" + | "SetDesiredCandidates" + | "SetCandidacyBond" + | "RegisterAsCandidate" + | "LeaveIntent" + | "AddInvulnerable" + | "RemoveInvulnerable" + | "UpdateBond" + | "TakeCandidateSlot"; + } + + /** @name PalletSessionCall (281) */ + interface PalletSessionCall extends Enum { + readonly isSetKeys: boolean; + readonly asSetKeys: { + readonly keys_: StorageHubRuntimeSessionKeys; + readonly proof: Bytes; + } & Struct; + readonly isPurgeKeys: boolean; + readonly type: "SetKeys" | "PurgeKeys"; + } + + /** @name StorageHubRuntimeSessionKeys (282) */ + interface StorageHubRuntimeSessionKeys extends Struct { + readonly aura: SpConsensusAuraSr25519AppSr25519Public; + } + + /** @name SpConsensusAuraSr25519AppSr25519Public (283) */ + interface SpConsensusAuraSr25519AppSr25519Public extends U8aFixed {} + + /** @name CumulusPalletXcmpQueueCall (284) */ + interface CumulusPalletXcmpQueueCall extends Enum { + readonly isSuspendXcmExecution: boolean; + readonly isResumeXcmExecution: boolean; + readonly isUpdateSuspendThreshold: boolean; + readonly asUpdateSuspendThreshold: { + readonly new_: u32; + } & Struct; + readonly isUpdateDropThreshold: boolean; + readonly asUpdateDropThreshold: { + readonly new_: u32; + } & Struct; + readonly isUpdateResumeThreshold: boolean; + readonly asUpdateResumeThreshold: { + readonly new_: u32; + } & Struct; + readonly type: + | "SuspendXcmExecution" + | "ResumeXcmExecution" + | "UpdateSuspendThreshold" + | "UpdateDropThreshold" + | "UpdateResumeThreshold"; + } + + /** @name PalletXcmCall (285) */ + interface PalletXcmCall extends Enum { + readonly isSend: boolean; + readonly asSend: { + readonly dest: XcmVersionedLocation; + readonly message: XcmVersionedXcm; + } & Struct; + readonly isTeleportAssets: boolean; + readonly asTeleportAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + } & Struct; + readonly isReserveTransferAssets: boolean; + readonly asReserveTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + } & Struct; + readonly isExecute: boolean; + readonly asExecute: { + readonly message: XcmVersionedXcm; + readonly maxWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isForceXcmVersion: boolean; + readonly asForceXcmVersion: { + readonly location: StagingXcmV4Location; + readonly version: u32; + } & Struct; + readonly isForceDefaultXcmVersion: boolean; + readonly asForceDefaultXcmVersion: { + readonly maybeXcmVersion: Option; + } & Struct; + readonly isForceSubscribeVersionNotify: boolean; + readonly asForceSubscribeVersionNotify: { + readonly location: XcmVersionedLocation; + } & Struct; + readonly isForceUnsubscribeVersionNotify: boolean; + readonly asForceUnsubscribeVersionNotify: { + readonly location: XcmVersionedLocation; + } & Struct; + readonly isLimitedReserveTransferAssets: boolean; + readonly asLimitedReserveTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isLimitedTeleportAssets: boolean; + readonly asLimitedTeleportAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isForceSuspension: boolean; + readonly asForceSuspension: { + readonly suspended: bool; + } & Struct; + readonly isTransferAssets: boolean; + readonly asTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isClaimAssets: boolean; + readonly asClaimAssets: { + readonly assets: XcmVersionedAssets; + readonly beneficiary: XcmVersionedLocation; + } & Struct; + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { + readonly dest: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly type: + | "Send" + | "TeleportAssets" + | "ReserveTransferAssets" + | "Execute" + | "ForceXcmVersion" + | "ForceDefaultXcmVersion" + | "ForceSubscribeVersionNotify" + | "ForceUnsubscribeVersionNotify" + | "LimitedReserveTransferAssets" + | "LimitedTeleportAssets" + | "ForceSuspension" + | "TransferAssets" + | "ClaimAssets" + | "TransferAssetsUsingTypeAndThen"; + } + + /** @name XcmVersionedXcm (286) */ + interface XcmVersionedXcm extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2Xcm; + readonly isV3: boolean; + readonly asV3: XcmV3Xcm; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Xcm; + readonly type: "V2" | "V3" | "V4"; + } + + /** @name XcmV2Xcm (287) */ + interface XcmV2Xcm extends Vec {} + + /** @name XcmV2Instruction (289) */ + interface XcmV2Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: XcmV2MultiassetMultiAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: XcmV2MultiassetMultiAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: XcmV2MultiassetMultiAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: XcmV2Response; + readonly maxWeight: Compact; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: XcmV2MultiassetMultiAssets; + readonly beneficiary: XcmV2MultiLocation; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: XcmV2MultiassetMultiAssets; + readonly dest: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originType: XcmV2OriginKind; + readonly requireWeightAtMost: Compact; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: XcmV2MultilocationJunctions; + readonly isReportError: boolean; + readonly asReportError: { + readonly queryId: Compact; + readonly dest: XcmV2MultiLocation; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly maxAssets: Compact; + readonly beneficiary: XcmV2MultiLocation; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly maxAssets: Compact; + readonly dest: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: XcmV2MultiassetMultiAssetFilter; + readonly receive: XcmV2MultiassetMultiAssets; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly reserve: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly dest: XcmV2MultiLocation; + readonly xcm: XcmV2Xcm; + } & Struct; + readonly isQueryHolding: boolean; + readonly asQueryHolding: { + readonly queryId: Compact; + readonly dest: XcmV2MultiLocation; + readonly assets: XcmV2MultiassetMultiAssetFilter; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: XcmV2MultiAsset; + readonly weightLimit: XcmV2WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV2Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV2Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: XcmV2MultiassetMultiAssets; + readonly ticket: XcmV2MultiLocation; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly type: + | "WithdrawAsset" + | "ReserveAssetDeposited" + | "ReceiveTeleportedAsset" + | "QueryResponse" + | "TransferAsset" + | "TransferReserveAsset" + | "Transact" + | "HrmpNewChannelOpenRequest" + | "HrmpChannelAccepted" + | "HrmpChannelClosing" + | "ClearOrigin" + | "DescendOrigin" + | "ReportError" + | "DepositAsset" + | "DepositReserveAsset" + | "ExchangeAsset" + | "InitiateReserveWithdraw" + | "InitiateTeleport" + | "QueryHolding" + | "BuyExecution" + | "RefundSurplus" + | "SetErrorHandler" + | "SetAppendix" + | "ClearError" + | "ClaimAsset" + | "Trap" + | "SubscribeVersion" + | "UnsubscribeVersion"; + } + + /** @name XcmV2Response (290) */ + interface XcmV2Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: XcmV2MultiassetMultiAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly type: "Null" | "Assets" | "ExecutionResult" | "Version"; + } + + /** @name XcmV2TraitsError (293) */ + interface XcmV2TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isMultiLocationFull: boolean; + readonly isMultiLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: u64; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly type: + | "Overflow" + | "Unimplemented" + | "UntrustedReserveLocation" + | "UntrustedTeleportLocation" + | "MultiLocationFull" + | "MultiLocationNotInvertible" + | "BadOrigin" + | "InvalidLocation" + | "AssetNotFound" + | "FailedToTransactAsset" + | "NotWithdrawable" + | "LocationCannotHold" + | "ExceedsMaxMessageSize" + | "DestinationUnsupported" + | "Transport" + | "Unroutable" + | "UnknownClaim" + | "FailedToDecode" + | "MaxWeightInvalid" + | "NotHoldingFees" + | "TooExpensive" + | "Trap" + | "UnhandledXcmVersion" + | "WeightLimitReached" + | "Barrier" + | "WeightNotComputable"; + } + + /** @name XcmV2OriginKind (294) */ + interface XcmV2OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: "Native" | "SovereignAccount" | "Superuser" | "Xcm"; + } + + /** @name XcmV2MultiassetMultiAssetFilter (295) */ + interface XcmV2MultiassetMultiAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: XcmV2MultiassetMultiAssets; + readonly isWild: boolean; + readonly asWild: XcmV2MultiassetWildMultiAsset; + readonly type: "Definite" | "Wild"; + } + + /** @name XcmV2MultiassetWildMultiAsset (296) */ + interface XcmV2MultiassetWildMultiAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmV2MultiassetAssetId; + readonly fun: XcmV2MultiassetWildFungibility; + } & Struct; + readonly type: "All" | "AllOf"; + } + + /** @name XcmV2MultiassetWildFungibility (297) */ + interface XcmV2MultiassetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: "Fungible" | "NonFungible"; + } + + /** @name XcmV2WeightLimit (298) */ + interface XcmV2WeightLimit extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: Compact; + readonly type: "Unlimited" | "Limited"; + } + + /** @name XcmV3Xcm (299) */ + interface XcmV3Xcm extends Vec {} + + /** @name XcmV3Instruction (301) */ + interface XcmV3Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: XcmV3Response; + readonly maxWeight: SpWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly beneficiary: StagingXcmV3MultiLocation; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly requireWeightAtMost: SpWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: XcmV3Junctions; + readonly isReportError: boolean; + readonly asReportError: XcmV3QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly beneficiary: StagingXcmV3MultiLocation; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: XcmV3MultiassetMultiAssetFilter; + readonly want: XcmV3MultiassetMultiAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly reserve: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: XcmV3QueryResponseInfo; + readonly assets: XcmV3MultiassetMultiAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: XcmV3MultiAsset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV3Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV3Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly ticket: StagingXcmV3MultiLocation; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: SpWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: XcmV3MultiassetMultiAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: XcmV3MultiassetMultiAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: XcmV3QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: XcmV3QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: XcmV3Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: XcmV3JunctionNetworkId; + readonly destination: XcmV3Junctions; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: XcmV3MultiAsset; + readonly unlocker: StagingXcmV3MultiLocation; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: XcmV3MultiAsset; + readonly target: StagingXcmV3MultiLocation; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: XcmV3MultiAsset; + readonly owner: StagingXcmV3MultiLocation; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: XcmV3MultiAsset; + readonly locker: StagingXcmV3MultiLocation; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV3MultiLocation; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: + | "WithdrawAsset" + | "ReserveAssetDeposited" + | "ReceiveTeleportedAsset" + | "QueryResponse" + | "TransferAsset" + | "TransferReserveAsset" + | "Transact" + | "HrmpNewChannelOpenRequest" + | "HrmpChannelAccepted" + | "HrmpChannelClosing" + | "ClearOrigin" + | "DescendOrigin" + | "ReportError" + | "DepositAsset" + | "DepositReserveAsset" + | "ExchangeAsset" + | "InitiateReserveWithdraw" + | "InitiateTeleport" + | "ReportHolding" + | "BuyExecution" + | "RefundSurplus" + | "SetErrorHandler" + | "SetAppendix" + | "ClearError" + | "ClaimAsset" + | "Trap" + | "SubscribeVersion" + | "UnsubscribeVersion" + | "BurnAsset" + | "ExpectAsset" + | "ExpectOrigin" + | "ExpectError" + | "ExpectTransactStatus" + | "QueryPallet" + | "ExpectPallet" + | "ReportTransactStatus" + | "ClearTransactStatus" + | "UniversalOrigin" + | "ExportMessage" + | "LockAsset" + | "UnlockAsset" + | "NoteUnlockable" + | "RequestUnlock" + | "SetFeesMode" + | "SetTopic" + | "ClearTopic" + | "AliasOrigin" + | "UnpaidExecution"; + } + + /** @name XcmV3Response (302) */ + interface XcmV3Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: XcmV3MultiassetMultiAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: + | "Null" + | "Assets" + | "ExecutionResult" + | "Version" + | "PalletsInfo" + | "DispatchResult"; + } + + /** @name XcmV3PalletInfo (304) */ + interface XcmV3PalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + + /** @name XcmV3QueryResponseInfo (308) */ + interface XcmV3QueryResponseInfo extends Struct { + readonly destination: StagingXcmV3MultiLocation; + readonly queryId: Compact; + readonly maxWeight: SpWeightsWeightV2Weight; + } + + /** @name XcmV3MultiassetMultiAssetFilter (309) */ + interface XcmV3MultiassetMultiAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: XcmV3MultiassetMultiAssets; + readonly isWild: boolean; + readonly asWild: XcmV3MultiassetWildMultiAsset; + readonly type: "Definite" | "Wild"; + } + + /** @name XcmV3MultiassetWildMultiAsset (310) */ + interface XcmV3MultiassetWildMultiAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: "All" | "AllOf" | "AllCounted" | "AllOfCounted"; + } + + /** @name XcmV3MultiassetWildFungibility (311) */ + interface XcmV3MultiassetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: "Fungible" | "NonFungible"; + } + + /** @name StagingXcmExecutorAssetTransferTransferType (323) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: "Teleport" | "LocalReserve" | "DestinationReserve" | "RemoteReserve"; + } + + /** @name XcmVersionedAssetId (324) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly type: "V3" | "V4"; + } + + /** @name CumulusPalletXcmCall (325) */ + type CumulusPalletXcmCall = Null; + + /** @name PalletMessageQueueCall (326) */ + interface PalletMessageQueueCall extends Enum { + readonly isReapPage: boolean; + readonly asReapPage: { + readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly pageIndex: u32; + } & Struct; + readonly isExecuteOverweight: boolean; + readonly asExecuteOverweight: { + readonly messageOrigin: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly page: u32; + readonly index: u32; + readonly weightLimit: SpWeightsWeightV2Weight; + } & Struct; + readonly type: "ReapPage" | "ExecuteOverweight"; + } + + /** @name PalletStorageProvidersCall (327) */ + interface PalletStorageProvidersCall extends Enum { + readonly isRequestMspSignUp: boolean; + readonly asRequestMspSignUp: { + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly valueProp: PalletStorageProvidersValueProposition; + readonly paymentAccount: AccountId32; + } & Struct; + readonly isRequestBspSignUp: boolean; + readonly asRequestBspSignUp: { + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly paymentAccount: AccountId32; + } & Struct; + readonly isConfirmSignUp: boolean; + readonly asConfirmSignUp: { + readonly providerAccount: Option; + } & Struct; + readonly isCancelSignUp: boolean; + readonly isMspSignOff: boolean; + readonly isBspSignOff: boolean; + readonly isChangeCapacity: boolean; + readonly asChangeCapacity: { + readonly newCapacity: u64; + } & Struct; + readonly isAddValueProp: boolean; + readonly asAddValueProp: { + readonly newValueProp: PalletStorageProvidersValueProposition; + } & Struct; + readonly isForceMspSignUp: boolean; + readonly asForceMspSignUp: { + readonly who: AccountId32; + readonly mspId: H256; + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly valueProp: PalletStorageProvidersValueProposition; + readonly paymentAccount: AccountId32; + } & Struct; + readonly isForceBspSignUp: boolean; + readonly asForceBspSignUp: { + readonly who: AccountId32; + readonly bspId: H256; + readonly capacity: u64; + readonly multiaddresses: Vec; + readonly paymentAccount: AccountId32; + readonly weight: Option; + } & Struct; + readonly isSlash: boolean; + readonly asSlash: { + readonly providerId: H256; + } & Struct; + readonly type: + | "RequestMspSignUp" + | "RequestBspSignUp" + | "ConfirmSignUp" + | "CancelSignUp" + | "MspSignOff" + | "BspSignOff" + | "ChangeCapacity" + | "AddValueProp" + | "ForceMspSignUp" + | "ForceBspSignUp" + | "Slash"; + } + + /** @name PalletFileSystemCall (328) */ + interface PalletFileSystemCall extends Enum { + readonly isCreateBucket: boolean; + readonly asCreateBucket: { + readonly mspId: H256; + readonly name: Bytes; + readonly private: bool; + } & Struct; + readonly isRequestMoveBucket: boolean; + readonly asRequestMoveBucket: { + readonly bucketId: H256; + readonly newMspId: H256; + } & Struct; + readonly isMspRespondMoveBucketRequest: boolean; + readonly asMspRespondMoveBucketRequest: { + readonly bucketId: H256; + readonly response: PalletFileSystemBucketMoveRequestResponse; + } & Struct; + readonly isUpdateBucketPrivacy: boolean; + readonly asUpdateBucketPrivacy: { + readonly bucketId: H256; + readonly private: bool; + } & Struct; + readonly isCreateAndAssociateCollectionWithBucket: boolean; + readonly asCreateAndAssociateCollectionWithBucket: { + readonly bucketId: H256; + } & Struct; + readonly isIssueStorageRequest: boolean; + readonly asIssueStorageRequest: { + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly size_: u64; + readonly mspId: H256; + readonly peerIds: Vec; + } & Struct; + readonly isRevokeStorageRequest: boolean; + readonly asRevokeStorageRequest: { + readonly fileKey: H256; + } & Struct; + readonly isBspAddDataServerForMoveBucketRequest: boolean; + readonly asBspAddDataServerForMoveBucketRequest: { + readonly bucketId: H256; + } & Struct; + readonly isMspRespondStorageRequestsMultipleBuckets: boolean; + readonly asMspRespondStorageRequestsMultipleBuckets: { + readonly fileKeyResponsesInput: Vec< + ITuple<[H256, PalletFileSystemMspStorageRequestResponse]> + >; + } & Struct; + readonly isBspVolunteer: boolean; + readonly asBspVolunteer: { + readonly fileKey: H256; + } & Struct; + readonly isBspConfirmStoring: boolean; + readonly asBspConfirmStoring: { + readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; + readonly fileKeysAndProofs: Vec>; + } & Struct; + readonly isBspRequestStopStoring: boolean; + readonly asBspRequestStopStoring: { + readonly fileKey: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly owner: AccountId32; + readonly fingerprint: H256; + readonly size_: u64; + readonly canServe: bool; + readonly inclusionForestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isBspConfirmStopStoring: boolean; + readonly asBspConfirmStopStoring: { + readonly fileKey: H256; + readonly inclusionForestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isStopStoringForInsolventUser: boolean; + readonly asStopStoringForInsolventUser: { + readonly fileKey: H256; + readonly bucketId: H256; + readonly location: Bytes; + readonly owner: AccountId32; + readonly fingerprint: H256; + readonly size_: u64; + readonly inclusionForestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isDeleteFile: boolean; + readonly asDeleteFile: { + readonly bucketId: H256; + readonly fileKey: H256; + readonly location: Bytes; + readonly size_: u64; + readonly fingerprint: H256; + readonly maybeInclusionForestProof: Option; + } & Struct; + readonly isPendingFileDeletionRequestSubmitProof: boolean; + readonly asPendingFileDeletionRequestSubmitProof: { + readonly user: AccountId32; + readonly fileKey: H256; + readonly bucketId: H256; + readonly forestProof: SpTrieStorageProofCompactProof; + } & Struct; + readonly isSetGlobalParameters: boolean; + readonly asSetGlobalParameters: { + readonly replicationTarget: Option; + readonly tickRangeToMaximumThreshold: Option; + } & Struct; + readonly type: + | "CreateBucket" + | "RequestMoveBucket" + | "MspRespondMoveBucketRequest" + | "UpdateBucketPrivacy" + | "CreateAndAssociateCollectionWithBucket" + | "IssueStorageRequest" + | "RevokeStorageRequest" + | "BspAddDataServerForMoveBucketRequest" + | "MspRespondStorageRequestsMultipleBuckets" + | "BspVolunteer" + | "BspConfirmStoring" + | "BspRequestStopStoring" + | "BspConfirmStopStoring" + | "StopStoringForInsolventUser" + | "DeleteFile" + | "PendingFileDeletionRequestSubmitProof" + | "SetGlobalParameters"; + } + + /** @name PalletFileSystemBucketMoveRequestResponse (329) */ + interface PalletFileSystemBucketMoveRequestResponse extends Enum { + readonly isAccepted: boolean; + readonly isRejected: boolean; + readonly type: "Accepted" | "Rejected"; + } + + /** @name PalletFileSystemMspStorageRequestResponse (332) */ + interface PalletFileSystemMspStorageRequestResponse extends Struct { + readonly accept: Option; + readonly reject: Option>>; + } + + /** @name PalletFileSystemAcceptedStorageRequestParameters (334) */ + interface PalletFileSystemAcceptedStorageRequestParameters extends Struct { + readonly fileKeysAndProofs: Vec>; + readonly nonInclusionForestProof: SpTrieStorageProofCompactProof; + } + + /** @name PalletProofsDealerCall (341) */ + interface PalletProofsDealerCall extends Enum { + readonly isChallenge: boolean; + readonly asChallenge: { + readonly key: H256; + } & Struct; + readonly isSubmitProof: boolean; + readonly asSubmitProof: { + readonly proof: PalletProofsDealerProof; + readonly provider: Option; + } & Struct; + readonly isForceInitialiseChallengeCycle: boolean; + readonly asForceInitialiseChallengeCycle: { + readonly provider: H256; + } & Struct; + readonly isSetPaused: boolean; + readonly asSetPaused: { + readonly paused: bool; + } & Struct; + readonly type: "Challenge" | "SubmitProof" | "ForceInitialiseChallengeCycle" | "SetPaused"; + } + + /** @name PalletRandomnessCall (342) */ + interface PalletRandomnessCall extends Enum { + readonly isSetBabeRandomness: boolean; + readonly type: "SetBabeRandomness"; + } + + /** @name PalletPaymentStreamsCall (343) */ + interface PalletPaymentStreamsCall extends Enum { + readonly isCreateFixedRatePaymentStream: boolean; + readonly asCreateFixedRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly rate: u128; + } & Struct; + readonly isUpdateFixedRatePaymentStream: boolean; + readonly asUpdateFixedRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly newRate: u128; + } & Struct; + readonly isDeleteFixedRatePaymentStream: boolean; + readonly asDeleteFixedRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + } & Struct; + readonly isCreateDynamicRatePaymentStream: boolean; + readonly asCreateDynamicRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly amountProvided: u64; + } & Struct; + readonly isUpdateDynamicRatePaymentStream: boolean; + readonly asUpdateDynamicRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + readonly newAmountProvided: u64; + } & Struct; + readonly isDeleteDynamicRatePaymentStream: boolean; + readonly asDeleteDynamicRatePaymentStream: { + readonly providerId: H256; + readonly userAccount: AccountId32; + } & Struct; + readonly isChargePaymentStreams: boolean; + readonly asChargePaymentStreams: { + readonly userAccount: AccountId32; + } & Struct; + readonly isPayOutstandingDebt: boolean; + readonly isClearInsolventFlag: boolean; + readonly type: + | "CreateFixedRatePaymentStream" + | "UpdateFixedRatePaymentStream" + | "DeleteFixedRatePaymentStream" + | "CreateDynamicRatePaymentStream" + | "UpdateDynamicRatePaymentStream" + | "DeleteDynamicRatePaymentStream" + | "ChargePaymentStreams" + | "PayOutstandingDebt" + | "ClearInsolventFlag"; + } + + /** @name PalletBucketNftsCall (344) */ + interface PalletBucketNftsCall extends Enum { + readonly isShareAccess: boolean; + readonly asShareAccess: { + readonly recipient: MultiAddress; + readonly bucket: H256; + readonly itemId: u32; + readonly readAccessRegex: Option; + } & Struct; + readonly isUpdateReadAccess: boolean; + readonly asUpdateReadAccess: { + readonly bucket: H256; + readonly itemId: u32; + readonly readAccessRegex: Option; + } & Struct; + readonly type: "ShareAccess" | "UpdateReadAccess"; + } + + /** @name PalletNftsCall (346) */ + interface PalletNftsCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly admin: MultiAddress; + readonly config: PalletNftsCollectionConfig; + } & Struct; + readonly isForceCreate: boolean; + readonly asForceCreate: { + readonly owner: MultiAddress; + readonly config: PalletNftsCollectionConfig; + } & Struct; + readonly isDestroy: boolean; + readonly asDestroy: { + readonly collection: u32; + readonly witness: PalletNftsDestroyWitness; + } & Struct; + readonly isMint: boolean; + readonly asMint: { + readonly collection: u32; + readonly item: u32; + readonly mintTo: MultiAddress; + readonly witnessData: Option; + } & Struct; + readonly isForceMint: boolean; + readonly asForceMint: { + readonly collection: u32; + readonly item: u32; + readonly mintTo: MultiAddress; + readonly itemConfig: PalletNftsItemConfig; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly collection: u32; + readonly item: u32; + readonly dest: MultiAddress; + } & Struct; + readonly isRedeposit: boolean; + readonly asRedeposit: { + readonly collection: u32; + readonly items: Vec; + } & Struct; + readonly isLockItemTransfer: boolean; + readonly asLockItemTransfer: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isUnlockItemTransfer: boolean; + readonly asUnlockItemTransfer: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isLockCollection: boolean; + readonly asLockCollection: { + readonly collection: u32; + readonly lockSettings: u64; + } & Struct; + readonly isTransferOwnership: boolean; + readonly asTransferOwnership: { + readonly collection: u32; + readonly newOwner: MultiAddress; + } & Struct; + readonly isSetTeam: boolean; + readonly asSetTeam: { + readonly collection: u32; + readonly issuer: Option; + readonly admin: Option; + readonly freezer: Option; + } & Struct; + readonly isForceCollectionOwner: boolean; + readonly asForceCollectionOwner: { + readonly collection: u32; + readonly owner: MultiAddress; + } & Struct; + readonly isForceCollectionConfig: boolean; + readonly asForceCollectionConfig: { + readonly collection: u32; + readonly config: PalletNftsCollectionConfig; + } & Struct; + readonly isApproveTransfer: boolean; + readonly asApproveTransfer: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + readonly maybeDeadline: Option; + } & Struct; + readonly isCancelApproval: boolean; + readonly asCancelApproval: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isClearAllTransferApprovals: boolean; + readonly asClearAllTransferApprovals: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isLockItemProperties: boolean; + readonly asLockItemProperties: { + readonly collection: u32; + readonly item: u32; + readonly lockMetadata: bool; + readonly lockAttributes: bool; + } & Struct; + readonly isSetAttribute: boolean; + readonly asSetAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PalletNftsAttributeNamespace; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isForceSetAttribute: boolean; + readonly asForceSetAttribute: { + readonly setAs: Option; + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PalletNftsAttributeNamespace; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isClearAttribute: boolean; + readonly asClearAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PalletNftsAttributeNamespace; + readonly key: Bytes; + } & Struct; + readonly isApproveItemAttributes: boolean; + readonly asApproveItemAttributes: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isCancelItemAttributesApproval: boolean; + readonly asCancelItemAttributesApproval: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + readonly witness: PalletNftsCancelAttributesApprovalWitness; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + } & Struct; + readonly isClearMetadata: boolean; + readonly asClearMetadata: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isSetCollectionMetadata: boolean; + readonly asSetCollectionMetadata: { + readonly collection: u32; + readonly data: Bytes; + } & Struct; + readonly isClearCollectionMetadata: boolean; + readonly asClearCollectionMetadata: { + readonly collection: u32; + } & Struct; + readonly isSetAcceptOwnership: boolean; + readonly asSetAcceptOwnership: { + readonly maybeCollection: Option; + } & Struct; + readonly isSetCollectionMaxSupply: boolean; + readonly asSetCollectionMaxSupply: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isUpdateMintSettings: boolean; + readonly asUpdateMintSettings: { + readonly collection: u32; + readonly mintSettings: PalletNftsMintSettings; + } & Struct; + readonly isSetPrice: boolean; + readonly asSetPrice: { + readonly collection: u32; + readonly item: u32; + readonly price: Option; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isBuyItem: boolean; + readonly asBuyItem: { + readonly collection: u32; + readonly item: u32; + readonly bidPrice: u128; + } & Struct; + readonly isPayTips: boolean; + readonly asPayTips: { + readonly tips: Vec; + } & Struct; + readonly isCreateSwap: boolean; + readonly asCreateSwap: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly maybeDesiredItem: Option; + readonly maybePrice: Option; + readonly duration: u32; + } & Struct; + readonly isCancelSwap: boolean; + readonly asCancelSwap: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + } & Struct; + readonly isClaimSwap: boolean; + readonly asClaimSwap: { + readonly sendCollection: u32; + readonly sendItem: u32; + readonly receiveCollection: u32; + readonly receiveItem: u32; + readonly witnessPrice: Option; + } & Struct; + readonly isMintPreSigned: boolean; + readonly asMintPreSigned: { + readonly mintData: PalletNftsPreSignedMint; + readonly signature: SpRuntimeMultiSignature; + readonly signer: AccountId32; + } & Struct; + readonly isSetAttributesPreSigned: boolean; + readonly asSetAttributesPreSigned: { + readonly data: PalletNftsPreSignedAttributes; + readonly signature: SpRuntimeMultiSignature; + readonly signer: AccountId32; + } & Struct; + readonly type: + | "Create" + | "ForceCreate" + | "Destroy" + | "Mint" + | "ForceMint" + | "Burn" + | "Transfer" + | "Redeposit" + | "LockItemTransfer" + | "UnlockItemTransfer" + | "LockCollection" + | "TransferOwnership" + | "SetTeam" + | "ForceCollectionOwner" + | "ForceCollectionConfig" + | "ApproveTransfer" + | "CancelApproval" + | "ClearAllTransferApprovals" + | "LockItemProperties" + | "SetAttribute" + | "ForceSetAttribute" + | "ClearAttribute" + | "ApproveItemAttributes" + | "CancelItemAttributesApproval" + | "SetMetadata" + | "ClearMetadata" + | "SetCollectionMetadata" + | "ClearCollectionMetadata" + | "SetAcceptOwnership" + | "SetCollectionMaxSupply" + | "UpdateMintSettings" + | "SetPrice" + | "BuyItem" + | "PayTips" + | "CreateSwap" + | "CancelSwap" + | "ClaimSwap" + | "MintPreSigned" + | "SetAttributesPreSigned"; + } + + /** @name PalletNftsCollectionConfig (347) */ + interface PalletNftsCollectionConfig extends Struct { + readonly settings: u64; + readonly maxSupply: Option; + readonly mintSettings: PalletNftsMintSettings; + } + + /** @name PalletNftsCollectionSetting (349) */ + interface PalletNftsCollectionSetting extends Enum { + readonly isTransferableItems: boolean; + readonly isUnlockedMetadata: boolean; + readonly isUnlockedAttributes: boolean; + readonly isUnlockedMaxSupply: boolean; + readonly isDepositRequired: boolean; + readonly type: + | "TransferableItems" + | "UnlockedMetadata" + | "UnlockedAttributes" + | "UnlockedMaxSupply" + | "DepositRequired"; + } + + /** @name PalletNftsMintSettings (350) */ + interface PalletNftsMintSettings extends Struct { + readonly mintType: PalletNftsMintType; + readonly price: Option; + readonly startBlock: Option; + readonly endBlock: Option; + readonly defaultItemSettings: u64; + } + + /** @name PalletNftsMintType (351) */ + interface PalletNftsMintType extends Enum { + readonly isIssuer: boolean; + readonly isPublic: boolean; + readonly isHolderOf: boolean; + readonly asHolderOf: u32; + readonly type: "Issuer" | "Public" | "HolderOf"; + } + + /** @name PalletNftsItemSetting (354) */ + interface PalletNftsItemSetting extends Enum { + readonly isTransferable: boolean; + readonly isUnlockedMetadata: boolean; + readonly isUnlockedAttributes: boolean; + readonly type: "Transferable" | "UnlockedMetadata" | "UnlockedAttributes"; + } + + /** @name PalletNftsDestroyWitness (355) */ + interface PalletNftsDestroyWitness extends Struct { + readonly itemMetadatas: Compact; + readonly itemConfigs: Compact; + readonly attributes: Compact; + } + + /** @name PalletNftsMintWitness (357) */ + interface PalletNftsMintWitness extends Struct { + readonly ownedItem: Option; + readonly mintPrice: Option; + } + + /** @name PalletNftsItemConfig (358) */ + interface PalletNftsItemConfig extends Struct { + readonly settings: u64; + } + + /** @name PalletNftsCancelAttributesApprovalWitness (360) */ + interface PalletNftsCancelAttributesApprovalWitness extends Struct { + readonly accountAttributes: u32; + } + + /** @name PalletNftsItemTip (362) */ + interface PalletNftsItemTip extends Struct { + readonly collection: u32; + readonly item: u32; + readonly receiver: AccountId32; + readonly amount: u128; + } + + /** @name PalletNftsPreSignedMint (364) */ + interface PalletNftsPreSignedMint extends Struct { + readonly collection: u32; + readonly item: u32; + readonly attributes: Vec>; + readonly metadata: Bytes; + readonly onlyAccount: Option; + readonly deadline: u32; + readonly mintPrice: Option; + } + + /** @name SpRuntimeMultiSignature (365) */ + interface SpRuntimeMultiSignature extends Enum { + readonly isEd25519: boolean; + readonly asEd25519: U8aFixed; + readonly isSr25519: boolean; + readonly asSr25519: U8aFixed; + readonly isEcdsa: boolean; + readonly asEcdsa: U8aFixed; + readonly type: "Ed25519" | "Sr25519" | "Ecdsa"; + } + + /** @name PalletNftsPreSignedAttributes (368) */ + interface PalletNftsPreSignedAttributes extends Struct { + readonly collection: u32; + readonly item: u32; + readonly attributes: Vec>; + readonly namespace: PalletNftsAttributeNamespace; + readonly deadline: u32; + } + + /** @name PalletParametersCall (369) */ + interface PalletParametersCall extends Enum { + readonly isSetParameter: boolean; + readonly asSetParameter: { + readonly keyValue: StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters; + } & Struct; + readonly type: "SetParameter"; + } + + /** @name StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters (370) */ + interface StorageHubRuntimeConfigsRuntimeParamsRuntimeParameters extends Enum { + readonly isRuntimeConfig: boolean; + readonly asRuntimeConfig: StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters; + readonly type: "RuntimeConfig"; + } + + /** @name StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters (371) */ + interface StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigParameters extends Enum { + readonly isSlashAmountPerMaxFileSize: boolean; + readonly asSlashAmountPerMaxFileSize: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigSlashAmountPerMaxFileSize, + Option + ] + >; + readonly isStakeToChallengePeriod: boolean; + readonly asStakeToChallengePeriod: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigStakeToChallengePeriod, + Option + ] + >; + readonly isCheckpointChallengePeriod: boolean; + readonly asCheckpointChallengePeriod: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigCheckpointChallengePeriod, + Option + ] + >; + readonly isMinChallengePeriod: boolean; + readonly asMinChallengePeriod: ITuple< + [ + StorageHubRuntimeConfigsRuntimeParamsDynamicParamsRuntimeConfigMinChallengePeriod, + Option + ] + >; + readonly type: + | "SlashAmountPerMaxFileSize" + | "StakeToChallengePeriod" + | "CheckpointChallengePeriod" + | "MinChallengePeriod"; + } + + /** @name PalletSudoError (372) */ + interface PalletSudoError extends Enum { + readonly isRequireSudo: boolean; + readonly type: "RequireSudo"; + } + + /** @name PalletCollatorSelectionCandidateInfo (375) */ + interface PalletCollatorSelectionCandidateInfo extends Struct { + readonly who: AccountId32; + readonly deposit: u128; + } + + /** @name PalletCollatorSelectionError (377) */ + interface PalletCollatorSelectionError extends Enum { + readonly isTooManyCandidates: boolean; + readonly isTooFewEligibleCollators: boolean; + readonly isAlreadyCandidate: boolean; + readonly isNotCandidate: boolean; + readonly isTooManyInvulnerables: boolean; + readonly isAlreadyInvulnerable: boolean; + readonly isNotInvulnerable: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isValidatorNotRegistered: boolean; + readonly isInsertToCandidateListFailed: boolean; + readonly isRemoveFromCandidateListFailed: boolean; + readonly isDepositTooLow: boolean; + readonly isUpdateCandidateListFailed: boolean; + readonly isInsufficientBond: boolean; + readonly isTargetIsNotCandidate: boolean; + readonly isIdenticalDeposit: boolean; + readonly isInvalidUnreserve: boolean; + readonly type: + | "TooManyCandidates" + | "TooFewEligibleCollators" + | "AlreadyCandidate" + | "NotCandidate" + | "TooManyInvulnerables" + | "AlreadyInvulnerable" + | "NotInvulnerable" + | "NoAssociatedValidatorId" + | "ValidatorNotRegistered" + | "InsertToCandidateListFailed" + | "RemoveFromCandidateListFailed" + | "DepositTooLow" + | "UpdateCandidateListFailed" + | "InsufficientBond" + | "TargetIsNotCandidate" + | "IdenticalDeposit" + | "InvalidUnreserve"; + } + + /** @name SpCoreCryptoKeyTypeId (381) */ + interface SpCoreCryptoKeyTypeId extends U8aFixed {} + + /** @name PalletSessionError (382) */ + interface PalletSessionError extends Enum { + readonly isInvalidProof: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isDuplicatedKey: boolean; + readonly isNoKeys: boolean; + readonly isNoAccount: boolean; + readonly type: + | "InvalidProof" + | "NoAssociatedValidatorId" + | "DuplicatedKey" + | "NoKeys" + | "NoAccount"; + } + + /** @name CumulusPalletXcmpQueueOutboundChannelDetails (391) */ + interface CumulusPalletXcmpQueueOutboundChannelDetails extends Struct { + readonly recipient: u32; + readonly state: CumulusPalletXcmpQueueOutboundState; + readonly signalsExist: bool; + readonly firstIndex: u16; + readonly lastIndex: u16; + } + + /** @name CumulusPalletXcmpQueueOutboundState (392) */ + interface CumulusPalletXcmpQueueOutboundState extends Enum { + readonly isOk: boolean; + readonly isSuspended: boolean; + readonly type: "Ok" | "Suspended"; + } + + /** @name CumulusPalletXcmpQueueQueueConfigData (396) */ + interface CumulusPalletXcmpQueueQueueConfigData extends Struct { + readonly suspendThreshold: u32; + readonly dropThreshold: u32; + readonly resumeThreshold: u32; + } + + /** @name CumulusPalletXcmpQueueError (397) */ + interface CumulusPalletXcmpQueueError extends Enum { + readonly isBadQueueConfig: boolean; + readonly isAlreadySuspended: boolean; + readonly isAlreadyResumed: boolean; + readonly isTooManyActiveOutboundChannels: boolean; + readonly isTooBig: boolean; + readonly type: + | "BadQueueConfig" + | "AlreadySuspended" + | "AlreadyResumed" + | "TooManyActiveOutboundChannels" + | "TooBig"; + } + + /** @name PalletXcmQueryStatus (398) */ + interface PalletXcmQueryStatus extends Enum { + readonly isPending: boolean; + readonly asPending: { + readonly responder: XcmVersionedLocation; + readonly maybeMatchQuerier: Option; + readonly maybeNotify: Option>; + readonly timeout: u32; + } & Struct; + readonly isVersionNotifier: boolean; + readonly asVersionNotifier: { + readonly origin: XcmVersionedLocation; + readonly isActive: bool; + } & Struct; + readonly isReady: boolean; + readonly asReady: { + readonly response: XcmVersionedResponse; + readonly at: u32; + } & Struct; + readonly type: "Pending" | "VersionNotifier" | "Ready"; + } + + /** @name XcmVersionedResponse (402) */ + interface XcmVersionedResponse extends Enum { + readonly isV2: boolean; + readonly asV2: XcmV2Response; + readonly isV3: boolean; + readonly asV3: XcmV3Response; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Response; + readonly type: "V2" | "V3" | "V4"; + } + + /** @name PalletXcmVersionMigrationStage (408) */ + interface PalletXcmVersionMigrationStage extends Enum { + readonly isMigrateSupportedVersion: boolean; + readonly isMigrateVersionNotifiers: boolean; + readonly isNotifyCurrentTargets: boolean; + readonly asNotifyCurrentTargets: Option; + readonly isMigrateAndNotifyOldTargets: boolean; + readonly type: + | "MigrateSupportedVersion" + | "MigrateVersionNotifiers" + | "NotifyCurrentTargets" + | "MigrateAndNotifyOldTargets"; + } + + /** @name PalletXcmRemoteLockedFungibleRecord (411) */ + interface PalletXcmRemoteLockedFungibleRecord extends Struct { + readonly amount: u128; + readonly owner: XcmVersionedLocation; + readonly locker: XcmVersionedLocation; + readonly consumers: Vec>; + } + + /** @name PalletXcmError (418) */ + interface PalletXcmError extends Enum { + readonly isUnreachable: boolean; + readonly isSendFailure: boolean; + readonly isFiltered: boolean; + readonly isUnweighableMessage: boolean; + readonly isDestinationNotInvertible: boolean; + readonly isEmpty: boolean; + readonly isCannotReanchor: boolean; + readonly isTooManyAssets: boolean; + readonly isInvalidOrigin: boolean; + readonly isBadVersion: boolean; + readonly isBadLocation: boolean; + readonly isNoSubscription: boolean; + readonly isAlreadySubscribed: boolean; + readonly isCannotCheckOutTeleport: boolean; + readonly isLowBalance: boolean; + readonly isTooManyLocks: boolean; + readonly isAccountNotSovereign: boolean; + readonly isFeesNotMet: boolean; + readonly isLockNotFound: boolean; + readonly isInUse: boolean; + readonly isInvalidAssetUnknownReserve: boolean; + readonly isInvalidAssetUnsupportedReserve: boolean; + readonly isTooManyReserves: boolean; + readonly isLocalExecutionIncomplete: boolean; + readonly type: + | "Unreachable" + | "SendFailure" + | "Filtered" + | "UnweighableMessage" + | "DestinationNotInvertible" + | "Empty" + | "CannotReanchor" + | "TooManyAssets" + | "InvalidOrigin" + | "BadVersion" + | "BadLocation" + | "NoSubscription" + | "AlreadySubscribed" + | "CannotCheckOutTeleport" + | "LowBalance" + | "TooManyLocks" + | "AccountNotSovereign" + | "FeesNotMet" + | "LockNotFound" + | "InUse" + | "InvalidAssetUnknownReserve" + | "InvalidAssetUnsupportedReserve" + | "TooManyReserves" + | "LocalExecutionIncomplete"; + } + + /** @name PalletMessageQueueBookState (419) */ + interface PalletMessageQueueBookState extends Struct { + readonly begin: u32; + readonly end: u32; + readonly count: u32; + readonly readyNeighbours: Option; + readonly messageCount: u64; + readonly size_: u64; + } + + /** @name PalletMessageQueueNeighbours (421) */ + interface PalletMessageQueueNeighbours extends Struct { + readonly prev: CumulusPrimitivesCoreAggregateMessageOrigin; + readonly next: CumulusPrimitivesCoreAggregateMessageOrigin; + } + + /** @name PalletMessageQueuePage (423) */ + interface PalletMessageQueuePage extends Struct { + readonly remaining: u32; + readonly remainingSize: u32; + readonly firstIndex: u32; + readonly first: u32; + readonly last: u32; + readonly heap: Bytes; + } + + /** @name PalletMessageQueueError (425) */ + interface PalletMessageQueueError extends Enum { + readonly isNotReapable: boolean; + readonly isNoPage: boolean; + readonly isNoMessage: boolean; + readonly isAlreadyProcessed: boolean; + readonly isQueued: boolean; + readonly isInsufficientWeight: boolean; + readonly isTemporarilyUnprocessable: boolean; + readonly isQueuePaused: boolean; + readonly isRecursiveDisallowed: boolean; + readonly type: + | "NotReapable" + | "NoPage" + | "NoMessage" + | "AlreadyProcessed" + | "Queued" + | "InsufficientWeight" + | "TemporarilyUnprocessable" + | "QueuePaused" + | "RecursiveDisallowed"; + } + + /** @name PalletStorageProvidersStorageProvider (427) */ + interface PalletStorageProvidersStorageProvider extends Enum { + readonly isBackupStorageProvider: boolean; + readonly asBackupStorageProvider: PalletStorageProvidersBackupStorageProvider; + readonly isMainStorageProvider: boolean; + readonly asMainStorageProvider: PalletStorageProvidersMainStorageProvider; + readonly type: "BackupStorageProvider" | "MainStorageProvider"; + } + + /** @name PalletStorageProvidersBackupStorageProvider (428) */ + interface PalletStorageProvidersBackupStorageProvider extends Struct { + readonly capacity: u64; + readonly capacityUsed: u64; + readonly multiaddresses: Vec; + readonly root: H256; + readonly lastCapacityChange: u32; + readonly ownerAccount: AccountId32; + readonly paymentAccount: AccountId32; + readonly reputationWeight: u32; + } + + /** @name PalletStorageProvidersMainStorageProvider (429) */ + interface PalletStorageProvidersMainStorageProvider extends Struct { + readonly buckets: Vec; + readonly capacity: u64; + readonly capacityUsed: u64; + readonly multiaddresses: Vec; + readonly valueProp: PalletStorageProvidersValueProposition; + readonly lastCapacityChange: u32; + readonly ownerAccount: AccountId32; + readonly paymentAccount: AccountId32; + } + + /** @name PalletStorageProvidersBucket (431) */ + interface PalletStorageProvidersBucket extends Struct { + readonly root: H256; + readonly userId: AccountId32; + readonly mspId: H256; + readonly private: bool; + readonly readAccessGroupId: Option; + readonly size_: u64; + } + + /** @name PalletStorageProvidersError (434) */ + interface PalletStorageProvidersError extends Enum { + readonly isAlreadyRegistered: boolean; + readonly isSignUpNotRequested: boolean; + readonly isSignUpRequestPending: boolean; + readonly isNoMultiAddress: boolean; + readonly isInvalidMultiAddress: boolean; + readonly isStorageTooLow: boolean; + readonly isNotEnoughBalance: boolean; + readonly isCannotHoldDeposit: boolean; + readonly isStorageStillInUse: boolean; + readonly isRandomnessNotValidYet: boolean; + readonly isSignUpRequestExpired: boolean; + readonly isNewCapacityLessThanUsedStorage: boolean; + readonly isNewCapacityEqualsCurrentCapacity: boolean; + readonly isNewCapacityCantBeZero: boolean; + readonly isNotEnoughTimePassed: boolean; + readonly isNewUsedCapacityExceedsStorageCapacity: boolean; + readonly isNotRegistered: boolean; + readonly isNoUserId: boolean; + readonly isNoBucketId: boolean; + readonly isSpRegisteredButDataNotFound: boolean; + readonly isBucketNotFound: boolean; + readonly isBucketAlreadyExists: boolean; + readonly isAppendBucketToMspFailed: boolean; + readonly isProviderNotSlashable: boolean; + readonly isInvalidEncodedFileMetadata: boolean; + readonly isInvalidEncodedAccountId: boolean; + readonly isPaymentStreamNotFound: boolean; + readonly type: + | "AlreadyRegistered" + | "SignUpNotRequested" + | "SignUpRequestPending" + | "NoMultiAddress" + | "InvalidMultiAddress" + | "StorageTooLow" + | "NotEnoughBalance" + | "CannotHoldDeposit" + | "StorageStillInUse" + | "RandomnessNotValidYet" + | "SignUpRequestExpired" + | "NewCapacityLessThanUsedStorage" + | "NewCapacityEqualsCurrentCapacity" + | "NewCapacityCantBeZero" + | "NotEnoughTimePassed" + | "NewUsedCapacityExceedsStorageCapacity" + | "NotRegistered" + | "NoUserId" + | "NoBucketId" + | "SpRegisteredButDataNotFound" + | "BucketNotFound" + | "BucketAlreadyExists" + | "AppendBucketToMspFailed" + | "ProviderNotSlashable" + | "InvalidEncodedFileMetadata" + | "InvalidEncodedAccountId" + | "PaymentStreamNotFound"; + } + + /** @name PalletFileSystemStorageRequestMetadata (435) */ + interface PalletFileSystemStorageRequestMetadata extends Struct { + readonly requestedAt: u32; + readonly owner: AccountId32; + readonly bucketId: H256; + readonly location: Bytes; + readonly fingerprint: H256; + readonly size_: u64; + readonly msp: Option>; + readonly userPeerIds: Vec; + readonly dataServerSps: Vec; + readonly bspsRequired: u32; + readonly bspsConfirmed: u32; + readonly bspsVolunteered: u32; + } + + /** @name PalletFileSystemStorageRequestBspsMetadata (440) */ + interface PalletFileSystemStorageRequestBspsMetadata extends Struct { + readonly confirmed: bool; + } + + /** @name PalletFileSystemMoveBucketRequestMetadata (449) */ + interface PalletFileSystemMoveBucketRequestMetadata extends Struct { + readonly requester: AccountId32; + } + + /** @name PalletFileSystemError (450) */ + interface PalletFileSystemError extends Enum { + readonly isStorageRequestAlreadyRegistered: boolean; + readonly isStorageRequestNotFound: boolean; + readonly isStorageRequestNotRevoked: boolean; + readonly isStorageRequestExists: boolean; + readonly isReplicationTargetCannotBeZero: boolean; + readonly isBspsRequiredExceedsTarget: boolean; + readonly isNotABsp: boolean; + readonly isNotAMsp: boolean; + readonly isNotASp: boolean; + readonly isBspNotVolunteered: boolean; + readonly isBspNotConfirmed: boolean; + readonly isBspAlreadyConfirmed: boolean; + readonly isStorageRequestBspsRequiredFulfilled: boolean; + readonly isBspAlreadyVolunteered: boolean; + readonly isInsufficientAvailableCapacity: boolean; + readonly isUnexpectedNumberOfRemovedVolunteeredBsps: boolean; + readonly isStorageRequestExpiredNoSlotAvailable: boolean; + readonly isStorageRequestNotAuthorized: boolean; + readonly isMaxBlockNumberReached: boolean; + readonly isFailedToEncodeBsp: boolean; + readonly isFailedToEncodeFingerprint: boolean; + readonly isFailedToDecodeThreshold: boolean; + readonly isAboveThreshold: boolean; + readonly isThresholdArithmeticError: boolean; + readonly isFailedTypeConversion: boolean; + readonly isDividedByZero: boolean; + readonly isImpossibleFailedToGetValue: boolean; + readonly isBucketIsNotPrivate: boolean; + readonly isBucketNotFound: boolean; + readonly isNotBucketOwner: boolean; + readonly isProviderRootNotFound: boolean; + readonly isExpectedNonInclusionProof: boolean; + readonly isExpectedInclusionProof: boolean; + readonly isInvalidFileKeyMetadata: boolean; + readonly isThresholdBelowAsymptote: boolean; + readonly isNotFileOwner: boolean; + readonly isFileKeyAlreadyPendingDeletion: boolean; + readonly isMaxUserPendingDeletionRequestsReached: boolean; + readonly isMspNotStoringBucket: boolean; + readonly isFileKeyNotPendingDeletion: boolean; + readonly isFileSizeCannotBeZero: boolean; + readonly isNoGlobalReputationWeightSet: boolean; + readonly isMaximumThresholdCannotBeZero: boolean; + readonly isTickRangeToMaximumThresholdCannotBeZero: boolean; + readonly isPendingStopStoringRequestNotFound: boolean; + readonly isMinWaitForStopStoringNotReached: boolean; + readonly isPendingStopStoringRequestAlreadyExists: boolean; + readonly isUserNotInsolvent: boolean; + readonly isNotSelectedMsp: boolean; + readonly isMspAlreadyConfirmed: boolean; + readonly isRequestWithoutMsp: boolean; + readonly isMspAlreadyStoringBucket: boolean; + readonly isMoveBucketRequestNotFound: boolean; + readonly isBucketIsBeingMoved: boolean; + readonly isBspAlreadyDataServer: boolean; + readonly isBspDataServersExceeded: boolean; + readonly isFileMetadataProcessingQueueFull: boolean; + readonly isTooManyBatchResponses: boolean; + readonly isTooManyStorageRequestResponses: boolean; + readonly isInvalidBucketIdFileKeyPair: boolean; + readonly isInconsistentStateKeyAlreadyExists: boolean; + readonly type: + | "StorageRequestAlreadyRegistered" + | "StorageRequestNotFound" + | "StorageRequestNotRevoked" + | "StorageRequestExists" + | "ReplicationTargetCannotBeZero" + | "BspsRequiredExceedsTarget" + | "NotABsp" + | "NotAMsp" + | "NotASp" + | "BspNotVolunteered" + | "BspNotConfirmed" + | "BspAlreadyConfirmed" + | "StorageRequestBspsRequiredFulfilled" + | "BspAlreadyVolunteered" + | "InsufficientAvailableCapacity" + | "UnexpectedNumberOfRemovedVolunteeredBsps" + | "StorageRequestExpiredNoSlotAvailable" + | "StorageRequestNotAuthorized" + | "MaxBlockNumberReached" + | "FailedToEncodeBsp" + | "FailedToEncodeFingerprint" + | "FailedToDecodeThreshold" + | "AboveThreshold" + | "ThresholdArithmeticError" + | "FailedTypeConversion" + | "DividedByZero" + | "ImpossibleFailedToGetValue" + | "BucketIsNotPrivate" + | "BucketNotFound" + | "NotBucketOwner" + | "ProviderRootNotFound" + | "ExpectedNonInclusionProof" + | "ExpectedInclusionProof" + | "InvalidFileKeyMetadata" + | "ThresholdBelowAsymptote" + | "NotFileOwner" + | "FileKeyAlreadyPendingDeletion" + | "MaxUserPendingDeletionRequestsReached" + | "MspNotStoringBucket" + | "FileKeyNotPendingDeletion" + | "FileSizeCannotBeZero" + | "NoGlobalReputationWeightSet" + | "MaximumThresholdCannotBeZero" + | "TickRangeToMaximumThresholdCannotBeZero" + | "PendingStopStoringRequestNotFound" + | "MinWaitForStopStoringNotReached" + | "PendingStopStoringRequestAlreadyExists" + | "UserNotInsolvent" + | "NotSelectedMsp" + | "MspAlreadyConfirmed" + | "RequestWithoutMsp" + | "MspAlreadyStoringBucket" + | "MoveBucketRequestNotFound" + | "BucketIsBeingMoved" + | "BspAlreadyDataServer" + | "BspDataServersExceeded" + | "FileMetadataProcessingQueueFull" + | "TooManyBatchResponses" + | "TooManyStorageRequestResponses" + | "InvalidBucketIdFileKeyPair" + | "InconsistentStateKeyAlreadyExists"; + } + + /** @name PalletProofsDealerError (457) */ + interface PalletProofsDealerError extends Enum { + readonly isNotProvider: boolean; + readonly isChallengesQueueOverflow: boolean; + readonly isPriorityChallengesQueueOverflow: boolean; + readonly isFeeChargeFailed: boolean; + readonly isEmptyKeyProofs: boolean; + readonly isProviderRootNotFound: boolean; + readonly isZeroRoot: boolean; + readonly isNoRecordOfLastSubmittedProof: boolean; + readonly isProviderStakeNotFound: boolean; + readonly isZeroStake: boolean; + readonly isStakeCouldNotBeConverted: boolean; + readonly isChallengesTickNotReached: boolean; + readonly isChallengesTickTooOld: boolean; + readonly isChallengesTickTooLate: boolean; + readonly isSeedNotFound: boolean; + readonly isCheckpointChallengesNotFound: boolean; + readonly isForestProofVerificationFailed: boolean; + readonly isKeyProofNotFound: boolean; + readonly isKeyProofVerificationFailed: boolean; + readonly isFailedToApplyDelta: boolean; + readonly isFailedToUpdateProviderAfterKeyRemoval: boolean; + readonly isTooManyValidProofSubmitters: boolean; + readonly type: + | "NotProvider" + | "ChallengesQueueOverflow" + | "PriorityChallengesQueueOverflow" + | "FeeChargeFailed" + | "EmptyKeyProofs" + | "ProviderRootNotFound" + | "ZeroRoot" + | "NoRecordOfLastSubmittedProof" + | "ProviderStakeNotFound" + | "ZeroStake" + | "StakeCouldNotBeConverted" + | "ChallengesTickNotReached" + | "ChallengesTickTooOld" + | "ChallengesTickTooLate" + | "SeedNotFound" + | "CheckpointChallengesNotFound" + | "ForestProofVerificationFailed" + | "KeyProofNotFound" + | "KeyProofVerificationFailed" + | "FailedToApplyDelta" + | "FailedToUpdateProviderAfterKeyRemoval" + | "TooManyValidProofSubmitters"; + } + + /** @name PalletPaymentStreamsFixedRatePaymentStream (460) */ + interface PalletPaymentStreamsFixedRatePaymentStream extends Struct { + readonly rate: u128; + readonly lastChargedTick: u32; + readonly userDeposit: u128; + readonly outOfFundsTick: Option; + } + + /** @name PalletPaymentStreamsDynamicRatePaymentStream (461) */ + interface PalletPaymentStreamsDynamicRatePaymentStream extends Struct { + readonly amountProvided: u64; + readonly priceIndexWhenLastCharged: u128; + readonly userDeposit: u128; + readonly outOfFundsTick: Option; + } + + /** @name PalletPaymentStreamsProviderLastChargeableInfo (462) */ + interface PalletPaymentStreamsProviderLastChargeableInfo extends Struct { + readonly lastChargeableTick: u32; + readonly priceIndex: u128; + } + + /** @name PalletPaymentStreamsError (463) */ + interface PalletPaymentStreamsError extends Enum { + readonly isPaymentStreamAlreadyExists: boolean; + readonly isPaymentStreamNotFound: boolean; + readonly isNotAProvider: boolean; + readonly isProviderInconsistencyError: boolean; + readonly isCannotHoldDeposit: boolean; + readonly isUpdateRateToSameRate: boolean; + readonly isUpdateAmountToSameAmount: boolean; + readonly isRateCantBeZero: boolean; + readonly isAmountProvidedCantBeZero: boolean; + readonly isLastChargedGreaterThanLastChargeable: boolean; + readonly isInvalidLastChargeableBlockNumber: boolean; + readonly isInvalidLastChargeablePriceIndex: boolean; + readonly isChargeOverflow: boolean; + readonly isUserWithoutFunds: boolean; + readonly isUserNotFlaggedAsWithoutFunds: boolean; + readonly isCooldownPeriodNotPassed: boolean; + readonly type: + | "PaymentStreamAlreadyExists" + | "PaymentStreamNotFound" + | "NotAProvider" + | "ProviderInconsistencyError" + | "CannotHoldDeposit" + | "UpdateRateToSameRate" + | "UpdateAmountToSameAmount" + | "RateCantBeZero" + | "AmountProvidedCantBeZero" + | "LastChargedGreaterThanLastChargeable" + | "InvalidLastChargeableBlockNumber" + | "InvalidLastChargeablePriceIndex" + | "ChargeOverflow" + | "UserWithoutFunds" + | "UserNotFlaggedAsWithoutFunds" + | "CooldownPeriodNotPassed"; + } + + /** @name PalletBucketNftsError (464) */ + interface PalletBucketNftsError extends Enum { + readonly isBucketIsNotPrivate: boolean; + readonly isNotBucketOwner: boolean; + readonly isNoCorrespondingCollection: boolean; + readonly isConvertBytesToBoundedVec: boolean; + readonly type: + | "BucketIsNotPrivate" + | "NotBucketOwner" + | "NoCorrespondingCollection" + | "ConvertBytesToBoundedVec"; + } + + /** @name PalletNftsCollectionDetails (465) */ + interface PalletNftsCollectionDetails extends Struct { + readonly owner: AccountId32; + readonly ownerDeposit: u128; + readonly items: u32; + readonly itemMetadatas: u32; + readonly itemConfigs: u32; + readonly attributes: u32; + } + + /** @name PalletNftsCollectionRole (470) */ + interface PalletNftsCollectionRole extends Enum { + readonly isIssuer: boolean; + readonly isFreezer: boolean; + readonly isAdmin: boolean; + readonly type: "Issuer" | "Freezer" | "Admin"; + } + + /** @name PalletNftsItemDetails (471) */ + interface PalletNftsItemDetails extends Struct { + readonly owner: AccountId32; + readonly approvals: BTreeMap>; + readonly deposit: PalletNftsItemDeposit; + } + + /** @name PalletNftsItemDeposit (472) */ + interface PalletNftsItemDeposit extends Struct { + readonly account: AccountId32; + readonly amount: u128; + } + + /** @name PalletNftsCollectionMetadata (477) */ + interface PalletNftsCollectionMetadata extends Struct { + readonly deposit: u128; + readonly data: Bytes; + } + + /** @name PalletNftsItemMetadata (478) */ + interface PalletNftsItemMetadata extends Struct { + readonly deposit: PalletNftsItemMetadataDeposit; + readonly data: Bytes; + } + + /** @name PalletNftsItemMetadataDeposit (479) */ + interface PalletNftsItemMetadataDeposit extends Struct { + readonly account: Option; + readonly amount: u128; + } + + /** @name PalletNftsAttributeDeposit (482) */ + interface PalletNftsAttributeDeposit extends Struct { + readonly account: Option; + readonly amount: u128; + } + + /** @name PalletNftsPendingSwap (486) */ + interface PalletNftsPendingSwap extends Struct { + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } + + /** @name PalletNftsPalletFeature (488) */ + interface PalletNftsPalletFeature extends Enum { + readonly isTrading: boolean; + readonly isAttributes: boolean; + readonly isApprovals: boolean; + readonly isSwaps: boolean; + readonly type: "Trading" | "Attributes" | "Approvals" | "Swaps"; + } + + /** @name PalletNftsError (489) */ + interface PalletNftsError extends Enum { + readonly isNoPermission: boolean; + readonly isUnknownCollection: boolean; + readonly isAlreadyExists: boolean; + readonly isApprovalExpired: boolean; + readonly isWrongOwner: boolean; + readonly isBadWitness: boolean; + readonly isCollectionIdInUse: boolean; + readonly isItemsNonTransferable: boolean; + readonly isNotDelegate: boolean; + readonly isWrongDelegate: boolean; + readonly isUnapproved: boolean; + readonly isUnaccepted: boolean; + readonly isItemLocked: boolean; + readonly isLockedItemAttributes: boolean; + readonly isLockedCollectionAttributes: boolean; + readonly isLockedItemMetadata: boolean; + readonly isLockedCollectionMetadata: boolean; + readonly isMaxSupplyReached: boolean; + readonly isMaxSupplyLocked: boolean; + readonly isMaxSupplyTooSmall: boolean; + readonly isUnknownItem: boolean; + readonly isUnknownSwap: boolean; + readonly isMetadataNotFound: boolean; + readonly isAttributeNotFound: boolean; + readonly isNotForSale: boolean; + readonly isBidTooLow: boolean; + readonly isReachedApprovalLimit: boolean; + readonly isDeadlineExpired: boolean; + readonly isWrongDuration: boolean; + readonly isMethodDisabled: boolean; + readonly isWrongSetting: boolean; + readonly isInconsistentItemConfig: boolean; + readonly isNoConfig: boolean; + readonly isRolesNotCleared: boolean; + readonly isMintNotStarted: boolean; + readonly isMintEnded: boolean; + readonly isAlreadyClaimed: boolean; + readonly isIncorrectData: boolean; + readonly isWrongOrigin: boolean; + readonly isWrongSignature: boolean; + readonly isIncorrectMetadata: boolean; + readonly isMaxAttributesLimitReached: boolean; + readonly isWrongNamespace: boolean; + readonly isCollectionNotEmpty: boolean; + readonly isWitnessRequired: boolean; + readonly type: + | "NoPermission" + | "UnknownCollection" + | "AlreadyExists" + | "ApprovalExpired" + | "WrongOwner" + | "BadWitness" + | "CollectionIdInUse" + | "ItemsNonTransferable" + | "NotDelegate" + | "WrongDelegate" + | "Unapproved" + | "Unaccepted" + | "ItemLocked" + | "LockedItemAttributes" + | "LockedCollectionAttributes" + | "LockedItemMetadata" + | "LockedCollectionMetadata" + | "MaxSupplyReached" + | "MaxSupplyLocked" + | "MaxSupplyTooSmall" + | "UnknownItem" + | "UnknownSwap" + | "MetadataNotFound" + | "AttributeNotFound" + | "NotForSale" + | "BidTooLow" + | "ReachedApprovalLimit" + | "DeadlineExpired" + | "WrongDuration" + | "MethodDisabled" + | "WrongSetting" + | "InconsistentItemConfig" + | "NoConfig" + | "RolesNotCleared" + | "MintNotStarted" + | "MintEnded" + | "AlreadyClaimed" + | "IncorrectData" + | "WrongOrigin" + | "WrongSignature" + | "IncorrectMetadata" + | "MaxAttributesLimitReached" + | "WrongNamespace" + | "CollectionNotEmpty" + | "WitnessRequired"; + } + + /** @name FrameSystemExtensionsCheckNonZeroSender (492) */ + type FrameSystemExtensionsCheckNonZeroSender = Null; + + /** @name FrameSystemExtensionsCheckSpecVersion (493) */ + type FrameSystemExtensionsCheckSpecVersion = Null; + + /** @name FrameSystemExtensionsCheckTxVersion (494) */ + type FrameSystemExtensionsCheckTxVersion = Null; + + /** @name FrameSystemExtensionsCheckGenesis (495) */ + type FrameSystemExtensionsCheckGenesis = Null; + + /** @name FrameSystemExtensionsCheckNonce (498) */ + interface FrameSystemExtensionsCheckNonce extends Compact {} + + /** @name FrameSystemExtensionsCheckWeight (499) */ + type FrameSystemExtensionsCheckWeight = Null; + + /** @name PalletTransactionPaymentChargeTransactionPayment (500) */ + interface PalletTransactionPaymentChargeTransactionPayment extends Compact {} + + /** @name CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim (501) */ + type CumulusPrimitivesStorageWeightReclaimStorageWeightReclaim = Null; + + /** @name FrameMetadataHashExtensionCheckMetadataHash (502) */ + interface FrameMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: FrameMetadataHashExtensionMode; + } + + /** @name FrameMetadataHashExtensionMode (503) */ + interface FrameMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: "Disabled" | "Enabled"; + } + + /** @name StorageHubRuntimeRuntime (504) */ + type StorageHubRuntimeRuntime = Null; +} // declare module diff --git a/api-augment/storagehub.json b/api-augment/storagehub.json index 6e9417ccd..ee6cebaa1 100644 --- a/api-augment/storagehub.json +++ b/api-augment/storagehub.json @@ -1,5 +1 @@ -<<<<<<< HEAD -{"jsonrpc":"2.0","result":"0x6d6574610e5907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659902011450686173650001146576656e7454010445000118746f706963731d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e740001481853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204002102019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e65737304006902018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d7304006d02019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e66747304007102018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e66747304007502016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e484d7370416363657074656453746f72696e6714012066696c655f6b65793401344d65726b6c65486173683c543e0001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e74496400013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e000504c44e6f74696669657320746861742061204d53502068617320616363657074656420746f2073746f726520612066696c652e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973190201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e51756575656408011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00001d02000002340021020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f662502012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765734d02015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e73610201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6629020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66733102018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000029020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f6465732d0201305665633c5665633c75383e3e00002d0200000238003102042042547265654d617008044b01340456013502000400450200000035020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66390201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000039020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d657461646174613d0201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6629020130436f6d7061637450726f6f6600003d0208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e744102015446696e6765727072696e743c485f4c454e4754483e0000410208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e00004502000002490200490200000408343502004d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e000051020000040834550200550204184f7074696f6e0404540159020108104e6f6e6500000010536f6d65040059020000010000590208287368705f747261697473485472696552656d6f76654d75746174696f6e000000005d0200000251020061020000026502006502000004083459020069020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c657471020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d737d0201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574659502018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007d02000002100081020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000890204184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d0200000100008d020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e910201385072696365446972656374696f6e000091020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000095020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000990208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d02000002a10200a10200000408101000a50208306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a902016473705f72756e74696d653a3a52756e74696d65537472696e670000a9020000050200ad0208306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b50201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579732d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb502000002b90200b90200000408383800bd020c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373c10201845065724469737061746368436c6173733c57656967687473506572436c6173733e0000c1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c502000c01186e6f726d616cc50201045400012c6f7065726174696f6e616cc5020104540001246d616e6461746f7279c5020104540000c5020c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963c90201384f7074696f6e3c5765696768743e0001246d61785f746f74616cc90201384f7074696f6e3c5765696768743e0001207265736572766564c90201384f7074696f6e3c5765696768743e0000c90204184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000cd020c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178d10201545065724469737061746368436c6173733c7533323e0000d1020c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000d502082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d902082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a902013452756e74696d65537472696e67000124696d706c5f6e616d65a902013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973dd02011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000dd02040c436f7704045401e102000400e102000000e102000002e50200e5020000040829011000e9020000050400ed020c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574f102000002f50200f5020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468f90201345573656442616e647769647468000138706172615f686561645f686173680d0301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000f9020c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67fd02018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000fd02042042547265654d617008044b01e9010456010103000400050300000001030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200000503000002090300090300000408e9010103000d0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000110304184f7074696f6e0404540115030108104e6f6e6500000010536f6d6504001503000001000015030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f41686561640001000019030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468f90201345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c1103018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00001d030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616421030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000021030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000250304184f7074696f6e0404540129030108104e6f6e6500000010536f6d6504002903000001000029030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e74000000002d030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465733103014442547265655365743c5665633c75383e3e000031030420425472656553657404045401380004002d0200000035030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974793903018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c733d0301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e000039030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c75333200003d03000002410300410300000408e90145030045030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561640d0301304f7074696f6e3c486173683e000049030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d734d0301484173796e634261636b696e67506172616d7300004d03104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c61794861736800005503042042547265654d617008044b01e9010456015103000400590300000059030000025d03005d0300000408e901510300610300000265030065030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e000069030c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800006d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f64617461040110646174617103015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174611d03015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174652d03015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d657373616765737503016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d657373616765737d0301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000750300000279030079030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500007d03042042547265654d617008044b01e90104560181030004008903000000810300000285030085030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e000089030000028d03008d0300000408e90181030091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d030c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a103045300000400a90301185665633c543e0000a1030c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a503011c526561736f6e730000a5030c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a903000002a10300ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400b50301185665633c543e0000b1030c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b503000002b10300b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400cd0301185665633c543e0000bd030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401c1031c42616c616e63650118000801086964c10301084964000118616d6f756e7418011c42616c616e63650000c103084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f7669646572730400c503019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d730400c903018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c0000c5030c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f73697400010000c9030c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000cd03000002bd0300d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400d90301185665633c543e0000d5030c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e63650000d903000002d50300dd030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365e10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee903014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565dc0128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400e50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000e5030000069800e9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000ed030c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef103086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f5030c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577e10301504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686fe10301504163636f756e7449644c6f6f6b75704f663c543e00011063616c6cf903017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c00014c1853797374656d0400b10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d04006d0301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400950301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400990301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400dd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400f50301a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400fd0301d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400010401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400110401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400b10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400b50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400b90401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400bd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400d50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400d90401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400dd0401cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400e10401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400e90401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320000fd030c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579730504011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0504084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b657973000004011061757261090401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300000904104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300000d040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d6573736167657d0401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065a9040144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964ad040154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065a9040144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737415040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001904015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304004904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e0004000019040c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0400000221040021040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065350401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665390401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473390401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473390401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473390401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001904014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001904014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000025040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c740400290401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000290404184f7074696f6e040454012d040108104e6f6e6500000010536f6d6504002d0400000100002d0400000408103104003104100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000035040c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300003904100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404003d04013857696c644d756c74694173736574000100003d04100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756e4104013c57696c6446756e676962696c697479000100004104100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000045040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c7536340001000049040c0c78636d0876330c58636d041043616c6c000004004d0401585665633c496e737472756374696f6e3c43616c6c3e3e00004d0400000251040051040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004904012458636d3c43616c6c3e0015002c536574417070656e64697804004904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000055040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040059040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f64650005000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d04045300000400650401185665633c543e00005d040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000061040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000065040000025d0400690404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd0100000100006d040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400007104100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c6404007504013857696c644d756c74694173736574000100007504100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756e7904013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756e7904013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300007904100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007d04080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204008104015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304009104015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009d04015076343a3a58636d3c52756e74696d6543616c6c3e0004000081040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400850401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000850400000289040089040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736525040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065350401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c8d040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473390401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e000e003445786368616e6765417373657408011067697665390401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473390401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473390401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d1904011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473390401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d69744504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008104014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804008104014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b00008d040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000091040c0c78636d0876330c58636d041043616c6c00000400950401585665633c496e737472756374696f6e3c43616c6c3e3e0000950400000299040099040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8d04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009104012458636d3c43616c6c3e0015002c536574417070656e64697804009104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636d4904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00009d040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400a10401585665633c496e737472756374696f6e3c43616c6c3e3e0000a104000002a50400a5040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c8d04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009d04012458636d3c43616c6c3e0015002c536574417070656e64697804009d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f0000a904105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e00030000ad04080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a4173736574496400040000b1040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574bd040c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365c10401644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642e686d73705f6163636570745f73746f726167655f726571756573740c012066696c655f6b65793401344d65726b6c65486173683c543e00012866696c655f70726f6f663902012c4b657950726f6f663c543e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e0008180101557365642062792061204d535020746f20636f6e6669726d2073746f72696e6720612066696c652074686174207761732061737369676e656420746f2069742e007501546865204d53502068617320746f2070726f7669646520612070726f6f66206f66207468652066696c652773206b657920616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c652773206b65797d01696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652070726f6f66206f66207468652066696c652773206b6579206973206e656365737361727920746f2076657269667920746861748101746865204d53502061637475616c6c7920686173207468652066696c652c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f6673c504013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66d10401584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6629020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1040c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a656374656400010000c5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c904045300000400cd0401185665633c543e0000c9040000040834390200cd04000002c90400d10404184f7074696f6e0404540129020108104e6f6e6500000010536f6d65040029020000010000d5040c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f662502012050726f6f663c543e00012070726f76696465720d0301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9040c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c6574e1040c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74e10301684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e50401684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578e50401684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee50404184f7074696f6e0404540179020108104e6f6e6500000010536f6d65040079020000010000e9040c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ee10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967ed040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e666967ed040164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573730d05013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461110501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746fe10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967190501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374e10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d737d0201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e6773f1040148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565721d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e1d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a65721d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572e10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e666967ed040164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756579020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365850201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65798102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465e10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573732105017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746179020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e6773f9040105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963650105015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f62757965721d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970732505019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365890201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746131050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726535050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174614105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726535050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed040c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e6773f1040148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773f90401b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e0000f1040c2c70616c6c65745f6e66747314747970657320426974466c61677304045401f504000400300144436f6c6c656374696f6e53657474696e670000f5040c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f736974526571756972656400100000f9040c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065fd0401584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365010501344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773050501304974656d53657474696e67730000fd040c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000010504184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000005050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401090500040030012c4974656d53657474696e67000009050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b656441747472696275746573000400000d050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000110504184f7074696f6e0404540115050108104e6f6e6500000010536f6d6504001505000001000015050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f70726963650105013c4f7074696f6e3c42616c616e63653e000019050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773050501304974656d53657474696e677300001d0504184f7074696f6e04045401e1030108104e6f6e6500000010536f6d650400e103000001000021050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000025050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540129050453000004002d0501185665633c543e000029050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e7400002d0500000229050031050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f70726963650105013c4f7074696f6e3c42616c616e63653e00003505082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040039050148656432353531393a3a5369676e61747572650000001c53723235353139040039050148737232353531393a3a5369676e617475726500010014456364736104003d05014065636473613a3a5369676e61747572650002000039050000034000000008003d0500000341000000080041050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012861747472696275746573b502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365850201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000045050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e49050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e00004d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015105045300000400550501185665633c543e000051050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000550500000251050059050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d05000002610500610500000408000504006505000004086905380069050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00006d050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e71050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400750501185665633c543e000075050000020904007905084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007d05000004087905100081050c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004008505012c42547265655365743c543e000085050420425472656553657404045401e90100040089050000008905000002e901008d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019105045300000400990501185665633c543e00009105086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465950501344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578e902010c7531360001286c6173745f696e646578e902010c75313600009505086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e6465640001000099050000029105009d0500000408e901e90200a1050c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e0000a505086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000a9050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead050c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572b10501644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679b50501404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365bd05014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000b10504184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000b50504184f7074696f6e04045401b9050108104e6f6e6500000010536f6d650400b9050000010000b90500000408080800bd05080c78636d4456657273696f6e6564526573706f6e736500010c08563204002504013076323a3a526573706f6e736500020008563304005504013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e736500040000c1050000040810d90100c5050000040c30281000c9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd05045300000400d10501185665633c543e0000cd0500000408d9011000d105000002cd0500d5050c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400d905013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000d90504184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000dd050000040c1000ad0400e1050c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273e50501d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e905045300000400ed0501185665633c543e0000e90500000408981800ed05000002e90500f1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f505045300000400f90501185665633c543e0000f5050000040818d90100f905000002f50500fd050c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0106085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273050601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000050604184f7074696f6e0404540109060108104e6f6e6500000010536f6d650400090600000100000906085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e00000d0600000408e50110001106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561701506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000015060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d06000004082106100021060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400250601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400290601584d61696e53746f7261676550726f76696465723c543e0001000025060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e000029060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b6574732d0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400002d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013106045300000400350601185665633c543e000031060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000350600000231060039060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00003d060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6741060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370450601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f7370734d0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000450604184f7074696f6e0404540149060108104e6f6e6500000010536f6d650400490600000100004906000004083420004d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000051060000040834340055060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e00005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016106045300000400650601185665633c543e0000610600000408003400650600000261060069060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151060453000004006d0601185665633c543e00006d0600000251060071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151060453000004006d0601185665633c543e000075060000040810300079060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e74496400007d060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001e47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e81060000040810340085060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0201185665633c543e000089060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540151020453000004005d0201185665633c543e00008d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004009106012c42547265655365743c543e000091060420425472656553657404045401340004001d0200000095060c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000099060c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0600000408341000a10600000408340000a5060c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000a9060c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0000ad060c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e0000b1060c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67b5060c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb9060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000bd060000040c00101000c10600000408001000c50600000408100000c9060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401cd06000400080138436f6c6c656374696f6e526f6c650000cd060c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000d1060c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401d50624417070726f76616c7301d906000c01146f776e65720001244163636f756e744964000124617070726f76616c73d9060124417070726f76616c7300011c6465706f736974d506011c4465706f7369740000d5060c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000d9060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456011102045300000400dd06013842547265654d61703c4b2c20563e0000dd06042042547265654d617008044b01000456011102000400e106000000e106000002e50600e5060000040800110200e9060c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000ed060c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401f1062c537472696e674c696d6974000008011c6465706f736974f106011c4465706f736974000110646174617902016c426f756e6465645665633c75382c20537472696e674c696d69743e0000f1060c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000f506000004101011028502810200f906000004087902fd0600fd060c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000010700000408189c0005070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004000907012c42547265655365743c543e00000907042042547265655365740404540100000400a40000000d070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e018d0220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365890201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000011070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401150700040030013450616c6c657446656174757265000015070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000019070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e1031043616c6c01f903245369676e617475726501350514457874726101210700040038000000210700000428250729072d07310735073d074107450749074d0700250710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000290710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000002d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000310710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000350710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003907010c45726100003907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff00003d0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000410710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000004507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000490708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d040454000000004d0708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465510701104d6f64650000510708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c6564000100005507084c73746f726167655f6875625f72756e74696d651c52756e74696d65000000005c1853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d020400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a50204000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009902040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad02040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01b10201581830426c6f636b57656967687473bd0289010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468cd023000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874d5024040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ed90279044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d650100000001000000000000004cd7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb9201000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978e902082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01ed02003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e740100f1020400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000190304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100001d0304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100250304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401001103040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600002d03040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000350304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e000049030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100510380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d7163486561647301005503040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100610304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d6573736167657301002d0204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301002d02040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100690340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e016d03017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e019103012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195030004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e901106400000000019903000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009d03040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0304000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b9030400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d1030400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd03018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed030a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100690340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10304000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01f5030190000145050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100490504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c69737401004d050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01fd0301a000015905151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301005d050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f727301007d020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050005040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405650500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01010401a800016d05161041757261011041757261082c417574686f726974696573010071050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010079052000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f72697469657301007105040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f00007d0504000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010081050400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301008d050400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802059d05a105040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e901a105040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100a505302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901690340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e010d0401ac0c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a6510100000010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e01a9051e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d38305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230ad050400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502c10510040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502c10530040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502c105c50504000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100c90504000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000d5050400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202dd05e105040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200f105040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000005010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e01110401b00001fd051f2843756d756c757358636d0001b10401dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501010674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805050d0611060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01b50401e10110204865617053697a651010009c0100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874c9022c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874c9020400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e011906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402001d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f766964657273000104023429060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b65747300010402343106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234390604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f766964657273000104023425060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01b90401f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f73697418400040e59c30120000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f73697418400040e59c30120000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a65184000c817a804000000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e013d06282846696c6553797374656d012846696c6553797374656d443c53746f726167655265717565737473000104023441060400004853746f7261676552657175657374427370730001080202510655060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202510698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e7301010402105906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e7301010402105d06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e7301010402106906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200710604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e675265717565737473000108020251067506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b65745265717565737473000108020251067906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202510698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e01bd04010d0234604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e017d06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e67657300010402104d0204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020281069804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501008506040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501008906040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402108d0604001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e01d5040121023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f6410100a00000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f6418400080f420e6b5000000000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f9506100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0199062a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300009d060400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300009d060400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01d90401690200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d730001080202a106a50604002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d730001080202a106a90604002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234ad0650000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01dd04016d0208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e01b1062c284275636b65744e6674730001e1040171020001b5062d104e66747301104e6674733c28436f6c6c656374696f6e0001040210b906040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202bd0698040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202c1069804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202c506c906040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d0001080202a102d106040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210e90604000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f660001080202a102ed0604000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202f506f906040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f660001080202a1020107040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f660101080202a102050704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202a1020d070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f660001040210ed040400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202a10219050400044c20436f6e666967206f6620616e206974656d2e01e9040175023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573110720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e011907321d07042848436865636b4e6f6e5a65726f53656e64657225079840436865636b5370656356657273696f6e29071038436865636b547856657273696f6e2d071030436865636b47656e6573697331073438436865636b4d6f7274616c69747935073428436865636b4e6f6e63653d07982c436865636b576569676874410798604368617267655472616e73616374696f6e5061796d656e744507985053746f726167655765696768745265636c61696d49079844436865636b4d65746164617461486173684d07805507","id":"1"} -======= -{"jsonrpc":"2.0","result":"0x6d6574610ed907000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365fd02011450686173650001146576656e7454010445000118746f706963732d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e7400014c1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204005d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e6573730400a502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d730400a902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e6674730400ad02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e6674730400b102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320028506172616d65746572730400d502018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e00330000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e744d7370526573706f6e646564546f53746f72616765526571756573747304011c726573756c7473190201884d7370526573706f6e6453746f726167655265717565737473526573756c743c543e000504e04e6f74696669657320746861742061204d53502068617320726573706f6e64656420746f2073746f7261676520726571756573742873292e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973290201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e517565756564080118697373756572590201644569746865724163636f756e7449644f724d737049643c543e00012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4870616c6c65745f66696c655f73797374656d1474797065737c4d7370526573706f6e6453746f726167655265717565737473526573756c7404045400000801186d73705f696434014050726f76696465724964466f723c543e000124726573706f6e7365731d02010d01426f756e6465645665633c4261746368526573706f6e7365733c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e00001d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012102045300000400550201185665633c543e000021020c4870616c6c65745f66696c655f73797374656d147479706573384261746368526573706f6e73657304045400010c2041636365707465640400250201884d73704163636570746564426174636853746f7261676552657175657374733c543e0000002052656a65637465640400310201884d737052656a6563746564426174636853746f7261676552657175657374733c543e000100184661696c65640400450201804d73704661696c6564426174636853746f7261676552657175657374733c543e0002000025020c4870616c6c65745f66696c655f73797374656d1474797065737c4d73704163636570746564426174636853746f726167655265717565737473040454000010012466696c655f6b657973290201fc426f756e6465645665633c4d65726b6c65486173683c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e00013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e744964000029020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e00002d02000002340031020c4870616c6c65745f66696c655f73797374656d1474797065737c4d737052656a6563746564426174636853746f72616765526571756573747304045400000c012466696c655f6b6579733502018101426f756e6465645665633c284d65726b6c65486173683c543e2c2052656a656374656453746f7261676552657175657374526561736f6e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e2c3e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e744964000035020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013902045300000400410201185665633c543e0000390200000408343d02003d020c4870616c6c65745f66696c655f73797374656d1474797065737052656a656374656453746f7261676552657175657374526561736f6e00010c58526561636865644d6178696d756d4361706163697479000000505265636569766564496e76616c696450726f6f6600010034496e7465726e616c4572726f7200020000410200000239020045020c4870616c6c65745f66696c655f73797374656d147479706573744d73704661696c6564426174636853746f72616765526571756573747304045400000c012466696c655f6b6579734902014101426f756e6465645665633c284d65726b6c65486173683c543e2c2044697370617463684572726f72292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e744964000049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400510201185665633c543e00004d020000040834680051020000024d0200550200000221020059020c4870616c6c65745f66696c655f73797374656d147479706573584569746865724163636f756e7449644f724d73704964040454000108244163636f756e7449640400000130543a3a4163636f756e744964000000144d73704964040034014050726f76696465724964466f723c543e000100005d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f666102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765738902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e739d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657461020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6665020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66736d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000065020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573690201305665633c5665633c75383e3e0000690200000238006d02042042547265654d617008044b01340456017102000400810200000071020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66750201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000075020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461790201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6665020130436f6d7061637450726f6f660000790208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e747d02015446696e6765727072696e743c485f4c454e4754483e00007d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000081020000028502008502000004083471020089020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d02045300000400990201185665633c543e00008d020000040834910200910204184f7074696f6e0404540195020108104e6f6e6500000010536f6d65040095020000010000950208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000099020000028d02009d02000002a10200a1020000040834950200a5020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a9020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574ad020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73b90201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e000124617474726962757465d102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b9020000021000bd020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c1020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000c50204184f7074696f6e04045401c9020108104e6f6e6500000010536f6d650400c9020000010000c9020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6ecd0201385072696365446972656374696f6e0000cd020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000d1020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000d5020c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579d90201c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565f10201ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565f10201ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d902104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735052756e74696d65506172616d65746572734b65790001043452756e74696d65436f6e6669670400dd0201bd013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900000000dd02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696734506172616d65746572734b657900011064536c617368416d6f756e745065724d617846696c6553697a650400e1020164536c617368416d6f756e745065724d617846696c6553697a65000000585374616b65546f4368616c6c656e6765506572696f640400e50201585374616b65546f4368616c6c656e6765506572696f6400010064436865636b706f696e744368616c6c656e6765506572696f640400e9020164436865636b706f696e744368616c6c656e6765506572696f64000200484d696e4368616c6c656e6765506572696f640400ed0201484d696e4368616c6c656e6765506572696f6400030000e102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764536c617368416d6f756e745065724d617846696c6553697a6500000000e502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967585374616b65546f4368616c6c656e6765506572696f6400000000e902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764436865636b706f696e744368616c6c656e6765506572696f6400000000ed02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d696e4368616c6c656e6765506572696f6400000000f10204184f7074696f6e04045401f5020108104e6f6e6500000010536f6d650400f5020000010000f502104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735852756e74696d65506172616d657465727356616c75650001043452756e74696d65436f6e6669670400f90201c5013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c756500000000f902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669673c506172616d657465727356616c756500011064536c617368416d6f756e745065724d617846696c6553697a65040018011c42616c616e6365000000585374616b65546f4368616c6c656e6765506572696f64040018011c42616c616e636500010064436865636b706f696e744368616c6c656e6765506572696f64040010012c426c6f636b4e756d626572000200484d696e4368616c6c656e6765506572696f64040010012c426c6f636b4e756d62657200030000fd0208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000103000002050300050300000408101000090308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d650d03016473705f72756e74696d653a3a52756e74696d65537472696e6700000d030000050200110308306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000015030c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73190301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973690201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19030000021d03001d030000040838380021030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373250301845065724469737061746368436c6173733c57656967687473506572436c6173733e000025030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454012903000c01186e6f726d616c290301045400012c6f7065726174696f6e616c29030104540001246d616e6461746f72792903010454000029030c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e7369632d0301384f7074696f6e3c5765696768743e0001246d61785f746f74616c2d0301384f7074696f6e3c5765696768743e00012072657365727665642d0301384f7074696f6e3c5765696768743e00002d0304184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000031030c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178350301545065724469737061746368436c6173733c7533323e000035030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400003903082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400003d03082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d650d03013452756e74696d65537472696e67000124696d706c5f6e616d650d03013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069734103011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800004103040c436f7704045401450300040045030000004503000002490300490300000408290110004d03000005040051030c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574550300000259030059030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e6477696474685d0301345573656442616e647769647468000138706172615f686561645f68617368710301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c7503018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00005d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e676103018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e00006103042042547265654d617008044b01e9010456016503000400690300000065030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c753332000069030000026d03006d0300000408e901650300710304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000750304184f7074696f6e0404540179030108104e6f6e6500000010536f6d6504007903000001000079030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f4168656164000100007d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e6477696474685d0301345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c7503018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000081030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616485030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000085030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000091030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465739503014442547265655365743c5665633c75383e3e00009503042042547265655365740404540138000400690200000099030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974799d03018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73a10301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73a10301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00009d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000a103000002a50300a50300000408e901a90300a9030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164710301304f7074696f6e3c486173683e0000ad030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73b10301484173796e634261636b696e67506172616d730000b103104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000b503089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c6179486173680000b903042042547265654d617008044b01e901045601b503000400bd03000000bd03000002c10300c10300000408e901b50300c503000002c90300c9030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e0000cd030c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000d1030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f6461746104011064617461d503015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed503089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174618103015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174659103015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d65737361676573d903016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573e10301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000d903000002dd0300dd030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000e103042042547265654d617008044b01e901045601e503000400ed03000000e503000002e90300e9030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e0000ed03000002f10300f10300000408e901e50300f5030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540105040453000004000d0401185665633c543e000005040c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e730904011c526561736f6e73000009040c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200000d0400000205040011040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011504045300000400190401185665633c543e000015040c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000019040000021504001d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012104045300000400310401185665633c543e000021040c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640125041c42616c616e63650118000801086964250401084964000118616d6f756e7418011c42616c616e636500002504084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f76696465727304002904019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d7304002d04018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c000029040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f736974000100002d040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000310400000221040035040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540139040453000004003d0401185665633c543e000039040c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e636500003d0400000239040041040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374450401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365450401504163636f756e7449644c6f6f6b75704f663c543e00011064657374450401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374450401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374450401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f450401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f450401504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e4d04014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45040c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400490401304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000490400000698004d040c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000051040c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5504086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000059040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c5d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c5d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577450401504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f450401504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c5d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d04084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c0001501853797374656d0400150301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400d10301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400f90301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400fd0301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400410401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400590401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400610401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400650401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400710401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400750401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400110501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400150501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f7669646572730400190501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d04001d0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400510501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400550501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d730400590501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e66747304005d0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400650501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320028506172616d65746572730400c10501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e0033000061040c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579736904011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6904084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b6579730000040110617572616d0401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300006d04104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000071040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676579040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765dd0401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f7479706509050144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f69640d050154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f7479706509050144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737479040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400a904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736589040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473990401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473990401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000e003445786368616e6765417373657408011067697665990401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473990401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473990401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473990401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974a504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c7404008d0401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e000300008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d65040091040000010000910400000408109504009504100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900009904100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c6404009d04013857696c644d756c74694173736574000100009d04100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756ea104013c57696c6446756e676962696c69747900010000a104100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000a5040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c75363400010000a9040c0c78636d0876330c58636d041043616c6c00000400ad0401585665633c496e737472756374696f6e3c43616c6c3e3e0000ad04000002b10400b1040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b5040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572c90401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400cd0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473d10401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473d10401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e000e003445786368616e676541737365740c011067697665d10401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473d10401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473d10401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fcd0401445175657279526573706f6e7365496e666f000118617373657473d10401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400a904012458636d3c43616c6c3e0015002c536574417070656e6469780400a904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400c90401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fcd0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400cd0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696ec90401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000b5040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400b9040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000b9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd04045300000400c50401185665633c543e0000bd040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d65c1040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65c1040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c7533320000c1040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c504000002bd0400c90404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd010000010000cd040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000d104100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c640400d504013857696c644d756c7469417373657400010000d504100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756ed904013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756ed904013c57696c6446756e676962696c697479000114636f756e74cc010c75333200030000d904100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000dd04080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856320400e104015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400f104015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400fd04015076343a3a58636d3c52756e74696d6543616c6c3e00040000e1040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400e50401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000e504000002e90400e9040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736589040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6ced040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c0118617373657473990401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473990401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000e003445786368616e6765417373657408011067697665990401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473990401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473990401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e000118617373657473990401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974a504012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400e104014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e6469780400e104014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b0000ed040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000f1040c0c78636d0876330c58636d041043616c6c00000400f50401585665633c496e737472756374696f6e3c43616c6c3e3e0000f504000002f90400f9040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b5040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572c90401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ced04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400cd0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473d10401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473d10401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e000e003445786368616e676541737365740c011067697665d10401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473d10401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473d10401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fcd0401445175657279526573706f6e7365496e666f000118617373657473d10401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400f104012458636d3c43616c6c3e0015002c536574417070656e6469780400f104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400c90401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fcd0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400cd0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636da904011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696ec90401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000fd040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400010501585665633c496e737472756374696f6e3c43616c6c3e3e0000010500000205050005050c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ced04014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400fd04012458636d3c43616c6c3e0015002c536574417070656e6469780400fd04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00000905105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e000300000d05080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a417373657449640004000011050c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15050c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19050c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c65741d050c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365210501644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642eb46d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b65747304016066696c655f6b65795f726573706f6e7365735f696e7075742505016046696c654b6579526573706f6e736573496e7075743c543e0008244901557365642062792061204d535020746f20616363657074206f72206465636c696e652073746f7261676520726571756573747320696e20626174636865732c2067726f75706564206279206275636b65742e00d9015468697320666f6c6c6f7773206120626573742d6566666f72742073747261746567792c206d65616e696e67207468617420616c6c2066696c65206b6579732077696c6c2062652070726f63657373656420616e64206465636c6172656420746f2068617665207375636365737366756c6c79206265590161636365707465642c2072656a6563746564206f722068617665206661696c656420746f2062652070726f63657373656420696e2074686520726573756c7473206f6620746865206576656e7420656d69747465642e00f501546865204d53502068617320746f2070726f7669646520612066696c652070726f6f6620666f7220616c6c207468652066696c65206b657973207468617420617265206265696e6720616363657074656420616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c65206b6579739501696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652066696c652070726f6f667320666f72207468652066696c65206b657973206973206e656365737361727920746f2076657269667920746861748501746865204d53502061637475616c6c7920686173207468652066696c65732c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f66733905013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f664d0501584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21050c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a65637465640001000025050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012905045300000400490501185665633c543e0000290500000408342d05002d050c4870616c6c65745f66696c655f73797374656d147479706573644d737053746f7261676552657175657374526573706f6e73650404540000080118616363657074310501ac4f7074696f6e3c416363657074656453746f7261676552657175657374506172616d65746572733c543e3e00011872656a656374450501a5014f7074696f6e3c426f756e6465645665633c284d65726b6c65486173683c543e2c2052656a656374656453746f7261676552657175657374526561736f6e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e2c3e2c3e0000310504184f7074696f6e0404540135050108104e6f6e6500000010536f6d6504003505000001000035050c4870616c6c65745f66696c655f73797374656d14747970657380416363657074656453746f7261676552657175657374506172616d6574657273040454000008015066696c655f6b6579735f616e645f70726f6f66733905013901426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000039050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d05045300000400410501185665633c543e00003d05000004083475020041050000023d0500450504184f7074696f6e0404540135020108104e6f6e6500000010536f6d6504003502000001000049050000022905004d0504184f7074696f6e0404540165020108104e6f6e6500000010536f6d6504006502000001000051050c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f666102012050726f6f663c543e00012070726f7669646572710301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55050c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59050c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c65745d050c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74450401684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578610501684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578610501684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e610504184f7074696f6e04045401b5020108104e6f6e6500000010536f6d650400b502000001000065050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e450401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696769050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572450401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696769050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573738905013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f450401504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f646174618d0501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f450401504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967950501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374450401504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73b90201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e67736d050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572450401504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572990501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e990501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572990501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572450401504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e66696769050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573739d05017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e677375050105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963657d05015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572990501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073a105019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461ad050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265b1050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c011064617461bd05016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265b1050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e69050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e67736d050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773750501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e00006d050c2c70616c6c65745f6e66747314747970657320426974466c616773040454017105000400300144436f6c6c656374696f6e53657474696e67000071050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f73697452657175697265640010000075050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065790501584d696e74547970653c436f6c6c656374696f6e49643e00011470726963657d0501344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773810501304974656d53657474696e6773000079050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e4964000200007d0504184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000081050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401850500040030012c4974656d53657474696e67000085050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000089050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c75333200008d0504184f7074696f6e0404540191050108104e6f6e6500000010536f6d6504009105000001000091050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f70726963657d05013c4f7074696f6e3c42616c616e63653e000095050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773810501304974656d53657474696e67730000990504184f7074696f6e0404540145040108104e6f6e6500000010536f6d650400450400000100009d050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000a1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a505045300000400a90501185665633c543e0000a5050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000a905000002a50500ad050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465731903015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f70726963657d05013c4f7074696f6e3c42616c616e63653e0000b105082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b5050148656432353531393a3a5369676e61747572650000001c537232353531390400b5050148737232353531393a3a5369676e61747572650001001445636473610400b905014065636473613a3a5369676e617475726500020000b505000003400000000800b905000003410000000800bd050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465731903015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365c10201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e650000c1050c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c7565c5050150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec505104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d734452756e74696d65506172616d65746572730001043452756e74696d65436f6e6669670400c90501a864796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d657465727300000000c905184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696728506172616d657465727300011064536c617368416d6f756e745065724d617846696c6553697a650800e1020164536c617368416d6f756e745065724d617846696c6553697a6500007d05013c4f7074696f6e3c42616c616e63653e000000585374616b65546f4368616c6c656e6765506572696f640800e50201585374616b65546f4368616c6c656e6765506572696f6400007d05013c4f7074696f6e3c42616c616e63653e00010064436865636b706f696e744368616c6c656e6765506572696f640800e9020164436865636b706f696e744368616c6c656e6765506572696f6400001102014c4f7074696f6e3c426c6f636b4e756d6265723e000200484d696e4368616c6c656e6765506572696f640800ed0201484d696e4368616c6c656e6765506572696f6400001102014c4f7074696f6e3c426c6f636b4e756d6265723e00030000cd050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ed1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e0000d5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d905045300000400dd0501185665633c543e0000d9050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000dd05000002d90500e1050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee505000002e90500e9050000040800690400ed0500000408f1053800f1050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d0000f5050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742ef9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d04045300000400fd0501185665633c543e0000fd050000026d04000106084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400000506000004080106100009060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004000d06012c42547265655365743c543e00000d060420425472656553657404045401e90100040011060000001106000002e9010015060000021906001906086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e901011850617261496400011473746174651d0601344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e6465784d03010c7531360001286c6173745f696e6465784d03010c75313600001d06086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000210600000408e9014d03002506086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000029060c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f7204045400010c384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2d060c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572310601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679350601404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e73653d06014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000310604184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000350604184f7074696f6e0404540139060108104e6f6e6500000010536f6d650400390600000100003906000004080808003d06080c78636d4456657273696f6e6564526573706f6e736500010c08563204008904013076323a3a526573706f6e73650002000856330400b504013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e73650004000041060000040810d9010045060000040c3028100049060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400510601185665633c543e00004d0600000408d901100051060000024d060055060c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e745461726765747304005906013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000590604184f7074696f6e04045401380108104e6f6e6500000010536f6d6504003800000100005d060000040c10000d050061060c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273650601d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e000065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540169060453000004006d0601185665633c543e00006906000004089818006d0600000269060071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017506045300000400790601185665633c543e000075060000040818d9010079060000027506007d060c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8106085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273850601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000850604184f7074696f6e0404540189060108104e6f6e6500000010536f6d650400890600000100008906085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e00008d0600000408e50110009106085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a65000110686561709506019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e000095060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000099060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0600000408a1061000a1060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400a50601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400a90601584d61696e53746f7261676550726f76696465723c543e00010000a5060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e0000a9060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473ad0601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000ad060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b106045300000400b50601185665633c543e0000b1060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000b506000002b10600b9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e0000bd060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67c1060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370c50601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073cd0601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000c50604184f7074696f6e04045401c9060108104e6f6e6500000010536f6d650400c9060000010000c90600000408342000cd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e0000d10600000408343400d5060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c0000d9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e0000dd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e106045300000400e50601185665633c543e0000e10600000408003400e506000002e10600e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d106045300000400ed0601185665633c543e0000ed06000002d10600f1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d106045300000400ed0601185665633c543e0000f50600000408103000f9060c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e7449640000fd060c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001f47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e54546f6f4d616e794261746368526573706f6e73657300390490546f6f206d616e7920626174636820726573706f6e73657320746f2070726f636573732e78546f6f4d616e7953746f7261676552657175657374526573706f6e736573003a048c546f6f206d616e792073746f72616765207265717565737420726573706f6e7365732e68496e76616c69644275636b6574496446696c654b657950616972003b049c4275636b657420696420616e642066696c65206b6579207061697220697320696e76616c69642e84496e636f6e73697374656e7453746174654b6579416c7265616479457869737473003c04c44b657920616c72656164792065786973747320696e206d617070696e67207768656e2069742073686f756c64206e6f742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e01070000040810340005070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e000009070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d02045300000400990201185665633c543e00000d070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004001107012c42547265655365743c543e000011070420425472656553657404045401340004002d0200000015070c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000019070c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d070000040834100021070000040834000025070c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000029070c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00002d070c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e000031070c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6735070c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742e39070c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c75333200003d070000040c0010100041070000040800100045070000040810000049070c2c70616c6c65745f6e66747314747970657320426974466c616773040454014d07000400080138436f6c6c656374696f6e526f6c6500004d070c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e0004000051070c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401550724417070726f76616c73015907000c01146f776e65720001244163636f756e744964000124617070726f76616c7359070124417070726f76616c7300011c6465706f7369745507011c4465706f736974000055070c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e6365000059070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b010004560111020453000004005d07013842547265654d61703c4b2c20563e00005d07042042547265654d617008044b01000456011102000400610700000061070000026507006507000004080011020069070c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f73697400011064617461b502016c426f756e6465645665633c75382c20537472696e674c696d69743e00006d070c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f7369740171072c537472696e674c696d6974000008011c6465706f7369747107011c4465706f73697400011064617461b502016c426f756e6465645665633c75382c20537472696e674c696d69743e000071070c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000750700000410101102c102bd0200790700000408b5027d07007d070c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000810700000408189c0085070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004008907012c42547265655365743c543e00008907042042547265655365740404540100000400a40000008d070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01c90220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365c50201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e65000091070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401950700040030013450616c6c657446656174757265000095070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c730004001453776170730008000099070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d07102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730145041043616c6c015d04245369676e617475726501b10514457874726101a10700040038000000a10700000428a507a907ad07b107b507bd07c107c507c907cd0700a50710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000a90710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000ad0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000b10710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000b50710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400b907010c4572610000b907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000bd0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000c10710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000c507086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000c90708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d04045400000000cd0708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465d10701104d6f64650000d10708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000d507084c73746f726167655f6875625f72756e74696d651c52756e74696d6500000000601853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023401030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000090304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000fd02040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500001103040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01150301581830426c6f636b57656967687473210389010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746831033000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687439034040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3d0319044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669784d03082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e015103003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e74010055030400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e7400007d0304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000810304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100890304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401007503040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600009103040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000990304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000ad030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100b50380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100b903040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100c50304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100690204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301006902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100cd0340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e01d103017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e01f503012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01f9030004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e90110640000000001fd03000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402000104040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200110404000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402001d040400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020035040400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e014104018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e0151040a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100cd0340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100550404000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01590401900001cd050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100d10504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c6973740100d5050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01610401a00001e105151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100e5050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100b9020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050069040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405ed0500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01650401a80001f505161041757261011041757261082c417574686f7269746965730100f9050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010001062000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f7269746965730100f905040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000050604000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e646564010009060400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010015060400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205210638040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e90138040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701002506302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901cd0340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01710401ac044c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e0129061e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d30305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c5175657269657300010402302d060400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502410610040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502410630040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f746966795461726765747300010805024106450604000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100490604000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e000055060400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c0502025d066106040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c657300010402007106040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01750401b000017d061f2843756d756c757358636d0001110501dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e501810674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805058d0691060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01150501e10110204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e34536572766963655765696768742d032c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d6178536572766963655765696768742d030400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e019906212450726f766964657273012450726f76696465727330385369676e5570526571756573747300010402009d06040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f7669646572730001040234a9060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b6574730001040234b106040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234b90604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f7669646572730001040234a5060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e01190501f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f736974184000407a10f35a0000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f736974184000407a10f35a0000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a6518400040e59c30120000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e01bd06282846696c6553797374656d012846696c6553797374656d443c53746f7261676552657175657374730001040234c1060400004853746f7261676552657175657374427370730001080202d106d5060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202d10698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e730101040210d906040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e730101040210dd06040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e730101040210e906040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200f10604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e6752657175657374730001080202d106f506040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b657452657175657374730001080202d106f906040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202d10698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e011d05010d0238604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e844d617842617463684d7370526573706f6e6453746f72616765526571756573747310100a000000040502204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520726573706f6e64656420746f206174206f6e6365207768656e2063616c6c696e6720606d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b657473602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e01fd06293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210890204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e6573000108020201079804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501000507040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501000907040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b7300010402100d0704001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e015105015d023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f641010b80b000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f64184000009e1869d0290400000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f1507100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0119072a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e65737300001d070400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e65737300001d070400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01550501a50200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802022107250704002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802022107290704002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f01010402342d0750000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e01590501a90208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e0131072c284275636b65744e66747300015d0501ad02000135072d104e66747301104e6674733c28436f6c6c656374696f6e00010402103907040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c0202023d0798040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e74000108020241079804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f66000108020245074907040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d000108020205035107040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210690704000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f66000108020205036d0704000454204d65746164617461206f6620616e206974656d2e244174747269627574650001100202020275077907040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f66000108020205038107040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802020503850704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f66000108020205038d070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f66000104021069050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202050395050400044c20436f6e666967206f6620616e206974656d2e01650501b1023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573910720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e0199073228506172616d65746572730128506172616d65746572730428506172616d657465727300010402d902f5020400044c2053746f72656420706172616d65746572732e01c10501d5020000339d07042848436865636b4e6f6e5a65726f53656e646572a5079840436865636b5370656356657273696f6ea9071038436865636b547856657273696f6ead071030436865636b47656e65736973b1073438436865636b4d6f7274616c697479b5073428436865636b4e6f6e6365bd07982c436865636b576569676874c10798604368617267655472616e73616374696f6e5061796d656e74c507985053746f726167655765696768745265636c61696dc9079844436865636b4d6574616461746148617368cd0780d507","id":"1"} ->>>>>>> main +{"jsonrpc":"2.0","result":"0x6d6574610ee507000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365fd02011450686173650001146576656e7454010445000118746f706963732d0201185665633c543e000054084c73746f726167655f6875625f72756e74696d653052756e74696d654576656e7400014c1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04007c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e0001002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b00105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a001a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a8015470616c6c65745f73657373696f6e3a3a4576656e740016002458636d7051756575650400ac01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b0016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400dd01018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e002000304d65737361676551756575650400e101019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0021002450726f7669646572730400f10101a070616c6c65745f73746f726167655f70726f7669646572733a3a4576656e743c52756e74696d653e0028002846696c6553797374656d04000d02018870616c6c65745f66696c655f73797374656d3a3a4576656e743c52756e74696d653e0029003050726f6f66734465616c657204005d02019070616c6c65745f70726f6f66735f6465616c65723a3a4576656e743c52756e74696d653e002a002852616e646f6d6e6573730400a502018470616c6c65745f72616e646f6d6e6573733a3a4576656e743c52756e74696d653e002b00385061796d656e7453747265616d730400a902019870616c6c65745f7061796d656e745f73747265616d733a3a4576656e743c52756e74696d653e002c00284275636b65744e6674730400ad02018870616c6c65745f6275636b65745f6e6674733a3a4576656e743c52756e74696d653e002d00104e6674730400b102016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00320028506172616d65746572730400d502018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e00330000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736880013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748004184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c649c01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c749401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940418526573756c740804540198044501680108084f6b040098000000000c45727204006800000100009800000400009c04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000a00c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a401445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40000020000a80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d65b4015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ebc01204c6f636174696f6e00012c64657374696e6174696f6ebc01204c6f636174696f6e00011c6d6573736167650501011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736531010120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e550101404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ebc01204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ebc01204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ebc01204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72b8012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed901014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ebc01204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572bc01204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572550101404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ebc01204c6f636174696f6e000110636f7374110101184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67bc01204c6f636174696f6e0001106665657311010118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ebc01204c6f636174696f6e0001186173736574737501013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b801144572726f72000100144572726f720401146572726f72b801144572726f7200020000b8100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000bc102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c001244a756e6374696f6e730000c0102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c401484172633c5b4a756e6374696f6e3b20315d3e0001000858320400e801484172633c5b4a756e6374696f6e3b20325d3e0002000858330400ec01484172633c5b4a756e6374696f6e3b20335d3e0003000858340400f001484172633c5b4a756e6374696f6e3b20345d3e0004000858350400f401484172633c5b4a756e6374696f6e3b20355d3e0005000858360400f801484172633c5b4a756e6374696f6e3b20365d3e0006000858370400fc01484172633c5b4a756e6374696f6e3b20375d3e0007000858380400010101484172633c5b4a756e6374696f6e3b20385d3e00080000c400000301000000c800c8102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd001444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400d401244e6574776f726b496400090000cc0000061000d004184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000d4102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d8000003140000000800dc0000061800e0100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000e4100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000e800000302000000c800ec00000303000000c800f000000304000000c800f400000305000000c800f800000306000000c800fc00000307000000c800010100000308000000c80005010c2c73746167696e675f78636d0876340c58636d041043616c6c00000400090101585665633c496e737472756374696f6e3c43616c6c3e3e000009010000020d01000d010c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000501012458636d3c43616c6c3e0015002c536574417070656e64697804000501012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00001101102c73746167696e675f78636d0876341461737365741841737365747300000400150101285665633c41737365743e000015010000021901001901102c73746167696e675f78636d087634146173736574144173736574000008010869641d01011c4173736574496400010c66756e2101012c46756e676962696c69747900001d01102c73746167696e675f78636d0876341461737365741c4173736574496400000400bc01204c6f636174696f6e00002101102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400250101344173736574496e7374616e6365000100002501102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000029010000030800000008002d0100000310000000080031010c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400110101184173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04003d010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000350104184f7074696f6e0404540139010108104e6f6e6500000010536f6d6504003901000001000039010000040810b8003d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014101045300000400490101185665633c543e000041010c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6545010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c753332000045010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000049010000024101004d010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204005101018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000051010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550104184f7074696f6e04045401bc0108104e6f6e6500000010536f6d650400bc000001000059010c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300005d010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000061010c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebc01204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006501102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400110101184173736574730000001057696c6404006901012457696c644173736574000100006901102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c010869641d01011c4173736574496400010c66756e6d01013c57696c6446756e676962696c697479000114636f756e74cc010c753332000300006d01102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000071010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d697465640400280118576569676874000100007501080c78636d3c56657273696f6e656441737365747300010c08563204007901013c76323a3a4d756c74694173736574730001000856330400ad01013c76333a3a4d756c746941737365747300030008563404001101012876343a3a417373657473000400007901100c78636d087632286d756c746961737365742c4d756c7469417373657473000004007d01013c5665633c4d756c746941737365743e00007d010000028101008101100c78636d087632286d756c74696173736574284d756c74694173736574000008010869648501011c4173736574496400010c66756ea501012c46756e676962696c69747900008501100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400890101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e000100008901100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f728d0101244a756e6374696f6e7300008d01100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400910101204a756e6374696f6e0001000858320800910101204a756e6374696f6e0000910101204a756e6374696f6e0002000858330c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0003000858341000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0004000858351400910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0005000858361800910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0006000858371c00910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0007000858382000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e0000910101204a756e6374696f6e000800009101100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726b950101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b950101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b950101244e6574776f726b496400010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c69747908010869649d010118426f6479496400011070617274a1010120426f6479506172740008000095010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000099010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00009d010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400990101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400cc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000a1010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74cc010c753332000100204672616374696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dcc010c75333200011464656e6f6dcc010c75333200040000a501100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400a90101344173736574496e7374616e636500010000a901100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000ad01100c78636d087633286d756c746961737365742c4d756c746941737365747300000400b101013c5665633c4d756c746941737365743e0000b101000002b50100b501100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964b901011c4173736574496400010c66756ed101012c46756e676962696c6974790000b901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400bd0101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000bd01102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72c10101244a756e6374696f6e730000c101100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400c50101204a756e6374696f6e0001000858320800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0002000858330c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0003000858341000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0004000858351400c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0005000858361800c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0006000858371c00c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0007000858382000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e0000c50101204a756e6374696f6e00080000c501100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400cc010c7533320000002c4163636f756e744964333208011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bc90101444f7074696f6e3c4e6574776f726b49643e00010c6b6579d801205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400dc0110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e00118426f6479496400011070617274e40120426f6479506172740008003c476c6f62616c436f6e73656e7375730400cd0101244e6574776f726b496400090000c90104184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000cd01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000d101100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400dc0110753132380000002c4e6f6e46756e6769626c650400d50101344173736574496e7374616e636500010000d501100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400dc01107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804002901011c5b75383b20385d0003001c4172726179313604002d0101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204008901014476323a3a4d756c74694c6f636174696f6e0001000856330400bd01014476333a3a4d756c74694c6f636174696f6e0003000856340400bc013076343a3a4c6f636174696f6e00040000dd010c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b4011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1010c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72ed01014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee50101484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee50101484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e501085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400e901011850617261496400020000e9010c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000ed0110346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000f1010c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144576656e740404540001245c4d7370526571756573745369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000008b1014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574e50174686174204d53502773206163636f756e742069642c20697473206d756c74696164647265737365732c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e64206974732076616c75652070726f706f736974696f6e2e404d73705369676e55705375636365737314010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e000108b5014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574dd0174686174204d53502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20697473206d756c7469616464726573732c20616e64206974732076616c75652070726f706f736974696f6e2e5c427370526571756573745369676e5570537563636573730c010c77686f000130543a3a4163636f756e7449640001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000208b9014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f7669646572206861732072657175657374656420746f207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574890174686174204253502773206163636f756e742069642c20697473206d756c74696164647265737365732c20616e642074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652e404273705369676e55705375636365737310010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000120636170616369747930014853746f7261676544617461556e69743c543e000308bd014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f76696465722068617320636f6e6669726d656420697473207369676e207570207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574810174686174204253502773206163636f756e742069642c2074686520746f74616c20646174612069742063616e2073746f7265206163636f7264696e6720746f20697473207374616b652c20616e6420697473206d756c7469616464726573732e545369676e55705265717565737443616e63656c656404010c77686f000130543a3a4163636f756e7449640004087d014576656e7420656d6974746564207768656e2061207369676e207570207265717565737420686173206265656e2063616e63656c6564207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f7574d4746865206163636f756e74206964206f6620746865207573657220746861742063616e63656c65642074686520726571756573742e444d73705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00050889014576656e7420656d6974746564207768656e2061204d61696e2053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204d53502773206163636f756e742069642e444273705369676e4f66665375636365737308010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e00060891014576656e7420656d6974746564207768656e2061204261636b75702053746f726167652050726f766964657220686173207369676e6564206f6666207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75745874686174204253502773206163636f756e742069642e3c43617061636974794368616e67656414010c77686f000130543a3a4163636f756e74496400012c70726f76696465725f69640902015053746f7261676550726f766964657249643c543e0001306f6c645f636170616369747930014853746f7261676544617461556e69743c543e0001306e65775f636170616369747930014853746f7261676544617461556e69743c543e0001786e6578745f626c6f636b5f7768656e5f6368616e67655f616c6c6f776564100144426c6f636b4e756d626572466f723c543e00070865014576656e7420656d6974746564207768656e206120535020686173206368616e67656420697473206361706163697479207375636365737366756c6c792e2050726f766964657320696e666f726d6174696f6e2061626f75744901746861742053502773206163636f756e742069642c20697473206f6c6420746f74616c2064617461207468617420636f756c642073746f72652c20616e6420746865206e657720746f74616c20646174612e1c536c617368656408012c70726f76696465725f69643401244861736849643c543e000138616d6f756e745f736c617368656418013042616c616e63654f663c543e000804a84576656e7420656d6974746564207768656e20616e20535020686173206265656e20736c61736865642e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e0000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd01000002f9010001020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734056616c756550726f706f736974696f6e04045400000c01286964656e74696669657234013856616c756550726f7049643c543e000128646174615f6c696d697430014853746f7261676544617461556e69743c543e00012470726f746f636f6c73050201a4426f756e6465645665633c50726f746f636f6c733c543e2c204d617850726f746f636f6c733c543e3e000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f901045300000400fd0101185665633c543e000009020c6070616c6c65745f73746f726167655f70726f7669646572731474797065734453746f7261676550726f76696465724964040454000108544261636b757053746f7261676550726f766964657204003401684261636b757053746f7261676550726f766964657249643c543e0000004c4d61696e53746f7261676550726f766964657204003401604d61696e53746f7261676550726f766964657249643c543e000100000d020c4870616c6c65745f66696c655f73797374656d1870616c6c6574144576656e7404045400015c244e65774275636b657418010c77686f000130543a3a4163636f756e7449640001186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000004b04e6f74696669657320746861742061206e6577206275636b657420686173206265656e20637265617465642e4c4d6f76654275636b65745265717565737465640c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e000104cc4e6f74696669657320746861742061206275636b6574206973206265696e67206d6f76656420746f2061206e6577204d53502e504275636b6574507269766163795570646174656410010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964110201684f7074696f6e3c436f6c6c656374696f6e4964466f723c543e3e00011c70726976617465200110626f6f6c000204c84e6f74696669657320746861742061206275636b65742773207072697661637920686173206265656e20757064617465642e6c4e6577436f6c6c656374696f6e416e644173736f63696174696f6e0c010c77686f000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e000134636f6c6c656374696f6e5f6964100148436f6c6c656374696f6e4964466f723c543e00030435014e6f74696669657320746861742061206e657720636f6c6c656374696f6e20686173206265656e206372656174656420616e64206173736f63696174656420776974682061206275636b65742e444e657753746f72616765526571756573741c010c77686f000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000120706565725f696473f5010128506565724964733c543e000404e44e6f74696669657320746861742061206e65772066696c6520686173206265656e2072657175657374656420746f2062652073746f7265642e744d7370526573706f6e646564546f53746f72616765526571756573747304011c726573756c7473190201884d7370526573706f6e6453746f726167655265717565737473526573756c743c543e000504e04e6f74696669657320746861742061204d53502068617320726573706f6e64656420746f2073746f7261676520726571756573742873292e504163636570746564427370566f6c756e746565721c01186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001386d756c7469616464726573736573f50101444d756c74694164647265737365733c543e0001146f776e6572000130543a3a4163636f756e74496400011073697a6530013853746f72616765446174613c543e000604f04e6f746966696573207468617420612042535020686173206265656e20616363657074656420746f2073746f7265206120676976656e2066696c652e4c427370436f6e6669726d656453746f72696e6710010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00012466696c655f6b657973290201f0426f756e6465645665633c4d65726b6c65486173683c543e2c20543a3a4d61784261746368436f6e6669726d53746f7261676552657175657374733e0001206e65775f726f6f743401344d65726b6c65486173683c543e000704c04e6f746966696573207468617420612042535020636f6e6669726d65642073746f72696e6720612066696c652873292e5c53746f726167655265717565737446756c66696c6c656404012066696c655f6b65793401344d65726b6c65486173683c543e00080409014e6f746966696573207468617420612073746f72616765207265717565737420666f7220612066696c65206b657920686173206265656e2066756c66696c6c65642e5453746f72616765526571756573744578706972656404012066696c655f6b65793401344d65726b6c65486173683c543e000904b44e6f746966696573207468652065787069726174696f6e206f6620612073746f7261676520726571756573742e5453746f72616765526571756573745265766f6b656404012066696c655f6b65793401344d65726b6c65486173683c543e000a0439014e6f746966696573207468617420612073746f72616765207265717565737420686173206265656e207265766f6b65642062792074686520757365722077686f20696e697469617465642069742e64427370526571756573746564546f53746f7053746f72696e671001186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e000b0401014e6f746966696573207468617420612042535020686173206f70656e65642061207265717565737420746f2073746f702073746f72696e6720612066696c652e60427370436f6e6669726d53746f7070656453746f72696e670c01186273705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000c04bc4e6f7469666965732074686174206120425350206861732073746f707065642073746f72696e6720612066696c652e985072696f726974794368616c6c656e6765466f7246696c6544656c6574696f6e517565756564080118697373756572590201644569746865724163636f756e7449644f724d737049643c543e00012066696c655f6b65793401344d65726b6c65486173683c543e000d0451014e6f746966696573207468617420612066696c65206b657920686173206265656e2071756575656420666f722061207072696f72697479206368616c6c656e676520666f722066696c652064656c6574696f6e2e68537053746f7053746f72696e67496e736f6c76656e745573657214011473705f696434014050726f76696465724964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e7449640001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001206e65775f726f6f743401344d65726b6c65486173683c543e000e0455014e6f74696669657320746861742061205350206861732073746f707065642073746f72696e6720612066696c65206265636175736520697473206f776e657220686173206265636f6d6520696e736f6c76656e742e784661696c6564546f51756575655072696f726974794368616c6c656e676508011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e000f0445014e6f74696669657320746861742061207072696f72697479206368616c6c656e6765206661696c656420746f2062652071756575656420666f722070656e64696e672066696c652064656c6574696f6e2e4c46696c6544656c6574696f6e5265717565737414011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c001004944e6f746966696573207468617420612066696c652077696c6c2062652064656c657465642eac50726f6f665375626d6974746564466f7250656e64696e6746696c6544656c6574696f6e526571756573741401186d73705f696434014050726f76696465724964466f723c543e00011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e00014870726f6f665f6f665f696e636c7573696f6e200110626f6f6c00110435014e6f746966696573207468617420612070726f6f6620686173206265656e207375626d697474656420666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742e704273704368616c6c656e67654379636c65496e697469616c6973656408010c77686f000130543a3a4163636f756e7449640001186273705f696434014050726f76696465724964466f723c543e00120845014e6f74696669657320746861742061204253502773206368616c6c656e6765206379636c6520686173206265656e20696e697469616c697365642c20616464696e67207468652066697273742066696c65ac6b657928732920746f20746865204253502773204d65726b6c6520506174726963696120466f726573742e604d6f76654275636b657452657175657374457870697265640801186d73705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e001304c04e6f74696669657320746861742061206d6f7665206275636b657420726571756573742068617320657870697265642e484d6f76654275636b657441636365707465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e001404cc4e6f74696669657320746861742061206275636b657420686173206265656e206d6f76656420746f2061206e6577204d53502e484d6f76654275636b657452656a65637465640801246275636b65745f69643401384275636b65744964466f723c543e0001186d73705f696434014050726f76696465724964466f723c543e00150405014e6f74696669657320746861742061206275636b6574206d6f7665207265717565737420686173206265656e2072656a656374656420627920746865204d53502e844461746153657276657252656769737465726564466f724d6f76654275636b65740801186273705f696434014050726f76696465724964466f723c543e0001246275636b65745f69643401384275636b65744964466f723c543e00160429014e6f7469666965732074686174206120646174612073657276657220686173206265656e207265676973746572656420666f722061206d6f7665206275636b657420726571756573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574110204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000015020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019020c4870616c6c65745f66696c655f73797374656d1474797065737c4d7370526573706f6e6453746f726167655265717565737473526573756c7404045400000801186d73705f696434014050726f76696465724964466f723c543e000124726573706f6e7365731d02010d01426f756e6465645665633c4261746368526573706f6e7365733c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e00001d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012102045300000400550201185665633c543e000021020c4870616c6c65745f66696c655f73797374656d147479706573384261746368526573706f6e73657304045400010c2041636365707465640400250201884d73704163636570746564426174636853746f7261676552657175657374733c543e0000002052656a65637465640400310201884d737052656a6563746564426174636853746f7261676552657175657374733c543e000100184661696c65640400450201804d73704661696c6564426174636853746f7261676552657175657374733c543e0002000025020c4870616c6c65745f66696c655f73797374656d1474797065737c4d73704163636570746564426174636853746f726167655265717565737473040454000010012466696c655f6b657973290201fc426f756e6465645665633c4d65726b6c65486173683c543e2c204d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e00013c6e65775f6275636b65745f726f6f743401344d65726b6c65486173683c543e0001146f776e6572000130543a3a4163636f756e744964000029020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e00002d02000002340031020c4870616c6c65745f66696c655f73797374656d1474797065737c4d737052656a6563746564426174636853746f72616765526571756573747304045400000c012466696c655f6b6579733502018101426f756e6465645665633c284d65726b6c65486173683c543e2c2052656a656374656453746f7261676552657175657374526561736f6e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e2c3e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e744964000035020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013902045300000400410201185665633c543e0000390200000408343d02003d020c4870616c6c65745f66696c655f73797374656d1474797065737052656a656374656453746f7261676552657175657374526561736f6e00010c58526561636865644d6178696d756d4361706163697479000000505265636569766564496e76616c696450726f6f6600010034496e7465726e616c4572726f7200020000410200000239020045020c4870616c6c65745f66696c655f73797374656d147479706573744d73704661696c6564426174636853746f72616765526571756573747304045400000c012466696c655f6b6579734902014101426f756e6465645665633c284d65726b6c65486173683c543e2c2044697370617463684572726f72292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001246275636b65745f69643401384275636b65744964466f723c543e0001146f776e6572000130543a3a4163636f756e744964000049020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400510201185665633c543e00004d020000040834680051020000024d0200550200000221020059020c4870616c6c65745f66696c655f73797374656d147479706573584569746865724163636f756e7449644f724d73704964040454000108244163636f756e7449640400000130543a3a4163636f756e744964000000144d73704964040034014050726f76696465724964466f723c543e000100005d020c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144576656e74040454000124304e65774368616c6c656e676508010c77686f00013c4163636f756e744964466f723c543e0001386b65795f6368616c6c656e6765643401244b6579466f723c543e0000048441206d616e75616c206368616c6c656e676520776173207375626d69747465642e3450726f6f66416363657074656408012070726f766964657234014050726f76696465724964466f723c543e00011470726f6f666102012050726f6f663c543e00010454412070726f6f66207761732061636365707465642e404e65774368616c6c656e6765536565640801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001107365656434015852616e646f6d6e6573734f7574707574466f723c543e0002048c41206e6577206368616c6c656e67652073656564207761732067656e6572617465642e584e6577436865636b706f696e744368616c6c656e67650801446368616c6c656e6765735f7469636b6572100144426c6f636b4e756d626572466f723c543e0001286368616c6c656e6765738902015d01426f756e6465645665633c284b6579466f723c543e2c204f7074696f6e3c5472696552656d6f76654d75746174696f6e3e292c0a4d6178437573746f6d4368616c6c656e676573506572426c6f636b466f723c543e2c3e000304a441206e657720636865636b706f696e74206368616c6c656e6765207761732067656e6572617465642e44536c61736861626c6550726f766964657208012070726f766964657234014050726f76696465724964466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e0004045901412070726f766964657220776173206d61726b656420617320736c61736861626c6520616e64207468656972206368616c6c656e676520646561646c696e652077617320666f72636566756c6c79207075736865642e704e6f5265636f72644f664c6173745375626d697474656450726f6f6604012070726f766964657234014050726f76696465724964466f723c543e000504f84e6f207265636f7264206f6620746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f722e704e65774368616c6c656e67654379636c65496e697469616c6973656410013063757272656e745f7469636b100144426c6f636b4e756d626572466f723c543e00015c6e6578745f6368616c6c656e67655f646561646c696e65100144426c6f636b4e756d626572466f723c543e00012070726f766964657234014050726f76696465724964466f723c543e0001586d617962655f70726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e000604b4412070726f76696465722773206368616c6c656e6765206379636c652077617320696e697469616c697365642e404d75746174696f6e734170706c6965640c012070726f766964657234014050726f76696465724964466f723c543e0001246d75746174696f6e739d0201905665633c284b6579466f723c543e2c205472696552656d6f76654d75746174696f6e293e0001206e65775f726f6f743401244b6579466f723c543e000704c84120736574206f66206d75746174696f6e7320686173206265656e206170706c69656420746f2074686520466f726573742e4c4368616c6c656e6765735469636b6572536574040118706175736564200110626f6f6c000804d4546865205b604368616c6c656e6765735469636b6572605d20686173206265656e20706175736564206f7220756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657461020c5070616c6c65745f70726f6f66735f6465616c65721474797065731450726f6f660404540000080130666f726573745f70726f6f6665020164466f72657374566572696669657250726f6f66466f723c543e0001286b65795f70726f6f66736d02018042547265654d61703c4b6579466f723c543e2c204b657950726f6f663c543e3e000065020c1c73705f747269653473746f726167655f70726f6f6630436f6d7061637450726f6f660000040134656e636f6465645f6e6f646573690201305665633c5665633c75383e3e0000690200000238006d02042042547265654d617008044b01340456017102000400810200000071020c5070616c6c65745f70726f6f66735f6465616c6572147479706573204b657950726f6f66040454000008011470726f6f66750201584b6579566572696669657250726f6f66466f723c543e00013c6368616c6c656e67655f636f756e7410010c753332000075020c547368705f66696c655f6b65795f76657269666965721474797065733046696c654b657950726f6f66000008013466696c655f6d65746164617461790201d846696c654d657461646174613c485f4c454e4754482c204348554e4b5f53495a452c2053495a455f544f5f4348414c4c454e4745533e00011470726f6f6665020130436f6d7061637450726f6f660000790208447368705f66696c655f6d657461646174613046696c654d6574616461746100001401146f776e657238011c5665633c75383e0001246275636b65745f696438011c5665633c75383e0001206c6f636174696f6e38011c5665633c75383e00012466696c655f73697a652c010c75363400012c66696e6765727072696e747d02015446696e6765727072696e743c485f4c454e4754483e00007d0208447368705f66696c655f6d657461646174612c46696e6765727072696e7400000400040138486173683c485f4c454e4754483e000081020000028502008502000004083471020089020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d02045300000400990201185665633c543e00008d020000040834910200910204184f7074696f6e0404540195020108104e6f6e6500000010536f6d65040095020000010000950208287368705f747261697473485472696552656d6f76654d75746174696f6e0000000099020000028d02009d02000002a10200a1020000040834950200a5020c4470616c6c65745f72616e646f6d6e6573731870616c6c6574144576656e74040454000104844e65774f6e6545706f636841676f52616e646f6d6e657373417661696c61626c650c013c72616e646f6d6e6573735f7365656434011c543a3a4861736800012866726f6d5f65706f636830010c75363400014476616c69645f756e74696c5f626c6f636b100144426c6f636b4e756d626572466f723c543e00000419014576656e7420656d6974746564207768656e2061206e65772072616e646f6d207365656420697320617661696c61626c652066726f6d207468652072656c617920636861696e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a9020c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144576656e7404045400012c744669786564526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001107261746518013042616c616e63654f663c543e000008e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f766964657220616e642055736572206f66207468652073747265616d54616e642069747320696e697469616c20726174652e744669786564526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e0001206e65775f7261746518013042616c616e63654f663c543e000108e5014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d7c616e6420746865206e65772072617465206f66207468652073747265616d2e744669786564526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000204e9014576656e7420656d6974746564207768656e20612066697865642d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e7c44796e616d6963526174655061796d656e7453747265616d437265617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000308ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320637265617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d80616e642074686520696e697469616c20616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d557064617465640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e00014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000408ed014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d20697320757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d70616e6420746865206e657720616d6f756e742070726f76696465642e7c44796e616d6963526174655061796d656e7453747265616d44656c65746564080130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000504f1014576656e7420656d6974746564207768656e20612064796e616d69632d72617465207061796d656e742073747265616d2069732072656d6f7665642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865205573657220616e642050726f7669646572206f66207468652073747265616d2e505061796d656e7453747265616d436861726765640c0130757365725f6163636f756e74000130543a3a4163636f756e74496400012c70726f76696465725f696434014050726f76696465724964466f723c543e000118616d6f756e7418013042616c616e63654f663c543e00060879014576656e7420656d6974746564207768656e2061207061796d656e7420697320636861726765642e2050726f766964657320696e666f726d6174696f6e2061626f757420746865207573657220746861742077617320636861726765642c19017468652050726f76696465722074686174207265636569766564207468652066756e64732c20616e642074686520616d6f756e7420746861742077617320636861726765642e644c61737443686172676561626c65496e666f557064617465640c012c70726f76696465725f696434014050726f76696465724964466f723c543e0001506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00016c6c6173745f63686172676561626c655f70726963655f696e64657818013042616c616e63654f663c543e00070821024576656e7420656d6974746564207768656e20612050726f76696465722773206c6173742063686172676561626c65207469636b20616e6420707269636520696e6465782061726520757064617465642e2050726f766964657320696e666f726d6174696f6e2061626f7574207468652050726f7669646572206f66207468652073747265616d2c3501746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b20616e642074686520707269636520696e6465782061742074686174207469636b2e4055736572576974686f757446756e647304010c77686f000130543a3a4163636f756e74496400080c19024576656e7420656d6974746564207768656e20612050726f766964657220697320636f72726563746c7920747279696e6720746f206368617267652061205573657220616e642074686174205573657220646f6573206e6f74206861766520656e6f7567682066756e647320746f2070617920666f722074686569722073657276696365732e390254686973206576656e7420697320656d697474656420746f20666c616720746865207573657220616e64206c657420746865206e6574776f726b206b6e6f772074686174207468652075736572206973206e6f7420706179696e6720666f7220746865207265717565737465642073657276696365732c20736f206f746865722050726f7669646572732063616e9473746f702070726f766964696e6720736572766963657320746f207468617420757365722e345573657250616964446562747304010c77686f000130543a3a4163636f756e74496400090449024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207061696420616c6c20697473206f75747374616e64696e6720646562742e2c55736572536f6c76656e7404010c77686f000130543a3a4163636f756e744964000a083d024576656e7420656d6974746564207768656e20612055736572207468617420686173206265656e20666c6167676564206173206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220746865697220636f6e7472616374656420736572766963657320686173207761697465642074686520636f6f6c646f776e20706572696f642c4901636f72726563746c79207061696420616c6c207468656972206f75747374616e64696e67206465627420616e642063616e206e6f7720636f6e7472616374206e657720736572766963657320616761696e2e04b4546865206576656e747320746861742063616e20626520656d697474656420627920746869732070616c6c6574ad020c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144576656e7404045400010c30416363657373536861726564080118697373756572000130543a3a4163636f756e744964000124726563697069656e740001684163636f756e7449644c6f6f6b75705461726765744f663c543e00000419014e6f74696669657320746861742061636365737320746f2061206275636b657420686173206265656e20736861726564207769746820616e6f74686572206163636f756e742e544974656d52656164416363657373557064617465640c011461646d696e000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000104ec4e6f74696669657320746861742074686520726561642061636365737320666f7220616e206974656d20686173206265656e20757064617465642e284974656d4275726e65640c011c6163636f756e74000130543a3a4163636f756e7449640001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000204984e6f746966696573207468617420616e206974656d20686173206265656e206275726e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729c01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e9c01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a65729c01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73b90201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69641102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f62757965729c01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001147072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d110201444f7074696f6e3c543a3a4974656d49643e000124617474726962757465d102018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b9020000021000bd020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c1020c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000c50204184f7074696f6e04045401c9020108104e6f6e6500000010536f6d650400c9020000010000c9020c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6ecd0201385072696365446972656374696f6e0000cd020c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000d1020c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000d5020c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579d90201c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565f10201ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565f10201ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d902104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735052756e74696d65506172616d65746572734b65790001043452756e74696d65436f6e6669670400dd0201bd013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900000000dd02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696734506172616d65746572734b657900011064536c617368416d6f756e745065724d617846696c6553697a650400e1020164536c617368416d6f756e745065724d617846696c6553697a65000000585374616b65546f4368616c6c656e6765506572696f640400e50201585374616b65546f4368616c6c656e6765506572696f6400010064436865636b706f696e744368616c6c656e6765506572696f640400e9020164436865636b706f696e744368616c6c656e6765506572696f64000200484d696e4368616c6c656e6765506572696f640400ed0201484d696e4368616c6c656e6765506572696f6400030000e102184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764536c617368416d6f756e745065724d617846696c6553697a6500000000e502184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967585374616b65546f4368616c6c656e6765506572696f6400000000e902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696764436865636b706f696e744368616c6c656e6765506572696f6400000000ed02184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e666967484d696e4368616c6c656e6765506572696f6400000000f10204184f7074696f6e04045401f5020108104e6f6e6500000010536f6d650400f5020000010000f502104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d735852756e74696d65506172616d657465727356616c75650001043452756e74696d65436f6e6669670400f90201c5013c64796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c756500000000f902184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e6669673c506172616d657465727356616c756500011064536c617368416d6f756e745065724d617846696c6553697a65040018011c42616c616e6365000000585374616b65546f4368616c6c656e6765506572696f64040018011c42616c616e636500010064436865636b706f696e744368616c6c656e6765506572696f64040010012c426c6f636b4e756d626572000200484d696e4368616c6c656e6765506572696f64040010012c426c6f636b4e756d62657200030000fd0208306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200000103000002050300050300000408101000090308306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ecc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d650d03016473705f72756e74696d653a3a52756e74696d65537472696e6700000d030000050200110308306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000015030c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73190301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973690201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19030000021d03001d030000040838380021030c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373250301845065724469737061746368436c6173733c57656967687473506572436c6173733e000025030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454012903000c01186e6f726d616c290301045400012c6f7065726174696f6e616c29030104540001246d616e6461746f72792903010454000029030c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e7369632d0301384f7074696f6e3c5765696768743e0001246d61785f746f74616c2d0301384f7074696f6e3c5765696768743e00012072657365727665642d0301384f7074696f6e3c5765696768743e00002d0304184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000031030c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178350301545065724469737061746368436c6173733c7533323e000035030c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400003903082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400003d03082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d650d03013452756e74696d65537472696e67000124696d706c5f6e616d650d03013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069734103011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800004103040c436f7704045401450300040045030000004503000002490300490300000408290110004d03000005040051030c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574550300000259030059030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e6477696474685d0301345573656442616e647769647468000138706172615f686561645f68617368710301244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c7503018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00005d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e676103018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e00006103042042547265654d617008044b01e9010456016503000400690300000065030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c753332000069030000026d03006d0300000408e901650300710304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000750304184f7074696f6e0404540179030108104e6f6e6500000010536f6d6504007903000001000079030c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f4168656164000100007d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e6477696474685d0301345573656442616e64776964746800013868726d705f77617465726d61726b110201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c7503018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e000081030c4c706f6c6b61646f745f7072696d6974697665730876375c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616485030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000085030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000890304184f7074696f6e040454018d030108104e6f6e6500000010536f6d6504008d0300000100008d030c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e740000000091030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465739503014442547265655365743c5665633c75383e3e00009503042042547265655365740404540138000400690200000099030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974799d03018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73a10301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73a10301885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00009d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000a103000002a50300a50300000408e901a90300a9030c4c706f6c6b61646f745f7072696d6974697665730876374c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164710301304f7074696f6e3c486173683e0000ad030c4c706f6c6b61646f745f7072696d697469766573087637644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73b10301484173796e634261636b696e67506172616d730000b103104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000b503089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c6179486173680000b903042042547265654d617008044b01e901045601b503000400bd03000000bd03000002c10300c10300000408e901b50300c503000002c90300c9030860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401e90100080124726563697069656e74e901010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e0000cd030c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000d1030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001104c7365745f76616c69646174696f6e5f6461746104011064617461d503015450617261636861696e496e686572656e744461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d65737361676500010044617574686f72697a655f75706772616465080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0002206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015468652060636865636b5f76657273696f6e6020706172616d657465722073657473206120626f6f6c65616e20666c616720666f722077686574686572206f72206e6f74207468652072756e74696d6527732073706563610176657273696f6e20616e64206e616d652073686f756c64206265207665726966696564206f6e20757067726164652e2053696e63652074686520617574686f72697a6174696f6e206f6e6c7920686173206120686173682cb069742063616e6e6f742061637475616c6c7920706572666f726d2074686520766572696669636174696f6e2e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e60656e6163745f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000324550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005d014e6f7465207468617420746869732066756e6374696f6e2077696c6c206e6f74206170706c7920746865206e65772060636f6465602c20627574206f6e6c7920617474656d707420746f207363686564756c652074686574757067726164652077697468207468652052656c617920436861696e2e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed503089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e745450617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174618103015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174659103015473705f747269653a3a53746f7261676550726f6f66000144646f776e776172645f6d65737361676573d903016c5665633c496e626f756e64446f776e776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573e10301a442547265654d61703c5061726149642c205665633c496e626f756e6448726d704d6573736167653e3e0000d903000002dd0300dd030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000e103042042547265654d617008044b01e901045601e503000400ed03000000e503000002e90300e9030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e0000ed03000002f10300f10300000408e901e50300f5030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001204c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e444e6f7468696e67417574686f72697a6564000604904e6f20636f6465207570677261646520686173206265656e20617574686f72697a65642e30556e617574686f72697a6564000704bc54686520676976656e20636f6465207570677261646520686173206e6f74206265656e20617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef9030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540105040453000004000d0401185665633c543e000005040c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964290101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e730904011c526561736f6e73000009040c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200000d0400000205040011040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011504045300000400190401185665633c543e000015040c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720129011c42616c616e6365011800080108696429010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000019040000021504001d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012104045300000400310401185665633c543e000021040c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640125041c42616c616e63650118000801086964250401084964000118616d6f756e7418011c42616c616e636500002504084c73746f726167655f6875625f72756e74696d654452756e74696d65486f6c64526561736f6e0001082450726f76696465727304002904019070616c6c65745f73746f726167655f70726f7669646572733a3a486f6c64526561736f6e002800385061796d656e7453747265616d7304002d04018870616c6c65745f7061796d656e745f73747265616d733a3a486f6c64526561736f6e002c000029040c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c657428486f6c64526561736f6e0001085853746f7261676550726f76696465724465706f736974000000344275636b65744465706f736974000100002d040c5870616c6c65745f7061796d656e745f73747265616d731870616c6c657428486f6c64526561736f6e000104505061796d656e7453747265616d4465706f73697400000000310400000221040035040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540139040453000004003d0401185665633c543e000039040c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401981c42616c616e636501180008010869649801084964000118616d6f756e7418011c42616c616e636500003d0400000239040041040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374450401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365450401504163636f756e7449644c6f6f6b75704f663c543e00011064657374450401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374450401504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565dc0128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374450401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f450401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa401445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f450401504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565dc0128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e4d04014c41646a7573746d656e74446972656374696f6e00011464656c7461dc0128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565dc0128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45040c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780198011408496404000001244163636f756e74496400000014496e6465780400490401304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400d801205b75383b2032305d00040000490400000698004d040c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000051040c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5504086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e740000000856320001000059040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c5d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c5d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577450401504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f450401504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c5d04017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d04084c73746f726167655f6875625f72756e74696d652c52756e74696d6543616c6c0001501853797374656d0400150301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400d10301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400f90301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002003450617261636861696e496e666f0400fd0301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e0003002042616c616e6365730400410401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a00105375646f0400590401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400610401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400650401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400710401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400750401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400150501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e002000304d65737361676551756575650400190501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0021002450726f76696465727304001d0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f7669646572732c2052756e74696d653e0028002846696c6553797374656d0400210501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46696c6553797374656d2c2052756e74696d653e0029003050726f6f66734465616c65720400550501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f6f66734465616c65722c2052756e74696d653e002a002852616e646f6d6e6573730400590501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e646f6d6e6573732c2052756e74696d653e002b00385061796d656e7453747265616d7304005d0501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061796d656e7453747265616d732c2052756e74696d653e002c00284275636b65744e6674730400610501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4275636b65744e6674732c2052756e74696d653e002d00104e6674730400690501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00320028506172616d65746572730400c50501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e0033000061040c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a401445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579736904011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6904084c73746f726167655f6875625f72756e74696d652c53657373696f6e4b6579730000040110617572616d0401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300006d04104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000071040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e6408011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676579040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765e10401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ebc0134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e110201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed9010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69747101012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747375010150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d9010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d9010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747375010150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f747970650d050144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f696411050154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f747970650d050144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737479040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69747101012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e2d012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204007d04015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400ad04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000501015076343a3a58636d3c52756e74696d6543616c6c3e000400007d040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400810401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000810400000285040085040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736589040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c5d010168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c01186173736574739d0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365741001186173736574739d0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000e003445786368616e67654173736574080110676976659d0401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c01186173736574739d0401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574739d0401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e0001186173736574739d0401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974a904012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804007d04014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b000089040c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304007901012c4d756c74694173736574730001003c457865637574696f6e526573756c7404008d0401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e000300008d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d65040091040000010000910400000408109504009504100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000099040c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300009d04100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007901012c4d756c74694173736574730000001057696c640400a104013857696c644d756c7469417373657400010000a104100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869648501011c4173736574496400010c66756ea504013c57696c6446756e676962696c69747900010000a504100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000a9040c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c75363400010000ad040c0c78636d0876330c58636d041043616c6c00000400b10401585665633c496e737472756374696f6e3c43616c6c3e3e0000b104000002b50400b5040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b9040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572cd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c5d01014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400d10401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473d50401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473d50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e000e003445786368616e676541737365740c011067697665d50401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473d50401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473d50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fd10401445175657279526573706f6e7365496e666f000118617373657473d50401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400ad04012458636d3c43616c6c3e0015002c536574417070656e6469780400ad04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400cd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fd10401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400d10401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696ecd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000b9040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400ad01012c4d756c74694173736574730001003c457865637574696f6e526573756c740400350101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400bd040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404004d0101384d617962654572726f72436f646500050000bd040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c104045300000400c90401185665633c543e0000c1040c0c78636d0876332850616c6c6574496e666f0000180114696e646578cc010c7533320001106e616d65c5040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65c5040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72cc010c7533320001146d696e6f72cc010c7533320001147061746368cc010c7533320000c5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c904000002c10400cd0404184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd010000010000d1040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ebd0101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000d504100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400ad01012c4d756c74694173736574730000001057696c640400d904013857696c644d756c7469417373657400010000d904100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964b901011c4173736574496400010c66756edd04013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400cc010c75333200020030416c6c4f66436f756e7465640c01086964b901011c4173736574496400010c66756edd04013c57696c6446756e676962696c697479000114636f756e74cc010c75333200030000dd04100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000e104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856320400e504015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400f504015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000105015076343a3a58636d3c52756e74696d6543616c6c3e00040000e5040c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400e90401745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000e904000002ed0400ed040c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404007901012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007901012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007901012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736589040120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e7366657241737365740801186173736574737901012c4d756c746941737365747300012c62656e6566696369617279890101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737901012c4d756c746941737365747300011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065990401284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6cf1040168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04008d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c01186173736574739d0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200012c62656e6566696369617279890101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365741001186173736574739d0401404d756c7469417373657446696c7465720001286d61785f617373657473cc010c75333200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e000e003445786368616e67654173736574080110676976659d0401404d756c7469417373657446696c74657200011c726563656976657901012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c01186173736574739d0401404d756c7469417373657446696c74657200011c72657365727665890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574739d0401404d756c7469417373657446696c74657200011064657374890101344d756c74694c6f636174696f6e00010c78636d7d04011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374890101344d756c74694c6f636174696f6e0001186173736574739d0401404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573810101284d756c746941737365740001307765696768745f6c696d6974a904012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400e504014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e6469780400e504014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737901012c4d756c74694173736574730001187469636b6574890101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b0000f1040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000f5040c0c78636d0876330c58636d041043616c6c00000400f90401585665633c496e737472756374696f6e3c43616c6c3e3e0000f904000002fd0400fd040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400ad01012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400ad01012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400ad01012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b9040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572cd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473ad01012c4d756c746941737365747300012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473ad01012c4d756c746941737365747300011064657374bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cf104014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c1010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400d10401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473d50401404d756c7469417373657446696c74657200012c62656e6566696369617279bd0101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473d50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e000e003445786368616e676541737365740c011067697665d50401404d756c7469417373657446696c74657200011077616e74ad01012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473d50401404d756c7469417373657446696c74657200011c72657365727665bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473d50401404d756c7469417373657446696c74657200011064657374bd0101344d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fd10401445175657279526573706f6e7365496e666f000118617373657473d50401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573b50101284d756c746941737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400f504012458636d3c43616c6c3e0015002c536574417070656e6469780400f504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473ad01012c4d756c74694173736574730001187469636b6574bd0101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400ad01012c4d756c7469417373657473001c002c45787065637441737365740400ad01012c4d756c7469417373657473001d00304578706563744f726967696e0400cd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fd10401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400d10401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c50101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bcd0101244e6574776f726b496400012c64657374696e6174696f6ec1010154496e746572696f724d756c74694c6f636174696f6e00010c78636dad04011c58636d3c28293e002600244c6f636b41737365740801146173736574b50101284d756c74694173736574000120756e6c6f636b6572bd0101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574b50101284d756c74694173736574000118746172676574bd0101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574b50101284d756c746941737365740001146f776e6572bd0101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574b50101284d756c746941737365740001186c6f636b6572bd0101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bd0101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696ecd0401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000001050c2c73746167696e675f78636d0876340c58636d041043616c6c00000400050501585665633c496e737472756374696f6e3c43616c6c3e3e0000050500000209050009050c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040011010118417373657473000000545265736572766541737365744465706f7369746564040011010118417373657473000100585265636569766554656c65706f727465644173736574040011010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736531010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572550101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731101011841737365747300012c62656e6566696369617279bc01204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731101011841737365747300011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64590101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cf104014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572cc010c7533320001406d61785f6d6573736167655f73697a65cc010c7533320001306d61785f6361706163697479cc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74cc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72cc010c75333200011873656e646572cc010c753332000124726563697069656e74cc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400c00140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400610101445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736501012c417373657446696c74657200012c62656e6566696369617279bc01204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e000e003445786368616e676541737365740c0110676976656501012c417373657446696c74657200011077616e741101011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736501012c417373657446696c74657200011c72657365727665bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736501012c417373657446696c74657200011064657374bc01204c6f636174696f6e00010c78636d0501011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0001186173736574736501012c417373657446696c74657200120030427579457865637574696f6e080110666565731901011441737365740001307765696768745f6c696d69747101012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000105012458636d3c43616c6c3e0015002c536574417070656e64697804000105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473110101184173736574730001187469636b6574bc01204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040011010118417373657473001c002c4578706563744173736574040011010118417373657473001d00304578706563744f726967696e0400550101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400350101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304004d0101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f610101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578cc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72cc010c75333200013c6d696e5f63726174655f6d696e6f72cc010c753332002200505265706f72745472616e736163745374617475730400610101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400c801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bd401244e6574776f726b496400012c64657374696e6174696f6ec00140496e746572696f724c6f636174696f6e00010c78636d0501011c58636d3c28293e002600244c6f636b41737365740801146173736574190101144173736574000120756e6c6f636b6572bc01204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574190101144173736574000118746172676574bc01204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741901011441737365740001146f776e6572bc01204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741901011441737365740001186c6f636b6572bc01204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400bc01204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69747101012c5765696768744c696d6974000130636865636b5f6f726967696e550101404f7074696f6e3c4c6f636174696f6e3e002f00000d05105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d901014456657273696f6e65644c6f636174696f6e000300001105080c78636d4056657273696f6e6564417373657449640001080856330400b901012c76333a3a4173736574496400030008563404001d01012c76343a3a417373657449640004000015050c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19050c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee50101484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d050c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c65741043616c6c04045400012c4c726571756573745f6d73705f7369676e5f7570100120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000686901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207265717565737420746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4101546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69646101342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e9101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e2075702061732061204d535000d8456d69747320604d7370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e4c726571756573745f6273705f7369676e5f75700c0120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400015c4501446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4901546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00490146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742e002c506172616d65746572733a79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e2501322e20436865636b207468617420746865207369676e6572206973206e6f7420616c72656164792072656769737465726564206173206569746865722061204d5350206f72204253509c332e20436865636b207468617420746865206d756c7469616464726573732069732076616c69645d01342e20436865636b207468617420746865206461746120746f2062652073746f7265642069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d659101352e2043616c63756c61746520686f77206d756368206465706f7369742077696c6c20746865207369676e6572206861766520746f20706179207573696e672074686520616d6f756e74206f6620646174612069742077616e747320746f2073746f7265f0362e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f2070617920746865206465706f7369748c372e20486f6c6420746865206465706f7369742066726f6d20746865207369676e65726901382e2055706461746520746865205369676e2055702052657175657374732073746f7261676520746f2061646420746865207369676e65722061732072657175657374696e6720746f207369676e20757020617320612042535000d8456d6974732060427370526571756573745369676e55705375636365737360206576656e74207768656e207375636365737366756c2e3c636f6e6669726d5f7369676e5f757004014070726f76696465725f6163636f756e749c01504f7074696f6e3c543a3a4163636f756e7449643e00025cad01446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f20636f6e6669726d207468656972207369676e20757020617320612053746f726167652050726f76696465722c20656974686572204d5350206f72204253502e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e9d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722c20657863657074207768656e2070726f766964696e67206129016070726f76696465725f6163636f756e746020706172616d657465722c20696e207768696368206361736520746865206f726967696e2063616e20626520616e79206163636f756e742e002c506172616d65746572733ab9012d206070726f76696465725f6163636f756e74603a20546865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e204966206e6f742070726f76696465642c20746865207369676e6572e477696c6c20626520636f6e7369646572656420746865206163636f756e7420746861742072657175657374656420746f207369676e2075702e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633a98312e20436865636b2074686174207468652065787472696e73696320776173207369676e65641101322e20436865636b207468617420746865206163636f756e74207265636569766564206861732072657175657374656420746f20726567697374657220617320612053508101332e20436865636b2074686174207468652063757272656e742072616e646f6d6e6573732069732073756666696369656e746c7920667265736820746f206265207573656420617320612073616c7420666f7220746861742072657175657374a4342e20436865636b207468617420746865207265717565737420686173206e6f7420657870697265643101352e20526567697374657220746865207369676e65722061732061204d5350206f722042535020776974682074686520646174612070726f766964656420696e207468652072657175657374009d01456d69747320604d73705369676e55705375636365737360206f7220604273705369676e55705375636365737360206576656e74207768656e207375636365737366756c2c20646570656e64696e67206f6e207468652074797065206f66207369676e2075702e00184e6f7465733a1d012d20546869732065787472696e73696320636f756c642062652063616c6c656420627920746865207573657220697473656c66206f722062792061207468697264207061727479b5012d20546865206465706f73697420746861742074686520757365722068617320746f2070617920746f20726567697374657220617320612053502069732068656c64207768656e20746865207573657220726571756573747320746f207265676973746572206173206120535081012d20496620746869732065787472696e736963206973207375636365737366756c2c2069742077696c6c206265206672656520666f72207468652063616c6c65722c20746f20696e63656e74697665207374617465206465626c6f6174696e673863616e63656c5f7369676e5f7570000330c101446973706174636861626c652065787472696e736963207468617420616c6c6f777320612075736572207769746820612070656e64696e67205369676e205570205265717565737420746f2063616e63656c2069742c2067657474696e6720746865206465706f736974206261636b2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e3d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742072657175657374656420746f207369676e20757020617320612053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207369676e6572206861732072657175657374656420746f207369676e2075702061732061205350dc332e2044656c6574652074686520726571756573742066726f6d20746865205369676e2055702052657175657374732073746f726167658c342e2052657475726e20746865206465706f73697420746f20746865207369676e657200d0456d69747320605369676e55705265717565737443616e63656c656460206576656e74207768656e207375636365737366756c2e306d73705f7369676e5f6f66660004384101446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204d61696e2053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53504d01332e20436865636b207468617420746865204d535020686173206e6f2073746f726167652061737369676e656420746f20697420286e6f206275636b657473206f722064617461207573656420627920697429e4342e2055706461746520746865204d5350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204d53508c352e2052657475726e20746865206465706f73697420746f20746865207369676e65724101362e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f66204d5350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604d73705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e306273705f7369676e5f6f666600053c4901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e4d01546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f207369676e206f66662061732061204261636b75702053746f726167652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e65722069732072656769737465726564206173206120425350cc332e20436865636b2074686174207468652042535020686173206e6f2073746f726167652061737369676e656420746f206974e4342e205570646174652074686520425350732073746f726167652c2072656d6f76696e6720746865207369676e657220617320616e204253503501352e205570646174652074686520746f74616c206361706163697479206f6620616c6c20425350732c2072656d6f76696e6720746865206361706163697479206f6620746865207369676e65728c362e2052657475726e20746865206465706f73697420746f20746865207369676e65724101372e2044656372656d656e74207468652073746f72616765207468617420686f6c647320746f74616c20616d6f756e74206f6620425350732063757272656e746c7920696e207468652073797374656d00c0456d69747320604273705369676e4f66665375636365737360206576656e74207768656e207375636365737366756c2e3c6368616e67655f63617061636974790401306e65775f636170616369747930014853746f7261676544617461556e69743c543e0006603901446973706174636861626c652065787472696e736963207468617420616c6c6f777320757365727320746f206368616e676520746865697220616d6f756e74206f662073746f726564206461746100c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f206368616e6765206974732063617061636974792e002c506172616d65746572733a8d012d20606e65775f6361706163697479603a20546865206e657720746f74616c20616d6f756e74206f6620646174612074686174207468652053746f726167652050726f76696465722077616e747320746f2062652061626c6520746f2073746f72652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722eb8322e20436865636b207468617420746865207369676e6572206973207265676973746572656420617320612053505101332e20436865636b207468617420656e6f7567682074696d6520686173207061737365642073696e636520746865206c6173742074696d6520746865205350206368616e676564206974732063617061636974794901342e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d651d01352e20436865636b207468617420746865206e65772063617061636974792069732067726561746572207468616e20746865206461746120757365642062792074686973205350e4362e2043616c63756c61746520746865206e6577206465706f736974206e656564656420666f722074686973206e65772063617061636974795501372e20436865636b20746f2073656520696620746865206e6577206465706f736974206e65656465642069732067726561746572206f72206c657373207468616e207468652063757272656e74206465706f736974ec09612e20496620746865206e6577206465706f7369742069732067726561746572207468616e207468652063757272656e74206465706f7369743a15010909692e20436865636b207468617420746865207369676e65722068617320656e6f7567682066756e647320746f207061792074686973206578747261206465706f736974b0090969692e20486f6c6420746865206578747261206465706f7369742066726f6d20746865207369676e6572850109622e20496620746865206e6577206465706f736974206973206c657373207468616e207468652063757272656e74206465706f7369742c2072657475726e207468652068656c6420646966666572656e636520746f20746865207369676e6572c8372e2055706461746520746865205350732073746f7261676520746f206368616e67652074686520746f74616c20646174617501382e20496620757365722069732061204253502c207570646174652074686520746f74616c206361706163697479206f6620746865206e6574776f726b202873756d206f6620616c6c2063617061636974696573206f6620425350732900b8456d697473206043617061636974794368616e67656460206576656e74207768656e207375636365737366756c2e386164645f76616c75655f70726f700401386e65775f76616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0007409d01446973706174636861626c652065787472696e736963206f6e6c792063616c6c61626c6520627920616e204d5350207468617420616c6c6f777320697420746f2061646420612076616c75652070726f706f736974696f6e20746f20697473207365727669636500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e1501546865206f726967696e206d75737420626520746865206163636f756e7420746861742077616e747320746f2061646420612076616c75652070726f706f736974696f6e2e002c506172616d65746572733a4d012d20606e65775f76616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865204d53502077616e747320746f2061646420746f2069747320736572766963652e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ebc322e20436865636b207468617420746865207369676e657220697320726567697374657265642061732061204d53503901332e20436865636b207468617420746865204d535020686173206e6f74207265616368656420746865206d6178696d756d20616d6f756e74206f662076616c75652070726f706f736974696f6e734501342e20436865636b2074686174207468652076616c75652070726f706f736974696f6e2069732076616c6964202873697a6520616e6420616e79206f746865722072656c6576616e7420636865636b73293501352e2055706461746520746865204d5350732073746f7261676520746f20616464207468652076616c75652070726f706f736974696f6e20287769746820697473206964656e7469666965722900b4456d697473206056616c756550726f70416464656460206576656e74207768656e207375636365737366756c2e44666f7263655f6d73705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640008588d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204d61696e2053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5101546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a19012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204d61696e2053746f726167652050726f76696465722ed1012d20606d73705f6964603a20546865204d61696e2053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e71012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204d61696e2053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292981012d206076616c75655f70726f70603a205468652076616c75652070726f706f736974696f6e207468617420746865207369676e65722077696c6c2070726f766964652061732061204d61696e2053746f726167652050726f766964657220746fad01757365727320616e642077616e747320746f207265676973746572206f6e2d636861696e2e20497420636f756c642062652064617461206c696d6974732c20636f6d6d756e69636174696f6e2070726f746f636f6c7320746f2061636365737320746865207573657227733c646174612c20616e64206d6f72652e00a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d69747320604d7370526571756573745369676e5570537563636573736020616e6420604d73705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e44666f7263655f6273705f7369676e5f757018010c77686f000130543a3a4163636f756e7449640001186273705f69643401684261636b757053746f7261676550726f766964657249643c543e000120636170616369747930014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640001187765696768741102017c4f7074696f6e3c52657075746174696f6e576569676874547970653c543e3e00094c9501446973706174636861626c652065787472696e736963207468617420616c6c6f777320746f20666f72636566756c6c7920616e64206175746f6d61746963616c6c792073696e672075702061204261636b75702053746f726167652050726f76696465722e00bc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f742e5901546865206077686f6020706172616d6574657220697320746865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722e00c10146756e64732070726f706f7274696f6e616c20746f207468652063617061636974792072657175657374656420617265207265736572766564202868656c64292066726f6d20746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722e002c506172616d65746572733a21012d206077686f603a20546865206163636f756e7420746861742077616e747320746f207369676e2075702061732061204261636b75702053746f726167652050726f76696465722ed9012d20606273705f6964603a20546865204261636b75702053746f726167652050726f7669646572204944207468617420746865206163636f756e742070617373656420617320746865206077686f6020706172616d657465722069732072657175657374696e6720746f207369676e2075702061732e79012d20606361706163697479603a2054686520746f74616c20616d6f756e74206f662064617461207468617420746865204261636b75702053746f726167652050726f76696465722077696c6c2062652061626c6520746f2073746f72652e91012d20606d756c7469616464726573736573603a2054686520766563746f72206f66206d756c7469616464726573736573207468617420746865207369676e65722077616e747320746f20726567697374657220286163636f7264696e6720746f20746865f05b4d756c74696164647220737065635d2868747470733a2f2f6769746875622e636f6d2f6d756c7469666f726d6174732f6d756c746961646472292900a4546869732065787472696e7369632077696c6c20706572666f726d20746865207374657073206f663a0d01312e205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f757029ec322e205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f757029003901456d6974732060427370526571756573745369676e5570537563636573736020616e6420604273705369676e55705375636365737360206576656e7473207768656e207375636365737366756c2e14736c61736804012c70726f76696465725f69643401244861736849643c543e000a10fc446973706174636861626c652065787472696e73696320746f20736c6173682061205f736c61736861626c655f2053746f726167652050726f76696465722e00b501412053746f726167652050726f7669646572206973205f736c61736861626c655f2069666620697420686173206661696c656420746f20726573706f6e6420746f206368616c6c656e67657320666f722070726f766964696e672070726f6f6673206f662073746f726167652e4d02496e2074686520636f6e74657874206f66207468652053746f726167654875622070726f746f636f6c2c207468652070726f6f66732d6465616c65722070616c6c6574206d61726b7320612053746f726167652050726f7669646572206173205f736c61736861626c655f207768656e206974206661696c7320746f20726573706f6e6420746f206368616c6c656e6765732e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c657421050c4870616c6c65745f66696c655f73797374656d1870616c6c65741043616c6c040454000144346372656174655f6275636b65740c01186d73705f696434014050726f76696465724964466f723c543e0001106e616d65f90101404275636b65744e616d65466f723c543e00011c70726976617465200110626f6f6c0000004c726571756573745f6d6f76655f6275636b65740801246275636b65745f69643401384275636b65744964466f723c543e0001286e65775f6d73705f696434014050726f76696465724964466f723c543e0001007c6d73705f726573706f6e645f6d6f76655f6275636b65745f726571756573740801246275636b65745f69643401384275636b65744964466f723c543e000120726573706f6e7365250501644275636b65744d6f766552657175657374526573706f6e7365000200547570646174655f6275636b65745f707269766163790801246275636b65745f69643401384275636b65744964466f723c543e00011c70726976617465200110626f6f6c000300ac6372656174655f616e645f6173736f63696174655f636f6c6c656374696f6e5f776974685f6275636b65740401246275636b65745f69643401384275636b65744964466f723c543e000404c043726561746520616e64206173736f6369617465206120636f6c6c656374696f6e20776974682061206275636b65742e5469737375655f73746f726167655f726571756573741801246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e0001186d73705f696434014050726f76696465724964466f723c543e000120706565725f696473f5010128506565724964733c543e0005049849737375652061206e65772073746f72616765207265717565737420666f7220612066696c65587265766f6b655f73746f726167655f7265717565737404012066696c655f6b65793401344d65726b6c65486173683c543e000604585265766f6b652073746f726167652072657175657374ac6273705f6164645f646174615f7365727665725f666f725f6d6f76655f6275636b65745f726571756573740401246275636b65745f69643401384275636b65744964466f723c543e000704690141646420796f757273656c66206173206120646174612073657276657220666f722070726f766964696e67207468652066696c6573206f6620746865206275636b65742072657175657374656420746f206265206d6f7665642eb46d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b65747304016066696c655f6b65795f726573706f6e7365735f696e7075742905016046696c654b6579526573706f6e736573496e7075743c543e0008244901557365642062792061204d535020746f20616363657074206f72206465636c696e652073746f7261676520726571756573747320696e20626174636865732c2067726f75706564206279206275636b65742e00d9015468697320666f6c6c6f7773206120626573742d6566666f72742073747261746567792c206d65616e696e67207468617420616c6c2066696c65206b6579732077696c6c2062652070726f63657373656420616e64206465636c6172656420746f2068617665207375636365737366756c6c79206265590161636365707465642c2072656a6563746564206f722068617665206661696c656420746f2062652070726f63657373656420696e2074686520726573756c7473206f6620746865206576656e7420656d69747465642e00f501546865204d53502068617320746f2070726f7669646520612066696c652070726f6f6620666f7220616c6c207468652066696c65206b657973207468617420617265206265696e6720616363657074656420616e642061206e6f6e2d696e636c7573696f6e2070726f6f6620666f72207468652066696c65206b6579739501696e20746865206275636b65742773204d65726b6c6520506174726963696120466f726573742e205468652066696c652070726f6f667320666f72207468652066696c65206b657973206973206e656365737361727920746f2076657269667920746861748501746865204d53502061637475616c6c7920686173207468652066696c65732c207768696c6520746865206e6f6e2d696e636c7573696f6e2070726f6f66206973206e656365737361727920746f20766572696679207468617420746865204d5350647761736e27742073746f72696e67206974206265666f72652e346273705f766f6c756e7465657204012066696c655f6b65793401344d65726b6c65486173683c543e000918b85573656420627920612042535020746f20766f6c756e7465657220666f722073746f72696e6720612066696c652e008d01546865207472616e73616374696f6e2077696c6c206661696c2069662074686520584f52206265747765656e207468652066696c6520494420616e642074686520425350204944206973206e6f742062656c6f7720746865207468726573686f6c642c3d01736f206120425350206973207374726f6e676c79206164766973656420746f20636865636b206265666f726568616e642e20416e6f7468657220726561736f6e20666f72206661696c7572652069735101696620746865206d6178696d756d206e756d626572206f66204253507320686173206265656e20726561636865642e2041207375636365737366756c2061737369676e6d656e7420617320425350206d65616e73e87468617420736f6d65206f662074686520636f6c6c61746572616c20746f6b656e73206f662074686174204d5350206172652066726f7a656e2e4c6273705f636f6e6669726d5f73746f72696e670801686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e00015066696c655f6b6579735f616e645f70726f6f66733d05013501426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c20543a3a0a4d61784261746368436f6e6669726d53746f7261676552657175657374732c3e000a0411015573656420627920612042535020746f20636f6e6669726d2074686579206172652073746f72696e672064617461206f6620612073746f7261676520726571756573742e606273705f726571756573745f73746f705f73746f72696e6720012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00012463616e5f7365727665200110626f6f6c000158696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000b20d0457865637574656420627920612042535020746f207265717565737420746f2073746f702073746f72696e6720612066696c652e006d01496e20746865206576656e74207768656e20612073746f726167652072657175657374206e6f206c6f6e6765722065786973747320666f722074686520646174612074686520425350206e6f206c6f6e6765722073746f7265732c7101697420697320726571756972656420746861742074686520425350207374696c6c206861732061636365737320746f20746865206d65746164617461206f662074686520696e697469616c2073746f7261676520726571756573742e89014966207468657920646f206e6f742c20746865792077696c6c206174206c65617374206e6565642074686174206d6574616461746120746f207265636f6e737472756374207468652046696c6520494420616e642066726f6d2077686572657665723d017468652042535020676574732074686174206461746120697320757020746f2069742e204f6e65206578616d706c6520636f756c642062652066726f6d207468652061737369676e6564204d53502e750154686973206d65746164617461206973206e65636573736172792073696e6365206974206973206e656564656420746f207265636f6e73747275637420746865206c656166206e6f6465206b657920696e207468652073746f726167656470726f76696465722773204d65726b6c6520466f726573742e606273705f636f6e6669726d5f73746f705f73746f72696e6708012066696c655f6b65793401344d65726b6c65486173683c543e000158696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000c14d0457865637574656420627920612042535020746f20636f6e6669726d20746f2073746f702073746f72696e6720612066696c652e00bd0149742068617320746f20686176652070726576696f75736c79206f70656e656420612070656e64696e672073746f702073746f72696e672072657175657374207573696e672074686520606273705f726571756573745f73746f705f73746f72696e67602065787472696e7369632eb901546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e20746865207265717565737420616e642074686520636f6e6669726d6174696f6e20697320646566696e6564206279207468652072756e74696d652c20737563682074686174207468658d014253502063616e277420696d6d6564696174656c792073746f702073746f72696e6720612066696c65206974206861732070726576696f75736c79206c6f7374207768656e20726563656976696e672061206368616c6c656e676520666f722069742e7c73746f705f73746f72696e675f666f725f696e736f6c76656e745f757365721c012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e0001146f776e6572000130543a3a4163636f756e74496400012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e000158696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000d18fc4578656375746564206279206120535020746f2073746f702073746f72696e6720612066696c652066726f6d20616e20696e736f6c76656e7420757365722e00b101546869732069732075736564207768656e2061207573657220686173206265636f6d6520696e736f6c76656e7420616e6420746865205350206e6565647320746f2073746f702073746f72696e67207468652066696c6573206f66207468617420757365722c2073696e6365a0697420776f6e27742062652067657474696e67207061696420666f7220697420616e796d6f72652e3d025468652076616c69646174696f6e73206172652073696d696c617220746f20746865206f6e657320696e2074686520606273705f726571756573745f73746f705f73746f72696e676020616e6420606273705f636f6e6669726d5f73746f705f73746f72696e67602065787472696e736963732c206275742074686520535020646f65736e2774206e65656420746f7d017761697420666f722061206d696e696d756d20616d6f756e74206f6620626c6f636b7320746f20636f6e6669726d20746f2073746f702073746f72696e67207468652066696c65206e6f722069742068617320746f2062652061204253502e2c64656c6574655f66696c651801246275636b65745f69643401384275636b65744964466f723c543e00012066696c655f6b65793401344d65726b6c65486173683c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00011073697a6530013853746f72616765446174613c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e0001706d617962655f696e636c7573696f6e5f666f726573745f70726f6f66510501584f7074696f6e3c466f7265737450726f6f663c543e3e000e00a870656e64696e675f66696c655f64656c6574696f6e5f726571756573745f7375626d69745f70726f6f6610011075736572000130543a3a4163636f756e74496400012066696c655f6b65793401344d65726b6c65486173683c543e0001246275636b65745f69643401384275636b65744964466f723c543e000130666f726573745f70726f6f6665020138466f7265737450726f6f663c543e000f00547365745f676c6f62616c5f706172616d65746572730801487265706c69636174696f6e5f746172676574110201804f7074696f6e3c543a3a5265706c69636174696f6e546172676574547970653e00017c7469636b5f72616e67655f746f5f6d6178696d756d5f7468726573686f6c64110201544f7074696f6e3c5469636b4e756d6265723c543e3e001000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25050c4870616c6c65745f66696c655f73797374656d147479706573644275636b65744d6f766552657175657374526573706f6e73650001082041636365707465640000002052656a65637465640001000029050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d050453000004004d0501185665633c543e00002d05000004083431050031050c4870616c6c65745f66696c655f73797374656d147479706573644d737053746f7261676552657175657374526573706f6e73650404540000080118616363657074350501ac4f7074696f6e3c416363657074656453746f7261676552657175657374506172616d65746572733c543e3e00011872656a656374490501a5014f7074696f6e3c426f756e6465645665633c284d65726b6c65486173683c543e2c2052656a656374656453746f7261676552657175657374526561736f6e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e2c3e2c3e0000350504184f7074696f6e0404540139050108104e6f6e6500000010536f6d6504003905000001000039050c4870616c6c65745f66696c655f73797374656d14747970657380416363657074656453746f7261676552657175657374506172616d6574657273040454000008015066696c655f6b6579735f616e645f70726f6f66733d05013901426f756e6465645665633c284d65726b6c65486173683c543e2c204b657950726f6f663c543e292c0a4d617842617463684d7370526573706f6e6453746f7261676552657175657374733c543e3e0001686e6f6e5f696e636c7573696f6e5f666f726573745f70726f6f6665020138466f7265737450726f6f663c543e00003d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014105045300000400450501185665633c543e0000410500000408347502004505000002410500490504184f7074696f6e0404540135020108104e6f6e6500000010536f6d650400350200000100004d050000022d0500510504184f7074696f6e0404540165020108104e6f6e6500000010536f6d6504006502000001000055050c5070616c6c65745f70726f6f66735f6465616c65721870616c6c65741043616c6c040454000110246368616c6c656e676504010c6b65793401244b6579466f723c543e00001868496e74726f647563652061206e6577206368616c6c656e67652e003101546869732066756e6374696f6e20616c6c6f777320616e796f6e6520746f206164642061206e6577206368616c6c656e676520746f2074686520604368616c6c656e6765735175657565602ed8546865206368616c6c656e67652077696c6c206265206469737061746368656420696e2074686520636f6d696e6720626c6f636b732efc5573657273206172652063686172676564206120736d616c6c2066656520666f72207375626d697474696e672061206368616c6c656e67652c20776869636854676f657320746f207468652054726561737572792e307375626d69745f70726f6f6608011470726f6f666102012050726f6f663c543e00012070726f7669646572710301604f7074696f6e3c50726f76696465724964466f723c543e3e00015484466f7220612050726f766964657220746f207375626d697420612070726f6f662e00e0436865636b732074686174206070726f766964657260206973206120726567697374657265642050726f76696465722e204966206e6f6e65090169732070726f76696465642c207468652070726f6f66207375626d697474657220697320636f6e7369646572656420746f206265207468652050726f76696465722ef852656c696573206f6e20612050726f7669646572732070616c6c657420746f206765742074686520726f6f7420666f72207468652050726f76696465722e390156616c6964617465732074686174207468652070726f6f6620636f72726573706f6e647320746f2061206368616c6c656e6765207468617420776173206d61646520696e2074686520706173742c3901627920636865636b696e672074686520605469636b546f4368616c6c656e67657353656564602053746f726167654d61702e20546865206368616c6c656e6765207469636b207468617420746865410150726f76696465722073686f756c642068617665207375626d697474656420612070726f6f662069732063616c63756c61746564206261736564206f6e20746865206c617374207469636b207468657969017375626d697474656420612070726f6f6620666f7220285b604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f72605d292c20616e64207468652070726f76696e6720706572696f6420666f72c8746861742050726f76696465722c20776869636820697320612066756e6374696f6e206f66207468656972207374616b652e3901546869732065787472696e73696320616c736f20636865636b732074686174207468657265206861736e2774206265656e206120636865636b706f696e74206368616c6c656e676520726f756e642101696e206265747765656e20746865206c6173742074696d65207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220616e6420746865207469636b2901666f72207768696368207468652070726f6f66206973206265696e67207375626d69747465642e20496620746865726520686173206265656e2c207468652050726f7669646572206973507375626a65637420746f20736c617368696e672e002449662076616c69643a55012d2050757368657320666f7277617264207468652050726f766964657220696e20746865205b605469636b546f50726f766964657273446561646c696e6573605d2053746f726167654d61702061206e756d626572d06f66207469636b7320636f72726573706f6e64696e6720746f20746865207374616b65206f66207468652050726f76696465722e3d012d205265676973746572732074686973207469636b20617320746865206c617374207469636b20696e207768696368207468652050726f7669646572207375626d697474656420612070726f6f662e001501457865637574696f6e206f6620746869732065787472696e7369632073686f756c6420626520726566756e646564206966207468652070726f6f662069732076616c69642e80666f7263655f696e697469616c6973655f6368616c6c656e67655f6379636c6504012070726f766964657234014050726f76696465724964466f723c543e000218a0496e697469616c69736520612050726f76696465722773206368616c6c656e6765206379636c652e00584f6e6c792063616c6c61626c65206279207375646f2e005d015365747320746865206c617374207469636b207468652050726f7669646572207375626d697474656420612070726f6f6620666f7220746f207468652063757272656e74207469636b2c20616e642073657473207468657101646561646c696e6520666f72207375626d697474696e6720612070726f6f6620746f207468652063757272656e74207469636b202b207468652050726f7669646572277320706572696f64202b2074686520746f6c6572616e63652e287365745f706175736564040118706175736564200110626f6f6c00030ce053657420746865205b604368616c6c656e6765735469636b6572506175736564605d20746f20607472756560206f72206066616c7365602e00584f6e6c792063616c6c61626c65206279207375646f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e59050c4470616c6c65745f72616e646f6d6e6573731870616c6c65741043616c6c0404540001044c7365745f626162655f72616e646f6d6e65737300000ced015468697320696e686572656e742074686174206d75737420626520696e636c7564656420284469737061746368436c6173733a3a4d616e6461746f727929206174206561636820626c6f636b20736176657320746865206c61746573742072616e646f6d6e65737320617661696c61626c652066726f6d20746865810172656c617920636861696e20696e746f2061207661726961626c6520746861742063616e207468656e20626520757365642061732061207365656420666f7220636f6d6d69746d656e747320746861742068617070656e656420647572696e67787468652070726576696f75732072656c617920636861696e2065706f6368040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d050c5870616c6c65745f7061796d656e745f73747265616d731870616c6c65741043616c6c040454000124806372656174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001107261746518013042616c616e63654f663c543e0000489501446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612066697865642d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d206072617465603a2054686520696e697469616c2072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e807570646174655f66697865645f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e7449640001206e65775f7261746518013042616c616e63654f663c543e000140d901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722ec42d20606e65775f72617465603a20546865206e65772072617465206f6620746865207061796d656e742073747265616d2e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8064656c6574655f66697865645f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400023cd901446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672066697865642d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f0456d69747320604669786564526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e886372656174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e0003489d01446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2061646420612064796e616d69632d72617465207061796d656e742073747265616d2066726f6d2061205573657220746f20612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d2060616d6f756e745f70726f7669646564603a2054686520696e697469616c20616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696edc322e20436865636b207468617420746865207061796d656e742073747265616d20646f6573206e6f7420616c7265616479206578697374e8332e20436865636b20746861742074686520557365722068617320656e6f7567682066756e647320746f2070617920746865206465706f73697484342e20486f6c6420746865206465706f7369742066726f6d2074686520557365720d01352e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2061646420746865206e6577207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d4372656174656460206576656e74207768656e207375636365737366756c2e887570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d0c012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400014c6e65775f616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e000440e101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2075706461746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e05012d20606e65775f616d6f756e745f70726f7669646564603a20546865206e657720616d6f756e742070726f7669646564206279207468652050726f76696465722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2075706461746520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d5570646174656460206576656e74207768656e207375636365737366756c2e8864656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d08012c70726f76696465725f696434014050726f76696465724964466f723c543e000130757365725f6163636f756e74000130543a3a4163636f756e74496400053ce101446973706174636861626c652065787472696e736963207468617420616c6c6f777320726f6f7420746f2064656c65746520616e206578697374696e672064796e616d69632d72617465207061796d656e742073747265616d206265747765656e2061205573657220616e6420612050726f76696465722e00c101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520526f6f7420285061796d656e742073747265616d732073686f756c64206f6e6c792062652061646465642062792074726169747320696e206f746865722070616c6c6574732c98746869732065787472696e73696320697320666f72206d616e75616c2074657374696e67292e002c506172616d65746572733a01012d206070726f76696465725f6964603a205468652050726f7669646572204944207468617420746865207061796d656e742073747265616d20697320666f722e15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633aec312e20436865636b2074686174207468652065787472696e736963207761732065786563757465642062792074686520726f6f74206f726967696e9c322e20436865636b207468617420746865207061796d656e742073747265616d206578697374730901332e2055706461746520746865205061796d656e742053747265616d732073746f7261676520746f2072656d6f766520746865207061796d656e742073747265616d00f8456d697473206044796e616d6963526174655061796d656e7453747265616d44656c6574656460206576656e74207768656e207375636365737366756c2e586368617267655f7061796d656e745f73747265616d73040130757365725f6163636f756e74000130543a3a4163636f756e7449640006705101446973706174636861626c652065787472696e736963207468617420616c6c6f77732050726f76696465727320746f206368617267652061207061796d656e742073747265616d2066726f6d206120557365722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e6d01546865206f726967696e206d757374206265207468652050726f7669646572207468617420686173206174206c65617374206f6e652074797065206f66207061796d656e742073747265616d20776974682074686520557365722e002c506172616d65746572733a15012d2060757365725f6163636f756e74603a205468652055736572204163636f756e74204944207468617420746865207061796d656e742073747265616d20697320666f722e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722e4101322e20436865636b20746861742061207061796d656e742073747265616d206265747765656e20746865207369676e6572202850726f76696465722920616e6420746865205573657220657869737473ac332e20496620746865726520697320612066697865642d72617465207061796d656e742073747265616d3aa0202020312e20476574207468652072617465206f6620746865207061796d656e742073747265616dbd01202020322e204765742074686520646966666572656e6365206265747765656e20746865206c6173742063686172676564207469636b206e756d62657220616e6420746865206c6173742063686172676561626c65207469636b206e756d626572206f66207468652073747265616df8202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e67206072617465202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d697474656429fc202020352e2055706461746520746865206c6173742063686172676564207469636b206e756d626572206f6620746865207061796d656e742073747265616db4342e20496620746865726520697320612064796e616d69632d72617465207061796d656e742073747265616d3ab4202020312e204765742074686520616d6f756e742070726f7669646564206279207468652050726f7669646572f501202020322e204765742074686520646966666572656e6365206265747765656e20707269636520696e646578207768656e207468652073747265616d20776173206c617374206368617267656420616e642074686520707269636520696e64657820617420746865206c6173742063686172676561626c65207469636b2501202020332e2043616c63756c6174652074686520616d6f756e7420746f2063686172676520646f696e672060616d6f756e745f70726f7669646564202a20646966666572656e636560e501202020342e204368617267652074686520757365722028696620746865207573657220646f6573206e6f74206861766520656e6f7567682066756e64732c206974206765747320666c616767656420616e642061206055736572576974686f757446756e647360206576656e7420697320656d6974746564294d01202020352e205570646174652074686520707269636520696e646578207768656e207468652073747265616d20776173206c6173742063686172676564206f6620746865207061796d656e742073747265616d00d4456d697473206120605061796d656e7453747265616d4368617267656460206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20612050726f766964657220636f756c64206861766520626f746820612066697865642d7261746520616e6420612064796e616d69632d72617465207061796d656e742073747265616d2077697468206120557365722e204966207468617427732074686520636173652c20746869732065787472696e736963b90177696c6c2074727920746f2063686172676520626f746820616e642074686520616d6f756e7420636861726765642077696c6c206265207468652073756d206f662074686520616d6f756e7473206368617267656420666f722065616368207061796d656e742073747265616d2e507061795f6f75747374616e64696e675f64656274000748f501446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e647320746f2070617920616c6c2072656d61696e696e67207061796d656e742073747265616d7320746f2062652061626c6520746f207265636f76657234697473206465706f736974732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e4101332e2052656c6561736520746865207573657227732066756e6473207468617420776572652068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e7901342e2047657420616c6c207061796d656e742073747265616d73206f6620746865207573657220616e6420636861726765207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732ea8352e2044656c65746520616c6c207061796d656e742073747265616d73206f662074686520757365722e00b8456d697473206120275573657250616964446562747327206576656e74207768656e207375636365737366756c2e0001024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e50636c6561725f696e736f6c76656e745f666c6167000858dd01446973706174636861626c652065787472696e736963207468617420616c6c6f77732061207573657220666c616767656420617320776974686f75742066756e6473206c6f6e672061676f20656e6f75676820746f20636c656172207468697320666c61672066726f6d20697473206163636f756e742c0102616c6c6f77696e6720697420746f20626567696e20636f6e7472616374696e6720616e6420706179696e6720666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e6720646562742c2069742077696c6c206265206368617267656420616e6420636c65617265642e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0d01546865206f726967696e206d757374206265207468652055736572207468617420686173206265656e20666c616767656420617320776974686f75742066756e64732e00ec546869732065787472696e7369632077696c6c20706572666f726d2074686520666f6c6c6f77696e6720636865636b7320616e64206c6f6769633ae8312e20436865636b2074686174207468652065787472696e73696320776173207369676e656420616e642067657420746865207369676e65722ee4322e20436865636b207468617420746865207573657220686173206265656e20666c616767656420617320776974686f75742066756e64732e6501332e20436865636b20746861742074686520636f6f6c646f776e20706572696f6420686173207061737365642073696e63652074686520757365722077617320666c616767656420617320776974686f75742066756e64732e2101342e20436865636b206966207468657265277320616e79206f75747374616e64696e67206465627420616e64206368617267652069742e205468697320697320646f6e652062793a35012020612e2052656c656173696e6720616e792072656d61696e696e672066756e64732068656c642061732061206465706f73697420666f722065616368207061796d656e742073747265616d2e99012020622e2047657474696e6720616c6c207061796d656e742073747265616d73206f6620746865207573657220616e64206368617267696e67207468656d2c20706179696e67207468652050726f76696465727320666f72207468652073657276696365732eb02020632e2052657475726e696e6720746865205573657220616e792072656d61696e696e672066756e64732eb82020642e2044656c6574696e6720616c6c207061796d656e742073747265616d73206f662074686520757365722e90352e20556e666c616720746865207573657220617320776974686f75742066756e64732e00b0456d6974732061202755736572536f6c76656e7427206576656e74207768656e207375636365737366756c2e0029024e6f7465733a20746869732065787472696e736963206974657261746573206f76657220616c6c2072656d61696e696e67207061796d656e742073747265616d73206f6620746865207573657220616e642063686172676573207468656d2c20736f2069742063616e20626520657870656e7369766520696e207465726d73206f66207765696768742efd015468652066656520746f20657865637574652069742073686f756c64206265206869676820656e6f75676820746f20636f6d70656e7361746520666f722074686520776569676874206f66207468652065787472696e7369632c20776974686f7574206265696e6720746f6f206869676820746861742074686520757365724d0166696e6473206d6f726520636f6e76656e69656e7420746f207761697420666f722050726f76696465727320746f2067657420697473206465706f73697473206f6e65206279206f6e6520696e73746561642e04c4446973706174636861626c6573202865787472696e7369637329206578706f73656420627920746869732070616c6c657461050c4870616c6c65745f6275636b65745f6e6674731870616c6c65741043616c6c0404540001083073686172655f616363657373100124726563697069656e74450401684163636f756e7449644c6f6f6b7570536f757263654f663c543e0001186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578650501684f7074696f6e3c5265616441636365737352656765783c543e3e00000cec53686172652061636365737320746f2066696c65732077697468696e2061206275636b6574207769746820616e6f74686572206163636f756e742e0079025468652060726561645f6163636573735f72656765786020706172616d65746572206973206f7074696f6e616c20616e64207768656e2073657420746f20604e6f6e6560206974206d65616e7320746861742074686520726563697069656e742077696c6c2062652064656e6965642061636365737320666f7220616e79207265616420726571756573742077697468696e20746865206275636b65742e487570646174655f726561645f6163636573730c01186275636b65743401384275636b65744964466f723c543e00011c6974656d5f6964100124543a3a4974656d4964000144726561645f6163636573735f7265676578650501684f7074696f6e3c5265616441636365737352656765783c543e3e0001047c55706461746520726561642061636365737320666f7220616e206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e650504184f7074696f6e04045401b5020108104e6f6e6500000010536f6d650400b502000001000069050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e450401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e6669676d050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572450401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e6669676d050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573738d05013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f450401504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461910501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f450401504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967990501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374450401504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73b90201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e677371050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572450401504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565729d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e9d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a65729d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572450401504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e6669676d050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f61739c01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565b5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d110201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365c10201804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579bd02016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465450401504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e657373a105017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461b5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e1102015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e677379050105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963658105015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f62757965729d0501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073a505019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d110201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365c50201ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461b1050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265b5050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c011064617461c105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265b5050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e677371050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c791102012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773790501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e000071050c2c70616c6c65745f6e66747314747970657320426974466c616773040454017505000400300144436f6c6c656374696f6e53657474696e67000075050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f73697452657175697265640010000079050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f747970657d0501584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365810501344f7074696f6e3c50726963653e00012c73746172745f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b1102014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773850501304974656d53657474696e677300007d050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000810504184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000085050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401890500040030012c4974656d53657474696e67000089050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b656441747472696275746573000400008d050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d6574616461746173cc010c7533320001306974656d5f636f6e66696773cc010c75333200012861747472696275746573cc010c7533320000910504184f7074696f6e0404540195050108104e6f6e6500000010536f6d6504009505000001000095050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d110201384f7074696f6e3c4974656d49643e0001286d696e745f70726963658105013c4f7074696f6e3c42616c616e63653e000099050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773850501304974656d53657474696e677300009d0504184f7074696f6e0404540145040108104e6f6e6500000010536f6d65040045040000010000a1050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000a5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a905045300000400ad0501185665633c543e0000a9050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000ad05000002a90500b1050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465731903015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f70726963658105013c4f7074696f6e3c42616c616e63653e0000b505082873705f72756e74696d65384d756c74695369676e617475726500010c1c456432353531390400b9050148656432353531393a3a5369676e61747572650000001c537232353531390400b9050148737232353531393a3a5369676e61747572650001001445636473610400bd05014065636473613a3a5369676e617475726500020000b905000003400000000800bd05000003410000000800c1050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465731903015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365c10201744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e650000c5050c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c7565c9050150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec905104c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d734452756e74696d65506172616d65746572730001043452756e74696d65436f6e6669670400cd0501a864796e616d69635f706172616d733a3a72756e74696d655f636f6e6669673a3a506172616d657465727300000000cd05184c73746f726167655f6875625f72756e74696d651c636f6e666967733872756e74696d655f706172616d733864796e616d69635f706172616d733872756e74696d655f636f6e66696728506172616d657465727300011064536c617368416d6f756e745065724d617846696c6553697a650800e1020164536c617368416d6f756e745065724d617846696c6553697a6500008105013c4f7074696f6e3c42616c616e63653e000000585374616b65546f4368616c6c656e6765506572696f640800e50201585374616b65546f4368616c6c656e6765506572696f6400008105013c4f7074696f6e3c42616c616e63653e00010064436865636b706f696e744368616c6c656e6765506572696f640800e9020164436865636b706f696e744368616c6c656e6765506572696f6400001102014c4f7074696f6e3c426c6f636b4e756d6265723e000200484d696e4368616c6c656e6765506572696f640800ed0201484d696e4368616c6c656e6765506572696f6400001102014c4f7074696f6e3c426c6f636b4e756d6265723e00030000d1050c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742ed5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a401185665633c543e0000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400e10501185665633c543e0000dd050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000e105000002dd0500e5050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee905000002ed0500ed050000040800690400f10500000408f5053800f5050c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d0000f9050c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742efd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d04045300000400010601185665633c543e000001060000026d04000506084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c7536340000090600000408050610000d060c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401e9010453000004001106012c42547265655365743c543e000011060420425472656553657404045401e90100040015060000001506000002e9010019060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d06045300000400250601185665633c543e00001d06086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74e90101185061726149640001147374617465210601344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e6465784d03010c7531360001286c6173745f696e6465784d03010c75313600002106086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e6465640001000025060000021d0600290600000408e9014d03002d060c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e00003106086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c753332000035060c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e39060c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f717565726965723d0601644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679410601404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed901014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e73654906014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d626572000200003d0604184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000410604184f7074696f6e0404540145060108104e6f6e6500000010536f6d650400450600000100004506000004080808004906080c78636d4456657273696f6e6564526573706f6e736500010c08563204008904013076323a3a526573706f6e73650002000856330400b904013076333a3a526573706f6e736500030008563404003101013076343a3a526573706f6e7365000400004d060000040810d9010051060000040c3028100055060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159060453000004005d0601185665633c543e0000590600000408d90110005d0600000259060061060c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e745461726765747304006506013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000650604184f7074696f6e04045401380108104e6f6e6500000010536f6d65040038000001000069060000040c10001105006d060c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720198304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d901014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273710601d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e000071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017506045300000400790601185665633c543e000075060000040898180079060000027506007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018106045300000400850601185665633c543e000081060000040818d90100850600000281060089060c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d06085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e50100180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273910601844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000910604184f7074696f6e0404540195060108104e6f6e6500000010536f6d650400950600000100009506085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e5010008011070726576e50101344d6573736167654f726967696e0001106e657874e50101344d6573736167654f726967696e0000990600000408e50110009d06085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170a106019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000a1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a5060c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90600000408ad061000ad060c6070616c6c65745f73746f726167655f70726f7669646572731474797065733c53746f7261676550726f7669646572040454000108544261636b757053746f7261676550726f76696465720400b10601604261636b757053746f7261676550726f76696465723c543e0000004c4d61696e53746f7261676550726f76696465720400b50601584d61696e53746f7261676550726f76696465723c543e00010000b1060c6070616c6c65745f73746f726167655f70726f766964657273147479706573544261636b757053746f7261676550726f76696465720404540000200120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e000110726f6f743401544d65726b6c655061747269636961526f6f743c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e74496400014472657075746174696f6e5f77656967687410015c52657075746174696f6e576569676874547970653c543e0000b5060c6070616c6c65745f73746f726167655f70726f7669646572731474797065734c4d61696e53746f7261676550726f7669646572040454000020011c6275636b657473b90601284275636b6574733c543e000120636170616369747930014853746f7261676544617461556e69743c543e00013463617061636974795f7573656430014853746f7261676544617461556e69743c543e0001386d756c7469616464726573736573f50101d4426f756e6465645665633c4d756c7469416464726573733c543e2c204d61784d756c746941646472657373416d6f756e743c543e3e00012876616c75655f70726f700102014c56616c756550726f706f736974696f6e3c543e0001506c6173745f63617061636974795f6368616e6765100144426c6f636b4e756d626572466f723c543e0001346f776e65725f6163636f756e74000130543a3a4163636f756e74496400013c7061796d656e745f6163636f756e74000130543a3a4163636f756e7449640000b9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd06045300000400c10601185665633c543e0000bd060c6070616c6c65745f73746f726167655f70726f766964657273147479706573184275636b65740404540000180110726f6f743401544d65726b6c655061747269636961526f6f743c543e00011c757365725f6964000130543a3a4163636f756e7449640001186d73705f69643401604d61696e53746f7261676550726f766964657249643c543e00011c70726976617465200110626f6f6c000150726561645f6163636573735f67726f75705f6964110201704f7074696f6e3c543a3a5265616441636365737347726f757049643e00011073697a6530014853746f7261676544617461556e69743c543e0000c106000002bd0600c5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e0000c9060c6070616c6c65745f73746f726167655f70726f7669646572731870616c6c6574144572726f7204045400016c44416c72656164795265676973746572656400000471014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420697320616c726561647920726567697374657265642061732061204d5350206f72204253502e485369676e55704e6f7452657175657374656400010459014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e207570207468617420776173206e6f74207265717565737465642070726576696f75736c792e505369676e55705265717565737450656e64696e670002048d014572726f72207468726f776e207768656e2061207573657220747269657320746f207265717565737420746f207369676e207570207768656e20697420616c7265616479206861732061207369676e20757020726571756573742070656e64696e672e384e6f4d756c7469416464726573730003040d014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020776974686f757420616e79206d756c7469616464726573732e4c496e76616c69644d756c74694164647265737300040491014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e20757020617320612053502062757420616e79206f66207468652070726f7669646564206d756c746961646472657373657320697320696e76616c69642e3453746f72616765546f6f4c6f7700050401024572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e207570206f72206368616e67652069747320636170616369747920746f2073746f7265206c6573732073746f72616765207468616e20746865206d696e696d756d207265717569726564206279207468652072756e74696d652e404e6f74456e6f75676842616c616e636500060431024572726f72207468726f776e207768656e2061207573657220646f6573206e6f74206861766520656e6f7567682062616c616e636520746f2070617920746865206465706f736974207468617420697420776f756c6420696e637572206279207369676e696e672075702061732061205350206f72206368616e67696e67206974732063617061636974792e4443616e6e6f74486f6c644465706f736974000704f9014572726f72207468726f776e207768656e207468652072756e74696d652063616e6e6f7420686f6c6420746865207265717569726564206465706f7369742066726f6d20746865206163636f756e7420746f2072656769737465722069742061732061205350206f72206368616e6765206974732063617061636974792e4453746f726167655374696c6c496e55736500080439014572726f72207468726f776e207768656e2061207573657220747269657320746f207369676e206f6666206173206120535020627574207374696c6c2068617320757365642073746f726167652e5452616e646f6d6e6573734e6f7456616c69645965740009048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e20757020627574207468652072616e646f6d6e65737320697320746f6f20667265736820746f2062652075736564207965742e505369676e55705265717565737445787069726564000a048d014572726f72207468726f776e207768656e2061207573657220747269657320746f20636f6e6669726d2061207369676e2075702062757420746f6f206d7563682074696d6520686173207061737365642073696e63652074686520726571756573742e784e657743617061636974794c6573735468616e5573656453746f72616765000b0451014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f206c657373207468616e2069747320757365642073746f726167652e804e65774361706163697479457175616c7343757272656e744361706163697479000c045d014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207468652073616d652076616c756520697420616c7265616479206861732e544e6577436170616369747943616e7442655a65726f000d04c9014572726f72207468726f776e207768656e2061207573657220747269657320746f206368616e67652069747320636170616369747920746f207a65726f20287468657265206172652073706563696669632065787472696e7369637320746f207369676e206f66662061732061205350292e4c4e6f74456e6f75676854696d65506173736564000e04d9014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420697420686173206e6f74206265656e20656e6f7567682074696d652073696e636520746865206c6173742074696d65206974206368616e6765642069742e944e65775573656443617061636974794578636565647353746f726167654361706163697479000f04c5014572726f72207468726f776e207768656e206120535020747269657320746f206368616e6765206974732063617061636974792062757420746865206e6577206361706163697479206973206e6f7420656e6f75676820746f2073746f72652074686520757365642073746f726167652e344e6f745265676973746572656400100465014572726f72207468726f776e207768656e2061207573657220747269657320746f20696e746572616374206173206120535020627574206973206e6f7420726567697374657265642061732061204d5350206f72204253502e204e6f55736572496400110431014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e67206120557365722049442e284e6f4275636b6574496400120439014572726f72207468726f776e207768656e20747279696e6720746f20676574206120726f6f742066726f6d2061204d535020776974686f75742070617373696e672061204275636b65742049442e6c537052656769737465726564427574446174614e6f74466f756e64001304d1014572726f72207468726f776e207768656e206120757365722068617320612053502049442061737369676e656420746f2069742062757420746865205350206461746120646f6573206e6f7420657869737420696e2073746f726167652028496e636f6e73697374656e6379206572726f72292e384275636b65744e6f74466f756e64001404d84572726f72207468726f776e207768656e2061206275636b6574204944206973206e6f7420666f756e6420696e2073746f726167652e4c4275636b6574416c7265616479457869737473001504e04572726f72207468726f776e207768656e2061206275636b657420494420616c72656164792065786973747320696e2073746f726167652e5c417070656e644275636b6574546f4d73704661696c656400160445014572726f72207468726f776e207768656e2061206275636b657420494420636f756c64206e6f7420626520616464656420746f20746865206c697374206f66206275636b657473206f662061204d53502e5050726f76696465724e6f74536c61736861626c650017043d014572726f72207468726f776e207768656e20616e20617474656d707420776173206d61646520746f20736c61736820616e20756e736c61736861626c652053746f726167652050726f76696465722e68496e76616c6964456e636f64656446696c654d6574616461746100180475014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206d657461646174612066726f6d206120726563656976656420747269652076616c75652074686174207761732072656d6f7665642e5c496e76616c6964456e636f6465644163636f756e74496400190451014572726f72207468726f776e207768656e206661696c696e6720746f206465636f646520746865206f776e6572204163636f756e742049442066726f6d20746865207265636569766564206d657461646174612e545061796d656e7453747265616d4e6f74466f756e64001a0421014572726f72207468726f776e207768656e20747279696e6720746f207570646174652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e67cd060c4870616c6c65745f66696c655f73797374656d1474797065735853746f72616765526571756573744d6574616461746104045400003001307265717565737465645f61741001345469636b4e756d6265723c543e0001146f776e6572000130543a3a4163636f756e7449640001246275636b65745f69643401384275636b65744964466f723c543e0001206c6f636174696f6e1502013c46696c654c6f636174696f6e3c543e00012c66696e6765727072696e7434013846696e6765727072696e743c543e00011073697a6530013853746f72616765446174613c543e00010c6d7370d10601804f7074696f6e3c2850726f76696465724964466f723c543e2c20626f6f6c293e000134757365725f706565725f696473f5010128506565724964733c543e00013c646174615f7365727665725f737073d90601e4426f756e6465645665633c50726f76696465724964466f723c543e2c204d61784273707350657253746f72616765526571756573743c543e3e000134627370735f72657175697265641001605265706c69636174696f6e546172676574547970653c543e000138627370735f636f6e6669726d65641001605265706c69636174696f6e546172676574547970653c543e000140627370735f766f6c756e7465657265641001605265706c69636174696f6e546172676574547970653c543e0000d10604184f7074696f6e04045401d5060108104e6f6e6500000010536f6d650400d5060000010000d50600000408342000d9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e0000dd0600000408343400e1060c4870616c6c65745f66696c655f73797374656d1474797065736853746f7261676552657175657374427370734d657461646174610404540000040124636f6e6669726d6564200110626f6f6c0000e5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e0000e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f10601185665633c543e0000ed0600000408003400f106000002ed0600f5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd06045300000400f90601185665633c543e0000f906000002dd0600fd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd06045300000400f90601185665633c543e000001070000040810300005070c4870616c6c65745f66696c655f73797374656d147479706573644d6f76654275636b6574526571756573744d657461646174610404540000040124726571756573746572000130543a3a4163636f756e744964000009070c4870616c6c65745f66696c655f73797374656d1870616c6c6574144572726f720404540001f47c53746f7261676552657175657374416c726561647952656769737465726564000004d853746f72616765207265717565737420616c7265616479207265676973746572656420666f722074686520676976656e2066696c652e5853746f72616765526571756573744e6f74466f756e64000104c853746f726167652072657175657374206e6f74207265676973746572656420666f722074686520676976656e2066696c652e6053746f72616765526571756573744e6f745265766f6b656400020415014f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206973206e6f74206265696e67207265766f6b65642e5053746f7261676552657175657374457869737473000304dc4f7065726174696f6e206e6f7420616c6c6f776564207768696c65207468652073746f726167652072657175657374206578697374732e745265706c69636174696f6e54617267657443616e6e6f7442655a65726f000404885265706c69636174696f6e207461726765742063616e6e6f74206265207a65726f2e644273707352657175697265644578636565647354617267657400050411014253507320726571756972656420666f722073746f7261676520726571756573742063616e6e6f742065786365656420746865206d6178696d756d20616c6c6f7765642e1c4e6f7441427370000604544163636f756e74206973206e6f742061204253502e1c4e6f74414d7370000704544163636f756e74206973206e6f742061204d53502e184e6f74415370000804504163636f756e74206973206e6f7420612053502e444273704e6f74566f6c756e746565726564000904c042535020686173206e6f7420766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e3c4273704e6f74436f6e6669726d6564000a04b442535020686173206e6f7420636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e4c427370416c7265616479436f6e6669726d6564000b04c44253502068617320616c726561647920636f6e6669726d65642073746f72696e672074686520676976656e2066696c652e8c53746f726167655265717565737442737073526571756972656446756c66696c6c6564000c04f44e756d626572206f66204253507320726571756972656420666f722073746f72616765207265717565737420686173206265656e20726561636865642e54427370416c7265616479566f6c756e746565726564000d04c042535020616c726561647920766f6c756e74656572656420746f2073746f72652074686520676976656e2066696c652e74496e73756666696369656e74417661696c61626c654361706163697479000e04ec535020646f6573206e6f74206861766520656e6f7567682073746f7261676520636170616369747920746f2073746f7265207468652066696c652ea0556e65787065637465644e756d6265724f6652656d6f766564566f6c756e74656572656442737073000f0485014e756d626572206f662072656d6f766564204253507320766f6c756e7465657265642066726f6d2073746f7261676520726571756573742070726566697820646964206e6f74206d6174636820746865206578706563746564206e756d6265722e9053746f7261676552657175657374457870697265644e6f536c6f74417661696c61626c6500100431014e6f20736c6f7420617661696c61626c6520666f756e6420696e20626c6f636b7320746f20696e736572742073746f7261676520726571756573742065787069726174696f6e2074696d652e6c53746f72616765526571756573744e6f74417574686f72697a6564001104b44e6f7420617574686f72697a656420746f2064656c657465207468652073746f7261676520726571756573742e544d6178426c6f636b4e756d6265725265616368656400120859014572726f72206372656174656420696e20323032342e20496620796f752073656520746869732c20796f75206172652077656c6c206265796f6e64207468652073696e67756c617269747920616e642073686f756c648070726f6261626c792073746f70207573696e6720746869732070616c6c65742e444661696c6564546f456e636f6465427370001304844661696c656420746f20656e636f64652042535020696420617320736c6963652e644661696c6564546f456e636f646546696e6765727072696e74001404984661696c656420746f20656e636f64652066696e6765727072696e7420617320736c6963652e5c4661696c6564546f4465636f64655468726573686f6c640015046c4661696c656420746f206465636f6465207468726573686f6c642e3841626f76655468726573686f6c640016049042535020646964206e6f742073756363656564207468726573686f6c6420636865636b2e605468726573686f6c6441726974686d657469634572726f72001704a841726974686d65746963206572726f7220696e207468726573686f6c642063616c63756c6174696f6e2e504661696c656454797065436f6e76657273696f6e001804904661696c656420746f20636f6e7665727420746f207072696d697469766520747970652e344469766964656442795a65726f0019043044697669646564206279203068496d706f737369626c654661696c6564546f47657456616c7565001a04c44661696c656420746f206765742076616c7565207768656e206a75737420636865636b656420697420657869737465642e484275636b657449734e6f7450726976617465001b041d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f707269766163796020746f206d616b6520697420707269766174652e384275636b65744e6f74466f756e64001c04544275636b657420646f6573206e6f74206578697374384e6f744275636b65744f776e6572001d0411014f7065726174696f6e206661696c6564206265636175736520746865206163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e5050726f7669646572526f6f744e6f74466f756e64001e047c526f6f74206f66207468652070726f7669646572206e6f7420666f756e642e6445787065637465644e6f6e496e636c7573696f6e50726f6f66001f0415014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f66206e6f6e2d696e636c7573696f6e2e584578706563746564496e636c7573696f6e50726f6f6600200405014661696c656420746f207665726966792070726f6f663a20726571756972656420746f2070726f7669646520612070726f6f66206f6620696e636c7573696f6e2e58496e76616c696446696c654b65794d65746164617461002104c84d6574616461746120646f6573206e6f7420636f72726573706f6e6420746f2065787065637465642066696c65206b65792e5c5468726573686f6c6442656c6f774173796d70746f7465002204d0425350732061737369676e6d656e74207468726573686f6c642063616e6e6f742062652062656c6f77206173796d70746f74652e304e6f7446696c654f776e6572002304d4556e617574686f72697a6564206f7065726174696f6e2c207369676e657220646f6573206e6f74206f776e207468652066696c652e7446696c654b6579416c726561647950656e64696e6744656c6574696f6e0024048846696c65206b657920616c72656164792070656e64696e672064656c6574696f6e2e944d61785573657250656e64696e6744656c6574696f6e526571756573747352656163686564002504d44d6178206e756d626572206f6620757365722070656e64696e672064656c6574696f6e20726571756573747320726561636865642e4c4d73704e6f7453746f72696e674275636b6574002604f8556e617574686f72697a6564206f7065726174696f6e2c207369676e6572206973206e6f7420616e204d5350206f6620746865206275636b65742069642e6446696c654b65794e6f7450656e64696e6744656c6574696f6e002704c046696c65206b6579206e6f7420666f756e6420696e2070656e64696e672064656c6574696f6e2072657175657374732e5046696c6553697a6543616e6e6f7442655a65726f0028046446696c652073697a652063616e6e6f74206265207a65726f2e6c4e6f476c6f62616c52657075746174696f6e576569676874536574002904804e6f20676c6f62616c2072657075746174696f6e20776569676874207365742e704d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002a04844d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e9c5469636b52616e6765546f4d6178696d756d5468726573686f6c6443616e6e6f7442655a65726f002b04bc5469636b2072616e676520746f206d6178696d756d207468726573686f6c642063616e6e6f74206265207a65726f2e8450656e64696e6753746f7053746f72696e67526571756573744e6f74466f756e64002c049c50656e64696e672073746f702073746f72696e672072657175657374206e6f7420666f756e642e7c4d696e57616974466f7253746f7053746f72696e674e6f7452656163686564002d0479014d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e207468652072657175657374206f70656e696e6720616e64206265696e672061626c6520746f20636f6e6669726d206974206e6f7420726561636865642e9850656e64696e6753746f7053746f72696e6752657175657374416c7265616479457869737473002e04b050656e64696e672073746f702073746f72696e67207265717565737420616c7265616479206578697374732e40557365724e6f74496e736f6c76656e74002f04a9014120535020747269656420746f2073746f702073746f72696e672066696c65732066726f6d2061207573657220746861742077617320737570706f7365646c7920696e736f6c76656e742c20627574207468652075736572206973206e6f7420696e736f6c76656e742e384e6f7453656c65637465644d7370003004a101546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374206973206e6f7420746865206f6e652073656c656374656420746f2073746f72652069742e4c4d7370416c7265616479436f6e6669726d6564003104ad01546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f72616765207265717565737420746861742069742068617320616c726561647920636f6e6669726d656420746f2073746f72652e4452657175657374576974686f75744d73700032049901546865204d535020697320747279696e6720746f20636f6e6669726d20746f2073746f726520612066696c652066726f6d20612073746f726167652072657175657374207468617420646f6573206e6f7420686176652061204d53502061737369676e65642e5c4d7370416c726561647953746f72696e674275636b657400330498546865204d535020697320616c72656164792073746f72696e6720746865206275636b65742e644d6f76654275636b6574526571756573744e6f74466f756e64003404a44d6f7665206275636b65742072657175657374206e6f7420666f756e6420696e2073746f726167652e484275636b657449734265696e674d6f766564003504cc416374696f6e206e6f7420616c6c6f776564207768696c6520746865206275636b6574206973206265696e67206d6f7665642e50427370416c726561647944617461536572766572003604e442535020697320616c7265616479206120646174612073657276657220666f7220746865206d6f7665206275636b657420726571756573742e5842737044617461536572766572734578636565646564003704f4546f6f206d616e7920726567697374657265642064617461207365727665727320666f7220746865206d6f7665206275636b657420726571756573742e7c46696c654d6574616461746150726f63657373696e67517565756546756c6c003804910154686520626f756e64656420766563746f72207468617420686f6c64732066696c65206d6574616461746120746f2070726f636573732069742069732066756c6c206275742074686572652773207374696c6c206d6f726520746f2070726f636573732e54546f6f4d616e794261746368526573706f6e73657300390490546f6f206d616e7920626174636820726573706f6e73657320746f2070726f636573732e78546f6f4d616e7953746f7261676552657175657374526573706f6e736573003a048c546f6f206d616e792073746f72616765207265717565737420726573706f6e7365732e68496e76616c69644275636b6574496446696c654b657950616972003b049c4275636b657420696420616e642066696c65206b6579207061697220697320696e76616c69642e84496e636f6e73697374656e7453746174654b6579416c7265616479457869737473003c04c44b657920616c72656164792065786973747320696e206d617070696e67207768656e2069742073686f756c64206e6f742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d070000040810340011070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004002d0201185665633c543e000015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d02045300000400990201185665633c543e000019070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401340453000004001d07012c42547265655365743c543e00001d070420425472656553657404045401340004002d0200000021070c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000025070c5070616c6c65745f70726f6f66735f6465616c65721870616c6c6574144572726f720404540001582c4e6f7450726f76696465720000083847656e6572616c206572726f7273c45468652070726f6f66207375626d6974746572206973206e6f74206120726567697374657265642050726f76696465722e5c4368616c6c656e67657351756575654f766572666c6f7700010c70606368616c6c656e6765602065787472696e736963206572726f72730901546865204368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265206d616e75616c206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e7c5072696f726974794368616c6c656e67657351756575654f766572666c6f770002083101546865205072696f726974794368616c6c656e67657351756575652069732066756c6c2e204e6f206d6f7265207072696f72697479206368616c6c656e6765732063616e206265206d616465e4756e74696c20736f6d65206f6620746865206368616c6c656e67657320696e207468652071756575652061726520646973706174636865642e3c4665654368617267654661696c6564000304e05468652066656520666f72207375626d697474696e672061206368616c6c656e676520636f756c64206e6f7420626520636861726765642e38456d7074794b657950726f6f66730004087c607375626d69745f70726f6f66602065787472696e736963206572726f727388546865726520617265206e6f206b65792070726f6f6673207375626d69747465642e5050726f7669646572526f6f744e6f74466f756e64000504b454686520726f6f7420666f72207468652050726f766964657220636f756c64206e6f7420626520666f756e642e205a65726f526f6f7400060ce850726f7669646572206973207375626d697474696e6720612070726f6f66207768656e207468657920686176652061207a65726f20726f6f742e390150726f7669646572732077697468207a65726f20726f6f747320617265206e6f742070726f766964696e6720616e7920736572766963652c20736f20746865792073686f756c64206e6f74206265487375626d697474696e672070726f6f66732e704e6f5265636f72644f664c6173745375626d697474656450726f6f660007142d0150726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468657265206973206e6f207265636f7264206f6620746865206c617374207469636b2074686579587375626d697474656420612070726f6f6620666f722e390150726f7669646572732077686f2061726520726571756972656420746f207375626d69742070726f6f66732073686f756c6420616c7761797320686176652061207265636f7264206f662074686535016c617374207469636b2074686579207375626d697474656420612070726f6f6620666f722c206f7468657277697365206974206d65616e73207468657920686176656e277420737461727465648c70726f766964696e67207365727669636520666f7220616e792075736572207965742e5450726f76696465725374616b654e6f74466f756e64000804985468652070726f7669646572207374616b6520636f756c64206e6f7420626520666f756e642e245a65726f5374616b65000904dc50726f7669646572206973207375626d697474696e6720612070726f6f6620627574207468656972207374616b65206973207a65726f2e605374616b65436f756c644e6f744265436f6e766572746564000a081101546865207374616b65642062616c616e6365206f66207468652050726f766964657220636f756c64206e6f7420626520636f6e76657274656420746f206075313238602e5901546869732073686f756c64206e6f7420626520706f737369626c652c20617320746865206042616c616e63656020747970652073686f756c6420626520616e20756e7369676e656420696e746567657220747970652e604368616c6c656e6765735469636b4e6f7452656163686564000b04e050726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20696e20746865206675747572652e504368616c6c656e6765735469636b546f6f4f6c64000c08510150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b206265666f726520746865206c617374207469636b20746869732070616c6c6574207265676973746572733c6368616c6c656e67657320666f722e544368616c6c656e6765735469636b546f6f4c617465000d08450150726f7669646572206973207375626d697474696e6720612070726f6f6620666f722061207469636b20746f6f206c6174652c20692e652e207468617420746865206368616c6c656e676573207469636b450169732067726561746572206f7220657175616c207468616e20606368616c6c656e6765735f7469636b60202b2060543a3a4368616c6c656e67655469636b73546f6c6572616e63653a3a6765742829602e30536565644e6f74466f756e64000e0ca4546865207365656420666f7220746865207469636b20636f756c64206e6f7420626520666f756e642e5101546869732073686f756c64206e6f7420626520706f737369626c6520666f722061207469636b2077697468696e2074686520604368616c6c656e6765486973746f72794c656e677468602072616e67652c20617301017365656473206172652067656e65726174656420666f7220616c6c207469636b732c20616e642073746f7265642077697468696e20746869732072616e67652e70436865636b706f696e744368616c6c656e6765734e6f74466f756e64000f0ca4436865636b706f696e74206368616c6c656e676573206e6f7420666f756e6420696e20626c6f636b2e5d01546869732073686f756c64206f6e6c7920626520706f737369626c6520696620605469636b546f436865636b706f696e744368616c6c656e676573602069732064657265666572656e63656420666f722061207469636b7874686174206973206e6f74206120636865636b706f696e74207469636b2e74466f7265737450726f6f66566572696669636174696f6e4661696c656400100cd854686520666f726573742070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e49015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f742c206f722062656361757365207468652070726f6f662069739c6e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e404b657950726f6f664e6f74466f756e6400110861015468657265206973206174206c65617374206f6e65206b65792070726f76656e20696e2074686520666f726573742070726f6f662c207468617420646f6573206e6f742068617665206120636f72726573706f6e64696e67286b65792070726f6f662e684b657950726f6f66566572696669636174696f6e4661696c656400120cc441206b65792070726f6f66207375626d6974746564206279207468652050726f766964657220697320696e76616c69642e6d015468697320636f756c642062652062656361757365207468652070726f6f66206973206e6f742076616c696420666f722074686520726f6f74206f662074686174206b65792c206f722062656361757365207468652070726f6f66a86973206e6f742073756666696369656e7420666f7220746865206368616c6c656e676573206d6164652e484661696c6564546f4170706c7944656c7461001304dc4661696c656420746f206170706c792064656c746120746f2074686520666f726573742070726f6f66207061727469616c20747269652e944661696c6564546f55706461746550726f766964657241667465724b657952656d6f76616c001404ec4661696c656420746f20757064617465207468652070726f76696465722061667465722061206b65792072656d6f76616c206d75746174696f6e2e6c546f6f4d616e7956616c696450726f6f665375626d6974746572730015044501546865206c696d6974206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c65207469636b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2907000004083410002d070000040834000031070c5870616c6c65745f7061796d656e745f73747265616d73147479706573584669786564526174655061796d656e7453747265616d04045400001001107261746518013042616c616e63654f663c543e0001446c6173745f636861726765645f7469636b100144426c6f636b4e756d626572466f723c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000035070c5870616c6c65745f7061796d656e745f73747265616d731474797065736044796e616d6963526174655061796d656e7453747265616d040454000010013c616d6f756e745f70726f766964656430014c556e69747350726f7669646564466f723c543e00017470726963655f696e6465785f7768656e5f6c6173745f6368617267656418013042616c616e63654f663c543e000130757365725f6465706f73697418013042616c616e63654f663c543e0001446f75745f6f665f66756e64735f7469636b110201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000039070c5870616c6c65745f7061796d656e745f73747265616d731474797065736850726f76696465724c61737443686172676561626c65496e666f04045400000801506c6173745f63686172676561626c655f7469636b100144426c6f636b4e756d626572466f723c543e00012c70726963655f696e64657818013042616c616e63654f663c543e00003d070c5870616c6c65745f7061796d656e745f73747265616d731870616c6c6574144572726f72040454000140685061796d656e7453747265616d416c726561647945786973747300000469014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f206164642061207061796d656e742073747265616d207468617420616c7265616479206578697374732e545061796d656e7453747265616d4e6f74466f756e64000104bd014572726f72207468726f776e207768656e20612075736572206f6620746869732070616c6c657420747269657320746f207570646174652c2072656d6f7665206f72206368617267652061207061796d656e742073747265616d207468617420646f6573206e6f742065786973742e304e6f744150726f766964657200020471014572726f72207468726f776e207768656e2061207573657220747269657320746f206368617267652061207061796d656e742073747265616d20616e642069742773206e6f74206120726567697374657265642050726f76696465726850726f7669646572496e636f6e73697374656e63794572726f7200030435014572726f72207468726f776e207768656e206661696c696e6720746f2067657420746865207061796d656e74206163636f756e74206f66206120726567697374657265642050726f76696465724443616e6e6f74486f6c644465706f736974000404a9014572726f72207468726f776e207768656e207468652073797374656d2063616e277420686f6c642066756e64732066726f6d2074686520557365722061732061206465706f73697420666f72206372656174696e672061206e6577207061796d656e742073747265616d5055706461746552617465546f53616d655261746500050495014572726f72207468726f776e207768656e20747279696e6720746f20757064617465207468652072617465206f6620612066697865642d72617465207061796d656e742073747265616d20746f207468652073616d652072617465206173206265666f726560557064617465416d6f756e74546f53616d65416d6f756e74000604d1014572726f72207468726f776e207768656e20747279696e6720746f207570646174652074686520616d6f756e742070726f7669646564206f6620612064796e616d69632d72617465207061796d656e742073747265616d20746f207468652073616d6520616d6f756e74206173206265666f7265385261746543616e7442655a65726f000704bd024572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772066697865642d72617465207061796d656e742073747265616d207769746820726174652030206f7220757064617465207468652072617465206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f66697865645f726174655f7061796d656e745f73747265616d20696e73746561642960416d6f756e7450726f766964656443616e7442655a65726f00080425034572726f72207468726f776e207768656e20747279696e6720746f206372656174652061206e65772064796e616d69632d72617465207061796d656e742073747265616d207769746820616d6f756e742070726f76696465642030206f72207570646174652074686520616d6f756e742070726f7669646564206f6620616e206578697374696e67206f6e6520746f2030202873686f756c64207573652072656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d20696e737465616429904c61737443686172676564477265617465725468616e4c61737443686172676561626c6500090425024572726f72207468726f776e207768656e20746865207469636b206e756d626572206f66207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642069732067726561746572207468616e20746865207469636b206e756d626572206f6620746865206c6173742063686172676561626c65207469636b80496e76616c69644c61737443686172676561626c65426c6f636b4e756d626572000a04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c65207469636b206e756d626572207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e74207469636b206e756d626572206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c65207469636b206e756d6265727c496e76616c69644c61737443686172676561626c655072696365496e646578000b04bd024572726f72207468726f776e207768656e20746865206e6577206c6173742063686172676561626c6520707269636520696e646578207468617420697320747279696e6720746f206265207365742069732067726561746572207468616e207468652063757272656e7420707269636520696e646578206f7220736d616c6c6572207468616e207468652070726576696f7573206c6173742063686172676561626c6520707269636520696e646578384368617267654f766572666c6f77000c046d014572726f72207468726f776e207768656e206368617267696e672061207061796d656e742073747265616d20776f756c6420726573756c7420696e20616e206f766572666c6f77206f66207468652062616c616e636520747970654055736572576974686f757446756e6473000d047d014572726f72207468726f776e207768656e20747279696e6720746f206f706572617465207768656e20746865205573657220686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e64732e70557365724e6f74466c61676765644173576974686f757446756e6473000e04e9014572726f72207468726f776e207768656e20612075736572207468617420686173206e6f74206265656e20666c616767656420617320776974686f75742066756e647320747269657320746f20757365207468652065787472696e73696320746f2070617920697473206f75747374616e64696e6720646562745c436f6f6c646f776e506572696f644e6f74506173736564000f04b5014572726f72207468726f776e207768656e2061207573657220747269657320746f20636c6561722074686520666c6167206f66206265696e6720776974686f75742066756e6473206265666f72652074686520636f6f6c646f776e20706572696f642068617320706173736564044901546865206572726f727320746861742063616e206265207468726f776e20627920746869732070616c6c657420746f20696e666f726d2075736572732061626f757420776861742077656e742077726f6e6741070c4870616c6c65745f6275636b65745f6e6674731870616c6c6574144572726f72040454000110484275636b657449734e6f74507269766174650000048d014275636b6574206973206e6f7420707269766174652e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e384e6f744275636b65744f776e65720001049c4163636f756e74206973206e6f7420746865206f776e6572206f6620746865206275636b65742e644e6f436f72726573706f6e64696e67436f6c6c656374696f6e000204dd014e6f20636f6c6c656374696f6e20636f72726573706f6e64696e6720746f20746865206275636b65742e2043616c6c20607570646174655f6275636b65745f70726976616379602066726f6d207468652066696c652073797374656d2070616c6c657420746f206d616b6520697420707269766174652e60436f6e766572744279746573546f426f756e6465645665630003049c4661696c656420746f20636f6e7665727420627974657320746f2060426f756e64656456656360048054686520604572726f726020656e756d206f6620746869732070616c6c65742e45070c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c753332000049070000040c001010004d070000040800100051070000040810000055070c2c70616c6c65745f6e66747314747970657320426974466c616773040454015907000400080138436f6c6c656374696f6e526f6c65000059070c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e000400005d070c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401610724417070726f76616c73016507000c01146f776e65720001244163636f756e744964000124617070726f76616c7365070124417070726f76616c7300011c6465706f7369746107011c4465706f736974000061070c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e6365000065070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b010004560111020453000004006907013842547265654d61703c4b2c20563e00006907042042547265654d617008044b010004560111020004006d070000006d070000027107007107000004080011020075070c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f73697400011064617461b502016c426f756e6465645665633c75382c20537472696e674c696d69743e000079070c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f736974017d072c537472696e674c696d6974000008011c6465706f7369747d07011c4465706f73697400011064617461b502016c426f756e6465645665633c75382c20537472696e674c696d69743e00007d070c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000810700000410101102c102bd0200850700000408b50289070089070c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e749c01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e636500008d0700000408189c0091070c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401000453000004009507012c42547265655365743c543e00009507042042547265655365740404540100000400a400000099070c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01c90220446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d110201384f7074696f6e3c4974656d49643e0001147072696365c50201784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e6500009d070c2c70616c6c65745f6e66747314747970657320426974466c61677304045401a10700040030013450616c6c6574466561747572650000a1070c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000a5070c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea907102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730145041043616c6c015d04245369676e617475726501b50514457874726101ad0700040038000000ad0700000428b107b507b907bd07c107c907cd07d107d507d90700b10710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b50710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000b90710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000bd0710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000c10710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c507010c4572610000c507102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000c90710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400cc0120543a3a4e6f6e63650000cd0710306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000d107086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400dc013042616c616e63654f663c543e0000d50708a463756d756c75735f7072696d6974697665735f73746f726167655f7765696768745f7265636c61696d5053746f726167655765696768745265636c61696d04045400000000d90708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465dd0701104d6f64650000dd0708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000e107084c73746f726167655f6875625f72756e74696d651c52756e74696d6500000000601853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023401030400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000090304000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000fd02040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500001103040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01150301581830426c6f636b57656967687473210389010700f2052a01000b00204aa9d101020040010265cd1d00010bc0560def45010200e000010b0098f73e5d010200f0000100000265cd1d00010bc0de5f59ba0102003001010b00204aa9d1010200400101070088526a74020050000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746831033000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687439034040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3d0319044c73746f726167652d6875622d72756e74696d654c73746f726167652d6875622d72756e74696d6501000000010000000000000044d7bdd8a272ca0d6501000000dd718d5cc53262d401000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000ea93e3f16f3d696202000000fbc577b9d747efd601000000b9e7717ace5b45cd010000001078d7ac24a07b0e010000000be7208954c7c6c901000000966604ffe78eb0920100000001000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669784d03082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e015103003c50617261636861696e53797374656d013c50617261636861696e53797374656d6044556e696e636c756465645365676d656e74010055030400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e7400007d0304000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000810304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100890304001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f416865616401007503040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600009103040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000990304001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000ad030400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100b50380000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100b903040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e3448726d7057617465726d61726b01001010000000000ca02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5048726d704f7574626f756e644d657373616765730100c50304000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100690204000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301006902040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100cd0340000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e01d103017c042853656c66506172614964e90110e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e01f503012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01f9030004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00023450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100e90110640000000001fd03000000032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402000104040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200110404000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402001d040400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020035040400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e014104018410484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e0151040a485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100cd0340000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100550404000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e01590401900001d1050f28417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000001444436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100d50504000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c6973740100d9050400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e01610401a00001e505151c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a40400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100e9050400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100b9020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050069040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405f10500040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01650401a80001f905161041757261011041757261082c417574686f7269746965730100fd050400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f74010005062000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e30207017000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e00171c41757261457874011c41757261457874082c417574686f7269746965730100fd05040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e20536c6f74496e666f0000090604000cd82043757272656e7420736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e00982055706461746564206f6e206561636820626c6f636b20696e697469616c697a6174696f6e2e00000000182458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e64656401000d060400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d70537461747573010019060400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d65737361676573010108020529062d06040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402e9012d06040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e66696701003106302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405e901cd0340000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e01710401ac0c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a6510100000010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e0135061e2c506f6c6b61646f7458636d012c506f6c6b61646f7458636d38305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104023039060400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e00010805024d0610040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f7469666965727300010805024d0630040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f746966795461726765747300010805024d06510604000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100550604000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e000061060400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c05020269066d06040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c657300010402007d06040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000005010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e01750401b0000189061f2843756d756c757358636d0001150501dd01000020304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e5018d0674000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e501040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e145061676573000108050599069d060400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01190501e10110204865617053697a651010009c0100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e34536572766963655765696768742d032c0107005840fba2020070001841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d6178536572766963655765696768742d030400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01a506212450726f766964657273012450726f76696465727330385369676e557052657175657374730001040200a906040028ed0120546865206d617070696e672066726f6d20616e204163636f756e74496420746861742072657175657374656420746f207369676e20757020746f2061207475706c65206f6620746865206d6574616461746120776974682074797065206f662074686520726571756573742c20616e642074686520626c6f636b88206e756d626572207768656e20746865207265717565737420776173206d6164652e00d1012054686973206973207573656420666f72207468652074776f2d737465702070726f63657373206f66207265676973746572696e673a207768656e2061207573657220726571756573747320746f20726567697374657220617320612053502028656974686572204d5350206f7220425350292cb10120746861742072657175657374207769746820746865206d6574616461746120616e6420746865206465706f7369742068656c642069732073746f72656420686572652e205768656e20746865207573657220636f6e6669726d7320746865207369676e2075702c20746865250120726571756573742069732072656d6f7665642066726f6d20746869732073746f7261676520616e64207468652075736572206973207265676973746572656420617320612053502e007020546869732073746f72616765206973207570646174656420696e3aad02202d205b726571756573745f6d73705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6d73705f7369676e5f75702920616e64205b726571756573745f6273705f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a726571756573745f6273705f7369676e5f7570292c207768696368206164642061206e657720656e74727920746f20746865206d61702e9102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f75702920616e64205b63616e63656c5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a63616e63656c5f7369676e5f7570292c2077686963682072656d6f766520616e206578697374696e6720656e7472792066726f6d20746865206d61702e804163636f756e744964546f4d61696e53746f7261676550726f7669646572496400010402003404001ce820546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204d61696e53746f7261676550726f766964657249642e007d012054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e504d61696e53746f7261676550726f7669646572730001040234b5060400280d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f2061204d61696e53746f7261676550726f76696465722e00e02054686973206973207573656420746f206765742061204d61696e2053746f726167652050726f76696465722773206d657461646174612ebd012049742072657475726e7320604e6f6e656020696620746865204d61696e2053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204d61696e2053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5102202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722ea901202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e5502202d205b6164645f76616c75655f70726f705d2863726174653a3a646973706174636861626c65733a3a6164645f76616c75655f70726f70292c20776869636820617070656e64732061206e65772076616c75652070726f706f736974696f6e20746f2074686520656e7472792773206578697374696e67206076616c75655f70726f706020626f756e64656420766563746f722e1c4275636b6574730001040234bd06040024dc20546865206d617070696e672066726f6d2061204275636b6574496420746f2074686174206275636b65742773206d657461646174612e0031012054686973206973207573656420746f206765742061206275636b65742773206d657461646174612c207375636820617320726f6f742c20757365722049442c20616e64204d53502049442e45012049742072657475726e7320604e6f6e656020696620746865204275636b657420494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564206275636b65742e007020546869732073746f72616765206973207570646174656420696e3a9501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e0502202d205b6368616e67655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6368616e67655f726f6f745f6275636b6574292c207768696368206368616e6765732074686520636f72726573706f6e64696e67206275636b6574277320726f6f742e1d02202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b6574292c2077686963682072656d6f7665732074686520656e747279206f662074686520636f72726573706f6e64696e67206275636b65742e7c4d61696e53746f7261676550726f7669646572496473546f4275636b6574730001040234c50604001c0d0120546865206d617070696e672066726f6d2061204d61696e53746f7261676550726f7669646572496420746f206120766563746f72206f66204275636b65744964732e00b1012054686973206973207573656420746f20656666696369656e746c7920726574726965766520746865206c697374206f66206275636b65747320746861742061204d61696e2053746f726167652050726f76696465722069732063757272656e746c792073746f72696e672e007020546869732073746f72616765206973207570646174656420696e3a0501202d205b6164645f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a6164645f6275636b6574294501202d205b72656d6f76655f726f6f745f6275636b65745d287368705f7472616974733a3a4d757461746550726f766964657273496e746572666163653a3a72656d6f76655f726f6f745f6275636b657429884163636f756e744964546f4261636b757053746f7261676550726f76696465724964000104020034040020f020546865206d617070696e672066726f6d20616e204163636f756e74496420746f2061204261636b757053746f7261676550726f766964657249642e0085012054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f7669646572277320756e69717565206964656e746966696572206e656564656420746f2061636365737320697473206d657461646174612e007020546869732073746f72616765206973207570646174656420696e3a005902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e584261636b757053746f7261676550726f7669646572730001040234b1060400241d0120546865206d617070696e672066726f6d2061204261636b757053746f7261676550726f7669646572496420746f2061204261636b757053746f7261676550726f76696465722e00e82054686973206973207573656420746f206765742061204261636b75702053746f726167652050726f76696465722773206d657461646174612ecd012049742072657475726e7320604e6f6e656020696620746865204261636b75702053746f726167652050726f766964657220494420646f6573206e6f7420636f72726573706f6e6420746f20616e792072656769737465726564204261636b75702053746f726167652050726f76696465722e007020546869732073746f72616765206973207570646174656420696e3a5902202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c20776869636820616464732061206e657720656e74727920746f20746865206d617020696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722ea901202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e8901202d205b6368616e67655f63617061636974795d2863726174653a3a646973706174636861626c65733a3a6368616e67655f6361706163697479292c207768696368206368616e6765732074686520656e747279277320606361706163697479602e204d7370436f756e7401001010000000001c4d012054686520616d6f756e74206f66204d61696e2053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204d53507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4502202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204d61696e2053746f726167652050726f76696465722e7501202d205b6d73705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6d73705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e20427370436f756e7401001010000000001c55012054686520616d6f756e74206f66204261636b75702053746f726167652050726f7669646572732074686174206172652063757272656e746c79207265676973746572656420696e207468652072756e74696d652e0019012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f66204253507320696e207468652073797374656d2e007020546869732073746f72616765206973207570646174656420696e3a4d02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c2077686963682061646473206f6e6520746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e7501202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c20776869636820737562747261637473206f6e652066726f6d20746869732073746f726167652e44546f74616c42737073436170616369747901003020000000000000000020d02054686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c204253507320686176652e00c9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920616c6c2042535073206861766520696e207468652073797374656d2c20776869636820697320616c736f207468658d0120746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742063616e206265207573656420627920757365727320696620776520666163746f7220696e20746865207265706c69636174696f6e20666163746f722e007020546869732073746f72616765206973207570646174656420696e3afd02202d205b636f6e6669726d5f7369676e5f75705d2863726174653a3a646973706174636861626c65733a3a636f6e6669726d5f7369676e5f7570292c207768696368206164647320746865206361706163697479206f662074686520726567697374657265642053746f726167652050726f766964657220746f20746869732073746f7261676520696620746865206163636f756e7420746f20636f6e6669726d2069732061204261636b75702053746f726167652050726f76696465722e4502202d205b6273705f7369676e5f6f66665d2863726174653a3a646973706174636861626c65733a3a6273705f7369676e5f6f6666292c2077686963682073756274726163747320746865206361706163697479206f6620746865204261636b75702053746f726167652050726f766964657220746f207369676e206f66662066726f6d20746869732073746f726167652e4055736564427370734361706163697479010030200000000000000000101d012054686520746f74616c20616d6f756e74206f662073746f72616765206361706163697479206f66204253507320746861742069732063757272656e746c7920696e207573652e00e9012054686973206973207573656420746f206b65657020747261636b206f662074686520746f74616c20616d6f756e74206f662073746f7261676520636170616369747920746861742069732063757272656e746c7920696e207573652062792075736572732c2077686963682069732075736566756c20666f720d012073797374656d206d65747269637320616e6420616c736f20746f2063616c63756c617465207468652063757272656e74207072696365206f662073746f726167652e68476c6f62616c4273707352657075746174696f6e576569676874010010100000000004c02054686520746f74616c20676c6f62616c2072657075746174696f6e20776569676874206f6620616c6c20425350732e011d0501f1014020547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e3053704d696e4465706f736974184000407a10f35a0000000000000000000004410120546865206d696e696d756d20616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206265636f6d6520612073746f726167652070726f76696465722e3453704d696e4361706163697479302002000000000000000481012054686520616d6f756e74207468617420612042535020726563656976657320617320616c6c6f636174696f6e206f662073746f72616765206361706163697479207768656e206974206465706f736974732053704d696e4465706f7369742e384465706f736974506572446174611840020000000000000000000000000000000411032054686520736c6f7065206f662074686520636f6c6c61746572616c2076732073746f726167652063617061636974792063757276652e20496e206f74686572207465726d732c20686f77206d616e7920746f6b656e7320612053746f726167652050726f76696465722073686f756c642061646420617320636f6c6c61746572616c20746f20696e637265617365206974732073746f7261676520636170616369747920696e206f6e6520756e6974206f662053746f7261676544617461556e69742e2c4d617846696c6553697a653020ffffffffffffffff0cbc2054686520657374696d61746564206d6178696d756d2073697a65206f6620616e20756e6b6e6f776e2066696c652e00b9012055736564207072696d6172696c7920746f20736c61736820612053746f726167652050726f7669646572207768656e206974206661696c7320746f2070726f766964652061206368756e6b206f66206461746120666f7220616e20756e6b6e6f776e2066696c652073697a652e4c4d61784d756c74694164647265737353697a65101064000000049020546865206d6178696d756d2073697a65206f662061206d756c7469616464726573732e544d61784d756c746941646472657373416d6f756e74101005000000041d0120546865206d6178696d756d20616d6f756e74206f66206d756c7469616464726573736573207468617420612053746f726167652050726f76696465722063616e20686176652e304d617850726f746f636f6c73101064000000044d0120546865206d6178696d756d206e756d626572206f662070726f746f636f6c7320746865204d53502063616e20737570706f727420286174206c656173742077697468696e207468652072756e74696d65292e284d61784275636b65747310101027000004cc20546865206d6178696d756d20616d6f756e74206f66204275636b65747320746861742061204d53502063616e20686176652e344275636b65744465706f736974184000407a10f35a0000000000000000000004f82054686520616d6f756e74207468617420616e206163636f756e742068617320746f206465706f73697420746f206372656174652061206275636b65742e3c4275636b65744e616d654c696d697410106400000004d82054797065207468617420726570726573656e7473207468652062797465206c696d6974206f662061206275636b6574206e616d652e584d6178426c6f636b73466f7252616e646f6d6e6573731010b004000004990120546865206d6178696d756d20616d6f756e74206f6620626c6f636b732061667465722077686963682061207369676e2075702072657175657374206578706972657320736f207468652072616e646f6d6e6573732063616e6e6f742062652063686f73656e7c4d696e426c6f636b734265747765656e43617061636974794368616e67657310100a00000004fc20546865206d696e696d756d20616d6f756e74206f6620626c6f636b73206265747765656e206361706163697479206368616e67657320666f7220612053504444656661756c744d65726b6c65526f6f74348003170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314042501205468652064656661756c742076616c7565206f662074686520726f6f74206f6620746865204d65726b6c652050617472696369612054726965206f66207468652072756e74696d6564536c617368416d6f756e745065724d617846696c6553697a6518400040e59c30120000000000000000000004c5012054686520736c61736820666163746f722064656475637465642066726f6d20612053746f726167652050726f76696465722773206465706f73697420666f722065766572792073696e676c652073746f726167652070726f6f662074686579206661696c20746f2070726f766964652e605374617274696e6752657075746174696f6e57656967687410100100000004dc205374617274696e672072657075746174696f6e2077656967687420666f722061206e65776c792072656769737465726564204253502e01c906282846696c6553797374656d012846696c6553797374656d443c53746f7261676552657175657374730001040234cd060400004853746f7261676552657175657374427370730001080202dd06e1060400186901204120646f75626c65206d61702066726f6d2073746f72616765207265717565737420746f2042535020604163636f756e7449646073207468617420766f6c756e74656572656420746f2073746f7265207468652066696c652e009d0120416e792042535020756e64657220612073746f7261676520726571756573742070726566697820697320636f6e7369646572656420746f206265206120766f6c756e7465657220616e642063616e2062652072656d6f76656420617420616e792074696d652e8102204f6e6365206120425350207375626d69747320612076616c69642070726f6f6620746f20746865207669612074686520606273705f636f6e6669726d5f73746f72696e67602065787472696e7369632c207468652060636f6e6669726d656460206669656c6420696e205b6053746f7261676552657175657374427370734d65746164617461605d2077696c6c2062652073657420746f206074727565602e00bd01205768656e20612073746f7261676520726571756573742069732065787069726564206f722072656d6f7665642c2074686520636f72726573706f6e64696e672073746f7261676520726571756573742070726566697820696e2074686973206d61702069732072656d6f7665642e684275636b6574735769746853746f7261676552657175657374730001080202dd0698040004f420426f6f6b6b656570696e67206f6620746865206275636b65747320636f6e7461696e696e67206f70656e2073746f726167652072657175657374732e6453746f726167655265717565737445787069726174696f6e730101040210e506040004b42041206d6170206f6620626c6f636b7320746f20657870697265642073746f726167652072657175657374732e7846696c6544656c6574696f6e5265717565737445787069726174696f6e730101040210e906040004cc2041206d6170206f6620626c6f636b7320746f20657870697265642066696c652064656c6574696f6e2072657175657374732e704d6f76654275636b65745265717565737445787069726174696f6e730101040210f506040004c42041206d6170206f6620626c6f636b7320746f2065787069726564206d6f7665206275636b65742072657175657374732ea84e657874417661696c61626c6553746f726167655265717565737445787069726174696f6e426c6f636b01001010000000000c5901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772073746f7261676520726571756573742065787069726174696f6e2e006d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a53746f726167655265717565737454746c605d2ebc4e657874417661696c61626c6546696c6544656c6574696f6e5265717565737445787069726174696f6e426c6f636b01001010000000000c7101204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e65772066696c652064656c6574696f6e20726571756573742065787069726174696f6e2e009d0120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a50656e64696e6746696c6544656c6574696f6e5265717565737454746c605d2eb44e657874417661696c61626c654d6f76654275636b65745265717565737445787069726174696f6e426c6f636b01001010000000000c6901204120706f696e74657220746f20746865206561726c6965737420617661696c61626c6520626c6f636b20746f20696e736572742061206e6577206d6f7665206275636b657420726571756573742065787069726174696f6e2e00790120546869732073686f756c6420616c776179732062652067726561746572206f7220657175616c207468616e2063757272656e7420626c6f636b202b205b60436f6e6669673a3a4d6f76654275636b65745265717565737454746c605d2e684e6578745374617274696e67426c6f636b546f436c65616e55700100101000000000141901204120706f696e74657220746f20746865207374617274696e6720626c6f636b20746f20636c65616e20757020657870697265642073746f726167652072657175657374732e006901204966207468697320626c6f636b20697320626568696e64207468652063757272656e7420626c6f636b206e756d6265722c2074686520636c65616e757020616c676f726974686d20696e20606f6e5f69646c65602077696c6c750120617474656d707420746f20616363656c6572617465207468697320626c6f636b20706f696e74657220617320636c6f736520746f206f7220757020746f207468652063757272656e7420626c6f636b206e756d6265722e205468697319012077696c6c20657865637574652070726f7669646564207468617420746865726520697320656e6f7567682072656d61696e696e672077656967687420746f20646f20736f2e6c50656e64696e6746696c6544656c6574696f6e52657175657374730101040200fd0604000c802050656e64696e672066696c652064656c6574696f6e2072657175657374732e00f5012041206d617070696e672066726f6d20612075736572206163636f756e7420696420746f2061206c697374206f662070656e64696e672066696c652064656c6574696f6e2072657175657374732c20686f6c64696e672061207475706c65206f66207468652066696c65206b657920616e64206275636b65742069642e6850656e64696e6753746f7053746f72696e6752657175657374730001080202dd060107040018902050656e64696e672066696c652073746f702073746f72696e672072657175657374732e001102204120646f75626c65206d617070696e672066726f6d204253502049447320746f2061206c697374206f662066696c65206b6579732070656e64696e672073746f702073746f72696e6720726571756573747320746f2074686520626c6f636b20696e2077686963682074686f73652072657175657374732077657265206f70656e65648420616e64207468652070726f76656e2073697a65206f66207468652066696c652efd012054686520626c6f636b206e756d626572206973207573656420746f2061766f69642042535073206265696e672061626c6520746f2073746f702073746f72696e672066696c657320696d6d6564696174656c7920776869636820776f756c6420616c6c6f77207468656d20746f2061766f6964206368616c6c656e676573d501206f66206d697373696e672066696c65732e205468652073697a6520697320746f2062652061626c6520746f2064656372656173652074686569722075736564206361706163697479207768656e207468657920636f6e6669726d20746f2073746f702073746f72696e67207468652066696c652e6450656e64696e674d6f76654275636b657452657175657374730001080202dd060507040010782050656e64696e67206d6f7665206275636b65742072657175657374732e009501204120646f75626c65206d617070696e672066726f6d204d53502049447320746f2061206c697374206f66206275636b65742049447320776869636820746865792063616e20616363657074206f72206465636c696e6520746f2074616b65206f7665722eb8205468652076616c75652069732074686520757365722077686f2072657175657374656420746865206d6f76652e604461746153657276657273466f724d6f76654275636b65740001080202dd0698040004ac204253502064617461207365727665727320666f72206d6f7665206275636b65742072657175657374732e5050656e64696e674275636b657473546f4d6f76650101040234980004090120426f6f6b6b656570696e67206f66206275636b6574732074686174206172652070656e64696e6720746f206265206d6f76656420746f2061206e6577204d53502e445265706c69636174696f6e54617267657401001010000000000cd4204e756d626572206f66204253507320726571756972656420746f2066756c66696c6c20612073746f72616765207265717565737400b501205468697320697320616c736f207573656420617320612064656661756c742076616c756520696620746865204253507320726571756972656420617265206e6f7420737065636966696564207768656e206372656174696e6720612073746f7261676520726571756573742e6c5469636b52616e6765546f4d6178696d756d5468726573686f6c64010010100000000004ed01204e756d626572206f66207469636b7320756e74696c20616c6c204253507320776f756c6420726561636820746865205b60436f6e6669673a3a4d6178696d756d5468726573686f6c64605d20746f20656e73757265207468617420616c6c2042535073206172652061626c6520746f20766f6c756e746565722e012105010d0238604d61784273707350657253746f726167655265717565737410100500000010e8204d6178696d756d206e756d626572206f662053507320284d5350202b20425350732920746861742063616e2073746f726520612066696c652e0055012054686973206973207573656420746f206c696d697420746865206e756d626572206f6620425350732073746f72696e6720612066696c6520616e6420636c61696d696e67207265776172647320666f722069742ead012049662074686973206e756d62657220697320746f6f20686967682c207468656e207468652072657761726420666f722073746f72696e6720612066696c65206d6967687420626520746f2064696c7574656420616e6420706f696e746c65737320746f2073746f72652e784d61784261746368436f6e6669726d53746f72616765526571756573747310100a000000049101204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520636f6e6669726d6564206174206f6e6365207768656e2063616c6c696e6720606273705f636f6e6669726d5f73746f72696e67602e844d617842617463684d7370526573706f6e6453746f72616765526571756573747310100a000000040502204d6178696d756d206261746368206f662073746f7261676520726571756573747320746861742063616e20626520726573706f6e64656420746f206174206f6e6365207768656e2063616c6c696e6720606d73705f726573706f6e645f73746f726167655f72657175657374735f6d756c7469706c655f6275636b657473602e3c4d617846696c655061746853697a651010000200000488204d6178696d756d20627974652073697a65206f6620612066696c6520706174682e344d617850656572496453697a651010640000000480204d6178696d756d20627974652073697a65206f66206120706565722069642e484d61784e756d6265724f665065657249647310100500000004c8204d6178696d756d206e756d626572206f6620706565722069647320666f7220612073746f7261676520726571756573742e6c4d6178446174615365727665724d756c746941646472657373657310100a00000004e0204d6178696d756d206e756d626572206f66206d756c746961646472657373657320666f7220612073746f7261676520726571756573742e584d6178457870697265644974656d73496e426c6f636b101064000000042901204d6178696d756d206e756d626572206f662065787069726564206974656d73202870657220747970652920746f20636c65616e20757020696e20612073696e676c6520626c6f636b2e4453746f726167655265717565737454746c10102800000004902054696d652d746f2d6c69766520666f7220612073746f7261676520726571756573742e7450656e64696e6746696c6544656c6574696f6e5265717565737454746c10102800000004e1012054696d652d746f2d6c69766520666f7220612070656e64696e672066696c652064656c6574696f6e20726571756573742c2061667465722077686963682061207072696f72697479206368616c6c656e67652069732073656e74206f757420746f20656e666f726365207468652064656c6574696f6e2e504d6f76654275636b65745265717565737454746c101028000000045d012054696d652d746f2d6c69766520666f722061206d6f7665206275636b657420726571756573742c20616674657220776869636820746865207265717565737420697320636f6e7369646572656420657870697265642e784d61785573657250656e64696e6744656c6574696f6e526571756573747310100a000000040901204d6178696d756d206e756d626572206f662066696c652064656c6574696f6e207265717565737473206120757365722063616e20686176652070656e64696e672e804d61785573657250656e64696e674d6f76654275636b6574526571756573747310100a000000040101204d6178696d756d206e756d626572206f66206d6f7665206275636b6574207265717565737473206120757365722063616e20686176652070656e64696e672e544d696e57616974466f7253746f7053746f72696e6710100a000000040d02204e756d626572206f6620626c6f636b7320726571756972656420746f2070617373206265747765656e2061204253502072657175657374696e6720746f2073746f702073746f72696e6720612066696c6520616e64206974206265696e672061626c6520746f20636f6e6669726d20746f2073746f702073746f72696e672069742e010907293050726f6f66734465616c6572013050726f6f66734465616c657238505469636b546f4368616c6c656e6765735365656400010402103404001085012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f20612072616e646f6d2073656564207573656420666f722067656e65726174696e6720746865206368616c6c656e67657320696e2074686174207469636b2e0001012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657327207365656420696e2074686520706173742e8d012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d20626c6f636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e685469636b546f436865636b706f696e744368616c6c656e6765730001040210890204001851012041206d617070696e672066726f6d206368616c6c656e676573207469636b20746f206120766563746f72206f6620637573746f6d206368616c6c656e676564206b65797320666f722074686174207469636b2e006d012054686973206973207573656420746f206b65657020747261636b206f6620746865206368616c6c656e67657320746861742068617665206265656e206d61646520696e2074686520706173742c207370656369666963616c6c799020696e2074686520636865636b706f696e74206368616c6c656e676520726f756e64732ef42054686520766563746f7220697320626f756e646564206279205b604d6178437573746f6d4368616c6c656e676573506572426c6f636b466f72605d2e89012054686973206d617070696e6720676f6573206261636b206f6e6c79205b604368616c6c656e6765486973746f72794c656e677468466f72605d207469636b732e2050726576696f7573206368616c6c656e676573206172652072656d6f7665642e484c617374436865636b706f696e745469636b010010100000000018ec20546865206368616c6c656e6765207469636b206f6620746865206c61737420636865636b706f696e74206368616c6c656e676520726f756e642e0069012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d20746865205b604368616c6c656e6765735175657565605d20616e647d01205b605072696f726974794368616c6c656e6765735175657565605d20696e20746865205b605469636b546f436865636b706f696e744368616c6c656e676573605d2053746f726167654d61702e20546865736520636865636b706f696e744d01206368616c6c656e676520726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f72636564206279207468656820607375626d69745f70726f6f66602065787472696e7369632e605469636b546f50726f766964657273446561646c696e657300010802020d079804002045012041206d617070696e672066726f6d206368616c6c656e6765207469636b20746f206120766563746f72206f66206368616c6c656e6765642050726f76696465727320666f722074686174207469636b2e0049012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665206265656e206368616c6c656e6765642c20616e642073686f756c644901207375626d697420612070726f6f66206279207468652074696d65206f6620746865205b604368616c6c656e6765735469636b6572605d207265616368657320746865206e756d62657220757365642061735901206b657920696e20746865206d617070696e672e2050726f7669646572732077686f20646f207375626d697420612070726f6f66206172652072656d6f7665642066726f6d20746865697220726573706563746976653d0120656e74727920616e642070757368656420666f727761726420746f20746865206e657874207469636b20696e20776869636820746865792073686f756c64207375626d697420612070726f6f662e4d012054686f73652077686f20617265207374696c6c20696e2074686520656e747279206279207468652074696d6520746865207469636b20697320726561636865642061726520636f6e7369646572656420746fdc2068617665206661696c656420746f207375626d697420612070726f6f6620616e64207375626a65637420746f20736c617368696e672e884c6173745469636b50726f76696465725375626d69747465644150726f6f66466f7200010402341004002465012041206d617070696e672066726f6d20612050726f766964657220746f20746865206c617374207469636b20666f7220776869636820746865792053484f554c442068617665207375626d697474656420612070726f6f662e410120496620666f7220612050726f7669646572206070602c20604c6173745469636b50726f76696465725375626d69747465644150726f6f66466f725b705d6020697320606e602c207468656e2074686531012050726f76696465722073686f756c64207375626d697420612070726f6f6620666f72207469636b20606e202b207374616b655f746f5f6368616c6c656e67655f706572696f64287029602e007101205468697320676574732075706461746564207768656e20612050726f7669646572207375626d69747320612070726f6f66207375636365737366756c6c7920616e64206973207573656420746f2064657465726d696e65207468652d01206e657874207469636b20666f72207768696368207468652050726f76696465722073686f756c64207375626d697420612070726f6f662c20616e64206974277320646561646c696e652e007101204966207468652050726f7669646572206661696c7320746f207375626d697420612070726f6f6620696e2074696d6520616e6420697320736c61736865642c20746869732077696c6c207374696c6c206765742075706461746564c820746f20746865207469636b2069742073686f756c642068617665207375626d697474656420612070726f6f6620666f722e3c4368616c6c656e676573517565756501001107040018d02041207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0011012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e5c5072696f726974794368616c6c656e676573517565756501001507040028f42041207072696f72697479207175657565206f66206b65797320746861742068617665206265656e206368616c6c656e676564206d616e75616c6c792e0025012054686520646966666572656e6365206265747765656e207468697320616e6420604368616c6c656e676573517565756560206973207468617420746865206368616c6c656e676573290120696e20746869732071756575652061726520676976656e207072696f72697479206f76657220746865206f74686572732e20536f20746869732071756575652073686f756c64206265390120656d7074696564206265666f726520616e79206f6620746865206368616c6c656e67657320696e2074686520604368616c6c656e6765735175657565602061726520646973706174636865642ecc20546869732071756575652073686f756c64206e6f742062652061636365737369626c6520746f20746865207075626c69632e11012054686520656c656d656e747320696e20746869732071756575652077696c6c206265206368616c6c656e67656420696e2074686520636f6d696e6720626c6f636b732c450120616c7761797320656e737572696e67207468617420746865206d6178696d756d206e756d626572206f66206368616c6c656e6765732070657220626c6f636b206973206e6f742065786365656465642e350120412060426f756e64656456656360206973207573656420626563617573652074686520607061726974795f7363616c655f636f6465633a3a4d6178456e636f6465644c656e6020747261697455012069732072657175697265642c20627574207573696e672061206056656344657175656020776f756c64206265206d6f726520656666696369656e7420617320746869732069732061204649464f2071756575652e404368616c6c656e6765735469636b6572010010100000000018e8204120636f756e746572206f6620626c6f636b7320696e207768696368206368616c6c656e67657320776572652064697374726962757465642e004101205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c206173206368616c6c656e67657320617265490120646973747269627574656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e350120447572696e67204d424d736d2c2074686520626c6f636b206e756d62657220696e637265617365732c20627574205b604368616c6c656e6765735469636b6572605d20646f6573206e6f742e48536c61736861626c6550726f7669646572730001040234100400007456616c696450726f6f665375626d6974746572734c6173745469636b730001040210190704001495012041206d617070696e672066726f6d207469636b20746f2050726f7669646572732c20776869636820697320736574206966207468652050726f7669646572207375626d697474656420612076616c69642070726f6f6620696e2074686174207469636b2e005d012054686973206973207573656420746f206b65657020747261636b206f66207468652050726f76696465727320746861742068617665207375626d69747465642070726f6f667320696e20746865206c61737420666577b901207469636b732c20776865726520617661696c6162696c697479206f6e6c7920757020746f20746865206c617374205b60436f6e6669673a3a5461726765745469636b7353746f726167654f665375626d697474657273605d207469636b732069732067756172616e746565642e950120546869732073746f72616765206973207468656e206d61646520617661696c61626c6520666f72206f746865722070616c6c65747320746f20757365207468726f75676820746865206050726f6f665375626d697474657273496e74657266616365602e3c4c61737444656c657465645469636b010010100000000010b90120412076616c7565207468617420726570726573656e747320746865206c617374207469636b2074686174207761732064656c657465642066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d61702e00a5012054686973206973207573656420746f206b6e6f77207768696368207469636b20746f2064656c6574652066726f6d20746865205b6056616c696450726f6f665375626d6974746572734c6173745469636b73605d2053746f726167654d6170207768656e207468656820606f6e5f69646c656020686f6f6b2069732063616c6c65642e584368616c6c656e6765735469636b65725061757365640000980400201901204120626f6f6c65616e207468617420726570726573656e7473207768657468657220746865205b604368616c6c656e6765735469636b6572605d206973207061757365642e00c9012042792064656661756c742c2074686973206973206066616c7365602c206d65616e696e67207468617420746865205b604368616c6c656e6765735469636b6572605d20697320696e6372656d656e7465642065766572792074696d6520606f6e5f706f6c6c602069732063616c6c65642ec10120546869732063616e2062652073657420746f2060747275656020776869636820776f756c6420706175736520746865205b604368616c6c656e6765735469636b6572605d2c2070726576656e74696e672060646f5f6e65775f6368616c6c656e6765735f726f756e64602066726f6d6c206265696e672065786563757465642e205468657265666f72653a4d01202d204e6f206e65772072616e646f6d206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f4368616c6c656e67657353656564605d2e7501202d204e6f206e657720636865636b706f696e74206368616c6c656e67657320776f756c6420626520656d697474656420616e6420616464656420746f205b605469636b546f436865636b706f696e744368616c6c656e676573605d2ef8202d20446561646c696e657320666f722070726f6f66207375626d697373696f6e732061726520696e646566696e6974656c7920706f7374706f6e65642e4050617374426c6f636b73576569676874000104021028040010f82041206d617070696e672066726f6d20626c6f636b206e756d62657220746f2074686520776569676874207573656420696e207468617420626c6f636b2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e750120497420697320636c656172656420666f7220626c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d20285b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d202b2031292e484e6f7446756c6c426c6f636b73436f756e7401001010000000000c9d0120546865206e756d626572206f6620626c6f636b7320746861742068617665206265656e20636f6e73696465726564205f6e6f745f2066756c6c20696e20746865206c617374205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d2e0021012054686973206973207573656420746f20636865636b20696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e015505015d023c6052616e646f6d4368616c6c656e676573506572426c6f636b10100a00000008510120546865206e756d626572206f662072616e646f6d206368616c6c656e6765732074686174206172652067656e6572617465642070657220626c6f636b2c207573696e67207468652072616e646f6d2073656564682067656e65726174656420666f72207468617420626c6f636b2e6c4d6178437573746f6d4368616c6c656e676573506572426c6f636b10100a000000045d0120546865206d6178696d756d206e756d626572206f6620637573746f6d206368616c6c656e67657320746861742063616e206265206d61646520696e20612073696e676c6520636865636b706f696e7420626c6f636b2e584368616c6c656e6765486973746f72794c656e6774681010640000000ce420546865206e756d626572206f66207469636b732074686174206368616c6c656e67657320686973746f7279206973206b65707420666f722e61012041667465722074686973206d616e79207469636b732c206368616c6c656e676573206172652072656d6f7665642066726f6d205b605469636b546f4368616c6c656e67657353656564605d2053746f726167654d61702e4501204120227469636b2220697320757375616c6c79206f6e6520626c6f636b2c2062757420736f6d6520626c6f636b73206d617920626520736b69707065642064756520746f206d6967726174696f6e732e544368616c6c656e67657351756575654c656e6774681010640000000cc820546865206c656e677468206f662074686520604368616c6c656e6765735175657565602053746f7261676556616c75652e1101205468697320697320746f206c696d6974207468652073697a65206f66207468652071756575652c20616e64207468657265666f726520746865206e756d626572206f6690206d616e75616c206368616c6c656e67657320746861742063616e206265206d6164652e64436865636b706f696e744368616c6c656e6765506572696f641010b80b000024750120546865206e756d626572206f6620626c6f636b7320696e206265747765656e206120636865636b706f696e74206368616c6c656e67657320726f756e642028692e652e207769746820637573746f6d206368616c6c656e676573292e61012054686973206973207573656420746f2064657465726d696e65207768656e20746f20696e636c75646520746865206368616c6c656e6765732066726f6d2074686520604368616c6c656e67657351756575656020616e64710120605072696f726974794368616c6c656e67657351756575656020696e207468652060426c6f636b546f4368616c6c656e676573602053746f726167654d61702e20546865736520636865636b706f696e74206368616c6c656e6765610120726f756e6473206861766520746f20626520616e73776572656420627920414c4c2050726f7669646572732c20616e64207468697320697320656e666f726365642062792074686520607375626d69745f70726f6f66602c2065787472696e7369632e006d01205741524e494e473a205468697320706572696f64206e6565647320746f20626520657175616c206f72206c6172676572207468616e20746865206368616c6c656e676520706572696f64206f662074686520736d616c6c6573747d012050726f766964657220696e20746865206e6574776f726b2e2049662074686520736d616c6c6573742050726f7669646572206861732061206368616c6c656e676520706572696f64206f66203130207469636b732028626c6f636b73292c1101207468656e2074686520636865636b706f696e74206368616c6c656e676520706572696f64206e6565647320746f206265206174206c65617374203130207469636b732e585374616b65546f4368616c6c656e6765506572696f64184000009e1869d0290400000000000000000cd42054686520726174696f20746f20636f6e76657274207374616b65642062616c616e636520746f20626c6f636b20706572696f642e65012054686973206973207573656420746f2064657465726d696e652074686520706572696f6420696e20776869636820612050726f76696465722073686f756c64207375626d697420612070726f6f662c206261736564206f6ee501207468656972207374616b652e2054686520706572696f642069732063616c63756c6174656420617320605374616b65546f4368616c6c656e6765506572696f64202f207374616b65602c2073617475726174696e67206174205b60436f6e6669673a3a4d696e4368616c6c656e6765506572696f64605d2e484d696e4368616c6c656e6765506572696f6410101e00000004550120546865206d696e696d756d20706572696f6420696e20776869636820612050726f76696465722063616e206265206368616c6c656e6765642c207265676172646c657373206f66207468656972207374616b652e5c4368616c6c656e67655469636b73546f6c6572616e63651010320000001c59012054686520746f6c6572616e636520696e206e756d626572206f66207469636b732028616c6d6f7374206571756976616c656e7420746f20626c6f636b732c2062757420736b697070696e67204d424d292074686174590120612050726f76696465722068617320746f207375626d697420612070726f6f662c20636f756e74696e672066726f6d20746865207469636b20746865206368616c6c656e676520697320656d697474656420666f723c20746861742050726f76696465722e00650120466f72206578616d706c652c20696620612050726f766964657220697320737570706f73656420746f207375626d697420612070726f6f6620666f72207469636b20606e602c20616e642074686520746f6c6572616e636569012069732073657420746f206074602c207468656e207468652050726f76696465722068617320746f207375626d697420612070726f6f6620666f72206368616c6c656e67657320696e207469636b20606e602c206265666f72652420606e202b2074602e344368616c6c656e67657346656518400010a5d4e800000000000000000000000cb02054686520666565206368617267656420666f72207375626d697474696e672061206368616c6c656e67652e550120546869732066656520676f657320746f207468652054726561737572792c20616e64206973207573656420746f2070726576656e74207370616d2e20526567697374657265642050726f7669646572732061726558206578656d70742066726f6d2074686973206665652e785461726765745469636b7353746f726167654f665375626d6974746572731010030000000c89012054686520746172676574206e756d626572206f66207469636b7320666f7220776869636820746f2073746f726520746865207375626d6974746572732074686174207375626d69747465642076616c69642070726f6f667320696e207468656d2cad012073746f72656420696e20746865206056616c696450726f6f665375626d6974746572734c6173745469636b73602053746f726167654d61702e20546861742073746f726167652077696c6c206265207472696d6d656420646f776e20746f2074686973206e756d6265723101206f66207469636b7320696e2074686520606f6e5f69646c656020686f6f6b206f6620746869732070616c6c65742c20746f2061766f696420626c6f6174696e67207468652073746174652e504d61785375626d6974746572735065725469636b1010e8030000102d0120546865206d6178696d756d20616d6f756e74206f662050726f76696465727320746861742063616e207375626d697420612070726f6f6620696e20612073696e676c6520626c6f636b2e410120416c74686f75676820746869732063616e206265207365656e20617320616e20617262697472617279206c696d69742c2069662073657420746f2074686520616c7265616479206578697374696e67410120696d706c69636974206c696d697420746861742069732022686f77206d616e7920607375626d69745f70726f6f66602065787472696e736963732066697420696e2074686520776569676874206f66f0206120626c6f636b2c207468697320776f756c646e27742061646420616e79206164646974696f6e616c206172746966696369616c206c696d69742e20547265617375727900800000000000000000000000000000000000000000000000000000000000000000106020546865205472656173757279204163636f756e7449642e5820546865206163636f756e7420746f2077686963683adc202d20546865206665657320666f72207375626d697474696e672061206368616c6c656e676520617265207472616e736665727265642e94202d2054686520736c61736865642066756e647320617265207472616e736665727265642e4c426c6f636b46756c6c6e657373506572696f6410103200000024f82054686520706572696f64206f6620626c6f636b7320666f722077686963682074686520626c6f636b2066756c6c6e65737320697320636865636b65642e00690120546869732069732074686520616d6f756e74206f6620626c6f636b732066726f6d2074686520706173742c20666f722077686963682074686520626c6f636b2066756c6c6e65737320686173206265656e20636865636b65645d0120616e642069732073746f7265642e20426c6f636b73206f6c646572207468616e206063757272656e745f626c6f636b60202d205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d206172655820636c65617265642066726f6d2073746f726167652e008101205468697320636f6e7374616e742073686f756c6420626520657175616c206f7220736d616c6c6572207468616e20746865205b60436f6e6669673a3a4368616c6c656e67655469636b73546f6c6572616e6365605d20636f6e7374616e742c7d012069662074686520676f616c20697320746f2070726576656e74207370616d6d696e672061747461636b73207468617420776f756c642070726576656e7420686f6e6573742050726f7669646572732066726f6d207375626d697474696e67582074686569722070726f6f667320696e2074696d652e54426c6f636b46756c6c6e65737348656164726f6f6d2818a291e146d10414390120546865206d696e696d756d20756e75736564207765696768742074686174206120626c6f636b206d757374206861766520746f20626520636f6e73696465726564205f6e6f745f2066756c6c2e009101205468697320697320757365642061732070617274206f662074686520637269746572696120666f7220636865636b696e6720696620746865206e6574776f726b2069732070726573756d61626c7920756e6465722061207370616d2061747461636b2e890120466f72206578616d706c652c20746869732063616e2062652073657420746f207468652062656e63686d61726b656420776569676874206f66206120607375626d69745f70726f6f66602065787472696e7369632c20776869636820776f756c648d01206d65616e2074686174206120626c6f636b206973206e6f7420636f6e736964657265642066756c6c206966206120607375626d69745f70726f6f66602065787472696e73696320636f756c642068617665207374696c6c2066697420696e2069742e544d696e4e6f7446756c6c426c6f636b73526174696f2107100065cd1d24710120546865206d696e696d756d20726174696f20286f722070657263656e7461676520696620796f752077696c6c29206f6620626c6f636b732074686174206d75737420626520636f6e73696465726564205f6e6f745f2066756c6c2c51012066726f6d2074686520746f74616c206e756d626572206f66205b60436f6e6669673a3a426c6f636b46756c6c6e657373506572696f64605d20626c6f636b732074616b656e20696e746f206163636f756e742e008501204966206c657373207468616e20746869732070657263656e74616765206f6620626c6f636b7320617265206e6f742066756c6c2c20746865206e6574776f726b7320697320636f6e7369646572656420746f2062652070726573756d61626c795420756e6465722061207370616d2061747461636b2e890120546869732063616e20616c736f2062652074686f75676874206f6620617320746865206d6178696d756d20726174696f206f66206d69736265686176696e6720636f6c6c61746f727320746f6c6572617465642e20466f72206578616d706c652ca10120696620746869732069732073657420746f206050657262696c6c3a3a66726f6d5f70657263656e7428353029602c207468656e206966206d6f7265207468616e2068616c66206f6620746865206c6173742060426c6f636b46756c6c6e657373506572696f6460850120626c6f636b7320617265206e6f742066756c6c2c207468656e206f6e65206f662074686f736520626c6f636b7320737572656c79207761732070726f647563656420627920616e20686f6e65737420636f6c6c61746f722c206d65616e696e677501207468617420746865726520776173206174206c65617374206f6e65207472756c79205f6e6f745f2066756c6c20626c6f636b20696e20746865206c6173742060426c6f636b46756c6c6e657373506572696f646020626c6f636b732e0125072a2852616e646f6d6e657373012852616e646f6d6e657373106c4c61746573744f6e6545706f636841676f52616e646f6d6e657373000029070400042d02204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d20746865206f6e652065706f63682061676f2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d6c4c6174657374506172656e74426c6f636b52616e646f6d6e657373000029070400042902204c61746573742072616e646f6d2073656564206f627461696e65642066726f6d2074686520706172656e7420626c6f636b2072616e646f6d6e6573732066726f6d20424142452c20616e6420746865206c617465737420626c6f636b20746861742069742063616e2070726f636573732072616e646f6d6e6573732072657175657374732066726f6d2852656c617945706f636801003020000000000000000004502043757272656e742072656c61792065706f636840496e686572656e74496e636c75646564000098040004e420456e737572657320746865206d616e6461746f727920696e686572656e742077617320696e636c7564656420696e2074686520626c6f636b01590501a50200002b385061796d656e7453747265616d7301385061796d656e7453747265616d7320304f6e506f6c6c5469636b65720100101000000000180901204120636f756e746572206f6620626c6f636b7320666f722077686963682050726f7669646572732063616e206368617267652074686569722073747265616d732e009d01205468697320636f756e746572206973206e6f74206e65636573736172696c79207468652073616d652061732074686520626c6f636b206e756d6265722c20617320746865206c6173742063686172676561626c6520696e666f206f662050726f766964657273bd012028616e642074686520676c6f62616c20707269636520696e6465782920617265207570646174656420696e2074686520606f6e5f706f6c6c6020686f6f6b2c2077686963682068617070656e732061742074686520626567696e6e696e67206f6620657665727920626c6f636b2ced0120736f206c6f6e672061732074686520626c6f636b206973206e6f742070617274206f662061205b4d756c74692d426c6f636b2d4d6967726174696f6e5d2868747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f313738312920284d424d292e190120447572696e67204d424d732c2074686520626c6f636b206e756d62657220696e637265617365732c2062757420604f6e506f6c6c5469636b65726020646f6573206e6f742e5c4669786564526174655061796d656e7453747265616d7300010802022d07310704002481012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722066697865642d72617465207061796d656e742073747265616d732e0065012054686973206973207573656420746f2073746f726520616e64206d616e6167652066697865642d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3aed01202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e4902202d205b64656c6574655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e0102202d205b7570646174655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e7472792773206072617465602ee501202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e747279277320606c6173745f636861726765645f7469636b602e6444796e616d6963526174655061796d656e7453747265616d7300010802022d07350704002489012054686520646f75626c65206d617070696e672066726f6d20612050726f76696465722c20746f206974732070726f76696465642055736572732c20746f2074686569722064796e616d69632d72617465207061796d656e742073747265616d732e006d012054686973206973207573656420746f2073746f726520616e64206d616e6167652064796e616d69632d72617465207061796d656e742073747265616d73206265747765656e20557365727320616e642050726f7669646572732e007020546869732073746f72616765206973207570646174656420696e3afd01202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820616464732061206e657720656e74727920746f20746865206d61702e5902202d205b64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a64656c6574655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f7665732074686520636f72726573706f6e64696e6720656e7472792066726f6d20746865206d61702e3d02202d205b7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a7570646174655f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820757064617465732074686520656e74727927732060616d6f756e745f70726f7669646564602e1502202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820757064617465732074686520656e7472792773206070726963655f696e6465785f7768656e5f6c6173745f63686172676564602e484c61737443686172676561626c65496e666f0101040234390750000000000000000000000000000000000000000018750220546865206d617070696e672066726f6d20612050726f766964657220746f20697473206c6173742063686172676561626c6520707269636520696e6465782028666f722064796e616d69632d72617465207061796d656e742073747265616d732920616e64206c6173742063686172676561626c65207469636b2028666f722066697865642d72617465207061796d656e742073747265616d73292e0069022054686973206973207573656420746f206b65657020747261636b206f6620746865206c6173742063686172676561626c6520707269636520696e64657820616e64207469636b206e756d62657220666f7220656163682050726f76696465722c20736f20746869732070616c6c65742063616e2063686172676520746865207061796d656e742073747265616d7320636f72726563746c792e007020546869732073746f72616765206973207570646174656420696e3a6502202d205b7570646174655f6c6173745f63686172676561626c655f696e666f5d2863726174653a3a5061796d656e744d616e616765723a3a7570646174655f6c6173745f63686172676561626c655f696e666f292c20776869636820757064617465732074686520656e747279277320606c6173745f63686172676561626c655f7469636b6020616e64206070726963655f696e646578602e445573657273576974686f757446756e6473000104020010040020c50120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e20666c616767656420666f72206e6f7420686176696e6720656e6f7567682066756e647320746f2070617920666f7220697473207265717565737465642073657276696365732e00c5012054686973206973207573656420746f20666c6167207573657273207468617420646f206e6f74206861766520656e6f7567682066756e647320746f2070617920666f72207468656972207265717565737465642073657276696365732c20736f206f746865722050726f766964657273942063616e2073746f702070726f766964696e6720736572766963657320746f207468656d2e007020546869732073746f72616765206973207570646174656420696e3a9902202d205b6368617267655f7061796d656e745f73747265616d735d2863726174653a3a646973706174636861626c65733a3a6368617267655f7061796d656e745f73747265616d73292c20776869636820656d6974732061206055736572576974686f757446756e647360206576656e7420616e642073657473207468652075736572277320656e74727920696e2074686973206d617020696620697420646f6573206e6f745501206861766520656e6f7567682066756e64732c20616e6420636c656172732074686520656e747279206966206974207761732073657420616e642074686520757365722068617320656e6f7567682066756e64732e3c526567697374657265645573657273010104020010100000000028b90120546865206d617070696e672066726f6d2061207573657220746f20696620697420686173206265656e207265676973746572656420746f20746865206e6574776f726b20616e642074686520616d6f756e74206f66207061796d656e742073747265616d73206974206861732e0029022053696e6365207573657273206861766520746f2070726f766964652061206465706f73697420746f2062652061626c6520746f206f70656e2065616368207061796d656e742073747265616d2c2074686973206973207573656420746f206b65657020747261636b206f662074686520616d6f756e74206f66207061796d656e742073747265616d7361012074686174206120757365722068617320616e6420697420697320616c736f2075736566756c20746f20636865636b2069662061207573657220686173207265676973746572656420746f20746865206e6574776f726b2e007020546869732073746f72616765206973207570646174656420696e3a6902202d205b6164645f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f66697865645f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7902202d205b6164645f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a6164645f64796e616d69635f726174655f7061796d656e745f73747265616d292c20776869636820686f6c647320746865206465706f736974206f6620746865207573657220616e642061646473206f6e6520746f20746869732073746f726167652e7102202d205b72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f66697865645f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e8102202d205b72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d5d2863726174653a3a646973706174636861626c65733a3a72656d6f76655f64796e616d69635f726174655f7061796d656e745f73747265616d292c2077686963682072656d6f766573206f6e652066726f6d20746869732073746f7261676520616e642072656c656173657320746865206465706f7369742e6843757272656e745072696365506572556e69745065725469636b0100184000000000000000000000000000000000181902205468652063757272656e742070726963652070657220756e697420706572207469636b206f66207468652070726f766964656420736572766963652c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e009102205468697320697320757064617465642065616368207469636b207573696e672074686520666f726d756c61207468617420636f6e7369646572732063757272656e742073797374656d2063617061636974792028746f74616c2073746f72616765206f66207468652073797374656d2920616e642073797374656d20617661696c6162696c6974792028746f74616c2073746f7261676520617661696c61626c65292e007020546869732073746f72616765206973207570646174656420696e3a6d02202d205b646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b5d2863726174653a3a7574696c733a3a646f5f7570646174655f63757272656e745f70726963655f7065725f756e69745f7065725f7469636b292c2077686963682075706461746573207468652063757272656e742070726963652070657220756e697420706572207469636b2e54416363756d756c617465645072696365496e646578010018400000000000000000000000000000000020d1012054686520616363756d756c6174656420707269636520696e6465782073696e63652067656e657369732c207573656420746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732e00f1012054686973206973206571756976616c656e7420746f207768617420697420776f756c64206861766520636f737420746f2073746f7265206f6e6520756e6974206f66207468652070726f766964656420736572766963652073696e63652074686520626567696e6e696e67206f6620746865206e6574776f726b2e050220576520757365207468697320746f2063616c63756c6174652074686520616d6f756e7420746f2063686172676520666f722064796e616d69632d72617465207061796d656e742073747265616d732c20627920636865636b696e67206f75742074686520646966666572656e6365206265747765656e2074686520696e6465785501207768656e20746865207061796d656e742073747265616d20776173206c61737420636861726765642c20616e642074686520696e64657820617420746865206c6173742063686172676561626c65207469636b2e007020546869732073746f72616765206973207570646174656420696e3a2d02202d205b646f5f7570646174655f70726963655f696e6465785d2863726174653a3a7574696c733a3a646f5f7570646174655f70726963655f696e646578292c20776869636820757064617465732074686520616363756d756c6174656420707269636520696e6465782c20616464696e6720746f206974207468652063757272656e742070726963652e015d0501a90208404e657753747265616d4465706f73697410100a00000014910120546865206e756d626572206f66207469636b73207468617420636f72726573706f6e6420746f20746865206465706f7369742074686174206120557365722068617320746f2070617920746f206f70656e2061207061796d656e742073747265616d2ea1012054686973206d65616e7320746861742c2066726f6d207468652062616c616e6365206f6620746865205573657220666f7220776869636820746865207061796d656e742073747265616d206973206265696e6720637265617465642c2074686520616d6f756e74d420604e657753747265616d4465706f736974202a2072617465602077696c6c2062652068656c642061732061206465706f7369742e250220496e207468652063617365206f662064796e616d69632d72617465207061796d656e742073747265616d732c206072617465602077696c6c2062652060616d6f756e745f70726f7669646564202a2063757272656e745f736572766963655f7072696365602c207768657265206063757272656e745f736572766963655f70726963656020686173310120746f2062652070726f7669646564206279207468652070616c6c6574207573696e672074686520605061796d656e7453747265616d73496e746572666163656020696e746572666163652e6055736572576974686f757446756e6473436f6f6c646f776e10106400000008ed0120546865206e756d626572206f66207469636b732074686174206120757365722077696c6c206861766520746f207761697420616674657220697420686173206265656e20666c616767656420617320776974686f75742066756e647320746f2062652061626c6520746f20636c656172207468617420666c6167c90120616e642062652061626c6520746f2070617920666f7220736572766963657320616761696e2e204966207468657265277320616e79206f75747374616e64696e672064656274207768656e2074686520666c616720697320636c65617265642c2069742077696c6c20626520706169642e013d072c284275636b65744e6674730001610501ad02000141072d104e66747301104e6674733c28436f6c6c656374696f6e00010402104507040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202490798040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e7400010802024d079804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f66000108020251075507040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d000108020205035d07040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210750704000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802020503790704000454204d65746164617461206f6620616e206974656d2e244174747269627574650001100202020281078507040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f66000108020205038d07040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802020503910704000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f660001080202050399070400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f6600010402106d050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202050399050400044c20436f6e666967206f6620616e206974656d2e01690501b1023844436f6c6c656374696f6e4465706f736974184000407a10f35a000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418400010a5d4e8000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f73697442617365184000a0724e180900000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000a0724e1809000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518400010a5d4e8000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e2046656174757265739d0720000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01a5073228506172616d65746572730128506172616d65746572730428506172616d657465727300010402d902f5020400044c2053746f72656420706172616d65746572732e01c50501d502000033a907042848436865636b4e6f6e5a65726f53656e646572b1079840436865636b5370656356657273696f6eb5071038436865636b547856657273696f6eb9071030436865636b47656e65736973bd073438436865636b4d6f7274616c697479c1073428436865636b4e6f6e6365c907982c436865636b576569676874cd0798604368617267655472616e73616374696f6e5061796d656e74d107985053746f726167655765696768745265636c61696dd5079844436865636b4d6574616461746148617368d90780e107","id":"1"} \ No newline at end of file diff --git a/runtime/src/apis.rs b/runtime/src/apis.rs index 18ff29bef..b449d4be5 100644 --- a/runtime/src/apis.rs +++ b/runtime/src/apis.rs @@ -9,7 +9,8 @@ use pallet_payment_streams_runtime_api::*; use pallet_proofs_dealer::types::{KeyFor, ProviderIdFor, RandomnessOutputFor}; use pallet_proofs_dealer_runtime_api::*; use pallet_storage_providers::types::{ - BackupStorageProvider, BackupStorageProviderId, ProviderId, StorageDataUnit, StorageProviderId, + BackupStorageProvider, BackupStorageProviderId, BucketId, MainStorageProviderId, ProviderId, + StorageDataUnit, StorageProviderId, }; use pallet_storage_providers_runtime_api::*; use shp_file_metadata::ChunkId; @@ -24,13 +25,6 @@ use sp_runtime::{ }; use sp_std::prelude::Vec; use sp_version::RuntimeVersion; -use xcm::{ - latest::prelude::AssetId, VersionedAssetId, VersionedAssets, VersionedLocation, VersionedXcm, -}; -use xcm_fee_payment_runtime_api::{ - dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, - fees::Error as XcmPaymentApiError, -}; // Local module imports use super::{ @@ -186,45 +180,6 @@ impl_runtime_apis! { } } - impl xcm_fee_payment_runtime_api::fees::XcmPaymentApi for Runtime { - fn query_acceptable_payment_assets(xcm_version: xcm::Version) -> Result, XcmPaymentApiError> { - - let acceptable_assets = vec![AssetId(configs::xcm_config::RelayLocation::get())]; - PolkadotXcm::query_acceptable_payment_assets(xcm_version, acceptable_assets) - } - fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { - match asset.try_as::() { - Ok(asset_id) if asset_id.0 == configs::xcm_config::RelayLocation::get() => { - // for native token - Ok(::weight_to_fee(&weight)) - }, - Ok(asset_id) => { - log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!"); - Err(XcmPaymentApiError::AssetNotFound) - }, - Err(_) => { - log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - failed to convert asset: {asset:?}!"); - Err(XcmPaymentApiError::VersionedConversionFailed) - } - } - } - fn query_xcm_weight(message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_xcm_weight(message) - } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) - } - } - - impl xcm_fee_payment_runtime_api::dry_run::DryRunApi for Runtime { - fn dry_run_call(origin: OriginCaller, call: RuntimeCall) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_call::(origin, call) - } - fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) - } - } - impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) @@ -314,7 +269,7 @@ impl_runtime_apis! { } } - impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { + impl pallet_file_system_runtime_api::FileSystemApi, MainStorageProviderId, H256, BlockNumber, ChunkId> for Runtime { fn query_earliest_file_volunteer_tick(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { FileSystem::query_earliest_file_volunteer_tick(bsp_id, file_key) } @@ -322,6 +277,10 @@ impl_runtime_apis! { fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { FileSystem::query_bsp_confirm_chunks_to_prove_for_file(bsp_id, file_key) } + + fn query_msp_confirm_chunks_to_prove_for_file(msp_id: MainStorageProviderId, file_key: H256) -> Result, QueryMspConfirmChunksToProveForFileError> { + FileSystem::query_msp_confirm_chunks_to_prove_for_file(msp_id, file_key) + } } impl pallet_payment_streams_runtime_api::PaymentStreamsApi, Balance, AccountId> for Runtime { @@ -377,7 +336,7 @@ impl_runtime_apis! { } } - impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit, Balance> for Runtime { + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit, Balance, BucketId> for Runtime { fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { Providers::get_bsp_info(bsp_id) } @@ -386,6 +345,10 @@ impl_runtime_apis! { Providers::get_storage_provider_id(who) } + fn query_msp_id_of_bucket_id(bucket_id: &BucketId) -> Result, QueryMspIdOfBucketIdError> { + Providers::query_msp_id_of_bucket_id(bucket_id) + } + fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result, QueryStorageProviderCapacityError> { Providers::query_storage_provider_capacity(provider_id) } @@ -401,5 +364,9 @@ impl_runtime_apis! { fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option { Providers::get_worst_case_scenario_slashable_amount(&provider_id).ok() } + + fn get_slash_amount_per_max_file_size() -> Balance { + Providers::get_slash_amount_per_max_file_size() + } } } diff --git a/runtime/src/configs/mod.rs b/runtime/src/configs/mod.rs index 098b26254..50d1632a1 100644 --- a/runtime/src/configs/mod.rs +++ b/runtime/src/configs/mod.rs @@ -28,8 +28,8 @@ pub mod xcm_config; // Substrate and Polkadot dependencies use core::marker::PhantomData; -use cumulus_pallet_parachain_system::RelayNumberMonotonicallyIncreases; -use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; +use cumulus_pallet_parachain_system::{RelayChainStateProof, RelayNumberMonotonicallyIncreases}; +use cumulus_primitives_core::{relay_chain::well_known_keys, AggregateMessageOrigin, ParaId}; use frame_support::{ derive_impl, dispatch::DispatchClass, @@ -58,7 +58,7 @@ use shp_file_metadata::{ChunkId, FileMetadata}; use shp_forest_verifier::ForestVerifier; use shp_traits::{CommitmentVerifier, MaybeDebug}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{blake2_256, ConstU128, Get, Hasher, H256}; +use sp_core::{ConstU128, Get, Hasher, H256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, @@ -73,8 +73,8 @@ use xcm::latest::prelude::BodyId; use crate::{ weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}, AccountId, Aura, Balance, Balances, Block, BlockNumber, BucketNfts, CollatorSelection, Hash, - MessageQueue, Nfts, Nonce, PalletInfo, ParachainSystem, PaymentStreams, PolkadotXcm, - ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, + MessageQueue, Nfts, Nonce, PalletInfo, ParachainInfo, ParachainSystem, PaymentStreams, + PolkadotXcm, ProofsDealer, Providers, Runtime, RuntimeCall, RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, Session, SessionKeys, Signature, System, WeightToFee, XcmpQueue, AVERAGE_ON_INITIALIZE_RATIO, BLOCK_PROCESSING_VELOCITY, DAYS, EXISTENTIAL_DEPOSIT, HOURS, MAXIMUM_BLOCK_WEIGHT, MICROUNIT, MINUTES, NORMAL_DISPATCH_RATIO, @@ -393,7 +393,7 @@ fn relay_chain_state_proof() -> RelayChainStateProof { .expect("set in `set_validation_data`"); RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") -} */ +} pub struct BabeDataGetter; impl pallet_randomness::GetBabeData for BabeDataGetter { @@ -408,13 +408,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove frame_system::Pallet::::block_number().into() - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::EPOCH_INDEX) - .ok() - .flatten() - .expect("expected to be able to read epoch index from relay chain state proof") */ - frame_system::Pallet::::block_number().into() + relay_chain_state_proof() + .read_optional_entry(well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") } fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -426,13 +424,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read epoch randomness from relay chain state proof") */ - H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read epoch randomness from relay chain state proof") } fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -446,15 +442,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { } // Note: we use the `CURRENT_BLOCK_RANDOMNESS` key here as it also represents the parent randomness, the only difference // is the block since this randomness is valid, but we don't care about that because we are setting that directly in the `randomness` pallet. - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read parent randomness from relay chain state proof") */ - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().saturating_sub(1).to_le_bytes())) - H256::from_slice(&blake2_256( - &Self::get_epoch_index().saturating_sub(1).to_le_bytes(), - )) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read parent randomness from relay chain state proof") } } diff --git a/types-bundle/dist/runtime.js b/types-bundle/dist/runtime.js index f3ec112fb..2bccb43cd 100644 --- a/types-bundle/dist/runtime.js +++ b/types-bundle/dist/runtime.js @@ -1,273 +1,273 @@ -const FILE_SYSTEM_V1 = { - query_earliest_file_volunteer_tick: { - description: "Query the earliest tick number that a BSP can volunteer for a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result" - }, - query_bsp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryBspConfirmChunksToProveForFileError>" - }, - query_msp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "mspId", - type: "MainStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryMspConfirmChunksToProveForFileError>" - } -}; -const PROOFS_DEALER_V1 = { - get_last_tick_provider_submitted_proof: { - description: "Get the last tick for which the submitter submitted a proof.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_last_checkpoint_challenge_tick: { - description: "Get the last checkpoint challenge tick.", - params: [], - type: "BlockNumber" - }, - get_checkpoint_challenges: { - description: "Get checkpoint challenges for a given block.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result)>, GetCheckpointChallengesError>" - }, - get_challenge_seed: { - description: "Get the seed for a given challenge tick.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result" - }, - get_challenge_period: { - description: "Get the challenge period for a given Provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_checkpoint_challenge_period: { - description: "Get the checkpoint challenge period.", - params: [], - type: "BlockNumber" - }, - get_challenges_from_seed: { - description: "Get challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - }, - { - name: "count", - type: "u32" - } - ], - type: "Vec" - }, - get_forest_challenges_from_seed: { - description: "Get forest challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - }, - get_current_tick: { - description: "Get the current tick.", - params: [], - type: "BlockNumber" - }, - get_next_deadline_tick: { - description: "Get the next deadline tick.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - } -}; -const STORAGE_PROVIDERS_V1 = { - get_bsp_info: { - description: "Get the BSP info for a given BSP ID.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - get_storage_provider_id: { - description: "Get the Storage Provider ID for a given Account ID.", - params: [ - { - name: "who", - type: "AccountId" - } - ], - type: "Option" - }, - get_worst_case_scenario_slashable_amount: { - description: "Get the worst case scenario slashable amount for a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Option" - }, - get_slash_amount_per_max_file_size: { - description: "Get the slashable amount corresponding to the configured max file size.", - params: [], - type: "Balance" - }, - query_storage_provider_capacity: { - description: "Query the storage provider capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_available_storage_capacity: { - description: "Query the available storage capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_earliest_change_capacity_block: { - description: "Query the earliest block number that a BSP can change its capacity.", - params: [ - { - name: "providerId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - query_msp_id_of_bucket_id: { - description: "Query the MSP ID of a bucket ID.", - params: [ - { - name: "bucketId", - type: "H256" - } - ], - type: "Result" - } -}; -const PAYMENT_STREAMS_V1 = { - get_users_with_debt_over_threshold: { - description: "Get the users that have a debt to the provider greater than the threshold.", - params: [ - { - name: "providerId", - type: "ProviderId" - }, - { - name: "threshold", - type: "Balance" - } - ], - type: "Result, GetUsersWithDebtOverThresholdError>" - }, - get_users_of_payment_streams_of_provider: { - description: "Get the payment streams of a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - } -}; -export const runtime = { - FileSystemApi: [ - { - methods: FILE_SYSTEM_V1, - version: 1 - } - ], - ProofsDealerApi: [ - { - methods: PROOFS_DEALER_V1, - version: 1 - } - ], - StorageProvidersApi: [ - { - methods: STORAGE_PROVIDERS_V1, - version: 1 - } - ], - PaymentStreamsApi: [ - { - methods: PAYMENT_STREAMS_V1, - version: 1 - } - ] -}; -//# sourceMappingURL=runtime.js.map +const FILE_SYSTEM_V1 = { + query_earliest_file_volunteer_tick: { + description: "Query the earliest tick number that a BSP can volunteer for a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result" + }, + query_bsp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryBspConfirmChunksToProveForFileError>" + }, + query_msp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "mspId", + type: "MainStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryMspConfirmChunksToProveForFileError>" + } +}; +const PROOFS_DEALER_V1 = { + get_last_tick_provider_submitted_proof: { + description: "Get the last tick for which the submitter submitted a proof.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_last_checkpoint_challenge_tick: { + description: "Get the last checkpoint challenge tick.", + params: [], + type: "BlockNumber" + }, + get_checkpoint_challenges: { + description: "Get checkpoint challenges for a given block.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result)>, GetCheckpointChallengesError>" + }, + get_challenge_seed: { + description: "Get the seed for a given challenge tick.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result" + }, + get_challenge_period: { + description: "Get the challenge period for a given Provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_checkpoint_challenge_period: { + description: "Get the checkpoint challenge period.", + params: [], + type: "BlockNumber" + }, + get_challenges_from_seed: { + description: "Get challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + }, + { + name: "count", + type: "u32" + } + ], + type: "Vec" + }, + get_forest_challenges_from_seed: { + description: "Get forest challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + }, + get_current_tick: { + description: "Get the current tick.", + params: [], + type: "BlockNumber" + }, + get_next_deadline_tick: { + description: "Get the next deadline tick.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + } +}; +const STORAGE_PROVIDERS_V1 = { + get_bsp_info: { + description: "Get the BSP info for a given BSP ID.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + get_storage_provider_id: { + description: "Get the Storage Provider ID for a given Account ID.", + params: [ + { + name: "who", + type: "AccountId" + } + ], + type: "Option" + }, + get_worst_case_scenario_slashable_amount: { + description: "Get the worst case scenario slashable amount for a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Option" + }, + get_slash_amount_per_max_file_size: { + description: "Get the slashable amount corresponding to the configured max file size.", + params: [], + type: "Balance" + }, + query_storage_provider_capacity: { + description: "Query the storage provider capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_available_storage_capacity: { + description: "Query the available storage capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_earliest_change_capacity_block: { + description: "Query the earliest block number that a BSP can change its capacity.", + params: [ + { + name: "providerId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + query_msp_id_of_bucket_id: { + description: "Query the MSP ID of a bucket ID.", + params: [ + { + name: "bucketId", + type: "H256" + } + ], + type: "Result" + } +}; +const PAYMENT_STREAMS_V1 = { + get_users_with_debt_over_threshold: { + description: "Get the users that have a debt to the provider greater than the threshold.", + params: [ + { + name: "providerId", + type: "ProviderId" + }, + { + name: "threshold", + type: "Balance" + } + ], + type: "Result, GetUsersWithDebtOverThresholdError>" + }, + get_users_of_payment_streams_of_provider: { + description: "Get the payment streams of a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + } +}; +export const runtime = { + FileSystemApi: [ + { + methods: FILE_SYSTEM_V1, + version: 1 + } + ], + ProofsDealerApi: [ + { + methods: PROOFS_DEALER_V1, + version: 1 + } + ], + StorageProvidersApi: [ + { + methods: STORAGE_PROVIDERS_V1, + version: 1 + } + ], + PaymentStreamsApi: [ + { + methods: PAYMENT_STREAMS_V1, + version: 1 + } + ] +}; +//# sourceMappingURL=runtime.js.map diff --git a/types-bundle/dist/types.js b/types-bundle/dist/types.js index 9ea5b3c1d..aeb0c03ed 100644 --- a/types-bundle/dist/types.js +++ b/types-bundle/dist/types.js @@ -1,157 +1,157 @@ -export const ALL_TYPES = { - FileMetadata: { - owner: "Vec", - bucket_id: "Vec", - location: "Vec", - file_size: "u64", - fingerprint: "[u8; 32]" - }, - IncompleteFileStatus: { - file_metadata: "FileMetadata", - stored_chunks: "u64", - total_chunks: "u64" - }, - SaveFileToDisk: { - _enum: { - FileNotFound: null, - Success: "FileMetadata", - IncompleteFile: "IncompleteFileStatus" - } - }, - GetFileFromFileStorageResult: { - _enum: { - FileNotFound: null, - FileFound: "FileMetadata", - IncompleteFile: "IncompleteFileStatus", - FileFoundWithInconsistency: "FileMetadata" - } - }, - ProviderId: "H256", - Key: "H256", - RandomnessOutput: "H256", - TrieRemoveMutation: {}, - BackupStorageProviderId: "H256", - MainStorageProviderId: "H256", - StorageData: "u32", - MerklePatriciaRoot: "H256", - ChunkId: "u64", - StorageDataUnit: "u32", - BackupStorageProvider: { - capacity: "StorageData", - data_used: "StorageData", - multiaddresses: "BoundedVec", - root: "MerklePatriciaRoot", - last_capacity_change: "BlockNumber", - owner_account: "AccountId", - payment_account: "AccountId" - }, - StorageProviderId: { - _enum: { - BackupStorageProvider: "BackupStorageProviderId", - MainStorageProvider: "MainStorageProviderId" - } - }, - GetLastTickProviderSubmittedProofError: { - _enum: { - ProviderNotRegistered: null, - ProviderNeverSubmittedProof: null, - InternalApiError: null - } - }, - GetCheckpointChallengesError: { - _enum: { - TickGreaterThanLastCheckpointTick: null, - NoCheckpointChallengesInTick: null, - InternalApiError: null - } - }, - GetChallengeSeedError: { - _enum: { - TickBeyondLastSeedStored: null, - TickIsInTheFuture: null, - InternalApiError: null - } - }, - GetChallengePeriodError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - GetBspInfoError: { - _enum: { - BspNotRegistered: null, - InternalApiError: null - } - }, - GetNextDeadlineTickError: { - _enum: { - ProviderNotRegistered: null, - ProviderNotInitialised: null, - ArithmeticOverflow: null, - InternalApiError: null - } - }, - QueryFileEarliestVolunteerBlockError: { - _enum: { - FailedToEncodeFingerprint: null, - FailedToEncodeBsp: null, - ThresholdArithmeticError: null, - StorageRequestNotFound: null, - InternalError: null - } - }, - QueryBspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryMspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryConfirmChunksToProveForFileError: { - _enum: { - ChallengedChunkToChunkIdError: null - } - }, - GetUsersWithDebtOverThresholdError: { - _enum: { - ProviderNotRegistered: null, - ProviderWithoutPaymentStreams: null, - AmountToChargeOverflow: null, - DebtOverflow: null, - InternalApiError: null - } - }, - QueryStorageProviderCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryAvailableStorageCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryEarliestChangeCapacityBlockError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryMspIdOfBucketIdError: { - _enum: { - BucketNotFound: null, - InternalApiError: null - } - } -}; -//# sourceMappingURL=types.js.map +export const ALL_TYPES = { + FileMetadata: { + owner: "Vec", + bucket_id: "Vec", + location: "Vec", + file_size: "u64", + fingerprint: "[u8; 32]" + }, + IncompleteFileStatus: { + file_metadata: "FileMetadata", + stored_chunks: "u64", + total_chunks: "u64" + }, + SaveFileToDisk: { + _enum: { + FileNotFound: null, + Success: "FileMetadata", + IncompleteFile: "IncompleteFileStatus" + } + }, + GetFileFromFileStorageResult: { + _enum: { + FileNotFound: null, + FileFound: "FileMetadata", + IncompleteFile: "IncompleteFileStatus", + FileFoundWithInconsistency: "FileMetadata" + } + }, + ProviderId: "H256", + Key: "H256", + RandomnessOutput: "H256", + TrieRemoveMutation: {}, + BackupStorageProviderId: "H256", + MainStorageProviderId: "H256", + StorageData: "u32", + MerklePatriciaRoot: "H256", + ChunkId: "u64", + StorageDataUnit: "u32", + BackupStorageProvider: { + capacity: "StorageData", + data_used: "StorageData", + multiaddresses: "BoundedVec", + root: "MerklePatriciaRoot", + last_capacity_change: "BlockNumber", + owner_account: "AccountId", + payment_account: "AccountId" + }, + StorageProviderId: { + _enum: { + BackupStorageProvider: "BackupStorageProviderId", + MainStorageProvider: "MainStorageProviderId" + } + }, + GetLastTickProviderSubmittedProofError: { + _enum: { + ProviderNotRegistered: null, + ProviderNeverSubmittedProof: null, + InternalApiError: null + } + }, + GetCheckpointChallengesError: { + _enum: { + TickGreaterThanLastCheckpointTick: null, + NoCheckpointChallengesInTick: null, + InternalApiError: null + } + }, + GetChallengeSeedError: { + _enum: { + TickBeyondLastSeedStored: null, + TickIsInTheFuture: null, + InternalApiError: null + } + }, + GetChallengePeriodError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + GetBspInfoError: { + _enum: { + BspNotRegistered: null, + InternalApiError: null + } + }, + GetNextDeadlineTickError: { + _enum: { + ProviderNotRegistered: null, + ProviderNotInitialised: null, + ArithmeticOverflow: null, + InternalApiError: null + } + }, + QueryFileEarliestVolunteerBlockError: { + _enum: { + FailedToEncodeFingerprint: null, + FailedToEncodeBsp: null, + ThresholdArithmeticError: null, + StorageRequestNotFound: null, + InternalError: null + } + }, + QueryBspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryMspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryConfirmChunksToProveForFileError: { + _enum: { + ChallengedChunkToChunkIdError: null + } + }, + GetUsersWithDebtOverThresholdError: { + _enum: { + ProviderNotRegistered: null, + ProviderWithoutPaymentStreams: null, + AmountToChargeOverflow: null, + DebtOverflow: null, + InternalApiError: null + } + }, + QueryStorageProviderCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryAvailableStorageCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryEarliestChangeCapacityBlockError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryMspIdOfBucketIdError: { + _enum: { + BucketNotFound: null, + InternalApiError: null + } + } +}; +//# sourceMappingURL=types.js.map diff --git a/types-bundle/src/runtime.ts b/types-bundle/src/runtime.ts index 1bf60dca1..d8d72e829 100644 --- a/types-bundle/src/runtime.ts +++ b/types-bundle/src/runtime.ts @@ -1,278 +1,278 @@ -import type { DefinitionCall, DefinitionsCall } from "@polkadot/types/types"; - -const FILE_SYSTEM_V1: Record = { - query_earliest_file_volunteer_tick: { - description: "Query the earliest tick number that a BSP can volunteer for a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result" - }, - query_bsp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryBspConfirmChunksToProveForFileError>" - }, - query_msp_confirm_chunks_to_prove_for_file: { - description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", - params: [ - { - name: "mspId", - type: "MainStorageProviderId" - }, - { - name: "fileKey", - type: "H256" - } - ], - type: "Result, QueryMspConfirmChunksToProveForFileError>" - } -}; - -const PROOFS_DEALER_V1: Record = { - get_last_tick_provider_submitted_proof: { - description: "Get the last tick for which the submitter submitted a proof.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_last_checkpoint_challenge_tick: { - description: "Get the last checkpoint challenge tick.", - params: [], - type: "BlockNumber" - }, - get_checkpoint_challenges: { - description: "Get checkpoint challenges for a given block.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result)>, GetCheckpointChallengesError>" - }, - get_challenge_seed: { - description: "Get the seed for a given challenge tick.", - params: [ - { - name: "tick", - type: "BlockNumber" - } - ], - type: "Result" - }, - get_challenge_period: { - description: "Get the challenge period for a given Provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - get_checkpoint_challenge_period: { - description: "Get the checkpoint challenge period.", - params: [], - type: "BlockNumber" - }, - get_challenges_from_seed: { - description: "Get challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - }, - { - name: "count", - type: "u32" - } - ], - type: "Vec" - }, - get_forest_challenges_from_seed: { - description: "Get forest challenges from a seed.", - params: [ - { - name: "seed", - type: "RandomnessOutput" - }, - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - }, - get_current_tick: { - description: "Get the current tick.", - params: [], - type: "BlockNumber" - }, - get_next_deadline_tick: { - description: "Get the next deadline tick.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - } -}; - -const STORAGE_PROVIDERS_V1: Record = { - get_bsp_info: { - description: "Get the BSP info for a given BSP ID.", - params: [ - { - name: "bspId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - get_storage_provider_id: { - description: "Get the Storage Provider ID for a given Account ID.", - params: [ - { - name: "who", - type: "AccountId" - } - ], - type: "Option" - }, - get_worst_case_scenario_slashable_amount: { - description: "Get the worst case scenario slashable amount for a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Option" - }, - get_slash_amount_per_max_file_size: { - description: "Get the slashable amount corresponding to the configured max file size.", - params: [], - type: "Balance" - }, - query_storage_provider_capacity: { - description: "Query the storage provider capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_available_storage_capacity: { - description: "Query the available storage capacity.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Result" - }, - query_earliest_change_capacity_block: { - description: "Query the earliest block number that a BSP can change its capacity.", - params: [ - { - name: "providerId", - type: "BackupStorageProviderId" - } - ], - type: "Result" - }, - query_msp_id_of_bucket_id: { - description: "Query the MSP ID of a bucket ID.", - params: [ - { - name: "bucketId", - type: "H256" - } - ], - type: "Result" - } -}; - -const PAYMENT_STREAMS_V1: Record = { - get_users_with_debt_over_threshold: { - description: "Get the users that have a debt to the provider greater than the threshold.", - params: [ - { - name: "providerId", - type: "ProviderId" - }, - { - name: "threshold", - type: "Balance" - } - ], - type: "Result, GetUsersWithDebtOverThresholdError>" - }, - get_users_of_payment_streams_of_provider: { - description: "Get the payment streams of a provider.", - params: [ - { - name: "providerId", - type: "ProviderId" - } - ], - type: "Vec" - } -}; - -export const runtime: DefinitionsCall = { - FileSystemApi: [ - { - methods: FILE_SYSTEM_V1, - version: 1 - } - ], - ProofsDealerApi: [ - { - methods: PROOFS_DEALER_V1, - version: 1 - } - ], - StorageProvidersApi: [ - { - methods: STORAGE_PROVIDERS_V1, - version: 1 - } - ], - PaymentStreamsApi: [ - { - methods: PAYMENT_STREAMS_V1, - version: 1 - } - ] -}; +import type { DefinitionCall, DefinitionsCall } from "@polkadot/types/types"; + +const FILE_SYSTEM_V1: Record = { + query_earliest_file_volunteer_tick: { + description: "Query the earliest tick number that a BSP can volunteer for a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result" + }, + query_bsp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a BSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryBspConfirmChunksToProveForFileError>" + }, + query_msp_confirm_chunks_to_prove_for_file: { + description: "Query the chunks that a MSP needs to prove to confirm that it is storing a file.", + params: [ + { + name: "mspId", + type: "MainStorageProviderId" + }, + { + name: "fileKey", + type: "H256" + } + ], + type: "Result, QueryMspConfirmChunksToProveForFileError>" + } +}; + +const PROOFS_DEALER_V1: Record = { + get_last_tick_provider_submitted_proof: { + description: "Get the last tick for which the submitter submitted a proof.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_last_checkpoint_challenge_tick: { + description: "Get the last checkpoint challenge tick.", + params: [], + type: "BlockNumber" + }, + get_checkpoint_challenges: { + description: "Get checkpoint challenges for a given block.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result)>, GetCheckpointChallengesError>" + }, + get_challenge_seed: { + description: "Get the seed for a given challenge tick.", + params: [ + { + name: "tick", + type: "BlockNumber" + } + ], + type: "Result" + }, + get_challenge_period: { + description: "Get the challenge period for a given Provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + get_checkpoint_challenge_period: { + description: "Get the checkpoint challenge period.", + params: [], + type: "BlockNumber" + }, + get_challenges_from_seed: { + description: "Get challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + }, + { + name: "count", + type: "u32" + } + ], + type: "Vec" + }, + get_forest_challenges_from_seed: { + description: "Get forest challenges from a seed.", + params: [ + { + name: "seed", + type: "RandomnessOutput" + }, + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + }, + get_current_tick: { + description: "Get the current tick.", + params: [], + type: "BlockNumber" + }, + get_next_deadline_tick: { + description: "Get the next deadline tick.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + } +}; + +const STORAGE_PROVIDERS_V1: Record = { + get_bsp_info: { + description: "Get the BSP info for a given BSP ID.", + params: [ + { + name: "bspId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + get_storage_provider_id: { + description: "Get the Storage Provider ID for a given Account ID.", + params: [ + { + name: "who", + type: "AccountId" + } + ], + type: "Option" + }, + get_worst_case_scenario_slashable_amount: { + description: "Get the worst case scenario slashable amount for a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Option" + }, + get_slash_amount_per_max_file_size: { + description: "Get the slashable amount corresponding to the configured max file size.", + params: [], + type: "Balance" + }, + query_storage_provider_capacity: { + description: "Query the storage provider capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_available_storage_capacity: { + description: "Query the available storage capacity.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Result" + }, + query_earliest_change_capacity_block: { + description: "Query the earliest block number that a BSP can change its capacity.", + params: [ + { + name: "providerId", + type: "BackupStorageProviderId" + } + ], + type: "Result" + }, + query_msp_id_of_bucket_id: { + description: "Query the MSP ID of a bucket ID.", + params: [ + { + name: "bucketId", + type: "H256" + } + ], + type: "Result" + } +}; + +const PAYMENT_STREAMS_V1: Record = { + get_users_with_debt_over_threshold: { + description: "Get the users that have a debt to the provider greater than the threshold.", + params: [ + { + name: "providerId", + type: "ProviderId" + }, + { + name: "threshold", + type: "Balance" + } + ], + type: "Result, GetUsersWithDebtOverThresholdError>" + }, + get_users_of_payment_streams_of_provider: { + description: "Get the payment streams of a provider.", + params: [ + { + name: "providerId", + type: "ProviderId" + } + ], + type: "Vec" + } +}; + +export const runtime: DefinitionsCall = { + FileSystemApi: [ + { + methods: FILE_SYSTEM_V1, + version: 1 + } + ], + ProofsDealerApi: [ + { + methods: PROOFS_DEALER_V1, + version: 1 + } + ], + StorageProvidersApi: [ + { + methods: STORAGE_PROVIDERS_V1, + version: 1 + } + ], + PaymentStreamsApi: [ + { + methods: PAYMENT_STREAMS_V1, + version: 1 + } + ] +}; diff --git a/types-bundle/src/types.ts b/types-bundle/src/types.ts index 5f7eafe06..e8b8e9c14 100644 --- a/types-bundle/src/types.ts +++ b/types-bundle/src/types.ts @@ -1,158 +1,158 @@ -import type { RegistryTypes } from "@polkadot/types/types"; - -export const ALL_TYPES: RegistryTypes = { - FileMetadata: { - owner: "Vec", - bucket_id: "Vec", - location: "Vec", - file_size: "u64", - fingerprint: "[u8; 32]" - }, - IncompleteFileStatus: { - file_metadata: "FileMetadata", - stored_chunks: "u64", - total_chunks: "u64" - }, - SaveFileToDisk: { - _enum: { - FileNotFound: null, - Success: "FileMetadata", - IncompleteFile: "IncompleteFileStatus" - } - }, - GetFileFromFileStorageResult: { - _enum: { - FileNotFound: null, - FileFound: "FileMetadata", - IncompleteFile: "IncompleteFileStatus", - FileFoundWithInconsistency: "FileMetadata" - } - }, - ProviderId: "H256", - Key: "H256", - RandomnessOutput: "H256", - TrieRemoveMutation: {}, - BackupStorageProviderId: "H256", - MainStorageProviderId: "H256", - StorageData: "u32", - MerklePatriciaRoot: "H256", - ChunkId: "u64", - StorageDataUnit: "u32", - BackupStorageProvider: { - capacity: "StorageData", - data_used: "StorageData", - multiaddresses: "BoundedVec", - root: "MerklePatriciaRoot", - last_capacity_change: "BlockNumber", - owner_account: "AccountId", - payment_account: "AccountId" - }, - StorageProviderId: { - _enum: { - BackupStorageProvider: "BackupStorageProviderId", - MainStorageProvider: "MainStorageProviderId" - } - }, - GetLastTickProviderSubmittedProofError: { - _enum: { - ProviderNotRegistered: null, - ProviderNeverSubmittedProof: null, - InternalApiError: null - } - }, - GetCheckpointChallengesError: { - _enum: { - TickGreaterThanLastCheckpointTick: null, - NoCheckpointChallengesInTick: null, - InternalApiError: null - } - }, - GetChallengeSeedError: { - _enum: { - TickBeyondLastSeedStored: null, - TickIsInTheFuture: null, - InternalApiError: null - } - }, - GetChallengePeriodError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - GetBspInfoError: { - _enum: { - BspNotRegistered: null, - InternalApiError: null - } - }, - GetNextDeadlineTickError: { - _enum: { - ProviderNotRegistered: null, - ProviderNotInitialised: null, - ArithmeticOverflow: null, - InternalApiError: null - } - }, - QueryFileEarliestVolunteerBlockError: { - _enum: { - FailedToEncodeFingerprint: null, - FailedToEncodeBsp: null, - ThresholdArithmeticError: null, - StorageRequestNotFound: null, - InternalError: null - } - }, - QueryBspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryMspConfirmChunksToProveForFileError: { - _enum: { - StorageRequestNotFound: null, - ConfirmChunks: "QueryConfirmChunksToProveForFileError", - InternalError: null - } - }, - QueryConfirmChunksToProveForFileError: { - _enum: { - ChallengedChunkToChunkIdError: null - } - }, - GetUsersWithDebtOverThresholdError: { - _enum: { - ProviderNotRegistered: null, - ProviderWithoutPaymentStreams: null, - AmountToChargeOverflow: null, - DebtOverflow: null, - InternalApiError: null - } - }, - QueryStorageProviderCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryAvailableStorageCapacityError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryEarliestChangeCapacityBlockError: { - _enum: { - ProviderNotRegistered: null, - InternalApiError: null - } - }, - QueryMspIdOfBucketIdError: { - _enum: { - BucketNotFound: null, - InternalApiError: null - } - } -}; +import type { RegistryTypes } from "@polkadot/types/types"; + +export const ALL_TYPES: RegistryTypes = { + FileMetadata: { + owner: "Vec", + bucket_id: "Vec", + location: "Vec", + file_size: "u64", + fingerprint: "[u8; 32]" + }, + IncompleteFileStatus: { + file_metadata: "FileMetadata", + stored_chunks: "u64", + total_chunks: "u64" + }, + SaveFileToDisk: { + _enum: { + FileNotFound: null, + Success: "FileMetadata", + IncompleteFile: "IncompleteFileStatus" + } + }, + GetFileFromFileStorageResult: { + _enum: { + FileNotFound: null, + FileFound: "FileMetadata", + IncompleteFile: "IncompleteFileStatus", + FileFoundWithInconsistency: "FileMetadata" + } + }, + ProviderId: "H256", + Key: "H256", + RandomnessOutput: "H256", + TrieRemoveMutation: {}, + BackupStorageProviderId: "H256", + MainStorageProviderId: "H256", + StorageData: "u32", + MerklePatriciaRoot: "H256", + ChunkId: "u64", + StorageDataUnit: "u32", + BackupStorageProvider: { + capacity: "StorageData", + data_used: "StorageData", + multiaddresses: "BoundedVec", + root: "MerklePatriciaRoot", + last_capacity_change: "BlockNumber", + owner_account: "AccountId", + payment_account: "AccountId" + }, + StorageProviderId: { + _enum: { + BackupStorageProvider: "BackupStorageProviderId", + MainStorageProvider: "MainStorageProviderId" + } + }, + GetLastTickProviderSubmittedProofError: { + _enum: { + ProviderNotRegistered: null, + ProviderNeverSubmittedProof: null, + InternalApiError: null + } + }, + GetCheckpointChallengesError: { + _enum: { + TickGreaterThanLastCheckpointTick: null, + NoCheckpointChallengesInTick: null, + InternalApiError: null + } + }, + GetChallengeSeedError: { + _enum: { + TickBeyondLastSeedStored: null, + TickIsInTheFuture: null, + InternalApiError: null + } + }, + GetChallengePeriodError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + GetBspInfoError: { + _enum: { + BspNotRegistered: null, + InternalApiError: null + } + }, + GetNextDeadlineTickError: { + _enum: { + ProviderNotRegistered: null, + ProviderNotInitialised: null, + ArithmeticOverflow: null, + InternalApiError: null + } + }, + QueryFileEarliestVolunteerBlockError: { + _enum: { + FailedToEncodeFingerprint: null, + FailedToEncodeBsp: null, + ThresholdArithmeticError: null, + StorageRequestNotFound: null, + InternalError: null + } + }, + QueryBspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryMspConfirmChunksToProveForFileError: { + _enum: { + StorageRequestNotFound: null, + ConfirmChunks: "QueryConfirmChunksToProveForFileError", + InternalError: null + } + }, + QueryConfirmChunksToProveForFileError: { + _enum: { + ChallengedChunkToChunkIdError: null + } + }, + GetUsersWithDebtOverThresholdError: { + _enum: { + ProviderNotRegistered: null, + ProviderWithoutPaymentStreams: null, + AmountToChargeOverflow: null, + DebtOverflow: null, + InternalApiError: null + } + }, + QueryStorageProviderCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryAvailableStorageCapacityError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryEarliestChangeCapacityBlockError: { + _enum: { + ProviderNotRegistered: null, + InternalApiError: null + } + }, + QueryMspIdOfBucketIdError: { + _enum: { + BucketNotFound: null, + InternalApiError: null + } + } +}; diff --git a/xcm-simulator/src/storagehub/apis.rs b/xcm-simulator/src/storagehub/apis.rs index e3db25c93..b04c5d920 100644 --- a/xcm-simulator/src/storagehub/apis.rs +++ b/xcm-simulator/src/storagehub/apis.rs @@ -10,7 +10,8 @@ use pallet_payment_streams_runtime_api::*; use pallet_proofs_dealer::types::{KeyFor, ProviderIdFor, RandomnessOutputFor}; use pallet_proofs_dealer_runtime_api::*; use pallet_storage_providers::types::{ - BackupStorageProvider, BackupStorageProviderId, ProviderId, StorageDataUnit, StorageProviderId, + BackupStorageProvider, BackupStorageProviderId, BucketId, MainStorageProviderId, ProviderId, + StorageDataUnit, StorageProviderId, }; use pallet_storage_providers_runtime_api::*; use shp_file_metadata::ChunkId; @@ -25,10 +26,6 @@ use sp_runtime::{ }; use sp_std::prelude::Vec; use sp_version::RuntimeVersion; -use xcm_fee_payment_runtime_api::{ - dry_run::{CallDryRunEffects, Error as XcmDryRunApiError, XcmDryRunEffects}, - fees::Error as XcmPaymentApiError, -}; // Local module imports use super::{ @@ -184,45 +181,6 @@ impl_runtime_apis! { } } - impl xcm_fee_payment_runtime_api::fees::XcmPaymentApi for Runtime { - fn query_acceptable_payment_assets(xcm_version: xcm::Version) -> Result, XcmPaymentApiError> { - - let acceptable_assets = vec![AssetId(configs::xcm_config::RelayLocation::get())]; - PolkadotXcm::query_acceptable_payment_assets(xcm_version, acceptable_assets) - } - fn query_weight_to_asset_fee(weight: Weight, asset: VersionedAssetId) -> Result { - match asset.try_as::() { - Ok(asset_id) if asset_id.0 == configs::xcm_config::RelayLocation::get() => { - // for native token - Ok(::weight_to_fee(&weight)) - }, - Ok(asset_id) => { - log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - unhandled asset_id: {asset_id:?}!"); - Err(XcmPaymentApiError::AssetNotFound) - }, - Err(_) => { - log::trace!(target: "xcm::xcm_fee_payment_runtime_api", "query_weight_to_asset_fee - failed to convert asset: {asset:?}!"); - Err(XcmPaymentApiError::VersionedConversionFailed) - } - } - } - fn query_xcm_weight(message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_xcm_weight(message) - } - fn query_delivery_fees(destination: VersionedLocation, message: VersionedXcm<()>) -> Result { - PolkadotXcm::query_delivery_fees(destination, message) - } - } - - impl xcm_fee_payment_runtime_api::dry_run::DryRunApi for Runtime { - fn dry_run_call(origin: OriginCaller, call: RuntimeCall) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_call::(origin, call) - } - fn dry_run_xcm(origin_location: VersionedLocation, xcm: VersionedXcm) -> Result, XcmDryRunApiError> { - PolkadotXcm::dry_run_xcm::(origin_location, xcm) - } - } - impl cumulus_primitives_core::CollectCollationInfo for Runtime { fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { ParachainSystem::collect_collation_info(header) @@ -312,7 +270,7 @@ impl_runtime_apis! { } } - impl pallet_file_system_runtime_api::FileSystemApi, H256, BlockNumber, ChunkId> for Runtime { + impl pallet_file_system_runtime_api::FileSystemApi, MainStorageProviderId, H256, BlockNumber, ChunkId> for Runtime { fn query_earliest_file_volunteer_tick(bsp_id: BackupStorageProviderId, file_key: H256) -> Result { FileSystem::query_earliest_file_volunteer_tick(bsp_id, file_key) } @@ -320,6 +278,10 @@ impl_runtime_apis! { fn query_bsp_confirm_chunks_to_prove_for_file(bsp_id: BackupStorageProviderId, file_key: H256) -> Result, QueryBspConfirmChunksToProveForFileError> { FileSystem::query_bsp_confirm_chunks_to_prove_for_file(bsp_id, file_key) } + + fn query_msp_confirm_chunks_to_prove_for_file(msp_id: MainStorageProviderId, file_key: H256) -> Result, QueryMspConfirmChunksToProveForFileError> { + FileSystem::query_msp_confirm_chunks_to_prove_for_file(msp_id, file_key) + } } impl pallet_payment_streams_runtime_api::PaymentStreamsApi, Balance, AccountId> for Runtime { @@ -375,7 +337,7 @@ impl_runtime_apis! { } } - impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit, Balance> for Runtime { + impl pallet_storage_providers_runtime_api::StorageProvidersApi, BackupStorageProvider, AccountId, ProviderId, StorageProviderId, StorageDataUnit, Balance, BucketId> for Runtime { fn get_bsp_info(bsp_id: &BackupStorageProviderId) -> Result, GetBspInfoError> { Providers::get_bsp_info(bsp_id) } @@ -384,6 +346,10 @@ impl_runtime_apis! { Providers::get_storage_provider_id(who) } + fn query_msp_id_of_bucket_id(bucket_id: &BucketId) -> Result, QueryMspIdOfBucketIdError> { + Providers::query_msp_id_of_bucket_id(bucket_id) + } + fn query_storage_provider_capacity(provider_id: &ProviderId) -> Result, QueryStorageProviderCapacityError> { Providers::query_storage_provider_capacity(provider_id) } @@ -399,5 +365,9 @@ impl_runtime_apis! { fn get_worst_case_scenario_slashable_amount(provider_id: ProviderId) -> Option { Providers::get_worst_case_scenario_slashable_amount(&provider_id).ok() } + + fn get_slash_amount_per_max_file_size() -> Balance { + Providers::get_slash_amount_per_max_file_size() + } } } diff --git a/xcm-simulator/src/storagehub/configs/mod.rs b/xcm-simulator/src/storagehub/configs/mod.rs index 947cb7b1d..39836fcf6 100644 --- a/xcm-simulator/src/storagehub/configs/mod.rs +++ b/xcm-simulator/src/storagehub/configs/mod.rs @@ -59,7 +59,7 @@ use polkadot_runtime_common::{ use shp_file_metadata::ChunkId; use shp_traits::{CommitmentVerifier, MaybeDebug, TrieMutation, TrieProofDeltaApplier}; use sp_consensus_aura::sr25519::AuthorityId as AuraId; -use sp_core::{blake2_256, Get, Hasher, H256}; +use sp_core::{Get, Hasher, H256}; use sp_runtime::{ traits::{BlakeTwo256, Convert, ConvertBack, Verify}, AccountId32, DispatchError, Perbill, SaturatedConversion, @@ -386,7 +386,7 @@ fn relay_chain_state_proof() -> RelayChainStateProof { .expect("set in `set_validation_data`"); RelayChainStateProof::new(ParachainInfo::get(), relay_storage_root, relay_chain_state) .expect("Invalid relay chain state proof, already constructed in `set_validation_data`") -} */ +} pub struct BabeDataGetter; impl pallet_randomness::GetBabeData for BabeDataGetter { @@ -401,13 +401,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { const BENCHMARKING_NEW_EPOCH: u64 = 10u64; return BENCHMARKING_NEW_EPOCH; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove frame_system::Pallet::::block_number() - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::EPOCH_INDEX) - .ok() - .flatten() - .expect("expected to be able to read epoch index from relay chain state proof") */ - frame_system::Pallet::::block_number().into() + relay_chain_state_proof() + .read_optional_entry(well_known_keys::EPOCH_INDEX) + .ok() + .flatten() + .expect("expected to be able to read epoch index from relay chain state proof") } fn get_epoch_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -419,13 +417,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { let benchmarking_babe_output = Hash::default(); return benchmarking_babe_output; } - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read epoch randomness from relay chain state proof") */ - H256::from_slice(&blake2_256(&Self::get_epoch_index().to_le_bytes())) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::ONE_EPOCH_AGO_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read epoch randomness from relay chain state proof") } fn get_parent_randomness() -> Hash { if cfg!(feature = "runtime-benchmarks") { @@ -439,15 +435,11 @@ impl pallet_randomness::GetBabeData for BabeDataGetter { } // Note: we use the `CURRENT_BLOCK_RANDOMNESS` key here as it also represents the parent randomness, the only difference // is the block since this randomness is valid, but we don't care about that because we are setting that directly in the `randomness` pallet. - /* relay_chain_state_proof() - .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) - .ok() - .flatten() - .expect("expected to be able to read parent randomness from relay chain state proof") */ - // CRITICAL TODO: Uncomment this after upgrading to polkadot-sdk v1.13.0 and remove H256::from_slice(&blake2_256(&Self::get_epoch_index().saturating_sub(1).to_le_bytes())) - H256::from_slice(&blake2_256( - &Self::get_epoch_index().saturating_sub(1).to_le_bytes(), - )) + relay_chain_state_proof() + .read_optional_entry(well_known_keys::CURRENT_BLOCK_RANDOMNESS) + .ok() + .flatten() + .expect("expected to be able to read parent randomness from relay chain state proof") } } From a44a1693576823185990a735fa8818fa517cb8db Mon Sep 17 00:00:00 2001 From: Tobi Demeco Date: Fri, 4 Oct 2024 16:35:11 -0300 Subject: [PATCH 24/24] chore: :rotating_light: run pnpm fmt:fix --- test/scripts/fullNetBootstrap.ts | 172 +- .../integration/bsp/debt-collection.test.ts | 1390 ++++++++--------- test/suites/integration/bsp/onboard.test.ts | 342 ++-- .../integration/bsp/submit-proofs.test.ts | 1356 ++++++++-------- test/util/bspNet/consts.ts | 200 +-- test/util/bspNet/docker.ts | 570 +++---- test/util/bspNet/helpers.ts | 1054 ++++++------- test/util/bspNet/test-api.ts | 916 +++++------ test/util/constants.ts | 10 +- test/util/fullNet/helpers.ts | 558 +++---- test/util/pjsKeyring.ts | 112 +- 11 files changed, 3340 insertions(+), 3340 deletions(-) diff --git a/test/scripts/fullNetBootstrap.ts b/test/scripts/fullNetBootstrap.ts index d1328306c..a54e863a6 100644 --- a/test/scripts/fullNetBootstrap.ts +++ b/test/scripts/fullNetBootstrap.ts @@ -1,86 +1,86 @@ -import { - BspNetTestApi, - registerToxics, - type BspNetConfig, - type EnrichedBspApi, - type ToxicInfo -} from "../util"; -import * as ShConsts from "../util/bspNet/consts"; -import { runFullNet } from "../util/fullNet/helpers"; - -let api: EnrichedBspApi | undefined; -const fullNetConfig: BspNetConfig = { - noisy: process.env.NOISY === "1", - rocksdb: process.env.ROCKSDB === "1" -}; - -const CONFIG = { - bucketName: "nothingmuch-0", - localPath: "res/whatsup.jpg", - remotePath: "cat/whatsup.jpg" -}; - -async function bootStrapNetwork() { - await runFullNet(fullNetConfig); - - if (fullNetConfig.noisy) { - // For more info on the kind of toxics you can register, - // see: https://github.com/Shopify/toxiproxy?tab=readme-ov-file#toxics - const reqToxics = [ - { - type: "latency", - name: "lag-down", - stream: "upstream", - toxicity: 0.8, - attributes: { - latency: 25, - jitter: 7 - } - }, - { - type: "bandwidth", - name: "low-band", - // Setting as upstream simulates slow user connection - stream: "upstream", - // 50% of the time, the toxic will be applied - toxicity: 0.5, - attributes: { - // 10kbps - rate: 10 - } - } - ] satisfies ToxicInfo[]; - - await registerToxics(reqToxics); - } - - api = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - await api.file.newStorageRequest( - CONFIG.localPath, - CONFIG.remotePath, - CONFIG.bucketName, - ShConsts.DUMMY_MSP_ID - ); - - await api.wait.bspVolunteer(); - await api.wait.bspStored(); - - if (fullNetConfig.noisy) { - console.log("✅ NoisyNet Bootstrap success"); - } else { - console.log("✅ BSPNet Bootstrap success"); - } -} - -bootStrapNetwork() - .catch((e) => { - console.error("Error running bootstrap script:", e); - if (fullNetConfig.noisy) { - console.log("❌ NoisyNet Bootstrap failure"); - } else { - console.log("❌ BSPNet Bootstrap failure"); - } - process.exitCode = 1; - }) - .finally(async () => await api?.disconnect()); +import { + BspNetTestApi, + registerToxics, + type BspNetConfig, + type EnrichedBspApi, + type ToxicInfo +} from "../util"; +import * as ShConsts from "../util/bspNet/consts"; +import { runFullNet } from "../util/fullNet/helpers"; + +let api: EnrichedBspApi | undefined; +const fullNetConfig: BspNetConfig = { + noisy: process.env.NOISY === "1", + rocksdb: process.env.ROCKSDB === "1" +}; + +const CONFIG = { + bucketName: "nothingmuch-0", + localPath: "res/whatsup.jpg", + remotePath: "cat/whatsup.jpg" +}; + +async function bootStrapNetwork() { + await runFullNet(fullNetConfig); + + if (fullNetConfig.noisy) { + // For more info on the kind of toxics you can register, + // see: https://github.com/Shopify/toxiproxy?tab=readme-ov-file#toxics + const reqToxics = [ + { + type: "latency", + name: "lag-down", + stream: "upstream", + toxicity: 0.8, + attributes: { + latency: 25, + jitter: 7 + } + }, + { + type: "bandwidth", + name: "low-band", + // Setting as upstream simulates slow user connection + stream: "upstream", + // 50% of the time, the toxic will be applied + toxicity: 0.5, + attributes: { + // 10kbps + rate: 10 + } + } + ] satisfies ToxicInfo[]; + + await registerToxics(reqToxics); + } + + api = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + await api.file.newStorageRequest( + CONFIG.localPath, + CONFIG.remotePath, + CONFIG.bucketName, + ShConsts.DUMMY_MSP_ID + ); + + await api.wait.bspVolunteer(); + await api.wait.bspStored(); + + if (fullNetConfig.noisy) { + console.log("✅ NoisyNet Bootstrap success"); + } else { + console.log("✅ BSPNet Bootstrap success"); + } +} + +bootStrapNetwork() + .catch((e) => { + console.error("Error running bootstrap script:", e); + if (fullNetConfig.noisy) { + console.log("❌ NoisyNet Bootstrap failure"); + } else { + console.log("❌ BSPNet Bootstrap failure"); + } + process.exitCode = 1; + }) + .finally(async () => await api?.disconnect()); diff --git a/test/suites/integration/bsp/debt-collection.test.ts b/test/suites/integration/bsp/debt-collection.test.ts index 342bb28e8..129bc8f50 100644 --- a/test/suites/integration/bsp/debt-collection.test.ts +++ b/test/suites/integration/bsp/debt-collection.test.ts @@ -1,695 +1,695 @@ -import assert, { strictEqual } from "node:assert"; -import { after } from "node:test"; -import { - describeBspNet, - fetchEventData, - ShConsts, - sleep, - type EnrichedBspApi -} from "../../../util"; - -describeBspNet( - "BSPNet: Collect users debt", - { initialised: "multi", networkConfig: "standard" }, - ({ before, it, createUserApi, createBspApi, getLaunchResponse, createApi }) => { - let userApi: EnrichedBspApi; - let bspApi: EnrichedBspApi; - let bspTwoApi: EnrichedBspApi; - let bspThreeApi: EnrichedBspApi; - let userAddress: string; - - before(async () => { - const launchResponse = await getLaunchResponse(); - assert(launchResponse, "BSPNet failed to initialise"); - userApi = await createUserApi(); - bspApi = await createBspApi(); - bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); - bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); - userAddress = ShConsts.NODE_INFOS.user.AddressId; - }); - - after(async () => { - await bspTwoApi.disconnect(); - await bspThreeApi.disconnect(); - }); - - it("BSP correctly charges payment stream", async () => { - // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists - const paymentStreamExistsResult = - await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( - ShConsts.DUMMY_BSP_ID - ); - // Check if the first element of the returned vector is the user - assert(paymentStreamExistsResult[0].toString() === userAddress); - assert(paymentStreamExistsResult.length === 1); - - // Seal one more block. - await userApi.sealBlock(); - - // Check if the user owes the provider. - let usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 0 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, - // since they all have the same file they were initialised with, and responded to it at - // the same time. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - let currentBlock = await userApi.rpc.chain.getBlock(); - let currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - - // Advance blocksToAdvance blocks. - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Check that no Providers have submitted a valid proof yet. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - let providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Check that the Providers were added to the list of Providers that have submitted proofs - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert( - providersWithProofs.isSome, - "There should be Providers that have submitted a valid proof" - ); - assert( - providersWithProofs.unwrap().size === 3, - "There should be three Providers that have submitted a valid proof" - ); - - // Check that the last chargeable info of the dummy BSP has not been updated yet - let lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - assert(lastChargeableInfo.priceIndex.toNumber() === 0); - - // Seal one more block to update the last chargeable info of the Provider - await userApi.sealBlock(); - - // Assert for the the event of the last chargeable info of the Providers being updated - const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( - "paymentStreams", - "LastChargeableInfoUpdated" - ); - strictEqual( - lastChargeableInfoUpdatedEvents.length, - 3, - "There should be three last chargeable info updated events" - ); - - // Check the last chargeable info of the dummy BSP - lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - - // Check the info of the payment stream between the user and the DUMMY_BSP_ID - const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream - // so that the payment stream can be charged by the BSP - assert( - paymentStreamInfo.unwrap().priceIndexWhenLastCharged.lt(lastChargeableInfo.priceIndex) - ); - - // Check that the user now owes the provider. - usersWithDebtResult = await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 1 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - await userApi.sealBlock(); - - // Assert that event for the BSP charging its payment stream was emitted - await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); - }); - - it("Correctly updates payment stream on-chain to make user insolvent", async () => { - // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists - const paymentStreamExistsResult = - await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( - ShConsts.DUMMY_BSP_ID - ); - // Check if the first element of the returned vector is the user - assert(paymentStreamExistsResult[0].toString() === userAddress); - assert(paymentStreamExistsResult.length === 1); - - // Check the payment stream info between the user and the DUMMY_BSP_ID - const paymentStreamInfoBeforeDeletion = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // Add extra files to the user's storage with the DUMMY_BSP_ID - await userApi.file.newStorageRequest("res/cloud.jpg", "test/cloud.jpg", "bucket-1"); - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - await userApi.file.newStorageRequest("res/adolphus.jpg", "test/adolphus.jpg", "bucket-3"); - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - - // Check the payment stream info after adding the new files - const paymentStreamInfoAfterAddingFiles = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // The amount provided of the payment stream should be higher after adding the new files - assert( - paymentStreamInfoAfterAddingFiles - .unwrap() - .amountProvided.gt(paymentStreamInfoBeforeDeletion.unwrap().amountProvided) - ); - - // Seal one more block. - await userApi.sealBlock(); - - // Check if the user owes the provider. - const usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 0 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Get the current price of storage from the runtime, the new stream deposit and the ED - const currentPriceOfStorage = await userApi.query.paymentStreams.currentPricePerUnitPerTick(); - const newStreamDeposit = userApi.consts.paymentStreams.newStreamDeposit; - const existentialDeposit = userApi.consts.balances.existentialDeposit; - - // Get the current free balance of the user - const freeBalance = (await userApi.query.system.account(userAddress)).data.free; - - // To make the user insolvent, we need to update the payment stream with a very high amount - // and advance new stream deposit blocks - // To do this, the new amount provided should be equal to the free balance of the user divided by - // the current price of storage multiplied by the new stream deposit - const newAmountProvidedForInsolvency = freeBalance - .div(currentPriceOfStorage.mul(newStreamDeposit)) - .sub(existentialDeposit); - - // Make the user insolvent by updating the payment stream with a very high amount - const updateDynamicRatePaymentStreamResult = await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.paymentStreams.updateDynamicRatePaymentStream( - ShConsts.DUMMY_BSP_ID, - userAddress, - newAmountProvidedForInsolvency - ) - ) - ); - const { extSuccess } = updateDynamicRatePaymentStreamResult; - strictEqual(extSuccess, true, "Extrinsic should be successful"); - - // Assert that event dynamic-rate payment stream update was emitted - userApi.assertEvent( - "paymentStreams", - "DynamicRatePaymentStreamUpdated", - updateDynamicRatePaymentStreamResult.events - ); - // Get the on-chain payment stream information - const [userAccount, providerId, newAmountProvided] = fetchEventData( - userApi.events.paymentStreams.DynamicRatePaymentStreamUpdated, - await userApi.query.system.events() - ); - // Assert that the information on-chain is correct - strictEqual(userAccount.toString(), userAddress); - strictEqual(providerId.toString(), ShConsts.DUMMY_BSP_ID.toString()); - strictEqual(newAmountProvided.toNumber(), newAmountProvidedForInsolvency.toNumber()); - }); - - it("Correctly flags update payment stream as without funds after charging", async () => { - // Get the last chargeable info of the dummy BSP before proof submission - const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - // Calculate the next challenge tick for the DUMMY_BSP_ID. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - let currentBlock = await userApi.rpc.chain.getBlock(); - let currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - - // Advance blocksToAdvance blocks. - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Check that no Providers have submitted a valid proof yet. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - let providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Check that the Providers were added to the list of Providers that have submitted proofs - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert( - providersWithProofs.isSome, - "There should be Providers that have submitted a valid proof" - ); - assert( - providersWithProofs.unwrap().size === 3, - "There should be three Providers that have submitted a valid proof" - ); - - // Check that the last chargeable info of the dummy BSP has not been updated yet - const lastChargeableInfoAfterProofSubmission = - await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); - assert( - lastChargeableInfo.priceIndex.toNumber() === - lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() - ); - - // Seal one more block to update the last chargeable info of the Provider - await userApi.sealBlock(); - - // Assert for the the event of the last chargeable info of the Providers being updated - const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( - "paymentStreams", - "LastChargeableInfoUpdated" - ); - strictEqual( - lastChargeableInfoUpdatedEvents.length, - 3, - "There should be three last chargeable info updated events" - ); - - // Get the last chargeable info of the dummy BSP after it's updated - const lastChargeableInfoAfterUpdate = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - - // Check the info of the payment stream between the user and the DUMMY_BSP_ID - const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - - // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream - // so that the payment stream can be charged by the BSP - assert( - paymentStreamInfo - .unwrap() - .priceIndexWhenLastCharged.lt(lastChargeableInfoAfterUpdate.priceIndex) - ); - - // Check that the user now owes the provider. - const usersWithDebtResult = - await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( - ShConsts.DUMMY_BSP_ID, - 1 - ); - assert(usersWithDebtResult.isOk); - assert(usersWithDebtResult.asOk.length === 1); - assert(usersWithDebtResult.asOk[0].toString() === userAddress); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - await userApi.sealBlock(); - await sleep(500); - - // Assert that event for the BSP charging its payment stream was emitted - await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); - - // Assert that the payment stream between the user and the DUMMY_BSP_ID has been flagged as without - // funds, but the other two ones haven't - const insolventPaymentStreamInfoAfterCharging = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - assert(insolventPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isSome); - const solventTwoPaymentStreamInfoAfterCharging = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_TWO_ID, - userAddress - ); - assert(solventTwoPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); - const solventThreePaymentStreamInfoAfterCharging = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_THREE_ID, - userAddress - ); - assert(solventThreePaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); - }); - - it("Correctly flags user as without funds after grace period, emits event and deletes payment stream", async () => { - // Get the last chargeable info of the dummy BSP before proof submission - const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( - ShConsts.DUMMY_BSP_ID - ); - // Calculate the next challenge tick for the DUMMY_BSP_ID. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - let currentBlock = await userApi.rpc.chain.getBlock(); - let currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - - // Advance blocksToAdvance blocks - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Check that no Providers have submitted a valid proof yet. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - let providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Check that the Providers were added to the list of Providers that have submitted proofs - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - providersWithProofs = - await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); - assert( - providersWithProofs.isSome, - "There should be Providers that have submitted a valid proof" - ); - assert( - providersWithProofs.unwrap().size === 3, - "There should be three Providers that have submitted a valid proof" - ); - - // Check that the last chargeable info of the dummy BSP has not been updated yet - const lastChargeableInfoAfterProofSubmission = - await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); - assert( - lastChargeableInfo.priceIndex.toNumber() === - lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() - ); - - // Seal one more block to update the last chargeable info of the Provider - await userApi.sealBlock(); - - // Assert for the the event of the last chargeable info of the Providers being updated - const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( - "paymentStreams", - "LastChargeableInfoUpdated" - ); - strictEqual( - lastChargeableInfoUpdatedEvents.length, - 3, - "There should be three last chargeable info updated events" - ); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - const blockResult = await userApi.sealBlock(); - - // Assert that event for the BSP charging its payment stream was emitted - await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); - - // Check if the "UserWithoutFunds" event was emitted. If it wasn't, advance until - // the next challenge period and check again - if (!blockResult.events?.find((event) => event.event.method === "UserWithoutFunds")) { - // Calculate the next challenge tick for the DUMMY_BSP_ID. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - - // Calculate how many blocks to advance until next challenge tick. - currentBlock = await userApi.rpc.chain.getBlock(); - currentBlockNumber = currentBlock.block.header.number.toNumber(); - const blocksToAdvance = nextChallengeTick - currentBlockNumber; - // Advance blocksToAdvance blocks - for (let i = 0; i < blocksToAdvance; i++) { - await userApi.sealBlock(); - } - - await userApi.assert.extrinsicPresent({ - method: "submitProof", - module: "proofsDealer", - checkTxPool: true, - assertLength: 3 - }); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Seal another block so the last chargeable info of the providers is updated - await userApi.sealBlock(); - - // Check that the three Providers have tried to charge the user - // since the user has a payment stream with each of them - await userApi.assert.extrinsicPresent({ - method: "chargePaymentStreams", - module: "paymentStreams", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to charge the payment stream - await userApi.sealBlock(); - } - - // Assert that the user without funds event was emitted - await userApi.assert.eventPresent("paymentStreams", "UserWithoutFunds"); - - // Check that the payment stream between the user and the DUMMY_BSP_ID has been deleted - const deletedPaymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - assert(deletedPaymentStreamInfo.isNone); - }); - - it("BSP correctly deletes all files from an insolvent user", async () => { - // We execute this loop three times since that's the amount of files the user has stored with the BSPs - for (let i = 0; i < 3; i++) { - // Check that the three Providers are trying to delete the files of the user - await userApi.assert.extrinsicPresent({ - method: "stopStoringForInsolventUser", - module: "fileSystem", - checkTxPool: true, - assertLength: 3 - }); - - // Seal a block to allow BSPs to delete the files of the user - await userApi.sealBlock(); - - // Assert that event for the BSP deleting the files of the user was emitted - const spStopStoringForInsolventUserEvents = await userApi.assert.eventMany( - "fileSystem", - "SpStopStoringInsolventUser" - ); - strictEqual( - spStopStoringForInsolventUserEvents.length, - 3, - "There should be three stop storing for insolvent user events" - ); - - // For each event, fetch its info and check if the BSP correctly deleted the files of the user - for (const event of spStopStoringForInsolventUserEvents) { - const stopStoringInsolventUserBlob = - userApi.events.fileSystem.SpStopStoringInsolventUser.is(event.event) && - event.event.data; - assert(stopStoringInsolventUserBlob, "Event doesn't match Type"); - if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.DUMMY_BSP_ID) { - assert( - ( - await bspApi.rpc.storagehubclient.isFileInForest( - null, - stopStoringInsolventUserBlob.fileKey - ) - ).isFalse - ); - } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_TWO_ID) { - assert( - ( - await bspTwoApi.rpc.storagehubclient.isFileInForest( - null, - stopStoringInsolventUserBlob.fileKey - ) - ).isFalse - ); - } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_THREE_ID) { - assert( - ( - await bspThreeApi.rpc.storagehubclient.isFileInForest( - null, - stopStoringInsolventUserBlob.fileKey - ) - ).isFalse - ); - } - } - - // Seal a block to allow BSPs to delete the files of the user - await userApi.sealBlock(); - } - - // After deleting all the files, the user should have no payment streams with any provider - const paymentStreamInfoAfterDeletion = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.DUMMY_BSP_ID, - userAddress - ); - assert(paymentStreamInfoAfterDeletion.isNone); - const paymentStreamInfoAfterDeletionTwo = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_TWO_ID, - userAddress - ); - assert(paymentStreamInfoAfterDeletionTwo.isNone); - const paymentStreamInfoAfterDeletionThree = - await userApi.query.paymentStreams.dynamicRatePaymentStreams( - ShConsts.BSP_THREE_ID, - userAddress - ); - assert(paymentStreamInfoAfterDeletionThree.isNone); - }); - } -); +import assert, { strictEqual } from "node:assert"; +import { after } from "node:test"; +import { + describeBspNet, + fetchEventData, + ShConsts, + sleep, + type EnrichedBspApi +} from "../../../util"; + +describeBspNet( + "BSPNet: Collect users debt", + { initialised: "multi", networkConfig: "standard" }, + ({ before, it, createUserApi, createBspApi, getLaunchResponse, createApi }) => { + let userApi: EnrichedBspApi; + let bspApi: EnrichedBspApi; + let bspTwoApi: EnrichedBspApi; + let bspThreeApi: EnrichedBspApi; + let userAddress: string; + + before(async () => { + const launchResponse = await getLaunchResponse(); + assert(launchResponse, "BSPNet failed to initialise"); + userApi = await createUserApi(); + bspApi = await createBspApi(); + bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); + bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); + userAddress = ShConsts.NODE_INFOS.user.AddressId; + }); + + after(async () => { + await bspTwoApi.disconnect(); + await bspThreeApi.disconnect(); + }); + + it("BSP correctly charges payment stream", async () => { + // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists + const paymentStreamExistsResult = + await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( + ShConsts.DUMMY_BSP_ID + ); + // Check if the first element of the returned vector is the user + assert(paymentStreamExistsResult[0].toString() === userAddress); + assert(paymentStreamExistsResult.length === 1); + + // Seal one more block. + await userApi.sealBlock(); + + // Check if the user owes the provider. + let usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 0 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, + // since they all have the same file they were initialised with, and responded to it at + // the same time. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + let currentBlock = await userApi.rpc.chain.getBlock(); + let currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + + // Advance blocksToAdvance blocks. + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Check that no Providers have submitted a valid proof yet. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + let providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Check that the Providers were added to the list of Providers that have submitted proofs + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert( + providersWithProofs.isSome, + "There should be Providers that have submitted a valid proof" + ); + assert( + providersWithProofs.unwrap().size === 3, + "There should be three Providers that have submitted a valid proof" + ); + + // Check that the last chargeable info of the dummy BSP has not been updated yet + let lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + assert(lastChargeableInfo.priceIndex.toNumber() === 0); + + // Seal one more block to update the last chargeable info of the Provider + await userApi.sealBlock(); + + // Assert for the the event of the last chargeable info of the Providers being updated + const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( + "paymentStreams", + "LastChargeableInfoUpdated" + ); + strictEqual( + lastChargeableInfoUpdatedEvents.length, + 3, + "There should be three last chargeable info updated events" + ); + + // Check the last chargeable info of the dummy BSP + lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + + // Check the info of the payment stream between the user and the DUMMY_BSP_ID + const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream + // so that the payment stream can be charged by the BSP + assert( + paymentStreamInfo.unwrap().priceIndexWhenLastCharged.lt(lastChargeableInfo.priceIndex) + ); + + // Check that the user now owes the provider. + usersWithDebtResult = await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 1 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + await userApi.sealBlock(); + + // Assert that event for the BSP charging its payment stream was emitted + await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); + }); + + it("Correctly updates payment stream on-chain to make user insolvent", async () => { + // Make sure the payment stream between the user and the DUMMY_BSP_ID actually exists + const paymentStreamExistsResult = + await userApi.call.paymentStreamsApi.getUsersOfPaymentStreamsOfProvider( + ShConsts.DUMMY_BSP_ID + ); + // Check if the first element of the returned vector is the user + assert(paymentStreamExistsResult[0].toString() === userAddress); + assert(paymentStreamExistsResult.length === 1); + + // Check the payment stream info between the user and the DUMMY_BSP_ID + const paymentStreamInfoBeforeDeletion = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // Add extra files to the user's storage with the DUMMY_BSP_ID + await userApi.file.newStorageRequest("res/cloud.jpg", "test/cloud.jpg", "bucket-1"); + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + await userApi.file.newStorageRequest("res/adolphus.jpg", "test/adolphus.jpg", "bucket-3"); + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + + // Check the payment stream info after adding the new files + const paymentStreamInfoAfterAddingFiles = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // The amount provided of the payment stream should be higher after adding the new files + assert( + paymentStreamInfoAfterAddingFiles + .unwrap() + .amountProvided.gt(paymentStreamInfoBeforeDeletion.unwrap().amountProvided) + ); + + // Seal one more block. + await userApi.sealBlock(); + + // Check if the user owes the provider. + const usersWithDebtResult = await bspApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 0 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Get the current price of storage from the runtime, the new stream deposit and the ED + const currentPriceOfStorage = await userApi.query.paymentStreams.currentPricePerUnitPerTick(); + const newStreamDeposit = userApi.consts.paymentStreams.newStreamDeposit; + const existentialDeposit = userApi.consts.balances.existentialDeposit; + + // Get the current free balance of the user + const freeBalance = (await userApi.query.system.account(userAddress)).data.free; + + // To make the user insolvent, we need to update the payment stream with a very high amount + // and advance new stream deposit blocks + // To do this, the new amount provided should be equal to the free balance of the user divided by + // the current price of storage multiplied by the new stream deposit + const newAmountProvidedForInsolvency = freeBalance + .div(currentPriceOfStorage.mul(newStreamDeposit)) + .sub(existentialDeposit); + + // Make the user insolvent by updating the payment stream with a very high amount + const updateDynamicRatePaymentStreamResult = await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.paymentStreams.updateDynamicRatePaymentStream( + ShConsts.DUMMY_BSP_ID, + userAddress, + newAmountProvidedForInsolvency + ) + ) + ); + const { extSuccess } = updateDynamicRatePaymentStreamResult; + strictEqual(extSuccess, true, "Extrinsic should be successful"); + + // Assert that event dynamic-rate payment stream update was emitted + userApi.assertEvent( + "paymentStreams", + "DynamicRatePaymentStreamUpdated", + updateDynamicRatePaymentStreamResult.events + ); + // Get the on-chain payment stream information + const [userAccount, providerId, newAmountProvided] = fetchEventData( + userApi.events.paymentStreams.DynamicRatePaymentStreamUpdated, + await userApi.query.system.events() + ); + // Assert that the information on-chain is correct + strictEqual(userAccount.toString(), userAddress); + strictEqual(providerId.toString(), ShConsts.DUMMY_BSP_ID.toString()); + strictEqual(newAmountProvided.toNumber(), newAmountProvidedForInsolvency.toNumber()); + }); + + it("Correctly flags update payment stream as without funds after charging", async () => { + // Get the last chargeable info of the dummy BSP before proof submission + const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + // Calculate the next challenge tick for the DUMMY_BSP_ID. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + let currentBlock = await userApi.rpc.chain.getBlock(); + let currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + + // Advance blocksToAdvance blocks. + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Check that no Providers have submitted a valid proof yet. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + let providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Check that the Providers were added to the list of Providers that have submitted proofs + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert( + providersWithProofs.isSome, + "There should be Providers that have submitted a valid proof" + ); + assert( + providersWithProofs.unwrap().size === 3, + "There should be three Providers that have submitted a valid proof" + ); + + // Check that the last chargeable info of the dummy BSP has not been updated yet + const lastChargeableInfoAfterProofSubmission = + await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); + assert( + lastChargeableInfo.priceIndex.toNumber() === + lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() + ); + + // Seal one more block to update the last chargeable info of the Provider + await userApi.sealBlock(); + + // Assert for the the event of the last chargeable info of the Providers being updated + const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( + "paymentStreams", + "LastChargeableInfoUpdated" + ); + strictEqual( + lastChargeableInfoUpdatedEvents.length, + 3, + "There should be three last chargeable info updated events" + ); + + // Get the last chargeable info of the dummy BSP after it's updated + const lastChargeableInfoAfterUpdate = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + + // Check the info of the payment stream between the user and the DUMMY_BSP_ID + const paymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + + // Check that the last chargeable price index of the dummy BSP is greater than the last charged price index of the payment stream + // so that the payment stream can be charged by the BSP + assert( + paymentStreamInfo + .unwrap() + .priceIndexWhenLastCharged.lt(lastChargeableInfoAfterUpdate.priceIndex) + ); + + // Check that the user now owes the provider. + const usersWithDebtResult = + await userApi.call.paymentStreamsApi.getUsersWithDebtOverThreshold( + ShConsts.DUMMY_BSP_ID, + 1 + ); + assert(usersWithDebtResult.isOk); + assert(usersWithDebtResult.asOk.length === 1); + assert(usersWithDebtResult.asOk[0].toString() === userAddress); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + await userApi.sealBlock(); + await sleep(500); + + // Assert that event for the BSP charging its payment stream was emitted + await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); + + // Assert that the payment stream between the user and the DUMMY_BSP_ID has been flagged as without + // funds, but the other two ones haven't + const insolventPaymentStreamInfoAfterCharging = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + assert(insolventPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isSome); + const solventTwoPaymentStreamInfoAfterCharging = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_TWO_ID, + userAddress + ); + assert(solventTwoPaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); + const solventThreePaymentStreamInfoAfterCharging = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_THREE_ID, + userAddress + ); + assert(solventThreePaymentStreamInfoAfterCharging.unwrap().outOfFundsTick.isNone); + }); + + it("Correctly flags user as without funds after grace period, emits event and deletes payment stream", async () => { + // Get the last chargeable info of the dummy BSP before proof submission + const lastChargeableInfo = await userApi.query.paymentStreams.lastChargeableInfo( + ShConsts.DUMMY_BSP_ID + ); + // Calculate the next challenge tick for the DUMMY_BSP_ID. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + let currentBlock = await userApi.rpc.chain.getBlock(); + let currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + + // Advance blocksToAdvance blocks + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Check that no Providers have submitted a valid proof yet. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + let providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert(providersWithProofs.isEmpty, "No Providers should have submitted a valid proof yet"); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Check that the Providers were added to the list of Providers that have submitted proofs + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + providersWithProofs = + await userApi.query.proofsDealer.validProofSubmittersLastTicks(currentBlockNumber); + assert( + providersWithProofs.isSome, + "There should be Providers that have submitted a valid proof" + ); + assert( + providersWithProofs.unwrap().size === 3, + "There should be three Providers that have submitted a valid proof" + ); + + // Check that the last chargeable info of the dummy BSP has not been updated yet + const lastChargeableInfoAfterProofSubmission = + await userApi.query.paymentStreams.lastChargeableInfo(ShConsts.DUMMY_BSP_ID); + assert( + lastChargeableInfo.priceIndex.toNumber() === + lastChargeableInfoAfterProofSubmission.priceIndex.toNumber() + ); + + // Seal one more block to update the last chargeable info of the Provider + await userApi.sealBlock(); + + // Assert for the the event of the last chargeable info of the Providers being updated + const lastChargeableInfoUpdatedEvents = await userApi.assert.eventMany( + "paymentStreams", + "LastChargeableInfoUpdated" + ); + strictEqual( + lastChargeableInfoUpdatedEvents.length, + 3, + "There should be three last chargeable info updated events" + ); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + const blockResult = await userApi.sealBlock(); + + // Assert that event for the BSP charging its payment stream was emitted + await userApi.assert.eventPresent("paymentStreams", "PaymentStreamCharged"); + + // Check if the "UserWithoutFunds" event was emitted. If it wasn't, advance until + // the next challenge period and check again + if (!blockResult.events?.find((event) => event.event.method === "UserWithoutFunds")) { + // Calculate the next challenge tick for the DUMMY_BSP_ID. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + + // Calculate how many blocks to advance until next challenge tick. + currentBlock = await userApi.rpc.chain.getBlock(); + currentBlockNumber = currentBlock.block.header.number.toNumber(); + const blocksToAdvance = nextChallengeTick - currentBlockNumber; + // Advance blocksToAdvance blocks + for (let i = 0; i < blocksToAdvance; i++) { + await userApi.sealBlock(); + } + + await userApi.assert.extrinsicPresent({ + method: "submitProof", + module: "proofsDealer", + checkTxPool: true, + assertLength: 3 + }); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Seal another block so the last chargeable info of the providers is updated + await userApi.sealBlock(); + + // Check that the three Providers have tried to charge the user + // since the user has a payment stream with each of them + await userApi.assert.extrinsicPresent({ + method: "chargePaymentStreams", + module: "paymentStreams", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to charge the payment stream + await userApi.sealBlock(); + } + + // Assert that the user without funds event was emitted + await userApi.assert.eventPresent("paymentStreams", "UserWithoutFunds"); + + // Check that the payment stream between the user and the DUMMY_BSP_ID has been deleted + const deletedPaymentStreamInfo = await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + assert(deletedPaymentStreamInfo.isNone); + }); + + it("BSP correctly deletes all files from an insolvent user", async () => { + // We execute this loop three times since that's the amount of files the user has stored with the BSPs + for (let i = 0; i < 3; i++) { + // Check that the three Providers are trying to delete the files of the user + await userApi.assert.extrinsicPresent({ + method: "stopStoringForInsolventUser", + module: "fileSystem", + checkTxPool: true, + assertLength: 3 + }); + + // Seal a block to allow BSPs to delete the files of the user + await userApi.sealBlock(); + + // Assert that event for the BSP deleting the files of the user was emitted + const spStopStoringForInsolventUserEvents = await userApi.assert.eventMany( + "fileSystem", + "SpStopStoringInsolventUser" + ); + strictEqual( + spStopStoringForInsolventUserEvents.length, + 3, + "There should be three stop storing for insolvent user events" + ); + + // For each event, fetch its info and check if the BSP correctly deleted the files of the user + for (const event of spStopStoringForInsolventUserEvents) { + const stopStoringInsolventUserBlob = + userApi.events.fileSystem.SpStopStoringInsolventUser.is(event.event) && + event.event.data; + assert(stopStoringInsolventUserBlob, "Event doesn't match Type"); + if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.DUMMY_BSP_ID) { + assert( + ( + await bspApi.rpc.storagehubclient.isFileInForest( + null, + stopStoringInsolventUserBlob.fileKey + ) + ).isFalse + ); + } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_TWO_ID) { + assert( + ( + await bspTwoApi.rpc.storagehubclient.isFileInForest( + null, + stopStoringInsolventUserBlob.fileKey + ) + ).isFalse + ); + } else if (stopStoringInsolventUserBlob.spId.toString() === ShConsts.BSP_THREE_ID) { + assert( + ( + await bspThreeApi.rpc.storagehubclient.isFileInForest( + null, + stopStoringInsolventUserBlob.fileKey + ) + ).isFalse + ); + } + } + + // Seal a block to allow BSPs to delete the files of the user + await userApi.sealBlock(); + } + + // After deleting all the files, the user should have no payment streams with any provider + const paymentStreamInfoAfterDeletion = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.DUMMY_BSP_ID, + userAddress + ); + assert(paymentStreamInfoAfterDeletion.isNone); + const paymentStreamInfoAfterDeletionTwo = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_TWO_ID, + userAddress + ); + assert(paymentStreamInfoAfterDeletionTwo.isNone); + const paymentStreamInfoAfterDeletionThree = + await userApi.query.paymentStreams.dynamicRatePaymentStreams( + ShConsts.BSP_THREE_ID, + userAddress + ); + assert(paymentStreamInfoAfterDeletionThree.isNone); + }); + } +); diff --git a/test/suites/integration/bsp/onboard.test.ts b/test/suites/integration/bsp/onboard.test.ts index 22f7334dc..ffdbc23a0 100644 --- a/test/suites/integration/bsp/onboard.test.ts +++ b/test/suites/integration/bsp/onboard.test.ts @@ -1,171 +1,171 @@ -import Docker from "dockerode"; -import assert, { strictEqual } from "node:assert"; -import { - addBspContainer, - describeBspNet, - DOCKER_IMAGE, - sleep, - type EnrichedBspApi -} from "../../../util"; -import { CAPACITY, MAX_STORAGE_CAPACITY } from "../../../util/bspNet/consts.ts"; - -describeBspNet("BSPNet: Adding new BSPs", ({ before, createBspApi, createApi, it }) => { - let api: EnrichedBspApi; - - before(async () => { - api = await createBspApi(); - }); - - it("New BSP can be created", async () => { - const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ - name: "nueva", - additionalArgs: [ - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - - await it("is in a running container", async () => { - const docker = new Docker(); - const { - State: { Status } - } = await docker.getContainer(containerName).inspect(); - strictEqual(Status, "running"); - }); - - await it("can open new API connection with", async () => { - console.log(`connecting to rpcPort ${rpcPort}`); - await using newApi = await createApi(`ws://127.0.0.1:${rpcPort}`); - - await it("has correct reported peerId", async () => { - const localPeerId = await newApi.rpc.system.localPeerId(); - strictEqual(localPeerId.toString(), peerId); - }); - - await it("is synced with current block", async () => { - // Give some time to the BSP to catch up - await sleep(500); - - const syncHeight = (await newApi.rpc.chain.getHeader()).number.toNumber(); - const currentHeight = (await api.rpc.chain.getHeader()).number.toNumber(); - strictEqual(syncHeight, currentHeight); - }); - - await it("is listening on the correct P2P port", async () => { - const listenAddresses = (await newApi.rpc.system.localListenAddresses()).map((address) => - address.toString() - ); - const matchingAddress = listenAddresses.filter((address) => - address.includes(`/tcp/${p2pPort}/p2p/`) - ); - strictEqual(matchingAddress.length > 1, true); - }); - }); - - await it("is peer of other nodes", async () => { - const peers = (await api.rpc.system.peers()).map(({ peerId }) => peerId.toString()); - strictEqual(peers.includes(peerId), true, `PeerId ${peerId} not found in ${peers}`); - }); - }); - - it("Lots of BSPs can be created", async () => { - await addBspContainer({ - name: "timbo1", - additionalArgs: [ - "--database=rocksdb", - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await addBspContainer({ - name: "timbo2", - additionalArgs: [ - "--database=paritydb", - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await addBspContainer({ - name: "timbo3", - additionalArgs: [ - "--database=auto", - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - - const docker = new Docker(); - const sh_nodes = ( - await docker.listContainers({ - filters: { ancestor: [DOCKER_IMAGE] } - }) - ).flatMap(({ Names }) => Names); - - strictEqual(sh_nodes.length > 3, true); - }); - - it("Inserts new blockchain service keys (BCSV)", async () => { - const keystorePath = "/tmp/test/insert/keystore"; - const { rpcPort } = await addBspContainer({ - name: "insert-keys-container", - additionalArgs: [ - `--keystore-path=${keystorePath}`, - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await using insertKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); - - const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; - const bobPubKey = "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"; - const bcsvKeyType = "bcsv"; - const bobSeed = "//Bob"; - - const hasAliceKey = await insertKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); - strictEqual(hasAliceKey.isTrue, true); - - let hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); - strictEqual(hasBobKey.isTrue, false); - - // Rotate keys and check that Bob's pub key is now in Keystore. - await insertKeysApi.rpc.storagehubclient.insertBcsvKeys(bobSeed); - hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); - strictEqual(hasBobKey.isTrue, true); - }); - - it("Removes BCSV keys from keystore", async () => { - const keystore_path = "/tmp/test/remove/keystore"; - const { rpcPort } = await addBspContainer({ - name: "remove-keys-container", - additionalArgs: [ - `--keystore-path=${keystore_path}`, - `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, - `--jump-capacity=${CAPACITY[1024]}` - ] - }); - await using removeKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); - const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; - const davePubKey = "0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20"; - const bcsvKeyType = "bcsv"; - const daveSeed = "//Dave"; - - let hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); - strictEqual(hasAliceKey.isTrue, true); - - let hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); - strictEqual(hasDaveKey.isTrue, false); - - // Rotate keys and check that Dave's pub key is now in Keystore. - await removeKeysApi.rpc.storagehubclient.insertBcsvKeys(daveSeed); - hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); - strictEqual(hasDaveKey.isTrue, true); - - await removeKeysApi.rpc.storagehubclient.removeBcsvKeys(keystore_path); - - // We still have Alice's key in `--dev` mode because it's inserted into the in-memory Keystore. - hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); - strictEqual(hasAliceKey.isTrue, true); - hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); - assert(hasDaveKey.isFalse); - }); -}); +import Docker from "dockerode"; +import assert, { strictEqual } from "node:assert"; +import { + addBspContainer, + describeBspNet, + DOCKER_IMAGE, + sleep, + type EnrichedBspApi +} from "../../../util"; +import { CAPACITY, MAX_STORAGE_CAPACITY } from "../../../util/bspNet/consts.ts"; + +describeBspNet("BSPNet: Adding new BSPs", ({ before, createBspApi, createApi, it }) => { + let api: EnrichedBspApi; + + before(async () => { + api = await createBspApi(); + }); + + it("New BSP can be created", async () => { + const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ + name: "nueva", + additionalArgs: [ + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + + await it("is in a running container", async () => { + const docker = new Docker(); + const { + State: { Status } + } = await docker.getContainer(containerName).inspect(); + strictEqual(Status, "running"); + }); + + await it("can open new API connection with", async () => { + console.log(`connecting to rpcPort ${rpcPort}`); + await using newApi = await createApi(`ws://127.0.0.1:${rpcPort}`); + + await it("has correct reported peerId", async () => { + const localPeerId = await newApi.rpc.system.localPeerId(); + strictEqual(localPeerId.toString(), peerId); + }); + + await it("is synced with current block", async () => { + // Give some time to the BSP to catch up + await sleep(500); + + const syncHeight = (await newApi.rpc.chain.getHeader()).number.toNumber(); + const currentHeight = (await api.rpc.chain.getHeader()).number.toNumber(); + strictEqual(syncHeight, currentHeight); + }); + + await it("is listening on the correct P2P port", async () => { + const listenAddresses = (await newApi.rpc.system.localListenAddresses()).map((address) => + address.toString() + ); + const matchingAddress = listenAddresses.filter((address) => + address.includes(`/tcp/${p2pPort}/p2p/`) + ); + strictEqual(matchingAddress.length > 1, true); + }); + }); + + await it("is peer of other nodes", async () => { + const peers = (await api.rpc.system.peers()).map(({ peerId }) => peerId.toString()); + strictEqual(peers.includes(peerId), true, `PeerId ${peerId} not found in ${peers}`); + }); + }); + + it("Lots of BSPs can be created", async () => { + await addBspContainer({ + name: "timbo1", + additionalArgs: [ + "--database=rocksdb", + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await addBspContainer({ + name: "timbo2", + additionalArgs: [ + "--database=paritydb", + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await addBspContainer({ + name: "timbo3", + additionalArgs: [ + "--database=auto", + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + + const docker = new Docker(); + const sh_nodes = ( + await docker.listContainers({ + filters: { ancestor: [DOCKER_IMAGE] } + }) + ).flatMap(({ Names }) => Names); + + strictEqual(sh_nodes.length > 3, true); + }); + + it("Inserts new blockchain service keys (BCSV)", async () => { + const keystorePath = "/tmp/test/insert/keystore"; + const { rpcPort } = await addBspContainer({ + name: "insert-keys-container", + additionalArgs: [ + `--keystore-path=${keystorePath}`, + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await using insertKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); + + const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; + const bobPubKey = "0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48"; + const bcsvKeyType = "bcsv"; + const bobSeed = "//Bob"; + + const hasAliceKey = await insertKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); + strictEqual(hasAliceKey.isTrue, true); + + let hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); + strictEqual(hasBobKey.isTrue, false); + + // Rotate keys and check that Bob's pub key is now in Keystore. + await insertKeysApi.rpc.storagehubclient.insertBcsvKeys(bobSeed); + hasBobKey = await insertKeysApi.rpc.author.hasKey(bobPubKey, bcsvKeyType); + strictEqual(hasBobKey.isTrue, true); + }); + + it("Removes BCSV keys from keystore", async () => { + const keystore_path = "/tmp/test/remove/keystore"; + const { rpcPort } = await addBspContainer({ + name: "remove-keys-container", + additionalArgs: [ + `--keystore-path=${keystore_path}`, + `--max-storage-capacity=${MAX_STORAGE_CAPACITY}`, + `--jump-capacity=${CAPACITY[1024]}` + ] + }); + await using removeKeysApi = await createApi(`ws://127.0.0.1:${rpcPort}`); + const alicePubKey = "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d"; + const davePubKey = "0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20"; + const bcsvKeyType = "bcsv"; + const daveSeed = "//Dave"; + + let hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); + strictEqual(hasAliceKey.isTrue, true); + + let hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); + strictEqual(hasDaveKey.isTrue, false); + + // Rotate keys and check that Dave's pub key is now in Keystore. + await removeKeysApi.rpc.storagehubclient.insertBcsvKeys(daveSeed); + hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); + strictEqual(hasDaveKey.isTrue, true); + + await removeKeysApi.rpc.storagehubclient.removeBcsvKeys(keystore_path); + + // We still have Alice's key in `--dev` mode because it's inserted into the in-memory Keystore. + hasAliceKey = await removeKeysApi.rpc.author.hasKey(alicePubKey, bcsvKeyType); + strictEqual(hasAliceKey.isTrue, true); + hasDaveKey = await removeKeysApi.rpc.author.hasKey(davePubKey, bcsvKeyType); + assert(hasDaveKey.isFalse); + }); +}); diff --git a/test/suites/integration/bsp/submit-proofs.test.ts b/test/suites/integration/bsp/submit-proofs.test.ts index 35bd4142a..f49dd7320 100644 --- a/test/suites/integration/bsp/submit-proofs.test.ts +++ b/test/suites/integration/bsp/submit-proofs.test.ts @@ -1,678 +1,678 @@ -import assert, { strictEqual } from "node:assert"; -import { - describeBspNet, - shUser, - sleep, - type EnrichedBspApi, - type FileMetadata, - ShConsts -} from "../../../util"; -import { BSP_THREE_ID, BSP_TWO_ID, DUMMY_BSP_ID } from "../../../util/bspNet/consts"; - -describeBspNet( - "BSP: Many BSPs Submit Proofs", - { initialised: "multi", networkConfig: "standard" }, - ({ before, createUserApi, after, it, createApi, createBspApi, getLaunchResponse }) => { - let userApi: EnrichedBspApi; - let bspApi: EnrichedBspApi; - let bspTwoApi: EnrichedBspApi; - let bspThreeApi: EnrichedBspApi; - let fileData: FileMetadata; - let oneBspFileData: FileMetadata; - let rootBeforeDeletion: string; - - before(async () => { - const launchResponse = await getLaunchResponse(); - assert(launchResponse, "BSPNet failed to initialise"); - fileData = launchResponse.fileData; - userApi = await createUserApi(); - bspApi = await createBspApi(); - bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); - bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); - }); - - after(async () => { - await bspTwoApi.disconnect(); - await bspThreeApi.disconnect(); - }); - - it("Network launches and can be queried", async () => { - const userNodePeerId = await userApi.rpc.system.localPeerId(); - strictEqual(userNodePeerId.toString(), userApi.shConsts.NODE_INFOS.user.expectedPeerId); - const bspNodePeerId = await bspApi.rpc.system.localPeerId(); - strictEqual(bspNodePeerId.toString(), userApi.shConsts.NODE_INFOS.bsp.expectedPeerId); - }); - - it("Many BSPs are challenged and correctly submit proofs", async () => { - // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, - // since they all have the same file they were initialised with, and responded to it at - // the same time. - // We first get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; - // Finally, advance to the next challenge tick. - await userApi.advanceToBlock(nextChallengeTick); - - await userApi.assert.extrinsicPresent({ - module: "proofsDealer", - method: "submitProof", - checkTxPool: true, - assertLength: 3, - timeout: 10000 - }); - - // Seal one more block with the pending extrinsics. - await userApi.sealBlock(); - - // Assert for the the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); - - // Get the new last tick for which the BSP submitted a proof. - // It should be the previous last tick plus one BSP period. - const lastTickResultAfterProof = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(lastTickResultAfterProof.isOk); - const lastTickBspSubmittedProofAfterProof = lastTickResultAfterProof.asOk.toNumber(); - strictEqual( - lastTickBspSubmittedProofAfterProof, - lastTickBspSubmittedProof + challengePeriod, - "The last tick for which the BSP submitted a proof should be the previous last tick plus one BSP period" - ); - - // Get the new deadline for the BSP. - // It should be the current last tick, plus one BSP period, plus the challenges tick tolerance. - const challengesTickTolerance = Number(userApi.consts.proofsDealer.challengeTicksTolerance); - const newDeadline = - lastTickBspSubmittedProofAfterProof + challengePeriod + challengesTickTolerance; - const newDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(newDeadlineResult.isOk); - const newDeadlineOnChain = newDeadlineResult.asOk.toNumber(); - strictEqual( - newDeadline, - newDeadlineOnChain, - "The deadline should be the same as the one we just calculated" - ); - }); - - it("BSP fails to submit proof and is marked as slashable", async () => { - // Get BSP-Down's deadline. - const bspDownDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( - userApi.shConsts.BSP_DOWN_ID - ); - assert(bspDownDeadlineResult.isOk); - const bspDownDeadline = bspDownDeadlineResult.asOk.toNumber(); - - // Get the last tick for which the BSP-Down submitted a proof before advancing to the deadline. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.BSP_DOWN_ID - ); - assert(lastTickResult.isOk); - const lastTickBspDownSubmittedProof = lastTickResult.asOk.toNumber(); - // Finally, advance to the next challenge tick. - await userApi.advanceToBlock(bspDownDeadline); - - // Expect to see a `SlashableProvider` event in the last block. - const slashableProviderEvent = await userApi.assert.eventPresent( - "proofsDealer", - "SlashableProvider" - ); - const slashableProviderEventDataBlob = - userApi.events.proofsDealer.SlashableProvider.is(slashableProviderEvent.event) && - slashableProviderEvent.event.data; - assert(slashableProviderEventDataBlob, "Event doesn't match Type"); - strictEqual( - slashableProviderEventDataBlob.provider.toString(), - userApi.shConsts.BSP_DOWN_ID, - "The BSP-Down should be slashable" - ); - - // Get the last tick for which the BSP-Down submitted a proof after advancing to the deadline. - const lastTickResultAfterSlashable = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - userApi.shConsts.BSP_DOWN_ID - ); - assert(lastTickResultAfterSlashable.isOk); - const lastTickBspDownSubmittedProofAfterSlashable = - lastTickResultAfterSlashable.asOk.toNumber(); - - // The new last tick should be equal to the last tick before BSP-Down was marked as slashable plus one challenge period. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - userApi.shConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - strictEqual( - lastTickBspDownSubmittedProofAfterSlashable, - lastTickBspDownSubmittedProof + challengePeriod, - "The last tick for which the BSP-Down submitted a proof should be the last tick before BSP-Down was marked as slashable plus one challenge period" - ); - }); - - it( - "BSP stops storing last file", - { skip: "Not implemented yet. Needs RPC method to build proofs." }, - async () => { - // TODO: Build inclusion forest proof for file. - // TODO: BSP-Three sends transaction to stop storing the only file it has. - console.log(fileData); - // // Build transaction for BSP-Three to stop storing the only file it has. - // const call = bspThreeApi.sealBlock( - // bspThreeApi.tx.fileSystem.bspStopStoring( - // fileData.fileKey, - // fileData.bucketId, - // fileData.location, - // fileData.owner, - // fileData.fingerprint, - // fileData.fileSize, - // false - // ), - // bspThreeKey - // ); - } - ); - - it( - "BSP can correctly delete a file from its forest and runtime correctly updates its root", - { skip: "Not implemented yet. Needs RPC method to build proofs." }, - async () => { - // TODO: Setup a BSP that has two files which lie under the same NibbledBranch in the forest. - // TODO: Generate the proof to delete one of the files. - /* let inclusionForestProof = bspThreeApi.rpc.storagehubclient.buildForestRoot(fileData.fileKey); */ - // TODO: Request the deletion of the file: - /* const fileDeletionRequestResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspRequestStopStoring( - fileData.fileKey, - fileData.bucketId, - fileData.location, - fileData.owner, - fileData.fingerprint, - fileData.fileSize, - false, - inclusion_forest_proof: ForestProof, - ); */ - // Wait enough blocks for the deletion to be allowed. - /* const currentBlock = await bspThreeApi.rpc.chain.getBlock(); - const currentBlockNumber = currentBlock.block.header.number.toNumber(); - const cooldown = currentBlockNumber + bspThreeApi.consts.fileSystem.minWaitForStopStoring.toNumber(); - await bspThreeApi.advanceToBlock(cooldown); */ - // TODO: Confirm the request of deletion. Make sure the extrinsic doesn't fail and the root is updated correctly. - /* const fileDeletionConfirmResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspConfirmStopStoring( - fileData.fileKey, - inclusionForestProof, - )); - // Check for the confirm stopped storing event. - let confirmStopStoringEvent = bspThreeApi.assert.eventPresent( - "fileSystem", - "BspConfirmStoppedStoring", - fileDeletionConfirmResult.events - ); - // Make sure the new root was updated correctly. - bspThreeApi.rpc.storagehubclient.deleteFile(fileData.fileKey); // Not sure if this is the correct way to do it. - const newRoot = bspThreeApi.rpc.storagehubclient.getForestRoot(); - const newRootInRuntime = confirmStopStoringEvent.event.data.newRoot; - assert(newRoot === newRootInRuntime, "The new root should be updated correctly"); - */ - } - ); - - it("BSP is not challenged any more", { skip: "Not implemented yet." }, async () => { - // TODO: Check that BSP-Three no longer has a challenge deadline. - }); - - it( - "BSP submits proof, transaction gets dropped, BSP-resubmits and succeeds", - { skip: "Dropping transactions is not implemented as testing utility yet." }, - async () => {} - ); - - it("New storage request sent by user, to only one BSP", async () => { - // Pause BSP-Two and BSP-Three. - await userApi.docker.pauseBspContainer("sh-bsp-two"); - await userApi.docker.pauseBspContainer("sh-bsp-three"); - - // Send transaction to create new storage request. - const source = "res/adolphus.jpg"; - const location = "test/adolphus.jpg"; - const bucketName = "nothingmuch-2"; - const fileData = await userApi.file.newStorageRequest(source, location, bucketName); - oneBspFileData = fileData; - }); - - it("Only one BSP confirms it", async () => { - await userApi.wait.bspVolunteer(1); - await userApi.wait.bspStored(1); - }); - - it("BSP correctly responds to challenge with new forest root", async () => { - // Advance to two challenge periods ahead for first BSP. - // This is because in the odd case that we're exactly on the next challenge tick right now, - // there is a race condition chance where the BSP will send the submit proof extrinsic in the - // next block, since the Forest write lock is released as a consequence of the confirm storing - // extrinsic. So we advance two challenge periods ahead to be sure. - - // First we get the last tick for which the BSP submitted a proof. - const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( - ShConsts.DUMMY_BSP_ID - ); - assert(lastTickResult.isOk); - const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate two challenge ticks ahead. - const nextChallengeTick = lastTickBspSubmittedProof + 2 * challengePeriod; - // Finally, advance two challenge ticks ahead. - await userApi.advanceToBlock(nextChallengeTick); - - // Wait for BSP to submit proof. - await sleep(1000); - - // There should be at least one pending submit proof transaction. - const submitProofsPending = await userApi.assert.extrinsicPresent({ - module: "proofsDealer", - method: "submitProof", - checkTxPool: true - }); - assert(submitProofsPending.length > 0); - - // Seal block and check that the transaction was successful. - await userApi.sealBlock(); - - // Assert for the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual( - proofAcceptedEvents.length, - submitProofsPending.length, - "All pending submit proof transactions should have been successful" - ); - }); - - it("Resume BSPs, and they shouldn't volunteer for the expired storage request", async () => { - // Advance a number of blocks up to when the storage request times out for sure. - const storageRequestTtl = Number(userApi.consts.fileSystem.storageRequestTtl); - const currentBlock = await userApi.rpc.chain.getBlock(); - const currentBlockNumber = currentBlock.block.header.number.toNumber(); - await userApi.advanceToBlock(currentBlockNumber + storageRequestTtl, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID] - }); - - // Resume BSP-Two and BSP-Three. - await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-two" }); - await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-three" }); - - // Wait for BSPs to resync. - await sleep(1000); - - // There shouldn't be any pending volunteer transactions. - await assert.rejects( - async () => { - await userApi.assert.extrinsicPresent({ - module: "fileSystem", - method: "bspVolunteer", - checkTxPool: true - }); - }, - /No matching extrinsic found for fileSystem\.bspVolunteer/, - "There should be no pending volunteer transactions" - ); - }); - - it("BSP-Two still correctly responds to challenges with same forest root", async () => { - // Advance some blocks to allow the BSP to process the challenges and submit proofs. - for (let i = 0; i < 20; i++) { - await userApi.sealBlock(); - await sleep(500); - } - - // Advance to next challenge tick for BSP-Two. - // First we get the last tick for which the BSP submitted a proof. - const lastTickResult = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(BSP_TWO_ID); - assert(lastTickResult.isOk); - const lastTickBspTwoSubmittedProof = lastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const challengePeriodResult = - await userApi.call.proofsDealerApi.getChallengePeriod(BSP_TWO_ID); - assert(challengePeriodResult.isOk); - const challengePeriod = challengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - const nextChallengeTick = lastTickBspTwoSubmittedProof + challengePeriod; - // Finally, advance to the next challenge tick. - await userApi.advanceToBlock(nextChallengeTick); - - // Wait for tasks to execute and for the BSPs to submit proofs. - await sleep(500); - - // There should be at least one pending submit proof transaction. - const submitProofsPending = await userApi.assert.extrinsicPresent({ - module: "proofsDealer", - method: "submitProof", - checkTxPool: true - }); - assert(submitProofsPending.length > 0); - - // Seal block and check that the transaction was successful. - await userApi.sealBlock(); - - // Assert for the event of the proof successfully submitted and verified. - const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); - strictEqual( - proofAcceptedEvents.length, - submitProofsPending.length, - "All pending submit proof transactions should have been successful" - ); - }); - - it( - "Custom challenge is added", - { skip: "Not implemented yet. All BSPs have the same files." }, - async () => { - await it("Custom challenge is included in checkpoint challenge round", async () => { - // TODO: Send transaction for custom challenge with new file key. - // TODO: Advance until next checkpoint challenge block. - // TODO: Check that custom challenge was included in checkpoint challenge round. - }); - - await it("BSP that has it responds to custom challenge with proof of inclusion", async () => { - // TODO: Advance until next challenge for BSP. - // TODO: Build block with proof submission. - // TODO: Check that proof submission was successful, including the custom challenge. - }); - - await it("BSPs who don't have it respond non-inclusion proof", async () => { - // TODO: Advance until next challenge for BSP-Two and BSP-Three. - // TODO: Build block with proof submission. - // TODO: Check that proof submission was successful, with proof of non-inclusion. - }); - } - ); - - it("File is deleted by user", async () => { - // Get the root of the BSP that has the file before deletion. - const bspMetadata = await userApi.query.providers.backupStorageProviders( - ShConsts.DUMMY_BSP_ID - ); - assert(bspMetadata, "BSP metadata should exist"); - assert(bspMetadata.isSome, "BSP metadata should be Some"); - const bspMetadataBlob = bspMetadata.unwrap(); - rootBeforeDeletion = bspMetadataBlob.root.toHex(); - // Make sure it matches the one of the actual merkle forest. - const actualRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); - strictEqual( - rootBeforeDeletion, - actualRoot.toHex(), - "The root of the BSP should match the actual merkle forest root." - ); - - // User sends file deletion request. - await userApi.sealBlock( - userApi.tx.fileSystem.deleteFile( - oneBspFileData.bucketId, - oneBspFileData.fileKey, - oneBspFileData.location, - oneBspFileData.fileSize, - oneBspFileData.fingerprint, - null - ), - shUser - ); - - // Check for a file deletion request event. - await userApi.assert.eventPresent("fileSystem", "FileDeletionRequest"); - - // Advance until the deletion request expires so that it can be processed. - const deletionRequestTtl = Number(userApi.consts.fileSystem.pendingFileDeletionRequestTtl); - const currentBlock = await userApi.rpc.chain.getBlock(); - const currentBlockNumber = currentBlock.block.header.number.toNumber(); - await userApi.advanceToBlock(currentBlockNumber + deletionRequestTtl, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] - }); - - // Check for a file deletion request event. - await userApi.assert.eventPresent("fileSystem", "PriorityChallengeForFileDeletionQueued"); - }); - - it("Priority challenge is included in checkpoint challenge round", async () => { - // Advance to next checkpoint challenge block. - const checkpointChallengePeriod = Number( - userApi.consts.proofsDealer.checkpointChallengePeriod - ); - const lastCheckpointChallengeTick = Number( - await userApi.call.proofsDealerApi.getLastCheckpointChallengeTick() - ); - const nextCheckpointChallengeBlock = lastCheckpointChallengeTick + checkpointChallengePeriod; - await userApi.advanceToBlock(nextCheckpointChallengeBlock, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] - }); - - // Check that the event for the priority challenge is emitted. - const newCheckpointChallengesEvent = await userApi.assert.eventPresent( - "proofsDealer", - "NewCheckpointChallenge" - ); - - // Check that the file key is in the included checkpoint challenges. - const newCheckpointChallengesEventDataBlob = - userApi.events.proofsDealer.NewCheckpointChallenge.is(newCheckpointChallengesEvent.event) && - newCheckpointChallengesEvent.event.data; - assert(newCheckpointChallengesEventDataBlob, "Event doesn't match Type"); - let containsFileKey = false; - for (const checkpointChallenge of newCheckpointChallengesEventDataBlob.challenges) { - if (checkpointChallenge[0].toHuman() === oneBspFileData.fileKey) { - containsFileKey = true; - break; - } - } - assert(containsFileKey, "The file key should be included in the checkpoint challenge."); - }); - - it("BSP that has the file responds with correct proof including the file key, and BSP that doesn't have the file responds with correct proof non-including the file key", async () => { - // Check who has a challenge tick coming up first: the BSP that has the file or BSP-Two who doesn't have it. - // Whoever has the challenge tick first, we check that they submitted a proof successfully first. - const currentTick = (await userApi.call.proofsDealerApi.getCurrentTick()).toNumber(); - - // Calculate next challenge tick for the BSP that has the file. - // We first get the last tick for which the BSP submitted a proof. - const dummyBspLastTickResult = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.DUMMY_BSP_ID); - assert(dummyBspLastTickResult.isOk); - const lastTickBspSubmittedProof = dummyBspLastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const dummyBspChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.DUMMY_BSP_ID - ); - assert(dummyBspChallengePeriodResult.isOk); - const dummyBspChallengePeriod = dummyBspChallengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - let dummyBspNextChallengeTick = lastTickBspSubmittedProof + dummyBspChallengePeriod; - // If it is exactly equal to the current tick, we take the next challenge tick. - if (dummyBspNextChallengeTick === currentTick) { - dummyBspNextChallengeTick += dummyBspChallengePeriod; - } - - // Calculate next challenge tick for BSP-Two. - // We first get the last tick for which the BSP submitted a proof. - const bspTwoLastTickResult = - await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.BSP_TWO_ID); - assert(bspTwoLastTickResult.isOk); - const bspTwoLastTickBspTwoSubmittedProof = bspTwoLastTickResult.asOk.toNumber(); - // Then we get the challenge period for the BSP. - const bspTwoChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( - ShConsts.BSP_TWO_ID - ); - assert(bspTwoChallengePeriodResult.isOk); - const bspTwoChallengePeriod = bspTwoChallengePeriodResult.asOk.toNumber(); - // Then we calculate the next challenge tick. - let bspTwoNextChallengeTick = bspTwoLastTickBspTwoSubmittedProof + bspTwoChallengePeriod; - // If it is exactly equal to the current tick, we take the next challenge tick. - if (bspTwoNextChallengeTick === currentTick) { - bspTwoNextChallengeTick += bspTwoChallengePeriod; - } - - const firstBspToRespond = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? ShConsts.DUMMY_BSP_ID - : ShConsts.BSP_TWO_ID; - const secondBspToRespond = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? ShConsts.BSP_TWO_ID - : ShConsts.DUMMY_BSP_ID; - const firstBlockToAdvance = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? dummyBspNextChallengeTick - : bspTwoNextChallengeTick; - const secondBlockToAdvance = - dummyBspNextChallengeTick < bspTwoNextChallengeTick - ? bspTwoNextChallengeTick - : dummyBspNextChallengeTick; - - // Advance to first next challenge block. - await userApi.advanceToBlock(firstBlockToAdvance, { - waitForBspProofs: [DUMMY_BSP_ID, BSP_TWO_ID, BSP_THREE_ID] - }); - - // Wait for BSP to generate the proof and advance one more block. - await sleep(500); - await userApi.sealBlock(); - - // Check for a ProofAccepted event. - const firstChallengeBlockEvents = await userApi.assert.eventMany( - "proofsDealer", - "ProofAccepted" - ); - - // Check that at least one of the `ProofAccepted` events belongs to `firstBspToRespond`. - const atLeastOneEventBelongsToFirstBsp = firstChallengeBlockEvents.some((eventRecord) => { - const firstChallengeBlockEventDataBlob = - userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; - assert(firstChallengeBlockEventDataBlob, "Event doesn't match Type"); - - return firstChallengeBlockEventDataBlob.provider.toString() === firstBspToRespond; - }); - assert(atLeastOneEventBelongsToFirstBsp, "No ProofAccepted event belongs to the first BSP"); - - // If the first BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. - if (firstBspToRespond === ShConsts.DUMMY_BSP_ID) { - const mutationsAppliedEvents = await userApi.assert.eventMany( - "proofsDealer", - "MutationsApplied" - ); - strictEqual( - mutationsAppliedEvents.length, - 1, - "There should be one mutations applied event" - ); - - // Check that the mutations applied event belongs to the dummy BSP. - const mutationsAppliedEventDataBlob = - userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && - mutationsAppliedEvents[0].event.data; - assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); - strictEqual( - mutationsAppliedEventDataBlob.provider.toString(), - ShConsts.DUMMY_BSP_ID, - "The mutations applied event should belong to the dummy BSP" - ); - } - - // Advance to second next challenge block. - await userApi.advanceToBlock(secondBlockToAdvance, { - waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] - }); - - // Wait for BSP to generate the proof and advance one more block. - await sleep(500); - const secondChallengeBlockResult = await userApi.sealBlock(); - - // Check for a ProofAccepted event. - const secondChallengeBlockEvents = await userApi.assert.eventMany( - "proofsDealer", - "ProofAccepted", - secondChallengeBlockResult.events - ); - - // Check that at least one of the `ProofAccepted` events belongs to `secondBspToRespond`. - const atLeastOneEventBelongsToSecondBsp = secondChallengeBlockEvents.some((eventRecord) => { - const secondChallengeBlockEventDataBlob = - userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; - assert(secondChallengeBlockEventDataBlob, "Event doesn't match Type"); - - return secondChallengeBlockEventDataBlob.provider.toString() === secondBspToRespond; - }); - assert(atLeastOneEventBelongsToSecondBsp, "No ProofAccepted event belongs to the second BSP"); - - // If the second BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. - if (secondBspToRespond === ShConsts.DUMMY_BSP_ID) { - const mutationsAppliedEvents = await userApi.assert.eventMany( - "proofsDealer", - "MutationsApplied" - ); - strictEqual( - mutationsAppliedEvents.length, - 1, - "There should be one mutations applied event" - ); - - // Check that the mutations applied event belongs to the dummy BSP. - const mutationsAppliedEventDataBlob = - userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && - mutationsAppliedEvents[0].event.data; - assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); - strictEqual( - mutationsAppliedEventDataBlob.provider.toString(), - ShConsts.DUMMY_BSP_ID, - "The mutations applied event should belong to the dummy BSP" - ); - } - }); - - it("File is removed from Forest by BSP", async () => { - // Make sure the root was updated in the runtime - const bspMetadataAfterDeletion = await userApi.query.providers.backupStorageProviders( - ShConsts.DUMMY_BSP_ID - ); - assert(bspMetadataAfterDeletion, "BSP metadata should exist"); - assert(bspMetadataAfterDeletion.isSome, "BSP metadata should be Some"); - const bspMetadataAfterDeletionBlob = bspMetadataAfterDeletion.unwrap(); - assert( - bspMetadataAfterDeletionBlob.root.toHex() !== rootBeforeDeletion, - "The root should have been updated on chain" - ); - - // Check that the runtime root matches the forest root of the BSP. - const forestRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); - strictEqual( - bspMetadataAfterDeletionBlob.root.toString(), - forestRoot.toString(), - "The runtime root should match the forest root of the BSP" - ); - }); - - it( - "File mutation is finalised and BSP removes it from File Storage", - { skip: "Not implemented yet." }, - async () => { - // TODO: Finalise block with mutations. - // TODO: Check that file is removed from File Storage. Need a RPC method for this. - } - ); - } -); +import assert, { strictEqual } from "node:assert"; +import { + describeBspNet, + shUser, + sleep, + type EnrichedBspApi, + type FileMetadata, + ShConsts +} from "../../../util"; +import { BSP_THREE_ID, BSP_TWO_ID, DUMMY_BSP_ID } from "../../../util/bspNet/consts"; + +describeBspNet( + "BSP: Many BSPs Submit Proofs", + { initialised: "multi", networkConfig: "standard" }, + ({ before, createUserApi, after, it, createApi, createBspApi, getLaunchResponse }) => { + let userApi: EnrichedBspApi; + let bspApi: EnrichedBspApi; + let bspTwoApi: EnrichedBspApi; + let bspThreeApi: EnrichedBspApi; + let fileData: FileMetadata; + let oneBspFileData: FileMetadata; + let rootBeforeDeletion: string; + + before(async () => { + const launchResponse = await getLaunchResponse(); + assert(launchResponse, "BSPNet failed to initialise"); + fileData = launchResponse.fileData; + userApi = await createUserApi(); + bspApi = await createBspApi(); + bspTwoApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspTwoRpcPort}`); + bspThreeApi = await createApi(`ws://127.0.0.1:${launchResponse?.bspThreeRpcPort}`); + }); + + after(async () => { + await bspTwoApi.disconnect(); + await bspThreeApi.disconnect(); + }); + + it("Network launches and can be queried", async () => { + const userNodePeerId = await userApi.rpc.system.localPeerId(); + strictEqual(userNodePeerId.toString(), userApi.shConsts.NODE_INFOS.user.expectedPeerId); + const bspNodePeerId = await bspApi.rpc.system.localPeerId(); + strictEqual(bspNodePeerId.toString(), userApi.shConsts.NODE_INFOS.bsp.expectedPeerId); + }); + + it("Many BSPs are challenged and correctly submit proofs", async () => { + // Calculate the next challenge tick for the BSPs. It should be the same for all BSPs, + // since they all have the same file they were initialised with, and responded to it at + // the same time. + // We first get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspSubmittedProof + challengePeriod; + // Finally, advance to the next challenge tick. + await userApi.advanceToBlock(nextChallengeTick); + + await userApi.assert.extrinsicPresent({ + module: "proofsDealer", + method: "submitProof", + checkTxPool: true, + assertLength: 3, + timeout: 10000 + }); + + // Seal one more block with the pending extrinsics. + await userApi.sealBlock(); + + // Assert for the the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual(proofAcceptedEvents.length, 3, "There should be three proofs accepted events"); + + // Get the new last tick for which the BSP submitted a proof. + // It should be the previous last tick plus one BSP period. + const lastTickResultAfterProof = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(lastTickResultAfterProof.isOk); + const lastTickBspSubmittedProofAfterProof = lastTickResultAfterProof.asOk.toNumber(); + strictEqual( + lastTickBspSubmittedProofAfterProof, + lastTickBspSubmittedProof + challengePeriod, + "The last tick for which the BSP submitted a proof should be the previous last tick plus one BSP period" + ); + + // Get the new deadline for the BSP. + // It should be the current last tick, plus one BSP period, plus the challenges tick tolerance. + const challengesTickTolerance = Number(userApi.consts.proofsDealer.challengeTicksTolerance); + const newDeadline = + lastTickBspSubmittedProofAfterProof + challengePeriod + challengesTickTolerance; + const newDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(newDeadlineResult.isOk); + const newDeadlineOnChain = newDeadlineResult.asOk.toNumber(); + strictEqual( + newDeadline, + newDeadlineOnChain, + "The deadline should be the same as the one we just calculated" + ); + }); + + it("BSP fails to submit proof and is marked as slashable", async () => { + // Get BSP-Down's deadline. + const bspDownDeadlineResult = await userApi.call.proofsDealerApi.getNextDeadlineTick( + userApi.shConsts.BSP_DOWN_ID + ); + assert(bspDownDeadlineResult.isOk); + const bspDownDeadline = bspDownDeadlineResult.asOk.toNumber(); + + // Get the last tick for which the BSP-Down submitted a proof before advancing to the deadline. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.BSP_DOWN_ID + ); + assert(lastTickResult.isOk); + const lastTickBspDownSubmittedProof = lastTickResult.asOk.toNumber(); + // Finally, advance to the next challenge tick. + await userApi.advanceToBlock(bspDownDeadline); + + // Expect to see a `SlashableProvider` event in the last block. + const slashableProviderEvent = await userApi.assert.eventPresent( + "proofsDealer", + "SlashableProvider" + ); + const slashableProviderEventDataBlob = + userApi.events.proofsDealer.SlashableProvider.is(slashableProviderEvent.event) && + slashableProviderEvent.event.data; + assert(slashableProviderEventDataBlob, "Event doesn't match Type"); + strictEqual( + slashableProviderEventDataBlob.provider.toString(), + userApi.shConsts.BSP_DOWN_ID, + "The BSP-Down should be slashable" + ); + + // Get the last tick for which the BSP-Down submitted a proof after advancing to the deadline. + const lastTickResultAfterSlashable = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + userApi.shConsts.BSP_DOWN_ID + ); + assert(lastTickResultAfterSlashable.isOk); + const lastTickBspDownSubmittedProofAfterSlashable = + lastTickResultAfterSlashable.asOk.toNumber(); + + // The new last tick should be equal to the last tick before BSP-Down was marked as slashable plus one challenge period. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + userApi.shConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + strictEqual( + lastTickBspDownSubmittedProofAfterSlashable, + lastTickBspDownSubmittedProof + challengePeriod, + "The last tick for which the BSP-Down submitted a proof should be the last tick before BSP-Down was marked as slashable plus one challenge period" + ); + }); + + it( + "BSP stops storing last file", + { skip: "Not implemented yet. Needs RPC method to build proofs." }, + async () => { + // TODO: Build inclusion forest proof for file. + // TODO: BSP-Three sends transaction to stop storing the only file it has. + console.log(fileData); + // // Build transaction for BSP-Three to stop storing the only file it has. + // const call = bspThreeApi.sealBlock( + // bspThreeApi.tx.fileSystem.bspStopStoring( + // fileData.fileKey, + // fileData.bucketId, + // fileData.location, + // fileData.owner, + // fileData.fingerprint, + // fileData.fileSize, + // false + // ), + // bspThreeKey + // ); + } + ); + + it( + "BSP can correctly delete a file from its forest and runtime correctly updates its root", + { skip: "Not implemented yet. Needs RPC method to build proofs." }, + async () => { + // TODO: Setup a BSP that has two files which lie under the same NibbledBranch in the forest. + // TODO: Generate the proof to delete one of the files. + /* let inclusionForestProof = bspThreeApi.rpc.storagehubclient.buildForestRoot(fileData.fileKey); */ + // TODO: Request the deletion of the file: + /* const fileDeletionRequestResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspRequestStopStoring( + fileData.fileKey, + fileData.bucketId, + fileData.location, + fileData.owner, + fileData.fingerprint, + fileData.fileSize, + false, + inclusion_forest_proof: ForestProof, + ); */ + // Wait enough blocks for the deletion to be allowed. + /* const currentBlock = await bspThreeApi.rpc.chain.getBlock(); + const currentBlockNumber = currentBlock.block.header.number.toNumber(); + const cooldown = currentBlockNumber + bspThreeApi.consts.fileSystem.minWaitForStopStoring.toNumber(); + await bspThreeApi.advanceToBlock(cooldown); */ + // TODO: Confirm the request of deletion. Make sure the extrinsic doesn't fail and the root is updated correctly. + /* const fileDeletionConfirmResult = bspThreeApi.sealBlock(bspThreeApi.tx.fileSystem.bspConfirmStopStoring( + fileData.fileKey, + inclusionForestProof, + )); + // Check for the confirm stopped storing event. + let confirmStopStoringEvent = bspThreeApi.assert.eventPresent( + "fileSystem", + "BspConfirmStoppedStoring", + fileDeletionConfirmResult.events + ); + // Make sure the new root was updated correctly. + bspThreeApi.rpc.storagehubclient.deleteFile(fileData.fileKey); // Not sure if this is the correct way to do it. + const newRoot = bspThreeApi.rpc.storagehubclient.getForestRoot(); + const newRootInRuntime = confirmStopStoringEvent.event.data.newRoot; + assert(newRoot === newRootInRuntime, "The new root should be updated correctly"); + */ + } + ); + + it("BSP is not challenged any more", { skip: "Not implemented yet." }, async () => { + // TODO: Check that BSP-Three no longer has a challenge deadline. + }); + + it( + "BSP submits proof, transaction gets dropped, BSP-resubmits and succeeds", + { skip: "Dropping transactions is not implemented as testing utility yet." }, + async () => {} + ); + + it("New storage request sent by user, to only one BSP", async () => { + // Pause BSP-Two and BSP-Three. + await userApi.docker.pauseBspContainer("sh-bsp-two"); + await userApi.docker.pauseBspContainer("sh-bsp-three"); + + // Send transaction to create new storage request. + const source = "res/adolphus.jpg"; + const location = "test/adolphus.jpg"; + const bucketName = "nothingmuch-2"; + const fileData = await userApi.file.newStorageRequest(source, location, bucketName); + oneBspFileData = fileData; + }); + + it("Only one BSP confirms it", async () => { + await userApi.wait.bspVolunteer(1); + await userApi.wait.bspStored(1); + }); + + it("BSP correctly responds to challenge with new forest root", async () => { + // Advance to two challenge periods ahead for first BSP. + // This is because in the odd case that we're exactly on the next challenge tick right now, + // there is a race condition chance where the BSP will send the submit proof extrinsic in the + // next block, since the Forest write lock is released as a consequence of the confirm storing + // extrinsic. So we advance two challenge periods ahead to be sure. + + // First we get the last tick for which the BSP submitted a proof. + const lastTickResult = await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof( + ShConsts.DUMMY_BSP_ID + ); + assert(lastTickResult.isOk); + const lastTickBspSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate two challenge ticks ahead. + const nextChallengeTick = lastTickBspSubmittedProof + 2 * challengePeriod; + // Finally, advance two challenge ticks ahead. + await userApi.advanceToBlock(nextChallengeTick); + + // Wait for BSP to submit proof. + await sleep(1000); + + // There should be at least one pending submit proof transaction. + const submitProofsPending = await userApi.assert.extrinsicPresent({ + module: "proofsDealer", + method: "submitProof", + checkTxPool: true + }); + assert(submitProofsPending.length > 0); + + // Seal block and check that the transaction was successful. + await userApi.sealBlock(); + + // Assert for the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual( + proofAcceptedEvents.length, + submitProofsPending.length, + "All pending submit proof transactions should have been successful" + ); + }); + + it("Resume BSPs, and they shouldn't volunteer for the expired storage request", async () => { + // Advance a number of blocks up to when the storage request times out for sure. + const storageRequestTtl = Number(userApi.consts.fileSystem.storageRequestTtl); + const currentBlock = await userApi.rpc.chain.getBlock(); + const currentBlockNumber = currentBlock.block.header.number.toNumber(); + await userApi.advanceToBlock(currentBlockNumber + storageRequestTtl, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID] + }); + + // Resume BSP-Two and BSP-Three. + await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-two" }); + await userApi.docker.resumeBspContainer({ containerName: "sh-bsp-three" }); + + // Wait for BSPs to resync. + await sleep(1000); + + // There shouldn't be any pending volunteer transactions. + await assert.rejects( + async () => { + await userApi.assert.extrinsicPresent({ + module: "fileSystem", + method: "bspVolunteer", + checkTxPool: true + }); + }, + /No matching extrinsic found for fileSystem\.bspVolunteer/, + "There should be no pending volunteer transactions" + ); + }); + + it("BSP-Two still correctly responds to challenges with same forest root", async () => { + // Advance some blocks to allow the BSP to process the challenges and submit proofs. + for (let i = 0; i < 20; i++) { + await userApi.sealBlock(); + await sleep(500); + } + + // Advance to next challenge tick for BSP-Two. + // First we get the last tick for which the BSP submitted a proof. + const lastTickResult = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(BSP_TWO_ID); + assert(lastTickResult.isOk); + const lastTickBspTwoSubmittedProof = lastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const challengePeriodResult = + await userApi.call.proofsDealerApi.getChallengePeriod(BSP_TWO_ID); + assert(challengePeriodResult.isOk); + const challengePeriod = challengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + const nextChallengeTick = lastTickBspTwoSubmittedProof + challengePeriod; + // Finally, advance to the next challenge tick. + await userApi.advanceToBlock(nextChallengeTick); + + // Wait for tasks to execute and for the BSPs to submit proofs. + await sleep(500); + + // There should be at least one pending submit proof transaction. + const submitProofsPending = await userApi.assert.extrinsicPresent({ + module: "proofsDealer", + method: "submitProof", + checkTxPool: true + }); + assert(submitProofsPending.length > 0); + + // Seal block and check that the transaction was successful. + await userApi.sealBlock(); + + // Assert for the event of the proof successfully submitted and verified. + const proofAcceptedEvents = await userApi.assert.eventMany("proofsDealer", "ProofAccepted"); + strictEqual( + proofAcceptedEvents.length, + submitProofsPending.length, + "All pending submit proof transactions should have been successful" + ); + }); + + it( + "Custom challenge is added", + { skip: "Not implemented yet. All BSPs have the same files." }, + async () => { + await it("Custom challenge is included in checkpoint challenge round", async () => { + // TODO: Send transaction for custom challenge with new file key. + // TODO: Advance until next checkpoint challenge block. + // TODO: Check that custom challenge was included in checkpoint challenge round. + }); + + await it("BSP that has it responds to custom challenge with proof of inclusion", async () => { + // TODO: Advance until next challenge for BSP. + // TODO: Build block with proof submission. + // TODO: Check that proof submission was successful, including the custom challenge. + }); + + await it("BSPs who don't have it respond non-inclusion proof", async () => { + // TODO: Advance until next challenge for BSP-Two and BSP-Three. + // TODO: Build block with proof submission. + // TODO: Check that proof submission was successful, with proof of non-inclusion. + }); + } + ); + + it("File is deleted by user", async () => { + // Get the root of the BSP that has the file before deletion. + const bspMetadata = await userApi.query.providers.backupStorageProviders( + ShConsts.DUMMY_BSP_ID + ); + assert(bspMetadata, "BSP metadata should exist"); + assert(bspMetadata.isSome, "BSP metadata should be Some"); + const bspMetadataBlob = bspMetadata.unwrap(); + rootBeforeDeletion = bspMetadataBlob.root.toHex(); + // Make sure it matches the one of the actual merkle forest. + const actualRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); + strictEqual( + rootBeforeDeletion, + actualRoot.toHex(), + "The root of the BSP should match the actual merkle forest root." + ); + + // User sends file deletion request. + await userApi.sealBlock( + userApi.tx.fileSystem.deleteFile( + oneBspFileData.bucketId, + oneBspFileData.fileKey, + oneBspFileData.location, + oneBspFileData.fileSize, + oneBspFileData.fingerprint, + null + ), + shUser + ); + + // Check for a file deletion request event. + await userApi.assert.eventPresent("fileSystem", "FileDeletionRequest"); + + // Advance until the deletion request expires so that it can be processed. + const deletionRequestTtl = Number(userApi.consts.fileSystem.pendingFileDeletionRequestTtl); + const currentBlock = await userApi.rpc.chain.getBlock(); + const currentBlockNumber = currentBlock.block.header.number.toNumber(); + await userApi.advanceToBlock(currentBlockNumber + deletionRequestTtl, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] + }); + + // Check for a file deletion request event. + await userApi.assert.eventPresent("fileSystem", "PriorityChallengeForFileDeletionQueued"); + }); + + it("Priority challenge is included in checkpoint challenge round", async () => { + // Advance to next checkpoint challenge block. + const checkpointChallengePeriod = Number( + userApi.consts.proofsDealer.checkpointChallengePeriod + ); + const lastCheckpointChallengeTick = Number( + await userApi.call.proofsDealerApi.getLastCheckpointChallengeTick() + ); + const nextCheckpointChallengeBlock = lastCheckpointChallengeTick + checkpointChallengePeriod; + await userApi.advanceToBlock(nextCheckpointChallengeBlock, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] + }); + + // Check that the event for the priority challenge is emitted. + const newCheckpointChallengesEvent = await userApi.assert.eventPresent( + "proofsDealer", + "NewCheckpointChallenge" + ); + + // Check that the file key is in the included checkpoint challenges. + const newCheckpointChallengesEventDataBlob = + userApi.events.proofsDealer.NewCheckpointChallenge.is(newCheckpointChallengesEvent.event) && + newCheckpointChallengesEvent.event.data; + assert(newCheckpointChallengesEventDataBlob, "Event doesn't match Type"); + let containsFileKey = false; + for (const checkpointChallenge of newCheckpointChallengesEventDataBlob.challenges) { + if (checkpointChallenge[0].toHuman() === oneBspFileData.fileKey) { + containsFileKey = true; + break; + } + } + assert(containsFileKey, "The file key should be included in the checkpoint challenge."); + }); + + it("BSP that has the file responds with correct proof including the file key, and BSP that doesn't have the file responds with correct proof non-including the file key", async () => { + // Check who has a challenge tick coming up first: the BSP that has the file or BSP-Two who doesn't have it. + // Whoever has the challenge tick first, we check that they submitted a proof successfully first. + const currentTick = (await userApi.call.proofsDealerApi.getCurrentTick()).toNumber(); + + // Calculate next challenge tick for the BSP that has the file. + // We first get the last tick for which the BSP submitted a proof. + const dummyBspLastTickResult = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.DUMMY_BSP_ID); + assert(dummyBspLastTickResult.isOk); + const lastTickBspSubmittedProof = dummyBspLastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const dummyBspChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.DUMMY_BSP_ID + ); + assert(dummyBspChallengePeriodResult.isOk); + const dummyBspChallengePeriod = dummyBspChallengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + let dummyBspNextChallengeTick = lastTickBspSubmittedProof + dummyBspChallengePeriod; + // If it is exactly equal to the current tick, we take the next challenge tick. + if (dummyBspNextChallengeTick === currentTick) { + dummyBspNextChallengeTick += dummyBspChallengePeriod; + } + + // Calculate next challenge tick for BSP-Two. + // We first get the last tick for which the BSP submitted a proof. + const bspTwoLastTickResult = + await userApi.call.proofsDealerApi.getLastTickProviderSubmittedProof(ShConsts.BSP_TWO_ID); + assert(bspTwoLastTickResult.isOk); + const bspTwoLastTickBspTwoSubmittedProof = bspTwoLastTickResult.asOk.toNumber(); + // Then we get the challenge period for the BSP. + const bspTwoChallengePeriodResult = await userApi.call.proofsDealerApi.getChallengePeriod( + ShConsts.BSP_TWO_ID + ); + assert(bspTwoChallengePeriodResult.isOk); + const bspTwoChallengePeriod = bspTwoChallengePeriodResult.asOk.toNumber(); + // Then we calculate the next challenge tick. + let bspTwoNextChallengeTick = bspTwoLastTickBspTwoSubmittedProof + bspTwoChallengePeriod; + // If it is exactly equal to the current tick, we take the next challenge tick. + if (bspTwoNextChallengeTick === currentTick) { + bspTwoNextChallengeTick += bspTwoChallengePeriod; + } + + const firstBspToRespond = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? ShConsts.DUMMY_BSP_ID + : ShConsts.BSP_TWO_ID; + const secondBspToRespond = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? ShConsts.BSP_TWO_ID + : ShConsts.DUMMY_BSP_ID; + const firstBlockToAdvance = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? dummyBspNextChallengeTick + : bspTwoNextChallengeTick; + const secondBlockToAdvance = + dummyBspNextChallengeTick < bspTwoNextChallengeTick + ? bspTwoNextChallengeTick + : dummyBspNextChallengeTick; + + // Advance to first next challenge block. + await userApi.advanceToBlock(firstBlockToAdvance, { + waitForBspProofs: [DUMMY_BSP_ID, BSP_TWO_ID, BSP_THREE_ID] + }); + + // Wait for BSP to generate the proof and advance one more block. + await sleep(500); + await userApi.sealBlock(); + + // Check for a ProofAccepted event. + const firstChallengeBlockEvents = await userApi.assert.eventMany( + "proofsDealer", + "ProofAccepted" + ); + + // Check that at least one of the `ProofAccepted` events belongs to `firstBspToRespond`. + const atLeastOneEventBelongsToFirstBsp = firstChallengeBlockEvents.some((eventRecord) => { + const firstChallengeBlockEventDataBlob = + userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; + assert(firstChallengeBlockEventDataBlob, "Event doesn't match Type"); + + return firstChallengeBlockEventDataBlob.provider.toString() === firstBspToRespond; + }); + assert(atLeastOneEventBelongsToFirstBsp, "No ProofAccepted event belongs to the first BSP"); + + // If the first BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. + if (firstBspToRespond === ShConsts.DUMMY_BSP_ID) { + const mutationsAppliedEvents = await userApi.assert.eventMany( + "proofsDealer", + "MutationsApplied" + ); + strictEqual( + mutationsAppliedEvents.length, + 1, + "There should be one mutations applied event" + ); + + // Check that the mutations applied event belongs to the dummy BSP. + const mutationsAppliedEventDataBlob = + userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && + mutationsAppliedEvents[0].event.data; + assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); + strictEqual( + mutationsAppliedEventDataBlob.provider.toString(), + ShConsts.DUMMY_BSP_ID, + "The mutations applied event should belong to the dummy BSP" + ); + } + + // Advance to second next challenge block. + await userApi.advanceToBlock(secondBlockToAdvance, { + waitForBspProofs: [ShConsts.DUMMY_BSP_ID, ShConsts.BSP_TWO_ID, ShConsts.BSP_THREE_ID] + }); + + // Wait for BSP to generate the proof and advance one more block. + await sleep(500); + const secondChallengeBlockResult = await userApi.sealBlock(); + + // Check for a ProofAccepted event. + const secondChallengeBlockEvents = await userApi.assert.eventMany( + "proofsDealer", + "ProofAccepted", + secondChallengeBlockResult.events + ); + + // Check that at least one of the `ProofAccepted` events belongs to `secondBspToRespond`. + const atLeastOneEventBelongsToSecondBsp = secondChallengeBlockEvents.some((eventRecord) => { + const secondChallengeBlockEventDataBlob = + userApi.events.proofsDealer.ProofAccepted.is(eventRecord.event) && eventRecord.event.data; + assert(secondChallengeBlockEventDataBlob, "Event doesn't match Type"); + + return secondChallengeBlockEventDataBlob.provider.toString() === secondBspToRespond; + }); + assert(atLeastOneEventBelongsToSecondBsp, "No ProofAccepted event belongs to the second BSP"); + + // If the second BSP is the one removing the file, assert for the event of the mutations successfully applied in the runtime. + if (secondBspToRespond === ShConsts.DUMMY_BSP_ID) { + const mutationsAppliedEvents = await userApi.assert.eventMany( + "proofsDealer", + "MutationsApplied" + ); + strictEqual( + mutationsAppliedEvents.length, + 1, + "There should be one mutations applied event" + ); + + // Check that the mutations applied event belongs to the dummy BSP. + const mutationsAppliedEventDataBlob = + userApi.events.proofsDealer.MutationsApplied.is(mutationsAppliedEvents[0].event) && + mutationsAppliedEvents[0].event.data; + assert(mutationsAppliedEventDataBlob, "Event doesn't match Type"); + strictEqual( + mutationsAppliedEventDataBlob.provider.toString(), + ShConsts.DUMMY_BSP_ID, + "The mutations applied event should belong to the dummy BSP" + ); + } + }); + + it("File is removed from Forest by BSP", async () => { + // Make sure the root was updated in the runtime + const bspMetadataAfterDeletion = await userApi.query.providers.backupStorageProviders( + ShConsts.DUMMY_BSP_ID + ); + assert(bspMetadataAfterDeletion, "BSP metadata should exist"); + assert(bspMetadataAfterDeletion.isSome, "BSP metadata should be Some"); + const bspMetadataAfterDeletionBlob = bspMetadataAfterDeletion.unwrap(); + assert( + bspMetadataAfterDeletionBlob.root.toHex() !== rootBeforeDeletion, + "The root should have been updated on chain" + ); + + // Check that the runtime root matches the forest root of the BSP. + const forestRoot = await bspApi.rpc.storagehubclient.getForestRoot(null); + strictEqual( + bspMetadataAfterDeletionBlob.root.toString(), + forestRoot.toString(), + "The runtime root should match the forest root of the BSP" + ); + }); + + it( + "File mutation is finalised and BSP removes it from File Storage", + { skip: "Not implemented yet." }, + async () => { + // TODO: Finalise block with mutations. + // TODO: Check that file is removed from File Storage. Need a RPC method for this. + } + ); + } +); diff --git a/test/util/bspNet/consts.ts b/test/util/bspNet/consts.ts index b424fb528..1a5494633 100644 --- a/test/util/bspNet/consts.ts +++ b/test/util/bspNet/consts.ts @@ -1,100 +1,100 @@ -export const NODE_INFOS = { - user: { - containerName: "docker-sh-user-1", - port: 9888, - p2pPort: 30444, - AddressId: "5CombC1j5ZmdNMEpWYpeEWcKPPYcKsC1WgMPgzGLU72SLa4o", - expectedPeerId: "12D3KooWMvbhtYjbhgjoDzbnf71SFznJAKBBkSGYEUtnpES1y9tM" - }, - bsp: { - containerName: "docker-sh-bsp-1", - port: 9666, - p2pPort: 30350, - AddressId: "5FHSHEFWHVGDnyiw66DoRUpLyh5RouWkXo9GT1Sjk8qw7MAg", - expectedPeerId: "12D3KooWNEZ8PGNydcdXTYy1SPHvkP9mbxdtTqGGFVrhorDzeTfU" - }, - msp: { - containerName: "docker-sh-msp-1", - port: 9777, - p2pPort: 30555, - AddressId: "5E1rPv1M2mheg6pM57QqU7TZ6eCwbVpiYfyYkrugpBdEzDiU", - nodeKey: "0x12b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", - expectedPeerId: "12D3KooWSUvz8QM5X4tfAaSLErAZjR2puojo16pULBHyqTMGKtNV" - }, - collator: { - containerName: "docker-sh-collator-1", - port: 9955, - p2pPort: 30333, - AddressId: "5C8NC6YuAivp3knYC58Taycx2scQoDcDd3MCEEgyw36Gh1R4" - }, - toxiproxy: { - containerName: "toxiproxy", - port: 8474 - } -} as const; - -export const TEST_ARTEFACTS = { - "res/adolphus.jpg": { - size: 416400n, - checksum: "739fb97f7c2b8e7f192b608722a60dc67ee0797c85ff1ea849c41333a40194f2", - fingerprint: "0x34eb5f637e05fc18f857ccb013250076534192189894d174ee3aa6d3525f6970" - }, - "res/smile.jpg": { - size: 633160n, - checksum: "12094d47c2fdf1a984c0b950c2c0ede733722bea3bee22fef312e017383b410c", - fingerprint: "0x535dd863026735ffe0919cc0fc3d8e5da45b9203f01fbf014dbe98005bd8d2fe" - }, - "res/whatsup.jpg": { - size: 216211n, - checksum: "585ed00a96349499cbc8a3882b0bd6f6aec5ce3b7dbee2d8b3d33f3c09a38ec6", - fingerprint: "0x2b83b972e63f52abc0d4146c4aee1f1ec8aa8e274d2ad1b626529446da93736c" - }, - "res/cloud.jpg": { - size: 346248n, - checksum: "8e06811883fc3e5e6a0331825b365e4bd7b83ba7683fa9da17e4daea25d7a9f5", - fingerprint: "0x5559299bc73782b5ad7e9dd57ba01bb06b8c44f5cab8d7afab5e1db2ea93da4c" - }, - "res/empty-file": { - size: 0n, - checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - fingerprint: "0x03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314" - }, - "res/half-chunk-file": { - size: 512n, - checksum: "c7b3b7dd37d7e0947b04550613692950c72b0551e038a01ab8679a3ea5631104", - fingerprint: "0xade3ca4ff2151a2533e816eb9402ae17e21160c6c52b1855ecff29faea8880b5" - }, - "res/one-chunk-file": { - size: 1024n, - checksum: "1f006b6a97eeb0dfd8cbc91ed815e6a429dcfdc2f3f32f2ac3e7977e70df4988", - fingerprint: "0x0904317e4977ad6f872cd9672d2733da9a628fda86ee9add68623a66918cbd8c" - } -} as const; - -export const DUMMY_MSP_ID = "0x0000000000000000000000000000000000000000000000000000000000000300"; -export const VALUE_PROP = "0x0000000000000000000000000000000000000000000000000000000000000770"; - -export const DUMMY_BSP_ID = TEST_ARTEFACTS["res/whatsup.jpg"].fingerprint; -export const BSP_TWO_ID = "0x0000000000000000000000000000000000000000000000000000000000000002"; -export const BSP_THREE_ID = "0x0000000000000000000000000000000000000000000000000000000000000003"; -export const BSP_DOWN_ID = "0xf000000000000000000000000000000000000000000000000000000000000000"; - -export const CAPACITY_5 = 1024n * 1024n * 5n; // 5 MB -export const CAPACITY_256 = 1024n * 1024n * 256n; // 256 MB -export const CAPACITY_512 = 1024n * 1024n * 512n; // 512 MB -export const CAPACITY_1024 = 1024n * 1024n * 1024n; // 1024 MB - -export const CAPACITY = { - 5: CAPACITY_5, - 256: CAPACITY_256, - 512: CAPACITY_512, - 1024: CAPACITY_1024 -} as const; - -export const U32_MAX = (BigInt(1) << BigInt(32)) - BigInt(1); -export const MAX_STORAGE_CAPACITY = CAPACITY[1024] * 4n - 1n; - -export const REMARK_WEIGHT_REF_TIME = 127_121_340; -export const REMARK_WEIGHT_PROOF_SIZE = 142; -export const TRANSFER_WEIGHT_REF_TIME = 297_297_000; -export const TRANSFER_WEIGHT_PROOF_SIZE = 308; +export const NODE_INFOS = { + user: { + containerName: "docker-sh-user-1", + port: 9888, + p2pPort: 30444, + AddressId: "5CombC1j5ZmdNMEpWYpeEWcKPPYcKsC1WgMPgzGLU72SLa4o", + expectedPeerId: "12D3KooWMvbhtYjbhgjoDzbnf71SFznJAKBBkSGYEUtnpES1y9tM" + }, + bsp: { + containerName: "docker-sh-bsp-1", + port: 9666, + p2pPort: 30350, + AddressId: "5FHSHEFWHVGDnyiw66DoRUpLyh5RouWkXo9GT1Sjk8qw7MAg", + expectedPeerId: "12D3KooWNEZ8PGNydcdXTYy1SPHvkP9mbxdtTqGGFVrhorDzeTfU" + }, + msp: { + containerName: "docker-sh-msp-1", + port: 9777, + p2pPort: 30555, + AddressId: "5E1rPv1M2mheg6pM57QqU7TZ6eCwbVpiYfyYkrugpBdEzDiU", + nodeKey: "0x12b3b1c917dda506f152816aad4685eefa54fe57792165b31141ac893610b314", + expectedPeerId: "12D3KooWSUvz8QM5X4tfAaSLErAZjR2puojo16pULBHyqTMGKtNV" + }, + collator: { + containerName: "docker-sh-collator-1", + port: 9955, + p2pPort: 30333, + AddressId: "5C8NC6YuAivp3knYC58Taycx2scQoDcDd3MCEEgyw36Gh1R4" + }, + toxiproxy: { + containerName: "toxiproxy", + port: 8474 + } +} as const; + +export const TEST_ARTEFACTS = { + "res/adolphus.jpg": { + size: 416400n, + checksum: "739fb97f7c2b8e7f192b608722a60dc67ee0797c85ff1ea849c41333a40194f2", + fingerprint: "0x34eb5f637e05fc18f857ccb013250076534192189894d174ee3aa6d3525f6970" + }, + "res/smile.jpg": { + size: 633160n, + checksum: "12094d47c2fdf1a984c0b950c2c0ede733722bea3bee22fef312e017383b410c", + fingerprint: "0x535dd863026735ffe0919cc0fc3d8e5da45b9203f01fbf014dbe98005bd8d2fe" + }, + "res/whatsup.jpg": { + size: 216211n, + checksum: "585ed00a96349499cbc8a3882b0bd6f6aec5ce3b7dbee2d8b3d33f3c09a38ec6", + fingerprint: "0x2b83b972e63f52abc0d4146c4aee1f1ec8aa8e274d2ad1b626529446da93736c" + }, + "res/cloud.jpg": { + size: 346248n, + checksum: "8e06811883fc3e5e6a0331825b365e4bd7b83ba7683fa9da17e4daea25d7a9f5", + fingerprint: "0x5559299bc73782b5ad7e9dd57ba01bb06b8c44f5cab8d7afab5e1db2ea93da4c" + }, + "res/empty-file": { + size: 0n, + checksum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + fingerprint: "0x03170a2e7597b7b7e3d84c05391d139a62b157e78786d8c082f29dcf4c111314" + }, + "res/half-chunk-file": { + size: 512n, + checksum: "c7b3b7dd37d7e0947b04550613692950c72b0551e038a01ab8679a3ea5631104", + fingerprint: "0xade3ca4ff2151a2533e816eb9402ae17e21160c6c52b1855ecff29faea8880b5" + }, + "res/one-chunk-file": { + size: 1024n, + checksum: "1f006b6a97eeb0dfd8cbc91ed815e6a429dcfdc2f3f32f2ac3e7977e70df4988", + fingerprint: "0x0904317e4977ad6f872cd9672d2733da9a628fda86ee9add68623a66918cbd8c" + } +} as const; + +export const DUMMY_MSP_ID = "0x0000000000000000000000000000000000000000000000000000000000000300"; +export const VALUE_PROP = "0x0000000000000000000000000000000000000000000000000000000000000770"; + +export const DUMMY_BSP_ID = TEST_ARTEFACTS["res/whatsup.jpg"].fingerprint; +export const BSP_TWO_ID = "0x0000000000000000000000000000000000000000000000000000000000000002"; +export const BSP_THREE_ID = "0x0000000000000000000000000000000000000000000000000000000000000003"; +export const BSP_DOWN_ID = "0xf000000000000000000000000000000000000000000000000000000000000000"; + +export const CAPACITY_5 = 1024n * 1024n * 5n; // 5 MB +export const CAPACITY_256 = 1024n * 1024n * 256n; // 256 MB +export const CAPACITY_512 = 1024n * 1024n * 512n; // 512 MB +export const CAPACITY_1024 = 1024n * 1024n * 1024n; // 1024 MB + +export const CAPACITY = { + 5: CAPACITY_5, + 256: CAPACITY_256, + 512: CAPACITY_512, + 1024: CAPACITY_1024 +} as const; + +export const U32_MAX = (BigInt(1) << BigInt(32)) - BigInt(1); +export const MAX_STORAGE_CAPACITY = CAPACITY[1024] * 4n - 1n; + +export const REMARK_WEIGHT_REF_TIME = 127_121_340; +export const REMARK_WEIGHT_PROOF_SIZE = 142; +export const TRANSFER_WEIGHT_REF_TIME = 297_297_000; +export const TRANSFER_WEIGHT_PROOF_SIZE = 308; diff --git a/test/util/bspNet/docker.ts b/test/util/bspNet/docker.ts index 226021a37..1dfd99db6 100644 --- a/test/util/bspNet/docker.ts +++ b/test/util/bspNet/docker.ts @@ -1,285 +1,285 @@ -import Docker from "dockerode"; -import { execSync } from "node:child_process"; -import path from "node:path"; -import { DOCKER_IMAGE } from "../constants"; -import { sendCustomRpc } from "../rpc"; -import * as NodeBspNet from "./node"; -import { BspNetTestApi } from "./test-api"; -import invariant from "tiny-invariant"; -import { PassThrough, type Readable } from "node:stream"; - -export const checkBspForFile = async (filePath: string) => { - const containerId = "docker-sh-bsp-1"; - const loc = path.join("/storage", filePath); - - for (let i = 0; i < 10; i++) { - try { - // TODO: Replace with dockerode - execSync(`docker exec ${containerId} ls ${loc}`, { stdio: "ignore" }); - return; - } catch { - await new Promise((resolve) => setTimeout(resolve, 1000)); - } - } - throw `File not found: ${loc} in ${containerId}`; -}; - -export const checkFileChecksum = async (filePath: string) => { - const containerId = "docker-sh-bsp-1"; - const loc = path.join("/storage", filePath); - const output = execSync(`docker exec ${containerId} sha256sum ${loc}`); - return output.toString().split(" ")[0]; -}; - -export const showContainers = () => { - try { - // TODO: Replace with dockerode - execSync("docker ps -a", { stdio: "inherit" }); - } catch (e) { - console.log(e); - console.log("Error displaying docker containers"); - } -}; - -export const addBspContainer = async (options?: { - name?: string; - connectToPeer?: boolean; // unused - additionalArgs?: string[]; -}) => { - const docker = new Docker(); - const existingBsps = ( - await docker.listContainers({ - filters: { ancestor: [DOCKER_IMAGE] } - }) - ) - .flatMap(({ Command }) => Command) - .filter((cmd) => cmd.includes("--provider-type=bsp")); - - const bspNum = existingBsps.length; - - invariant(bspNum > 0, "No existing BSP containers"); - - const p2pPort = 30350 + bspNum; - const rpcPort = 9888 + bspNum * 7; - const containerName = options?.name || `docker-sh-bsp-${bspNum + 1}`; - // get bootnode from docker args - - const { Args } = await docker.getContainer("docker-sh-user-1").inspect(); - - const bootNodeArg = Args.find((arg) => arg.includes("--bootnodes=")); - - invariant(bootNodeArg, "No bootnode found in docker args"); - - let keystorePath: string; - const keystoreArg = Args.find((arg) => arg.includes("--keystore-path=")); - if (keystoreArg) { - keystorePath = keystoreArg.split("=")[1]; - } else { - keystorePath = "/keystore"; - } - - const container = await docker.createContainer({ - Image: DOCKER_IMAGE, - name: containerName, - platform: "linux/amd64", - NetworkingConfig: { - EndpointsConfig: { - docker_default: {} - } - }, - HostConfig: { - PortBindings: { - "9944/tcp": [{ HostPort: rpcPort.toString() }], - [`${p2pPort}/tcp`]: [{ HostPort: p2pPort.toString() }] - }, - Binds: [`${process.cwd()}/../docker/dev-keystores:${keystorePath}:rw`] - }, - Cmd: [ - "--dev", - "--sealing=manual", - "--provider", - "--provider-type=bsp", - `--name=${containerName}`, - "--no-hardware-benchmarks", - "--unsafe-rpc-external", - "--rpc-methods=unsafe", - "--rpc-cors=all", - `--port=${p2pPort}`, - "--base-path=/data", - bootNodeArg, - ...(options?.additionalArgs || []) - ] - }); - await container.start(); - - let peerId: string | undefined; - for (let i = 0; i < 20; i++) { - try { - peerId = await sendCustomRpc(`http://127.0.0.1:${rpcPort}`, "system_localPeerId"); - break; - } catch { - await new Promise((resolve) => setTimeout(resolve, 500)); - } - } - - invariant(peerId, "Failed to connect after 10s. Exiting..."); - - const api = await BspNetTestApi.create(`ws://127.0.0.1:${rpcPort}`); - - const chainName = api.consts.system.version.specName.toString(); - - invariant( - chainName === "storage-hub-runtime", - `Error connecting to BSP via api ${containerName}` - ); - - await api.disconnect(); - - console.log( - `▶️ BSP container started with name: ${containerName}, rpc port: ${rpcPort}, p2p port: ${p2pPort}, peerId: ${peerId}` - ); - - return { containerName, rpcPort, p2pPort, peerId }; -}; - -// Make this a rusty style OO function with api contexts -export const pauseBspContainer = async (containerName: string) => { - const docker = new Docker(); - const container = docker.getContainer(containerName); - await container.pause(); -}; - -export const stopBspContainer = async (containerName: string) => { - const docker = new Docker(); - const containersToStop = await docker.listContainers({ - filters: { name: [containerName] } - }); - - await docker.getContainer(containersToStop[0].Id).stop(); - await docker.getContainer(containersToStop[0].Id).remove({ force: true }); -}; - -export const startBspContainer = async (options: { - containerName: string; -}) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - await container.start(); -}; - -export const restartBspContainer = async (options: { - containerName: string; -}) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - await container.restart(); -}; - -export const resumeBspContainer = async (options: { - containerName: string; -}) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - await container.unpause(); -}; - -export const dropAllTransactionsGlobally = async () => { - const docker = new Docker(); - - const containersToStop = await docker.listContainers({ - filters: { ancestor: ["storage-hub:local"] } - }); - - for (const container of containersToStop) { - const publicPort = container.Ports.filter( - ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 - )[0].PublicPort; - const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; - await using api = await BspNetTestApi.connect(endpoint); - try { - await NodeBspNet.dropTransaction(api); - } catch { - console.log(`Error dropping txn from ${container.Id}, continuing...`); - } - } -}; - -export const dropTransactionGlobally = async (options: { module: string; method: string }) => { - const docker = new Docker(); - - const containersToStop = await docker.listContainers({ - filters: { ancestor: ["storage-hub:local"] } - }); - - for (const container of containersToStop) { - const publicPort = container.Ports.filter( - ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 - )[0].PublicPort; - const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; - await using api = await BspNetTestApi.connect(endpoint); - await NodeBspNet.dropTransaction(api, { module: options.module, method: options.method }); - } -}; - -export const waitForLog = async (options: { - searchString: string; - containerName: string; - timeout?: number; -}): Promise => { - return new Promise((resolve, reject) => { - const docker = new Docker(); - const container = docker.getContainer(options.containerName); - - container.logs( - { follow: true, stdout: true, stderr: true, tail: 0, timestamps: false }, - (err, stream) => { - if (err) { - return reject(err); - } - - if (stream === undefined) { - return reject(new Error("No stream returned.")); - } - - const stdout = new PassThrough(); - const stderr = new PassThrough(); - - docker.modem.demuxStream(stream, stdout, stderr); - - let timeoutHandle: NodeJS.Timeout | undefined; - - const cleanup = () => { - (stream as Readable).destroy(); - stdout.destroy(); - stderr.destroy(); - if (timeoutHandle) { - clearTimeout(timeoutHandle); - } - }; - - const onData = (chunk: Buffer) => { - const log = chunk.toString("utf8"); - if (log.includes(options.searchString)) { - cleanup(); - resolve(log); - } - }; - - stdout.on("data", onData); - stderr.on("data", onData); - - stream.on("error", (err) => { - cleanup(); - reject(err); - }); - - if (options.timeout) { - timeoutHandle = setTimeout(() => { - cleanup(); - reject(new Error(`Timeout of ${options.timeout}ms exceeded while waiting for log.`)); - }, options.timeout); - } - } - ); - }); -}; +import Docker from "dockerode"; +import { execSync } from "node:child_process"; +import path from "node:path"; +import { DOCKER_IMAGE } from "../constants"; +import { sendCustomRpc } from "../rpc"; +import * as NodeBspNet from "./node"; +import { BspNetTestApi } from "./test-api"; +import invariant from "tiny-invariant"; +import { PassThrough, type Readable } from "node:stream"; + +export const checkBspForFile = async (filePath: string) => { + const containerId = "docker-sh-bsp-1"; + const loc = path.join("/storage", filePath); + + for (let i = 0; i < 10; i++) { + try { + // TODO: Replace with dockerode + execSync(`docker exec ${containerId} ls ${loc}`, { stdio: "ignore" }); + return; + } catch { + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + } + throw `File not found: ${loc} in ${containerId}`; +}; + +export const checkFileChecksum = async (filePath: string) => { + const containerId = "docker-sh-bsp-1"; + const loc = path.join("/storage", filePath); + const output = execSync(`docker exec ${containerId} sha256sum ${loc}`); + return output.toString().split(" ")[0]; +}; + +export const showContainers = () => { + try { + // TODO: Replace with dockerode + execSync("docker ps -a", { stdio: "inherit" }); + } catch (e) { + console.log(e); + console.log("Error displaying docker containers"); + } +}; + +export const addBspContainer = async (options?: { + name?: string; + connectToPeer?: boolean; // unused + additionalArgs?: string[]; +}) => { + const docker = new Docker(); + const existingBsps = ( + await docker.listContainers({ + filters: { ancestor: [DOCKER_IMAGE] } + }) + ) + .flatMap(({ Command }) => Command) + .filter((cmd) => cmd.includes("--provider-type=bsp")); + + const bspNum = existingBsps.length; + + invariant(bspNum > 0, "No existing BSP containers"); + + const p2pPort = 30350 + bspNum; + const rpcPort = 9888 + bspNum * 7; + const containerName = options?.name || `docker-sh-bsp-${bspNum + 1}`; + // get bootnode from docker args + + const { Args } = await docker.getContainer("docker-sh-user-1").inspect(); + + const bootNodeArg = Args.find((arg) => arg.includes("--bootnodes=")); + + invariant(bootNodeArg, "No bootnode found in docker args"); + + let keystorePath: string; + const keystoreArg = Args.find((arg) => arg.includes("--keystore-path=")); + if (keystoreArg) { + keystorePath = keystoreArg.split("=")[1]; + } else { + keystorePath = "/keystore"; + } + + const container = await docker.createContainer({ + Image: DOCKER_IMAGE, + name: containerName, + platform: "linux/amd64", + NetworkingConfig: { + EndpointsConfig: { + docker_default: {} + } + }, + HostConfig: { + PortBindings: { + "9944/tcp": [{ HostPort: rpcPort.toString() }], + [`${p2pPort}/tcp`]: [{ HostPort: p2pPort.toString() }] + }, + Binds: [`${process.cwd()}/../docker/dev-keystores:${keystorePath}:rw`] + }, + Cmd: [ + "--dev", + "--sealing=manual", + "--provider", + "--provider-type=bsp", + `--name=${containerName}`, + "--no-hardware-benchmarks", + "--unsafe-rpc-external", + "--rpc-methods=unsafe", + "--rpc-cors=all", + `--port=${p2pPort}`, + "--base-path=/data", + bootNodeArg, + ...(options?.additionalArgs || []) + ] + }); + await container.start(); + + let peerId: string | undefined; + for (let i = 0; i < 20; i++) { + try { + peerId = await sendCustomRpc(`http://127.0.0.1:${rpcPort}`, "system_localPeerId"); + break; + } catch { + await new Promise((resolve) => setTimeout(resolve, 500)); + } + } + + invariant(peerId, "Failed to connect after 10s. Exiting..."); + + const api = await BspNetTestApi.create(`ws://127.0.0.1:${rpcPort}`); + + const chainName = api.consts.system.version.specName.toString(); + + invariant( + chainName === "storage-hub-runtime", + `Error connecting to BSP via api ${containerName}` + ); + + await api.disconnect(); + + console.log( + `▶️ BSP container started with name: ${containerName}, rpc port: ${rpcPort}, p2p port: ${p2pPort}, peerId: ${peerId}` + ); + + return { containerName, rpcPort, p2pPort, peerId }; +}; + +// Make this a rusty style OO function with api contexts +export const pauseBspContainer = async (containerName: string) => { + const docker = new Docker(); + const container = docker.getContainer(containerName); + await container.pause(); +}; + +export const stopBspContainer = async (containerName: string) => { + const docker = new Docker(); + const containersToStop = await docker.listContainers({ + filters: { name: [containerName] } + }); + + await docker.getContainer(containersToStop[0].Id).stop(); + await docker.getContainer(containersToStop[0].Id).remove({ force: true }); +}; + +export const startBspContainer = async (options: { + containerName: string; +}) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + await container.start(); +}; + +export const restartBspContainer = async (options: { + containerName: string; +}) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + await container.restart(); +}; + +export const resumeBspContainer = async (options: { + containerName: string; +}) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + await container.unpause(); +}; + +export const dropAllTransactionsGlobally = async () => { + const docker = new Docker(); + + const containersToStop = await docker.listContainers({ + filters: { ancestor: ["storage-hub:local"] } + }); + + for (const container of containersToStop) { + const publicPort = container.Ports.filter( + ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 + )[0].PublicPort; + const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; + await using api = await BspNetTestApi.connect(endpoint); + try { + await NodeBspNet.dropTransaction(api); + } catch { + console.log(`Error dropping txn from ${container.Id}, continuing...`); + } + } +}; + +export const dropTransactionGlobally = async (options: { module: string; method: string }) => { + const docker = new Docker(); + + const containersToStop = await docker.listContainers({ + filters: { ancestor: ["storage-hub:local"] } + }); + + for (const container of containersToStop) { + const publicPort = container.Ports.filter( + ({ IP, PrivatePort }) => IP === "0.0.0.0" && PrivatePort === 9944 + )[0].PublicPort; + const endpoint: `ws://${string}` = `ws://127.0.0.1:${publicPort}`; + await using api = await BspNetTestApi.connect(endpoint); + await NodeBspNet.dropTransaction(api, { module: options.module, method: options.method }); + } +}; + +export const waitForLog = async (options: { + searchString: string; + containerName: string; + timeout?: number; +}): Promise => { + return new Promise((resolve, reject) => { + const docker = new Docker(); + const container = docker.getContainer(options.containerName); + + container.logs( + { follow: true, stdout: true, stderr: true, tail: 0, timestamps: false }, + (err, stream) => { + if (err) { + return reject(err); + } + + if (stream === undefined) { + return reject(new Error("No stream returned.")); + } + + const stdout = new PassThrough(); + const stderr = new PassThrough(); + + docker.modem.demuxStream(stream, stdout, stderr); + + let timeoutHandle: NodeJS.Timeout | undefined; + + const cleanup = () => { + (stream as Readable).destroy(); + stdout.destroy(); + stderr.destroy(); + if (timeoutHandle) { + clearTimeout(timeoutHandle); + } + }; + + const onData = (chunk: Buffer) => { + const log = chunk.toString("utf8"); + if (log.includes(options.searchString)) { + cleanup(); + resolve(log); + } + }; + + stdout.on("data", onData); + stderr.on("data", onData); + + stream.on("error", (err) => { + cleanup(); + reject(err); + }); + + if (options.timeout) { + timeoutHandle = setTimeout(() => { + cleanup(); + reject(new Error(`Timeout of ${options.timeout}ms exceeded while waiting for log.`)); + }, options.timeout); + } + } + ); + }); +}; diff --git a/test/util/bspNet/helpers.ts b/test/util/bspNet/helpers.ts index 8109a8bb0..cd3410abd 100644 --- a/test/util/bspNet/helpers.ts +++ b/test/util/bspNet/helpers.ts @@ -1,527 +1,527 @@ -import type { KeyringPair } from "@polkadot/keyring/types"; -import "@storagehub/api-augment"; -import { v2 as compose } from "docker-compose"; -import Docker from "dockerode"; -import * as child_process from "node:child_process"; -import { execSync } from "node:child_process"; -import crypto from "node:crypto"; -import path from "node:path"; -import * as util from "node:util"; -import { DOCKER_IMAGE, MILLIUNIT, UNIT } from "../constants.ts"; -import { - alice, - bspDownKey, - bspDownSeed, - bspKey, - bspThreeKey, - bspThreeSeed, - bspTwoKey, - bspTwoSeed, - shUser -} from "../pjsKeyring"; -import { addBspContainer, showContainers } from "./docker"; -import type { BspNetConfig, InitialisedMultiBspNetwork } from "./types"; -import { CAPACITY, MAX_STORAGE_CAPACITY } from "./consts"; -import * as ShConsts from "./consts.ts"; -import { BspNetTestApi, type EnrichedBspApi } from "./test-api.ts"; -import invariant from "tiny-invariant"; -import * as fs from "node:fs"; -import { parse, stringify } from "yaml"; -import { sealBlock } from "./block.ts"; -import type { ApiPromise } from "@polkadot/api"; - -const exec = util.promisify(child_process.exec); - -export const getContainerIp = async (containerName: string, verbose = false): Promise => { - const maxRetries = 60; - const sleepTime = 500; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for ${containerName} to launch...`); - - // TODO: Replace with dockerode command - try { - const { stdout } = await exec( - `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` - ); - return stdout.trim(); - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - // TODO: Replace with dockerode - execSync("docker ps -a", { stdio: "inherit" }); - try { - execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); - execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); - } catch (e) { - console.log(e); - } - console.log( - `Error fetching container IP for ${containerName} after ${ - (maxRetries * sleepTime) / 1000 - } seconds` - ); - showContainers(); - throw "Error fetching container IP"; -}; - -export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); -export const getContainerPeerId = async (url: string, verbose = false) => { - const maxRetries = 60; - const sleepTime = 500; - - const payload = { - id: "1", - jsonrpc: "2.0", - method: "system_localPeerId", - params: [] - }; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for node at ${url} to launch...`); - - try { - const response = await fetch(url, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(payload) - }); - - invariant(response.ok, `HTTP error! status: ${response.status}`); - - const resp = (await response.json()) as any; - return resp.result as string; - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - - console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); - showContainers(); - throw `Error fetching peerId from ${url}`; -}; - -export const runSimpleBspNet = async (bspNetConfig: BspNetConfig, verbose = false) => { - let userApi: EnrichedBspApi | undefined; - try { - console.log(`SH user id: ${shUser.address}`); - console.log(`SH BSP id: ${bspKey.address}`); - let file = "local-dev-bsp-compose.yml"; - if (bspNetConfig.rocksdb) { - file = "local-dev-bsp-rocksdb-compose.yml"; - } - if (bspNetConfig.noisy) { - file = "noisy-bsp-compose.yml"; - } - const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); - const cwd = path.resolve(process.cwd(), "..", "docker"); - const composeFile = fs.readFileSync(composeFilePath, "utf8"); - const composeYaml = parse(composeFile); - if (bspNetConfig.extrinsicRetryTimeout) { - composeYaml.services["sh-bsp"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - composeYaml.services["sh-user"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - } - - const updatedCompose = stringify(composeYaml); - - if (bspNetConfig.noisy) { - await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); - } - - await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); - - const bspIp = await getContainerIp( - bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName - ); - - if (bspNetConfig.noisy) { - verbose && console.log(`toxiproxy IP: ${bspIp}`); - } else { - verbose && console.log(`sh-bsp IP: ${bspIp}`); - } - - const bspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`); - - process.env.BSP_IP = bspIp; - process.env.BSP_PEER_ID = bspPeerId; - - await compose.upOne("sh-user", { - cwd: cwd, - configAsString: updatedCompose, - log: true, - env: { - ...process.env, - BSP_IP: bspIp, - BSP_PEER_ID: bspPeerId - } - }); - - const peerIDUser = await getContainerPeerId( - `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` - ); - verbose && console.log(`sh-user Peer ID: ${peerIDUser}`); - - const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; - - // Create Connection API Object to User Node - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - // Give Balances - const amount = 10000n * 10n ** 12n; - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) - ); - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) - ); - - // Setting: - // replication_target = 1 -> One BSP is enough to fulfil a storage request. - // block_range_to_maximum_threshold = 1 -> The threshold goes from the minimum to the maximum in 1 tick. - await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); - - // Adjusting runtime parameters... - // The `set_parameter` extrinsic receives an object like this: - // { - // RuntimeConfig: Enum { - // SlashAmountPerMaxFileSize: [null, {VALUE_YOU_WANT}], - // StakeToChallengePeriod: [null, {VALUE_YOU_WANT}], - // CheckpointChallengePeriod: [null, {VALUE_YOU_WANT}], - // MinChallengePeriod: [null, {VALUE_YOU_WANT}], - // } - // } - const slashAmountPerMaxFileSizeRuntimeParameter = { - RuntimeConfig: { - SlashAmountPerMaxFileSize: [null, 20n * MILLIUNIT] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.parameters.setParameter(slashAmountPerMaxFileSizeRuntimeParameter) - ) - ); - const stakeToChallengePeriodRuntimeParameter = { - RuntimeConfig: { - StakeToChallengePeriod: [null, 1000n * UNIT] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.parameters.setParameter(stakeToChallengePeriodRuntimeParameter) - ) - ); - const checkpointChallengePeriodRuntimeParameter = { - RuntimeConfig: { - CheckpointChallengePeriod: [null, 10] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.parameters.setParameter(checkpointChallengePeriodRuntimeParameter) - ) - ); - const minChallengePeriodRuntimeParameter = { - RuntimeConfig: { - MinChallengePeriod: [null, 5] - } - }; - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.parameters.setParameter(minChallengePeriodRuntimeParameter)) - ); - - // Make BSP - await forceSignupBsp({ - api: userApi, - who: bspKey.address, - multiaddress: multiAddressBsp, - bspId: ShConsts.DUMMY_BSP_ID, - capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, - weight: bspNetConfig.bspStartingWeight - }); - - // Make MSP - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.providers.forceMspSignUp( - alice.address, - ShConsts.DUMMY_MSP_ID, - bspNetConfig.capacity || ShConsts.CAPACITY_512, - [multiAddressBsp], - { - identifier: ShConsts.VALUE_PROP, - dataLimit: 500, - protocols: ["https", "ssh", "telnet"] - }, - alice.address - ) - ) - ); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const forceSignupBsp = async (options: { - api: EnrichedBspApi; - multiaddress: string; - who: string | Uint8Array; - bspId?: string; - capacity?: bigint; - payeeAddress?: string; - weight?: bigint; -}) => { - const bspId = options.bspId || `0x${crypto.randomBytes(32).toString("hex")}`; - const blockResults = await options.api.sealBlock( - options.api.tx.sudo.sudo( - options.api.tx.providers.forceBspSignUp( - options.who, - bspId, - options.capacity || ShConsts.CAPACITY_512, - [options.multiaddress], - options.payeeAddress || options.who, - options.weight ?? null - ) - ) - ); - return Object.assign(bspId, blockResults); -}; -export const closeSimpleBspNet = async () => { - const docker = new Docker(); - - const allContainers = await docker.listContainers({ all: true }); - - const existingNodes = allContainers.filter((container) => container.Image === DOCKER_IMAGE); - - const toxiproxyContainer = allContainers.find((container) => - container.Names.some((name) => name.includes("toxiproxy")) - ); - - const promises = existingNodes.map(async (node) => docker.getContainer(node.Id).stop()); - - if (toxiproxyContainer && toxiproxyContainer.State === "running") { - console.log("Stopping toxiproxy container"); - promises.push(docker.getContainer(toxiproxyContainer.Id).stop()); - } else { - console.log("No running toxiproxy container found, skipping"); - } - - await Promise.allSettled(promises); - - await docker.pruneContainers(); - await docker.pruneVolumes(); -}; - -export const runInitialisedBspsNet = async (bspNetConfig: BspNetConfig) => { - await runSimpleBspNet(bspNetConfig); - - let userApi: EnrichedBspApi | undefined; - try { - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ - const source = "res/whatsup.jpg"; - const destination = "test/smile.jpg"; - const bucketName = "nothingmuch-1"; - - const newBucketEventEvent = await userApi.createBucket(bucketName); - const newBucketEventDataBlob = - userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; - - invariant(newBucketEventDataBlob, "Event doesn't match Type"); - - const { fingerprint, file_size, location } = - await userApi.rpc.storagehubclient.loadFileInStorage( - source, - destination, - ShConsts.NODE_INFOS.user.AddressId, - newBucketEventDataBlob.bucketId - ); - - await userApi.sealBlock( - userApi.tx.fileSystem.issueStorageRequest( - newBucketEventDataBlob.bucketId, - location, - fingerprint, - file_size, - ShConsts.DUMMY_MSP_ID, - [ShConsts.NODE_INFOS.user.expectedPeerId] - ), - shUser - ); - - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const runMultipleInitialisedBspsNet = async ( - bspNetConfig: BspNetConfig -): Promise => { - await runSimpleBspNet(bspNetConfig); - - let userApi: EnrichedBspApi | undefined; - try { - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(5, 1))); - - // Add more BSPs to the network. - // One BSP will be down, two more will be up. - const { containerName: bspDownContainerName } = await addBsp(userApi, bspDownKey, { - name: "sh-bsp-down", - rocksdb: bspNetConfig.rocksdb, - bspKeySeed: bspDownSeed, - bspId: ShConsts.BSP_DOWN_ID, - bspStartingWeight: bspNetConfig.capacity, - additionalArgs: ["--keystore-path=/keystore/bsp-down"] - }); - const { rpcPort: bspTwoRpcPort } = await addBsp(userApi, bspTwoKey, { - name: "sh-bsp-two", - rocksdb: bspNetConfig.rocksdb, - bspKeySeed: bspTwoSeed, - bspId: ShConsts.BSP_TWO_ID, - bspStartingWeight: bspNetConfig.capacity, - additionalArgs: ["--keystore-path=/keystore/bsp-two"] - }); - const { rpcPort: bspThreeRpcPort } = await addBsp(userApi, bspThreeKey, { - name: "sh-bsp-three", - rocksdb: bspNetConfig.rocksdb, - bspKeySeed: bspThreeSeed, - bspId: ShConsts.BSP_THREE_ID, - bspStartingWeight: bspNetConfig.capacity, - additionalArgs: ["--keystore-path=/keystore/bsp-three"] - }); - - // Everything executed below is tested in `volunteer.test.ts` and `onboard.test.ts` files. - // For the context of this test, this is a preamble, so that a BSP has a challenge cycle initiated. - - /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ - const source = "res/whatsup.jpg"; - const location = "test/smile.jpg"; - const bucketName = "nothingmuch-1"; - - const fileMetadata = await userApi.file.newStorageRequest(source, location, bucketName); - - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - - // Stopping BSP that is supposed to be down. - await userApi.docker.stopBspContainer(bspDownContainerName); - - return { - bspTwoRpcPort, - bspThreeRpcPort, - fileData: { - fileKey: fileMetadata.fileKey, - bucketId: fileMetadata.bucketId, - location: location, - owner: fileMetadata.owner, - fingerprint: fileMetadata.fingerprint, - fileSize: fileMetadata.fileSize - } - }; - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const cleardownTest = async (cleardownOptions: { - api: EnrichedBspApi | EnrichedBspApi[]; - keepNetworkAlive?: boolean; -}) => { - try { - if (Array.isArray(cleardownOptions.api)) { - for (const api of cleardownOptions.api) { - await api.disconnect(); - } - } else { - await cleardownOptions.api.disconnect(); - } - } catch (e) { - console.error(e); - console.log("cleardown failed, but we will continue."); - } - cleardownOptions.keepNetworkAlive === true ? null : await closeSimpleBspNet(); -}; - -export const createCheckBucket = async (api: EnrichedBspApi, bucketName: string) => { - const newBucketEventEvent = await api.createBucket(bucketName); - const newBucketEventDataBlob = - api.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; - - invariant(newBucketEventDataBlob, "Event doesn't match Type"); - - return newBucketEventDataBlob; -}; - -export const addBsp = async ( - api: ApiPromise, - bspKey: KeyringPair, - options?: { - name?: string; - rocksdb?: boolean; - bspKeySeed?: string; - bspId?: string; - bspStartingWeight?: bigint; - maxStorageCapacity?: number; - extrinsicRetryTimeout?: number; - additionalArgs?: string[]; - } -) => { - // Launch a BSP node. - const additionalArgs = options?.additionalArgs ?? []; - if (options?.extrinsicRetryTimeout) { - additionalArgs.push(`--extrinsic-retry-timeout=${options.extrinsicRetryTimeout}`); - } - if (options?.rocksdb) { - additionalArgs.push("--storage-layer=rocks-db"); - } - additionalArgs.push(`--storage-path=/tmp/bsp/${bspKey.address}`); - additionalArgs.push( - `--max-storage-capacity=${options?.maxStorageCapacity ?? MAX_STORAGE_CAPACITY}` - ); - additionalArgs.push(`--jump-capacity=${options?.maxStorageCapacity ?? CAPACITY[1024]}`); - const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ - ...options, - additionalArgs - }); - - //Give it some balance. - const amount = 10000n * 10n ** 12n; - await sealBlock(api, api.tx.sudo.sudo(api.tx.balances.forceSetBalance(bspKey.address, amount))); - - const bspIp = await getContainerIp(containerName); - const multiAddressBsp = `/ip4/${bspIp}/tcp/${p2pPort}/p2p/${peerId}`; - - // Make BSP - await sealBlock( - api, - api.tx.sudo.sudo( - api.tx.providers.forceBspSignUp( - bspKey.address, - options?.bspId ?? bspKey.publicKey, - ShConsts.CAPACITY_512, - [multiAddressBsp], - bspKey.address, - options?.bspStartingWeight ?? null - ) - ) - ); - - return { containerName, rpcPort, p2pPort, peerId }; -}; +import type { KeyringPair } from "@polkadot/keyring/types"; +import "@storagehub/api-augment"; +import { v2 as compose } from "docker-compose"; +import Docker from "dockerode"; +import * as child_process from "node:child_process"; +import { execSync } from "node:child_process"; +import crypto from "node:crypto"; +import path from "node:path"; +import * as util from "node:util"; +import { DOCKER_IMAGE, MILLIUNIT, UNIT } from "../constants.ts"; +import { + alice, + bspDownKey, + bspDownSeed, + bspKey, + bspThreeKey, + bspThreeSeed, + bspTwoKey, + bspTwoSeed, + shUser +} from "../pjsKeyring"; +import { addBspContainer, showContainers } from "./docker"; +import type { BspNetConfig, InitialisedMultiBspNetwork } from "./types"; +import { CAPACITY, MAX_STORAGE_CAPACITY } from "./consts"; +import * as ShConsts from "./consts.ts"; +import { BspNetTestApi, type EnrichedBspApi } from "./test-api.ts"; +import invariant from "tiny-invariant"; +import * as fs from "node:fs"; +import { parse, stringify } from "yaml"; +import { sealBlock } from "./block.ts"; +import type { ApiPromise } from "@polkadot/api"; + +const exec = util.promisify(child_process.exec); + +export const getContainerIp = async (containerName: string, verbose = false): Promise => { + const maxRetries = 60; + const sleepTime = 500; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for ${containerName} to launch...`); + + // TODO: Replace with dockerode command + try { + const { stdout } = await exec( + `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` + ); + return stdout.trim(); + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + // TODO: Replace with dockerode + execSync("docker ps -a", { stdio: "inherit" }); + try { + execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); + execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); + } catch (e) { + console.log(e); + } + console.log( + `Error fetching container IP for ${containerName} after ${ + (maxRetries * sleepTime) / 1000 + } seconds` + ); + showContainers(); + throw "Error fetching container IP"; +}; + +export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); +export const getContainerPeerId = async (url: string, verbose = false) => { + const maxRetries = 60; + const sleepTime = 500; + + const payload = { + id: "1", + jsonrpc: "2.0", + method: "system_localPeerId", + params: [] + }; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for node at ${url} to launch...`); + + try { + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(payload) + }); + + invariant(response.ok, `HTTP error! status: ${response.status}`); + + const resp = (await response.json()) as any; + return resp.result as string; + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + + console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); + showContainers(); + throw `Error fetching peerId from ${url}`; +}; + +export const runSimpleBspNet = async (bspNetConfig: BspNetConfig, verbose = false) => { + let userApi: EnrichedBspApi | undefined; + try { + console.log(`SH user id: ${shUser.address}`); + console.log(`SH BSP id: ${bspKey.address}`); + let file = "local-dev-bsp-compose.yml"; + if (bspNetConfig.rocksdb) { + file = "local-dev-bsp-rocksdb-compose.yml"; + } + if (bspNetConfig.noisy) { + file = "noisy-bsp-compose.yml"; + } + const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); + const cwd = path.resolve(process.cwd(), "..", "docker"); + const composeFile = fs.readFileSync(composeFilePath, "utf8"); + const composeYaml = parse(composeFile); + if (bspNetConfig.extrinsicRetryTimeout) { + composeYaml.services["sh-bsp"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + composeYaml.services["sh-user"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + } + + const updatedCompose = stringify(composeYaml); + + if (bspNetConfig.noisy) { + await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); + } + + await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); + + const bspIp = await getContainerIp( + bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName + ); + + if (bspNetConfig.noisy) { + verbose && console.log(`toxiproxy IP: ${bspIp}`); + } else { + verbose && console.log(`sh-bsp IP: ${bspIp}`); + } + + const bspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`); + + process.env.BSP_IP = bspIp; + process.env.BSP_PEER_ID = bspPeerId; + + await compose.upOne("sh-user", { + cwd: cwd, + configAsString: updatedCompose, + log: true, + env: { + ...process.env, + BSP_IP: bspIp, + BSP_PEER_ID: bspPeerId + } + }); + + const peerIDUser = await getContainerPeerId( + `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` + ); + verbose && console.log(`sh-user Peer ID: ${peerIDUser}`); + + const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; + + // Create Connection API Object to User Node + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + // Give Balances + const amount = 10000n * 10n ** 12n; + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) + ); + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) + ); + + // Setting: + // replication_target = 1 -> One BSP is enough to fulfil a storage request. + // block_range_to_maximum_threshold = 1 -> The threshold goes from the minimum to the maximum in 1 tick. + await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); + + // Adjusting runtime parameters... + // The `set_parameter` extrinsic receives an object like this: + // { + // RuntimeConfig: Enum { + // SlashAmountPerMaxFileSize: [null, {VALUE_YOU_WANT}], + // StakeToChallengePeriod: [null, {VALUE_YOU_WANT}], + // CheckpointChallengePeriod: [null, {VALUE_YOU_WANT}], + // MinChallengePeriod: [null, {VALUE_YOU_WANT}], + // } + // } + const slashAmountPerMaxFileSizeRuntimeParameter = { + RuntimeConfig: { + SlashAmountPerMaxFileSize: [null, 20n * MILLIUNIT] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.parameters.setParameter(slashAmountPerMaxFileSizeRuntimeParameter) + ) + ); + const stakeToChallengePeriodRuntimeParameter = { + RuntimeConfig: { + StakeToChallengePeriod: [null, 1000n * UNIT] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.parameters.setParameter(stakeToChallengePeriodRuntimeParameter) + ) + ); + const checkpointChallengePeriodRuntimeParameter = { + RuntimeConfig: { + CheckpointChallengePeriod: [null, 10] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.parameters.setParameter(checkpointChallengePeriodRuntimeParameter) + ) + ); + const minChallengePeriodRuntimeParameter = { + RuntimeConfig: { + MinChallengePeriod: [null, 5] + } + }; + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.parameters.setParameter(minChallengePeriodRuntimeParameter)) + ); + + // Make BSP + await forceSignupBsp({ + api: userApi, + who: bspKey.address, + multiaddress: multiAddressBsp, + bspId: ShConsts.DUMMY_BSP_ID, + capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, + weight: bspNetConfig.bspStartingWeight + }); + + // Make MSP + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.providers.forceMspSignUp( + alice.address, + ShConsts.DUMMY_MSP_ID, + bspNetConfig.capacity || ShConsts.CAPACITY_512, + [multiAddressBsp], + { + identifier: ShConsts.VALUE_PROP, + dataLimit: 500, + protocols: ["https", "ssh", "telnet"] + }, + alice.address + ) + ) + ); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const forceSignupBsp = async (options: { + api: EnrichedBspApi; + multiaddress: string; + who: string | Uint8Array; + bspId?: string; + capacity?: bigint; + payeeAddress?: string; + weight?: bigint; +}) => { + const bspId = options.bspId || `0x${crypto.randomBytes(32).toString("hex")}`; + const blockResults = await options.api.sealBlock( + options.api.tx.sudo.sudo( + options.api.tx.providers.forceBspSignUp( + options.who, + bspId, + options.capacity || ShConsts.CAPACITY_512, + [options.multiaddress], + options.payeeAddress || options.who, + options.weight ?? null + ) + ) + ); + return Object.assign(bspId, blockResults); +}; +export const closeSimpleBspNet = async () => { + const docker = new Docker(); + + const allContainers = await docker.listContainers({ all: true }); + + const existingNodes = allContainers.filter((container) => container.Image === DOCKER_IMAGE); + + const toxiproxyContainer = allContainers.find((container) => + container.Names.some((name) => name.includes("toxiproxy")) + ); + + const promises = existingNodes.map(async (node) => docker.getContainer(node.Id).stop()); + + if (toxiproxyContainer && toxiproxyContainer.State === "running") { + console.log("Stopping toxiproxy container"); + promises.push(docker.getContainer(toxiproxyContainer.Id).stop()); + } else { + console.log("No running toxiproxy container found, skipping"); + } + + await Promise.allSettled(promises); + + await docker.pruneContainers(); + await docker.pruneVolumes(); +}; + +export const runInitialisedBspsNet = async (bspNetConfig: BspNetConfig) => { + await runSimpleBspNet(bspNetConfig); + + let userApi: EnrichedBspApi | undefined; + try { + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ + const source = "res/whatsup.jpg"; + const destination = "test/smile.jpg"; + const bucketName = "nothingmuch-1"; + + const newBucketEventEvent = await userApi.createBucket(bucketName); + const newBucketEventDataBlob = + userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; + + invariant(newBucketEventDataBlob, "Event doesn't match Type"); + + const { fingerprint, file_size, location } = + await userApi.rpc.storagehubclient.loadFileInStorage( + source, + destination, + ShConsts.NODE_INFOS.user.AddressId, + newBucketEventDataBlob.bucketId + ); + + await userApi.sealBlock( + userApi.tx.fileSystem.issueStorageRequest( + newBucketEventDataBlob.bucketId, + location, + fingerprint, + file_size, + ShConsts.DUMMY_MSP_ID, + [ShConsts.NODE_INFOS.user.expectedPeerId] + ), + shUser + ); + + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const runMultipleInitialisedBspsNet = async ( + bspNetConfig: BspNetConfig +): Promise => { + await runSimpleBspNet(bspNetConfig); + + let userApi: EnrichedBspApi | undefined; + try { + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(5, 1))); + + // Add more BSPs to the network. + // One BSP will be down, two more will be up. + const { containerName: bspDownContainerName } = await addBsp(userApi, bspDownKey, { + name: "sh-bsp-down", + rocksdb: bspNetConfig.rocksdb, + bspKeySeed: bspDownSeed, + bspId: ShConsts.BSP_DOWN_ID, + bspStartingWeight: bspNetConfig.capacity, + additionalArgs: ["--keystore-path=/keystore/bsp-down"] + }); + const { rpcPort: bspTwoRpcPort } = await addBsp(userApi, bspTwoKey, { + name: "sh-bsp-two", + rocksdb: bspNetConfig.rocksdb, + bspKeySeed: bspTwoSeed, + bspId: ShConsts.BSP_TWO_ID, + bspStartingWeight: bspNetConfig.capacity, + additionalArgs: ["--keystore-path=/keystore/bsp-two"] + }); + const { rpcPort: bspThreeRpcPort } = await addBsp(userApi, bspThreeKey, { + name: "sh-bsp-three", + rocksdb: bspNetConfig.rocksdb, + bspKeySeed: bspThreeSeed, + bspId: ShConsts.BSP_THREE_ID, + bspStartingWeight: bspNetConfig.capacity, + additionalArgs: ["--keystore-path=/keystore/bsp-three"] + }); + + // Everything executed below is tested in `volunteer.test.ts` and `onboard.test.ts` files. + // For the context of this test, this is a preamble, so that a BSP has a challenge cycle initiated. + + /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ + const source = "res/whatsup.jpg"; + const location = "test/smile.jpg"; + const bucketName = "nothingmuch-1"; + + const fileMetadata = await userApi.file.newStorageRequest(source, location, bucketName); + + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + + // Stopping BSP that is supposed to be down. + await userApi.docker.stopBspContainer(bspDownContainerName); + + return { + bspTwoRpcPort, + bspThreeRpcPort, + fileData: { + fileKey: fileMetadata.fileKey, + bucketId: fileMetadata.bucketId, + location: location, + owner: fileMetadata.owner, + fingerprint: fileMetadata.fingerprint, + fileSize: fileMetadata.fileSize + } + }; + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const cleardownTest = async (cleardownOptions: { + api: EnrichedBspApi | EnrichedBspApi[]; + keepNetworkAlive?: boolean; +}) => { + try { + if (Array.isArray(cleardownOptions.api)) { + for (const api of cleardownOptions.api) { + await api.disconnect(); + } + } else { + await cleardownOptions.api.disconnect(); + } + } catch (e) { + console.error(e); + console.log("cleardown failed, but we will continue."); + } + cleardownOptions.keepNetworkAlive === true ? null : await closeSimpleBspNet(); +}; + +export const createCheckBucket = async (api: EnrichedBspApi, bucketName: string) => { + const newBucketEventEvent = await api.createBucket(bucketName); + const newBucketEventDataBlob = + api.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; + + invariant(newBucketEventDataBlob, "Event doesn't match Type"); + + return newBucketEventDataBlob; +}; + +export const addBsp = async ( + api: ApiPromise, + bspKey: KeyringPair, + options?: { + name?: string; + rocksdb?: boolean; + bspKeySeed?: string; + bspId?: string; + bspStartingWeight?: bigint; + maxStorageCapacity?: number; + extrinsicRetryTimeout?: number; + additionalArgs?: string[]; + } +) => { + // Launch a BSP node. + const additionalArgs = options?.additionalArgs ?? []; + if (options?.extrinsicRetryTimeout) { + additionalArgs.push(`--extrinsic-retry-timeout=${options.extrinsicRetryTimeout}`); + } + if (options?.rocksdb) { + additionalArgs.push("--storage-layer=rocks-db"); + } + additionalArgs.push(`--storage-path=/tmp/bsp/${bspKey.address}`); + additionalArgs.push( + `--max-storage-capacity=${options?.maxStorageCapacity ?? MAX_STORAGE_CAPACITY}` + ); + additionalArgs.push(`--jump-capacity=${options?.maxStorageCapacity ?? CAPACITY[1024]}`); + const { containerName, rpcPort, p2pPort, peerId } = await addBspContainer({ + ...options, + additionalArgs + }); + + //Give it some balance. + const amount = 10000n * 10n ** 12n; + await sealBlock(api, api.tx.sudo.sudo(api.tx.balances.forceSetBalance(bspKey.address, amount))); + + const bspIp = await getContainerIp(containerName); + const multiAddressBsp = `/ip4/${bspIp}/tcp/${p2pPort}/p2p/${peerId}`; + + // Make BSP + await sealBlock( + api, + api.tx.sudo.sudo( + api.tx.providers.forceBspSignUp( + bspKey.address, + options?.bspId ?? bspKey.publicKey, + ShConsts.CAPACITY_512, + [multiAddressBsp], + bspKey.address, + options?.bspStartingWeight ?? null + ) + ) + ); + + return { containerName, rpcPort, p2pPort, peerId }; +}; diff --git a/test/util/bspNet/test-api.ts b/test/util/bspNet/test-api.ts index e79da9663..9f949ff40 100644 --- a/test/util/bspNet/test-api.ts +++ b/test/util/bspNet/test-api.ts @@ -1,458 +1,458 @@ -import "@storagehub/api-augment"; -import { ApiPromise, WsProvider } from "@polkadot/api"; -import type { SubmittableExtrinsic } from "@polkadot/api/types"; -import type { KeyringPair } from "@polkadot/keyring/types"; -import type { EventRecord } from "@polkadot/types/interfaces"; -import type { ISubmittableResult } from "@polkadot/types/types"; -import type { HexString } from "@polkadot/util/types"; -import { types as BundledTypes } from "@storagehub/types-bundle"; -import type { AssertExtrinsicOptions } from "../asserts"; -import * as Assertions from "../asserts"; -import * as BspNetBlock from "./block"; -import { sealBlock } from "./block"; -import * as ShConsts from "./consts"; -import * as DockerBspNet from "./docker"; -import * as Files from "./fileHelpers"; -import * as NodeBspNet from "./node"; -import type { BspNetApi, SealBlockOptions } from "./types"; -import * as Waits from "./waits"; -import { addBsp } from "./helpers"; - -/** - * Represents an enhanced API for interacting with StorageHub BSPNet. - */ -export class BspNetTestApi implements AsyncDisposable { - private _api: ApiPromise; - private _endpoint: `ws://${string}` | `wss://${string}`; - - private constructor(api: ApiPromise, endpoint: `ws://${string}` | `wss://${string}`) { - this._api = api; - this._endpoint = endpoint; - } - - /** - * Creates a new instance of BspNetTestApi. - * - * @param endpoint - The WebSocket endpoint to connect to. - * @returns A promise that resolves to an enriched BspNetApi. - */ - public static async create(endpoint: `ws://${string}` | `wss://${string}`) { - const api = await BspNetTestApi.connect(endpoint); - await api.isReady; - - const ctx = new BspNetTestApi(api, endpoint); - - return ctx.enrichApi(); - } - - public async reconnect(): Promise { - if (!this._api.isConnected) { - await this._api.disconnect(); - const newApi = await ApiPromise.create({ - provider: new WsProvider(this._endpoint), - noInitWarn: true, - throwOnConnect: false, - throwOnUnknown: false, - typesBundle: BundledTypes - }); - await newApi.isReady; - this._api = newApi; - this.enrichApi(); - } - } - - /** - * Establishes a connection to the specified endpoint. - * Note: This method shouldn't be called directly in tests. Use `create` instead. - * - * @param endpoint - The WebSocket endpoint to connect to. - * @returns A promise that resolves to an ApiPromise with async disposal. - */ - public static async connect(endpoint: `ws://${string}` | `wss://${string}`) { - const api = await ApiPromise.create({ - provider: new WsProvider(endpoint), - noInitWarn: true, - throwOnConnect: false, - throwOnUnknown: false, - typesBundle: BundledTypes - }); - return Object.assign(api, { - [Symbol.asyncDispose]: async () => { - await api.disconnect(); - } - }); - } - - private async disconnect() { - await this._api.disconnect(); - } - - /** - * Seals a block with optional extrinsics and finalizes it. - * - * @param calls - Optional extrinsic(s) to include in the block. - * @param signer - Optional signer for the extrinsics. - * @param finaliseBlock - Whether to finalize the block. Defaults to true. - * @returns A Promise resolving to a SealedBlock object. - */ - private async sealBlock( - calls?: - | SubmittableExtrinsic<"promise", ISubmittableResult> - | SubmittableExtrinsic<"promise", ISubmittableResult>[], - signer?: KeyringPair, - finaliseBlock = true - ) { - return sealBlock(this._api, calls, signer, finaliseBlock); - } - - private async sendNewStorageRequest(source: string, location: string, bucketName: string) { - return Files.sendNewStorageRequest(this._api, source, location, bucketName); - } - - private async createBucket(bucketName: string) { - return Files.createBucket(this._api, bucketName); - } - - private assertEvent(module: string, method: string, events?: EventRecord[]) { - return Assertions.assertEventPresent(this._api, module, method, events); - } - - /** - * Advances the blockchain to a specified block number. - * - * This function seals blocks until the specified block number is reached. It can optionally - * wait between blocks and watch for BSP proofs. - * - * @param api - The ApiPromise instance to interact with the blockchain. - * @param blockNumber - The target block number to advance to. - * @param waitBetweenBlocks - Optional. If specified: - * - If a number, waits for that many milliseconds between blocks. - * - If true, waits for 500ms between blocks. - * - If false or undefined, doesn't wait between blocks. - * @param watchForBspProofs - Optional. An array of BSP IDs to watch for proofs. - * If specified, the function will wait for BSP proofs at appropriate intervals. - * - * @returns A Promise that resolves to a SealedBlock object representing the last sealed block. - * - * @throws Will throw an error if the target block number is lower than the current block number. - * - * @example - * // Advance to block 100 with no waiting - * const result = await advanceToBlock(api, 100); - * - * @example - * // Advance to block 200, waiting 1000ms between blocks - * const result = await advanceToBlock(api, 200, 1000); - * - * @example - * // Advance to block 300, watching for proofs from two BSPs - * const result = await advanceToBlock(api, 300, true, ['bsp1', 'bsp2']); - */ - private advanceToBlock( - blockNumber: number, - options?: { - waitBetweenBlocks?: number | boolean; - waitForBspProofs?: string[]; - } - ) { - return BspNetBlock.advanceToBlock( - this._api, - blockNumber, - options?.waitBetweenBlocks, - options?.waitForBspProofs - ); - } - - private enrichApi() { - const remappedAssertNs = { - fetchEventData: Assertions.fetchEventData, - - /** - * Asserts that a specific event is present in the given events or the latest block. - * @param module - The module name of the event. - * @param method - The method name of the event. - * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. - * @returns The matching event and its data. - */ - eventPresent: async (module: string, method: string, events?: EventRecord[]) => { - const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); - return Assertions.assertEventPresent(this._api, module, method, evts); - }, - /** - * Asserts that multiple instances of a specific event are present. - * @param module - The module name of the event. - * @param method - The method name of the event. - * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. - * @returns An array of matching events and their data. - */ - eventMany: async (module: string, method: string, events?: EventRecord[]) => { - const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); - return Assertions.assertEventMany(this._api, module, method, evts); - }, - /** - * Asserts that a specific extrinsic is present in the transaction pool or recent blocks. - * @param options - Options specifying the extrinsic to search for. - * @returns An array of matching extrinsics. - */ - extrinsicPresent: (options: AssertExtrinsicOptions) => - Assertions.assertExtrinsicPresent(this._api, options), - /** - * Asserts that a specific provider has been slashed. - * @param providerId - The ID of the provider to check. - * @returns A boolean indicating whether the provider was slashed. - */ - providerSlashed: (providerId: string) => - Assertions.checkProviderWasSlashed(this._api, providerId), - - /** - * Asserts that a specific log message appears in a Docker container's output. - * @param options - The options for the log assertion. - * @param options.searchString - The string to search for in the container's logs. - * @param options.containerName - The name of the Docker container to search logs in. - * @param options.timeout - Optional. The maximum time (in milliseconds) to wait for the log message to appear. Default 10s. - * @returns A promise that resolves to the matching log message if found, or rejects if the timeout is reached. - */ - log: async (options: { searchString: string; containerName: string; timeout?: number }) => { - return Assertions.assertDockerLog( - options.containerName, - options.searchString, - options.timeout - ); - } - }; - - /** - * Waits namespace - * Contains methods for waiting on specific events or conditions in the BSP network. - */ - const remappedWaitsNs = { - /** - * Waits for a BSP to volunteer for a storage request. - * @param expectedExts - Optional param to specify the number of expected extrinsics. - * @returns A promise that resolves when a BSP has volunteered. - */ - bspVolunteer: (expectedExts?: number) => Waits.waitForBspVolunteer(this._api, expectedExts), - - /** - * Waits for a BSP to confirm storing a file. - * @param expectedExts - Optional param to specify the number of expected extrinsics. - * @returns A promise that resolves when a BSP has confirmed storing a file. - */ - bspStored: (expectedExts?: number) => Waits.waitForBspStored(this._api, expectedExts) - }; - - /** - * File operations namespace - * Contains methods for interacting with StorageHub file system. - */ - const remappedFileNs = { - /** - * Creates a new bucket. - * - * @param bucketName - The name of the bucket to be created. - * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. - * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. - * @returns A promise that resolves to a new bucket event. - */ - newBucket: (bucketName: string, owner?: KeyringPair) => - Files.createBucket(this._api, bucketName, undefined, owner), - - /** - * Creates a new bucket and submits a new storage request. - * - * @param source - The local path to the file to be uploaded. - * @param location - The StorageHub "location" field of the file to be uploaded. - * @param bucketName - The name of the bucket to be created. - * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. - * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. - * @returns A promise that resolves to file metadata. - */ - newStorageRequest: ( - source: string, - location: string, - bucketName: string, - msp_id?: HexString, - owner?: KeyringPair - ) => Files.sendNewStorageRequest(this._api, source, location, bucketName, msp_id, owner) - }; - - /** - * Block operations namespace - * Contains methods for manipulating and interacting with blocks in the BSP network. - */ - const remappedBlockNs = { - /** - * Seals a block with optional extrinsics. - * @param options - Options for sealing the block, including calls, signer, and whether to finalize. - * @returns A promise that resolves to a SealedBlock object. - */ - seal: (options?: SealBlockOptions) => - BspNetBlock.sealBlock(this._api, options?.calls, options?.signer, options?.finaliseBlock), - /** - * Seal blocks until the next challenge period block. - * It will verify that the SlashableProvider event is emitted and check if the provider is slashable with an additional failed challenge deadline. - * @param nextChallengeTick - The block number of the next challenge. - * @param provider - The provider to check for slashing. - * @returns A promise that resolves when the challenge period block is reached. - */ - skipToChallengePeriod: (nextChallengeTick: number, provider: string) => - BspNetBlock.runToNextChallengePeriodBlock(this._api, nextChallengeTick, provider), - /** - * Skips a specified number of blocks. - * Note: This skips too quickly for nodes to BSPs to react. Use skipTo where reaction extrinsics are required. - * @param blocksToAdvance - The number of blocks to skip. - * @returns A promise that resolves when the specified number of blocks have been skipped. - */ - skip: (blocksToAdvance: number) => BspNetBlock.skipBlocks(this._api, blocksToAdvance), - /** - * Advances the chain to a specific block number. - * @param blockNumber - The target block number to advance to. - * @param options - Optional parameters for waiting between blocks and watching for BSP proofs. - * @returns A promise that resolves when the specified block number is reached. - */ - skipTo: ( - blockNumber: number, - options?: { - waitBetweenBlocks?: number | boolean; - waitForBspProofs?: string[]; - spam?: boolean; - verbose?: boolean; - } - ) => - BspNetBlock.advanceToBlock( - this._api, - blockNumber, - options?.waitBetweenBlocks, - options?.waitForBspProofs, - options?.spam, - options?.verbose - ), - /** - * Skips blocks until the minimum time for capacity changes is reached. - * @returns A promise that resolves when the minimum change time is reached. - */ - skipToMinChangeTime: () => BspNetBlock.skipBlocksToMinChangeTime(this._api), - /** - * Causes a chain re-org by creating a finalized block on top of the parent block. - * Note: This requires the head block to be unfinalized, otherwise it will throw! - * @returns A promise that resolves when the chain re-org is complete. - */ - reOrg: () => BspNetBlock.reOrgBlocks(this._api) - }; - - const remappedNodeNs = { - /** - * Drops transaction(s) from the node's transaction pool. - * - * @param extrinsic - Optional. Specifies which transaction(s) to drop: - * - If omitted, all transactions in the pool will be cleared. - * - If an object with module and method, it will drop matching transactions. - * - If a hex string, it will drop the transaction with the matching hash. - * @param sealAfter - Whether to seal a block after dropping the transaction(s). Defaults to false. - */ - dropTxn: (extrinsic?: { module: string; method: string } | HexString, sealAfter = false) => - NodeBspNet.dropTransaction(this._api, extrinsic, sealAfter) - }; - - const remappedDockerNs = { - ...DockerBspNet, - onboardBsp: (options: { - bspSigner: KeyringPair; - name?: string; - rocksdb?: boolean; - bspKeySeed?: string; - bspId?: string; - bspStartingWeight?: bigint; - maxStorageCapacity?: number; - additionalArgs?: string[]; - }) => addBsp(this._api, options.bspSigner, options) - }; - - return Object.assign(this._api, { - /** - * Soon Deprecated. Use api.block.seal() instead. - * @see {@link sealBlock} - */ - sealBlock: this.sealBlock.bind(this), - /** - * Soon Deprecated. Use api.file.newStorageRequest() instead. - * @see {@link sendNewStorageRequest} - */ - sendNewStorageRequest: this.sendNewStorageRequest.bind(this), - /** - * Soon Deprecated. Use api.file.newBucket() instead. - * @see {@link createBucket} - */ - createBucket: this.createBucket.bind(this), - /** - * Soon Deprecated. Use api.assert.eventPresent() instead. - * @see {@link assertEvent} - */ - assertEvent: this.assertEvent.bind(this), - /** - * Soon Deprecated. Use api.assert.eventPresent() instead. - * @see {@link advanceToBlock} - */ - advanceToBlock: this.advanceToBlock.bind(this), - /** - * Assertions namespace - * Provides methods for asserting various conditions in the BSP network tests. - */ - assert: remappedAssertNs, - /** - * Waits namespace - * Contains methods for waiting on specific events or conditions in the BSP network. - */ - wait: remappedWaitsNs, - /** - * File operations namespace - * Offers methods for file-related operations in the BSP network, such as creating buckets and storage requests. - */ - file: remappedFileNs, - /** - * Node operations namespace - * Provides methods for interacting with and manipulating nodes in the BSP network. - */ - node: remappedNodeNs, - /** - * Block operations namespace - * Contains methods for manipulating and interacting with blocks in the BSP network. - */ - block: remappedBlockNs, - /** - * StorageHub Constants namespace - * Contains static data useful for testing the BSP network. - */ - shConsts: ShConsts, - /** - * Docker operations namespace - * Offers methods for interacting with Docker containers in the BSP network test environment. - */ - docker: remappedDockerNs, - [Symbol.asyncDispose]: this.disconnect.bind(this) - }) satisfies BspNetApi; - } - - async [Symbol.asyncDispose]() { - await this._api.disconnect(); - } -} - -/** - * Represents an enhanced API for interacting with StorageHub BSPNet. - * This type extends the standard Polkadot API with additional methods and namespaces - * specifically designed for testing and interacting with a StorageHub BSP network. - * - * It includes: - * - Extended assertion capabilities (@see {@link Assertions}) - * - Waiting utilities for BSP-specific events (@see {@link Waits}) - * - File and bucket operations (@see {@link Files}) - * - Block manipulation and advancement utilities (@see {@link BspNetBlock}) - * - Node interaction methods (@see {@link NodeBspNet}) - * - Docker container management for BSP testing (@see {@link DockerBspNet}) - * - StorageHub constants (@see {@link ShConsts}) - * - * This API is created using the BspNetTestApi.create() static method and provides - * a comprehensive toolkit for testing and developing BSP network functionality. - */ -export type EnrichedBspApi = Awaited>; +import "@storagehub/api-augment"; +import { ApiPromise, WsProvider } from "@polkadot/api"; +import type { SubmittableExtrinsic } from "@polkadot/api/types"; +import type { KeyringPair } from "@polkadot/keyring/types"; +import type { EventRecord } from "@polkadot/types/interfaces"; +import type { ISubmittableResult } from "@polkadot/types/types"; +import type { HexString } from "@polkadot/util/types"; +import { types as BundledTypes } from "@storagehub/types-bundle"; +import type { AssertExtrinsicOptions } from "../asserts"; +import * as Assertions from "../asserts"; +import * as BspNetBlock from "./block"; +import { sealBlock } from "./block"; +import * as ShConsts from "./consts"; +import * as DockerBspNet from "./docker"; +import * as Files from "./fileHelpers"; +import * as NodeBspNet from "./node"; +import type { BspNetApi, SealBlockOptions } from "./types"; +import * as Waits from "./waits"; +import { addBsp } from "./helpers"; + +/** + * Represents an enhanced API for interacting with StorageHub BSPNet. + */ +export class BspNetTestApi implements AsyncDisposable { + private _api: ApiPromise; + private _endpoint: `ws://${string}` | `wss://${string}`; + + private constructor(api: ApiPromise, endpoint: `ws://${string}` | `wss://${string}`) { + this._api = api; + this._endpoint = endpoint; + } + + /** + * Creates a new instance of BspNetTestApi. + * + * @param endpoint - The WebSocket endpoint to connect to. + * @returns A promise that resolves to an enriched BspNetApi. + */ + public static async create(endpoint: `ws://${string}` | `wss://${string}`) { + const api = await BspNetTestApi.connect(endpoint); + await api.isReady; + + const ctx = new BspNetTestApi(api, endpoint); + + return ctx.enrichApi(); + } + + public async reconnect(): Promise { + if (!this._api.isConnected) { + await this._api.disconnect(); + const newApi = await ApiPromise.create({ + provider: new WsProvider(this._endpoint), + noInitWarn: true, + throwOnConnect: false, + throwOnUnknown: false, + typesBundle: BundledTypes + }); + await newApi.isReady; + this._api = newApi; + this.enrichApi(); + } + } + + /** + * Establishes a connection to the specified endpoint. + * Note: This method shouldn't be called directly in tests. Use `create` instead. + * + * @param endpoint - The WebSocket endpoint to connect to. + * @returns A promise that resolves to an ApiPromise with async disposal. + */ + public static async connect(endpoint: `ws://${string}` | `wss://${string}`) { + const api = await ApiPromise.create({ + provider: new WsProvider(endpoint), + noInitWarn: true, + throwOnConnect: false, + throwOnUnknown: false, + typesBundle: BundledTypes + }); + return Object.assign(api, { + [Symbol.asyncDispose]: async () => { + await api.disconnect(); + } + }); + } + + private async disconnect() { + await this._api.disconnect(); + } + + /** + * Seals a block with optional extrinsics and finalizes it. + * + * @param calls - Optional extrinsic(s) to include in the block. + * @param signer - Optional signer for the extrinsics. + * @param finaliseBlock - Whether to finalize the block. Defaults to true. + * @returns A Promise resolving to a SealedBlock object. + */ + private async sealBlock( + calls?: + | SubmittableExtrinsic<"promise", ISubmittableResult> + | SubmittableExtrinsic<"promise", ISubmittableResult>[], + signer?: KeyringPair, + finaliseBlock = true + ) { + return sealBlock(this._api, calls, signer, finaliseBlock); + } + + private async sendNewStorageRequest(source: string, location: string, bucketName: string) { + return Files.sendNewStorageRequest(this._api, source, location, bucketName); + } + + private async createBucket(bucketName: string) { + return Files.createBucket(this._api, bucketName); + } + + private assertEvent(module: string, method: string, events?: EventRecord[]) { + return Assertions.assertEventPresent(this._api, module, method, events); + } + + /** + * Advances the blockchain to a specified block number. + * + * This function seals blocks until the specified block number is reached. It can optionally + * wait between blocks and watch for BSP proofs. + * + * @param api - The ApiPromise instance to interact with the blockchain. + * @param blockNumber - The target block number to advance to. + * @param waitBetweenBlocks - Optional. If specified: + * - If a number, waits for that many milliseconds between blocks. + * - If true, waits for 500ms between blocks. + * - If false or undefined, doesn't wait between blocks. + * @param watchForBspProofs - Optional. An array of BSP IDs to watch for proofs. + * If specified, the function will wait for BSP proofs at appropriate intervals. + * + * @returns A Promise that resolves to a SealedBlock object representing the last sealed block. + * + * @throws Will throw an error if the target block number is lower than the current block number. + * + * @example + * // Advance to block 100 with no waiting + * const result = await advanceToBlock(api, 100); + * + * @example + * // Advance to block 200, waiting 1000ms between blocks + * const result = await advanceToBlock(api, 200, 1000); + * + * @example + * // Advance to block 300, watching for proofs from two BSPs + * const result = await advanceToBlock(api, 300, true, ['bsp1', 'bsp2']); + */ + private advanceToBlock( + blockNumber: number, + options?: { + waitBetweenBlocks?: number | boolean; + waitForBspProofs?: string[]; + } + ) { + return BspNetBlock.advanceToBlock( + this._api, + blockNumber, + options?.waitBetweenBlocks, + options?.waitForBspProofs + ); + } + + private enrichApi() { + const remappedAssertNs = { + fetchEventData: Assertions.fetchEventData, + + /** + * Asserts that a specific event is present in the given events or the latest block. + * @param module - The module name of the event. + * @param method - The method name of the event. + * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. + * @returns The matching event and its data. + */ + eventPresent: async (module: string, method: string, events?: EventRecord[]) => { + const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); + return Assertions.assertEventPresent(this._api, module, method, evts); + }, + /** + * Asserts that multiple instances of a specific event are present. + * @param module - The module name of the event. + * @param method - The method name of the event. + * @param events - Optional. The events to search through. If not provided, it will fetch the latest block's events. + * @returns An array of matching events and their data. + */ + eventMany: async (module: string, method: string, events?: EventRecord[]) => { + const evts = events ?? ((await this._api.query.system.events()) as EventRecord[]); + return Assertions.assertEventMany(this._api, module, method, evts); + }, + /** + * Asserts that a specific extrinsic is present in the transaction pool or recent blocks. + * @param options - Options specifying the extrinsic to search for. + * @returns An array of matching extrinsics. + */ + extrinsicPresent: (options: AssertExtrinsicOptions) => + Assertions.assertExtrinsicPresent(this._api, options), + /** + * Asserts that a specific provider has been slashed. + * @param providerId - The ID of the provider to check. + * @returns A boolean indicating whether the provider was slashed. + */ + providerSlashed: (providerId: string) => + Assertions.checkProviderWasSlashed(this._api, providerId), + + /** + * Asserts that a specific log message appears in a Docker container's output. + * @param options - The options for the log assertion. + * @param options.searchString - The string to search for in the container's logs. + * @param options.containerName - The name of the Docker container to search logs in. + * @param options.timeout - Optional. The maximum time (in milliseconds) to wait for the log message to appear. Default 10s. + * @returns A promise that resolves to the matching log message if found, or rejects if the timeout is reached. + */ + log: async (options: { searchString: string; containerName: string; timeout?: number }) => { + return Assertions.assertDockerLog( + options.containerName, + options.searchString, + options.timeout + ); + } + }; + + /** + * Waits namespace + * Contains methods for waiting on specific events or conditions in the BSP network. + */ + const remappedWaitsNs = { + /** + * Waits for a BSP to volunteer for a storage request. + * @param expectedExts - Optional param to specify the number of expected extrinsics. + * @returns A promise that resolves when a BSP has volunteered. + */ + bspVolunteer: (expectedExts?: number) => Waits.waitForBspVolunteer(this._api, expectedExts), + + /** + * Waits for a BSP to confirm storing a file. + * @param expectedExts - Optional param to specify the number of expected extrinsics. + * @returns A promise that resolves when a BSP has confirmed storing a file. + */ + bspStored: (expectedExts?: number) => Waits.waitForBspStored(this._api, expectedExts) + }; + + /** + * File operations namespace + * Contains methods for interacting with StorageHub file system. + */ + const remappedFileNs = { + /** + * Creates a new bucket. + * + * @param bucketName - The name of the bucket to be created. + * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. + * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. + * @returns A promise that resolves to a new bucket event. + */ + newBucket: (bucketName: string, owner?: KeyringPair) => + Files.createBucket(this._api, bucketName, undefined, owner), + + /** + * Creates a new bucket and submits a new storage request. + * + * @param source - The local path to the file to be uploaded. + * @param location - The StorageHub "location" field of the file to be uploaded. + * @param bucketName - The name of the bucket to be created. + * @param mspId - Optional MSP ID to use for the new storage request. Defaults to DUMMY_MSP_ID. + * @param owner - Optional signer with which to issue the newStorageRequest Defaults to SH_USER. + * @returns A promise that resolves to file metadata. + */ + newStorageRequest: ( + source: string, + location: string, + bucketName: string, + msp_id?: HexString, + owner?: KeyringPair + ) => Files.sendNewStorageRequest(this._api, source, location, bucketName, msp_id, owner) + }; + + /** + * Block operations namespace + * Contains methods for manipulating and interacting with blocks in the BSP network. + */ + const remappedBlockNs = { + /** + * Seals a block with optional extrinsics. + * @param options - Options for sealing the block, including calls, signer, and whether to finalize. + * @returns A promise that resolves to a SealedBlock object. + */ + seal: (options?: SealBlockOptions) => + BspNetBlock.sealBlock(this._api, options?.calls, options?.signer, options?.finaliseBlock), + /** + * Seal blocks until the next challenge period block. + * It will verify that the SlashableProvider event is emitted and check if the provider is slashable with an additional failed challenge deadline. + * @param nextChallengeTick - The block number of the next challenge. + * @param provider - The provider to check for slashing. + * @returns A promise that resolves when the challenge period block is reached. + */ + skipToChallengePeriod: (nextChallengeTick: number, provider: string) => + BspNetBlock.runToNextChallengePeriodBlock(this._api, nextChallengeTick, provider), + /** + * Skips a specified number of blocks. + * Note: This skips too quickly for nodes to BSPs to react. Use skipTo where reaction extrinsics are required. + * @param blocksToAdvance - The number of blocks to skip. + * @returns A promise that resolves when the specified number of blocks have been skipped. + */ + skip: (blocksToAdvance: number) => BspNetBlock.skipBlocks(this._api, blocksToAdvance), + /** + * Advances the chain to a specific block number. + * @param blockNumber - The target block number to advance to. + * @param options - Optional parameters for waiting between blocks and watching for BSP proofs. + * @returns A promise that resolves when the specified block number is reached. + */ + skipTo: ( + blockNumber: number, + options?: { + waitBetweenBlocks?: number | boolean; + waitForBspProofs?: string[]; + spam?: boolean; + verbose?: boolean; + } + ) => + BspNetBlock.advanceToBlock( + this._api, + blockNumber, + options?.waitBetweenBlocks, + options?.waitForBspProofs, + options?.spam, + options?.verbose + ), + /** + * Skips blocks until the minimum time for capacity changes is reached. + * @returns A promise that resolves when the minimum change time is reached. + */ + skipToMinChangeTime: () => BspNetBlock.skipBlocksToMinChangeTime(this._api), + /** + * Causes a chain re-org by creating a finalized block on top of the parent block. + * Note: This requires the head block to be unfinalized, otherwise it will throw! + * @returns A promise that resolves when the chain re-org is complete. + */ + reOrg: () => BspNetBlock.reOrgBlocks(this._api) + }; + + const remappedNodeNs = { + /** + * Drops transaction(s) from the node's transaction pool. + * + * @param extrinsic - Optional. Specifies which transaction(s) to drop: + * - If omitted, all transactions in the pool will be cleared. + * - If an object with module and method, it will drop matching transactions. + * - If a hex string, it will drop the transaction with the matching hash. + * @param sealAfter - Whether to seal a block after dropping the transaction(s). Defaults to false. + */ + dropTxn: (extrinsic?: { module: string; method: string } | HexString, sealAfter = false) => + NodeBspNet.dropTransaction(this._api, extrinsic, sealAfter) + }; + + const remappedDockerNs = { + ...DockerBspNet, + onboardBsp: (options: { + bspSigner: KeyringPair; + name?: string; + rocksdb?: boolean; + bspKeySeed?: string; + bspId?: string; + bspStartingWeight?: bigint; + maxStorageCapacity?: number; + additionalArgs?: string[]; + }) => addBsp(this._api, options.bspSigner, options) + }; + + return Object.assign(this._api, { + /** + * Soon Deprecated. Use api.block.seal() instead. + * @see {@link sealBlock} + */ + sealBlock: this.sealBlock.bind(this), + /** + * Soon Deprecated. Use api.file.newStorageRequest() instead. + * @see {@link sendNewStorageRequest} + */ + sendNewStorageRequest: this.sendNewStorageRequest.bind(this), + /** + * Soon Deprecated. Use api.file.newBucket() instead. + * @see {@link createBucket} + */ + createBucket: this.createBucket.bind(this), + /** + * Soon Deprecated. Use api.assert.eventPresent() instead. + * @see {@link assertEvent} + */ + assertEvent: this.assertEvent.bind(this), + /** + * Soon Deprecated. Use api.assert.eventPresent() instead. + * @see {@link advanceToBlock} + */ + advanceToBlock: this.advanceToBlock.bind(this), + /** + * Assertions namespace + * Provides methods for asserting various conditions in the BSP network tests. + */ + assert: remappedAssertNs, + /** + * Waits namespace + * Contains methods for waiting on specific events or conditions in the BSP network. + */ + wait: remappedWaitsNs, + /** + * File operations namespace + * Offers methods for file-related operations in the BSP network, such as creating buckets and storage requests. + */ + file: remappedFileNs, + /** + * Node operations namespace + * Provides methods for interacting with and manipulating nodes in the BSP network. + */ + node: remappedNodeNs, + /** + * Block operations namespace + * Contains methods for manipulating and interacting with blocks in the BSP network. + */ + block: remappedBlockNs, + /** + * StorageHub Constants namespace + * Contains static data useful for testing the BSP network. + */ + shConsts: ShConsts, + /** + * Docker operations namespace + * Offers methods for interacting with Docker containers in the BSP network test environment. + */ + docker: remappedDockerNs, + [Symbol.asyncDispose]: this.disconnect.bind(this) + }) satisfies BspNetApi; + } + + async [Symbol.asyncDispose]() { + await this._api.disconnect(); + } +} + +/** + * Represents an enhanced API for interacting with StorageHub BSPNet. + * This type extends the standard Polkadot API with additional methods and namespaces + * specifically designed for testing and interacting with a StorageHub BSP network. + * + * It includes: + * - Extended assertion capabilities (@see {@link Assertions}) + * - Waiting utilities for BSP-specific events (@see {@link Waits}) + * - File and bucket operations (@see {@link Files}) + * - Block manipulation and advancement utilities (@see {@link BspNetBlock}) + * - Node interaction methods (@see {@link NodeBspNet}) + * - Docker container management for BSP testing (@see {@link DockerBspNet}) + * - StorageHub constants (@see {@link ShConsts}) + * + * This API is created using the BspNetTestApi.create() static method and provides + * a comprehensive toolkit for testing and developing BSP network functionality. + */ +export type EnrichedBspApi = Awaited>; diff --git a/test/util/constants.ts b/test/util/constants.ts index 418665d52..ab359b43e 100644 --- a/test/util/constants.ts +++ b/test/util/constants.ts @@ -1,5 +1,5 @@ -export const UNIT = 1_000_000_000_000n; -export const MILLIUNIT = 1_000_000_000n; -export const MICROUNIT = 1_000_000n; -export const ROUGH_TRANSFER_FEE = 1_482_409_632n; // This is just naive copypaste from explorer -export const DOCKER_IMAGE = "storage-hub:local"; +export const UNIT = 1_000_000_000_000n; +export const MILLIUNIT = 1_000_000_000n; +export const MICROUNIT = 1_000_000n; +export const ROUGH_TRANSFER_FEE = 1_482_409_632n; // This is just naive copypaste from explorer +export const DOCKER_IMAGE = "storage-hub:local"; diff --git a/test/util/fullNet/helpers.ts b/test/util/fullNet/helpers.ts index 8a78181b4..dc4f25f5d 100644 --- a/test/util/fullNet/helpers.ts +++ b/test/util/fullNet/helpers.ts @@ -1,279 +1,279 @@ -import "@storagehub/api-augment"; -import { v2 as compose } from "docker-compose"; -import * as child_process from "node:child_process"; -import { execSync } from "node:child_process"; -import path from "node:path"; -import * as util from "node:util"; -import { bspKey, mspKey, shUser } from "../pjsKeyring"; -import { showContainers } from "../bspNet/docker"; -import type { BspNetConfig } from "../bspNet/types"; -import * as ShConsts from "../bspNet/consts.ts"; -import { BspNetTestApi, type EnrichedBspApi } from "../bspNet/test-api.ts"; -import invariant from "tiny-invariant"; -import * as fs from "node:fs"; -import { parse, stringify } from "yaml"; -import { forceSignupBsp } from "../bspNet/helpers.ts"; - -const exec = util.promisify(child_process.exec); - -export const getContainerIp = async (containerName: string, verbose = false): Promise => { - const maxRetries = 60; - const sleepTime = 500; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for ${containerName} to launch...`); - - // TODO: Replace with dockerode command - try { - const { stdout } = await exec( - `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` - ); - return stdout.trim(); - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - // TODO: Replace with dockerode - execSync("docker ps -a", { stdio: "inherit" }); - try { - execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); - execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); - } catch (e) { - console.log(e); - } - console.log( - `Error fetching container IP for ${containerName} after ${ - (maxRetries * sleepTime) / 1000 - } seconds` - ); - showContainers(); - throw "Error fetching container IP"; -}; - -export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); -export const getContainerPeerId = async (url: string, verbose = false) => { - const maxRetries = 60; - const sleepTime = 500; - - const payload = { - id: "1", - jsonrpc: "2.0", - method: "system_localPeerId", - params: [] - }; - - for (let i = 0; i < maxRetries; i++) { - verbose && console.log(`Waiting for node at ${url} to launch...`); - - try { - const response = await fetch(url, { - method: "POST", - headers: { - "Content-Type": "application/json" - }, - body: JSON.stringify(payload) - }); - - invariant(response.ok, `HTTP error! status: ${response.status}`); - - const resp = (await response.json()) as any; - return resp.result as string; - } catch { - await new Promise((resolve) => setTimeout(resolve, sleepTime)); - } - } - - console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); - showContainers(); - throw `Error fetching peerId from ${url}`; -}; - -export const runFullNet = async (bspNetConfig: BspNetConfig) => { - let userApi: EnrichedBspApi | undefined; - try { - console.log(`SH user id: ${shUser.address}`); - console.log(`SH BSP id: ${bspKey.address}`); - let file = "local-dev-full-compose.yml"; - if (bspNetConfig.rocksdb) { - file = "local-dev-full-rocksdb-compose.yml"; - } - - const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); - const cwd = path.resolve(process.cwd(), "..", "docker"); - const composeFile = fs.readFileSync(composeFilePath, "utf8"); - const composeYaml = parse(composeFile); - if (bspNetConfig.extrinsicRetryTimeout) { - composeYaml.services["sh-bsp"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - composeYaml.services["sh-msp"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - composeYaml.services["sh-user"].command.push( - `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` - ); - } - - const updatedCompose = stringify(composeYaml); - - if (bspNetConfig.noisy) { - await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); - } - - await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); - - const bspIp = await getContainerIp( - bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName - ); - - if (bspNetConfig.noisy) { - console.log(`toxiproxy IP: ${bspIp}`); - } else { - console.log(`sh-bsp IP: ${bspIp}`); - } - - const bspPeerId = await getContainerPeerId( - `http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`, - true - ); - console.log(`sh-bsp Peer ID: ${bspPeerId}`); - - process.env.BSP_IP = bspIp; - process.env.BSP_PEER_ID = bspPeerId; - - await compose.upOne("sh-msp", { - cwd: cwd, - configAsString: updatedCompose, - log: true, - env: { - ...process.env, - NODE_KEY: ShConsts.NODE_INFOS.msp.nodeKey, - BSP_IP: bspIp, - BSP_PEER_ID: bspPeerId - } - }); - - const mspId = await getContainerIp( - bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.msp.containerName - ); - - const mspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.msp.port}`); - console.log(`sh-msp Peer ID: ${mspPeerId}`); - - const multiAddressMsp = `/ip4/${mspId}/tcp/30350/p2p/${mspPeerId}`; - - await compose.upOne("sh-user", { - cwd: cwd, - configAsString: updatedCompose, - log: true, - env: { - ...process.env, - BSP_IP: bspIp, - BSP_PEER_ID: bspPeerId - } - }); - - const peerIDUser = await getContainerPeerId( - `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` - ); - console.log(`sh-user Peer ID: ${peerIDUser}`); - - const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; - - // Create Connection API Object to User Node - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - // Give Balances - const amount = 10000n * 10n ** 12n; - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) - ); - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(mspKey.address, amount)) - ); - await userApi.sealBlock( - userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) - ); - - await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); - - // Make BSP - await forceSignupBsp({ - api: userApi, - who: bspKey.address, - multiaddress: multiAddressBsp, - bspId: ShConsts.DUMMY_BSP_ID, - capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, - weight: bspNetConfig.bspStartingWeight - }); - - // Sign up MSP - await userApi.sealBlock( - userApi.tx.sudo.sudo( - userApi.tx.providers.forceMspSignUp( - mspKey.address, - ShConsts.DUMMY_MSP_ID, - bspNetConfig.capacity || ShConsts.CAPACITY_512, - [multiAddressMsp], - { - identifier: ShConsts.VALUE_PROP, - dataLimit: 500, - protocols: ["https", "ssh", "telnet"] - }, - mspKey.address - ) - ) - ); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; - -export const runInitialisedFullNet = async (bspNetConfig: BspNetConfig) => { - await runFullNet(bspNetConfig); - - let userApi: EnrichedBspApi | undefined; - try { - userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); - - /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ - const source = "res/whatsup.jpg"; - const destination = "test/smile.jpg"; - const bucketName = "nothingmuch-1"; - - const newBucketEventEvent = await userApi.createBucket(bucketName); - const newBucketEventDataBlob = - userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; - - invariant(newBucketEventDataBlob, "Event doesn't match Type"); - - const { fingerprint, file_size, location } = - await userApi.rpc.storagehubclient.loadFileInStorage( - source, - destination, - ShConsts.NODE_INFOS.user.AddressId, - newBucketEventDataBlob.bucketId - ); - - await userApi.sealBlock( - userApi.tx.fileSystem.issueStorageRequest( - newBucketEventDataBlob.bucketId, - location, - fingerprint, - file_size, - ShConsts.DUMMY_MSP_ID, - [ShConsts.NODE_INFOS.user.expectedPeerId] - ), - shUser - ); - - await userApi.wait.bspVolunteer(); - await userApi.wait.bspStored(); - } catch (e) { - console.error("Error ", e); - } finally { - userApi?.disconnect(); - } -}; +import "@storagehub/api-augment"; +import { v2 as compose } from "docker-compose"; +import * as child_process from "node:child_process"; +import { execSync } from "node:child_process"; +import path from "node:path"; +import * as util from "node:util"; +import { bspKey, mspKey, shUser } from "../pjsKeyring"; +import { showContainers } from "../bspNet/docker"; +import type { BspNetConfig } from "../bspNet/types"; +import * as ShConsts from "../bspNet/consts.ts"; +import { BspNetTestApi, type EnrichedBspApi } from "../bspNet/test-api.ts"; +import invariant from "tiny-invariant"; +import * as fs from "node:fs"; +import { parse, stringify } from "yaml"; +import { forceSignupBsp } from "../bspNet/helpers.ts"; + +const exec = util.promisify(child_process.exec); + +export const getContainerIp = async (containerName: string, verbose = false): Promise => { + const maxRetries = 60; + const sleepTime = 500; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for ${containerName} to launch...`); + + // TODO: Replace with dockerode command + try { + const { stdout } = await exec( + `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${containerName}` + ); + return stdout.trim(); + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + // TODO: Replace with dockerode + execSync("docker ps -a", { stdio: "inherit" }); + try { + execSync("docker logs docker-sh-bsp-1", { stdio: "inherit" }); + execSync("docker logs docker-sh-user-1", { stdio: "inherit" }); + } catch (e) { + console.log(e); + } + console.log( + `Error fetching container IP for ${containerName} after ${ + (maxRetries * sleepTime) / 1000 + } seconds` + ); + showContainers(); + throw "Error fetching container IP"; +}; + +export const checkNodeAlive = async (url: string, verbose = false) => getContainerIp(url, verbose); +export const getContainerPeerId = async (url: string, verbose = false) => { + const maxRetries = 60; + const sleepTime = 500; + + const payload = { + id: "1", + jsonrpc: "2.0", + method: "system_localPeerId", + params: [] + }; + + for (let i = 0; i < maxRetries; i++) { + verbose && console.log(`Waiting for node at ${url} to launch...`); + + try { + const response = await fetch(url, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify(payload) + }); + + invariant(response.ok, `HTTP error! status: ${response.status}`); + + const resp = (await response.json()) as any; + return resp.result as string; + } catch { + await new Promise((resolve) => setTimeout(resolve, sleepTime)); + } + } + + console.log(`Error fetching peerId from ${url} after ${(maxRetries * sleepTime) / 1000} seconds`); + showContainers(); + throw `Error fetching peerId from ${url}`; +}; + +export const runFullNet = async (bspNetConfig: BspNetConfig) => { + let userApi: EnrichedBspApi | undefined; + try { + console.log(`SH user id: ${shUser.address}`); + console.log(`SH BSP id: ${bspKey.address}`); + let file = "local-dev-full-compose.yml"; + if (bspNetConfig.rocksdb) { + file = "local-dev-full-rocksdb-compose.yml"; + } + + const composeFilePath = path.resolve(process.cwd(), "..", "docker", file); + const cwd = path.resolve(process.cwd(), "..", "docker"); + const composeFile = fs.readFileSync(composeFilePath, "utf8"); + const composeYaml = parse(composeFile); + if (bspNetConfig.extrinsicRetryTimeout) { + composeYaml.services["sh-bsp"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + composeYaml.services["sh-msp"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + composeYaml.services["sh-user"].command.push( + `--extrinsic-retry-timeout=${bspNetConfig.extrinsicRetryTimeout}` + ); + } + + const updatedCompose = stringify(composeYaml); + + if (bspNetConfig.noisy) { + await compose.upOne("toxiproxy", { cwd: cwd, configAsString: updatedCompose, log: true }); + } + + await compose.upOne("sh-bsp", { cwd: cwd, configAsString: updatedCompose, log: true }); + + const bspIp = await getContainerIp( + bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.bsp.containerName + ); + + if (bspNetConfig.noisy) { + console.log(`toxiproxy IP: ${bspIp}`); + } else { + console.log(`sh-bsp IP: ${bspIp}`); + } + + const bspPeerId = await getContainerPeerId( + `http://127.0.0.1:${ShConsts.NODE_INFOS.bsp.port}`, + true + ); + console.log(`sh-bsp Peer ID: ${bspPeerId}`); + + process.env.BSP_IP = bspIp; + process.env.BSP_PEER_ID = bspPeerId; + + await compose.upOne("sh-msp", { + cwd: cwd, + configAsString: updatedCompose, + log: true, + env: { + ...process.env, + NODE_KEY: ShConsts.NODE_INFOS.msp.nodeKey, + BSP_IP: bspIp, + BSP_PEER_ID: bspPeerId + } + }); + + const mspId = await getContainerIp( + bspNetConfig.noisy ? "toxiproxy" : ShConsts.NODE_INFOS.msp.containerName + ); + + const mspPeerId = await getContainerPeerId(`http://127.0.0.1:${ShConsts.NODE_INFOS.msp.port}`); + console.log(`sh-msp Peer ID: ${mspPeerId}`); + + const multiAddressMsp = `/ip4/${mspId}/tcp/30350/p2p/${mspPeerId}`; + + await compose.upOne("sh-user", { + cwd: cwd, + configAsString: updatedCompose, + log: true, + env: { + ...process.env, + BSP_IP: bspIp, + BSP_PEER_ID: bspPeerId + } + }); + + const peerIDUser = await getContainerPeerId( + `http://127.0.0.1:${ShConsts.NODE_INFOS.user.port}` + ); + console.log(`sh-user Peer ID: ${peerIDUser}`); + + const multiAddressBsp = `/ip4/${bspIp}/tcp/30350/p2p/${bspPeerId}`; + + // Create Connection API Object to User Node + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + // Give Balances + const amount = 10000n * 10n ** 12n; + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(bspKey.address, amount)) + ); + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(mspKey.address, amount)) + ); + await userApi.sealBlock( + userApi.tx.sudo.sudo(userApi.tx.balances.forceSetBalance(shUser.address, amount)) + ); + + await userApi.sealBlock(userApi.tx.sudo.sudo(userApi.tx.fileSystem.setGlobalParameters(1, 1))); + + // Make BSP + await forceSignupBsp({ + api: userApi, + who: bspKey.address, + multiaddress: multiAddressBsp, + bspId: ShConsts.DUMMY_BSP_ID, + capacity: bspNetConfig.capacity || ShConsts.CAPACITY_512, + weight: bspNetConfig.bspStartingWeight + }); + + // Sign up MSP + await userApi.sealBlock( + userApi.tx.sudo.sudo( + userApi.tx.providers.forceMspSignUp( + mspKey.address, + ShConsts.DUMMY_MSP_ID, + bspNetConfig.capacity || ShConsts.CAPACITY_512, + [multiAddressMsp], + { + identifier: ShConsts.VALUE_PROP, + dataLimit: 500, + protocols: ["https", "ssh", "telnet"] + }, + mspKey.address + ) + ) + ); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; + +export const runInitialisedFullNet = async (bspNetConfig: BspNetConfig) => { + await runFullNet(bspNetConfig); + + let userApi: EnrichedBspApi | undefined; + try { + userApi = await BspNetTestApi.create(`ws://127.0.0.1:${ShConsts.NODE_INFOS.user.port}`); + + /**** CREATE BUCKET AND ISSUE STORAGE REQUEST ****/ + const source = "res/whatsup.jpg"; + const destination = "test/smile.jpg"; + const bucketName = "nothingmuch-1"; + + const newBucketEventEvent = await userApi.createBucket(bucketName); + const newBucketEventDataBlob = + userApi.events.fileSystem.NewBucket.is(newBucketEventEvent) && newBucketEventEvent.data; + + invariant(newBucketEventDataBlob, "Event doesn't match Type"); + + const { fingerprint, file_size, location } = + await userApi.rpc.storagehubclient.loadFileInStorage( + source, + destination, + ShConsts.NODE_INFOS.user.AddressId, + newBucketEventDataBlob.bucketId + ); + + await userApi.sealBlock( + userApi.tx.fileSystem.issueStorageRequest( + newBucketEventDataBlob.bucketId, + location, + fingerprint, + file_size, + ShConsts.DUMMY_MSP_ID, + [ShConsts.NODE_INFOS.user.expectedPeerId] + ), + shUser + ); + + await userApi.wait.bspVolunteer(); + await userApi.wait.bspStored(); + } catch (e) { + console.error("Error ", e); + } finally { + userApi?.disconnect(); + } +}; diff --git a/test/util/pjsKeyring.ts b/test/util/pjsKeyring.ts index af79626de..b1b19d630 100644 --- a/test/util/pjsKeyring.ts +++ b/test/util/pjsKeyring.ts @@ -1,56 +1,56 @@ -import { Keyring } from "@polkadot/api"; -import { randomBytes } from "node:crypto"; -import { cryptoWaitReady } from "@polkadot/util-crypto"; - -export const keyring = new Keyring({ type: "sr25519" }); -await cryptoWaitReady(); - -export const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); - -export const bob = keyring.addFromUri("//Bob", { name: "Bob default" }); - -export const charlie = keyring.addFromUri("//Charlie", { - name: "Charlie default" -}); - -export const dave = keyring.addFromUri("//Dave", { name: "Dave default" }); - -export const eve = keyring.addFromUri("//Eve", { name: "Eve default" }); - -export const ferdie = keyring.addFromUri("//Ferdie", { - name: "Ferdie default" -}); - -export const bspSeed = "//Sh-BSP"; -export const bspKey = keyring.addFromUri(bspSeed, { name: "Sh-BSP" }); -export const bspDownSeed = "//Sh-BSP-Down"; -export const bspDownKey = keyring.addFromUri(bspDownSeed, { name: "Sh-BSP-Down" }); -export const bspTwoSeed = "//Sh-BSP-Two"; -export const bspTwoKey = keyring.addFromUri(bspTwoSeed, { name: "Sh-BSP-Two" }); -export const bspThreeSeed = "//Sh-BSP-Three"; -export const bspThreeKey = keyring.addFromUri(bspThreeSeed, { name: "Sh-BSP-Three" }); - -export const mspSeed = "//Sh-MSP"; -export const mspKey = keyring.addFromUri(mspSeed, { name: "Sh-MSP" }); -export const mspDownSeed = "//Sh-MSP-Down"; -export const mspDownKey = keyring.addFromUri(mspDownSeed, { name: "Sh-MSP-Down" }); -export const mspTwoSeed = "//Sh-MSP-Two"; -export const mspTwoKey = keyring.addFromUri(mspTwoSeed, { name: "Sh-MSP-Two" }); - -export const collator = keyring.addFromUri("//Sh-collator", { - name: "Sh-collator" -}); - -export const shUser = keyring.addFromUri("//Sh-User", { - name: "Sh-User" -}); - -export const sudo = alice; - -export const createSr25519Account = async (privateKey?: string) => { - const rand = `0x${randomBytes(32).toString("hex")}`; - console.log("random", rand); - const keyring = new Keyring({ type: "sr25519" }); - const account = keyring.addFromUri(privateKey || rand); - return account; -}; +import { Keyring } from "@polkadot/api"; +import { randomBytes } from "node:crypto"; +import { cryptoWaitReady } from "@polkadot/util-crypto"; + +export const keyring = new Keyring({ type: "sr25519" }); +await cryptoWaitReady(); + +export const alice = keyring.addFromUri("//Alice", { name: "Alice default" }); + +export const bob = keyring.addFromUri("//Bob", { name: "Bob default" }); + +export const charlie = keyring.addFromUri("//Charlie", { + name: "Charlie default" +}); + +export const dave = keyring.addFromUri("//Dave", { name: "Dave default" }); + +export const eve = keyring.addFromUri("//Eve", { name: "Eve default" }); + +export const ferdie = keyring.addFromUri("//Ferdie", { + name: "Ferdie default" +}); + +export const bspSeed = "//Sh-BSP"; +export const bspKey = keyring.addFromUri(bspSeed, { name: "Sh-BSP" }); +export const bspDownSeed = "//Sh-BSP-Down"; +export const bspDownKey = keyring.addFromUri(bspDownSeed, { name: "Sh-BSP-Down" }); +export const bspTwoSeed = "//Sh-BSP-Two"; +export const bspTwoKey = keyring.addFromUri(bspTwoSeed, { name: "Sh-BSP-Two" }); +export const bspThreeSeed = "//Sh-BSP-Three"; +export const bspThreeKey = keyring.addFromUri(bspThreeSeed, { name: "Sh-BSP-Three" }); + +export const mspSeed = "//Sh-MSP"; +export const mspKey = keyring.addFromUri(mspSeed, { name: "Sh-MSP" }); +export const mspDownSeed = "//Sh-MSP-Down"; +export const mspDownKey = keyring.addFromUri(mspDownSeed, { name: "Sh-MSP-Down" }); +export const mspTwoSeed = "//Sh-MSP-Two"; +export const mspTwoKey = keyring.addFromUri(mspTwoSeed, { name: "Sh-MSP-Two" }); + +export const collator = keyring.addFromUri("//Sh-collator", { + name: "Sh-collator" +}); + +export const shUser = keyring.addFromUri("//Sh-User", { + name: "Sh-User" +}); + +export const sudo = alice; + +export const createSr25519Account = async (privateKey?: string) => { + const rand = `0x${randomBytes(32).toString("hex")}`; + console.log("random", rand); + const keyring = new Keyring({ type: "sr25519" }); + const account = keyring.addFromUri(privateKey || rand); + return account; +};